From 12bdc1dcf86e2b2902452ba4f6e32dce6496f50f Mon Sep 17 00:00:00 2001 From: dimarkov <5038100+dimarkov@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:47:11 +0200 Subject: [PATCH 001/196] added learning for online variational filtering --- pymdp/jax/agent.py | 41 ++++++++++++++++++++++++++--------- pymdp/jax/inference.py | 49 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 79 insertions(+), 11 deletions(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 776a65dd..e2c9960c 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -257,20 +257,41 @@ def unique_multiactions(self): @vmap def learning(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1., lr_pB=1., **kwargs): agent = self + beliefs_B = beliefs_A if beliefs_B is None else beliefs_B + if self.inference_algo == 'ovf': + smoothed_marginals_and_joints = inference.smoothing_ovf(beliefs_A, self.B, actions) + marginal_beliefs = smoothed_marginals_and_joints[0] + joint_beliefs = smoothed_marginals_and_joints[1] + else: + marginal_beliefs = beliefs_A + if self.learn_B: + nf = len(beliefs_B) + joint_fn = lambda f: [beliefs_B[f][1:]] + [beliefs_B[f_idx][:-1] for f_idx in self.B_dependencies[f]] + joint_beliefs = jtu.tree_map(joint_fn, list(range(nf))) + if self.learn_A: - o_vec_seq = jtu.tree_map(lambda o, dim: nn.one_hot(o, dim), outcomes, self.num_obs) - qA = learning.update_obs_likelihood_dirichlet(self.pA, o_vec_seq, beliefs_A, self.A_dependencies, lr=lr_pA) - E_qA = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qA) + qA, E_qA = learning.update_obs_likelihood_dirichlet( + self.pA, + outcomes, + marginal_beliefs, + A_dependencies=self.A_dependencies, + num_obs=self.num_obs, + onehot_obs=self.onehot_obs, + lr=lr_pA, + ) + agent = tree_at(lambda x: (x.A, x.pA), agent, (E_qA, qA)) if self.learn_B: - beliefs_B = beliefs_A if beliefs_B is None else beliefs_B - actions_seq = [actions[..., i] for i in range(actions.shape[-1])] # as many elements as there are control factors, where each element is a jnp.ndarray of shape (n_timesteps, ) - assert beliefs_B[0].shape[0] == actions_seq[0].shape[0] + 1 - actions_onehot = jtu.tree_map(lambda a, dim: nn.one_hot(a, dim, axis=-1), actions_seq, self.num_controls) - qB = learning.update_state_likelihood_dirichlet(self.pB, beliefs_B, actions_onehot, self.B_dependencies, lr=lr_pB) - E_qB = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qB) - + assert beliefs_B[0].shape[0] == actions.shape[0] + 1 + qB, E_qB = learning.update_state_transition_dirichlet( + self.pB, + joint_beliefs, + actions, + num_controls=self.num_controls, + lr=lr_pB + ) + # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece if self.use_inductive and self.H is not None: I_updated = control.generate_I_matrix(self.H, E_qB, self.inductive_threshold, self.inductive_depth) diff --git a/pymdp/jax/inference.py b/pymdp/jax/inference.py index 790ae354..cfc4ee89 100644 --- a/pymdp/jax/inference.py +++ b/pymdp/jax/inference.py @@ -4,7 +4,7 @@ import jax.numpy as jnp from .algos import run_factorized_fpi, run_mmp, run_vmp -from jax import tree_util as jtu +from jax import tree_util as jtu, lax def update_posterior_states( A, @@ -55,4 +55,51 @@ def update_posterior_states( qs_hist = qs return qs_hist + +def joint_dist_factor(b, filtered_qs, actions): + qs_last = filtered_qs[-1] + qs_filter = filtered_qs[:-1] + + # conditional dist - timestep x s_{t+1} | s_{t} + time_b = jnp.moveaxis(b[..., actions], -1, 0) + + # joint dist - timestep x s_{t+1} x s_{t} + qs_joint = time_b * jnp.expand_dims(qs_filter, -1) + + # cond dist - timestep x s_{t} | s_{t+1} + qs_backward_cond = jnp.moveaxis( + qs_joint / qs_joint.sum(-2, keepdims=True), -2, -1 + ) + + def step_fn(qs_smooth_past, backward_b): + qs_joint = backward_b * qs_smooth_past + qs_smooth = qs_joint.sum(-1) + + return qs_smooth, (qs_smooth, qs_joint) + + # seq_qs will contain a sequence of smoothed marginals and joints + _, seq_qs = lax.scan( + step_fn, + qs_last, + qs_backward_cond, + reverse=True, + unroll=2 + ) + + # we add the last filtered belief to smoothed beliefs + qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0) + return qs_smooth_all, seq_qs[1] + + +def smoothing_ovf(filtered_post, B, past_actions): + assert len(filtered_post) == len(B) + nf = len(Bs) # number of factors + joint = lambda b, qs, f: joint_dist_factor(b, qs, past_actions[..., f]) + marginals_and_joints = jtu.tree_map( + joint, Bs, filtered_post, list(range(nf)) + ) + + return marginals_and_joints + + From 754a336aa7325c6675ef382edfff085eaa04ff25 Mon Sep 17 00:00:00 2001 From: dimarkov <5038100+dimarkov@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:47:32 +0200 Subject: [PATCH 002/196] optimized learning routines to minimize calls to tree_map --- pymdp/jax/learning.py | 41 +++++++++++++++++++++++++---------------- pymdp/jax/maths.py | 10 ++++++---- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/pymdp/jax/learning.py b/pymdp/jax/learning.py index c075aab6..768008a5 100644 --- a/pymdp/jax/learning.py +++ b/pymdp/jax/learning.py @@ -3,9 +3,9 @@ # pylint: disable=no-member import numpy as np -from .maths import multidimensional_outer +from .maths import multidimensional_outer, dirichlet_expected_value from jax.tree_util import tree_map -from jax import vmap +from jax import vmap, nn import jax.numpy as jnp def update_obs_likelihood_dirichlet_m(pA_m, obs_m, qs, dependencies_m, lr=1.0): @@ -26,17 +26,22 @@ def update_obs_likelihood_dirichlet_m(pA_m, obs_m, qs, dependencies_m, lr=1.0): dfda = vmap(multidimensional_outer)([obs_m] + relevant_factors).sum(axis=0) - return pA_m + lr * dfda + new_pA_m = pA_m + lr * dfda + + return new_pA_m, dirichlet_expected_value(new_pA_m) -def update_obs_likelihood_dirichlet(pA, obs, qs, A_dependencies, lr=1.0): +def update_obs_likelihood_dirichlet(pA, obs, qs, *, A_dependencies, onehot_obs, num_obs, lr): """ JAX version of ``pymdp.learning.update_obs_likelihood_dirichlet`` """ - update_A_fn = lambda pA_m, obs_m, dependencies_m: update_obs_likelihood_dirichlet_m(pA_m, obs_m, qs, dependencies_m, lr=lr) - qA = tree_map(update_A_fn, pA, obs, A_dependencies) + obs_m = lambda o, dim: nn.one_hot(o, dim) if not onehot_obs else o + update_A_fn = lambda pA_m, o_m, dim, dependencies_m: update_obs_likelihood_dirichlet_m( + pA_m, obs_m(o_m, dim), qs, dependencies_m, lr=lr + ) + qA, E_qA = tree_map(update_A_fn, pA, obs, num_obs, A_dependencies) - return qA + return qA, E_qA -def update_state_likelihood_dirichlet_f(pB_f, actions_f, current_qs, qs_seq, dependencies_f, lr=1.0): +def update_state_transition_dirichlet_f(pB_f, actions_f, joint_qs_f, lr=1.0): """ JAX version of ``pymdp.learning.update_state_likelihood_dirichlet_f`` """ # pB_f - parameters of the dirichlet from the prior # pB_f.shape = (num_states[f] x num_states[f] x num_actions[f]) where f is the index of the hidden state factor @@ -50,20 +55,24 @@ def update_state_likelihood_dirichlet_f(pB_f, actions_f, current_qs, qs_seq, dep # \otimes is a multidimensional outer product, not just a outer product of two vectors # \kappa is an optional learning rate - past_qs = tree_map(lambda f_idx: qs_seq[f_idx][:-1], dependencies_f) - dfdb = vmap(multidimensional_outer)([current_qs[1:]] + past_qs + [actions_f]).sum(axis=0) + dfdb = vmap(multidimensional_outer)(joint_qs_f + [actions_f]).sum(axis=0) qB_f = pB_f + lr * dfdb - return qB_f + return qB_f, dirichlet_expected_value(qB_f) -def update_state_likelihood_dirichlet(pB, beliefs, actions_onehot, B_dependencies, lr=1.0): +def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_controls, lr): - update_B_f_fn = lambda pB_f, action_f, qs_f, dependencies_f: update_state_likelihood_dirichlet_f(pB_f, action_f, qs_f, beliefs, dependencies_f, lr=lr) - qB = tree_map(update_B_f_fn, pB, actions_onehot, beliefs, B_dependencies) + nf = len(pB) + actions_onehot_fn = lambda f, dim: nn.one_hot(actions[..., f], dim, axis=-1) + update_B_f_fn = lambda pB_f, joint_qs_f, f, na: update_state_transition_dirichlet_f( + pB_f, actions_onehot_fn(f, na), joint_qs_f, lr=lr + ) + qB, E_qB = tree_map( + update_B_f_fn, pB, actions, joint_beliefs, list(range(nf)), num_controls + ) - return qB + return qB, E_qB - def update_state_prior_dirichlet( pD, qs, lr=1.0, factors="all" ): diff --git a/pymdp/jax/maths.py b/pymdp/jax/maths.py index 58b34aff..3bb1c200 100644 --- a/pymdp/jax/maths.py +++ b/pymdp/jax/maths.py @@ -83,7 +83,7 @@ def compute_accuracy(qs, obs, A): for q in qs[1:]: x = jnp.expand_dims(x, -1) * q - joint = log_likelihood * x + joint = ll * x return joint.sum() def compute_free_energy(qs, prior, obs, A): @@ -120,7 +120,7 @@ def spm_wnorm(A): Returns Expectation of logarithm of Dirichlet parameters over a set of Categorical distributions, stored in the columns of A. """ - A = jnp.clip(A, a_min=MINVAL) + A = jnp.clip(A, min=MINVAL) norm = 1. / A.sum(axis=0) avg = 1. / A wA = norm - avg @@ -131,8 +131,10 @@ def dirichlet_expected_value(dir_arr): Returns Expectation of Dirichlet parameters over a set of Categorical distributions, stored in the columns of A. """ - dir_arr = jnp.clip(dir_arr, a_min=MINVAL) - expected_val = jnp.divide(dir_arr, dir_arr.sum(axis=0, keepdims=True)) + expected_val = jnp.divide( + dir_arr, + jnp.clip(dir_arr.sum(axis=0, keepdims=True), min=MINVAL) + ) return expected_val if __name__ == '__main__': From eda7e011783bf548b1744bcce0d38acc71862157 Mon Sep 17 00:00:00 2001 From: dimarkov <5038100+dimarkov@users.noreply.github.com> Date: Mon, 10 Jun 2024 12:22:20 +0200 Subject: [PATCH 003/196] fix tests and passing of the results of the learning --- pymdp/jax/learning.py | 15 +++++++++++++-- test/test_learning_jax.py | 20 ++++++++++++++++++-- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/pymdp/jax/learning.py b/pymdp/jax/learning.py index 768008a5..9e9d2c39 100644 --- a/pymdp/jax/learning.py +++ b/pymdp/jax/learning.py @@ -37,7 +37,12 @@ def update_obs_likelihood_dirichlet(pA, obs, qs, *, A_dependencies, onehot_obs, update_A_fn = lambda pA_m, o_m, dim, dependencies_m: update_obs_likelihood_dirichlet_m( pA_m, obs_m(o_m, dim), qs, dependencies_m, lr=lr ) - qA, E_qA = tree_map(update_A_fn, pA, obs, num_obs, A_dependencies) + result = tree_map(update_A_fn, pA, obs, num_obs, A_dependencies) + qA = [] + E_qA = [] + for r in result: + qA.append(r[0]) + E_qA.append(r[1]) return qA, E_qA @@ -67,10 +72,16 @@ def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_control update_B_f_fn = lambda pB_f, joint_qs_f, f, na: update_state_transition_dirichlet_f( pB_f, actions_onehot_fn(f, na), joint_qs_f, lr=lr ) - qB, E_qB = tree_map( + result = tree_map( update_B_f_fn, pB, actions, joint_beliefs, list(range(nf)), num_controls ) + qB = [] + E_qB = [] + for r in result: + qB.append(r[0]) + E_qB.append(r[1]) + return qB, E_qB def update_state_prior_dirichlet( diff --git a/test/test_learning_jax.py b/test/test_learning_jax.py index cdb3b86c..5d34d38f 100644 --- a/test/test_learning_jax.py +++ b/test/test_learning_jax.py @@ -68,7 +68,15 @@ def test_update_observation_likelihood_fullyconnected(self): obs_jax = jtu.tree_map(lambda x: jnp.array(x)[None], list(obs_np)) qs_jax = jtu.tree_map(lambda x: jnp.array(x)[None], list(qs_np)) - qA_jax_test = update_pA_jax(pA_jax, obs_jax, qs_jax, A_dependencies, lr=l_rate) + qA_jax_test, E_qA_jax_test = update_pA_jax( + pA_jax, + obs_jax, + qs_jax, + A_dependencies=A_dependencies, + onehot_obs=True, + num_obs=num_obs, + lr=l_rate + ) for modality, obs_dim in enumerate(num_obs): self.assertTrue(np.allclose(qA_jax_test[modality], qA_np_test[modality])) @@ -122,7 +130,15 @@ def test_update_observation_likelihood_factorized(self): obs_jax = jtu.tree_map(lambda x: jnp.array(x)[None], list(obs_np)) qs_jax = jtu.tree_map(lambda x: jnp.array(x)[None], list(qs_np)) - qA_jax_test = update_pA_jax(pA_jax, obs_jax, qs_jax, A_dependencies, lr=l_rate) + qA_jax_test, E_qA_jax_test = update_pA_jax( + pA_jax, + obs_jax, + qs_jax, + A_dependencies=A_dependencies, + onehot_obs=True, + num_obs=num_obs, + lr=l_rate + ) for modality, obs_dim in enumerate(num_obs): self.assertTrue(np.allclose(qA_jax_test[modality],qA_np_test[modality])) From 147a37cc978047ee4be068188764eaaf6daba6c6 Mon Sep 17 00:00:00 2001 From: dimarkov <5038100+dimarkov@users.noreply.github.com> Date: Mon, 10 Jun 2024 12:50:27 +0200 Subject: [PATCH 004/196] fix update state transition --- pymdp/jax/learning.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pymdp/jax/learning.py b/pymdp/jax/learning.py index 9e9d2c39..3a84155e 100644 --- a/pymdp/jax/learning.py +++ b/pymdp/jax/learning.py @@ -73,7 +73,7 @@ def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_control pB_f, actions_onehot_fn(f, na), joint_qs_f, lr=lr ) result = tree_map( - update_B_f_fn, pB, actions, joint_beliefs, list(range(nf)), num_controls + update_B_f_fn, pB, joint_beliefs, list(range(nf)), num_controls ) qB = [] From bdf1e147d3496e3ddb2f3ccf34844e4f6421409c Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Mon, 10 Jun 2024 16:30:58 +0200 Subject: [PATCH 005/196] move task.py to jax/envs/env.py --- pymdp/jax/envs/__init__.py | 1 + pymdp/jax/{task.py => envs/env.py} | 0 2 files changed, 1 insertion(+) create mode 100644 pymdp/jax/envs/__init__.py rename pymdp/jax/{task.py => envs/env.py} (100%) diff --git a/pymdp/jax/envs/__init__.py b/pymdp/jax/envs/__init__.py new file mode 100644 index 00000000..272981b0 --- /dev/null +++ b/pymdp/jax/envs/__init__.py @@ -0,0 +1 @@ +from .env import PyMDPEnv diff --git a/pymdp/jax/task.py b/pymdp/jax/envs/env.py similarity index 100% rename from pymdp/jax/task.py rename to pymdp/jax/envs/env.py From 71a3cb23981c4016a0efa137f739338f9fed5cb3 Mon Sep 17 00:00:00 2001 From: dimarkov <5038100+dimarkov@users.noreply.github.com> Date: Mon, 10 Jun 2024 16:40:52 +0200 Subject: [PATCH 006/196] fix names --- pymdp/jax/inference.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pymdp/jax/inference.py b/pymdp/jax/inference.py index cfc4ee89..817034cf 100644 --- a/pymdp/jax/inference.py +++ b/pymdp/jax/inference.py @@ -93,10 +93,10 @@ def step_fn(qs_smooth_past, backward_b): def smoothing_ovf(filtered_post, B, past_actions): assert len(filtered_post) == len(B) - nf = len(Bs) # number of factors + nf = len(B) # number of factors joint = lambda b, qs, f: joint_dist_factor(b, qs, past_actions[..., f]) marginals_and_joints = jtu.tree_map( - joint, Bs, filtered_post, list(range(nf)) + joint, B, filtered_post, list(range(nf)) ) return marginals_and_joints From 65b33c84ae73a8109cbe68a78800dcaeacb9c2a7 Mon Sep 17 00:00:00 2001 From: dimarkov <5038100+dimarkov@users.noreply.github.com> Date: Mon, 10 Jun 2024 16:41:16 +0200 Subject: [PATCH 007/196] notebook for showcasing inference and learning using different methods --- .../inference_methods_comparison.ipynb | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 examples/inference_and_learning/inference_methods_comparison.ipynb diff --git a/examples/inference_and_learning/inference_methods_comparison.ipynb b/examples/inference_and_learning/inference_methods_comparison.ipynb new file mode 100644 index 00000000..7cf3d5b2 --- /dev/null +++ b/examples/inference_and_learning/inference_methods_comparison.ipynb @@ -0,0 +1,71 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp\n", + "from pymdp.jax.agent import Agent" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "\n", + "pA = None\n", + "pB = None\n", + "\n", + "agents = Agent(\n", + " A,\n", + " B,\n", + " C,\n", + " D,\n", + " E,\n", + " pA,\n", + " pB,\n", + " A_dependencies=None,\n", + " B_dependencies=None,\n", + " policy_len=1,\n", + " control_fac_idx=None,\n", + " policies=None,\n", + " gamma=16.0,\n", + " alpha=16.0,\n", + " use_utility=True,\n", + " action_selection=\"deterministic\",\n", + " sampling_mode=\"full\",\n", + " inference_algo=\"fpi\",\n", + " num_iter=16,\n", + " learn_A=False,\n", + " learn_B=False\n", + ")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pymdp", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 19172db01f1bef9ceead7577b89c9566332dd516 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Mon, 10 Jun 2024 16:45:36 +0200 Subject: [PATCH 008/196] add a pyproject toml --- pyproject.toml | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..e4589f39 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,40 @@ +[tool.poetry] +name = "pymdp" +version = "0.1.0" +description = "" +authors = ["Your Name "] +license = "MIT" +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.11" +openpyxl = "^3.0.7" +packaging = "^20.8" +Pillow = "^8.2.0" +pluggy = "^0.13.1" +py = "^1.10.0" +pyparsing = "^2.4.7" +pytest = "^6.2.1" +python-dateutil = "^2.8.1" +pytz = "^2020.5" +scipy = "^1.6.0" +seaborn = "^0.11.1" +six = "^1.15.0" +toml = "^0.10.2" +typing-extensions = "^4" +xlsxwriter = "^1.4.3" +sphinx-rtd-theme = "^0.4" +myst-nb = "^0.13.1" +autograd = "^1.3" +jax = "^0.4" +equinox = "^0.9" +numpyro = "^0.14" +arviz = "^0.13" +optax = "^0.1" + +[tool.black] +line-length = 120 + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" From 948409a81945d3691c4b18749ba53acdebcf75e9 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Mon, 10 Jun 2024 16:30:58 +0200 Subject: [PATCH 009/196] move task.py to jax/envs/env.py --- pymdp/jax/envs/__init__.py | 1 + pymdp/jax/{task.py => envs/env.py} | 0 2 files changed, 1 insertion(+) create mode 100644 pymdp/jax/envs/__init__.py rename pymdp/jax/{task.py => envs/env.py} (100%) diff --git a/pymdp/jax/envs/__init__.py b/pymdp/jax/envs/__init__.py new file mode 100644 index 00000000..272981b0 --- /dev/null +++ b/pymdp/jax/envs/__init__.py @@ -0,0 +1 @@ +from .env import PyMDPEnv diff --git a/pymdp/jax/task.py b/pymdp/jax/envs/env.py similarity index 100% rename from pymdp/jax/task.py rename to pymdp/jax/envs/env.py From a1bc4b0dafacf29c49578f510cdcdc366fa5bed2 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Mon, 10 Jun 2024 17:28:16 +0200 Subject: [PATCH 010/196] get a version that passes all tests --- poetry.lock | 3841 ++++++++++++++++++++++++++++++++++++++++++++++++ pyproject.toml | 6 +- 2 files changed, 3845 insertions(+), 2 deletions(-) create mode 100644 poetry.lock diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 00000000..322a9a78 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,3841 @@ +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. + +[[package]] +name = "absl-py" +version = "2.1.0" +description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py." +optional = false +python-versions = ">=3.7" +files = [ + {file = "absl-py-2.1.0.tar.gz", hash = "sha256:7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff"}, + {file = "absl_py-2.1.0-py3-none-any.whl", hash = "sha256:526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308"}, +] + +[[package]] +name = "alabaster" +version = "0.7.16" +description = "A light, configurable Sphinx theme" +optional = false +python-versions = ">=3.9" +files = [ + {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, + {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, +] + +[[package]] +name = "anyio" +version = "4.4.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.8" +files = [ + {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, + {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, +] + +[package.dependencies] +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] + +[[package]] +name = "appnope" +version = "0.1.4" +description = "Disable App Nap on macOS >= 10.9" +optional = false +python-versions = ">=3.6" +files = [ + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, +] + +[[package]] +name = "argon2-cffi" +version = "23.1.0" +description = "Argon2 for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, + {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, +] + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["argon2-cffi[tests,typing]", "tox (>4)"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] +tests = ["hypothesis", "pytest"] +typing = ["mypy"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +optional = false +python-versions = ">=3.6" +files = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "arrow" +version = "1.3.0" +description = "Better dates & times for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, + {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, +] + +[package.dependencies] +python-dateutil = ">=2.7.0" +types-python-dateutil = ">=2.8.10" + +[package.extras] +doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] +test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] + +[[package]] +name = "arviz" +version = "0.13.0" +description = "Exploratory analysis of Bayesian models" +optional = false +python-versions = ">=3.8" +files = [ + {file = "arviz-0.13.0-py3-none-any.whl", hash = "sha256:c96c23726bd458f0266d2713ff728b4f7fcd306f0cbfa6399b6ede5139325b48"}, + {file = "arviz-0.13.0.tar.gz", hash = "sha256:65816761fd2a864e5da08c8663adf7260cd8c904933a88f3b86f2c1ed7510d5e"}, +] + +[package.dependencies] +matplotlib = ">=3.5" +netcdf4 = "*" +numpy = ">=1.20.0" +packaging = "*" +pandas = ">=1.4.0" +scipy = ">=1.8.0" +setuptools = ">=60.0.0" +typing-extensions = ">=4.1.0" +xarray = ">=0.21.0" +xarray-einstats = ">=0.3" + +[package.extras] +all = ["bokeh (>=1.4.0,<3.0)", "contourpy", "dask[distributed]", "numba", "ujson", "zarr (>=2.5.0)"] + +[[package]] +name = "asttokens" +version = "2.4.1" +description = "Annotate AST trees with source code positions" +optional = false +python-versions = "*" +files = [ + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, +] + +[package.dependencies] +six = ">=1.12.0" + +[package.extras] +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] + +[[package]] +name = "atomicwrites" +version = "1.4.1" +description = "Atomic file writes." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, +] + +[[package]] +name = "attrs" +version = "21.4.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, + {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, +] + +[package.extras] +dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six", "sphinx", "sphinx-notfound-page", "zope.interface"] +docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] +tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six", "zope.interface"] +tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six"] + +[[package]] +name = "autograd" +version = "1.6.2" +description = "Efficiently computes derivatives of numpy code." +optional = false +python-versions = "*" +files = [ + {file = "autograd-1.6.2-py3-none-any.whl", hash = "sha256:208dde2a938e63b4f8f5049b1985505139e529068b0d26f8cd7771fd3eb145d5"}, + {file = "autograd-1.6.2.tar.gz", hash = "sha256:8731e08a0c4e389d8695a40072ada4512641c113b6cace8f4cfbe8eb7e9aedeb"}, +] + +[package.dependencies] +future = ">=0.15.2" +numpy = ">=1.12" + +[[package]] +name = "babel" +version = "2.15.0" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, + {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, +] + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "bleach" +version = "6.1.0" +description = "An easy safelist-based HTML-sanitizing tool." +optional = false +python-versions = ">=3.8" +files = [ + {file = "bleach-6.1.0-py3-none-any.whl", hash = "sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6"}, + {file = "bleach-6.1.0.tar.gz", hash = "sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe"}, +] + +[package.dependencies] +six = ">=1.9.0" +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.3)"] + +[[package]] +name = "certifi" +version = "2024.6.2" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"}, + {file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"}, +] + +[[package]] +name = "cffi" +version = "1.16.0" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "cftime" +version = "1.6.4" +description = "Time-handling functionality from netcdf4-python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cftime-1.6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ee70074df4bae0d9ee98f201cf5f11fd302791cf1cdeb73c34f685d6b632e17d"}, + {file = "cftime-1.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e5456fd58d4cc6b8d7b4932b749617ee142b62a52bc5d8e3c282ce69ce3a20ba"}, + {file = "cftime-1.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1289e08617be350a6b26c6e4352a0cb088625ac33d25e95110df549c26d6ab8e"}, + {file = "cftime-1.6.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18b132d9225b4a109929866200846c72302316db9069e2de3ec8d8ec377f567f"}, + {file = "cftime-1.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ca1a264570e68fbb611bba251641b8efd0cf88c0ad2dcab5fa784df264232b75"}, + {file = "cftime-1.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:6fc82928cbf477bebf233f41914e64bff7b9e894c7f0c34170784a48250f8da7"}, + {file = "cftime-1.6.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c1558d9b477bd29626cd8bfc89e736635f72887d1a993e2834ab579bba7abb8c"}, + {file = "cftime-1.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:03494e7b66a2fbb6b04e364ab67185130dee0ced660abac5c1559070571d143d"}, + {file = "cftime-1.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dcb2a01d4e614437582af33b36db4fb441b7666758482864827a1f037d2b639"}, + {file = "cftime-1.6.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b47bf25195fb3889bbae34df0e80957eb69c48f66902f5d538c7a8ec34253f6"}, + {file = "cftime-1.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d4f2cc0d5c6ffba9c5b0fd1ecd0c7c1c426d0be7b8de1480e2a9fb857c1905e9"}, + {file = "cftime-1.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:76b8f1e5d1e424accdf760a43e0a1793a7b640bab83cb067273d5c9dbb336c44"}, + {file = "cftime-1.6.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c349a91fa7ac9ec50118b04a8746bdea967bd2fc525d87c776003040b8d3392"}, + {file = "cftime-1.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:588d073400798adc24ece759cd1cb24ef730f55d1f70e31a898e7686f9d763d8"}, + {file = "cftime-1.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e07b91b488570573bbeb6f815656a8974d13d15b2279c82de2927f4f692bbcd"}, + {file = "cftime-1.6.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f92f2e405eeda47b30ab6231d8b7d136a55f21034d394f93ade322d356948654"}, + {file = "cftime-1.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:567574df94d0de1101bb5da76e7fbc6eabfddeeb2eb8cf83286b3599a136bbf7"}, + {file = "cftime-1.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:5b5ad7559a16bedadb66af8e417b6805f758acb57aa38d2730844dfc63a1e667"}, + {file = "cftime-1.6.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c072fe9e09925af66a9473edf5752ca1890ba752e7c1935d1f0245ad48f0977c"}, + {file = "cftime-1.6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c05a71389f53d6340cb365b60f028c08268c72401660b9ef76108dee9f1cb5b2"}, + {file = "cftime-1.6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0edeb1cb019d8155b2513cffb96749c0d7d459370e69bdf03077e0bee214aed8"}, + {file = "cftime-1.6.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f05d5d6bb4137f9783fa61ad330030fcea8dcc6946dea69a27774edbe480e7"}, + {file = "cftime-1.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:b32ac1278a2a111b066d5a1e6e5ce6f38c4c505993a6a3130873b56f99d7b56f"}, + {file = "cftime-1.6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c20f03e12af39534c3450bba376272803bfb850b5ce6433c839bfaa99f8d835a"}, + {file = "cftime-1.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:90609b3c1a31a756a68ecdbc961a4ce0b22c1620f166c8dabfa3a4c337ac8b9e"}, + {file = "cftime-1.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbe11ad73b2a0ddc79995da21459fc2a3fd6b1593ca73f00a60e4d81c3e230f3"}, + {file = "cftime-1.6.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25f043703e785de0bd7cd8222c0a53317e9aeb3dfc062588b05e6f3ebb007468"}, + {file = "cftime-1.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f9acc272df1022f24fe7dbe9de43fa5d8271985161df14549e4d8d28c90dc9ea"}, + {file = "cftime-1.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:e8467b6fbf8dbfe0be8c04d61180765fdd3b9ab0fe51313a0bbf87e63634a3d8"}, + {file = "cftime-1.6.4.tar.gz", hash = "sha256:e325406193758a7ed67308deb52e727782a19e384e183378e7ff62098be0aedc"}, +] + +[package.dependencies] +numpy = [ + {version = ">1.13.3", markers = "python_version < \"3.12.0.rc1\""}, + {version = ">=1.26.0b1", markers = "python_version >= \"3.12.0.rc1\""}, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "chex" +version = "0.1.86" +description = "Chex: Testing made fun, in JAX!" +optional = false +python-versions = ">=3.9" +files = [ + {file = "chex-0.1.86-py3-none-any.whl", hash = "sha256:251c20821092323a3d9c28e1cf80e4a58180978bec368f531949bd9847eee568"}, + {file = "chex-0.1.86.tar.gz", hash = "sha256:e8b0f96330eba4144659e1617c0f7a57b161e8cbb021e55c6d5056c7378091d1"}, +] + +[package.dependencies] +absl-py = ">=0.9.0" +jax = ">=0.4.16" +jaxlib = ">=0.1.37" +numpy = ">=1.24.1" +setuptools = {version = "*", markers = "python_version >= \"3.12\""} +toolz = ">=0.9.0" +typing-extensions = ">=4.2.0" + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "comm" +version = "0.2.2" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +optional = false +python-versions = ">=3.8" +files = [ + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, +] + +[package.dependencies] +traitlets = ">=4" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "contourpy" +version = "1.2.1" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.9" +files = [ + {file = "contourpy-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd7c23df857d488f418439686d3b10ae2fbf9bc256cd045b37a8c16575ea1040"}, + {file = "contourpy-1.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5b9eb0ca724a241683c9685a484da9d35c872fd42756574a7cfbf58af26677fd"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c75507d0a55378240f781599c30e7776674dbaf883a46d1c90f37e563453480"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11959f0ce4a6f7b76ec578576a0b61a28bdc0696194b6347ba3f1c53827178b9"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eb3315a8a236ee19b6df481fc5f997436e8ade24a9f03dfdc6bd490fea20c6da"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39f3ecaf76cd98e802f094e0d4fbc6dc9c45a8d0c4d185f0f6c2234e14e5f75b"}, + {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:94b34f32646ca0414237168d68a9157cb3889f06b096612afdd296003fdd32fd"}, + {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:457499c79fa84593f22454bbd27670227874cd2ff5d6c84e60575c8b50a69619"}, + {file = "contourpy-1.2.1-cp310-cp310-win32.whl", hash = "sha256:ac58bdee53cbeba2ecad824fa8159493f0bf3b8ea4e93feb06c9a465d6c87da8"}, + {file = "contourpy-1.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:9cffe0f850e89d7c0012a1fb8730f75edd4320a0a731ed0c183904fe6ecfc3a9"}, + {file = "contourpy-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6022cecf8f44e36af10bd9118ca71f371078b4c168b6e0fab43d4a889985dbb5"}, + {file = "contourpy-1.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ef5adb9a3b1d0c645ff694f9bca7702ec2c70f4d734f9922ea34de02294fdf72"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6150ffa5c767bc6332df27157d95442c379b7dce3a38dff89c0f39b63275696f"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c863140fafc615c14a4bf4efd0f4425c02230eb8ef02784c9a156461e62c965"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00e5388f71c1a0610e6fe56b5c44ab7ba14165cdd6d695429c5cd94021e390b2"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4492d82b3bc7fbb7e3610747b159869468079fe149ec5c4d771fa1f614a14df"}, + {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:49e70d111fee47284d9dd867c9bb9a7058a3c617274900780c43e38d90fe1205"}, + {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b59c0ffceff8d4d3996a45f2bb6f4c207f94684a96bf3d9728dbb77428dd8cb8"}, + {file = "contourpy-1.2.1-cp311-cp311-win32.whl", hash = "sha256:7b4182299f251060996af5249c286bae9361fa8c6a9cda5efc29fe8bfd6062ec"}, + {file = "contourpy-1.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2855c8b0b55958265e8b5888d6a615ba02883b225f2227461aa9127c578a4922"}, + {file = "contourpy-1.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:62828cada4a2b850dbef89c81f5a33741898b305db244904de418cc957ff05dc"}, + {file = "contourpy-1.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:309be79c0a354afff9ff7da4aaed7c3257e77edf6c1b448a779329431ee79d7e"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e785e0f2ef0d567099b9ff92cbfb958d71c2d5b9259981cd9bee81bd194c9a4"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cac0a8f71a041aa587410424ad46dfa6a11f6149ceb219ce7dd48f6b02b87a7"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af3f4485884750dddd9c25cb7e3915d83c2db92488b38ccb77dd594eac84c4a0"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ce6889abac9a42afd07a562c2d6d4b2b7134f83f18571d859b25624a331c90b"}, + {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a1eea9aecf761c661d096d39ed9026574de8adb2ae1c5bd7b33558af884fb2ce"}, + {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:187fa1d4c6acc06adb0fae5544c59898ad781409e61a926ac7e84b8f276dcef4"}, + {file = "contourpy-1.2.1-cp312-cp312-win32.whl", hash = "sha256:c2528d60e398c7c4c799d56f907664673a807635b857df18f7ae64d3e6ce2d9f"}, + {file = "contourpy-1.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:1a07fc092a4088ee952ddae19a2b2a85757b923217b7eed584fdf25f53a6e7ce"}, + {file = "contourpy-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bb6834cbd983b19f06908b45bfc2dad6ac9479ae04abe923a275b5f48f1a186b"}, + {file = "contourpy-1.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1d59e739ab0e3520e62a26c60707cc3ab0365d2f8fecea74bfe4de72dc56388f"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd3db01f59fdcbce5b22afad19e390260d6d0222f35a1023d9adc5690a889364"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a12a813949e5066148712a0626895c26b2578874e4cc63160bb007e6df3436fe"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe0ccca550bb8e5abc22f530ec0466136379c01321fd94f30a22231e8a48d985"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1d59258c3c67c865435d8fbeb35f8c59b8bef3d6f46c1f29f6123556af28445"}, + {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f32c38afb74bd98ce26de7cc74a67b40afb7b05aae7b42924ea990d51e4dac02"}, + {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d31a63bc6e6d87f77d71e1abbd7387ab817a66733734883d1fc0021ed9bfa083"}, + {file = "contourpy-1.2.1-cp39-cp39-win32.whl", hash = "sha256:ddcb8581510311e13421b1f544403c16e901c4e8f09083c881fab2be80ee31ba"}, + {file = "contourpy-1.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:10a37ae557aabf2509c79715cd20b62e4c7c28b8cd62dd7d99e5ed3ce28c3fd9"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a31f94983fecbac95e58388210427d68cd30fe8a36927980fab9c20062645609"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef2b055471c0eb466033760a521efb9d8a32b99ab907fc8358481a1dd29e3bd3"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b33d2bc4f69caedcd0a275329eb2198f560b325605810895627be5d4b876bf7f"}, + {file = "contourpy-1.2.1.tar.gz", hash = "sha256:4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c"}, +] + +[package.dependencies] +numpy = ">=1.20" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.8.0)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] + +[[package]] +name = "cycler" +version = "0.12.1" +description = "Composable style cycles" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, +] + +[package.extras] +docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] +tests = ["pytest", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "debugpy" +version = "1.8.1" +description = "An implementation of the Debug Adapter Protocol for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"}, + {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"}, + {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"}, + {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"}, + {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"}, + {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"}, + {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"}, + {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"}, + {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"}, + {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"}, + {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"}, + {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"}, + {file = "debugpy-1.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39"}, + {file = "debugpy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7"}, + {file = "debugpy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9"}, + {file = "debugpy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234"}, + {file = "debugpy-1.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42"}, + {file = "debugpy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703"}, + {file = "debugpy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23"}, + {file = "debugpy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3"}, + {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"}, + {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"}, +] + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +optional = false +python-versions = ">=3.5" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + +[[package]] +name = "docutils" +version = "0.17.1" +description = "Docutils -- Python Documentation Utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, + {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, +] + +[[package]] +name = "entrypoints" +version = "0.4" +description = "Discover and load entry points from installed packages." +optional = false +python-versions = ">=3.6" +files = [ + {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, + {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, +] + +[[package]] +name = "equinox" +version = "0.11.4" +description = "Elegant easy-to-use neural networks in JAX." +optional = false +python-versions = "~=3.9" +files = [ + {file = "equinox-0.11.4-py3-none-any.whl", hash = "sha256:a9527b1fe0c4778c3c959d9091b1eea28c3fdcca01790a47e71b47df94889315"}, + {file = "equinox-0.11.4.tar.gz", hash = "sha256:0033d9731083f402a855b12a0777a80aa8507651f7aa86d9f0f9503bcddfd320"}, +] + +[package.dependencies] +jax = ">=0.4.13" +jaxtyping = ">=0.2.20" +typing-extensions = ">=4.5.0" + +[[package]] +name = "et-xmlfile" +version = "1.1.0" +description = "An implementation of lxml.xmlfile for the standard library" +optional = false +python-versions = ">=3.6" +files = [ + {file = "et_xmlfile-1.1.0-py3-none-any.whl", hash = "sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada"}, + {file = "et_xmlfile-1.1.0.tar.gz", hash = "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"}, +] + +[[package]] +name = "executing" +version = "2.0.1" +description = "Get the currently executing AST node of a frame, and other information" +optional = false +python-versions = ">=3.5" +files = [ + {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, + {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, +] + +[package.extras] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] + +[[package]] +name = "fastjsonschema" +version = "2.19.1" +description = "Fastest Python implementation of JSON schema" +optional = false +python-versions = "*" +files = [ + {file = "fastjsonschema-2.19.1-py3-none-any.whl", hash = "sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0"}, + {file = "fastjsonschema-2.19.1.tar.gz", hash = "sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d"}, +] + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "fonttools" +version = "4.53.0" +description = "Tools to manipulate font files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fonttools-4.53.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:52a6e0a7a0bf611c19bc8ec8f7592bdae79c8296c70eb05917fd831354699b20"}, + {file = "fonttools-4.53.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:099634631b9dd271d4a835d2b2a9e042ccc94ecdf7e2dd9f7f34f7daf333358d"}, + {file = "fonttools-4.53.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e40013572bfb843d6794a3ce076c29ef4efd15937ab833f520117f8eccc84fd6"}, + {file = "fonttools-4.53.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:715b41c3e231f7334cbe79dfc698213dcb7211520ec7a3bc2ba20c8515e8a3b5"}, + {file = "fonttools-4.53.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74ae2441731a05b44d5988d3ac2cf784d3ee0a535dbed257cbfff4be8bb49eb9"}, + {file = "fonttools-4.53.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:95db0c6581a54b47c30860d013977b8a14febc206c8b5ff562f9fe32738a8aca"}, + {file = "fonttools-4.53.0-cp310-cp310-win32.whl", hash = "sha256:9cd7a6beec6495d1dffb1033d50a3f82dfece23e9eb3c20cd3c2444d27514068"}, + {file = "fonttools-4.53.0-cp310-cp310-win_amd64.whl", hash = "sha256:daaef7390e632283051e3cf3e16aff2b68b247e99aea916f64e578c0449c9c68"}, + {file = "fonttools-4.53.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a209d2e624ba492df4f3bfad5996d1f76f03069c6133c60cd04f9a9e715595ec"}, + {file = "fonttools-4.53.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4f520d9ac5b938e6494f58a25c77564beca7d0199ecf726e1bd3d56872c59749"}, + {file = "fonttools-4.53.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eceef49f457253000e6a2d0f7bd08ff4e9fe96ec4ffce2dbcb32e34d9c1b8161"}, + {file = "fonttools-4.53.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa1f3e34373aa16045484b4d9d352d4c6b5f9f77ac77a178252ccbc851e8b2ee"}, + {file = "fonttools-4.53.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:28d072169fe8275fb1a0d35e3233f6df36a7e8474e56cb790a7258ad822b6fd6"}, + {file = "fonttools-4.53.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4a2a6ba400d386e904fd05db81f73bee0008af37799a7586deaa4aef8cd5971e"}, + {file = "fonttools-4.53.0-cp311-cp311-win32.whl", hash = "sha256:bb7273789f69b565d88e97e9e1da602b4ee7ba733caf35a6c2affd4334d4f005"}, + {file = "fonttools-4.53.0-cp311-cp311-win_amd64.whl", hash = "sha256:9fe9096a60113e1d755e9e6bda15ef7e03391ee0554d22829aa506cdf946f796"}, + {file = "fonttools-4.53.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d8f191a17369bd53a5557a5ee4bab91d5330ca3aefcdf17fab9a497b0e7cff7a"}, + {file = "fonttools-4.53.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:93156dd7f90ae0a1b0e8871032a07ef3178f553f0c70c386025a808f3a63b1f4"}, + {file = "fonttools-4.53.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bff98816cb144fb7b85e4b5ba3888a33b56ecef075b0e95b95bcd0a5fbf20f06"}, + {file = "fonttools-4.53.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:973d030180eca8255b1bce6ffc09ef38a05dcec0e8320cc9b7bcaa65346f341d"}, + {file = "fonttools-4.53.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c4ee5a24e281fbd8261c6ab29faa7fd9a87a12e8c0eed485b705236c65999109"}, + {file = "fonttools-4.53.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bd5bc124fae781a4422f61b98d1d7faa47985f663a64770b78f13d2c072410c2"}, + {file = "fonttools-4.53.0-cp312-cp312-win32.whl", hash = "sha256:a239afa1126b6a619130909c8404070e2b473dd2b7fc4aacacd2e763f8597fea"}, + {file = "fonttools-4.53.0-cp312-cp312-win_amd64.whl", hash = "sha256:45b4afb069039f0366a43a5d454bc54eea942bfb66b3fc3e9a2c07ef4d617380"}, + {file = "fonttools-4.53.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:93bc9e5aaa06ff928d751dc6be889ff3e7d2aa393ab873bc7f6396a99f6fbb12"}, + {file = "fonttools-4.53.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2367d47816cc9783a28645bc1dac07f8ffc93e0f015e8c9fc674a5b76a6da6e4"}, + {file = "fonttools-4.53.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:907fa0b662dd8fc1d7c661b90782ce81afb510fc4b7aa6ae7304d6c094b27bce"}, + {file = "fonttools-4.53.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e0ad3c6ea4bd6a289d958a1eb922767233f00982cf0fe42b177657c86c80a8f"}, + {file = "fonttools-4.53.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:73121a9b7ff93ada888aaee3985a88495489cc027894458cb1a736660bdfb206"}, + {file = "fonttools-4.53.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ee595d7ba9bba130b2bec555a40aafa60c26ce68ed0cf509983e0f12d88674fd"}, + {file = "fonttools-4.53.0-cp38-cp38-win32.whl", hash = "sha256:fca66d9ff2ac89b03f5aa17e0b21a97c21f3491c46b583bb131eb32c7bab33af"}, + {file = "fonttools-4.53.0-cp38-cp38-win_amd64.whl", hash = "sha256:31f0e3147375002aae30696dd1dc596636abbd22fca09d2e730ecde0baad1d6b"}, + {file = "fonttools-4.53.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7d6166192dcd925c78a91d599b48960e0a46fe565391c79fe6de481ac44d20ac"}, + {file = "fonttools-4.53.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef50ec31649fbc3acf6afd261ed89d09eb909b97cc289d80476166df8438524d"}, + {file = "fonttools-4.53.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f193f060391a455920d61684a70017ef5284ccbe6023bb056e15e5ac3de11d1"}, + {file = "fonttools-4.53.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba9f09ff17f947392a855e3455a846f9855f6cf6bec33e9a427d3c1d254c712f"}, + {file = "fonttools-4.53.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0c555e039d268445172b909b1b6bdcba42ada1cf4a60e367d68702e3f87e5f64"}, + {file = "fonttools-4.53.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5a4788036201c908079e89ae3f5399b33bf45b9ea4514913f4dbbe4fac08efe0"}, + {file = "fonttools-4.53.0-cp39-cp39-win32.whl", hash = "sha256:d1a24f51a3305362b94681120c508758a88f207fa0a681c16b5a4172e9e6c7a9"}, + {file = "fonttools-4.53.0-cp39-cp39-win_amd64.whl", hash = "sha256:1e677bfb2b4bd0e5e99e0f7283e65e47a9814b0486cb64a41adf9ef110e078f2"}, + {file = "fonttools-4.53.0-py3-none-any.whl", hash = "sha256:6b4f04b1fbc01a3569d63359f2227c89ab294550de277fd09d8fca6185669fa4"}, + {file = "fonttools-4.53.0.tar.gz", hash = "sha256:c93ed66d32de1559b6fc348838c7572d5c0ac1e4a258e76763a5caddd8944002"}, +] + +[package.extras] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["munkres", "pycairo", "scipy"] +lxml = ["lxml (>=4.0)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.23.0)"] +symfont = ["sympy"] +type1 = ["xattr"] +ufo = ["fs (>=2.2.0,<3)"] +unicode = ["unicodedata2 (>=15.1.0)"] +woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] + +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] + +[[package]] +name = "future" +version = "1.0.0" +description = "Clean single-source support for Python 3 and 2" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "future-1.0.0-py3-none-any.whl", hash = "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216"}, + {file = "future-1.0.0.tar.gz", hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05"}, +] + +[[package]] +name = "gitdb" +version = "4.0.11" +description = "Git Object Database" +optional = false +python-versions = ">=3.7" +files = [ + {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, + {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, +] + +[package.dependencies] +smmap = ">=3.0.1,<6" + +[[package]] +name = "gitpython" +version = "3.1.43" +description = "GitPython is a Python library used to interact with Git repositories" +optional = false +python-versions = ">=3.7" +files = [ + {file = "GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff"}, + {file = "GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c"}, +] + +[package.dependencies] +gitdb = ">=4.0.1,<5" + +[package.extras] +doc = ["sphinx (==4.3.2)", "sphinx-autodoc-typehints", "sphinx-rtd-theme", "sphinxcontrib-applehelp (>=1.0.2,<=1.0.4)", "sphinxcontrib-devhelp (==1.0.2)", "sphinxcontrib-htmlhelp (>=2.0.0,<=2.0.1)", "sphinxcontrib-qthelp (==1.0.3)", "sphinxcontrib-serializinghtml (==1.1.5)"] +test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions"] + +[[package]] +name = "greenlet" +version = "3.0.3" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.7" +files = [ + {file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405"}, + {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f"}, + {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb"}, + {file = "greenlet-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9"}, + {file = "greenlet-3.0.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22"}, + {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3"}, + {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d"}, + {file = "greenlet-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728"}, + {file = "greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf"}, + {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305"}, + {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6"}, + {file = "greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2"}, + {file = "greenlet-3.0.3-cp37-cp37m-macosx_11_0_universal2.whl", hash = "sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41"}, + {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7"}, + {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6"}, + {file = "greenlet-3.0.3-cp37-cp37m-win32.whl", hash = "sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d"}, + {file = "greenlet-3.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67"}, + {file = "greenlet-3.0.3-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4"}, + {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5"}, + {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da"}, + {file = "greenlet-3.0.3-cp38-cp38-win32.whl", hash = "sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3"}, + {file = "greenlet-3.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf"}, + {file = "greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b"}, + {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6"}, + {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113"}, + {file = "greenlet-3.0.3-cp39-cp39-win32.whl", hash = "sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e"}, + {file = "greenlet-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067"}, + {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil"] + +[[package]] +name = "idna" +version = "3.7" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, +] + +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] + +[[package]] +name = "importlib-metadata" +version = "7.1.0" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"}, + {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"}, +] + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +perf = ["ipython"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "ipykernel" +version = "6.29.4" +description = "IPython Kernel for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.29.4-py3-none-any.whl", hash = "sha256:1181e653d95c6808039c509ef8e67c4126b3b3af7781496c7cbfb5ed938a27da"}, + {file = "ipykernel-6.29.4.tar.gz", hash = "sha256:3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=24" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.25.0" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.10" +files = [ + {file = "ipython-8.25.0-py3-none-any.whl", hash = "sha256:53eee7ad44df903a06655871cbab66d156a051fd86f3ec6750470ac9604ac1ab"}, + {file = "ipython-8.25.0.tar.gz", hash = "sha256:c6ed726a140b6e725b911528f80439c534fac915246af3efc39440a6b0f9d716"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} +prompt-toolkit = ">=3.0.41,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5.13.0" +typing-extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} + +[package.extras] +all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"] +black = ["black"] +doc = ["docrepr", "exceptiongroup", "intersphinx-registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing-extensions"] +kernel = ["ipykernel"] +matplotlib = ["matplotlib"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "ipython[test]", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"] + +[[package]] +name = "ipython-genutils" +version = "0.2.0" +description = "Vestigial utilities from IPython" +optional = false +python-versions = "*" +files = [ + {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, + {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, +] + +[[package]] +name = "ipywidgets" +version = "7.8.1" +description = "IPython HTML widgets for Jupyter" +optional = false +python-versions = "*" +files = [ + {file = "ipywidgets-7.8.1-py2.py3-none-any.whl", hash = "sha256:29f7056d368bf0a7b35d51cf0c56b58582da57c78bb9f765965fef7c332e807c"}, + {file = "ipywidgets-7.8.1.tar.gz", hash = "sha256:050b87bb9ac11641859af4c36cdb639ca072fb5e121f0f1a401f8a80f9fa008d"}, +] + +[package.dependencies] +comm = ">=0.1.3" +ipython = {version = ">=4.0.0", markers = "python_version >= \"3.3\""} +ipython-genutils = ">=0.2.0,<0.3.0" +jupyterlab-widgets = {version = ">=1.0.0,<3", markers = "python_version >= \"3.6\""} +traitlets = ">=4.3.1" +widgetsnbextension = ">=3.6.6,<3.7.0" + +[package.extras] +test = ["ipykernel", "mock", "pytest (>=3.6.0)", "pytest-cov"] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +optional = false +python-versions = ">=3.7" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] + +[package.dependencies] +arrow = ">=0.15.0" + +[[package]] +name = "jax" +version = "0.4.28" +description = "Differentiate, compile, and transform Numpy code." +optional = false +python-versions = ">=3.9" +files = [ + {file = "jax-0.4.28-py3-none-any.whl", hash = "sha256:6a181e6b5a5b1140e19cdd2d5c4aa779e4cb4ec627757b918be322d8e81035ba"}, + {file = "jax-0.4.28.tar.gz", hash = "sha256:dcf0a44aff2e1713f0a2b369281cd5b79d8c18fc1018905c4125897cb06b37e9"}, +] + +[package.dependencies] +ml-dtypes = ">=0.2.0" +numpy = [ + {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +opt-einsum = "*" +scipy = [ + {version = ">=1.9", markers = "python_version < \"3.12\""}, + {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, +] + +[package.extras] +australis = ["protobuf (>=3.13,<4)"] +ci = ["jaxlib (==0.4.27)"] +cpu = ["jaxlib (==0.4.28)"] +cuda = ["jaxlib (==0.4.28+cuda12.cudnn89)"] +cuda12 = ["jax-cuda12-plugin (==0.4.28)", "jaxlib (==0.4.28)", "nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] +cuda12-cudnn89 = ["jaxlib (==0.4.28+cuda12.cudnn89)"] +cuda12-local = ["jaxlib (==0.4.28+cuda12.cudnn89)"] +cuda12-pip = ["jaxlib (==0.4.28+cuda12.cudnn89)", "nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] +minimum-jaxlib = ["jaxlib (==0.4.27)"] +tpu = ["jaxlib (==0.4.28)", "libtpu-nightly (==0.1.dev20240508)", "requests"] + +[[package]] +name = "jaxlib" +version = "0.4.28" +description = "XLA library for JAX" +optional = false +python-versions = ">=3.9" +files = [ + {file = "jaxlib-0.4.28-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:a421d237f8c25d2850166d334603c673ddb9b6c26f52bc496704b8782297bd66"}, + {file = "jaxlib-0.4.28-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f038e68bd10d1a3554722b0bbe36e6a448384437a75aa9d283f696f0ed9f8c09"}, + {file = "jaxlib-0.4.28-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:fabe77c174e9e196e9373097cefbb67e00c7e5f9d864583a7cfcf9dabd2429b6"}, + {file = "jaxlib-0.4.28-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:e3bcdc6f8e60f8554f415c14d930134e602e3ca33c38e546274fd545f875769b"}, + {file = "jaxlib-0.4.28-cp310-cp310-win_amd64.whl", hash = "sha256:a8b31c0e5eea36b7915696b9be40ea8646edc395a3e5437bf7ef26b7239a567a"}, + {file = "jaxlib-0.4.28-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:2ff8290edc7b92c7eae52517f65492633e267b2e9067bad3e4c323d213e77cf5"}, + {file = "jaxlib-0.4.28-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:793857faf37f371cafe752fea5fc811f435e43b8fb4b502058444a7f5eccf829"}, + {file = "jaxlib-0.4.28-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:b41a6b0d506c09f86a18ecc05bd376f072b548af89c333107e49bb0c09c1a3f8"}, + {file = "jaxlib-0.4.28-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:45ce0f3c840cff8236cff26c37f26c9ff078695f93e0c162c320c281f5041275"}, + {file = "jaxlib-0.4.28-cp311-cp311-win_amd64.whl", hash = "sha256:d4d762c3971d74e610a0e85a7ee063cea81a004b365b2a7dc65133f08b04fac5"}, + {file = "jaxlib-0.4.28-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:d6c09a545329722461af056e735146d2c8c74c22ac7426a845eb69f326b4f7a0"}, + {file = "jaxlib-0.4.28-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8dd8bffe3853702f63cd924da0ee25734a4d19cd5c926be033d772ba7d1c175d"}, + {file = "jaxlib-0.4.28-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:de2e8521eb51e16e85093a42cb51a781773fa1040dcf9245d7ea160a14ee5a5b"}, + {file = "jaxlib-0.4.28-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:46a1aa857f4feee8a43fcba95c0e0ab62d40c26cc9730b6c69655908ba359f8d"}, + {file = "jaxlib-0.4.28-cp312-cp312-win_amd64.whl", hash = "sha256:eee428eac31697a070d655f1f24f6ab39ced76750d93b1de862377a52dcc2401"}, + {file = "jaxlib-0.4.28-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:4f98cc837b2b6c6dcfe0ab7ff9eb109314920946119aa3af9faa139718ff2787"}, + {file = "jaxlib-0.4.28-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b01562ec8ad75719b7d0389752489e97eb6b4dcb4c8c113be491634d5282ad3c"}, + {file = "jaxlib-0.4.28-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:aa77a9360a395ba9faf6932df637686fb0c14ddcf4fdc1d2febe04bc88a580a6"}, + {file = "jaxlib-0.4.28-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:4a56ebf05b4a4c1791699d874e072f3f808f0986b4010b14fb549a69c90ca9dc"}, + {file = "jaxlib-0.4.28-cp39-cp39-win_amd64.whl", hash = "sha256:459a4ddcc3e120904b9f13a245430d7801d707bca48925981cbdc59628057dc8"}, +] + +[package.dependencies] +ml-dtypes = ">=0.2.0" +numpy = ">=1.22" +scipy = [ + {version = ">=1.9", markers = "python_version < \"3.12\""}, + {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, +] + +[package.extras] +cuda12-pip = ["nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] + +[[package]] +name = "jaxtyping" +version = "0.2.29" +description = "Type annotations and runtime checking for shape and dtype of JAX arrays, and PyTrees." +optional = false +python-versions = "~=3.9" +files = [ + {file = "jaxtyping-0.2.29-py3-none-any.whl", hash = "sha256:3580fc4dfef4c98ef2372c2c81314d89b98a186eb78d69d925fd0546025d556f"}, + {file = "jaxtyping-0.2.29.tar.gz", hash = "sha256:e1cd916ed0196e40402b0638449e7d051571562b2cd68d8b94961a383faeb409"}, +] + +[package.dependencies] +typeguard = "2.13.3" + +[[package]] +name = "jedi" +version = "0.19.1" +description = "An autocompletion tool for Python that can be used for text editors." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, + {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, +] + +[package.dependencies] +parso = ">=0.8.3,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jsonpointer" +version = "2.4" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +files = [ + {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, + {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, +] + +[[package]] +name = "jsonschema" +version = "4.17.3" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jsonschema-4.17.3-py3-none-any.whl", hash = "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"}, + {file = "jsonschema-4.17.3.tar.gz", hash = "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"}, +] + +[package.dependencies] +attrs = ">=17.4.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" +rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] + +[[package]] +name = "jupyter-cache" +version = "0.4.3" +description = "A defined interface for working with a cache of jupyter notebooks." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jupyter-cache-0.4.3.tar.gz", hash = "sha256:4c9b5431b1d320bc68440c21fa0a155bbeb29c5b979bef72222e244a7bcd54fc"}, + {file = "jupyter_cache-0.4.3-py3-none-any.whl", hash = "sha256:6d5d662d81f565d18009e8dcfd3a56fb876af47eafead2a19ef0045aba8ffe3b"}, +] + +[package.dependencies] +attrs = "*" +nbclient = ">=0.2,<0.6" +nbdime = "*" +nbformat = "*" +sqlalchemy = ">=1.3.12,<1.5" + +[package.extras] +cli = ["click", "click-completion", "click-log", "pyyaml", "tabulate"] +code-style = ["black", "flake8 (>=3.7.0,<3.8.0)", "pre-commit (==1.17.0)"] +rtd = ["myst-nb (>=0.7,<1.0)", "pydata-sphinx-theme", "sphinx-copybutton"] +testing = ["coverage", "ipykernel", "matplotlib", "nbformat (>=5.1)", "numpy", "pandas", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions", "sympy"] + +[[package]] +name = "jupyter-client" +version = "8.6.2" +description = "Jupyter protocol implementation and client libraries" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_client-8.6.2-py3-none-any.whl", hash = "sha256:50cbc5c66fd1b8f65ecb66bc490ab73217993632809b6e505687de18e9dea39f"}, + {file = "jupyter_client-8.6.2.tar.gz", hash = "sha256:2bda14d55ee5ba58552a8c53ae43d215ad9868853489213f37da060ced54d8df"}, +] + +[package.dependencies] +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = ">=5.3" + +[package.extras] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] + +[[package]] +name = "jupyter-core" +version = "5.7.2" +description = "Jupyter core package. A base package on which Jupyter projects rely." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-events" +version = "0.6.3" +description = "Jupyter Event System library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_events-0.6.3-py3-none-any.whl", hash = "sha256:57a2749f87ba387cd1bfd9b22a0875b889237dbf2edc2121ebb22bde47036c17"}, + {file = "jupyter_events-0.6.3.tar.gz", hash = "sha256:9a6e9995f75d1b7146b436ea24d696ce3a35bfa8bfe45e0c33c334c79464d0b3"}, +] + +[package.dependencies] +jsonschema = {version = ">=3.2.0", extras = ["format-nongpl"]} +python-json-logger = ">=2.0.4" +pyyaml = ">=5.3" +rfc3339-validator = "*" +rfc3986-validator = ">=0.1.1" +traitlets = ">=5.3" + +[package.extras] +cli = ["click", "rich"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] +test = ["click", "coverage", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "pytest-cov", "rich"] + +[[package]] +name = "jupyter-server" +version = "2.10.0" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server-2.10.0-py3-none-any.whl", hash = "sha256:dde56c9bc3cb52d7b72cc0f696d15d7163603526f1a758eb4a27405b73eab2a5"}, + {file = "jupyter_server-2.10.0.tar.gz", hash = "sha256:47b8f5e63440125cb1bb8957bf12b18453ee5ed9efe42d2f7b2ca66a7019a278"}, +] + +[package.dependencies] +anyio = ">=3.1.0" +argon2-cffi = "*" +jinja2 = "*" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-events = ">=0.6.0" +jupyter-server-terminals = "*" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +overrides = "*" +packaging = "*" +prometheus-client = "*" +pywinpty = {version = "*", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = ">=1.8.2" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = "*" + +[package.extras] +docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] + +[[package]] +name = "jupyter-server-mathjax" +version = "0.2.6" +description = "MathJax resources as a Jupyter Server Extension." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_server_mathjax-0.2.6-py3-none-any.whl", hash = "sha256:416389dde2010df46d5fbbb7adb087a5607111070af65a1445391040f2babb5e"}, + {file = "jupyter_server_mathjax-0.2.6.tar.gz", hash = "sha256:bb1e6b6dc0686c1fe386a22b5886163db548893a99c2810c36399e9c4ca23943"}, +] + +[package.dependencies] +jupyter-server = ">=1.1" + +[package.extras] +test = ["jupyter-server[test]", "pytest"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.3" +description = "A Jupyter Server Extension Providing Terminals." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, + {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, +] + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + +[[package]] +name = "jupyter-sphinx" +version = "0.3.2" +description = "Jupyter Sphinx Extensions" +optional = false +python-versions = ">= 3.6" +files = [ + {file = "jupyter_sphinx-0.3.2-py3-none-any.whl", hash = "sha256:301e36d0fb3007bb5802f6b65b60c24990eb99c983332a2ab6eecff385207dc9"}, + {file = "jupyter_sphinx-0.3.2.tar.gz", hash = "sha256:37fc9408385c45326ac79ca0452fbd7ae2bf0e97842d626d2844d4830e30aaf2"}, +] + +[package.dependencies] +IPython = "*" +ipywidgets = ">=7.0.0" +nbconvert = ">=5.5" +nbformat = "*" +Sphinx = ">=2" + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +description = "Pygments theme using JupyterLab CSS variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, + {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, +] + +[[package]] +name = "jupyterlab-widgets" +version = "1.1.7" +description = "A JupyterLab extension." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jupyterlab_widgets-1.1.7-py3-none-any.whl", hash = "sha256:0c4548cf42032e490447e4180f2c7d49ba5c30b42164992b38fb8c9d56c4e1b2"}, + {file = "jupyterlab_widgets-1.1.7.tar.gz", hash = "sha256:318dab34267915d658e7b0dc57433ff0ce0d52b3e283986b73b66f7ab9017ae8"}, +] + +[[package]] +name = "kiwisolver" +version = "1.4.5" +description = "A fast implementation of the Cassowary constraint solver" +optional = false +python-versions = ">=3.7" +files = [ + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, + {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, +] + +[[package]] +name = "lxml" +version = "5.2.2" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +optional = false +python-versions = ">=3.6" +files = [ + {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:364d03207f3e603922d0d3932ef363d55bbf48e3647395765f9bfcbdf6d23632"}, + {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50127c186f191b8917ea2fb8b206fbebe87fd414a6084d15568c27d0a21d60db"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74e4f025ef3db1c6da4460dd27c118d8cd136d0391da4e387a15e48e5c975147"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981a06a3076997adf7c743dcd0d7a0415582661e2517c7d961493572e909aa1d"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aef5474d913d3b05e613906ba4090433c515e13ea49c837aca18bde190853dff"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e275ea572389e41e8b039ac076a46cb87ee6b8542df3fff26f5baab43713bca"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5b65529bb2f21ac7861a0e94fdbf5dc0daab41497d18223b46ee8515e5ad297"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bcc98f911f10278d1daf14b87d65325851a1d29153caaf146877ec37031d5f36"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:b47633251727c8fe279f34025844b3b3a3e40cd1b198356d003aa146258d13a2"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:fbc9d316552f9ef7bba39f4edfad4a734d3d6f93341232a9dddadec4f15d425f"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:13e69be35391ce72712184f69000cda04fc89689429179bc4c0ae5f0b7a8c21b"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3b6a30a9ab040b3f545b697cb3adbf3696c05a3a68aad172e3fd7ca73ab3c835"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a233bb68625a85126ac9f1fc66d24337d6e8a0f9207b688eec2e7c880f012ec0"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:dfa7c241073d8f2b8e8dbc7803c434f57dbb83ae2a3d7892dd068d99e96efe2c"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1a7aca7964ac4bb07680d5c9d63b9d7028cace3e2d43175cb50bba8c5ad33316"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae4073a60ab98529ab8a72ebf429f2a8cc612619a8c04e08bed27450d52103c0"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ffb2be176fed4457e445fe540617f0252a72a8bc56208fd65a690fdb1f57660b"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e290d79a4107d7d794634ce3e985b9ae4f920380a813717adf61804904dc4393"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96e85aa09274955bb6bd483eaf5b12abadade01010478154b0ec70284c1b1526"}, + {file = "lxml-5.2.2-cp310-cp310-win32.whl", hash = "sha256:f956196ef61369f1685d14dad80611488d8dc1ef00be57c0c5a03064005b0f30"}, + {file = "lxml-5.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:875a3f90d7eb5c5d77e529080d95140eacb3c6d13ad5b616ee8095447b1d22e7"}, + {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45f9494613160d0405682f9eee781c7e6d1bf45f819654eb249f8f46a2c22545"}, + {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0b3f2df149efb242cee2ffdeb6674b7f30d23c9a7af26595099afaf46ef4e88"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d28cb356f119a437cc58a13f8135ab8a4c8ece18159eb9194b0d269ec4e28083"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:657a972f46bbefdbba2d4f14413c0d079f9ae243bd68193cb5061b9732fa54c1"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b9ea10063efb77a965a8d5f4182806fbf59ed068b3c3fd6f30d2ac7bee734"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07542787f86112d46d07d4f3c4e7c760282011b354d012dc4141cc12a68cef5f"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:303f540ad2dddd35b92415b74b900c749ec2010e703ab3bfd6660979d01fd4ed"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2eb2227ce1ff998faf0cd7fe85bbf086aa41dfc5af3b1d80867ecfe75fb68df3"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:1d8a701774dfc42a2f0b8ccdfe7dbc140500d1049e0632a611985d943fcf12df"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:56793b7a1a091a7c286b5f4aa1fe4ae5d1446fe742d00cdf2ffb1077865db10d"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eb00b549b13bd6d884c863554566095bf6fa9c3cecb2e7b399c4bc7904cb33b5"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a2569a1f15ae6c8c64108a2cd2b4a858fc1e13d25846be0666fc144715e32ab"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:8cf85a6e40ff1f37fe0f25719aadf443686b1ac7652593dc53c7ef9b8492b115"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:d237ba6664b8e60fd90b8549a149a74fcc675272e0e95539a00522e4ca688b04"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0b3f5016e00ae7630a4b83d0868fca1e3d494c78a75b1c7252606a3a1c5fc2ad"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23441e2b5339bc54dc949e9e675fa35efe858108404ef9aa92f0456929ef6fe8"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2fb0ba3e8566548d6c8e7dd82a8229ff47bd8fb8c2da237607ac8e5a1b8312e5"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:79d1fb9252e7e2cfe4de6e9a6610c7cbb99b9708e2c3e29057f487de5a9eaefa"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6dcc3d17eac1df7859ae01202e9bb11ffa8c98949dcbeb1069c8b9a75917e01b"}, + {file = "lxml-5.2.2-cp311-cp311-win32.whl", hash = "sha256:4c30a2f83677876465f44c018830f608fa3c6a8a466eb223535035fbc16f3438"}, + {file = "lxml-5.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:49095a38eb333aaf44c06052fd2ec3b8f23e19747ca7ec6f6c954ffea6dbf7be"}, + {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7429e7faa1a60cad26ae4227f4dd0459efde239e494c7312624ce228e04f6391"}, + {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:50ccb5d355961c0f12f6cf24b7187dbabd5433f29e15147a67995474f27d1776"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc911208b18842a3a57266d8e51fc3cfaccee90a5351b92079beed912a7914c2"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33ce9e786753743159799fdf8e92a5da351158c4bfb6f2db0bf31e7892a1feb5"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec87c44f619380878bd49ca109669c9f221d9ae6883a5bcb3616785fa8f94c97"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08ea0f606808354eb8f2dfaac095963cb25d9d28e27edcc375d7b30ab01abbf6"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75a9632f1d4f698b2e6e2e1ada40e71f369b15d69baddb8968dcc8e683839b18"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74da9f97daec6928567b48c90ea2c82a106b2d500f397eeb8941e47d30b1ca85"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:0969e92af09c5687d769731e3f39ed62427cc72176cebb54b7a9d52cc4fa3b73"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:9164361769b6ca7769079f4d426a41df6164879f7f3568be9086e15baca61466"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d26a618ae1766279f2660aca0081b2220aca6bd1aa06b2cf73f07383faf48927"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab67ed772c584b7ef2379797bf14b82df9aa5f7438c5b9a09624dd834c1c1aaf"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:3d1e35572a56941b32c239774d7e9ad724074d37f90c7a7d499ab98761bd80cf"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:8268cbcd48c5375f46e000adb1390572c98879eb4f77910c6053d25cc3ac2c67"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e282aedd63c639c07c3857097fc0e236f984ceb4089a8b284da1c526491e3f3d"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfdc2bfe69e9adf0df4915949c22a25b39d175d599bf98e7ddf620a13678585"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4aefd911793b5d2d7a921233a54c90329bf3d4a6817dc465f12ffdfe4fc7b8fe"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:8b8df03a9e995b6211dafa63b32f9d405881518ff1ddd775db4e7b98fb545e1c"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f11ae142f3a322d44513de1018b50f474f8f736bc3cd91d969f464b5bfef8836"}, + {file = "lxml-5.2.2-cp312-cp312-win32.whl", hash = "sha256:16a8326e51fcdffc886294c1e70b11ddccec836516a343f9ed0f82aac043c24a"}, + {file = "lxml-5.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:bbc4b80af581e18568ff07f6395c02114d05f4865c2812a1f02f2eaecf0bfd48"}, + {file = "lxml-5.2.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e3d9d13603410b72787579769469af730c38f2f25505573a5888a94b62b920f8"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38b67afb0a06b8575948641c1d6d68e41b83a3abeae2ca9eed2ac59892b36706"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c689d0d5381f56de7bd6966a4541bff6e08bf8d3871bbd89a0c6ab18aa699573"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:cf2a978c795b54c539f47964ec05e35c05bd045db5ca1e8366988c7f2fe6b3ce"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:739e36ef7412b2bd940f75b278749106e6d025e40027c0b94a17ef7968d55d56"}, + {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d8bbcd21769594dbba9c37d3c819e2d5847656ca99c747ddb31ac1701d0c0ed9"}, + {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:2304d3c93f2258ccf2cf7a6ba8c761d76ef84948d87bf9664e14d203da2cd264"}, + {file = "lxml-5.2.2-cp36-cp36m-win32.whl", hash = "sha256:02437fb7308386867c8b7b0e5bc4cd4b04548b1c5d089ffb8e7b31009b961dc3"}, + {file = "lxml-5.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edcfa83e03370032a489430215c1e7783128808fd3e2e0a3225deee278585196"}, + {file = "lxml-5.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:28bf95177400066596cdbcfc933312493799382879da504633d16cf60bba735b"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a745cc98d504d5bd2c19b10c79c61c7c3df9222629f1b6210c0368177589fb8"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b336b0416828022bfd5a2e3083e7f5ba54b96242159f83c7e3eebaec752f1716"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:4bc6cb140a7a0ad1f7bc37e018d0ed690b7b6520ade518285dc3171f7a117905"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:57f0a0bbc9868e10ebe874e9f129d2917750adf008fe7b9c1598c0fbbfdde6a6"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:60499fe961b21264e17a471ec296dcbf4365fbea611bf9e303ab69db7159ce61"}, + {file = "lxml-5.2.2-cp37-cp37m-win32.whl", hash = "sha256:d9b342c76003c6b9336a80efcc766748a333573abf9350f4094ee46b006ec18f"}, + {file = "lxml-5.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b16db2770517b8799c79aa80f4053cd6f8b716f21f8aca962725a9565ce3ee40"}, + {file = "lxml-5.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7ed07b3062b055d7a7f9d6557a251cc655eed0b3152b76de619516621c56f5d3"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f60fdd125d85bf9c279ffb8e94c78c51b3b6a37711464e1f5f31078b45002421"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a7e24cb69ee5f32e003f50e016d5fde438010c1022c96738b04fc2423e61706"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23cfafd56887eaed93d07bc4547abd5e09d837a002b791e9767765492a75883f"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:19b4e485cd07b7d83e3fe3b72132e7df70bfac22b14fe4bf7a23822c3a35bff5"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7ce7ad8abebe737ad6143d9d3bf94b88b93365ea30a5b81f6877ec9c0dee0a48"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e49b052b768bb74f58c7dda4e0bdf7b79d43a9204ca584ffe1fb48a6f3c84c66"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d14a0d029a4e176795cef99c056d58067c06195e0c7e2dbb293bf95c08f772a3"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:be49ad33819d7dcc28a309b86d4ed98e1a65f3075c6acd3cd4fe32103235222b"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a6d17e0370d2516d5bb9062c7b4cb731cff921fc875644c3d751ad857ba9c5b1"}, + {file = "lxml-5.2.2-cp38-cp38-win32.whl", hash = "sha256:5b8c041b6265e08eac8a724b74b655404070b636a8dd6d7a13c3adc07882ef30"}, + {file = "lxml-5.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:f61efaf4bed1cc0860e567d2ecb2363974d414f7f1f124b1df368bbf183453a6"}, + {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fb91819461b1b56d06fa4bcf86617fac795f6a99d12239fb0c68dbeba41a0a30"}, + {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d4ed0c7cbecde7194cd3228c044e86bf73e30a23505af852857c09c24e77ec5d"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54401c77a63cc7d6dc4b4e173bb484f28a5607f3df71484709fe037c92d4f0ed"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:625e3ef310e7fa3a761d48ca7ea1f9d8718a32b1542e727d584d82f4453d5eeb"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:519895c99c815a1a24a926d5b60627ce5ea48e9f639a5cd328bda0515ea0f10c"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c7079d5eb1c1315a858bbf180000757db8ad904a89476653232db835c3114001"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:343ab62e9ca78094f2306aefed67dcfad61c4683f87eee48ff2fd74902447726"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:cd9e78285da6c9ba2d5c769628f43ef66d96ac3085e59b10ad4f3707980710d3"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:546cf886f6242dff9ec206331209db9c8e1643ae642dea5fdbecae2453cb50fd"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:02f6a8eb6512fdc2fd4ca10a49c341c4e109aa6e9448cc4859af5b949622715a"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:339ee4a4704bc724757cd5dd9dc8cf4d00980f5d3e6e06d5847c1b594ace68ab"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0a028b61a2e357ace98b1615fc03f76eb517cc028993964fe08ad514b1e8892d"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f90e552ecbad426eab352e7b2933091f2be77115bb16f09f78404861c8322981"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d83e2d94b69bf31ead2fa45f0acdef0757fa0458a129734f59f67f3d2eb7ef32"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a02d3c48f9bb1e10c7788d92c0c7db6f2002d024ab6e74d6f45ae33e3d0288a3"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6d68ce8e7b2075390e8ac1e1d3a99e8b6372c694bbe612632606d1d546794207"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:453d037e09a5176d92ec0fd282e934ed26d806331a8b70ab431a81e2fbabf56d"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:3b019d4ee84b683342af793b56bb35034bd749e4cbdd3d33f7d1107790f8c472"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb3942960f0beb9f46e2a71a3aca220d1ca32feb5a398656be934320804c0df9"}, + {file = "lxml-5.2.2-cp39-cp39-win32.whl", hash = "sha256:ac6540c9fff6e3813d29d0403ee7a81897f1d8ecc09a8ff84d2eea70ede1cdbf"}, + {file = "lxml-5.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:610b5c77428a50269f38a534057444c249976433f40f53e3b47e68349cca1425"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b537bd04d7ccd7c6350cdaaaad911f6312cbd61e6e6045542f781c7f8b2e99d2"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4820c02195d6dfb7b8508ff276752f6b2ff8b64ae5d13ebe02e7667e035000b9"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a09f6184f17a80897172863a655467da2b11151ec98ba8d7af89f17bf63dae"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:76acba4c66c47d27c8365e7c10b3d8016a7da83d3191d053a58382311a8bf4e1"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b128092c927eaf485928cec0c28f6b8bead277e28acf56800e972aa2c2abd7a2"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ae791f6bd43305aade8c0e22f816b34f3b72b6c820477aab4d18473a37e8090b"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a2f6a1bc2460e643785a2cde17293bd7a8f990884b822f7bca47bee0a82fc66b"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e8d351ff44c1638cb6e980623d517abd9f580d2e53bfcd18d8941c052a5a009"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bec4bd9133420c5c52d562469c754f27c5c9e36ee06abc169612c959bd7dbb07"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:55ce6b6d803890bd3cc89975fca9de1dff39729b43b73cb15ddd933b8bc20484"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8ab6a358d1286498d80fe67bd3d69fcbc7d1359b45b41e74c4a26964ca99c3f8"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:06668e39e1f3c065349c51ac27ae430719d7806c026fec462e5693b08b95696b"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9cd5323344d8ebb9fb5e96da5de5ad4ebab993bbf51674259dbe9d7a18049525"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89feb82ca055af0fe797a2323ec9043b26bc371365847dbe83c7fd2e2f181c34"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e481bba1e11ba585fb06db666bfc23dbe181dbafc7b25776156120bf12e0d5a6"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d6c6ea6a11ca0ff9cd0390b885984ed31157c168565702959c25e2191674a14"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3d98de734abee23e61f6b8c2e08a88453ada7d6486dc7cdc82922a03968928db"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:69ab77a1373f1e7563e0fb5a29a8440367dec051da6c7405333699d07444f511"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:34e17913c431f5ae01d8658dbf792fdc457073dcdfbb31dc0cc6ab256e664a8d"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05f8757b03208c3f50097761be2dea0aba02e94f0dc7023ed73a7bb14ff11eb0"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a520b4f9974b0a0a6ed73c2154de57cdfd0c8800f4f15ab2b73238ffed0b36e"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5e097646944b66207023bc3c634827de858aebc226d5d4d6d16f0b77566ea182"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b5e4ef22ff25bfd4ede5f8fb30f7b24446345f3e79d9b7455aef2836437bc38a"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ff69a9a0b4b17d78170c73abe2ab12084bdf1691550c5629ad1fe7849433f324"}, + {file = "lxml-5.2.2.tar.gz", hash = "sha256:bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87"}, +] + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html-clean = ["lxml-html-clean"] +html5 = ["html5lib"] +htmlsoup = ["BeautifulSoup4"] +source = ["Cython (>=3.0.10)"] + +[[package]] +name = "markdown-it-py" +version = "1.1.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = "~=3.6" +files = [ + {file = "markdown-it-py-1.1.0.tar.gz", hash = "sha256:36be6bb3ad987bfdb839f5ba78ddf094552ca38ccbd784ae4f74a4e1419fc6e3"}, + {file = "markdown_it_py-1.1.0-py3-none-any.whl", hash = "sha256:98080fc0bc34c4f2bcf0846a096a9429acbd9d5d8e67ed34026c03c61c464389"}, +] + +[package.dependencies] +attrs = ">=19,<22" + +[package.extras] +code-style = ["pre-commit (==2.6)"] +compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.2.2,<3.3.0)", "mistletoe-ebp (>=0.10.0,<0.11.0)", "mistune (>=0.8.4,<0.9.0)", "panflute (>=1.12,<2.0)"] +linkify = ["linkify-it-py (>=1.0,<2.0)"] +plugins = ["mdit-py-plugins"] +rtd = ["myst-nb (==0.13.0a1)", "pyyaml", "sphinx (>=2,<4)", "sphinx-book-theme", "sphinx-copybutton", "sphinx-panels (>=0.4.0,<0.5.0)"] +testing = ["coverage", "psutil", "pytest (>=3.6,<4)", "pytest-benchmark (>=3.2,<4.0)", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "2.1.5" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] + +[[package]] +name = "matplotlib" +version = "3.9.0" +description = "Python plotting package" +optional = false +python-versions = ">=3.9" +files = [ + {file = "matplotlib-3.9.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2bcee1dffaf60fe7656183ac2190bd630842ff87b3153afb3e384d966b57fe56"}, + {file = "matplotlib-3.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f988bafb0fa39d1074ddd5bacd958c853e11def40800c5824556eb630f94d3b"}, + {file = "matplotlib-3.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe428e191ea016bb278758c8ee82a8129c51d81d8c4bc0846c09e7e8e9057241"}, + {file = "matplotlib-3.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaf3978060a106fab40c328778b148f590e27f6fa3cd15a19d6892575bce387d"}, + {file = "matplotlib-3.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2e7f03e5cbbfacdd48c8ea394d365d91ee8f3cae7e6ec611409927b5ed997ee4"}, + {file = "matplotlib-3.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:13beb4840317d45ffd4183a778685e215939be7b08616f431c7795276e067463"}, + {file = "matplotlib-3.9.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:063af8587fceeac13b0936c42a2b6c732c2ab1c98d38abc3337e430e1ff75e38"}, + {file = "matplotlib-3.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a2fa6d899e17ddca6d6526cf6e7ba677738bf2a6a9590d702c277204a7c6152"}, + {file = "matplotlib-3.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:550cdda3adbd596078cca7d13ed50b77879104e2e46392dcd7c75259d8f00e85"}, + {file = "matplotlib-3.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76cce0f31b351e3551d1f3779420cf8f6ec0d4a8cf9c0237a3b549fd28eb4abb"}, + {file = "matplotlib-3.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c53aeb514ccbbcbab55a27f912d79ea30ab21ee0531ee2c09f13800efb272674"}, + {file = "matplotlib-3.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:a5be985db2596d761cdf0c2eaf52396f26e6a64ab46bd8cd810c48972349d1be"}, + {file = "matplotlib-3.9.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c79f3a585f1368da6049318bdf1f85568d8d04b2e89fc24b7e02cc9b62017382"}, + {file = "matplotlib-3.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bdd1ecbe268eb3e7653e04f451635f0fb0f77f07fd070242b44c076c9106da84"}, + {file = "matplotlib-3.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d38e85a1a6d732f645f1403ce5e6727fd9418cd4574521d5803d3d94911038e5"}, + {file = "matplotlib-3.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a490715b3b9984fa609116481b22178348c1a220a4499cda79132000a79b4db"}, + {file = "matplotlib-3.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8146ce83cbc5dc71c223a74a1996d446cd35cfb6a04b683e1446b7e6c73603b7"}, + {file = "matplotlib-3.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:d91a4ffc587bacf5c4ce4ecfe4bcd23a4b675e76315f2866e588686cc97fccdf"}, + {file = "matplotlib-3.9.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:616fabf4981a3b3c5a15cd95eba359c8489c4e20e03717aea42866d8d0465956"}, + {file = "matplotlib-3.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cd53c79fd02f1c1808d2cfc87dd3cf4dbc63c5244a58ee7944497107469c8d8a"}, + {file = "matplotlib-3.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06a478f0d67636554fa78558cfbcd7b9dba85b51f5c3b5a0c9be49010cf5f321"}, + {file = "matplotlib-3.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81c40af649d19c85f8073e25e5806926986806fa6d54be506fbf02aef47d5a89"}, + {file = "matplotlib-3.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52146fc3bd7813cc784562cb93a15788be0b2875c4655e2cc6ea646bfa30344b"}, + {file = "matplotlib-3.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:0fc51eaa5262553868461c083d9adadb11a6017315f3a757fc45ec6ec5f02888"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bd4f2831168afac55b881db82a7730992aa41c4f007f1913465fb182d6fb20c0"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:290d304e59be2b33ef5c2d768d0237f5bd132986bdcc66f80bc9bcc300066a03"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff2e239c26be4f24bfa45860c20ffccd118d270c5b5d081fa4ea409b5469fcd"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:af4001b7cae70f7eaacfb063db605280058246de590fa7874f00f62259f2df7e"}, + {file = "matplotlib-3.9.0.tar.gz", hash = "sha256:e6d29ea6c19e34b30fb7d88b7081f869a03014f66fe06d62cc77d5a6ea88ed7a"}, +] + +[package.dependencies] +contourpy = ">=1.0.1" +cycler = ">=0.10" +fonttools = ">=4.22.0" +kiwisolver = ">=1.3.1" +numpy = ">=1.23" +packaging = ">=20.0" +pillow = ">=8" +pyparsing = ">=2.3.1" +python-dateutil = ">=2.7" + +[package.extras] +dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +description = "Inline Matplotlib backend for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, +] + +[package.dependencies] +traitlets = "*" + +[[package]] +name = "mdit-py-plugins" +version = "0.2.8" +description = "Collection of plugins for markdown-it-py" +optional = false +python-versions = "~=3.6" +files = [ + {file = "mdit-py-plugins-0.2.8.tar.gz", hash = "sha256:5991cef645502e80a5388ec4fc20885d2313d4871e8b8e320ca2de14ac0c015f"}, + {file = "mdit_py_plugins-0.2.8-py3-none-any.whl", hash = "sha256:1833bf738e038e35d89cb3a07eb0d227ed647ce7dd357579b65343740c6d249c"}, +] + +[package.dependencies] +markdown-it-py = ">=1.0,<2.0" + +[package.extras] +code-style = ["pre-commit (==2.6)"] +rtd = ["myst-parser (==0.14.0a3)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] +testing = ["coverage", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mistune" +version = "0.8.4" +description = "The fastest markdown parser in pure Python" +optional = false +python-versions = "*" +files = [ + {file = "mistune-0.8.4-py2.py3-none-any.whl", hash = "sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4"}, + {file = "mistune-0.8.4.tar.gz", hash = "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e"}, +] + +[[package]] +name = "ml-dtypes" +version = "0.4.0" +description = "" +optional = false +python-versions = ">=3.9" +files = [ + {file = "ml_dtypes-0.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:93afe37f3a879d652ec9ef1fc47612388890660a2657fbb5747256c3b818fd81"}, + {file = "ml_dtypes-0.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bb83fd064db43e67e67d021e547698af4c8d5c6190f2e9b1c53c09f6ff5531d"}, + {file = "ml_dtypes-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03e7cda6ef164eed0abb31df69d2c00c3a5ab3e2610b6d4c42183a43329c72a5"}, + {file = "ml_dtypes-0.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:a15d96d090aebb55ee85173d1775ae325a001aab607a76c8ea0b964ccd6b5364"}, + {file = "ml_dtypes-0.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bdf689be7351cc3c95110c910c1b864002f113e682e44508910c849e144f3df1"}, + {file = "ml_dtypes-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c83e4d443962d891d51669ff241d5aaad10a8d3d37a81c5532a45419885d591c"}, + {file = "ml_dtypes-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1e2f4237b459a63c97c2c9f449baa637d7e4c20addff6a9bac486f22432f3b6"}, + {file = "ml_dtypes-0.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:75b4faf99d0711b81f393db36d210b4255fd419f6f790bc6c1b461f95ffb7a9e"}, + {file = "ml_dtypes-0.4.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ee9f91d4c4f9959a7e1051c141dc565f39e54435618152219769e24f5e9a4d06"}, + {file = "ml_dtypes-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad6849a2db386b38e4d54fe13eb3293464561780531a918f8ef4c8169170dd49"}, + {file = "ml_dtypes-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa32979ebfde3a0d7c947cafbf79edc1ec77ac05ad0780ee86c1d8df70f2259"}, + {file = "ml_dtypes-0.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:3b67ec73a697c88c1122038e0de46520e48dc2ec876d42cf61bc5efe3c0b7675"}, + {file = "ml_dtypes-0.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:41affb38fdfe146e3db226cf2953021184d6f0c4ffab52136613e9601706e368"}, + {file = "ml_dtypes-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43cf4356a0fe2eeac6d289018d0734e17a403bdf1fd911953c125dd0358edcc0"}, + {file = "ml_dtypes-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1724ddcdf5edbaf615a62110af47407f1719b8d02e68ccee60683acb5f74da1"}, + {file = "ml_dtypes-0.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:723af6346447268a3cf0b7356e963d80ecb5732b5279b2aa3fa4b9fc8297c85e"}, + {file = "ml_dtypes-0.4.0.tar.gz", hash = "sha256:eaf197e72f4f7176a19fe3cb8b61846b38c6757607e7bf9cd4b1d84cd3e74deb"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.21.2", markers = "python_version >= \"3.10\""}, + {version = ">=1.23.3", markers = "python_version >= \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] + +[package.extras] +dev = ["absl-py", "pyink", "pylint (>=2.6.0)", "pytest", "pytest-xdist"] + +[[package]] +name = "multipledispatch" +version = "1.0.0" +description = "Multiple dispatch" +optional = false +python-versions = "*" +files = [ + {file = "multipledispatch-1.0.0-py3-none-any.whl", hash = "sha256:0c53cd8b077546da4e48869f49b13164bebafd0c2a5afceb6bb6a316e7fb46e4"}, + {file = "multipledispatch-1.0.0.tar.gz", hash = "sha256:5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0"}, +] + +[[package]] +name = "myst-nb" +version = "0.13.2" +description = "A Jupyter Notebook Sphinx reader built on top of the MyST markdown parser." +optional = false +python-versions = ">=3.6" +files = [ + {file = "myst-nb-0.13.2.tar.gz", hash = "sha256:81e0a4f186bb35c487f5443c7005a474d68ffb58f518f469102d1db7b452066a"}, + {file = "myst_nb-0.13.2-py3-none-any.whl", hash = "sha256:1b9ea3a04c9e0eee05145aa297d2feeabb94c4e23e3047b92efa011ddba4f4b4"}, +] + +[package.dependencies] +docutils = ">=0.15,<0.18" +importlib-metadata = "*" +ipython = "*" +ipywidgets = ">=7.0.0,<8" +jupyter-cache = ">=0.4.1,<0.5.0" +jupyter-sphinx = ">=0.3.2,<0.4.0" +myst-parser = ">=0.15.2,<0.16.0" +nbconvert = ">=5.6,<7" +nbformat = ">=5.0,<6.0" +pyyaml = "*" +sphinx = ">=3.1,<5" +sphinx-togglebutton = ">=0.3.0,<0.4.0" + +[package.extras] +code-style = ["pre-commit (>=2.12,<3.0)"] +rtd = ["alabaster", "altair", "bokeh", "coconut (>=1.4.3,<1.5.0)", "ipykernel (>=5.5,<6.0)", "ipywidgets", "jupytext (>=1.11.2,<1.12.0)", "matplotlib", "numpy", "pandas", "plotly", "sphinx-book-theme (>=0.1.0,<0.2.0)", "sphinx-copybutton", "sphinx-panels (>=0.4.1,<0.5.0)", "sphinxcontrib-bibtex", "sympy"] +testing = ["coverage (<5.0)", "ipykernel (>=5.5,<6.0)", "ipython (<8)", "jupytext (>=1.11.2,<1.12.0)", "matplotlib (>=3.3.0,<3.4.0)", "numpy", "pandas (<1.4)", "pytest (>=5.4,<6.0)", "pytest-cov (>=2.8,<3.0)", "pytest-regressions", "sympy"] + +[[package]] +name = "myst-parser" +version = "0.15.2" +description = "An extended commonmark compliant parser, with bridges to docutils & sphinx." +optional = false +python-versions = ">=3.6" +files = [ + {file = "myst-parser-0.15.2.tar.gz", hash = "sha256:f7f3b2d62db7655cde658eb5d62b2ec2a4631308137bd8d10f296a40d57bbbeb"}, + {file = "myst_parser-0.15.2-py3-none-any.whl", hash = "sha256:40124b6f27a4c42ac7f06b385e23a9dcd03d84801e9c7130b59b3729a554b1f9"}, +] + +[package.dependencies] +docutils = ">=0.15,<0.18" +jinja2 = "*" +markdown-it-py = ">=1.0.0,<2.0.0" +mdit-py-plugins = ">=0.2.8,<0.3.0" +pyyaml = "*" +sphinx = ">=3.1,<5" + +[package.extras] +code-style = ["pre-commit (>=2.12,<3.0)"] +linkify = ["linkify-it-py (>=1.0,<2.0)"] +rtd = ["ipython", "sphinx-book-theme (>=0.1.0,<0.2.0)", "sphinx-panels (>=0.5.2,<0.6.0)", "sphinxcontrib-bibtex (>=2.1,<3.0)", "sphinxcontrib.mermaid (>=0.6.3,<0.7.0)", "sphinxext-opengraph (>=0.4.2,<0.5.0)", "sphinxext-rediraffe (>=0.2,<1.0)"] +testing = ["beautifulsoup4", "coverage", "docutils (>=0.17.0,<0.18.0)", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "nbclassic" +version = "1.1.0" +description = "Jupyter Notebook as a Jupyter Server extension." +optional = false +python-versions = ">=3.7" +files = [ + {file = "nbclassic-1.1.0-py3-none-any.whl", hash = "sha256:8c0fd6e36e320a18657ff44ed96c3a400f17a903a3744fc322303a515778f2ba"}, + {file = "nbclassic-1.1.0.tar.gz", hash = "sha256:77b77ba85f9e988f9bad85df345b514e9e64c7f0e822992ab1df4a78ac64fc1e"}, +] + +[package.dependencies] +ipykernel = "*" +ipython-genutils = "*" +nest-asyncio = ">=1.5" +notebook-shim = ">=0.2.3" + +[package.extras] +docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +json-logging = ["json-logging"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "pytest-jupyter", "pytest-playwright", "pytest-tornasync", "requests", "requests-unixsocket", "testpath"] + +[[package]] +name = "nbclient" +version = "0.5.13" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "nbclient-0.5.13-py3-none-any.whl", hash = "sha256:47ac905af59379913c1f8f541098d2550153cf8dc58553cbe18c702b181518b0"}, + {file = "nbclient-0.5.13.tar.gz", hash = "sha256:40c52c9b5e3c31faecaee69f202b3f53e38d7c1c563de0fadde9d7eda0fdafe8"}, +] + +[package.dependencies] +jupyter-client = ">=6.1.5" +nbformat = ">=5.0" +nest-asyncio = "*" +traitlets = ">=5.0.0" + +[package.extras] +sphinx = ["Sphinx (>=1.7)", "mock", "moto", "myst-parser", "sphinx-book-theme"] +test = ["black", "check-manifest", "flake8", "ipykernel", "ipython (<8.0.0)", "ipywidgets (<8.0.0)", "mypy", "pip (>=18.1)", "pytest (>=4.1)", "pytest-asyncio", "pytest-cov (>=2.6.1)", "setuptools (>=38.6.0)", "twine (>=1.11.0)", "wheel (>=0.31.0)", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "6.5.4" +description = "Converting Jupyter Notebooks" +optional = false +python-versions = ">=3.7" +files = [ + {file = "nbconvert-6.5.4-py3-none-any.whl", hash = "sha256:d679a947f849a966cbbd0bf6e7fedcfdb64be3b20ce7cef11ad55c13f5820e19"}, + {file = "nbconvert-6.5.4.tar.gz", hash = "sha256:9e3c7c6d491374cbdd5f35d268c05809357716d346f4573186bbeab32ee50bc1"}, +] + +[package.dependencies] +beautifulsoup4 = "*" +bleach = "*" +defusedxml = "*" +entrypoints = ">=0.2.2" +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +lxml = "*" +MarkupSafe = ">=2.0" +mistune = ">=0.8.1,<2" +nbclient = ">=0.5.0" +nbformat = ">=5.1" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +tinycss2 = "*" +traitlets = ">=5.0" + +[package.extras] +all = ["ipykernel", "ipython", "ipywidgets (>=7)", "nbsphinx (>=0.2.12)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-cov", "pytest-dependency", "sphinx (>=1.5.1)", "sphinx-rtd-theme", "tornado (>=6.1)"] +docs = ["ipython", "nbsphinx (>=0.2.12)", "sphinx (>=1.5.1)", "sphinx-rtd-theme"] +serve = ["tornado (>=6.1)"] +test = ["ipykernel", "ipywidgets (>=7)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-cov", "pytest-dependency"] +webpdf = ["pyppeteer (>=1,<1.1)"] + +[[package]] +name = "nbdime" +version = "4.0.1" +description = "Diff and merge of Jupyter Notebooks" +optional = false +python-versions = ">=3.6" +files = [ + {file = "nbdime-4.0.1-py3-none-any.whl", hash = "sha256:82538e2b52e0834e9c07607e2dea27aceaaf7e8cf2269a4607c67ea9aa625404"}, + {file = "nbdime-4.0.1.tar.gz", hash = "sha256:f1a760c0b00c1ba9b4945c16ce92577f393fb51d184f351b7685ba6e8502098e"}, +] + +[package.dependencies] +colorama = "*" +gitpython = "<2.1.4 || >2.1.4,<2.1.5 || >2.1.5,<2.1.6 || >2.1.6" +jinja2 = ">=2.9" +jupyter-server = "*" +jupyter-server-mathjax = ">=0.2.2" +nbformat = "*" +pygments = "*" +requests = "*" +tornado = "*" + +[package.extras] +docs = ["recommonmark", "sphinx", "sphinx-rtd-theme"] +test = ["jsonschema", "jupyter-server[test]", "mock", "notebook", "pytest (>=6.0)", "pytest-cov", "pytest-timeout", "pytest-tornado", "requests", "tabulate"] + +[[package]] +name = "nbformat" +version = "5.10.4" +description = "The Jupyter Notebook format" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, + {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, +] + +[package.dependencies] +fastjsonschema = ">=2.15" +jsonschema = ">=2.6" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +traitlets = ">=5.1" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "netcdf4" +version = "1.6.5" +description = "Provides an object-oriented python interface to the netCDF version 4 library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "netCDF4-1.6.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d23b97cbde2bf413fadc4697c5c255a0436511c02f811e127e0fb12f5b882a4c"}, + {file = "netCDF4-1.6.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e5edfed673005f47f8d2fbea9c72c382b085dd358ac3c20ca743a563ed7b90e"}, + {file = "netCDF4-1.6.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10d2ac9ae1308ca837d86c6dc304ec455a85bdba0f2175e222844a54589168dc"}, + {file = "netCDF4-1.6.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a63a2be2f80977ac23bb0aa736c565011fd4639097ce0922e01b0dc38015df2"}, + {file = "netCDF4-1.6.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aaceea2097d292bad398d9f9b4fe403efa7b1568fcfa6faba9b67b1630027f9"}, + {file = "netCDF4-1.6.5-cp310-cp310-win_amd64.whl", hash = "sha256:111357d9e12eb79e8d58bfd91bc6b230d35b17a0ebd8c546d17416e8ceebea49"}, + {file = "netCDF4-1.6.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1c5fede0b34c0a02a1b9e84116bfb3fcd2f80124a651d4836e72b785d10e2f15"}, + {file = "netCDF4-1.6.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3de5512b9270aa6472e4f3aa2bf895a7364c1d4f8667ce3b82e8232197d4fec8"}, + {file = "netCDF4-1.6.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b20971a164431f6eca1d24df8aa153db15c2c1b9630e83ccc5cf004e8ac8151d"}, + {file = "netCDF4-1.6.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad1101d538077152b866782e44458356981526bf2ea9cc07930bf28b589c82a7"}, + {file = "netCDF4-1.6.5-cp311-cp311-win_amd64.whl", hash = "sha256:de4dc973fae9e2bbdf42e094125e423a4c25393172a61958314969b055a38889"}, + {file = "netCDF4-1.6.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:19e16c63cdd7c0dbffe284a4a65f226ba1026f476f35cbedd099b4792b395f69"}, + {file = "netCDF4-1.6.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b994afce2ca4073f6b757385a6c0ffec25ecaae2b8821535b303c7cdbf6de42b"}, + {file = "netCDF4-1.6.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0187646e3348e7a8cd654617dda65517df138042c94c2fcc6682ff7c8c6654dc"}, + {file = "netCDF4-1.6.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1ab5dabac27d25fcc82c52dc29a74a6585e865208cce35f4e285df83d3df0b2"}, + {file = "netCDF4-1.6.5-cp312-cp312-win_amd64.whl", hash = "sha256:081e9043ac6160989f60570928eabe803c88ce7df1d3f79f2345dc48f68ef752"}, + {file = "netCDF4-1.6.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b47b22dda5b25ba6291f97634d7ac67b0a843f8ae5c9d9d5813c15364f66d0a"}, + {file = "netCDF4-1.6.5-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4609dd62d14798c9524327287091875449d68588c128abb768fc0c76c4a28165"}, + {file = "netCDF4-1.6.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2455e9d35fde067e6a6bdc24aa9d44962235a071cec49904d1589e298c23dcd3"}, + {file = "netCDF4-1.6.5-cp38-cp38-win_amd64.whl", hash = "sha256:2c210794d96431d92b5992e46ad8a9f97237bf6d6956f8816978a03dc0fa18c3"}, + {file = "netCDF4-1.6.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:18255b8b283d32d3900092f29c67e53aa25bd8f0dfe7adde59fe782d865a381c"}, + {file = "netCDF4-1.6.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:53050562bac84738bbd121fbbee9593d074579f5d6fdaafcb981abeb5c964225"}, + {file = "netCDF4-1.6.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:938c062382406bca9198b16adddd87c09b00521766b138cdfd11c95546eefeb8"}, + {file = "netCDF4-1.6.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a8300451d7542d3c4ff1dcccf5fb1c7d44bdd1dc08ec77dab04416caf13cb1f"}, + {file = "netCDF4-1.6.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a27db2701feef31201c9b20b04a9579196edc20dfc339ca423c7b81e462d6e14"}, + {file = "netCDF4-1.6.5-cp39-cp39-win_amd64.whl", hash = "sha256:574d7742ab321e5f9f33b5b1296c4ad4e5c469152c17d4fc453d5070e413e596"}, + {file = "netCDF4-1.6.5.tar.gz", hash = "sha256:824881d0aacfde5bd982d6adedd8574259c85553781e7b83e0ce82b890bfa0ef"}, +] + +[package.dependencies] +certifi = "*" +cftime = "*" +numpy = "*" + +[package.extras] +tests = ["Cython", "packaging", "pytest"] + +[[package]] +name = "notebook" +version = "6.5.4" +description = "A web-based notebook environment for interactive computing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook-6.5.4-py3-none-any.whl", hash = "sha256:dd17e78aefe64c768737b32bf171c1c766666a21cc79a44d37a1700771cab56f"}, + {file = "notebook-6.5.4.tar.gz", hash = "sha256:517209568bd47261e2def27a140e97d49070602eea0d226a696f42a7f16c9a4e"}, +] + +[package.dependencies] +argon2-cffi = "*" +ipykernel = "*" +ipython-genutils = "*" +jinja2 = "*" +jupyter-client = ">=5.3.4" +jupyter-core = ">=4.6.1" +nbclassic = ">=0.4.7" +nbconvert = ">=5" +nbformat = "*" +nest-asyncio = ">=1.5" +prometheus-client = "*" +pyzmq = ">=17" +Send2Trash = ">=1.8.0" +terminado = ">=0.8.3" +tornado = ">=6.1" +traitlets = ">=4.2.1" + +[package.extras] +docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +json-logging = ["json-logging"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "requests", "requests-unixsocket", "selenium (==4.1.5)", "testpath"] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +description = "A shim layer for notebook traits and config" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, + {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, +] + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] + +[[package]] +name = "numpy" +version = "1.26.4" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, +] + +[[package]] +name = "numpyro" +version = "0.14.0" +description = "Pyro PPL on NumPy" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpyro-0.14.0-py3-none-any.whl", hash = "sha256:1aef9b30e263f4dc4c829d0f8ce6d0640b030d33b32c2b6e1ed20be5f7c12478"}, + {file = "numpyro-0.14.0.tar.gz", hash = "sha256:3e43eaa9c843473d7ae939c183e10db14e23bb42b0ad1de90ae15a451176de48"}, +] + +[package.dependencies] +jax = ">=0.4.14" +jaxlib = ">=0.4.14" +multipledispatch = "*" +numpy = "*" +tqdm = "*" + +[package.extras] +cpu = ["jax[cpu] (>=0.4.14)"] +cuda = ["jax[cuda] (>=0.4.14)"] +dev = ["dm-haiku", "flax", "funsor (>=0.4.1)", "graphviz", "jaxns (==2.4.8)", "matplotlib", "optax (>=0.0.6)", "pylab-sdk", "pyyaml", "requests", "tensorflow-probability (>=0.18.0)"] +doc = ["ipython", "nbsphinx (>=0.8.9)", "readthedocs-sphinx-search (>=0.3.2)", "sphinx (>=5)", "sphinx-gallery", "sphinx-rtd-theme"] +examples = ["arviz", "jupyter", "matplotlib", "pandas", "scikit-learn", "seaborn", "wordcloud"] +test = ["importlib-metadata (<5.0)", "pyro-api (>=0.1.1)", "pytest (>=4.1)", "ruff (>=0.1.8)", "scipy (>=1.9)"] +tpu = ["jax[tpu] (>=0.4.14)"] + +[[package]] +name = "openpyxl" +version = "3.1.3" +description = "A Python library to read/write Excel 2010 xlsx/xlsm files" +optional = false +python-versions = ">=3.6" +files = [ + {file = "openpyxl-3.1.3-py2.py3-none-any.whl", hash = "sha256:25071b558db709de9e8782c3d3e058af3b23ffb2fc6f40c8f0c45a154eced2c3"}, + {file = "openpyxl-3.1.3.tar.gz", hash = "sha256:8dd482e5350125b2388070bb2477927be2e8ebc27df61178709bc8c8751da2f9"}, +] + +[package.dependencies] +et-xmlfile = "*" + +[[package]] +name = "opt-einsum" +version = "3.3.0" +description = "Optimizing numpys einsum function" +optional = false +python-versions = ">=3.5" +files = [ + {file = "opt_einsum-3.3.0-py3-none-any.whl", hash = "sha256:2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147"}, + {file = "opt_einsum-3.3.0.tar.gz", hash = "sha256:59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549"}, +] + +[package.dependencies] +numpy = ">=1.7" + +[package.extras] +docs = ["numpydoc", "sphinx (==1.2.3)", "sphinx-rtd-theme", "sphinxcontrib-napoleon"] +tests = ["pytest", "pytest-cov", "pytest-pep8"] + +[[package]] +name = "optax" +version = "0.1.9" +description = "A gradient processing and optimisation library in JAX." +optional = false +python-versions = ">=3.9" +files = [ + {file = "optax-0.1.9-py3-none-any.whl", hash = "sha256:3cbcfac6e70dff9484cd7560dc92e43a50df1eac0d4af2a1f7c2e1fd116bf972"}, + {file = "optax-0.1.9.tar.gz", hash = "sha256:731f43e8b404f50a5ef025b1261894d7d0300f7ad9cb688ea08f67b40822e94f"}, +] + +[package.dependencies] +absl-py = ">=0.7.1" +chex = ">=0.1.7" +jax = ">=0.1.55" +jaxlib = ">=0.1.37" +numpy = ">=1.18.0" + +[package.extras] +docs = ["dm-haiku (>=0.0.11)", "ipython (>=8.8.0)", "matplotlib (>=3.5.0)", "myst-nb (>=1.0.0)", "sphinx (>=6.0.0)", "sphinx-autodoc-typehints", "sphinx-book-theme (>=1.0.1)", "sphinx-collections (>=0.0.1)", "sphinx-gallery (>=0.14.0)", "sphinxcontrib-katex", "tensorflow (>=2.4.0)", "tensorflow-datasets (>=4.2.0)"] +dp-accounting = ["absl-py (>=1.0.0)", "attrs (>=21.4.0)", "mpmath (>=1.2.1)", "numpy (>=1.21.4)", "scipy (>=1.7.1)"] +examples = ["dm-haiku (>=0.0.3)", "tensorflow (>=2.4.0)", "tensorflow-datasets (>=4.2.0)"] +test = ["dm-haiku (>=0.0.3)", "dm-tree (>=0.1.7)", "flax (==0.5.3)"] + +[[package]] +name = "overrides" +version = "7.7.0" +description = "A decorator to automatically detect mismatch when overriding a method." +optional = false +python-versions = ">=3.6" +files = [ + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, +] + +[[package]] +name = "packaging" +version = "20.9" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"}, + {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"}, +] + +[package.dependencies] +pyparsing = ">=2.0.2" + +[[package]] +name = "pandas" +version = "2.2.2" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, + {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, + {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, + {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, + {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, + {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +description = "Utilities for writing pandoc filters in python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, + {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, +] + +[[package]] +name = "parso" +version = "0.8.4" +description = "A Python Parser" +optional = false +python-versions = ">=3.6" +files = [ + {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, + {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, +] + +[package.extras] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["docopt", "pytest"] + +[[package]] +name = "pexpect" +version = "4.9.0" +description = "Pexpect allows easy control of interactive console applications." +optional = false +python-versions = "*" +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pillow" +version = "8.4.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "Pillow-8.4.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:81f8d5c81e483a9442d72d182e1fb6dcb9723f289a57e8030811bac9ea3fef8d"}, + {file = "Pillow-8.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f97cfb1e5a392d75dd8b9fd274d205404729923840ca94ca45a0af57e13dbe6"}, + {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb9fc393f3c61f9054e1ed26e6fe912c7321af2f41ff49d3f83d05bacf22cc78"}, + {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d82cdb63100ef5eedb8391732375e6d05993b765f72cb34311fab92103314649"}, + {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62cc1afda735a8d109007164714e73771b499768b9bb5afcbbee9d0ff374b43f"}, + {file = "Pillow-8.4.0-cp310-cp310-win32.whl", hash = "sha256:e3dacecfbeec9a33e932f00c6cd7996e62f53ad46fbe677577394aaa90ee419a"}, + {file = "Pillow-8.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:620582db2a85b2df5f8a82ddeb52116560d7e5e6b055095f04ad828d1b0baa39"}, + {file = "Pillow-8.4.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:1bc723b434fbc4ab50bb68e11e93ce5fb69866ad621e3c2c9bdb0cd70e345f55"}, + {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72cbcfd54df6caf85cc35264c77ede902452d6df41166010262374155947460c"}, + {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70ad9e5c6cb9b8487280a02c0ad8a51581dcbbe8484ce058477692a27c151c0a"}, + {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25a49dc2e2f74e65efaa32b153527fc5ac98508d502fa46e74fa4fd678ed6645"}, + {file = "Pillow-8.4.0-cp36-cp36m-win32.whl", hash = "sha256:93ce9e955cc95959df98505e4608ad98281fff037350d8c2671c9aa86bcf10a9"}, + {file = "Pillow-8.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2e4440b8f00f504ee4b53fe30f4e381aae30b0568193be305256b1462216feff"}, + {file = "Pillow-8.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8c803ac3c28bbc53763e6825746f05cc407b20e4a69d0122e526a582e3b5e153"}, + {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8a17b5d948f4ceeceb66384727dde11b240736fddeda54ca740b9b8b1556b29"}, + {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1394a6ad5abc838c5cd8a92c5a07535648cdf6d09e8e2d6df916dfa9ea86ead8"}, + {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:792e5c12376594bfcb986ebf3855aa4b7c225754e9a9521298e460e92fb4a488"}, + {file = "Pillow-8.4.0-cp37-cp37m-win32.whl", hash = "sha256:d99ec152570e4196772e7a8e4ba5320d2d27bf22fdf11743dd882936ed64305b"}, + {file = "Pillow-8.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7b7017b61bbcdd7f6363aeceb881e23c46583739cb69a3ab39cb384f6ec82e5b"}, + {file = "Pillow-8.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:d89363f02658e253dbd171f7c3716a5d340a24ee82d38aab9183f7fdf0cdca49"}, + {file = "Pillow-8.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a0956fdc5defc34462bb1c765ee88d933239f9a94bc37d132004775241a7585"}, + {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b7bb9de00197fb4261825c15551adf7605cf14a80badf1761d61e59da347779"}, + {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72b9e656e340447f827885b8d7a15fc8c4e68d410dc2297ef6787eec0f0ea409"}, + {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5a4532a12314149d8b4e4ad8ff09dde7427731fcfa5917ff16d0291f13609df"}, + {file = "Pillow-8.4.0-cp38-cp38-win32.whl", hash = "sha256:82aafa8d5eb68c8463b6e9baeb4f19043bb31fefc03eb7b216b51e6a9981ae09"}, + {file = "Pillow-8.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:066f3999cb3b070a95c3652712cffa1a748cd02d60ad7b4e485c3748a04d9d76"}, + {file = "Pillow-8.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:5503c86916d27c2e101b7f71c2ae2cddba01a2cf55b8395b0255fd33fa4d1f1a"}, + {file = "Pillow-8.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4acc0985ddf39d1bc969a9220b51d94ed51695d455c228d8ac29fcdb25810e6e"}, + {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b052a619a8bfcf26bd8b3f48f45283f9e977890263e4571f2393ed8898d331b"}, + {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:493cb4e415f44cd601fcec11c99836f707bb714ab03f5ed46ac25713baf0ff20"}, + {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8831cb7332eda5dc89b21a7bce7ef6ad305548820595033a4b03cf3091235ed"}, + {file = "Pillow-8.4.0-cp39-cp39-win32.whl", hash = "sha256:5e9ac5f66616b87d4da618a20ab0a38324dbe88d8a39b55be8964eb520021e02"}, + {file = "Pillow-8.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:3eb1ce5f65908556c2d8685a8f0a6e989d887ec4057326f6c22b24e8a172c66b"}, + {file = "Pillow-8.4.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ddc4d832a0f0b4c52fff973a0d44b6c99839a9d016fe4e6a1cb8f3eea96479c2"}, + {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3e5ddc44c14042f0844b8cf7d2cd455f6cc80fd7f5eefbe657292cf601d9ad"}, + {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70e94281588ef053ae8998039610dbd71bc509e4acbc77ab59d7d2937b10698"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:3862b7256046fcd950618ed22d1d60b842e3a40a48236a5498746f21189afbbc"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4901622493f88b1a29bd30ec1a2f683782e57c3c16a2dbc7f2595ba01f639df"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c471a734240653a0ec91dec0996696eea227eafe72a33bd06c92697728046b"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:244cf3b97802c34c41905d22810846802a3329ddcb93ccc432870243211c79fc"}, + {file = "Pillow-8.4.0.tar.gz", hash = "sha256:b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed"}, +] + +[[package]] +name = "platformdirs" +version = "4.2.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, + {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] + +[[package]] +name = "pluggy" +version = "0.13.1" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, + {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] + +[[package]] +name = "prometheus-client" +version = "0.20.0" +description = "Python client for the Prometheus monitoring system." +optional = false +python-versions = ">=3.8" +files = [ + {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, + {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, +] + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.47" +description = "Library for building powerful interactive command lines in Python" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.47-py3-none-any.whl", hash = "sha256:0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10"}, + {file = "prompt_toolkit-3.0.47.tar.gz", hash = "sha256:1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360"}, +] + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "psutil" +version = "5.9.8" +description = "Cross-platform lib for process and system monitoring in Python." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +files = [ + {file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"}, + {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"}, + {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7"}, + {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36"}, + {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d"}, + {file = "psutil-5.9.8-cp27-none-win32.whl", hash = "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e"}, + {file = "psutil-5.9.8-cp27-none-win_amd64.whl", hash = "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631"}, + {file = "psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81"}, + {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421"}, + {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4"}, + {file = "psutil-5.9.8-cp36-cp36m-win32.whl", hash = "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee"}, + {file = "psutil-5.9.8-cp36-cp36m-win_amd64.whl", hash = "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2"}, + {file = "psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0"}, + {file = "psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf"}, + {file = "psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8"}, + {file = "psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c"}, +] + +[package.extras] +test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +optional = false +python-versions = "*" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] + +[[package]] +name = "pure-eval" +version = "0.2.2" +description = "Safely evaluate AST nodes without side effects" +optional = false +python-versions = "*" +files = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyparsing" +version = "2.4.7" +description = "Python parsing module" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, + {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, +] + +[[package]] +name = "pyrsistent" +version = "0.20.0" +description = "Persistent/Functional/Immutable data structures" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyrsistent-0.20.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c3aba3e01235221e5b229a6c05f585f344734bd1ad42a8ac51493d74722bbce"}, + {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1beb78af5423b879edaf23c5591ff292cf7c33979734c99aa66d5914ead880f"}, + {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21cc459636983764e692b9eba7144cdd54fdec23ccdb1e8ba392a63666c60c34"}, + {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5ac696f02b3fc01a710427585c855f65cd9c640e14f52abe52020722bb4906b"}, + {file = "pyrsistent-0.20.0-cp310-cp310-win32.whl", hash = "sha256:0724c506cd8b63c69c7f883cc233aac948c1ea946ea95996ad8b1380c25e1d3f"}, + {file = "pyrsistent-0.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:8441cf9616d642c475684d6cf2520dd24812e996ba9af15e606df5f6fd9d04a7"}, + {file = "pyrsistent-0.20.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0f3b1bcaa1f0629c978b355a7c37acd58907390149b7311b5db1b37648eb6958"}, + {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdd7ef1ea7a491ae70d826b6cc64868de09a1d5ff9ef8d574250d0940e275b8"}, + {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cae40a9e3ce178415040a0383f00e8d68b569e97f31928a3a8ad37e3fde6df6a"}, + {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6288b3fa6622ad8a91e6eb759cfc48ff3089e7c17fb1d4c59a919769314af224"}, + {file = "pyrsistent-0.20.0-cp311-cp311-win32.whl", hash = "sha256:7d29c23bdf6e5438c755b941cef867ec2a4a172ceb9f50553b6ed70d50dfd656"}, + {file = "pyrsistent-0.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:59a89bccd615551391f3237e00006a26bcf98a4d18623a19909a2c48b8e986ee"}, + {file = "pyrsistent-0.20.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:09848306523a3aba463c4b49493a760e7a6ca52e4826aa100ee99d8d39b7ad1e"}, + {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a14798c3005ec892bbada26485c2eea3b54109cb2533713e355c806891f63c5e"}, + {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b14decb628fac50db5e02ee5a35a9c0772d20277824cfe845c8a8b717c15daa3"}, + {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e2c116cc804d9b09ce9814d17df5edf1df0c624aba3b43bc1ad90411487036d"}, + {file = "pyrsistent-0.20.0-cp312-cp312-win32.whl", hash = "sha256:e78d0c7c1e99a4a45c99143900ea0546025e41bb59ebc10182e947cf1ece9174"}, + {file = "pyrsistent-0.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:4021a7f963d88ccd15b523787d18ed5e5269ce57aa4037146a2377ff607ae87d"}, + {file = "pyrsistent-0.20.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:79ed12ba79935adaac1664fd7e0e585a22caa539dfc9b7c7c6d5ebf91fb89054"}, + {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f920385a11207dc372a028b3f1e1038bb244b3ec38d448e6d8e43c6b3ba20e98"}, + {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f5c2d012671b7391803263419e31b5c7c21e7c95c8760d7fc35602353dee714"}, + {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef3992833fbd686ee783590639f4b8343a57f1f75de8633749d984dc0eb16c86"}, + {file = "pyrsistent-0.20.0-cp38-cp38-win32.whl", hash = "sha256:881bbea27bbd32d37eb24dd320a5e745a2a5b092a17f6debc1349252fac85423"}, + {file = "pyrsistent-0.20.0-cp38-cp38-win_amd64.whl", hash = "sha256:6d270ec9dd33cdb13f4d62c95c1a5a50e6b7cdd86302b494217137f760495b9d"}, + {file = "pyrsistent-0.20.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ca52d1ceae015859d16aded12584c59eb3825f7b50c6cfd621d4231a6cc624ce"}, + {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b318ca24db0f0518630e8b6f3831e9cba78f099ed5c1d65ffe3e023003043ba0"}, + {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fed2c3216a605dc9a6ea50c7e84c82906e3684c4e80d2908208f662a6cbf9022"}, + {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e14c95c16211d166f59c6611533d0dacce2e25de0f76e4c140fde250997b3ca"}, + {file = "pyrsistent-0.20.0-cp39-cp39-win32.whl", hash = "sha256:f058a615031eea4ef94ead6456f5ec2026c19fb5bd6bfe86e9665c4158cf802f"}, + {file = "pyrsistent-0.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:58b8f6366e152092194ae68fefe18b9f0b4f89227dfd86a07770c3d86097aebf"}, + {file = "pyrsistent-0.20.0-py3-none-any.whl", hash = "sha256:c55acc4733aad6560a7f5f818466631f07efc001fd023f34a6c203f8b6df0f0b"}, + {file = "pyrsistent-0.20.0.tar.gz", hash = "sha256:4c48f78f62ab596c679086084d0dd13254ae4f3d6c72a83ffdf5ebdef8f265a4"}, +] + +[[package]] +name = "pytest" +version = "6.2.5" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, + {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, +] + +[package.dependencies] +atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +py = ">=1.8.2" +toml = "*" + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-json-logger" +version = "2.0.7" +description = "A python library adding a json log formatter" +optional = false +python-versions = ">=3.6" +files = [ + {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, + {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, +] + +[[package]] +name = "pytz" +version = "2020.5" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2020.5-py2.py3-none-any.whl", hash = "sha256:16962c5fb8db4a8f63a26646d8886e9d769b6c511543557bc84e9569fb9a9cb4"}, + {file = "pytz-2020.5.tar.gz", hash = "sha256:180befebb1927b16f6b57101720075a984c019ac16b1b7575673bea42c6c3da5"}, +] + +[[package]] +name = "pywin32" +version = "306" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, + {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, + {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, + {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, + {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, + {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, + {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, + {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, + {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, + {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, + {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, + {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, + {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, + {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, +] + +[[package]] +name = "pywinpty" +version = "2.0.13" +description = "Pseudo terminal support for Windows from Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pywinpty-2.0.13-cp310-none-win_amd64.whl", hash = "sha256:697bff211fb5a6508fee2dc6ff174ce03f34a9a233df9d8b5fe9c8ce4d5eaf56"}, + {file = "pywinpty-2.0.13-cp311-none-win_amd64.whl", hash = "sha256:b96fb14698db1284db84ca38c79f15b4cfdc3172065b5137383910567591fa99"}, + {file = "pywinpty-2.0.13-cp312-none-win_amd64.whl", hash = "sha256:2fd876b82ca750bb1333236ce98488c1be96b08f4f7647cfdf4129dfad83c2d4"}, + {file = "pywinpty-2.0.13-cp38-none-win_amd64.whl", hash = "sha256:61d420c2116c0212808d31625611b51caf621fe67f8a6377e2e8b617ea1c1f7d"}, + {file = "pywinpty-2.0.13-cp39-none-win_amd64.whl", hash = "sha256:71cb613a9ee24174730ac7ae439fd179ca34ccb8c5349e8d7b72ab5dea2c6f4b"}, + {file = "pywinpty-2.0.13.tar.gz", hash = "sha256:c34e32351a3313ddd0d7da23d27f835c860d32fe4ac814d372a3ea9594f41dde"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "pyzmq" +version = "26.0.3" +description = "Python bindings for 0MQ" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:44dd6fc3034f1eaa72ece33588867df9e006a7303725a12d64c3dff92330f625"}, + {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:acb704195a71ac5ea5ecf2811c9ee19ecdc62b91878528302dd0be1b9451cc90"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dbb9c997932473a27afa93954bb77a9f9b786b4ccf718d903f35da3232317de"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bcb34f869d431799c3ee7d516554797f7760cb2198ecaa89c3f176f72d062be"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ece17ec5f20d7d9b442e5174ae9f020365d01ba7c112205a4d59cf19dc38ee"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ba6e5e6588e49139a0979d03a7deb9c734bde647b9a8808f26acf9c547cab1bf"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3bf8b000a4e2967e6dfdd8656cd0757d18c7e5ce3d16339e550bd462f4857e59"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2136f64fbb86451dbbf70223635a468272dd20075f988a102bf8a3f194a411dc"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e8918973fbd34e7814f59143c5f600ecd38b8038161239fd1a3d33d5817a38b8"}, + {file = "pyzmq-26.0.3-cp310-cp310-win32.whl", hash = "sha256:0aaf982e68a7ac284377d051c742610220fd06d330dcd4c4dbb4cdd77c22a537"}, + {file = "pyzmq-26.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:f1a9b7d00fdf60b4039f4455afd031fe85ee8305b019334b72dcf73c567edc47"}, + {file = "pyzmq-26.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:80b12f25d805a919d53efc0a5ad7c0c0326f13b4eae981a5d7b7cc343318ebb7"}, + {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:a72a84570f84c374b4c287183debc776dc319d3e8ce6b6a0041ce2e400de3f32"}, + {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ca684ee649b55fd8f378127ac8462fb6c85f251c2fb027eb3c887e8ee347bcd"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e222562dc0f38571c8b1ffdae9d7adb866363134299264a1958d077800b193b7"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f17cde1db0754c35a91ac00b22b25c11da6eec5746431d6e5092f0cd31a3fea9"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b7c0c0b3244bb2275abe255d4a30c050d541c6cb18b870975553f1fb6f37527"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:ac97a21de3712afe6a6c071abfad40a6224fd14fa6ff0ff8d0c6e6cd4e2f807a"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:88b88282e55fa39dd556d7fc04160bcf39dea015f78e0cecec8ff4f06c1fc2b5"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:72b67f966b57dbd18dcc7efbc1c7fc9f5f983e572db1877081f075004614fcdd"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f4b6cecbbf3b7380f3b61de3a7b93cb721125dc125c854c14ddc91225ba52f83"}, + {file = "pyzmq-26.0.3-cp311-cp311-win32.whl", hash = "sha256:eed56b6a39216d31ff8cd2f1d048b5bf1700e4b32a01b14379c3b6dde9ce3aa3"}, + {file = "pyzmq-26.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:3191d312c73e3cfd0f0afdf51df8405aafeb0bad71e7ed8f68b24b63c4f36500"}, + {file = "pyzmq-26.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:b6907da3017ef55139cf0e417c5123a84c7332520e73a6902ff1f79046cd3b94"}, + {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:068ca17214038ae986d68f4a7021f97e187ed278ab6dccb79f837d765a54d753"}, + {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7821d44fe07335bea256b9f1f41474a642ca55fa671dfd9f00af8d68a920c2d4"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eeb438a26d87c123bb318e5f2b3d86a36060b01f22fbdffd8cf247d52f7c9a2b"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69ea9d6d9baa25a4dc9cef5e2b77b8537827b122214f210dd925132e34ae9b12"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7daa3e1369355766dea11f1d8ef829905c3b9da886ea3152788dc25ee6079e02"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:6ca7a9a06b52d0e38ccf6bca1aeff7be178917893f3883f37b75589d42c4ac20"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1b7d0e124948daa4d9686d421ef5087c0516bc6179fdcf8828b8444f8e461a77"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e746524418b70f38550f2190eeee834db8850088c834d4c8406fbb9bc1ae10b2"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:6b3146f9ae6af82c47a5282ac8803523d381b3b21caeae0327ed2f7ecb718798"}, + {file = "pyzmq-26.0.3-cp312-cp312-win32.whl", hash = "sha256:2b291d1230845871c00c8462c50565a9cd6026fe1228e77ca934470bb7d70ea0"}, + {file = "pyzmq-26.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:926838a535c2c1ea21c903f909a9a54e675c2126728c21381a94ddf37c3cbddf"}, + {file = "pyzmq-26.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:5bf6c237f8c681dfb91b17f8435b2735951f0d1fad10cc5dfd96db110243370b"}, + {file = "pyzmq-26.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c0991f5a96a8e620f7691e61178cd8f457b49e17b7d9cfa2067e2a0a89fc1d5"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dbf012d8fcb9f2cf0643b65df3b355fdd74fc0035d70bb5c845e9e30a3a4654b"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:01fbfbeb8249a68d257f601deb50c70c929dc2dfe683b754659569e502fbd3aa"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c8eb19abe87029c18f226d42b8a2c9efdd139d08f8bf6e085dd9075446db450"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:5344b896e79800af86ad643408ca9aa303a017f6ebff8cee5a3163c1e9aec987"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:204e0f176fd1d067671157d049466869b3ae1fc51e354708b0dc41cf94e23a3a"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a42db008d58530efa3b881eeee4991146de0b790e095f7ae43ba5cc612decbc5"}, + {file = "pyzmq-26.0.3-cp37-cp37m-win32.whl", hash = "sha256:8d7a498671ca87e32b54cb47c82a92b40130a26c5197d392720a1bce1b3c77cf"}, + {file = "pyzmq-26.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:3b4032a96410bdc760061b14ed6a33613ffb7f702181ba999df5d16fb96ba16a"}, + {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2cc4e280098c1b192c42a849de8de2c8e0f3a84086a76ec5b07bfee29bda7d18"}, + {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5bde86a2ed3ce587fa2b207424ce15b9a83a9fa14422dcc1c5356a13aed3df9d"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:34106f68e20e6ff253c9f596ea50397dbd8699828d55e8fa18bd4323d8d966e6"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ebbbd0e728af5db9b04e56389e2299a57ea8b9dd15c9759153ee2455b32be6ad"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6b1d1c631e5940cac5a0b22c5379c86e8df6a4ec277c7a856b714021ab6cfad"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e891ce81edd463b3b4c3b885c5603c00141151dd9c6936d98a680c8c72fe5c67"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9b273ecfbc590a1b98f014ae41e5cf723932f3b53ba9367cfb676f838038b32c"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b32bff85fb02a75ea0b68f21e2412255b5731f3f389ed9aecc13a6752f58ac97"}, + {file = "pyzmq-26.0.3-cp38-cp38-win32.whl", hash = "sha256:f6c21c00478a7bea93caaaef9e7629145d4153b15a8653e8bb4609d4bc70dbfc"}, + {file = "pyzmq-26.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:3401613148d93ef0fd9aabdbddb212de3db7a4475367f49f590c837355343972"}, + {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:2ed8357f4c6e0daa4f3baf31832df8a33334e0fe5b020a61bc8b345a3db7a606"}, + {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c1c8f2a2ca45292084c75bb6d3a25545cff0ed931ed228d3a1810ae3758f975f"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b63731993cdddcc8e087c64e9cf003f909262b359110070183d7f3025d1c56b5"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b3cd31f859b662ac5d7f4226ec7d8bd60384fa037fc02aee6ff0b53ba29a3ba8"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:115f8359402fa527cf47708d6f8a0f8234f0e9ca0cab7c18c9c189c194dbf620"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:715bdf952b9533ba13dfcf1f431a8f49e63cecc31d91d007bc1deb914f47d0e4"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e1258c639e00bf5e8a522fec6c3eaa3e30cf1c23a2f21a586be7e04d50c9acab"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:15c59e780be8f30a60816a9adab900c12a58d79c1ac742b4a8df044ab2a6d920"}, + {file = "pyzmq-26.0.3-cp39-cp39-win32.whl", hash = "sha256:d0cdde3c78d8ab5b46595054e5def32a755fc028685add5ddc7403e9f6de9879"}, + {file = "pyzmq-26.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:ce828058d482ef860746bf532822842e0ff484e27f540ef5c813d516dd8896d2"}, + {file = "pyzmq-26.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:788f15721c64109cf720791714dc14afd0f449d63f3a5487724f024345067381"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c18645ef6294d99b256806e34653e86236eb266278c8ec8112622b61db255de"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e6bc96ebe49604df3ec2c6389cc3876cabe475e6bfc84ced1bf4e630662cb35"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:971e8990c5cc4ddcff26e149398fc7b0f6a042306e82500f5e8db3b10ce69f84"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8416c23161abd94cc7da80c734ad7c9f5dbebdadfdaa77dad78244457448223"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:082a2988364b60bb5de809373098361cf1dbb239623e39e46cb18bc035ed9c0c"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d57dfbf9737763b3a60d26e6800e02e04284926329aee8fb01049635e957fe81"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:77a85dca4c2430ac04dc2a2185c2deb3858a34fe7f403d0a946fa56970cf60a1"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4c82a6d952a1d555bf4be42b6532927d2a5686dd3c3e280e5f63225ab47ac1f5"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4496b1282c70c442809fc1b151977c3d967bfb33e4e17cedbf226d97de18f709"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:e4946d6bdb7ba972dfda282f9127e5756d4f299028b1566d1245fa0d438847e6"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:03c0ae165e700364b266876d712acb1ac02693acd920afa67da2ebb91a0b3c09"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:3e3070e680f79887d60feeda051a58d0ac36622e1759f305a41059eff62c6da7"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6ca08b840fe95d1c2bd9ab92dac5685f949fc6f9ae820ec16193e5ddf603c3b2"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e76654e9dbfb835b3518f9938e565c7806976c07b37c33526b574cc1a1050480"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:871587bdadd1075b112e697173e946a07d722459d20716ceb3d1bd6c64bd08ce"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d0a2d1bd63a4ad79483049b26514e70fa618ce6115220da9efdff63688808b17"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0270b49b6847f0d106d64b5086e9ad5dc8a902413b5dbbb15d12b60f9c1747a4"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:703c60b9910488d3d0954ca585c34f541e506a091a41930e663a098d3b794c67"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74423631b6be371edfbf7eabb02ab995c2563fee60a80a30829176842e71722a"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4adfbb5451196842a88fda3612e2c0414134874bffb1c2ce83ab4242ec9e027d"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3516119f4f9b8671083a70b6afaa0a070f5683e431ab3dc26e9215620d7ca1ad"}, + {file = "pyzmq-26.0.3.tar.gz", hash = "sha256:dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] + +[[package]] +name = "scipy" +version = "1.13.1" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, + {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f"}, + {file = "scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94"}, + {file = "scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa"}, + {file = "scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59"}, + {file = "scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884"}, + {file = "scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16"}, + {file = "scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d"}, + {file = "scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c"}, + {file = "scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2"}, + {file = "scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c"}, +] + +[package.dependencies] +numpy = ">=1.22.4,<2.3" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] +test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "seaborn" +version = "0.13.2" +description = "Statistical data visualization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "seaborn-0.13.2-py3-none-any.whl", hash = "sha256:636f8336facf092165e27924f223d3c62ca560b1f2bb5dff7ab7fad265361987"}, + {file = "seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7"}, +] + +[package.dependencies] +matplotlib = ">=3.4,<3.6.1 || >3.6.1" +numpy = ">=1.20,<1.24.0 || >1.24.0" +pandas = ">=1.2" + +[package.extras] +dev = ["flake8", "flit", "mypy", "pandas-stubs", "pre-commit", "pytest", "pytest-cov", "pytest-xdist"] +docs = ["ipykernel", "nbconvert", "numpydoc", "pydata_sphinx_theme (==0.10.0rc2)", "pyyaml", "sphinx (<6.0.0)", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] +stats = ["scipy (>=1.7)", "statsmodels (>=0.12)"] + +[[package]] +name = "send2trash" +version = "1.8.3" +description = "Send file to trash natively under Mac OS X, Windows and Linux" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, + {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, +] + +[package.extras] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "setuptools" +version = "70.0.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4"}, + {file = "setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "smmap" +version = "5.0.1" +description = "A pure Python implementation of a sliding window memory map manager" +optional = false +python-versions = ">=3.7" +files = [ + {file = "smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"}, + {file = "smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "snowballstemmer" +version = "2.2.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +optional = false +python-versions = "*" +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] + +[[package]] +name = "soupsieve" +version = "2.5" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +files = [ + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, +] + +[[package]] +name = "sphinx" +version = "4.5.0" +description = "Python documentation generator" +optional = false +python-versions = ">=3.6" +files = [ + {file = "Sphinx-4.5.0-py3-none-any.whl", hash = "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"}, + {file = "Sphinx-4.5.0.tar.gz", hash = "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6"}, +] + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=1.3" +colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.14,<0.18" +imagesize = "*" +Jinja2 = ">=2.3" +packaging = "*" +Pygments = ">=2.0" +requests = ">=2.5.0" +snowballstemmer = ">=1.1" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = ">=2.0.0" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = ">=1.1.5" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "isort", "mypy (>=0.931)", "types-requests", "types-typed-ast"] +test = ["cython", "html5lib", "pytest", "pytest-cov", "typed-ast"] + +[[package]] +name = "sphinx-rtd-theme" +version = "0.4.3" +description = "Read the Docs theme for Sphinx" +optional = false +python-versions = "*" +files = [ + {file = "sphinx_rtd_theme-0.4.3-py2.py3-none-any.whl", hash = "sha256:00cf895504a7895ee433807c62094cf1e95f065843bf3acd17037c3e9a2becd4"}, + {file = "sphinx_rtd_theme-0.4.3.tar.gz", hash = "sha256:728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a"}, +] + +[package.dependencies] +sphinx = "*" + +[[package]] +name = "sphinx-togglebutton" +version = "0.3.2" +description = "Toggle page content and collapse admonitions in Sphinx." +optional = false +python-versions = "*" +files = [ + {file = "sphinx-togglebutton-0.3.2.tar.gz", hash = "sha256:ab0c8b366427b01e4c89802d5d078472c427fa6e9d12d521c34fa0442559dc7a"}, + {file = "sphinx_togglebutton-0.3.2-py3-none-any.whl", hash = "sha256:9647ba7874b7d1e2d43413d8497153a85edc6ac95a3fea9a75ef9c1e08aaae2b"}, +] + +[package.dependencies] +docutils = "*" +setuptools = "*" +sphinx = "*" +wheel = "*" + +[package.extras] +sphinx = ["matplotlib", "myst-nb", "numpy", "sphinx-book-theme", "sphinx-design", "sphinx-examples"] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.8" +description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_applehelp-1.0.8-py3-none-any.whl", hash = "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"}, + {file = "sphinxcontrib_applehelp-1.0.8.tar.gz", hash = "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.6" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_devhelp-1.0.6-py3-none-any.whl", hash = "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f"}, + {file = "sphinxcontrib_devhelp-1.0.6.tar.gz", hash = "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.5" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_htmlhelp-2.0.5-py3-none-any.whl", hash = "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"}, + {file = "sphinxcontrib_htmlhelp-2.0.5.tar.gz", hash = "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["html5lib", "pytest"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +optional = false +python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] + +[package.extras] +test = ["flake8", "mypy", "pytest"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.7" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_qthelp-1.0.7-py3-none-any.whl", hash = "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"}, + {file = "sphinxcontrib_qthelp-1.0.7.tar.gz", hash = "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.10" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_serializinghtml-1.1.10-py3-none-any.whl", hash = "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7"}, + {file = "sphinxcontrib_serializinghtml-1.1.10.tar.gz", hash = "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sqlalchemy" +version = "1.4.52" +description = "Database Abstraction Library" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "SQLAlchemy-1.4.52-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:f68016f9a5713684c1507cc37133c28035f29925c75c0df2f9d0f7571e23720a"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24bb0f81fbbb13d737b7f76d1821ec0b117ce8cbb8ee5e8641ad2de41aa916d3"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e93983cc0d2edae253b3f2141b0a3fb07e41c76cd79c2ad743fc27eb79c3f6db"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:84e10772cfc333eb08d0b7ef808cd76e4a9a30a725fb62a0495877a57ee41d81"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:427988398d2902de042093d17f2b9619a5ebc605bf6372f7d70e29bde6736842"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-win32.whl", hash = "sha256:1296f2cdd6db09b98ceb3c93025f0da4835303b8ac46c15c2136e27ee4d18d94"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-win_amd64.whl", hash = "sha256:80e7f697bccc56ac6eac9e2df5c98b47de57e7006d2e46e1a3c17c546254f6ef"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2f251af4c75a675ea42766880ff430ac33291c8d0057acca79710f9e5a77383d"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb8f9e4c4718f111d7b530c4e6fb4d28f9f110eb82e7961412955b3875b66de0"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afb1672b57f58c0318ad2cff80b384e816735ffc7e848d8aa51e0b0fc2f4b7bb"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-win32.whl", hash = "sha256:6e41cb5cda641f3754568d2ed8962f772a7f2b59403b95c60c89f3e0bd25f15e"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-win_amd64.whl", hash = "sha256:5bed4f8c3b69779de9d99eb03fd9ab67a850d74ab0243d1be9d4080e77b6af12"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:49e3772eb3380ac88d35495843daf3c03f094b713e66c7d017e322144a5c6b7c"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:618827c1a1c243d2540314c6e100aee7af09a709bd005bae971686fab6723554"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de9acf369aaadb71a725b7e83a5ef40ca3de1cf4cdc93fa847df6b12d3cd924b"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-win32.whl", hash = "sha256:763bd97c4ebc74136ecf3526b34808c58945023a59927b416acebcd68d1fc126"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-win_amd64.whl", hash = "sha256:f12aaf94f4d9679ca475975578739e12cc5b461172e04d66f7a3c39dd14ffc64"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:853fcfd1f54224ea7aabcf34b227d2b64a08cbac116ecf376907968b29b8e763"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f98dbb8fcc6d1c03ae8ec735d3c62110949a3b8bc6e215053aa27096857afb45"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e135fff2e84103bc15c07edd8569612ce317d64bdb391f49ce57124a73f45c5"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5b5de6af8852500d01398f5047d62ca3431d1e29a331d0b56c3e14cb03f8094c"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3491c85df263a5c2157c594f54a1a9c72265b75d3777e61ee13c556d9e43ffc9"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-win32.whl", hash = "sha256:427c282dd0deba1f07bcbf499cbcc9fe9a626743f5d4989bfdfd3ed3513003dd"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-win_amd64.whl", hash = "sha256:ca5ce82b11731492204cff8845c5e8ca1a4bd1ade85e3b8fcf86e7601bfc6a39"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:29d4247313abb2015f8979137fe65f4eaceead5247d39603cc4b4a610936cd2b"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a752bff4796bf22803d052d4841ebc3c55c26fb65551f2c96e90ac7c62be763a"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7ea11727feb2861deaa293c7971a4df57ef1c90e42cb53f0da40c3468388000"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d913f8953e098ca931ad7f58797f91deed26b435ec3756478b75c608aa80d139"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a251146b921725547ea1735b060a11e1be705017b568c9f8067ca61e6ef85f20"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-win32.whl", hash = "sha256:1f8e1c6a6b7f8e9407ad9afc0ea41c1f65225ce505b79bc0342159de9c890782"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-win_amd64.whl", hash = "sha256:346ed50cb2c30f5d7a03d888e25744154ceac6f0e6e1ab3bc7b5b77138d37710"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:4dae6001457d4497736e3bc422165f107ecdd70b0d651fab7f731276e8b9e12d"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5d2e08d79f5bf250afb4a61426b41026e448da446b55e4770c2afdc1e200fce"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bbce5dd7c7735e01d24f5a60177f3e589078f83c8a29e124a6521b76d825b85"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bdb7b4d889631a3b2a81a3347c4c3f031812eb4adeaa3ee4e6b0d028ad1852b5"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c294ae4e6bbd060dd79e2bd5bba8b6274d08ffd65b58d106394cb6abbf35cf45"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-win32.whl", hash = "sha256:bcdfb4b47fe04967669874fb1ce782a006756fdbebe7263f6a000e1db969120e"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-win_amd64.whl", hash = "sha256:7d0dbc56cb6af5088f3658982d3d8c1d6a82691f31f7b0da682c7b98fa914e91"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:a551d5f3dc63f096ed41775ceec72fdf91462bb95abdc179010dc95a93957800"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ab773f9ad848118df7a9bbabca53e3f1002387cdbb6ee81693db808b82aaab0"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2de46f5d5396d5331127cfa71f837cca945f9a2b04f7cb5a01949cf676db7d1"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7027be7930a90d18a386b25ee8af30514c61f3852c7268899f23fdfbd3107181"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99224d621affbb3c1a4f72b631f8393045f4ce647dd3262f12fe3576918f8bf3"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-win32.whl", hash = "sha256:c124912fd4e1bb9d1e7dc193ed482a9f812769cb1e69363ab68e01801e859821"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-win_amd64.whl", hash = "sha256:2c286fab42e49db23c46ab02479f328b8bdb837d3e281cae546cc4085c83b680"}, + {file = "SQLAlchemy-1.4.52.tar.gz", hash = "sha256:80e63bbdc5217dad3485059bdf6f65a7d43f33c8bde619df5c220edf03d87296"}, +] + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\")"} + +[package.extras] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)", "sqlalchemy2-stubs"] +mysql = ["mysqlclient (>=1.4.0)", "mysqlclient (>=1.4.0,<2)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=7)", "cx_oracle (>=7,<8)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +pymysql = ["pymysql", "pymysql (<1)"] +sqlcipher = ["sqlcipher3_binary"] + +[[package]] +name = "stack-data" +version = "0.6.3" +description = "Extract data from python stack frames and tracebacks for informative displays" +optional = false +python-versions = "*" +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + +[[package]] +name = "terminado" +version = "0.18.1" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, + {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, +] + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] + +[[package]] +name = "tinycss2" +version = "1.3.0" +description = "A tiny CSS parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tinycss2-1.3.0-py3-none-any.whl", hash = "sha256:54a8dbdffb334d536851be0226030e9505965bb2f30f21a4a82c55fb2a80fae7"}, + {file = "tinycss2-1.3.0.tar.gz", hash = "sha256:152f9acabd296a8375fbca5b84c961ff95971fcfc32e79550c8df8e29118c54d"}, +] + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["pytest", "ruff"] + +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] + +[[package]] +name = "toolz" +version = "0.12.1" +description = "List processing tools and functional utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "toolz-0.12.1-py3-none-any.whl", hash = "sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85"}, + {file = "toolz-0.12.1.tar.gz", hash = "sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"}, +] + +[[package]] +name = "tornado" +version = "6.4.1" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">=3.8" +files = [ + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"}, + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"}, + {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"}, + {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"}, + {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"}, +] + +[[package]] +name = "tqdm" +version = "4.66.4" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tqdm-4.66.4-py3-none-any.whl", hash = "sha256:b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644"}, + {file = "tqdm-4.66.4.tar.gz", hash = "sha256:e4d936c9de8727928f3be6079590e97d9abfe8d39a590be678eb5919ffc186bb"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "traitlets" +version = "5.14.3" +description = "Traitlets Python configuration system" +optional = false +python-versions = ">=3.8" +files = [ + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, +] + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] + +[[package]] +name = "typeguard" +version = "2.13.3" +description = "Run-time type checker for Python" +optional = false +python-versions = ">=3.5.3" +files = [ + {file = "typeguard-2.13.3-py3-none-any.whl", hash = "sha256:5e3e3be01e887e7eafae5af63d1f36c849aaa94e3a0112097312aabfa16284f1"}, + {file = "typeguard-2.13.3.tar.gz", hash = "sha256:00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4"}, +] + +[package.extras] +doc = ["sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["mypy", "pytest", "typing-extensions"] + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20240316" +description = "Typing stubs for python-dateutil" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-python-dateutil-2.9.0.20240316.tar.gz", hash = "sha256:5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202"}, + {file = "types_python_dateutil-2.9.0.20240316-py3-none-any.whl", hash = "sha256:6b8cb66d960771ce5ff974e9dd45e38facb81718cc1e208b10b1baccbfdbee3b"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "tzdata" +version = "2024.1" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +description = "RFC 6570 URI Template Processor" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, +] + +[package.extras] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] + +[[package]] +name = "urllib3" +version = "2.2.1" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "wcwidth" +version = "0.2.13" +description = "Measures the displayed width of unicode strings in a terminal" +optional = false +python-versions = "*" +files = [ + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, +] + +[[package]] +name = "webcolors" +version = "24.6.0" +description = "A library for working with the color formats defined by HTML and CSS." +optional = false +python-versions = ">=3.8" +files = [ + {file = "webcolors-24.6.0-py3-none-any.whl", hash = "sha256:8cf5bc7e28defd1d48b9e83d5fc30741328305a8195c29a8e668fa45586568a1"}, + {file = "webcolors-24.6.0.tar.gz", hash = "sha256:1d160d1de46b3e81e58d0a280d0c78b467dc80f47294b91b1ad8029d2cedb55b"}, +] + +[package.extras] +docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] +tests = ["coverage[toml]"] + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websocket-client" +version = "1.8.0" +description = "WebSocket client for Python with low level API options" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, + {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, +] + +[package.extras] +docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[[package]] +name = "wheel" +version = "0.43.0" +description = "A built-package format for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "wheel-0.43.0-py3-none-any.whl", hash = "sha256:55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81"}, + {file = "wheel-0.43.0.tar.gz", hash = "sha256:465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85"}, +] + +[package.extras] +test = ["pytest (>=6.0.0)", "setuptools (>=65)"] + +[[package]] +name = "widgetsnbextension" +version = "3.6.6" +description = "IPython HTML widgets for Jupyter" +optional = false +python-versions = "*" +files = [ + {file = "widgetsnbextension-3.6.6-py2.py3-none-any.whl", hash = "sha256:e7fb9999845affc9024ecfbe0a824dd8e633403d027b28ceadab398b633ad51c"}, + {file = "widgetsnbextension-3.6.6.tar.gz", hash = "sha256:46f4e3cb2d451bbd6141a13696d6ba17c9b5f50645dca9cfd26fe9644d5a00e1"}, +] + +[package.dependencies] +notebook = ">=4.4.1" + +[[package]] +name = "xarray" +version = "2022.9.0" +description = "N-D labeled arrays and datasets in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "xarray-2022.9.0-py3-none-any.whl", hash = "sha256:baa7c1a9135198435a2cfb2c68e8b1fdd100d8a44ddaece6031116f585734da7"}, + {file = "xarray-2022.9.0.tar.gz", hash = "sha256:a2a5b48ec0a3890b71ef48853fe9d5107d2f75452722f319cb8ed6ff8e72e883"}, +] + +[package.dependencies] +numpy = ">=1.19" +packaging = ">=20.0" +pandas = ">=1.2" + +[package.extras] +accel = ["bottleneck", "flox", "numbagg", "scipy"] +complete = ["bottleneck", "cfgrib", "cftime", "dask[complete]", "flox", "fsspec", "h5netcdf", "matplotlib", "nc-time-axis", "netCDF4", "numbagg", "pooch", "pydap", "rasterio", "scipy", "seaborn", "zarr"] +docs = ["bottleneck", "cfgrib", "cftime", "dask[complete]", "flox", "fsspec", "h5netcdf", "ipykernel", "ipython", "jupyter-client", "matplotlib", "nbsphinx", "nc-time-axis", "netCDF4", "numbagg", "pooch", "pydap", "rasterio", "scanpydoc", "scipy", "seaborn", "sphinx-autosummary-accessors", "sphinx-rtd-theme", "zarr"] +io = ["cfgrib", "cftime", "fsspec", "h5netcdf", "netCDF4", "pooch", "pydap", "rasterio", "scipy", "zarr"] +parallel = ["dask[complete]"] +viz = ["matplotlib", "nc-time-axis", "seaborn"] + +[[package]] +name = "xarray-einstats" +version = "0.7.0" +description = "Stats, linear algebra and einops for xarray" +optional = false +python-versions = ">=3.9" +files = [ + {file = "xarray_einstats-0.7.0-py3-none-any.whl", hash = "sha256:f39403341ebf5b634ab1f1bd0e1bb2dc51046e0df31aa908dfbe2fa6a493712e"}, + {file = "xarray_einstats-0.7.0.tar.gz", hash = "sha256:2d7b571b3bbad3cf2fd10c6c75fd949d247d14c29574184c8489d9d607278d38"}, +] + +[package.dependencies] +numpy = ">=1.22" +scipy = ">=1.8" +xarray = ">=2022.09.0" + +[package.extras] +doc = ["furo", "jupyter-sphinx", "matplotlib", "myst-nb", "myst-parser[linkify]", "numpydoc", "sphinx (>=5)", "sphinx-copybutton", "sphinx-design", "sphinx-togglebutton", "watermark"] +einops = ["einops"] +numba = ["numba (>=0.55)"] +test = ["hypothesis", "packaging", "pytest", "pytest-cov"] + +[[package]] +name = "xlsxwriter" +version = "1.4.5" +description = "A Python module for creating Excel XLSX files." +optional = false +python-versions = "*" +files = [ + {file = "XlsxWriter-1.4.5-py2.py3-none-any.whl", hash = "sha256:f9335f1736e2c4fd80e940fe1b6d92d967bf454a1e5d639b0b7a4459ade790cc"}, + {file = "XlsxWriter-1.4.5.tar.gz", hash = "sha256:0956747859567ec01907e561a7d8413de18a7aae36860f979f9da52b9d58bc19"}, +] + +[[package]] +name = "zipp" +version = "3.19.2" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, + {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, +] + +[package.extras] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.11" +content-hash = "1d4252501e2f94d66e6efff363c91149a47c19134dfc50fd77f39357780b420b" diff --git a/pyproject.toml b/pyproject.toml index e4589f39..1201f570 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,7 +18,7 @@ pytest = "^6.2.1" python-dateutil = "^2.8.1" pytz = "^2020.5" scipy = "^1.6.0" -seaborn = "^0.11.1" +seaborn = "^0.13" six = "^1.15.0" toml = "^0.10.2" typing-extensions = "^4" @@ -27,10 +27,12 @@ sphinx-rtd-theme = "^0.4" myst-nb = "^0.13.1" autograd = "^1.3" jax = "^0.4" -equinox = "^0.9" +equinox = "^0.11" numpyro = "^0.14" arviz = "^0.13" optax = "^0.1" +matplotlib = "^3.9" + [tool.black] line-length = 120 From 13ae015d76645a21d7497f874c91efe89b569c37 Mon Sep 17 00:00:00 2001 From: conorheins Date: Mon, 10 Jun 2024 17:59:35 +0200 Subject: [PATCH 011/196] added an example of A tensors and B tensors where smoothing should disambiguate hidden states in the past --- .../inference_methods_comparison.ipynb | 140 ++++++++++++++++-- 1 file changed, 125 insertions(+), 15 deletions(-) diff --git a/examples/inference_and_learning/inference_methods_comparison.ipynb b/examples/inference_and_learning/inference_methods_comparison.ipynb index 7cf3d5b2..eff7f606 100644 --- a/examples/inference_and_learning/inference_methods_comparison.ipynb +++ b/examples/inference_and_learning/inference_methods_comparison.ipynb @@ -10,28 +10,109 @@ "from pymdp.jax.agent import Agent" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Set up generative model and a sequence of observations. The A tensors, B tensors and observations are specified in such a way that only later observations ($o_{t > 1}$) help disambiguate hidden states at earlier time points. This will demonstrate the importance of \"smoothing\" or retrospective inference" + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ + "num_states = [3, 2]\n", + "num_obs = [3]\n", + "\n", + "A_tensor = jnp.stack([jnp.array([[0.5, 0.5, 0.], \n", + " [0.0, 0.0, 1.], \n", + " [0.5, 0.5, 0.]]\n", + " ), jnp.array([[1./3, 1./3, 1./3], \n", + " [1./3, 1./3, 1./3], \n", + " [1./3, 1./3, 1./3]]\n", + " )], axis=-1)\n", + "\n", + "A = [ jnp.broadcast_to(A_tensor, (2, 3, 3, 2)) ]\n", + "\n", + "# create two B matrices, one for each action\n", + "B_1 = jnp.broadcast_to(jnp.array([[0.0, 0.75, 0.0],\n", + " [0.0, 0.25, 1.0],\n", + " [1.0, 0.0, 0.0]]\n", + " ), (2, 3, 3))\n", + "\n", + "B_2 = jnp.broadcast_to(jnp.array([[0.0, 0.25, 0.0],\n", + " [0.0, 0.75, 0.0],\n", + " [1.0, 0.0, 1.0]]\n", + " ), (2, 3, 3))\n", + "\n", + "B_uncontrollable = jnp.expand_dims(\n", + " jnp.broadcast_to(\n", + " jnp.array([[1.0, 0.0], [0.0, 1.0]]), (2, 2, 2)\n", + " ), \n", + " -1\n", + ")\n", "\n", + "B = [jnp.stack([B_1, B_2], axis=-1), B_uncontrollable]\n", "\n", + "# create a policy-dependent sequence of B matrices\n", + "\n", + "policy_1 = jnp.array([ [0, 0],\n", + " [1, 0],\n", + " [1, 0] ]\n", + " )\n", + "\n", + "policy_2 = jnp.array([ [1, 0],\n", + " [1, 0],\n", + " [1, 0] ]\n", + " )\n", + "\n", + "policy_3 = jnp.array([ [1, 0],\n", + " [0, 0],\n", + " [1, 0] ]\n", + " )\n", + "\n", + "all_policies = [policy_1, policy_2, policy_3]\n", + "n_policies = len(all_policies)\n", + "all_policies = list(jnp.stack(all_policies).transpose(2, 0, 1)) # `n_factors` lists, each with matrix of shape `(n_policies, n_time_steps)`\n", + "\n", + "# for the single modality, a sequence over time of observations (one hot vectors)\n", + "obs = [jnp.broadcast_to(jnp.array([[1., 0., 0.], # observation 0 is ambiguous with respect to hidden state_1 and hidden_state 2\n", + " [0., 1., 0.], # observation 1 yields certain inference over hidden_state_1 = 2\n", + " [0., 0., 1.], # observation 2 is ambiguous with respect to hidden state_1 and hidden_state 2\n", + " [1., 0., 0.]])[:, None], (4, 2, 3) )] # observation 0 is ambiguous with respect to hidden state_1 and hidden_state 2\n", + "\n", + "C = [jnp.ones((2,3))] # flat preferences\n", + "D = [jnp.ones((2, 3)) / 3., jnp.ones((2, 2)) / 2.] # flat prior\n", + "E = jnp.ones((2,n_policies))/n_policies\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Construct the `Agent`" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ "pA = None\n", "pB = None\n", "\n", "agents = Agent(\n", - " A,\n", - " B,\n", - " C,\n", - " D,\n", - " E,\n", - " pA,\n", - " pB,\n", - " A_dependencies=None,\n", - " B_dependencies=None,\n", - " policy_len=1,\n", + " A=A,\n", + " B=B,\n", + " C=C,\n", + " D=D,\n", + " E=E,\n", + " pA=None,\n", + " pB=None,\n", + " policy_len=3,\n", " control_fac_idx=None,\n", " policies=None,\n", " gamma=16.0,\n", @@ -39,11 +120,40 @@ " use_utility=True,\n", " action_selection=\"deterministic\",\n", " sampling_mode=\"full\",\n", - " inference_algo=\"fpi\",\n", + " inference_algo=\"ovf\",\n", " num_iter=16,\n", " learn_A=False,\n", - " learn_B=False\n", - ")" + " learn_B=False)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using `obs` and `policies`, pass in the arguments `outcomes`, `past_actions`, `empirical_prior` and `qs_hist` to `agent.infer_states(...)`" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "vmap got inconsistent sizes for array axes to be mapped:\n * most axes (13 of them) had size 2, e.g. axis 0 of args[0].A[0] of type float32[2,3,3,2];\n * one axis had size 4: axis 0 of args[1][0] of type float32[4,2,3]", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[25], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43magents\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minfer_states\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobs\u001b[49m\u001b[43m)\u001b[49m\n", + " \u001b[0;31m[... skipping hidden 3 frame]\u001b[0m\n", + "File \u001b[0;32m~/miniconda3/envs/pymdp_dev_env/lib/python3.12/site-packages/jax/_src/api.py:1296\u001b[0m, in \u001b[0;36m_mapped_axis_size\u001b[0;34m(fn, tree, vals, dims, name)\u001b[0m\n\u001b[1;32m 1294\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1295\u001b[0m msg\u001b[38;5;241m.\u001b[39mappend(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m * some axes (\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mct\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m of them) had size \u001b[39m\u001b[38;5;132;01m{\u001b[39;00msz\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, e.g. axis \u001b[39m\u001b[38;5;132;01m{\u001b[39;00max\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m of \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mex\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m;\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 1296\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(msg)[:\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m2\u001b[39m])\n", + "\u001b[0;31mValueError\u001b[0m: vmap got inconsistent sizes for array axes to be mapped:\n * most axes (13 of them) had size 2, e.g. axis 0 of args[0].A[0] of type float32[2,3,3,2];\n * one axis had size 4: axis 0 of args[1][0] of type float32[4,2,3]" + ] + } + ], + "source": [ + "beliefs = agents.infer_states(outcomes, past_actions, empirical_prior, qs_hist, mask=None)\n" ] } ], @@ -63,7 +173,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.7" + "version": "3.12.3" } }, "nbformat": 4, From ae528d9558035df5ffeb9ae35e3320e3e4a099a7 Mon Sep 17 00:00:00 2001 From: conorheins Date: Mon, 10 Jun 2024 18:14:54 +0200 Subject: [PATCH 012/196] did first step of inference in the ovf example --- .../inference_methods_comparison.ipynb | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/examples/inference_and_learning/inference_methods_comparison.ipynb b/examples/inference_and_learning/inference_methods_comparison.ipynb index eff7f606..1c42052b 100644 --- a/examples/inference_and_learning/inference_methods_comparison.ipynb +++ b/examples/inference_and_learning/inference_methods_comparison.ipynb @@ -2,12 +2,13 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import jax.numpy as jnp\n", - "from pymdp.jax.agent import Agent" + "from jax import tree_util as jtu\n", + "from pymdp.jax.agent import Agent\n" ] }, { @@ -19,7 +20,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -97,7 +98,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -133,27 +134,28 @@ "### Using `obs` and `policies`, pass in the arguments `outcomes`, `past_actions`, `empirical_prior` and `qs_hist` to `agent.infer_states(...)`" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run first timestep of inference using `obs[0]`, no past actions, empirical prior set to actual prior, no qs_hist" + ] + }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "first_obs = jtu.tree_map(lambda x: x[0], obs)\n", + "beliefs = agents.infer_states(first_obs, past_actions=None, empirical_prior=D, qs_hist=None, mask=None)" + ] + }, + { + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "vmap got inconsistent sizes for array axes to be mapped:\n * most axes (13 of them) had size 2, e.g. axis 0 of args[0].A[0] of type float32[2,3,3,2];\n * one axis had size 4: axis 0 of args[1][0] of type float32[4,2,3]", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[25], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43magents\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minfer_states\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobs\u001b[49m\u001b[43m)\u001b[49m\n", - " \u001b[0;31m[... skipping hidden 3 frame]\u001b[0m\n", - "File \u001b[0;32m~/miniconda3/envs/pymdp_dev_env/lib/python3.12/site-packages/jax/_src/api.py:1296\u001b[0m, in \u001b[0;36m_mapped_axis_size\u001b[0;34m(fn, tree, vals, dims, name)\u001b[0m\n\u001b[1;32m 1294\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1295\u001b[0m msg\u001b[38;5;241m.\u001b[39mappend(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m * some axes (\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mct\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m of them) had size \u001b[39m\u001b[38;5;132;01m{\u001b[39;00msz\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, e.g. axis \u001b[39m\u001b[38;5;132;01m{\u001b[39;00max\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m of \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mex\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m;\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 1296\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(msg)[:\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m2\u001b[39m])\n", - "\u001b[0;31mValueError\u001b[0m: vmap got inconsistent sizes for array axes to be mapped:\n * most axes (13 of them) had size 2, e.g. axis 0 of args[0].A[0] of type float32[2,3,3,2];\n * one axis had size 4: axis 0 of args[1][0] of type float32[4,2,3]" - ] - } - ], "source": [ - "beliefs = agents.infer_states(outcomes, past_actions, empirical_prior, qs_hist, mask=None)\n" + "### Concatenate the last beliefs, aka output of the previous step (will now be passed in as `qs_hist`), assume the agent took the first timestep of each policy and log it as the `past_action`, and get the `empirical_prior` for the next step using `agent.update_empirical_prior()`" ] } ], From 11a2f91797d5707fd5c690bc68fe9f2a0a3fd806 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Mon, 10 Jun 2024 16:45:36 +0200 Subject: [PATCH 013/196] add a pyproject toml --- pyproject.toml | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..e4589f39 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,40 @@ +[tool.poetry] +name = "pymdp" +version = "0.1.0" +description = "" +authors = ["Your Name "] +license = "MIT" +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.11" +openpyxl = "^3.0.7" +packaging = "^20.8" +Pillow = "^8.2.0" +pluggy = "^0.13.1" +py = "^1.10.0" +pyparsing = "^2.4.7" +pytest = "^6.2.1" +python-dateutil = "^2.8.1" +pytz = "^2020.5" +scipy = "^1.6.0" +seaborn = "^0.11.1" +six = "^1.15.0" +toml = "^0.10.2" +typing-extensions = "^4" +xlsxwriter = "^1.4.3" +sphinx-rtd-theme = "^0.4" +myst-nb = "^0.13.1" +autograd = "^1.3" +jax = "^0.4" +equinox = "^0.9" +numpyro = "^0.14" +arviz = "^0.13" +optax = "^0.1" + +[tool.black] +line-length = 120 + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" From f9f9bab4de2fa6018be861e92afd03186fe3a35d Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Mon, 10 Jun 2024 17:28:16 +0200 Subject: [PATCH 014/196] get a version that passes all tests --- poetry.lock | 3841 ++++++++++++++++++++++++++++++++++++++++++++++++ pyproject.toml | 6 +- 2 files changed, 3845 insertions(+), 2 deletions(-) create mode 100644 poetry.lock diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 00000000..322a9a78 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,3841 @@ +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. + +[[package]] +name = "absl-py" +version = "2.1.0" +description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py." +optional = false +python-versions = ">=3.7" +files = [ + {file = "absl-py-2.1.0.tar.gz", hash = "sha256:7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff"}, + {file = "absl_py-2.1.0-py3-none-any.whl", hash = "sha256:526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308"}, +] + +[[package]] +name = "alabaster" +version = "0.7.16" +description = "A light, configurable Sphinx theme" +optional = false +python-versions = ">=3.9" +files = [ + {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, + {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, +] + +[[package]] +name = "anyio" +version = "4.4.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.8" +files = [ + {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, + {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, +] + +[package.dependencies] +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] + +[[package]] +name = "appnope" +version = "0.1.4" +description = "Disable App Nap on macOS >= 10.9" +optional = false +python-versions = ">=3.6" +files = [ + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, +] + +[[package]] +name = "argon2-cffi" +version = "23.1.0" +description = "Argon2 for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, + {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, +] + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["argon2-cffi[tests,typing]", "tox (>4)"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] +tests = ["hypothesis", "pytest"] +typing = ["mypy"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +optional = false +python-versions = ">=3.6" +files = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "arrow" +version = "1.3.0" +description = "Better dates & times for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, + {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, +] + +[package.dependencies] +python-dateutil = ">=2.7.0" +types-python-dateutil = ">=2.8.10" + +[package.extras] +doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] +test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] + +[[package]] +name = "arviz" +version = "0.13.0" +description = "Exploratory analysis of Bayesian models" +optional = false +python-versions = ">=3.8" +files = [ + {file = "arviz-0.13.0-py3-none-any.whl", hash = "sha256:c96c23726bd458f0266d2713ff728b4f7fcd306f0cbfa6399b6ede5139325b48"}, + {file = "arviz-0.13.0.tar.gz", hash = "sha256:65816761fd2a864e5da08c8663adf7260cd8c904933a88f3b86f2c1ed7510d5e"}, +] + +[package.dependencies] +matplotlib = ">=3.5" +netcdf4 = "*" +numpy = ">=1.20.0" +packaging = "*" +pandas = ">=1.4.0" +scipy = ">=1.8.0" +setuptools = ">=60.0.0" +typing-extensions = ">=4.1.0" +xarray = ">=0.21.0" +xarray-einstats = ">=0.3" + +[package.extras] +all = ["bokeh (>=1.4.0,<3.0)", "contourpy", "dask[distributed]", "numba", "ujson", "zarr (>=2.5.0)"] + +[[package]] +name = "asttokens" +version = "2.4.1" +description = "Annotate AST trees with source code positions" +optional = false +python-versions = "*" +files = [ + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, +] + +[package.dependencies] +six = ">=1.12.0" + +[package.extras] +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] + +[[package]] +name = "atomicwrites" +version = "1.4.1" +description = "Atomic file writes." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, +] + +[[package]] +name = "attrs" +version = "21.4.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, + {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, +] + +[package.extras] +dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six", "sphinx", "sphinx-notfound-page", "zope.interface"] +docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] +tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six", "zope.interface"] +tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six"] + +[[package]] +name = "autograd" +version = "1.6.2" +description = "Efficiently computes derivatives of numpy code." +optional = false +python-versions = "*" +files = [ + {file = "autograd-1.6.2-py3-none-any.whl", hash = "sha256:208dde2a938e63b4f8f5049b1985505139e529068b0d26f8cd7771fd3eb145d5"}, + {file = "autograd-1.6.2.tar.gz", hash = "sha256:8731e08a0c4e389d8695a40072ada4512641c113b6cace8f4cfbe8eb7e9aedeb"}, +] + +[package.dependencies] +future = ">=0.15.2" +numpy = ">=1.12" + +[[package]] +name = "babel" +version = "2.15.0" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, + {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, +] + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "bleach" +version = "6.1.0" +description = "An easy safelist-based HTML-sanitizing tool." +optional = false +python-versions = ">=3.8" +files = [ + {file = "bleach-6.1.0-py3-none-any.whl", hash = "sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6"}, + {file = "bleach-6.1.0.tar.gz", hash = "sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe"}, +] + +[package.dependencies] +six = ">=1.9.0" +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.3)"] + +[[package]] +name = "certifi" +version = "2024.6.2" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"}, + {file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"}, +] + +[[package]] +name = "cffi" +version = "1.16.0" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "cftime" +version = "1.6.4" +description = "Time-handling functionality from netcdf4-python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cftime-1.6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ee70074df4bae0d9ee98f201cf5f11fd302791cf1cdeb73c34f685d6b632e17d"}, + {file = "cftime-1.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e5456fd58d4cc6b8d7b4932b749617ee142b62a52bc5d8e3c282ce69ce3a20ba"}, + {file = "cftime-1.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1289e08617be350a6b26c6e4352a0cb088625ac33d25e95110df549c26d6ab8e"}, + {file = "cftime-1.6.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18b132d9225b4a109929866200846c72302316db9069e2de3ec8d8ec377f567f"}, + {file = "cftime-1.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ca1a264570e68fbb611bba251641b8efd0cf88c0ad2dcab5fa784df264232b75"}, + {file = "cftime-1.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:6fc82928cbf477bebf233f41914e64bff7b9e894c7f0c34170784a48250f8da7"}, + {file = "cftime-1.6.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c1558d9b477bd29626cd8bfc89e736635f72887d1a993e2834ab579bba7abb8c"}, + {file = "cftime-1.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:03494e7b66a2fbb6b04e364ab67185130dee0ced660abac5c1559070571d143d"}, + {file = "cftime-1.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dcb2a01d4e614437582af33b36db4fb441b7666758482864827a1f037d2b639"}, + {file = "cftime-1.6.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b47bf25195fb3889bbae34df0e80957eb69c48f66902f5d538c7a8ec34253f6"}, + {file = "cftime-1.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d4f2cc0d5c6ffba9c5b0fd1ecd0c7c1c426d0be7b8de1480e2a9fb857c1905e9"}, + {file = "cftime-1.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:76b8f1e5d1e424accdf760a43e0a1793a7b640bab83cb067273d5c9dbb336c44"}, + {file = "cftime-1.6.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c349a91fa7ac9ec50118b04a8746bdea967bd2fc525d87c776003040b8d3392"}, + {file = "cftime-1.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:588d073400798adc24ece759cd1cb24ef730f55d1f70e31a898e7686f9d763d8"}, + {file = "cftime-1.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e07b91b488570573bbeb6f815656a8974d13d15b2279c82de2927f4f692bbcd"}, + {file = "cftime-1.6.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f92f2e405eeda47b30ab6231d8b7d136a55f21034d394f93ade322d356948654"}, + {file = "cftime-1.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:567574df94d0de1101bb5da76e7fbc6eabfddeeb2eb8cf83286b3599a136bbf7"}, + {file = "cftime-1.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:5b5ad7559a16bedadb66af8e417b6805f758acb57aa38d2730844dfc63a1e667"}, + {file = "cftime-1.6.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c072fe9e09925af66a9473edf5752ca1890ba752e7c1935d1f0245ad48f0977c"}, + {file = "cftime-1.6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c05a71389f53d6340cb365b60f028c08268c72401660b9ef76108dee9f1cb5b2"}, + {file = "cftime-1.6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0edeb1cb019d8155b2513cffb96749c0d7d459370e69bdf03077e0bee214aed8"}, + {file = "cftime-1.6.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f05d5d6bb4137f9783fa61ad330030fcea8dcc6946dea69a27774edbe480e7"}, + {file = "cftime-1.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:b32ac1278a2a111b066d5a1e6e5ce6f38c4c505993a6a3130873b56f99d7b56f"}, + {file = "cftime-1.6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c20f03e12af39534c3450bba376272803bfb850b5ce6433c839bfaa99f8d835a"}, + {file = "cftime-1.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:90609b3c1a31a756a68ecdbc961a4ce0b22c1620f166c8dabfa3a4c337ac8b9e"}, + {file = "cftime-1.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbe11ad73b2a0ddc79995da21459fc2a3fd6b1593ca73f00a60e4d81c3e230f3"}, + {file = "cftime-1.6.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25f043703e785de0bd7cd8222c0a53317e9aeb3dfc062588b05e6f3ebb007468"}, + {file = "cftime-1.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f9acc272df1022f24fe7dbe9de43fa5d8271985161df14549e4d8d28c90dc9ea"}, + {file = "cftime-1.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:e8467b6fbf8dbfe0be8c04d61180765fdd3b9ab0fe51313a0bbf87e63634a3d8"}, + {file = "cftime-1.6.4.tar.gz", hash = "sha256:e325406193758a7ed67308deb52e727782a19e384e183378e7ff62098be0aedc"}, +] + +[package.dependencies] +numpy = [ + {version = ">1.13.3", markers = "python_version < \"3.12.0.rc1\""}, + {version = ">=1.26.0b1", markers = "python_version >= \"3.12.0.rc1\""}, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "chex" +version = "0.1.86" +description = "Chex: Testing made fun, in JAX!" +optional = false +python-versions = ">=3.9" +files = [ + {file = "chex-0.1.86-py3-none-any.whl", hash = "sha256:251c20821092323a3d9c28e1cf80e4a58180978bec368f531949bd9847eee568"}, + {file = "chex-0.1.86.tar.gz", hash = "sha256:e8b0f96330eba4144659e1617c0f7a57b161e8cbb021e55c6d5056c7378091d1"}, +] + +[package.dependencies] +absl-py = ">=0.9.0" +jax = ">=0.4.16" +jaxlib = ">=0.1.37" +numpy = ">=1.24.1" +setuptools = {version = "*", markers = "python_version >= \"3.12\""} +toolz = ">=0.9.0" +typing-extensions = ">=4.2.0" + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "comm" +version = "0.2.2" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +optional = false +python-versions = ">=3.8" +files = [ + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, +] + +[package.dependencies] +traitlets = ">=4" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "contourpy" +version = "1.2.1" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.9" +files = [ + {file = "contourpy-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd7c23df857d488f418439686d3b10ae2fbf9bc256cd045b37a8c16575ea1040"}, + {file = "contourpy-1.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5b9eb0ca724a241683c9685a484da9d35c872fd42756574a7cfbf58af26677fd"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c75507d0a55378240f781599c30e7776674dbaf883a46d1c90f37e563453480"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11959f0ce4a6f7b76ec578576a0b61a28bdc0696194b6347ba3f1c53827178b9"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eb3315a8a236ee19b6df481fc5f997436e8ade24a9f03dfdc6bd490fea20c6da"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39f3ecaf76cd98e802f094e0d4fbc6dc9c45a8d0c4d185f0f6c2234e14e5f75b"}, + {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:94b34f32646ca0414237168d68a9157cb3889f06b096612afdd296003fdd32fd"}, + {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:457499c79fa84593f22454bbd27670227874cd2ff5d6c84e60575c8b50a69619"}, + {file = "contourpy-1.2.1-cp310-cp310-win32.whl", hash = "sha256:ac58bdee53cbeba2ecad824fa8159493f0bf3b8ea4e93feb06c9a465d6c87da8"}, + {file = "contourpy-1.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:9cffe0f850e89d7c0012a1fb8730f75edd4320a0a731ed0c183904fe6ecfc3a9"}, + {file = "contourpy-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6022cecf8f44e36af10bd9118ca71f371078b4c168b6e0fab43d4a889985dbb5"}, + {file = "contourpy-1.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ef5adb9a3b1d0c645ff694f9bca7702ec2c70f4d734f9922ea34de02294fdf72"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6150ffa5c767bc6332df27157d95442c379b7dce3a38dff89c0f39b63275696f"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c863140fafc615c14a4bf4efd0f4425c02230eb8ef02784c9a156461e62c965"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00e5388f71c1a0610e6fe56b5c44ab7ba14165cdd6d695429c5cd94021e390b2"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4492d82b3bc7fbb7e3610747b159869468079fe149ec5c4d771fa1f614a14df"}, + {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:49e70d111fee47284d9dd867c9bb9a7058a3c617274900780c43e38d90fe1205"}, + {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b59c0ffceff8d4d3996a45f2bb6f4c207f94684a96bf3d9728dbb77428dd8cb8"}, + {file = "contourpy-1.2.1-cp311-cp311-win32.whl", hash = "sha256:7b4182299f251060996af5249c286bae9361fa8c6a9cda5efc29fe8bfd6062ec"}, + {file = "contourpy-1.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2855c8b0b55958265e8b5888d6a615ba02883b225f2227461aa9127c578a4922"}, + {file = "contourpy-1.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:62828cada4a2b850dbef89c81f5a33741898b305db244904de418cc957ff05dc"}, + {file = "contourpy-1.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:309be79c0a354afff9ff7da4aaed7c3257e77edf6c1b448a779329431ee79d7e"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e785e0f2ef0d567099b9ff92cbfb958d71c2d5b9259981cd9bee81bd194c9a4"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cac0a8f71a041aa587410424ad46dfa6a11f6149ceb219ce7dd48f6b02b87a7"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af3f4485884750dddd9c25cb7e3915d83c2db92488b38ccb77dd594eac84c4a0"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ce6889abac9a42afd07a562c2d6d4b2b7134f83f18571d859b25624a331c90b"}, + {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a1eea9aecf761c661d096d39ed9026574de8adb2ae1c5bd7b33558af884fb2ce"}, + {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:187fa1d4c6acc06adb0fae5544c59898ad781409e61a926ac7e84b8f276dcef4"}, + {file = "contourpy-1.2.1-cp312-cp312-win32.whl", hash = "sha256:c2528d60e398c7c4c799d56f907664673a807635b857df18f7ae64d3e6ce2d9f"}, + {file = "contourpy-1.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:1a07fc092a4088ee952ddae19a2b2a85757b923217b7eed584fdf25f53a6e7ce"}, + {file = "contourpy-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bb6834cbd983b19f06908b45bfc2dad6ac9479ae04abe923a275b5f48f1a186b"}, + {file = "contourpy-1.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1d59e739ab0e3520e62a26c60707cc3ab0365d2f8fecea74bfe4de72dc56388f"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd3db01f59fdcbce5b22afad19e390260d6d0222f35a1023d9adc5690a889364"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a12a813949e5066148712a0626895c26b2578874e4cc63160bb007e6df3436fe"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe0ccca550bb8e5abc22f530ec0466136379c01321fd94f30a22231e8a48d985"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1d59258c3c67c865435d8fbeb35f8c59b8bef3d6f46c1f29f6123556af28445"}, + {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f32c38afb74bd98ce26de7cc74a67b40afb7b05aae7b42924ea990d51e4dac02"}, + {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d31a63bc6e6d87f77d71e1abbd7387ab817a66733734883d1fc0021ed9bfa083"}, + {file = "contourpy-1.2.1-cp39-cp39-win32.whl", hash = "sha256:ddcb8581510311e13421b1f544403c16e901c4e8f09083c881fab2be80ee31ba"}, + {file = "contourpy-1.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:10a37ae557aabf2509c79715cd20b62e4c7c28b8cd62dd7d99e5ed3ce28c3fd9"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a31f94983fecbac95e58388210427d68cd30fe8a36927980fab9c20062645609"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef2b055471c0eb466033760a521efb9d8a32b99ab907fc8358481a1dd29e3bd3"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b33d2bc4f69caedcd0a275329eb2198f560b325605810895627be5d4b876bf7f"}, + {file = "contourpy-1.2.1.tar.gz", hash = "sha256:4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c"}, +] + +[package.dependencies] +numpy = ">=1.20" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.8.0)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] + +[[package]] +name = "cycler" +version = "0.12.1" +description = "Composable style cycles" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, +] + +[package.extras] +docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] +tests = ["pytest", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "debugpy" +version = "1.8.1" +description = "An implementation of the Debug Adapter Protocol for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"}, + {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"}, + {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"}, + {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"}, + {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"}, + {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"}, + {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"}, + {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"}, + {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"}, + {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"}, + {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"}, + {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"}, + {file = "debugpy-1.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39"}, + {file = "debugpy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7"}, + {file = "debugpy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9"}, + {file = "debugpy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234"}, + {file = "debugpy-1.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42"}, + {file = "debugpy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703"}, + {file = "debugpy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23"}, + {file = "debugpy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3"}, + {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"}, + {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"}, +] + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +optional = false +python-versions = ">=3.5" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + +[[package]] +name = "docutils" +version = "0.17.1" +description = "Docutils -- Python Documentation Utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, + {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, +] + +[[package]] +name = "entrypoints" +version = "0.4" +description = "Discover and load entry points from installed packages." +optional = false +python-versions = ">=3.6" +files = [ + {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, + {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, +] + +[[package]] +name = "equinox" +version = "0.11.4" +description = "Elegant easy-to-use neural networks in JAX." +optional = false +python-versions = "~=3.9" +files = [ + {file = "equinox-0.11.4-py3-none-any.whl", hash = "sha256:a9527b1fe0c4778c3c959d9091b1eea28c3fdcca01790a47e71b47df94889315"}, + {file = "equinox-0.11.4.tar.gz", hash = "sha256:0033d9731083f402a855b12a0777a80aa8507651f7aa86d9f0f9503bcddfd320"}, +] + +[package.dependencies] +jax = ">=0.4.13" +jaxtyping = ">=0.2.20" +typing-extensions = ">=4.5.0" + +[[package]] +name = "et-xmlfile" +version = "1.1.0" +description = "An implementation of lxml.xmlfile for the standard library" +optional = false +python-versions = ">=3.6" +files = [ + {file = "et_xmlfile-1.1.0-py3-none-any.whl", hash = "sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada"}, + {file = "et_xmlfile-1.1.0.tar.gz", hash = "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"}, +] + +[[package]] +name = "executing" +version = "2.0.1" +description = "Get the currently executing AST node of a frame, and other information" +optional = false +python-versions = ">=3.5" +files = [ + {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, + {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, +] + +[package.extras] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] + +[[package]] +name = "fastjsonschema" +version = "2.19.1" +description = "Fastest Python implementation of JSON schema" +optional = false +python-versions = "*" +files = [ + {file = "fastjsonschema-2.19.1-py3-none-any.whl", hash = "sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0"}, + {file = "fastjsonschema-2.19.1.tar.gz", hash = "sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d"}, +] + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "fonttools" +version = "4.53.0" +description = "Tools to manipulate font files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fonttools-4.53.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:52a6e0a7a0bf611c19bc8ec8f7592bdae79c8296c70eb05917fd831354699b20"}, + {file = "fonttools-4.53.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:099634631b9dd271d4a835d2b2a9e042ccc94ecdf7e2dd9f7f34f7daf333358d"}, + {file = "fonttools-4.53.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e40013572bfb843d6794a3ce076c29ef4efd15937ab833f520117f8eccc84fd6"}, + {file = "fonttools-4.53.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:715b41c3e231f7334cbe79dfc698213dcb7211520ec7a3bc2ba20c8515e8a3b5"}, + {file = "fonttools-4.53.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74ae2441731a05b44d5988d3ac2cf784d3ee0a535dbed257cbfff4be8bb49eb9"}, + {file = "fonttools-4.53.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:95db0c6581a54b47c30860d013977b8a14febc206c8b5ff562f9fe32738a8aca"}, + {file = "fonttools-4.53.0-cp310-cp310-win32.whl", hash = "sha256:9cd7a6beec6495d1dffb1033d50a3f82dfece23e9eb3c20cd3c2444d27514068"}, + {file = "fonttools-4.53.0-cp310-cp310-win_amd64.whl", hash = "sha256:daaef7390e632283051e3cf3e16aff2b68b247e99aea916f64e578c0449c9c68"}, + {file = "fonttools-4.53.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a209d2e624ba492df4f3bfad5996d1f76f03069c6133c60cd04f9a9e715595ec"}, + {file = "fonttools-4.53.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4f520d9ac5b938e6494f58a25c77564beca7d0199ecf726e1bd3d56872c59749"}, + {file = "fonttools-4.53.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eceef49f457253000e6a2d0f7bd08ff4e9fe96ec4ffce2dbcb32e34d9c1b8161"}, + {file = "fonttools-4.53.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa1f3e34373aa16045484b4d9d352d4c6b5f9f77ac77a178252ccbc851e8b2ee"}, + {file = "fonttools-4.53.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:28d072169fe8275fb1a0d35e3233f6df36a7e8474e56cb790a7258ad822b6fd6"}, + {file = "fonttools-4.53.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4a2a6ba400d386e904fd05db81f73bee0008af37799a7586deaa4aef8cd5971e"}, + {file = "fonttools-4.53.0-cp311-cp311-win32.whl", hash = "sha256:bb7273789f69b565d88e97e9e1da602b4ee7ba733caf35a6c2affd4334d4f005"}, + {file = "fonttools-4.53.0-cp311-cp311-win_amd64.whl", hash = "sha256:9fe9096a60113e1d755e9e6bda15ef7e03391ee0554d22829aa506cdf946f796"}, + {file = "fonttools-4.53.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d8f191a17369bd53a5557a5ee4bab91d5330ca3aefcdf17fab9a497b0e7cff7a"}, + {file = "fonttools-4.53.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:93156dd7f90ae0a1b0e8871032a07ef3178f553f0c70c386025a808f3a63b1f4"}, + {file = "fonttools-4.53.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bff98816cb144fb7b85e4b5ba3888a33b56ecef075b0e95b95bcd0a5fbf20f06"}, + {file = "fonttools-4.53.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:973d030180eca8255b1bce6ffc09ef38a05dcec0e8320cc9b7bcaa65346f341d"}, + {file = "fonttools-4.53.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c4ee5a24e281fbd8261c6ab29faa7fd9a87a12e8c0eed485b705236c65999109"}, + {file = "fonttools-4.53.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bd5bc124fae781a4422f61b98d1d7faa47985f663a64770b78f13d2c072410c2"}, + {file = "fonttools-4.53.0-cp312-cp312-win32.whl", hash = "sha256:a239afa1126b6a619130909c8404070e2b473dd2b7fc4aacacd2e763f8597fea"}, + {file = "fonttools-4.53.0-cp312-cp312-win_amd64.whl", hash = "sha256:45b4afb069039f0366a43a5d454bc54eea942bfb66b3fc3e9a2c07ef4d617380"}, + {file = "fonttools-4.53.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:93bc9e5aaa06ff928d751dc6be889ff3e7d2aa393ab873bc7f6396a99f6fbb12"}, + {file = "fonttools-4.53.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2367d47816cc9783a28645bc1dac07f8ffc93e0f015e8c9fc674a5b76a6da6e4"}, + {file = "fonttools-4.53.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:907fa0b662dd8fc1d7c661b90782ce81afb510fc4b7aa6ae7304d6c094b27bce"}, + {file = "fonttools-4.53.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e0ad3c6ea4bd6a289d958a1eb922767233f00982cf0fe42b177657c86c80a8f"}, + {file = "fonttools-4.53.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:73121a9b7ff93ada888aaee3985a88495489cc027894458cb1a736660bdfb206"}, + {file = "fonttools-4.53.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ee595d7ba9bba130b2bec555a40aafa60c26ce68ed0cf509983e0f12d88674fd"}, + {file = "fonttools-4.53.0-cp38-cp38-win32.whl", hash = "sha256:fca66d9ff2ac89b03f5aa17e0b21a97c21f3491c46b583bb131eb32c7bab33af"}, + {file = "fonttools-4.53.0-cp38-cp38-win_amd64.whl", hash = "sha256:31f0e3147375002aae30696dd1dc596636abbd22fca09d2e730ecde0baad1d6b"}, + {file = "fonttools-4.53.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7d6166192dcd925c78a91d599b48960e0a46fe565391c79fe6de481ac44d20ac"}, + {file = "fonttools-4.53.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef50ec31649fbc3acf6afd261ed89d09eb909b97cc289d80476166df8438524d"}, + {file = "fonttools-4.53.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f193f060391a455920d61684a70017ef5284ccbe6023bb056e15e5ac3de11d1"}, + {file = "fonttools-4.53.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba9f09ff17f947392a855e3455a846f9855f6cf6bec33e9a427d3c1d254c712f"}, + {file = "fonttools-4.53.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0c555e039d268445172b909b1b6bdcba42ada1cf4a60e367d68702e3f87e5f64"}, + {file = "fonttools-4.53.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5a4788036201c908079e89ae3f5399b33bf45b9ea4514913f4dbbe4fac08efe0"}, + {file = "fonttools-4.53.0-cp39-cp39-win32.whl", hash = "sha256:d1a24f51a3305362b94681120c508758a88f207fa0a681c16b5a4172e9e6c7a9"}, + {file = "fonttools-4.53.0-cp39-cp39-win_amd64.whl", hash = "sha256:1e677bfb2b4bd0e5e99e0f7283e65e47a9814b0486cb64a41adf9ef110e078f2"}, + {file = "fonttools-4.53.0-py3-none-any.whl", hash = "sha256:6b4f04b1fbc01a3569d63359f2227c89ab294550de277fd09d8fca6185669fa4"}, + {file = "fonttools-4.53.0.tar.gz", hash = "sha256:c93ed66d32de1559b6fc348838c7572d5c0ac1e4a258e76763a5caddd8944002"}, +] + +[package.extras] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["munkres", "pycairo", "scipy"] +lxml = ["lxml (>=4.0)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.23.0)"] +symfont = ["sympy"] +type1 = ["xattr"] +ufo = ["fs (>=2.2.0,<3)"] +unicode = ["unicodedata2 (>=15.1.0)"] +woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] + +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] + +[[package]] +name = "future" +version = "1.0.0" +description = "Clean single-source support for Python 3 and 2" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "future-1.0.0-py3-none-any.whl", hash = "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216"}, + {file = "future-1.0.0.tar.gz", hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05"}, +] + +[[package]] +name = "gitdb" +version = "4.0.11" +description = "Git Object Database" +optional = false +python-versions = ">=3.7" +files = [ + {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, + {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, +] + +[package.dependencies] +smmap = ">=3.0.1,<6" + +[[package]] +name = "gitpython" +version = "3.1.43" +description = "GitPython is a Python library used to interact with Git repositories" +optional = false +python-versions = ">=3.7" +files = [ + {file = "GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff"}, + {file = "GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c"}, +] + +[package.dependencies] +gitdb = ">=4.0.1,<5" + +[package.extras] +doc = ["sphinx (==4.3.2)", "sphinx-autodoc-typehints", "sphinx-rtd-theme", "sphinxcontrib-applehelp (>=1.0.2,<=1.0.4)", "sphinxcontrib-devhelp (==1.0.2)", "sphinxcontrib-htmlhelp (>=2.0.0,<=2.0.1)", "sphinxcontrib-qthelp (==1.0.3)", "sphinxcontrib-serializinghtml (==1.1.5)"] +test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions"] + +[[package]] +name = "greenlet" +version = "3.0.3" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.7" +files = [ + {file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405"}, + {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f"}, + {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb"}, + {file = "greenlet-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9"}, + {file = "greenlet-3.0.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22"}, + {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3"}, + {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d"}, + {file = "greenlet-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728"}, + {file = "greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf"}, + {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305"}, + {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6"}, + {file = "greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2"}, + {file = "greenlet-3.0.3-cp37-cp37m-macosx_11_0_universal2.whl", hash = "sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41"}, + {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7"}, + {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6"}, + {file = "greenlet-3.0.3-cp37-cp37m-win32.whl", hash = "sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d"}, + {file = "greenlet-3.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67"}, + {file = "greenlet-3.0.3-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4"}, + {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5"}, + {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da"}, + {file = "greenlet-3.0.3-cp38-cp38-win32.whl", hash = "sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3"}, + {file = "greenlet-3.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf"}, + {file = "greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b"}, + {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6"}, + {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113"}, + {file = "greenlet-3.0.3-cp39-cp39-win32.whl", hash = "sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e"}, + {file = "greenlet-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067"}, + {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil"] + +[[package]] +name = "idna" +version = "3.7" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, +] + +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] + +[[package]] +name = "importlib-metadata" +version = "7.1.0" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"}, + {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"}, +] + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +perf = ["ipython"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "ipykernel" +version = "6.29.4" +description = "IPython Kernel for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.29.4-py3-none-any.whl", hash = "sha256:1181e653d95c6808039c509ef8e67c4126b3b3af7781496c7cbfb5ed938a27da"}, + {file = "ipykernel-6.29.4.tar.gz", hash = "sha256:3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=24" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.25.0" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.10" +files = [ + {file = "ipython-8.25.0-py3-none-any.whl", hash = "sha256:53eee7ad44df903a06655871cbab66d156a051fd86f3ec6750470ac9604ac1ab"}, + {file = "ipython-8.25.0.tar.gz", hash = "sha256:c6ed726a140b6e725b911528f80439c534fac915246af3efc39440a6b0f9d716"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} +prompt-toolkit = ">=3.0.41,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5.13.0" +typing-extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} + +[package.extras] +all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"] +black = ["black"] +doc = ["docrepr", "exceptiongroup", "intersphinx-registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing-extensions"] +kernel = ["ipykernel"] +matplotlib = ["matplotlib"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "ipython[test]", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"] + +[[package]] +name = "ipython-genutils" +version = "0.2.0" +description = "Vestigial utilities from IPython" +optional = false +python-versions = "*" +files = [ + {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, + {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, +] + +[[package]] +name = "ipywidgets" +version = "7.8.1" +description = "IPython HTML widgets for Jupyter" +optional = false +python-versions = "*" +files = [ + {file = "ipywidgets-7.8.1-py2.py3-none-any.whl", hash = "sha256:29f7056d368bf0a7b35d51cf0c56b58582da57c78bb9f765965fef7c332e807c"}, + {file = "ipywidgets-7.8.1.tar.gz", hash = "sha256:050b87bb9ac11641859af4c36cdb639ca072fb5e121f0f1a401f8a80f9fa008d"}, +] + +[package.dependencies] +comm = ">=0.1.3" +ipython = {version = ">=4.0.0", markers = "python_version >= \"3.3\""} +ipython-genutils = ">=0.2.0,<0.3.0" +jupyterlab-widgets = {version = ">=1.0.0,<3", markers = "python_version >= \"3.6\""} +traitlets = ">=4.3.1" +widgetsnbextension = ">=3.6.6,<3.7.0" + +[package.extras] +test = ["ipykernel", "mock", "pytest (>=3.6.0)", "pytest-cov"] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +optional = false +python-versions = ">=3.7" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] + +[package.dependencies] +arrow = ">=0.15.0" + +[[package]] +name = "jax" +version = "0.4.28" +description = "Differentiate, compile, and transform Numpy code." +optional = false +python-versions = ">=3.9" +files = [ + {file = "jax-0.4.28-py3-none-any.whl", hash = "sha256:6a181e6b5a5b1140e19cdd2d5c4aa779e4cb4ec627757b918be322d8e81035ba"}, + {file = "jax-0.4.28.tar.gz", hash = "sha256:dcf0a44aff2e1713f0a2b369281cd5b79d8c18fc1018905c4125897cb06b37e9"}, +] + +[package.dependencies] +ml-dtypes = ">=0.2.0" +numpy = [ + {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +opt-einsum = "*" +scipy = [ + {version = ">=1.9", markers = "python_version < \"3.12\""}, + {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, +] + +[package.extras] +australis = ["protobuf (>=3.13,<4)"] +ci = ["jaxlib (==0.4.27)"] +cpu = ["jaxlib (==0.4.28)"] +cuda = ["jaxlib (==0.4.28+cuda12.cudnn89)"] +cuda12 = ["jax-cuda12-plugin (==0.4.28)", "jaxlib (==0.4.28)", "nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] +cuda12-cudnn89 = ["jaxlib (==0.4.28+cuda12.cudnn89)"] +cuda12-local = ["jaxlib (==0.4.28+cuda12.cudnn89)"] +cuda12-pip = ["jaxlib (==0.4.28+cuda12.cudnn89)", "nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] +minimum-jaxlib = ["jaxlib (==0.4.27)"] +tpu = ["jaxlib (==0.4.28)", "libtpu-nightly (==0.1.dev20240508)", "requests"] + +[[package]] +name = "jaxlib" +version = "0.4.28" +description = "XLA library for JAX" +optional = false +python-versions = ">=3.9" +files = [ + {file = "jaxlib-0.4.28-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:a421d237f8c25d2850166d334603c673ddb9b6c26f52bc496704b8782297bd66"}, + {file = "jaxlib-0.4.28-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f038e68bd10d1a3554722b0bbe36e6a448384437a75aa9d283f696f0ed9f8c09"}, + {file = "jaxlib-0.4.28-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:fabe77c174e9e196e9373097cefbb67e00c7e5f9d864583a7cfcf9dabd2429b6"}, + {file = "jaxlib-0.4.28-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:e3bcdc6f8e60f8554f415c14d930134e602e3ca33c38e546274fd545f875769b"}, + {file = "jaxlib-0.4.28-cp310-cp310-win_amd64.whl", hash = "sha256:a8b31c0e5eea36b7915696b9be40ea8646edc395a3e5437bf7ef26b7239a567a"}, + {file = "jaxlib-0.4.28-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:2ff8290edc7b92c7eae52517f65492633e267b2e9067bad3e4c323d213e77cf5"}, + {file = "jaxlib-0.4.28-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:793857faf37f371cafe752fea5fc811f435e43b8fb4b502058444a7f5eccf829"}, + {file = "jaxlib-0.4.28-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:b41a6b0d506c09f86a18ecc05bd376f072b548af89c333107e49bb0c09c1a3f8"}, + {file = "jaxlib-0.4.28-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:45ce0f3c840cff8236cff26c37f26c9ff078695f93e0c162c320c281f5041275"}, + {file = "jaxlib-0.4.28-cp311-cp311-win_amd64.whl", hash = "sha256:d4d762c3971d74e610a0e85a7ee063cea81a004b365b2a7dc65133f08b04fac5"}, + {file = "jaxlib-0.4.28-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:d6c09a545329722461af056e735146d2c8c74c22ac7426a845eb69f326b4f7a0"}, + {file = "jaxlib-0.4.28-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8dd8bffe3853702f63cd924da0ee25734a4d19cd5c926be033d772ba7d1c175d"}, + {file = "jaxlib-0.4.28-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:de2e8521eb51e16e85093a42cb51a781773fa1040dcf9245d7ea160a14ee5a5b"}, + {file = "jaxlib-0.4.28-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:46a1aa857f4feee8a43fcba95c0e0ab62d40c26cc9730b6c69655908ba359f8d"}, + {file = "jaxlib-0.4.28-cp312-cp312-win_amd64.whl", hash = "sha256:eee428eac31697a070d655f1f24f6ab39ced76750d93b1de862377a52dcc2401"}, + {file = "jaxlib-0.4.28-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:4f98cc837b2b6c6dcfe0ab7ff9eb109314920946119aa3af9faa139718ff2787"}, + {file = "jaxlib-0.4.28-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b01562ec8ad75719b7d0389752489e97eb6b4dcb4c8c113be491634d5282ad3c"}, + {file = "jaxlib-0.4.28-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:aa77a9360a395ba9faf6932df637686fb0c14ddcf4fdc1d2febe04bc88a580a6"}, + {file = "jaxlib-0.4.28-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:4a56ebf05b4a4c1791699d874e072f3f808f0986b4010b14fb549a69c90ca9dc"}, + {file = "jaxlib-0.4.28-cp39-cp39-win_amd64.whl", hash = "sha256:459a4ddcc3e120904b9f13a245430d7801d707bca48925981cbdc59628057dc8"}, +] + +[package.dependencies] +ml-dtypes = ">=0.2.0" +numpy = ">=1.22" +scipy = [ + {version = ">=1.9", markers = "python_version < \"3.12\""}, + {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, +] + +[package.extras] +cuda12-pip = ["nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] + +[[package]] +name = "jaxtyping" +version = "0.2.29" +description = "Type annotations and runtime checking for shape and dtype of JAX arrays, and PyTrees." +optional = false +python-versions = "~=3.9" +files = [ + {file = "jaxtyping-0.2.29-py3-none-any.whl", hash = "sha256:3580fc4dfef4c98ef2372c2c81314d89b98a186eb78d69d925fd0546025d556f"}, + {file = "jaxtyping-0.2.29.tar.gz", hash = "sha256:e1cd916ed0196e40402b0638449e7d051571562b2cd68d8b94961a383faeb409"}, +] + +[package.dependencies] +typeguard = "2.13.3" + +[[package]] +name = "jedi" +version = "0.19.1" +description = "An autocompletion tool for Python that can be used for text editors." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, + {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, +] + +[package.dependencies] +parso = ">=0.8.3,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jsonpointer" +version = "2.4" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +files = [ + {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, + {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, +] + +[[package]] +name = "jsonschema" +version = "4.17.3" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jsonschema-4.17.3-py3-none-any.whl", hash = "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"}, + {file = "jsonschema-4.17.3.tar.gz", hash = "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"}, +] + +[package.dependencies] +attrs = ">=17.4.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" +rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] + +[[package]] +name = "jupyter-cache" +version = "0.4.3" +description = "A defined interface for working with a cache of jupyter notebooks." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jupyter-cache-0.4.3.tar.gz", hash = "sha256:4c9b5431b1d320bc68440c21fa0a155bbeb29c5b979bef72222e244a7bcd54fc"}, + {file = "jupyter_cache-0.4.3-py3-none-any.whl", hash = "sha256:6d5d662d81f565d18009e8dcfd3a56fb876af47eafead2a19ef0045aba8ffe3b"}, +] + +[package.dependencies] +attrs = "*" +nbclient = ">=0.2,<0.6" +nbdime = "*" +nbformat = "*" +sqlalchemy = ">=1.3.12,<1.5" + +[package.extras] +cli = ["click", "click-completion", "click-log", "pyyaml", "tabulate"] +code-style = ["black", "flake8 (>=3.7.0,<3.8.0)", "pre-commit (==1.17.0)"] +rtd = ["myst-nb (>=0.7,<1.0)", "pydata-sphinx-theme", "sphinx-copybutton"] +testing = ["coverage", "ipykernel", "matplotlib", "nbformat (>=5.1)", "numpy", "pandas", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions", "sympy"] + +[[package]] +name = "jupyter-client" +version = "8.6.2" +description = "Jupyter protocol implementation and client libraries" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_client-8.6.2-py3-none-any.whl", hash = "sha256:50cbc5c66fd1b8f65ecb66bc490ab73217993632809b6e505687de18e9dea39f"}, + {file = "jupyter_client-8.6.2.tar.gz", hash = "sha256:2bda14d55ee5ba58552a8c53ae43d215ad9868853489213f37da060ced54d8df"}, +] + +[package.dependencies] +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = ">=5.3" + +[package.extras] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] + +[[package]] +name = "jupyter-core" +version = "5.7.2" +description = "Jupyter core package. A base package on which Jupyter projects rely." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-events" +version = "0.6.3" +description = "Jupyter Event System library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_events-0.6.3-py3-none-any.whl", hash = "sha256:57a2749f87ba387cd1bfd9b22a0875b889237dbf2edc2121ebb22bde47036c17"}, + {file = "jupyter_events-0.6.3.tar.gz", hash = "sha256:9a6e9995f75d1b7146b436ea24d696ce3a35bfa8bfe45e0c33c334c79464d0b3"}, +] + +[package.dependencies] +jsonschema = {version = ">=3.2.0", extras = ["format-nongpl"]} +python-json-logger = ">=2.0.4" +pyyaml = ">=5.3" +rfc3339-validator = "*" +rfc3986-validator = ">=0.1.1" +traitlets = ">=5.3" + +[package.extras] +cli = ["click", "rich"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] +test = ["click", "coverage", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "pytest-cov", "rich"] + +[[package]] +name = "jupyter-server" +version = "2.10.0" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server-2.10.0-py3-none-any.whl", hash = "sha256:dde56c9bc3cb52d7b72cc0f696d15d7163603526f1a758eb4a27405b73eab2a5"}, + {file = "jupyter_server-2.10.0.tar.gz", hash = "sha256:47b8f5e63440125cb1bb8957bf12b18453ee5ed9efe42d2f7b2ca66a7019a278"}, +] + +[package.dependencies] +anyio = ">=3.1.0" +argon2-cffi = "*" +jinja2 = "*" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-events = ">=0.6.0" +jupyter-server-terminals = "*" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +overrides = "*" +packaging = "*" +prometheus-client = "*" +pywinpty = {version = "*", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = ">=1.8.2" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = "*" + +[package.extras] +docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] + +[[package]] +name = "jupyter-server-mathjax" +version = "0.2.6" +description = "MathJax resources as a Jupyter Server Extension." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_server_mathjax-0.2.6-py3-none-any.whl", hash = "sha256:416389dde2010df46d5fbbb7adb087a5607111070af65a1445391040f2babb5e"}, + {file = "jupyter_server_mathjax-0.2.6.tar.gz", hash = "sha256:bb1e6b6dc0686c1fe386a22b5886163db548893a99c2810c36399e9c4ca23943"}, +] + +[package.dependencies] +jupyter-server = ">=1.1" + +[package.extras] +test = ["jupyter-server[test]", "pytest"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.3" +description = "A Jupyter Server Extension Providing Terminals." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, + {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, +] + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + +[[package]] +name = "jupyter-sphinx" +version = "0.3.2" +description = "Jupyter Sphinx Extensions" +optional = false +python-versions = ">= 3.6" +files = [ + {file = "jupyter_sphinx-0.3.2-py3-none-any.whl", hash = "sha256:301e36d0fb3007bb5802f6b65b60c24990eb99c983332a2ab6eecff385207dc9"}, + {file = "jupyter_sphinx-0.3.2.tar.gz", hash = "sha256:37fc9408385c45326ac79ca0452fbd7ae2bf0e97842d626d2844d4830e30aaf2"}, +] + +[package.dependencies] +IPython = "*" +ipywidgets = ">=7.0.0" +nbconvert = ">=5.5" +nbformat = "*" +Sphinx = ">=2" + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +description = "Pygments theme using JupyterLab CSS variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, + {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, +] + +[[package]] +name = "jupyterlab-widgets" +version = "1.1.7" +description = "A JupyterLab extension." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jupyterlab_widgets-1.1.7-py3-none-any.whl", hash = "sha256:0c4548cf42032e490447e4180f2c7d49ba5c30b42164992b38fb8c9d56c4e1b2"}, + {file = "jupyterlab_widgets-1.1.7.tar.gz", hash = "sha256:318dab34267915d658e7b0dc57433ff0ce0d52b3e283986b73b66f7ab9017ae8"}, +] + +[[package]] +name = "kiwisolver" +version = "1.4.5" +description = "A fast implementation of the Cassowary constraint solver" +optional = false +python-versions = ">=3.7" +files = [ + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, + {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, +] + +[[package]] +name = "lxml" +version = "5.2.2" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +optional = false +python-versions = ">=3.6" +files = [ + {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:364d03207f3e603922d0d3932ef363d55bbf48e3647395765f9bfcbdf6d23632"}, + {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50127c186f191b8917ea2fb8b206fbebe87fd414a6084d15568c27d0a21d60db"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74e4f025ef3db1c6da4460dd27c118d8cd136d0391da4e387a15e48e5c975147"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981a06a3076997adf7c743dcd0d7a0415582661e2517c7d961493572e909aa1d"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aef5474d913d3b05e613906ba4090433c515e13ea49c837aca18bde190853dff"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e275ea572389e41e8b039ac076a46cb87ee6b8542df3fff26f5baab43713bca"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5b65529bb2f21ac7861a0e94fdbf5dc0daab41497d18223b46ee8515e5ad297"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bcc98f911f10278d1daf14b87d65325851a1d29153caaf146877ec37031d5f36"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:b47633251727c8fe279f34025844b3b3a3e40cd1b198356d003aa146258d13a2"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:fbc9d316552f9ef7bba39f4edfad4a734d3d6f93341232a9dddadec4f15d425f"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:13e69be35391ce72712184f69000cda04fc89689429179bc4c0ae5f0b7a8c21b"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3b6a30a9ab040b3f545b697cb3adbf3696c05a3a68aad172e3fd7ca73ab3c835"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a233bb68625a85126ac9f1fc66d24337d6e8a0f9207b688eec2e7c880f012ec0"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:dfa7c241073d8f2b8e8dbc7803c434f57dbb83ae2a3d7892dd068d99e96efe2c"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1a7aca7964ac4bb07680d5c9d63b9d7028cace3e2d43175cb50bba8c5ad33316"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae4073a60ab98529ab8a72ebf429f2a8cc612619a8c04e08bed27450d52103c0"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ffb2be176fed4457e445fe540617f0252a72a8bc56208fd65a690fdb1f57660b"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e290d79a4107d7d794634ce3e985b9ae4f920380a813717adf61804904dc4393"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96e85aa09274955bb6bd483eaf5b12abadade01010478154b0ec70284c1b1526"}, + {file = "lxml-5.2.2-cp310-cp310-win32.whl", hash = "sha256:f956196ef61369f1685d14dad80611488d8dc1ef00be57c0c5a03064005b0f30"}, + {file = "lxml-5.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:875a3f90d7eb5c5d77e529080d95140eacb3c6d13ad5b616ee8095447b1d22e7"}, + {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45f9494613160d0405682f9eee781c7e6d1bf45f819654eb249f8f46a2c22545"}, + {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0b3f2df149efb242cee2ffdeb6674b7f30d23c9a7af26595099afaf46ef4e88"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d28cb356f119a437cc58a13f8135ab8a4c8ece18159eb9194b0d269ec4e28083"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:657a972f46bbefdbba2d4f14413c0d079f9ae243bd68193cb5061b9732fa54c1"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b9ea10063efb77a965a8d5f4182806fbf59ed068b3c3fd6f30d2ac7bee734"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07542787f86112d46d07d4f3c4e7c760282011b354d012dc4141cc12a68cef5f"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:303f540ad2dddd35b92415b74b900c749ec2010e703ab3bfd6660979d01fd4ed"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2eb2227ce1ff998faf0cd7fe85bbf086aa41dfc5af3b1d80867ecfe75fb68df3"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:1d8a701774dfc42a2f0b8ccdfe7dbc140500d1049e0632a611985d943fcf12df"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:56793b7a1a091a7c286b5f4aa1fe4ae5d1446fe742d00cdf2ffb1077865db10d"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eb00b549b13bd6d884c863554566095bf6fa9c3cecb2e7b399c4bc7904cb33b5"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a2569a1f15ae6c8c64108a2cd2b4a858fc1e13d25846be0666fc144715e32ab"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:8cf85a6e40ff1f37fe0f25719aadf443686b1ac7652593dc53c7ef9b8492b115"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:d237ba6664b8e60fd90b8549a149a74fcc675272e0e95539a00522e4ca688b04"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0b3f5016e00ae7630a4b83d0868fca1e3d494c78a75b1c7252606a3a1c5fc2ad"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23441e2b5339bc54dc949e9e675fa35efe858108404ef9aa92f0456929ef6fe8"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2fb0ba3e8566548d6c8e7dd82a8229ff47bd8fb8c2da237607ac8e5a1b8312e5"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:79d1fb9252e7e2cfe4de6e9a6610c7cbb99b9708e2c3e29057f487de5a9eaefa"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6dcc3d17eac1df7859ae01202e9bb11ffa8c98949dcbeb1069c8b9a75917e01b"}, + {file = "lxml-5.2.2-cp311-cp311-win32.whl", hash = "sha256:4c30a2f83677876465f44c018830f608fa3c6a8a466eb223535035fbc16f3438"}, + {file = "lxml-5.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:49095a38eb333aaf44c06052fd2ec3b8f23e19747ca7ec6f6c954ffea6dbf7be"}, + {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7429e7faa1a60cad26ae4227f4dd0459efde239e494c7312624ce228e04f6391"}, + {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:50ccb5d355961c0f12f6cf24b7187dbabd5433f29e15147a67995474f27d1776"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc911208b18842a3a57266d8e51fc3cfaccee90a5351b92079beed912a7914c2"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33ce9e786753743159799fdf8e92a5da351158c4bfb6f2db0bf31e7892a1feb5"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec87c44f619380878bd49ca109669c9f221d9ae6883a5bcb3616785fa8f94c97"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08ea0f606808354eb8f2dfaac095963cb25d9d28e27edcc375d7b30ab01abbf6"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75a9632f1d4f698b2e6e2e1ada40e71f369b15d69baddb8968dcc8e683839b18"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74da9f97daec6928567b48c90ea2c82a106b2d500f397eeb8941e47d30b1ca85"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:0969e92af09c5687d769731e3f39ed62427cc72176cebb54b7a9d52cc4fa3b73"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:9164361769b6ca7769079f4d426a41df6164879f7f3568be9086e15baca61466"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d26a618ae1766279f2660aca0081b2220aca6bd1aa06b2cf73f07383faf48927"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab67ed772c584b7ef2379797bf14b82df9aa5f7438c5b9a09624dd834c1c1aaf"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:3d1e35572a56941b32c239774d7e9ad724074d37f90c7a7d499ab98761bd80cf"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:8268cbcd48c5375f46e000adb1390572c98879eb4f77910c6053d25cc3ac2c67"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e282aedd63c639c07c3857097fc0e236f984ceb4089a8b284da1c526491e3f3d"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfdc2bfe69e9adf0df4915949c22a25b39d175d599bf98e7ddf620a13678585"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4aefd911793b5d2d7a921233a54c90329bf3d4a6817dc465f12ffdfe4fc7b8fe"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:8b8df03a9e995b6211dafa63b32f9d405881518ff1ddd775db4e7b98fb545e1c"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f11ae142f3a322d44513de1018b50f474f8f736bc3cd91d969f464b5bfef8836"}, + {file = "lxml-5.2.2-cp312-cp312-win32.whl", hash = "sha256:16a8326e51fcdffc886294c1e70b11ddccec836516a343f9ed0f82aac043c24a"}, + {file = "lxml-5.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:bbc4b80af581e18568ff07f6395c02114d05f4865c2812a1f02f2eaecf0bfd48"}, + {file = "lxml-5.2.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e3d9d13603410b72787579769469af730c38f2f25505573a5888a94b62b920f8"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38b67afb0a06b8575948641c1d6d68e41b83a3abeae2ca9eed2ac59892b36706"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c689d0d5381f56de7bd6966a4541bff6e08bf8d3871bbd89a0c6ab18aa699573"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:cf2a978c795b54c539f47964ec05e35c05bd045db5ca1e8366988c7f2fe6b3ce"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:739e36ef7412b2bd940f75b278749106e6d025e40027c0b94a17ef7968d55d56"}, + {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d8bbcd21769594dbba9c37d3c819e2d5847656ca99c747ddb31ac1701d0c0ed9"}, + {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:2304d3c93f2258ccf2cf7a6ba8c761d76ef84948d87bf9664e14d203da2cd264"}, + {file = "lxml-5.2.2-cp36-cp36m-win32.whl", hash = "sha256:02437fb7308386867c8b7b0e5bc4cd4b04548b1c5d089ffb8e7b31009b961dc3"}, + {file = "lxml-5.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edcfa83e03370032a489430215c1e7783128808fd3e2e0a3225deee278585196"}, + {file = "lxml-5.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:28bf95177400066596cdbcfc933312493799382879da504633d16cf60bba735b"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a745cc98d504d5bd2c19b10c79c61c7c3df9222629f1b6210c0368177589fb8"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b336b0416828022bfd5a2e3083e7f5ba54b96242159f83c7e3eebaec752f1716"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:4bc6cb140a7a0ad1f7bc37e018d0ed690b7b6520ade518285dc3171f7a117905"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:57f0a0bbc9868e10ebe874e9f129d2917750adf008fe7b9c1598c0fbbfdde6a6"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:60499fe961b21264e17a471ec296dcbf4365fbea611bf9e303ab69db7159ce61"}, + {file = "lxml-5.2.2-cp37-cp37m-win32.whl", hash = "sha256:d9b342c76003c6b9336a80efcc766748a333573abf9350f4094ee46b006ec18f"}, + {file = "lxml-5.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b16db2770517b8799c79aa80f4053cd6f8b716f21f8aca962725a9565ce3ee40"}, + {file = "lxml-5.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7ed07b3062b055d7a7f9d6557a251cc655eed0b3152b76de619516621c56f5d3"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f60fdd125d85bf9c279ffb8e94c78c51b3b6a37711464e1f5f31078b45002421"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a7e24cb69ee5f32e003f50e016d5fde438010c1022c96738b04fc2423e61706"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23cfafd56887eaed93d07bc4547abd5e09d837a002b791e9767765492a75883f"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:19b4e485cd07b7d83e3fe3b72132e7df70bfac22b14fe4bf7a23822c3a35bff5"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7ce7ad8abebe737ad6143d9d3bf94b88b93365ea30a5b81f6877ec9c0dee0a48"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e49b052b768bb74f58c7dda4e0bdf7b79d43a9204ca584ffe1fb48a6f3c84c66"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d14a0d029a4e176795cef99c056d58067c06195e0c7e2dbb293bf95c08f772a3"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:be49ad33819d7dcc28a309b86d4ed98e1a65f3075c6acd3cd4fe32103235222b"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a6d17e0370d2516d5bb9062c7b4cb731cff921fc875644c3d751ad857ba9c5b1"}, + {file = "lxml-5.2.2-cp38-cp38-win32.whl", hash = "sha256:5b8c041b6265e08eac8a724b74b655404070b636a8dd6d7a13c3adc07882ef30"}, + {file = "lxml-5.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:f61efaf4bed1cc0860e567d2ecb2363974d414f7f1f124b1df368bbf183453a6"}, + {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fb91819461b1b56d06fa4bcf86617fac795f6a99d12239fb0c68dbeba41a0a30"}, + {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d4ed0c7cbecde7194cd3228c044e86bf73e30a23505af852857c09c24e77ec5d"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54401c77a63cc7d6dc4b4e173bb484f28a5607f3df71484709fe037c92d4f0ed"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:625e3ef310e7fa3a761d48ca7ea1f9d8718a32b1542e727d584d82f4453d5eeb"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:519895c99c815a1a24a926d5b60627ce5ea48e9f639a5cd328bda0515ea0f10c"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c7079d5eb1c1315a858bbf180000757db8ad904a89476653232db835c3114001"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:343ab62e9ca78094f2306aefed67dcfad61c4683f87eee48ff2fd74902447726"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:cd9e78285da6c9ba2d5c769628f43ef66d96ac3085e59b10ad4f3707980710d3"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:546cf886f6242dff9ec206331209db9c8e1643ae642dea5fdbecae2453cb50fd"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:02f6a8eb6512fdc2fd4ca10a49c341c4e109aa6e9448cc4859af5b949622715a"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:339ee4a4704bc724757cd5dd9dc8cf4d00980f5d3e6e06d5847c1b594ace68ab"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0a028b61a2e357ace98b1615fc03f76eb517cc028993964fe08ad514b1e8892d"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f90e552ecbad426eab352e7b2933091f2be77115bb16f09f78404861c8322981"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d83e2d94b69bf31ead2fa45f0acdef0757fa0458a129734f59f67f3d2eb7ef32"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a02d3c48f9bb1e10c7788d92c0c7db6f2002d024ab6e74d6f45ae33e3d0288a3"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6d68ce8e7b2075390e8ac1e1d3a99e8b6372c694bbe612632606d1d546794207"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:453d037e09a5176d92ec0fd282e934ed26d806331a8b70ab431a81e2fbabf56d"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:3b019d4ee84b683342af793b56bb35034bd749e4cbdd3d33f7d1107790f8c472"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb3942960f0beb9f46e2a71a3aca220d1ca32feb5a398656be934320804c0df9"}, + {file = "lxml-5.2.2-cp39-cp39-win32.whl", hash = "sha256:ac6540c9fff6e3813d29d0403ee7a81897f1d8ecc09a8ff84d2eea70ede1cdbf"}, + {file = "lxml-5.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:610b5c77428a50269f38a534057444c249976433f40f53e3b47e68349cca1425"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b537bd04d7ccd7c6350cdaaaad911f6312cbd61e6e6045542f781c7f8b2e99d2"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4820c02195d6dfb7b8508ff276752f6b2ff8b64ae5d13ebe02e7667e035000b9"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a09f6184f17a80897172863a655467da2b11151ec98ba8d7af89f17bf63dae"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:76acba4c66c47d27c8365e7c10b3d8016a7da83d3191d053a58382311a8bf4e1"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b128092c927eaf485928cec0c28f6b8bead277e28acf56800e972aa2c2abd7a2"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ae791f6bd43305aade8c0e22f816b34f3b72b6c820477aab4d18473a37e8090b"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a2f6a1bc2460e643785a2cde17293bd7a8f990884b822f7bca47bee0a82fc66b"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e8d351ff44c1638cb6e980623d517abd9f580d2e53bfcd18d8941c052a5a009"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bec4bd9133420c5c52d562469c754f27c5c9e36ee06abc169612c959bd7dbb07"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:55ce6b6d803890bd3cc89975fca9de1dff39729b43b73cb15ddd933b8bc20484"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8ab6a358d1286498d80fe67bd3d69fcbc7d1359b45b41e74c4a26964ca99c3f8"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:06668e39e1f3c065349c51ac27ae430719d7806c026fec462e5693b08b95696b"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9cd5323344d8ebb9fb5e96da5de5ad4ebab993bbf51674259dbe9d7a18049525"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89feb82ca055af0fe797a2323ec9043b26bc371365847dbe83c7fd2e2f181c34"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e481bba1e11ba585fb06db666bfc23dbe181dbafc7b25776156120bf12e0d5a6"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d6c6ea6a11ca0ff9cd0390b885984ed31157c168565702959c25e2191674a14"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3d98de734abee23e61f6b8c2e08a88453ada7d6486dc7cdc82922a03968928db"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:69ab77a1373f1e7563e0fb5a29a8440367dec051da6c7405333699d07444f511"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:34e17913c431f5ae01d8658dbf792fdc457073dcdfbb31dc0cc6ab256e664a8d"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05f8757b03208c3f50097761be2dea0aba02e94f0dc7023ed73a7bb14ff11eb0"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a520b4f9974b0a0a6ed73c2154de57cdfd0c8800f4f15ab2b73238ffed0b36e"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5e097646944b66207023bc3c634827de858aebc226d5d4d6d16f0b77566ea182"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b5e4ef22ff25bfd4ede5f8fb30f7b24446345f3e79d9b7455aef2836437bc38a"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ff69a9a0b4b17d78170c73abe2ab12084bdf1691550c5629ad1fe7849433f324"}, + {file = "lxml-5.2.2.tar.gz", hash = "sha256:bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87"}, +] + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html-clean = ["lxml-html-clean"] +html5 = ["html5lib"] +htmlsoup = ["BeautifulSoup4"] +source = ["Cython (>=3.0.10)"] + +[[package]] +name = "markdown-it-py" +version = "1.1.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = "~=3.6" +files = [ + {file = "markdown-it-py-1.1.0.tar.gz", hash = "sha256:36be6bb3ad987bfdb839f5ba78ddf094552ca38ccbd784ae4f74a4e1419fc6e3"}, + {file = "markdown_it_py-1.1.0-py3-none-any.whl", hash = "sha256:98080fc0bc34c4f2bcf0846a096a9429acbd9d5d8e67ed34026c03c61c464389"}, +] + +[package.dependencies] +attrs = ">=19,<22" + +[package.extras] +code-style = ["pre-commit (==2.6)"] +compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.2.2,<3.3.0)", "mistletoe-ebp (>=0.10.0,<0.11.0)", "mistune (>=0.8.4,<0.9.0)", "panflute (>=1.12,<2.0)"] +linkify = ["linkify-it-py (>=1.0,<2.0)"] +plugins = ["mdit-py-plugins"] +rtd = ["myst-nb (==0.13.0a1)", "pyyaml", "sphinx (>=2,<4)", "sphinx-book-theme", "sphinx-copybutton", "sphinx-panels (>=0.4.0,<0.5.0)"] +testing = ["coverage", "psutil", "pytest (>=3.6,<4)", "pytest-benchmark (>=3.2,<4.0)", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "2.1.5" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] + +[[package]] +name = "matplotlib" +version = "3.9.0" +description = "Python plotting package" +optional = false +python-versions = ">=3.9" +files = [ + {file = "matplotlib-3.9.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2bcee1dffaf60fe7656183ac2190bd630842ff87b3153afb3e384d966b57fe56"}, + {file = "matplotlib-3.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f988bafb0fa39d1074ddd5bacd958c853e11def40800c5824556eb630f94d3b"}, + {file = "matplotlib-3.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe428e191ea016bb278758c8ee82a8129c51d81d8c4bc0846c09e7e8e9057241"}, + {file = "matplotlib-3.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaf3978060a106fab40c328778b148f590e27f6fa3cd15a19d6892575bce387d"}, + {file = "matplotlib-3.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2e7f03e5cbbfacdd48c8ea394d365d91ee8f3cae7e6ec611409927b5ed997ee4"}, + {file = "matplotlib-3.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:13beb4840317d45ffd4183a778685e215939be7b08616f431c7795276e067463"}, + {file = "matplotlib-3.9.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:063af8587fceeac13b0936c42a2b6c732c2ab1c98d38abc3337e430e1ff75e38"}, + {file = "matplotlib-3.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a2fa6d899e17ddca6d6526cf6e7ba677738bf2a6a9590d702c277204a7c6152"}, + {file = "matplotlib-3.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:550cdda3adbd596078cca7d13ed50b77879104e2e46392dcd7c75259d8f00e85"}, + {file = "matplotlib-3.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76cce0f31b351e3551d1f3779420cf8f6ec0d4a8cf9c0237a3b549fd28eb4abb"}, + {file = "matplotlib-3.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c53aeb514ccbbcbab55a27f912d79ea30ab21ee0531ee2c09f13800efb272674"}, + {file = "matplotlib-3.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:a5be985db2596d761cdf0c2eaf52396f26e6a64ab46bd8cd810c48972349d1be"}, + {file = "matplotlib-3.9.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c79f3a585f1368da6049318bdf1f85568d8d04b2e89fc24b7e02cc9b62017382"}, + {file = "matplotlib-3.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bdd1ecbe268eb3e7653e04f451635f0fb0f77f07fd070242b44c076c9106da84"}, + {file = "matplotlib-3.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d38e85a1a6d732f645f1403ce5e6727fd9418cd4574521d5803d3d94911038e5"}, + {file = "matplotlib-3.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a490715b3b9984fa609116481b22178348c1a220a4499cda79132000a79b4db"}, + {file = "matplotlib-3.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8146ce83cbc5dc71c223a74a1996d446cd35cfb6a04b683e1446b7e6c73603b7"}, + {file = "matplotlib-3.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:d91a4ffc587bacf5c4ce4ecfe4bcd23a4b675e76315f2866e588686cc97fccdf"}, + {file = "matplotlib-3.9.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:616fabf4981a3b3c5a15cd95eba359c8489c4e20e03717aea42866d8d0465956"}, + {file = "matplotlib-3.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cd53c79fd02f1c1808d2cfc87dd3cf4dbc63c5244a58ee7944497107469c8d8a"}, + {file = "matplotlib-3.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06a478f0d67636554fa78558cfbcd7b9dba85b51f5c3b5a0c9be49010cf5f321"}, + {file = "matplotlib-3.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81c40af649d19c85f8073e25e5806926986806fa6d54be506fbf02aef47d5a89"}, + {file = "matplotlib-3.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52146fc3bd7813cc784562cb93a15788be0b2875c4655e2cc6ea646bfa30344b"}, + {file = "matplotlib-3.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:0fc51eaa5262553868461c083d9adadb11a6017315f3a757fc45ec6ec5f02888"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bd4f2831168afac55b881db82a7730992aa41c4f007f1913465fb182d6fb20c0"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:290d304e59be2b33ef5c2d768d0237f5bd132986bdcc66f80bc9bcc300066a03"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff2e239c26be4f24bfa45860c20ffccd118d270c5b5d081fa4ea409b5469fcd"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:af4001b7cae70f7eaacfb063db605280058246de590fa7874f00f62259f2df7e"}, + {file = "matplotlib-3.9.0.tar.gz", hash = "sha256:e6d29ea6c19e34b30fb7d88b7081f869a03014f66fe06d62cc77d5a6ea88ed7a"}, +] + +[package.dependencies] +contourpy = ">=1.0.1" +cycler = ">=0.10" +fonttools = ">=4.22.0" +kiwisolver = ">=1.3.1" +numpy = ">=1.23" +packaging = ">=20.0" +pillow = ">=8" +pyparsing = ">=2.3.1" +python-dateutil = ">=2.7" + +[package.extras] +dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +description = "Inline Matplotlib backend for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, +] + +[package.dependencies] +traitlets = "*" + +[[package]] +name = "mdit-py-plugins" +version = "0.2.8" +description = "Collection of plugins for markdown-it-py" +optional = false +python-versions = "~=3.6" +files = [ + {file = "mdit-py-plugins-0.2.8.tar.gz", hash = "sha256:5991cef645502e80a5388ec4fc20885d2313d4871e8b8e320ca2de14ac0c015f"}, + {file = "mdit_py_plugins-0.2.8-py3-none-any.whl", hash = "sha256:1833bf738e038e35d89cb3a07eb0d227ed647ce7dd357579b65343740c6d249c"}, +] + +[package.dependencies] +markdown-it-py = ">=1.0,<2.0" + +[package.extras] +code-style = ["pre-commit (==2.6)"] +rtd = ["myst-parser (==0.14.0a3)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] +testing = ["coverage", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mistune" +version = "0.8.4" +description = "The fastest markdown parser in pure Python" +optional = false +python-versions = "*" +files = [ + {file = "mistune-0.8.4-py2.py3-none-any.whl", hash = "sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4"}, + {file = "mistune-0.8.4.tar.gz", hash = "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e"}, +] + +[[package]] +name = "ml-dtypes" +version = "0.4.0" +description = "" +optional = false +python-versions = ">=3.9" +files = [ + {file = "ml_dtypes-0.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:93afe37f3a879d652ec9ef1fc47612388890660a2657fbb5747256c3b818fd81"}, + {file = "ml_dtypes-0.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bb83fd064db43e67e67d021e547698af4c8d5c6190f2e9b1c53c09f6ff5531d"}, + {file = "ml_dtypes-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03e7cda6ef164eed0abb31df69d2c00c3a5ab3e2610b6d4c42183a43329c72a5"}, + {file = "ml_dtypes-0.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:a15d96d090aebb55ee85173d1775ae325a001aab607a76c8ea0b964ccd6b5364"}, + {file = "ml_dtypes-0.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bdf689be7351cc3c95110c910c1b864002f113e682e44508910c849e144f3df1"}, + {file = "ml_dtypes-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c83e4d443962d891d51669ff241d5aaad10a8d3d37a81c5532a45419885d591c"}, + {file = "ml_dtypes-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1e2f4237b459a63c97c2c9f449baa637d7e4c20addff6a9bac486f22432f3b6"}, + {file = "ml_dtypes-0.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:75b4faf99d0711b81f393db36d210b4255fd419f6f790bc6c1b461f95ffb7a9e"}, + {file = "ml_dtypes-0.4.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ee9f91d4c4f9959a7e1051c141dc565f39e54435618152219769e24f5e9a4d06"}, + {file = "ml_dtypes-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad6849a2db386b38e4d54fe13eb3293464561780531a918f8ef4c8169170dd49"}, + {file = "ml_dtypes-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa32979ebfde3a0d7c947cafbf79edc1ec77ac05ad0780ee86c1d8df70f2259"}, + {file = "ml_dtypes-0.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:3b67ec73a697c88c1122038e0de46520e48dc2ec876d42cf61bc5efe3c0b7675"}, + {file = "ml_dtypes-0.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:41affb38fdfe146e3db226cf2953021184d6f0c4ffab52136613e9601706e368"}, + {file = "ml_dtypes-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43cf4356a0fe2eeac6d289018d0734e17a403bdf1fd911953c125dd0358edcc0"}, + {file = "ml_dtypes-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1724ddcdf5edbaf615a62110af47407f1719b8d02e68ccee60683acb5f74da1"}, + {file = "ml_dtypes-0.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:723af6346447268a3cf0b7356e963d80ecb5732b5279b2aa3fa4b9fc8297c85e"}, + {file = "ml_dtypes-0.4.0.tar.gz", hash = "sha256:eaf197e72f4f7176a19fe3cb8b61846b38c6757607e7bf9cd4b1d84cd3e74deb"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.21.2", markers = "python_version >= \"3.10\""}, + {version = ">=1.23.3", markers = "python_version >= \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] + +[package.extras] +dev = ["absl-py", "pyink", "pylint (>=2.6.0)", "pytest", "pytest-xdist"] + +[[package]] +name = "multipledispatch" +version = "1.0.0" +description = "Multiple dispatch" +optional = false +python-versions = "*" +files = [ + {file = "multipledispatch-1.0.0-py3-none-any.whl", hash = "sha256:0c53cd8b077546da4e48869f49b13164bebafd0c2a5afceb6bb6a316e7fb46e4"}, + {file = "multipledispatch-1.0.0.tar.gz", hash = "sha256:5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0"}, +] + +[[package]] +name = "myst-nb" +version = "0.13.2" +description = "A Jupyter Notebook Sphinx reader built on top of the MyST markdown parser." +optional = false +python-versions = ">=3.6" +files = [ + {file = "myst-nb-0.13.2.tar.gz", hash = "sha256:81e0a4f186bb35c487f5443c7005a474d68ffb58f518f469102d1db7b452066a"}, + {file = "myst_nb-0.13.2-py3-none-any.whl", hash = "sha256:1b9ea3a04c9e0eee05145aa297d2feeabb94c4e23e3047b92efa011ddba4f4b4"}, +] + +[package.dependencies] +docutils = ">=0.15,<0.18" +importlib-metadata = "*" +ipython = "*" +ipywidgets = ">=7.0.0,<8" +jupyter-cache = ">=0.4.1,<0.5.0" +jupyter-sphinx = ">=0.3.2,<0.4.0" +myst-parser = ">=0.15.2,<0.16.0" +nbconvert = ">=5.6,<7" +nbformat = ">=5.0,<6.0" +pyyaml = "*" +sphinx = ">=3.1,<5" +sphinx-togglebutton = ">=0.3.0,<0.4.0" + +[package.extras] +code-style = ["pre-commit (>=2.12,<3.0)"] +rtd = ["alabaster", "altair", "bokeh", "coconut (>=1.4.3,<1.5.0)", "ipykernel (>=5.5,<6.0)", "ipywidgets", "jupytext (>=1.11.2,<1.12.0)", "matplotlib", "numpy", "pandas", "plotly", "sphinx-book-theme (>=0.1.0,<0.2.0)", "sphinx-copybutton", "sphinx-panels (>=0.4.1,<0.5.0)", "sphinxcontrib-bibtex", "sympy"] +testing = ["coverage (<5.0)", "ipykernel (>=5.5,<6.0)", "ipython (<8)", "jupytext (>=1.11.2,<1.12.0)", "matplotlib (>=3.3.0,<3.4.0)", "numpy", "pandas (<1.4)", "pytest (>=5.4,<6.0)", "pytest-cov (>=2.8,<3.0)", "pytest-regressions", "sympy"] + +[[package]] +name = "myst-parser" +version = "0.15.2" +description = "An extended commonmark compliant parser, with bridges to docutils & sphinx." +optional = false +python-versions = ">=3.6" +files = [ + {file = "myst-parser-0.15.2.tar.gz", hash = "sha256:f7f3b2d62db7655cde658eb5d62b2ec2a4631308137bd8d10f296a40d57bbbeb"}, + {file = "myst_parser-0.15.2-py3-none-any.whl", hash = "sha256:40124b6f27a4c42ac7f06b385e23a9dcd03d84801e9c7130b59b3729a554b1f9"}, +] + +[package.dependencies] +docutils = ">=0.15,<0.18" +jinja2 = "*" +markdown-it-py = ">=1.0.0,<2.0.0" +mdit-py-plugins = ">=0.2.8,<0.3.0" +pyyaml = "*" +sphinx = ">=3.1,<5" + +[package.extras] +code-style = ["pre-commit (>=2.12,<3.0)"] +linkify = ["linkify-it-py (>=1.0,<2.0)"] +rtd = ["ipython", "sphinx-book-theme (>=0.1.0,<0.2.0)", "sphinx-panels (>=0.5.2,<0.6.0)", "sphinxcontrib-bibtex (>=2.1,<3.0)", "sphinxcontrib.mermaid (>=0.6.3,<0.7.0)", "sphinxext-opengraph (>=0.4.2,<0.5.0)", "sphinxext-rediraffe (>=0.2,<1.0)"] +testing = ["beautifulsoup4", "coverage", "docutils (>=0.17.0,<0.18.0)", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "nbclassic" +version = "1.1.0" +description = "Jupyter Notebook as a Jupyter Server extension." +optional = false +python-versions = ">=3.7" +files = [ + {file = "nbclassic-1.1.0-py3-none-any.whl", hash = "sha256:8c0fd6e36e320a18657ff44ed96c3a400f17a903a3744fc322303a515778f2ba"}, + {file = "nbclassic-1.1.0.tar.gz", hash = "sha256:77b77ba85f9e988f9bad85df345b514e9e64c7f0e822992ab1df4a78ac64fc1e"}, +] + +[package.dependencies] +ipykernel = "*" +ipython-genutils = "*" +nest-asyncio = ">=1.5" +notebook-shim = ">=0.2.3" + +[package.extras] +docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +json-logging = ["json-logging"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "pytest-jupyter", "pytest-playwright", "pytest-tornasync", "requests", "requests-unixsocket", "testpath"] + +[[package]] +name = "nbclient" +version = "0.5.13" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "nbclient-0.5.13-py3-none-any.whl", hash = "sha256:47ac905af59379913c1f8f541098d2550153cf8dc58553cbe18c702b181518b0"}, + {file = "nbclient-0.5.13.tar.gz", hash = "sha256:40c52c9b5e3c31faecaee69f202b3f53e38d7c1c563de0fadde9d7eda0fdafe8"}, +] + +[package.dependencies] +jupyter-client = ">=6.1.5" +nbformat = ">=5.0" +nest-asyncio = "*" +traitlets = ">=5.0.0" + +[package.extras] +sphinx = ["Sphinx (>=1.7)", "mock", "moto", "myst-parser", "sphinx-book-theme"] +test = ["black", "check-manifest", "flake8", "ipykernel", "ipython (<8.0.0)", "ipywidgets (<8.0.0)", "mypy", "pip (>=18.1)", "pytest (>=4.1)", "pytest-asyncio", "pytest-cov (>=2.6.1)", "setuptools (>=38.6.0)", "twine (>=1.11.0)", "wheel (>=0.31.0)", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "6.5.4" +description = "Converting Jupyter Notebooks" +optional = false +python-versions = ">=3.7" +files = [ + {file = "nbconvert-6.5.4-py3-none-any.whl", hash = "sha256:d679a947f849a966cbbd0bf6e7fedcfdb64be3b20ce7cef11ad55c13f5820e19"}, + {file = "nbconvert-6.5.4.tar.gz", hash = "sha256:9e3c7c6d491374cbdd5f35d268c05809357716d346f4573186bbeab32ee50bc1"}, +] + +[package.dependencies] +beautifulsoup4 = "*" +bleach = "*" +defusedxml = "*" +entrypoints = ">=0.2.2" +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +lxml = "*" +MarkupSafe = ">=2.0" +mistune = ">=0.8.1,<2" +nbclient = ">=0.5.0" +nbformat = ">=5.1" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +tinycss2 = "*" +traitlets = ">=5.0" + +[package.extras] +all = ["ipykernel", "ipython", "ipywidgets (>=7)", "nbsphinx (>=0.2.12)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-cov", "pytest-dependency", "sphinx (>=1.5.1)", "sphinx-rtd-theme", "tornado (>=6.1)"] +docs = ["ipython", "nbsphinx (>=0.2.12)", "sphinx (>=1.5.1)", "sphinx-rtd-theme"] +serve = ["tornado (>=6.1)"] +test = ["ipykernel", "ipywidgets (>=7)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-cov", "pytest-dependency"] +webpdf = ["pyppeteer (>=1,<1.1)"] + +[[package]] +name = "nbdime" +version = "4.0.1" +description = "Diff and merge of Jupyter Notebooks" +optional = false +python-versions = ">=3.6" +files = [ + {file = "nbdime-4.0.1-py3-none-any.whl", hash = "sha256:82538e2b52e0834e9c07607e2dea27aceaaf7e8cf2269a4607c67ea9aa625404"}, + {file = "nbdime-4.0.1.tar.gz", hash = "sha256:f1a760c0b00c1ba9b4945c16ce92577f393fb51d184f351b7685ba6e8502098e"}, +] + +[package.dependencies] +colorama = "*" +gitpython = "<2.1.4 || >2.1.4,<2.1.5 || >2.1.5,<2.1.6 || >2.1.6" +jinja2 = ">=2.9" +jupyter-server = "*" +jupyter-server-mathjax = ">=0.2.2" +nbformat = "*" +pygments = "*" +requests = "*" +tornado = "*" + +[package.extras] +docs = ["recommonmark", "sphinx", "sphinx-rtd-theme"] +test = ["jsonschema", "jupyter-server[test]", "mock", "notebook", "pytest (>=6.0)", "pytest-cov", "pytest-timeout", "pytest-tornado", "requests", "tabulate"] + +[[package]] +name = "nbformat" +version = "5.10.4" +description = "The Jupyter Notebook format" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, + {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, +] + +[package.dependencies] +fastjsonschema = ">=2.15" +jsonschema = ">=2.6" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +traitlets = ">=5.1" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "netcdf4" +version = "1.6.5" +description = "Provides an object-oriented python interface to the netCDF version 4 library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "netCDF4-1.6.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d23b97cbde2bf413fadc4697c5c255a0436511c02f811e127e0fb12f5b882a4c"}, + {file = "netCDF4-1.6.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e5edfed673005f47f8d2fbea9c72c382b085dd358ac3c20ca743a563ed7b90e"}, + {file = "netCDF4-1.6.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10d2ac9ae1308ca837d86c6dc304ec455a85bdba0f2175e222844a54589168dc"}, + {file = "netCDF4-1.6.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a63a2be2f80977ac23bb0aa736c565011fd4639097ce0922e01b0dc38015df2"}, + {file = "netCDF4-1.6.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aaceea2097d292bad398d9f9b4fe403efa7b1568fcfa6faba9b67b1630027f9"}, + {file = "netCDF4-1.6.5-cp310-cp310-win_amd64.whl", hash = "sha256:111357d9e12eb79e8d58bfd91bc6b230d35b17a0ebd8c546d17416e8ceebea49"}, + {file = "netCDF4-1.6.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1c5fede0b34c0a02a1b9e84116bfb3fcd2f80124a651d4836e72b785d10e2f15"}, + {file = "netCDF4-1.6.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3de5512b9270aa6472e4f3aa2bf895a7364c1d4f8667ce3b82e8232197d4fec8"}, + {file = "netCDF4-1.6.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b20971a164431f6eca1d24df8aa153db15c2c1b9630e83ccc5cf004e8ac8151d"}, + {file = "netCDF4-1.6.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad1101d538077152b866782e44458356981526bf2ea9cc07930bf28b589c82a7"}, + {file = "netCDF4-1.6.5-cp311-cp311-win_amd64.whl", hash = "sha256:de4dc973fae9e2bbdf42e094125e423a4c25393172a61958314969b055a38889"}, + {file = "netCDF4-1.6.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:19e16c63cdd7c0dbffe284a4a65f226ba1026f476f35cbedd099b4792b395f69"}, + {file = "netCDF4-1.6.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b994afce2ca4073f6b757385a6c0ffec25ecaae2b8821535b303c7cdbf6de42b"}, + {file = "netCDF4-1.6.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0187646e3348e7a8cd654617dda65517df138042c94c2fcc6682ff7c8c6654dc"}, + {file = "netCDF4-1.6.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1ab5dabac27d25fcc82c52dc29a74a6585e865208cce35f4e285df83d3df0b2"}, + {file = "netCDF4-1.6.5-cp312-cp312-win_amd64.whl", hash = "sha256:081e9043ac6160989f60570928eabe803c88ce7df1d3f79f2345dc48f68ef752"}, + {file = "netCDF4-1.6.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b47b22dda5b25ba6291f97634d7ac67b0a843f8ae5c9d9d5813c15364f66d0a"}, + {file = "netCDF4-1.6.5-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4609dd62d14798c9524327287091875449d68588c128abb768fc0c76c4a28165"}, + {file = "netCDF4-1.6.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2455e9d35fde067e6a6bdc24aa9d44962235a071cec49904d1589e298c23dcd3"}, + {file = "netCDF4-1.6.5-cp38-cp38-win_amd64.whl", hash = "sha256:2c210794d96431d92b5992e46ad8a9f97237bf6d6956f8816978a03dc0fa18c3"}, + {file = "netCDF4-1.6.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:18255b8b283d32d3900092f29c67e53aa25bd8f0dfe7adde59fe782d865a381c"}, + {file = "netCDF4-1.6.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:53050562bac84738bbd121fbbee9593d074579f5d6fdaafcb981abeb5c964225"}, + {file = "netCDF4-1.6.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:938c062382406bca9198b16adddd87c09b00521766b138cdfd11c95546eefeb8"}, + {file = "netCDF4-1.6.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a8300451d7542d3c4ff1dcccf5fb1c7d44bdd1dc08ec77dab04416caf13cb1f"}, + {file = "netCDF4-1.6.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a27db2701feef31201c9b20b04a9579196edc20dfc339ca423c7b81e462d6e14"}, + {file = "netCDF4-1.6.5-cp39-cp39-win_amd64.whl", hash = "sha256:574d7742ab321e5f9f33b5b1296c4ad4e5c469152c17d4fc453d5070e413e596"}, + {file = "netCDF4-1.6.5.tar.gz", hash = "sha256:824881d0aacfde5bd982d6adedd8574259c85553781e7b83e0ce82b890bfa0ef"}, +] + +[package.dependencies] +certifi = "*" +cftime = "*" +numpy = "*" + +[package.extras] +tests = ["Cython", "packaging", "pytest"] + +[[package]] +name = "notebook" +version = "6.5.4" +description = "A web-based notebook environment for interactive computing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook-6.5.4-py3-none-any.whl", hash = "sha256:dd17e78aefe64c768737b32bf171c1c766666a21cc79a44d37a1700771cab56f"}, + {file = "notebook-6.5.4.tar.gz", hash = "sha256:517209568bd47261e2def27a140e97d49070602eea0d226a696f42a7f16c9a4e"}, +] + +[package.dependencies] +argon2-cffi = "*" +ipykernel = "*" +ipython-genutils = "*" +jinja2 = "*" +jupyter-client = ">=5.3.4" +jupyter-core = ">=4.6.1" +nbclassic = ">=0.4.7" +nbconvert = ">=5" +nbformat = "*" +nest-asyncio = ">=1.5" +prometheus-client = "*" +pyzmq = ">=17" +Send2Trash = ">=1.8.0" +terminado = ">=0.8.3" +tornado = ">=6.1" +traitlets = ">=4.2.1" + +[package.extras] +docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +json-logging = ["json-logging"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "requests", "requests-unixsocket", "selenium (==4.1.5)", "testpath"] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +description = "A shim layer for notebook traits and config" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, + {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, +] + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] + +[[package]] +name = "numpy" +version = "1.26.4" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, +] + +[[package]] +name = "numpyro" +version = "0.14.0" +description = "Pyro PPL on NumPy" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpyro-0.14.0-py3-none-any.whl", hash = "sha256:1aef9b30e263f4dc4c829d0f8ce6d0640b030d33b32c2b6e1ed20be5f7c12478"}, + {file = "numpyro-0.14.0.tar.gz", hash = "sha256:3e43eaa9c843473d7ae939c183e10db14e23bb42b0ad1de90ae15a451176de48"}, +] + +[package.dependencies] +jax = ">=0.4.14" +jaxlib = ">=0.4.14" +multipledispatch = "*" +numpy = "*" +tqdm = "*" + +[package.extras] +cpu = ["jax[cpu] (>=0.4.14)"] +cuda = ["jax[cuda] (>=0.4.14)"] +dev = ["dm-haiku", "flax", "funsor (>=0.4.1)", "graphviz", "jaxns (==2.4.8)", "matplotlib", "optax (>=0.0.6)", "pylab-sdk", "pyyaml", "requests", "tensorflow-probability (>=0.18.0)"] +doc = ["ipython", "nbsphinx (>=0.8.9)", "readthedocs-sphinx-search (>=0.3.2)", "sphinx (>=5)", "sphinx-gallery", "sphinx-rtd-theme"] +examples = ["arviz", "jupyter", "matplotlib", "pandas", "scikit-learn", "seaborn", "wordcloud"] +test = ["importlib-metadata (<5.0)", "pyro-api (>=0.1.1)", "pytest (>=4.1)", "ruff (>=0.1.8)", "scipy (>=1.9)"] +tpu = ["jax[tpu] (>=0.4.14)"] + +[[package]] +name = "openpyxl" +version = "3.1.3" +description = "A Python library to read/write Excel 2010 xlsx/xlsm files" +optional = false +python-versions = ">=3.6" +files = [ + {file = "openpyxl-3.1.3-py2.py3-none-any.whl", hash = "sha256:25071b558db709de9e8782c3d3e058af3b23ffb2fc6f40c8f0c45a154eced2c3"}, + {file = "openpyxl-3.1.3.tar.gz", hash = "sha256:8dd482e5350125b2388070bb2477927be2e8ebc27df61178709bc8c8751da2f9"}, +] + +[package.dependencies] +et-xmlfile = "*" + +[[package]] +name = "opt-einsum" +version = "3.3.0" +description = "Optimizing numpys einsum function" +optional = false +python-versions = ">=3.5" +files = [ + {file = "opt_einsum-3.3.0-py3-none-any.whl", hash = "sha256:2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147"}, + {file = "opt_einsum-3.3.0.tar.gz", hash = "sha256:59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549"}, +] + +[package.dependencies] +numpy = ">=1.7" + +[package.extras] +docs = ["numpydoc", "sphinx (==1.2.3)", "sphinx-rtd-theme", "sphinxcontrib-napoleon"] +tests = ["pytest", "pytest-cov", "pytest-pep8"] + +[[package]] +name = "optax" +version = "0.1.9" +description = "A gradient processing and optimisation library in JAX." +optional = false +python-versions = ">=3.9" +files = [ + {file = "optax-0.1.9-py3-none-any.whl", hash = "sha256:3cbcfac6e70dff9484cd7560dc92e43a50df1eac0d4af2a1f7c2e1fd116bf972"}, + {file = "optax-0.1.9.tar.gz", hash = "sha256:731f43e8b404f50a5ef025b1261894d7d0300f7ad9cb688ea08f67b40822e94f"}, +] + +[package.dependencies] +absl-py = ">=0.7.1" +chex = ">=0.1.7" +jax = ">=0.1.55" +jaxlib = ">=0.1.37" +numpy = ">=1.18.0" + +[package.extras] +docs = ["dm-haiku (>=0.0.11)", "ipython (>=8.8.0)", "matplotlib (>=3.5.0)", "myst-nb (>=1.0.0)", "sphinx (>=6.0.0)", "sphinx-autodoc-typehints", "sphinx-book-theme (>=1.0.1)", "sphinx-collections (>=0.0.1)", "sphinx-gallery (>=0.14.0)", "sphinxcontrib-katex", "tensorflow (>=2.4.0)", "tensorflow-datasets (>=4.2.0)"] +dp-accounting = ["absl-py (>=1.0.0)", "attrs (>=21.4.0)", "mpmath (>=1.2.1)", "numpy (>=1.21.4)", "scipy (>=1.7.1)"] +examples = ["dm-haiku (>=0.0.3)", "tensorflow (>=2.4.0)", "tensorflow-datasets (>=4.2.0)"] +test = ["dm-haiku (>=0.0.3)", "dm-tree (>=0.1.7)", "flax (==0.5.3)"] + +[[package]] +name = "overrides" +version = "7.7.0" +description = "A decorator to automatically detect mismatch when overriding a method." +optional = false +python-versions = ">=3.6" +files = [ + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, +] + +[[package]] +name = "packaging" +version = "20.9" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"}, + {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"}, +] + +[package.dependencies] +pyparsing = ">=2.0.2" + +[[package]] +name = "pandas" +version = "2.2.2" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, + {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, + {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, + {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, + {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, + {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +description = "Utilities for writing pandoc filters in python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, + {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, +] + +[[package]] +name = "parso" +version = "0.8.4" +description = "A Python Parser" +optional = false +python-versions = ">=3.6" +files = [ + {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, + {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, +] + +[package.extras] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["docopt", "pytest"] + +[[package]] +name = "pexpect" +version = "4.9.0" +description = "Pexpect allows easy control of interactive console applications." +optional = false +python-versions = "*" +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pillow" +version = "8.4.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "Pillow-8.4.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:81f8d5c81e483a9442d72d182e1fb6dcb9723f289a57e8030811bac9ea3fef8d"}, + {file = "Pillow-8.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f97cfb1e5a392d75dd8b9fd274d205404729923840ca94ca45a0af57e13dbe6"}, + {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb9fc393f3c61f9054e1ed26e6fe912c7321af2f41ff49d3f83d05bacf22cc78"}, + {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d82cdb63100ef5eedb8391732375e6d05993b765f72cb34311fab92103314649"}, + {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62cc1afda735a8d109007164714e73771b499768b9bb5afcbbee9d0ff374b43f"}, + {file = "Pillow-8.4.0-cp310-cp310-win32.whl", hash = "sha256:e3dacecfbeec9a33e932f00c6cd7996e62f53ad46fbe677577394aaa90ee419a"}, + {file = "Pillow-8.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:620582db2a85b2df5f8a82ddeb52116560d7e5e6b055095f04ad828d1b0baa39"}, + {file = "Pillow-8.4.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:1bc723b434fbc4ab50bb68e11e93ce5fb69866ad621e3c2c9bdb0cd70e345f55"}, + {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72cbcfd54df6caf85cc35264c77ede902452d6df41166010262374155947460c"}, + {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70ad9e5c6cb9b8487280a02c0ad8a51581dcbbe8484ce058477692a27c151c0a"}, + {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25a49dc2e2f74e65efaa32b153527fc5ac98508d502fa46e74fa4fd678ed6645"}, + {file = "Pillow-8.4.0-cp36-cp36m-win32.whl", hash = "sha256:93ce9e955cc95959df98505e4608ad98281fff037350d8c2671c9aa86bcf10a9"}, + {file = "Pillow-8.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2e4440b8f00f504ee4b53fe30f4e381aae30b0568193be305256b1462216feff"}, + {file = "Pillow-8.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8c803ac3c28bbc53763e6825746f05cc407b20e4a69d0122e526a582e3b5e153"}, + {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8a17b5d948f4ceeceb66384727dde11b240736fddeda54ca740b9b8b1556b29"}, + {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1394a6ad5abc838c5cd8a92c5a07535648cdf6d09e8e2d6df916dfa9ea86ead8"}, + {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:792e5c12376594bfcb986ebf3855aa4b7c225754e9a9521298e460e92fb4a488"}, + {file = "Pillow-8.4.0-cp37-cp37m-win32.whl", hash = "sha256:d99ec152570e4196772e7a8e4ba5320d2d27bf22fdf11743dd882936ed64305b"}, + {file = "Pillow-8.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7b7017b61bbcdd7f6363aeceb881e23c46583739cb69a3ab39cb384f6ec82e5b"}, + {file = "Pillow-8.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:d89363f02658e253dbd171f7c3716a5d340a24ee82d38aab9183f7fdf0cdca49"}, + {file = "Pillow-8.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a0956fdc5defc34462bb1c765ee88d933239f9a94bc37d132004775241a7585"}, + {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b7bb9de00197fb4261825c15551adf7605cf14a80badf1761d61e59da347779"}, + {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72b9e656e340447f827885b8d7a15fc8c4e68d410dc2297ef6787eec0f0ea409"}, + {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5a4532a12314149d8b4e4ad8ff09dde7427731fcfa5917ff16d0291f13609df"}, + {file = "Pillow-8.4.0-cp38-cp38-win32.whl", hash = "sha256:82aafa8d5eb68c8463b6e9baeb4f19043bb31fefc03eb7b216b51e6a9981ae09"}, + {file = "Pillow-8.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:066f3999cb3b070a95c3652712cffa1a748cd02d60ad7b4e485c3748a04d9d76"}, + {file = "Pillow-8.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:5503c86916d27c2e101b7f71c2ae2cddba01a2cf55b8395b0255fd33fa4d1f1a"}, + {file = "Pillow-8.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4acc0985ddf39d1bc969a9220b51d94ed51695d455c228d8ac29fcdb25810e6e"}, + {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b052a619a8bfcf26bd8b3f48f45283f9e977890263e4571f2393ed8898d331b"}, + {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:493cb4e415f44cd601fcec11c99836f707bb714ab03f5ed46ac25713baf0ff20"}, + {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8831cb7332eda5dc89b21a7bce7ef6ad305548820595033a4b03cf3091235ed"}, + {file = "Pillow-8.4.0-cp39-cp39-win32.whl", hash = "sha256:5e9ac5f66616b87d4da618a20ab0a38324dbe88d8a39b55be8964eb520021e02"}, + {file = "Pillow-8.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:3eb1ce5f65908556c2d8685a8f0a6e989d887ec4057326f6c22b24e8a172c66b"}, + {file = "Pillow-8.4.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ddc4d832a0f0b4c52fff973a0d44b6c99839a9d016fe4e6a1cb8f3eea96479c2"}, + {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3e5ddc44c14042f0844b8cf7d2cd455f6cc80fd7f5eefbe657292cf601d9ad"}, + {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70e94281588ef053ae8998039610dbd71bc509e4acbc77ab59d7d2937b10698"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:3862b7256046fcd950618ed22d1d60b842e3a40a48236a5498746f21189afbbc"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4901622493f88b1a29bd30ec1a2f683782e57c3c16a2dbc7f2595ba01f639df"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c471a734240653a0ec91dec0996696eea227eafe72a33bd06c92697728046b"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:244cf3b97802c34c41905d22810846802a3329ddcb93ccc432870243211c79fc"}, + {file = "Pillow-8.4.0.tar.gz", hash = "sha256:b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed"}, +] + +[[package]] +name = "platformdirs" +version = "4.2.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, + {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] + +[[package]] +name = "pluggy" +version = "0.13.1" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, + {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] + +[[package]] +name = "prometheus-client" +version = "0.20.0" +description = "Python client for the Prometheus monitoring system." +optional = false +python-versions = ">=3.8" +files = [ + {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, + {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, +] + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.47" +description = "Library for building powerful interactive command lines in Python" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.47-py3-none-any.whl", hash = "sha256:0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10"}, + {file = "prompt_toolkit-3.0.47.tar.gz", hash = "sha256:1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360"}, +] + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "psutil" +version = "5.9.8" +description = "Cross-platform lib for process and system monitoring in Python." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +files = [ + {file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"}, + {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"}, + {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7"}, + {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36"}, + {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d"}, + {file = "psutil-5.9.8-cp27-none-win32.whl", hash = "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e"}, + {file = "psutil-5.9.8-cp27-none-win_amd64.whl", hash = "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631"}, + {file = "psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81"}, + {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421"}, + {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4"}, + {file = "psutil-5.9.8-cp36-cp36m-win32.whl", hash = "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee"}, + {file = "psutil-5.9.8-cp36-cp36m-win_amd64.whl", hash = "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2"}, + {file = "psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0"}, + {file = "psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf"}, + {file = "psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8"}, + {file = "psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c"}, +] + +[package.extras] +test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +optional = false +python-versions = "*" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] + +[[package]] +name = "pure-eval" +version = "0.2.2" +description = "Safely evaluate AST nodes without side effects" +optional = false +python-versions = "*" +files = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyparsing" +version = "2.4.7" +description = "Python parsing module" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, + {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, +] + +[[package]] +name = "pyrsistent" +version = "0.20.0" +description = "Persistent/Functional/Immutable data structures" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyrsistent-0.20.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c3aba3e01235221e5b229a6c05f585f344734bd1ad42a8ac51493d74722bbce"}, + {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1beb78af5423b879edaf23c5591ff292cf7c33979734c99aa66d5914ead880f"}, + {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21cc459636983764e692b9eba7144cdd54fdec23ccdb1e8ba392a63666c60c34"}, + {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5ac696f02b3fc01a710427585c855f65cd9c640e14f52abe52020722bb4906b"}, + {file = "pyrsistent-0.20.0-cp310-cp310-win32.whl", hash = "sha256:0724c506cd8b63c69c7f883cc233aac948c1ea946ea95996ad8b1380c25e1d3f"}, + {file = "pyrsistent-0.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:8441cf9616d642c475684d6cf2520dd24812e996ba9af15e606df5f6fd9d04a7"}, + {file = "pyrsistent-0.20.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0f3b1bcaa1f0629c978b355a7c37acd58907390149b7311b5db1b37648eb6958"}, + {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdd7ef1ea7a491ae70d826b6cc64868de09a1d5ff9ef8d574250d0940e275b8"}, + {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cae40a9e3ce178415040a0383f00e8d68b569e97f31928a3a8ad37e3fde6df6a"}, + {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6288b3fa6622ad8a91e6eb759cfc48ff3089e7c17fb1d4c59a919769314af224"}, + {file = "pyrsistent-0.20.0-cp311-cp311-win32.whl", hash = "sha256:7d29c23bdf6e5438c755b941cef867ec2a4a172ceb9f50553b6ed70d50dfd656"}, + {file = "pyrsistent-0.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:59a89bccd615551391f3237e00006a26bcf98a4d18623a19909a2c48b8e986ee"}, + {file = "pyrsistent-0.20.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:09848306523a3aba463c4b49493a760e7a6ca52e4826aa100ee99d8d39b7ad1e"}, + {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a14798c3005ec892bbada26485c2eea3b54109cb2533713e355c806891f63c5e"}, + {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b14decb628fac50db5e02ee5a35a9c0772d20277824cfe845c8a8b717c15daa3"}, + {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e2c116cc804d9b09ce9814d17df5edf1df0c624aba3b43bc1ad90411487036d"}, + {file = "pyrsistent-0.20.0-cp312-cp312-win32.whl", hash = "sha256:e78d0c7c1e99a4a45c99143900ea0546025e41bb59ebc10182e947cf1ece9174"}, + {file = "pyrsistent-0.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:4021a7f963d88ccd15b523787d18ed5e5269ce57aa4037146a2377ff607ae87d"}, + {file = "pyrsistent-0.20.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:79ed12ba79935adaac1664fd7e0e585a22caa539dfc9b7c7c6d5ebf91fb89054"}, + {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f920385a11207dc372a028b3f1e1038bb244b3ec38d448e6d8e43c6b3ba20e98"}, + {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f5c2d012671b7391803263419e31b5c7c21e7c95c8760d7fc35602353dee714"}, + {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef3992833fbd686ee783590639f4b8343a57f1f75de8633749d984dc0eb16c86"}, + {file = "pyrsistent-0.20.0-cp38-cp38-win32.whl", hash = "sha256:881bbea27bbd32d37eb24dd320a5e745a2a5b092a17f6debc1349252fac85423"}, + {file = "pyrsistent-0.20.0-cp38-cp38-win_amd64.whl", hash = "sha256:6d270ec9dd33cdb13f4d62c95c1a5a50e6b7cdd86302b494217137f760495b9d"}, + {file = "pyrsistent-0.20.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ca52d1ceae015859d16aded12584c59eb3825f7b50c6cfd621d4231a6cc624ce"}, + {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b318ca24db0f0518630e8b6f3831e9cba78f099ed5c1d65ffe3e023003043ba0"}, + {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fed2c3216a605dc9a6ea50c7e84c82906e3684c4e80d2908208f662a6cbf9022"}, + {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e14c95c16211d166f59c6611533d0dacce2e25de0f76e4c140fde250997b3ca"}, + {file = "pyrsistent-0.20.0-cp39-cp39-win32.whl", hash = "sha256:f058a615031eea4ef94ead6456f5ec2026c19fb5bd6bfe86e9665c4158cf802f"}, + {file = "pyrsistent-0.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:58b8f6366e152092194ae68fefe18b9f0b4f89227dfd86a07770c3d86097aebf"}, + {file = "pyrsistent-0.20.0-py3-none-any.whl", hash = "sha256:c55acc4733aad6560a7f5f818466631f07efc001fd023f34a6c203f8b6df0f0b"}, + {file = "pyrsistent-0.20.0.tar.gz", hash = "sha256:4c48f78f62ab596c679086084d0dd13254ae4f3d6c72a83ffdf5ebdef8f265a4"}, +] + +[[package]] +name = "pytest" +version = "6.2.5" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, + {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, +] + +[package.dependencies] +atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +py = ">=1.8.2" +toml = "*" + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-json-logger" +version = "2.0.7" +description = "A python library adding a json log formatter" +optional = false +python-versions = ">=3.6" +files = [ + {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, + {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, +] + +[[package]] +name = "pytz" +version = "2020.5" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2020.5-py2.py3-none-any.whl", hash = "sha256:16962c5fb8db4a8f63a26646d8886e9d769b6c511543557bc84e9569fb9a9cb4"}, + {file = "pytz-2020.5.tar.gz", hash = "sha256:180befebb1927b16f6b57101720075a984c019ac16b1b7575673bea42c6c3da5"}, +] + +[[package]] +name = "pywin32" +version = "306" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, + {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, + {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, + {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, + {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, + {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, + {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, + {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, + {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, + {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, + {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, + {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, + {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, + {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, +] + +[[package]] +name = "pywinpty" +version = "2.0.13" +description = "Pseudo terminal support for Windows from Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pywinpty-2.0.13-cp310-none-win_amd64.whl", hash = "sha256:697bff211fb5a6508fee2dc6ff174ce03f34a9a233df9d8b5fe9c8ce4d5eaf56"}, + {file = "pywinpty-2.0.13-cp311-none-win_amd64.whl", hash = "sha256:b96fb14698db1284db84ca38c79f15b4cfdc3172065b5137383910567591fa99"}, + {file = "pywinpty-2.0.13-cp312-none-win_amd64.whl", hash = "sha256:2fd876b82ca750bb1333236ce98488c1be96b08f4f7647cfdf4129dfad83c2d4"}, + {file = "pywinpty-2.0.13-cp38-none-win_amd64.whl", hash = "sha256:61d420c2116c0212808d31625611b51caf621fe67f8a6377e2e8b617ea1c1f7d"}, + {file = "pywinpty-2.0.13-cp39-none-win_amd64.whl", hash = "sha256:71cb613a9ee24174730ac7ae439fd179ca34ccb8c5349e8d7b72ab5dea2c6f4b"}, + {file = "pywinpty-2.0.13.tar.gz", hash = "sha256:c34e32351a3313ddd0d7da23d27f835c860d32fe4ac814d372a3ea9594f41dde"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "pyzmq" +version = "26.0.3" +description = "Python bindings for 0MQ" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:44dd6fc3034f1eaa72ece33588867df9e006a7303725a12d64c3dff92330f625"}, + {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:acb704195a71ac5ea5ecf2811c9ee19ecdc62b91878528302dd0be1b9451cc90"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dbb9c997932473a27afa93954bb77a9f9b786b4ccf718d903f35da3232317de"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bcb34f869d431799c3ee7d516554797f7760cb2198ecaa89c3f176f72d062be"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ece17ec5f20d7d9b442e5174ae9f020365d01ba7c112205a4d59cf19dc38ee"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ba6e5e6588e49139a0979d03a7deb9c734bde647b9a8808f26acf9c547cab1bf"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3bf8b000a4e2967e6dfdd8656cd0757d18c7e5ce3d16339e550bd462f4857e59"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2136f64fbb86451dbbf70223635a468272dd20075f988a102bf8a3f194a411dc"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e8918973fbd34e7814f59143c5f600ecd38b8038161239fd1a3d33d5817a38b8"}, + {file = "pyzmq-26.0.3-cp310-cp310-win32.whl", hash = "sha256:0aaf982e68a7ac284377d051c742610220fd06d330dcd4c4dbb4cdd77c22a537"}, + {file = "pyzmq-26.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:f1a9b7d00fdf60b4039f4455afd031fe85ee8305b019334b72dcf73c567edc47"}, + {file = "pyzmq-26.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:80b12f25d805a919d53efc0a5ad7c0c0326f13b4eae981a5d7b7cc343318ebb7"}, + {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:a72a84570f84c374b4c287183debc776dc319d3e8ce6b6a0041ce2e400de3f32"}, + {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ca684ee649b55fd8f378127ac8462fb6c85f251c2fb027eb3c887e8ee347bcd"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e222562dc0f38571c8b1ffdae9d7adb866363134299264a1958d077800b193b7"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f17cde1db0754c35a91ac00b22b25c11da6eec5746431d6e5092f0cd31a3fea9"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b7c0c0b3244bb2275abe255d4a30c050d541c6cb18b870975553f1fb6f37527"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:ac97a21de3712afe6a6c071abfad40a6224fd14fa6ff0ff8d0c6e6cd4e2f807a"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:88b88282e55fa39dd556d7fc04160bcf39dea015f78e0cecec8ff4f06c1fc2b5"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:72b67f966b57dbd18dcc7efbc1c7fc9f5f983e572db1877081f075004614fcdd"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f4b6cecbbf3b7380f3b61de3a7b93cb721125dc125c854c14ddc91225ba52f83"}, + {file = "pyzmq-26.0.3-cp311-cp311-win32.whl", hash = "sha256:eed56b6a39216d31ff8cd2f1d048b5bf1700e4b32a01b14379c3b6dde9ce3aa3"}, + {file = "pyzmq-26.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:3191d312c73e3cfd0f0afdf51df8405aafeb0bad71e7ed8f68b24b63c4f36500"}, + {file = "pyzmq-26.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:b6907da3017ef55139cf0e417c5123a84c7332520e73a6902ff1f79046cd3b94"}, + {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:068ca17214038ae986d68f4a7021f97e187ed278ab6dccb79f837d765a54d753"}, + {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7821d44fe07335bea256b9f1f41474a642ca55fa671dfd9f00af8d68a920c2d4"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eeb438a26d87c123bb318e5f2b3d86a36060b01f22fbdffd8cf247d52f7c9a2b"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69ea9d6d9baa25a4dc9cef5e2b77b8537827b122214f210dd925132e34ae9b12"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7daa3e1369355766dea11f1d8ef829905c3b9da886ea3152788dc25ee6079e02"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:6ca7a9a06b52d0e38ccf6bca1aeff7be178917893f3883f37b75589d42c4ac20"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1b7d0e124948daa4d9686d421ef5087c0516bc6179fdcf8828b8444f8e461a77"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e746524418b70f38550f2190eeee834db8850088c834d4c8406fbb9bc1ae10b2"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:6b3146f9ae6af82c47a5282ac8803523d381b3b21caeae0327ed2f7ecb718798"}, + {file = "pyzmq-26.0.3-cp312-cp312-win32.whl", hash = "sha256:2b291d1230845871c00c8462c50565a9cd6026fe1228e77ca934470bb7d70ea0"}, + {file = "pyzmq-26.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:926838a535c2c1ea21c903f909a9a54e675c2126728c21381a94ddf37c3cbddf"}, + {file = "pyzmq-26.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:5bf6c237f8c681dfb91b17f8435b2735951f0d1fad10cc5dfd96db110243370b"}, + {file = "pyzmq-26.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c0991f5a96a8e620f7691e61178cd8f457b49e17b7d9cfa2067e2a0a89fc1d5"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dbf012d8fcb9f2cf0643b65df3b355fdd74fc0035d70bb5c845e9e30a3a4654b"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:01fbfbeb8249a68d257f601deb50c70c929dc2dfe683b754659569e502fbd3aa"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c8eb19abe87029c18f226d42b8a2c9efdd139d08f8bf6e085dd9075446db450"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:5344b896e79800af86ad643408ca9aa303a017f6ebff8cee5a3163c1e9aec987"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:204e0f176fd1d067671157d049466869b3ae1fc51e354708b0dc41cf94e23a3a"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a42db008d58530efa3b881eeee4991146de0b790e095f7ae43ba5cc612decbc5"}, + {file = "pyzmq-26.0.3-cp37-cp37m-win32.whl", hash = "sha256:8d7a498671ca87e32b54cb47c82a92b40130a26c5197d392720a1bce1b3c77cf"}, + {file = "pyzmq-26.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:3b4032a96410bdc760061b14ed6a33613ffb7f702181ba999df5d16fb96ba16a"}, + {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2cc4e280098c1b192c42a849de8de2c8e0f3a84086a76ec5b07bfee29bda7d18"}, + {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5bde86a2ed3ce587fa2b207424ce15b9a83a9fa14422dcc1c5356a13aed3df9d"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:34106f68e20e6ff253c9f596ea50397dbd8699828d55e8fa18bd4323d8d966e6"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ebbbd0e728af5db9b04e56389e2299a57ea8b9dd15c9759153ee2455b32be6ad"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6b1d1c631e5940cac5a0b22c5379c86e8df6a4ec277c7a856b714021ab6cfad"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e891ce81edd463b3b4c3b885c5603c00141151dd9c6936d98a680c8c72fe5c67"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9b273ecfbc590a1b98f014ae41e5cf723932f3b53ba9367cfb676f838038b32c"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b32bff85fb02a75ea0b68f21e2412255b5731f3f389ed9aecc13a6752f58ac97"}, + {file = "pyzmq-26.0.3-cp38-cp38-win32.whl", hash = "sha256:f6c21c00478a7bea93caaaef9e7629145d4153b15a8653e8bb4609d4bc70dbfc"}, + {file = "pyzmq-26.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:3401613148d93ef0fd9aabdbddb212de3db7a4475367f49f590c837355343972"}, + {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:2ed8357f4c6e0daa4f3baf31832df8a33334e0fe5b020a61bc8b345a3db7a606"}, + {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c1c8f2a2ca45292084c75bb6d3a25545cff0ed931ed228d3a1810ae3758f975f"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b63731993cdddcc8e087c64e9cf003f909262b359110070183d7f3025d1c56b5"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b3cd31f859b662ac5d7f4226ec7d8bd60384fa037fc02aee6ff0b53ba29a3ba8"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:115f8359402fa527cf47708d6f8a0f8234f0e9ca0cab7c18c9c189c194dbf620"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:715bdf952b9533ba13dfcf1f431a8f49e63cecc31d91d007bc1deb914f47d0e4"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e1258c639e00bf5e8a522fec6c3eaa3e30cf1c23a2f21a586be7e04d50c9acab"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:15c59e780be8f30a60816a9adab900c12a58d79c1ac742b4a8df044ab2a6d920"}, + {file = "pyzmq-26.0.3-cp39-cp39-win32.whl", hash = "sha256:d0cdde3c78d8ab5b46595054e5def32a755fc028685add5ddc7403e9f6de9879"}, + {file = "pyzmq-26.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:ce828058d482ef860746bf532822842e0ff484e27f540ef5c813d516dd8896d2"}, + {file = "pyzmq-26.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:788f15721c64109cf720791714dc14afd0f449d63f3a5487724f024345067381"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c18645ef6294d99b256806e34653e86236eb266278c8ec8112622b61db255de"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e6bc96ebe49604df3ec2c6389cc3876cabe475e6bfc84ced1bf4e630662cb35"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:971e8990c5cc4ddcff26e149398fc7b0f6a042306e82500f5e8db3b10ce69f84"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8416c23161abd94cc7da80c734ad7c9f5dbebdadfdaa77dad78244457448223"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:082a2988364b60bb5de809373098361cf1dbb239623e39e46cb18bc035ed9c0c"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d57dfbf9737763b3a60d26e6800e02e04284926329aee8fb01049635e957fe81"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:77a85dca4c2430ac04dc2a2185c2deb3858a34fe7f403d0a946fa56970cf60a1"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4c82a6d952a1d555bf4be42b6532927d2a5686dd3c3e280e5f63225ab47ac1f5"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4496b1282c70c442809fc1b151977c3d967bfb33e4e17cedbf226d97de18f709"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:e4946d6bdb7ba972dfda282f9127e5756d4f299028b1566d1245fa0d438847e6"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:03c0ae165e700364b266876d712acb1ac02693acd920afa67da2ebb91a0b3c09"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:3e3070e680f79887d60feeda051a58d0ac36622e1759f305a41059eff62c6da7"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6ca08b840fe95d1c2bd9ab92dac5685f949fc6f9ae820ec16193e5ddf603c3b2"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e76654e9dbfb835b3518f9938e565c7806976c07b37c33526b574cc1a1050480"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:871587bdadd1075b112e697173e946a07d722459d20716ceb3d1bd6c64bd08ce"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d0a2d1bd63a4ad79483049b26514e70fa618ce6115220da9efdff63688808b17"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0270b49b6847f0d106d64b5086e9ad5dc8a902413b5dbbb15d12b60f9c1747a4"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:703c60b9910488d3d0954ca585c34f541e506a091a41930e663a098d3b794c67"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74423631b6be371edfbf7eabb02ab995c2563fee60a80a30829176842e71722a"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4adfbb5451196842a88fda3612e2c0414134874bffb1c2ce83ab4242ec9e027d"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3516119f4f9b8671083a70b6afaa0a070f5683e431ab3dc26e9215620d7ca1ad"}, + {file = "pyzmq-26.0.3.tar.gz", hash = "sha256:dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] + +[[package]] +name = "scipy" +version = "1.13.1" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, + {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f"}, + {file = "scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94"}, + {file = "scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa"}, + {file = "scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59"}, + {file = "scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884"}, + {file = "scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16"}, + {file = "scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d"}, + {file = "scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c"}, + {file = "scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2"}, + {file = "scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c"}, +] + +[package.dependencies] +numpy = ">=1.22.4,<2.3" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] +test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "seaborn" +version = "0.13.2" +description = "Statistical data visualization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "seaborn-0.13.2-py3-none-any.whl", hash = "sha256:636f8336facf092165e27924f223d3c62ca560b1f2bb5dff7ab7fad265361987"}, + {file = "seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7"}, +] + +[package.dependencies] +matplotlib = ">=3.4,<3.6.1 || >3.6.1" +numpy = ">=1.20,<1.24.0 || >1.24.0" +pandas = ">=1.2" + +[package.extras] +dev = ["flake8", "flit", "mypy", "pandas-stubs", "pre-commit", "pytest", "pytest-cov", "pytest-xdist"] +docs = ["ipykernel", "nbconvert", "numpydoc", "pydata_sphinx_theme (==0.10.0rc2)", "pyyaml", "sphinx (<6.0.0)", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] +stats = ["scipy (>=1.7)", "statsmodels (>=0.12)"] + +[[package]] +name = "send2trash" +version = "1.8.3" +description = "Send file to trash natively under Mac OS X, Windows and Linux" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, + {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, +] + +[package.extras] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "setuptools" +version = "70.0.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4"}, + {file = "setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "smmap" +version = "5.0.1" +description = "A pure Python implementation of a sliding window memory map manager" +optional = false +python-versions = ">=3.7" +files = [ + {file = "smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"}, + {file = "smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "snowballstemmer" +version = "2.2.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +optional = false +python-versions = "*" +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] + +[[package]] +name = "soupsieve" +version = "2.5" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +files = [ + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, +] + +[[package]] +name = "sphinx" +version = "4.5.0" +description = "Python documentation generator" +optional = false +python-versions = ">=3.6" +files = [ + {file = "Sphinx-4.5.0-py3-none-any.whl", hash = "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"}, + {file = "Sphinx-4.5.0.tar.gz", hash = "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6"}, +] + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=1.3" +colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.14,<0.18" +imagesize = "*" +Jinja2 = ">=2.3" +packaging = "*" +Pygments = ">=2.0" +requests = ">=2.5.0" +snowballstemmer = ">=1.1" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = ">=2.0.0" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = ">=1.1.5" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "isort", "mypy (>=0.931)", "types-requests", "types-typed-ast"] +test = ["cython", "html5lib", "pytest", "pytest-cov", "typed-ast"] + +[[package]] +name = "sphinx-rtd-theme" +version = "0.4.3" +description = "Read the Docs theme for Sphinx" +optional = false +python-versions = "*" +files = [ + {file = "sphinx_rtd_theme-0.4.3-py2.py3-none-any.whl", hash = "sha256:00cf895504a7895ee433807c62094cf1e95f065843bf3acd17037c3e9a2becd4"}, + {file = "sphinx_rtd_theme-0.4.3.tar.gz", hash = "sha256:728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a"}, +] + +[package.dependencies] +sphinx = "*" + +[[package]] +name = "sphinx-togglebutton" +version = "0.3.2" +description = "Toggle page content and collapse admonitions in Sphinx." +optional = false +python-versions = "*" +files = [ + {file = "sphinx-togglebutton-0.3.2.tar.gz", hash = "sha256:ab0c8b366427b01e4c89802d5d078472c427fa6e9d12d521c34fa0442559dc7a"}, + {file = "sphinx_togglebutton-0.3.2-py3-none-any.whl", hash = "sha256:9647ba7874b7d1e2d43413d8497153a85edc6ac95a3fea9a75ef9c1e08aaae2b"}, +] + +[package.dependencies] +docutils = "*" +setuptools = "*" +sphinx = "*" +wheel = "*" + +[package.extras] +sphinx = ["matplotlib", "myst-nb", "numpy", "sphinx-book-theme", "sphinx-design", "sphinx-examples"] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.8" +description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_applehelp-1.0.8-py3-none-any.whl", hash = "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"}, + {file = "sphinxcontrib_applehelp-1.0.8.tar.gz", hash = "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.6" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_devhelp-1.0.6-py3-none-any.whl", hash = "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f"}, + {file = "sphinxcontrib_devhelp-1.0.6.tar.gz", hash = "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.5" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_htmlhelp-2.0.5-py3-none-any.whl", hash = "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"}, + {file = "sphinxcontrib_htmlhelp-2.0.5.tar.gz", hash = "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["html5lib", "pytest"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +optional = false +python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] + +[package.extras] +test = ["flake8", "mypy", "pytest"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.7" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_qthelp-1.0.7-py3-none-any.whl", hash = "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"}, + {file = "sphinxcontrib_qthelp-1.0.7.tar.gz", hash = "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.10" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_serializinghtml-1.1.10-py3-none-any.whl", hash = "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7"}, + {file = "sphinxcontrib_serializinghtml-1.1.10.tar.gz", hash = "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sqlalchemy" +version = "1.4.52" +description = "Database Abstraction Library" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "SQLAlchemy-1.4.52-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:f68016f9a5713684c1507cc37133c28035f29925c75c0df2f9d0f7571e23720a"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24bb0f81fbbb13d737b7f76d1821ec0b117ce8cbb8ee5e8641ad2de41aa916d3"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e93983cc0d2edae253b3f2141b0a3fb07e41c76cd79c2ad743fc27eb79c3f6db"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:84e10772cfc333eb08d0b7ef808cd76e4a9a30a725fb62a0495877a57ee41d81"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:427988398d2902de042093d17f2b9619a5ebc605bf6372f7d70e29bde6736842"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-win32.whl", hash = "sha256:1296f2cdd6db09b98ceb3c93025f0da4835303b8ac46c15c2136e27ee4d18d94"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-win_amd64.whl", hash = "sha256:80e7f697bccc56ac6eac9e2df5c98b47de57e7006d2e46e1a3c17c546254f6ef"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2f251af4c75a675ea42766880ff430ac33291c8d0057acca79710f9e5a77383d"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb8f9e4c4718f111d7b530c4e6fb4d28f9f110eb82e7961412955b3875b66de0"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afb1672b57f58c0318ad2cff80b384e816735ffc7e848d8aa51e0b0fc2f4b7bb"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-win32.whl", hash = "sha256:6e41cb5cda641f3754568d2ed8962f772a7f2b59403b95c60c89f3e0bd25f15e"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-win_amd64.whl", hash = "sha256:5bed4f8c3b69779de9d99eb03fd9ab67a850d74ab0243d1be9d4080e77b6af12"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:49e3772eb3380ac88d35495843daf3c03f094b713e66c7d017e322144a5c6b7c"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:618827c1a1c243d2540314c6e100aee7af09a709bd005bae971686fab6723554"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de9acf369aaadb71a725b7e83a5ef40ca3de1cf4cdc93fa847df6b12d3cd924b"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-win32.whl", hash = "sha256:763bd97c4ebc74136ecf3526b34808c58945023a59927b416acebcd68d1fc126"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-win_amd64.whl", hash = "sha256:f12aaf94f4d9679ca475975578739e12cc5b461172e04d66f7a3c39dd14ffc64"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:853fcfd1f54224ea7aabcf34b227d2b64a08cbac116ecf376907968b29b8e763"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f98dbb8fcc6d1c03ae8ec735d3c62110949a3b8bc6e215053aa27096857afb45"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e135fff2e84103bc15c07edd8569612ce317d64bdb391f49ce57124a73f45c5"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5b5de6af8852500d01398f5047d62ca3431d1e29a331d0b56c3e14cb03f8094c"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3491c85df263a5c2157c594f54a1a9c72265b75d3777e61ee13c556d9e43ffc9"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-win32.whl", hash = "sha256:427c282dd0deba1f07bcbf499cbcc9fe9a626743f5d4989bfdfd3ed3513003dd"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-win_amd64.whl", hash = "sha256:ca5ce82b11731492204cff8845c5e8ca1a4bd1ade85e3b8fcf86e7601bfc6a39"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:29d4247313abb2015f8979137fe65f4eaceead5247d39603cc4b4a610936cd2b"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a752bff4796bf22803d052d4841ebc3c55c26fb65551f2c96e90ac7c62be763a"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7ea11727feb2861deaa293c7971a4df57ef1c90e42cb53f0da40c3468388000"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d913f8953e098ca931ad7f58797f91deed26b435ec3756478b75c608aa80d139"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a251146b921725547ea1735b060a11e1be705017b568c9f8067ca61e6ef85f20"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-win32.whl", hash = "sha256:1f8e1c6a6b7f8e9407ad9afc0ea41c1f65225ce505b79bc0342159de9c890782"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-win_amd64.whl", hash = "sha256:346ed50cb2c30f5d7a03d888e25744154ceac6f0e6e1ab3bc7b5b77138d37710"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:4dae6001457d4497736e3bc422165f107ecdd70b0d651fab7f731276e8b9e12d"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5d2e08d79f5bf250afb4a61426b41026e448da446b55e4770c2afdc1e200fce"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bbce5dd7c7735e01d24f5a60177f3e589078f83c8a29e124a6521b76d825b85"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bdb7b4d889631a3b2a81a3347c4c3f031812eb4adeaa3ee4e6b0d028ad1852b5"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c294ae4e6bbd060dd79e2bd5bba8b6274d08ffd65b58d106394cb6abbf35cf45"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-win32.whl", hash = "sha256:bcdfb4b47fe04967669874fb1ce782a006756fdbebe7263f6a000e1db969120e"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-win_amd64.whl", hash = "sha256:7d0dbc56cb6af5088f3658982d3d8c1d6a82691f31f7b0da682c7b98fa914e91"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:a551d5f3dc63f096ed41775ceec72fdf91462bb95abdc179010dc95a93957800"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ab773f9ad848118df7a9bbabca53e3f1002387cdbb6ee81693db808b82aaab0"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2de46f5d5396d5331127cfa71f837cca945f9a2b04f7cb5a01949cf676db7d1"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7027be7930a90d18a386b25ee8af30514c61f3852c7268899f23fdfbd3107181"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99224d621affbb3c1a4f72b631f8393045f4ce647dd3262f12fe3576918f8bf3"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-win32.whl", hash = "sha256:c124912fd4e1bb9d1e7dc193ed482a9f812769cb1e69363ab68e01801e859821"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-win_amd64.whl", hash = "sha256:2c286fab42e49db23c46ab02479f328b8bdb837d3e281cae546cc4085c83b680"}, + {file = "SQLAlchemy-1.4.52.tar.gz", hash = "sha256:80e63bbdc5217dad3485059bdf6f65a7d43f33c8bde619df5c220edf03d87296"}, +] + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\")"} + +[package.extras] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)", "sqlalchemy2-stubs"] +mysql = ["mysqlclient (>=1.4.0)", "mysqlclient (>=1.4.0,<2)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=7)", "cx_oracle (>=7,<8)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +pymysql = ["pymysql", "pymysql (<1)"] +sqlcipher = ["sqlcipher3_binary"] + +[[package]] +name = "stack-data" +version = "0.6.3" +description = "Extract data from python stack frames and tracebacks for informative displays" +optional = false +python-versions = "*" +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + +[[package]] +name = "terminado" +version = "0.18.1" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, + {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, +] + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] + +[[package]] +name = "tinycss2" +version = "1.3.0" +description = "A tiny CSS parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tinycss2-1.3.0-py3-none-any.whl", hash = "sha256:54a8dbdffb334d536851be0226030e9505965bb2f30f21a4a82c55fb2a80fae7"}, + {file = "tinycss2-1.3.0.tar.gz", hash = "sha256:152f9acabd296a8375fbca5b84c961ff95971fcfc32e79550c8df8e29118c54d"}, +] + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["pytest", "ruff"] + +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] + +[[package]] +name = "toolz" +version = "0.12.1" +description = "List processing tools and functional utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "toolz-0.12.1-py3-none-any.whl", hash = "sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85"}, + {file = "toolz-0.12.1.tar.gz", hash = "sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"}, +] + +[[package]] +name = "tornado" +version = "6.4.1" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">=3.8" +files = [ + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"}, + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"}, + {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"}, + {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"}, + {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"}, +] + +[[package]] +name = "tqdm" +version = "4.66.4" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tqdm-4.66.4-py3-none-any.whl", hash = "sha256:b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644"}, + {file = "tqdm-4.66.4.tar.gz", hash = "sha256:e4d936c9de8727928f3be6079590e97d9abfe8d39a590be678eb5919ffc186bb"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "traitlets" +version = "5.14.3" +description = "Traitlets Python configuration system" +optional = false +python-versions = ">=3.8" +files = [ + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, +] + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] + +[[package]] +name = "typeguard" +version = "2.13.3" +description = "Run-time type checker for Python" +optional = false +python-versions = ">=3.5.3" +files = [ + {file = "typeguard-2.13.3-py3-none-any.whl", hash = "sha256:5e3e3be01e887e7eafae5af63d1f36c849aaa94e3a0112097312aabfa16284f1"}, + {file = "typeguard-2.13.3.tar.gz", hash = "sha256:00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4"}, +] + +[package.extras] +doc = ["sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["mypy", "pytest", "typing-extensions"] + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20240316" +description = "Typing stubs for python-dateutil" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-python-dateutil-2.9.0.20240316.tar.gz", hash = "sha256:5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202"}, + {file = "types_python_dateutil-2.9.0.20240316-py3-none-any.whl", hash = "sha256:6b8cb66d960771ce5ff974e9dd45e38facb81718cc1e208b10b1baccbfdbee3b"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "tzdata" +version = "2024.1" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +description = "RFC 6570 URI Template Processor" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, +] + +[package.extras] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] + +[[package]] +name = "urllib3" +version = "2.2.1" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "wcwidth" +version = "0.2.13" +description = "Measures the displayed width of unicode strings in a terminal" +optional = false +python-versions = "*" +files = [ + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, +] + +[[package]] +name = "webcolors" +version = "24.6.0" +description = "A library for working with the color formats defined by HTML and CSS." +optional = false +python-versions = ">=3.8" +files = [ + {file = "webcolors-24.6.0-py3-none-any.whl", hash = "sha256:8cf5bc7e28defd1d48b9e83d5fc30741328305a8195c29a8e668fa45586568a1"}, + {file = "webcolors-24.6.0.tar.gz", hash = "sha256:1d160d1de46b3e81e58d0a280d0c78b467dc80f47294b91b1ad8029d2cedb55b"}, +] + +[package.extras] +docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] +tests = ["coverage[toml]"] + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websocket-client" +version = "1.8.0" +description = "WebSocket client for Python with low level API options" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, + {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, +] + +[package.extras] +docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[[package]] +name = "wheel" +version = "0.43.0" +description = "A built-package format for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "wheel-0.43.0-py3-none-any.whl", hash = "sha256:55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81"}, + {file = "wheel-0.43.0.tar.gz", hash = "sha256:465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85"}, +] + +[package.extras] +test = ["pytest (>=6.0.0)", "setuptools (>=65)"] + +[[package]] +name = "widgetsnbextension" +version = "3.6.6" +description = "IPython HTML widgets for Jupyter" +optional = false +python-versions = "*" +files = [ + {file = "widgetsnbextension-3.6.6-py2.py3-none-any.whl", hash = "sha256:e7fb9999845affc9024ecfbe0a824dd8e633403d027b28ceadab398b633ad51c"}, + {file = "widgetsnbextension-3.6.6.tar.gz", hash = "sha256:46f4e3cb2d451bbd6141a13696d6ba17c9b5f50645dca9cfd26fe9644d5a00e1"}, +] + +[package.dependencies] +notebook = ">=4.4.1" + +[[package]] +name = "xarray" +version = "2022.9.0" +description = "N-D labeled arrays and datasets in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "xarray-2022.9.0-py3-none-any.whl", hash = "sha256:baa7c1a9135198435a2cfb2c68e8b1fdd100d8a44ddaece6031116f585734da7"}, + {file = "xarray-2022.9.0.tar.gz", hash = "sha256:a2a5b48ec0a3890b71ef48853fe9d5107d2f75452722f319cb8ed6ff8e72e883"}, +] + +[package.dependencies] +numpy = ">=1.19" +packaging = ">=20.0" +pandas = ">=1.2" + +[package.extras] +accel = ["bottleneck", "flox", "numbagg", "scipy"] +complete = ["bottleneck", "cfgrib", "cftime", "dask[complete]", "flox", "fsspec", "h5netcdf", "matplotlib", "nc-time-axis", "netCDF4", "numbagg", "pooch", "pydap", "rasterio", "scipy", "seaborn", "zarr"] +docs = ["bottleneck", "cfgrib", "cftime", "dask[complete]", "flox", "fsspec", "h5netcdf", "ipykernel", "ipython", "jupyter-client", "matplotlib", "nbsphinx", "nc-time-axis", "netCDF4", "numbagg", "pooch", "pydap", "rasterio", "scanpydoc", "scipy", "seaborn", "sphinx-autosummary-accessors", "sphinx-rtd-theme", "zarr"] +io = ["cfgrib", "cftime", "fsspec", "h5netcdf", "netCDF4", "pooch", "pydap", "rasterio", "scipy", "zarr"] +parallel = ["dask[complete]"] +viz = ["matplotlib", "nc-time-axis", "seaborn"] + +[[package]] +name = "xarray-einstats" +version = "0.7.0" +description = "Stats, linear algebra and einops for xarray" +optional = false +python-versions = ">=3.9" +files = [ + {file = "xarray_einstats-0.7.0-py3-none-any.whl", hash = "sha256:f39403341ebf5b634ab1f1bd0e1bb2dc51046e0df31aa908dfbe2fa6a493712e"}, + {file = "xarray_einstats-0.7.0.tar.gz", hash = "sha256:2d7b571b3bbad3cf2fd10c6c75fd949d247d14c29574184c8489d9d607278d38"}, +] + +[package.dependencies] +numpy = ">=1.22" +scipy = ">=1.8" +xarray = ">=2022.09.0" + +[package.extras] +doc = ["furo", "jupyter-sphinx", "matplotlib", "myst-nb", "myst-parser[linkify]", "numpydoc", "sphinx (>=5)", "sphinx-copybutton", "sphinx-design", "sphinx-togglebutton", "watermark"] +einops = ["einops"] +numba = ["numba (>=0.55)"] +test = ["hypothesis", "packaging", "pytest", "pytest-cov"] + +[[package]] +name = "xlsxwriter" +version = "1.4.5" +description = "A Python module for creating Excel XLSX files." +optional = false +python-versions = "*" +files = [ + {file = "XlsxWriter-1.4.5-py2.py3-none-any.whl", hash = "sha256:f9335f1736e2c4fd80e940fe1b6d92d967bf454a1e5d639b0b7a4459ade790cc"}, + {file = "XlsxWriter-1.4.5.tar.gz", hash = "sha256:0956747859567ec01907e561a7d8413de18a7aae36860f979f9da52b9d58bc19"}, +] + +[[package]] +name = "zipp" +version = "3.19.2" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, + {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, +] + +[package.extras] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.11" +content-hash = "1d4252501e2f94d66e6efff363c91149a47c19134dfc50fd77f39357780b420b" diff --git a/pyproject.toml b/pyproject.toml index e4589f39..1201f570 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,7 +18,7 @@ pytest = "^6.2.1" python-dateutil = "^2.8.1" pytz = "^2020.5" scipy = "^1.6.0" -seaborn = "^0.11.1" +seaborn = "^0.13" six = "^1.15.0" toml = "^0.10.2" typing-extensions = "^4" @@ -27,10 +27,12 @@ sphinx-rtd-theme = "^0.4" myst-nb = "^0.13.1" autograd = "^1.3" jax = "^0.4" -equinox = "^0.9" +equinox = "^0.11" numpyro = "^0.14" arviz = "^0.13" optax = "^0.1" +matplotlib = "^3.9" + [tool.black] line-length = 120 From 99f8253335c41999e9393f9f2df49f03fa1dc0b7 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Mon, 10 Jun 2024 16:45:36 +0200 Subject: [PATCH 015/196] add a pyproject toml --- pyproject.toml | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..e4589f39 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,40 @@ +[tool.poetry] +name = "pymdp" +version = "0.1.0" +description = "" +authors = ["Your Name "] +license = "MIT" +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.11" +openpyxl = "^3.0.7" +packaging = "^20.8" +Pillow = "^8.2.0" +pluggy = "^0.13.1" +py = "^1.10.0" +pyparsing = "^2.4.7" +pytest = "^6.2.1" +python-dateutil = "^2.8.1" +pytz = "^2020.5" +scipy = "^1.6.0" +seaborn = "^0.11.1" +six = "^1.15.0" +toml = "^0.10.2" +typing-extensions = "^4" +xlsxwriter = "^1.4.3" +sphinx-rtd-theme = "^0.4" +myst-nb = "^0.13.1" +autograd = "^1.3" +jax = "^0.4" +equinox = "^0.9" +numpyro = "^0.14" +arviz = "^0.13" +optax = "^0.1" + +[tool.black] +line-length = 120 + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" From a975e7d0479bef858b06b2f791ae1a28cbd1b8d4 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Mon, 10 Jun 2024 17:28:16 +0200 Subject: [PATCH 016/196] get a version that passes all tests --- poetry.lock | 3841 ++++++++++++++++++++++++++++++++++++++++++++++++ pyproject.toml | 6 +- 2 files changed, 3845 insertions(+), 2 deletions(-) create mode 100644 poetry.lock diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 00000000..322a9a78 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,3841 @@ +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. + +[[package]] +name = "absl-py" +version = "2.1.0" +description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py." +optional = false +python-versions = ">=3.7" +files = [ + {file = "absl-py-2.1.0.tar.gz", hash = "sha256:7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff"}, + {file = "absl_py-2.1.0-py3-none-any.whl", hash = "sha256:526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308"}, +] + +[[package]] +name = "alabaster" +version = "0.7.16" +description = "A light, configurable Sphinx theme" +optional = false +python-versions = ">=3.9" +files = [ + {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, + {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, +] + +[[package]] +name = "anyio" +version = "4.4.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.8" +files = [ + {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, + {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, +] + +[package.dependencies] +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] + +[[package]] +name = "appnope" +version = "0.1.4" +description = "Disable App Nap on macOS >= 10.9" +optional = false +python-versions = ">=3.6" +files = [ + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, +] + +[[package]] +name = "argon2-cffi" +version = "23.1.0" +description = "Argon2 for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, + {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, +] + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["argon2-cffi[tests,typing]", "tox (>4)"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] +tests = ["hypothesis", "pytest"] +typing = ["mypy"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +optional = false +python-versions = ">=3.6" +files = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "arrow" +version = "1.3.0" +description = "Better dates & times for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, + {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, +] + +[package.dependencies] +python-dateutil = ">=2.7.0" +types-python-dateutil = ">=2.8.10" + +[package.extras] +doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] +test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] + +[[package]] +name = "arviz" +version = "0.13.0" +description = "Exploratory analysis of Bayesian models" +optional = false +python-versions = ">=3.8" +files = [ + {file = "arviz-0.13.0-py3-none-any.whl", hash = "sha256:c96c23726bd458f0266d2713ff728b4f7fcd306f0cbfa6399b6ede5139325b48"}, + {file = "arviz-0.13.0.tar.gz", hash = "sha256:65816761fd2a864e5da08c8663adf7260cd8c904933a88f3b86f2c1ed7510d5e"}, +] + +[package.dependencies] +matplotlib = ">=3.5" +netcdf4 = "*" +numpy = ">=1.20.0" +packaging = "*" +pandas = ">=1.4.0" +scipy = ">=1.8.0" +setuptools = ">=60.0.0" +typing-extensions = ">=4.1.0" +xarray = ">=0.21.0" +xarray-einstats = ">=0.3" + +[package.extras] +all = ["bokeh (>=1.4.0,<3.0)", "contourpy", "dask[distributed]", "numba", "ujson", "zarr (>=2.5.0)"] + +[[package]] +name = "asttokens" +version = "2.4.1" +description = "Annotate AST trees with source code positions" +optional = false +python-versions = "*" +files = [ + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, +] + +[package.dependencies] +six = ">=1.12.0" + +[package.extras] +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] + +[[package]] +name = "atomicwrites" +version = "1.4.1" +description = "Atomic file writes." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, +] + +[[package]] +name = "attrs" +version = "21.4.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, + {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, +] + +[package.extras] +dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six", "sphinx", "sphinx-notfound-page", "zope.interface"] +docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] +tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six", "zope.interface"] +tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six"] + +[[package]] +name = "autograd" +version = "1.6.2" +description = "Efficiently computes derivatives of numpy code." +optional = false +python-versions = "*" +files = [ + {file = "autograd-1.6.2-py3-none-any.whl", hash = "sha256:208dde2a938e63b4f8f5049b1985505139e529068b0d26f8cd7771fd3eb145d5"}, + {file = "autograd-1.6.2.tar.gz", hash = "sha256:8731e08a0c4e389d8695a40072ada4512641c113b6cace8f4cfbe8eb7e9aedeb"}, +] + +[package.dependencies] +future = ">=0.15.2" +numpy = ">=1.12" + +[[package]] +name = "babel" +version = "2.15.0" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, + {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, +] + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "bleach" +version = "6.1.0" +description = "An easy safelist-based HTML-sanitizing tool." +optional = false +python-versions = ">=3.8" +files = [ + {file = "bleach-6.1.0-py3-none-any.whl", hash = "sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6"}, + {file = "bleach-6.1.0.tar.gz", hash = "sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe"}, +] + +[package.dependencies] +six = ">=1.9.0" +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.3)"] + +[[package]] +name = "certifi" +version = "2024.6.2" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"}, + {file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"}, +] + +[[package]] +name = "cffi" +version = "1.16.0" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "cftime" +version = "1.6.4" +description = "Time-handling functionality from netcdf4-python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cftime-1.6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ee70074df4bae0d9ee98f201cf5f11fd302791cf1cdeb73c34f685d6b632e17d"}, + {file = "cftime-1.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e5456fd58d4cc6b8d7b4932b749617ee142b62a52bc5d8e3c282ce69ce3a20ba"}, + {file = "cftime-1.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1289e08617be350a6b26c6e4352a0cb088625ac33d25e95110df549c26d6ab8e"}, + {file = "cftime-1.6.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18b132d9225b4a109929866200846c72302316db9069e2de3ec8d8ec377f567f"}, + {file = "cftime-1.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ca1a264570e68fbb611bba251641b8efd0cf88c0ad2dcab5fa784df264232b75"}, + {file = "cftime-1.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:6fc82928cbf477bebf233f41914e64bff7b9e894c7f0c34170784a48250f8da7"}, + {file = "cftime-1.6.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c1558d9b477bd29626cd8bfc89e736635f72887d1a993e2834ab579bba7abb8c"}, + {file = "cftime-1.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:03494e7b66a2fbb6b04e364ab67185130dee0ced660abac5c1559070571d143d"}, + {file = "cftime-1.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dcb2a01d4e614437582af33b36db4fb441b7666758482864827a1f037d2b639"}, + {file = "cftime-1.6.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b47bf25195fb3889bbae34df0e80957eb69c48f66902f5d538c7a8ec34253f6"}, + {file = "cftime-1.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d4f2cc0d5c6ffba9c5b0fd1ecd0c7c1c426d0be7b8de1480e2a9fb857c1905e9"}, + {file = "cftime-1.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:76b8f1e5d1e424accdf760a43e0a1793a7b640bab83cb067273d5c9dbb336c44"}, + {file = "cftime-1.6.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c349a91fa7ac9ec50118b04a8746bdea967bd2fc525d87c776003040b8d3392"}, + {file = "cftime-1.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:588d073400798adc24ece759cd1cb24ef730f55d1f70e31a898e7686f9d763d8"}, + {file = "cftime-1.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e07b91b488570573bbeb6f815656a8974d13d15b2279c82de2927f4f692bbcd"}, + {file = "cftime-1.6.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f92f2e405eeda47b30ab6231d8b7d136a55f21034d394f93ade322d356948654"}, + {file = "cftime-1.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:567574df94d0de1101bb5da76e7fbc6eabfddeeb2eb8cf83286b3599a136bbf7"}, + {file = "cftime-1.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:5b5ad7559a16bedadb66af8e417b6805f758acb57aa38d2730844dfc63a1e667"}, + {file = "cftime-1.6.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c072fe9e09925af66a9473edf5752ca1890ba752e7c1935d1f0245ad48f0977c"}, + {file = "cftime-1.6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c05a71389f53d6340cb365b60f028c08268c72401660b9ef76108dee9f1cb5b2"}, + {file = "cftime-1.6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0edeb1cb019d8155b2513cffb96749c0d7d459370e69bdf03077e0bee214aed8"}, + {file = "cftime-1.6.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f05d5d6bb4137f9783fa61ad330030fcea8dcc6946dea69a27774edbe480e7"}, + {file = "cftime-1.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:b32ac1278a2a111b066d5a1e6e5ce6f38c4c505993a6a3130873b56f99d7b56f"}, + {file = "cftime-1.6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c20f03e12af39534c3450bba376272803bfb850b5ce6433c839bfaa99f8d835a"}, + {file = "cftime-1.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:90609b3c1a31a756a68ecdbc961a4ce0b22c1620f166c8dabfa3a4c337ac8b9e"}, + {file = "cftime-1.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbe11ad73b2a0ddc79995da21459fc2a3fd6b1593ca73f00a60e4d81c3e230f3"}, + {file = "cftime-1.6.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25f043703e785de0bd7cd8222c0a53317e9aeb3dfc062588b05e6f3ebb007468"}, + {file = "cftime-1.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f9acc272df1022f24fe7dbe9de43fa5d8271985161df14549e4d8d28c90dc9ea"}, + {file = "cftime-1.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:e8467b6fbf8dbfe0be8c04d61180765fdd3b9ab0fe51313a0bbf87e63634a3d8"}, + {file = "cftime-1.6.4.tar.gz", hash = "sha256:e325406193758a7ed67308deb52e727782a19e384e183378e7ff62098be0aedc"}, +] + +[package.dependencies] +numpy = [ + {version = ">1.13.3", markers = "python_version < \"3.12.0.rc1\""}, + {version = ">=1.26.0b1", markers = "python_version >= \"3.12.0.rc1\""}, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "chex" +version = "0.1.86" +description = "Chex: Testing made fun, in JAX!" +optional = false +python-versions = ">=3.9" +files = [ + {file = "chex-0.1.86-py3-none-any.whl", hash = "sha256:251c20821092323a3d9c28e1cf80e4a58180978bec368f531949bd9847eee568"}, + {file = "chex-0.1.86.tar.gz", hash = "sha256:e8b0f96330eba4144659e1617c0f7a57b161e8cbb021e55c6d5056c7378091d1"}, +] + +[package.dependencies] +absl-py = ">=0.9.0" +jax = ">=0.4.16" +jaxlib = ">=0.1.37" +numpy = ">=1.24.1" +setuptools = {version = "*", markers = "python_version >= \"3.12\""} +toolz = ">=0.9.0" +typing-extensions = ">=4.2.0" + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "comm" +version = "0.2.2" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +optional = false +python-versions = ">=3.8" +files = [ + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, +] + +[package.dependencies] +traitlets = ">=4" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "contourpy" +version = "1.2.1" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.9" +files = [ + {file = "contourpy-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd7c23df857d488f418439686d3b10ae2fbf9bc256cd045b37a8c16575ea1040"}, + {file = "contourpy-1.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5b9eb0ca724a241683c9685a484da9d35c872fd42756574a7cfbf58af26677fd"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c75507d0a55378240f781599c30e7776674dbaf883a46d1c90f37e563453480"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11959f0ce4a6f7b76ec578576a0b61a28bdc0696194b6347ba3f1c53827178b9"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eb3315a8a236ee19b6df481fc5f997436e8ade24a9f03dfdc6bd490fea20c6da"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39f3ecaf76cd98e802f094e0d4fbc6dc9c45a8d0c4d185f0f6c2234e14e5f75b"}, + {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:94b34f32646ca0414237168d68a9157cb3889f06b096612afdd296003fdd32fd"}, + {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:457499c79fa84593f22454bbd27670227874cd2ff5d6c84e60575c8b50a69619"}, + {file = "contourpy-1.2.1-cp310-cp310-win32.whl", hash = "sha256:ac58bdee53cbeba2ecad824fa8159493f0bf3b8ea4e93feb06c9a465d6c87da8"}, + {file = "contourpy-1.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:9cffe0f850e89d7c0012a1fb8730f75edd4320a0a731ed0c183904fe6ecfc3a9"}, + {file = "contourpy-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6022cecf8f44e36af10bd9118ca71f371078b4c168b6e0fab43d4a889985dbb5"}, + {file = "contourpy-1.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ef5adb9a3b1d0c645ff694f9bca7702ec2c70f4d734f9922ea34de02294fdf72"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6150ffa5c767bc6332df27157d95442c379b7dce3a38dff89c0f39b63275696f"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c863140fafc615c14a4bf4efd0f4425c02230eb8ef02784c9a156461e62c965"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00e5388f71c1a0610e6fe56b5c44ab7ba14165cdd6d695429c5cd94021e390b2"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4492d82b3bc7fbb7e3610747b159869468079fe149ec5c4d771fa1f614a14df"}, + {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:49e70d111fee47284d9dd867c9bb9a7058a3c617274900780c43e38d90fe1205"}, + {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b59c0ffceff8d4d3996a45f2bb6f4c207f94684a96bf3d9728dbb77428dd8cb8"}, + {file = "contourpy-1.2.1-cp311-cp311-win32.whl", hash = "sha256:7b4182299f251060996af5249c286bae9361fa8c6a9cda5efc29fe8bfd6062ec"}, + {file = "contourpy-1.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2855c8b0b55958265e8b5888d6a615ba02883b225f2227461aa9127c578a4922"}, + {file = "contourpy-1.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:62828cada4a2b850dbef89c81f5a33741898b305db244904de418cc957ff05dc"}, + {file = "contourpy-1.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:309be79c0a354afff9ff7da4aaed7c3257e77edf6c1b448a779329431ee79d7e"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e785e0f2ef0d567099b9ff92cbfb958d71c2d5b9259981cd9bee81bd194c9a4"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cac0a8f71a041aa587410424ad46dfa6a11f6149ceb219ce7dd48f6b02b87a7"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af3f4485884750dddd9c25cb7e3915d83c2db92488b38ccb77dd594eac84c4a0"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ce6889abac9a42afd07a562c2d6d4b2b7134f83f18571d859b25624a331c90b"}, + {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a1eea9aecf761c661d096d39ed9026574de8adb2ae1c5bd7b33558af884fb2ce"}, + {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:187fa1d4c6acc06adb0fae5544c59898ad781409e61a926ac7e84b8f276dcef4"}, + {file = "contourpy-1.2.1-cp312-cp312-win32.whl", hash = "sha256:c2528d60e398c7c4c799d56f907664673a807635b857df18f7ae64d3e6ce2d9f"}, + {file = "contourpy-1.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:1a07fc092a4088ee952ddae19a2b2a85757b923217b7eed584fdf25f53a6e7ce"}, + {file = "contourpy-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bb6834cbd983b19f06908b45bfc2dad6ac9479ae04abe923a275b5f48f1a186b"}, + {file = "contourpy-1.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1d59e739ab0e3520e62a26c60707cc3ab0365d2f8fecea74bfe4de72dc56388f"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd3db01f59fdcbce5b22afad19e390260d6d0222f35a1023d9adc5690a889364"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a12a813949e5066148712a0626895c26b2578874e4cc63160bb007e6df3436fe"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe0ccca550bb8e5abc22f530ec0466136379c01321fd94f30a22231e8a48d985"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1d59258c3c67c865435d8fbeb35f8c59b8bef3d6f46c1f29f6123556af28445"}, + {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f32c38afb74bd98ce26de7cc74a67b40afb7b05aae7b42924ea990d51e4dac02"}, + {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d31a63bc6e6d87f77d71e1abbd7387ab817a66733734883d1fc0021ed9bfa083"}, + {file = "contourpy-1.2.1-cp39-cp39-win32.whl", hash = "sha256:ddcb8581510311e13421b1f544403c16e901c4e8f09083c881fab2be80ee31ba"}, + {file = "contourpy-1.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:10a37ae557aabf2509c79715cd20b62e4c7c28b8cd62dd7d99e5ed3ce28c3fd9"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a31f94983fecbac95e58388210427d68cd30fe8a36927980fab9c20062645609"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef2b055471c0eb466033760a521efb9d8a32b99ab907fc8358481a1dd29e3bd3"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b33d2bc4f69caedcd0a275329eb2198f560b325605810895627be5d4b876bf7f"}, + {file = "contourpy-1.2.1.tar.gz", hash = "sha256:4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c"}, +] + +[package.dependencies] +numpy = ">=1.20" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.8.0)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] + +[[package]] +name = "cycler" +version = "0.12.1" +description = "Composable style cycles" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, +] + +[package.extras] +docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] +tests = ["pytest", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "debugpy" +version = "1.8.1" +description = "An implementation of the Debug Adapter Protocol for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"}, + {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"}, + {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"}, + {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"}, + {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"}, + {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"}, + {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"}, + {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"}, + {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"}, + {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"}, + {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"}, + {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"}, + {file = "debugpy-1.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39"}, + {file = "debugpy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7"}, + {file = "debugpy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9"}, + {file = "debugpy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234"}, + {file = "debugpy-1.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42"}, + {file = "debugpy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703"}, + {file = "debugpy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23"}, + {file = "debugpy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3"}, + {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"}, + {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"}, +] + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +optional = false +python-versions = ">=3.5" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + +[[package]] +name = "docutils" +version = "0.17.1" +description = "Docutils -- Python Documentation Utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, + {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, +] + +[[package]] +name = "entrypoints" +version = "0.4" +description = "Discover and load entry points from installed packages." +optional = false +python-versions = ">=3.6" +files = [ + {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, + {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, +] + +[[package]] +name = "equinox" +version = "0.11.4" +description = "Elegant easy-to-use neural networks in JAX." +optional = false +python-versions = "~=3.9" +files = [ + {file = "equinox-0.11.4-py3-none-any.whl", hash = "sha256:a9527b1fe0c4778c3c959d9091b1eea28c3fdcca01790a47e71b47df94889315"}, + {file = "equinox-0.11.4.tar.gz", hash = "sha256:0033d9731083f402a855b12a0777a80aa8507651f7aa86d9f0f9503bcddfd320"}, +] + +[package.dependencies] +jax = ">=0.4.13" +jaxtyping = ">=0.2.20" +typing-extensions = ">=4.5.0" + +[[package]] +name = "et-xmlfile" +version = "1.1.0" +description = "An implementation of lxml.xmlfile for the standard library" +optional = false +python-versions = ">=3.6" +files = [ + {file = "et_xmlfile-1.1.0-py3-none-any.whl", hash = "sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada"}, + {file = "et_xmlfile-1.1.0.tar.gz", hash = "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"}, +] + +[[package]] +name = "executing" +version = "2.0.1" +description = "Get the currently executing AST node of a frame, and other information" +optional = false +python-versions = ">=3.5" +files = [ + {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, + {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, +] + +[package.extras] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] + +[[package]] +name = "fastjsonschema" +version = "2.19.1" +description = "Fastest Python implementation of JSON schema" +optional = false +python-versions = "*" +files = [ + {file = "fastjsonschema-2.19.1-py3-none-any.whl", hash = "sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0"}, + {file = "fastjsonschema-2.19.1.tar.gz", hash = "sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d"}, +] + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "fonttools" +version = "4.53.0" +description = "Tools to manipulate font files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fonttools-4.53.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:52a6e0a7a0bf611c19bc8ec8f7592bdae79c8296c70eb05917fd831354699b20"}, + {file = "fonttools-4.53.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:099634631b9dd271d4a835d2b2a9e042ccc94ecdf7e2dd9f7f34f7daf333358d"}, + {file = "fonttools-4.53.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e40013572bfb843d6794a3ce076c29ef4efd15937ab833f520117f8eccc84fd6"}, + {file = "fonttools-4.53.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:715b41c3e231f7334cbe79dfc698213dcb7211520ec7a3bc2ba20c8515e8a3b5"}, + {file = "fonttools-4.53.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74ae2441731a05b44d5988d3ac2cf784d3ee0a535dbed257cbfff4be8bb49eb9"}, + {file = "fonttools-4.53.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:95db0c6581a54b47c30860d013977b8a14febc206c8b5ff562f9fe32738a8aca"}, + {file = "fonttools-4.53.0-cp310-cp310-win32.whl", hash = "sha256:9cd7a6beec6495d1dffb1033d50a3f82dfece23e9eb3c20cd3c2444d27514068"}, + {file = "fonttools-4.53.0-cp310-cp310-win_amd64.whl", hash = "sha256:daaef7390e632283051e3cf3e16aff2b68b247e99aea916f64e578c0449c9c68"}, + {file = "fonttools-4.53.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a209d2e624ba492df4f3bfad5996d1f76f03069c6133c60cd04f9a9e715595ec"}, + {file = "fonttools-4.53.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4f520d9ac5b938e6494f58a25c77564beca7d0199ecf726e1bd3d56872c59749"}, + {file = "fonttools-4.53.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eceef49f457253000e6a2d0f7bd08ff4e9fe96ec4ffce2dbcb32e34d9c1b8161"}, + {file = "fonttools-4.53.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa1f3e34373aa16045484b4d9d352d4c6b5f9f77ac77a178252ccbc851e8b2ee"}, + {file = "fonttools-4.53.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:28d072169fe8275fb1a0d35e3233f6df36a7e8474e56cb790a7258ad822b6fd6"}, + {file = "fonttools-4.53.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4a2a6ba400d386e904fd05db81f73bee0008af37799a7586deaa4aef8cd5971e"}, + {file = "fonttools-4.53.0-cp311-cp311-win32.whl", hash = "sha256:bb7273789f69b565d88e97e9e1da602b4ee7ba733caf35a6c2affd4334d4f005"}, + {file = "fonttools-4.53.0-cp311-cp311-win_amd64.whl", hash = "sha256:9fe9096a60113e1d755e9e6bda15ef7e03391ee0554d22829aa506cdf946f796"}, + {file = "fonttools-4.53.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d8f191a17369bd53a5557a5ee4bab91d5330ca3aefcdf17fab9a497b0e7cff7a"}, + {file = "fonttools-4.53.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:93156dd7f90ae0a1b0e8871032a07ef3178f553f0c70c386025a808f3a63b1f4"}, + {file = "fonttools-4.53.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bff98816cb144fb7b85e4b5ba3888a33b56ecef075b0e95b95bcd0a5fbf20f06"}, + {file = "fonttools-4.53.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:973d030180eca8255b1bce6ffc09ef38a05dcec0e8320cc9b7bcaa65346f341d"}, + {file = "fonttools-4.53.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c4ee5a24e281fbd8261c6ab29faa7fd9a87a12e8c0eed485b705236c65999109"}, + {file = "fonttools-4.53.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bd5bc124fae781a4422f61b98d1d7faa47985f663a64770b78f13d2c072410c2"}, + {file = "fonttools-4.53.0-cp312-cp312-win32.whl", hash = "sha256:a239afa1126b6a619130909c8404070e2b473dd2b7fc4aacacd2e763f8597fea"}, + {file = "fonttools-4.53.0-cp312-cp312-win_amd64.whl", hash = "sha256:45b4afb069039f0366a43a5d454bc54eea942bfb66b3fc3e9a2c07ef4d617380"}, + {file = "fonttools-4.53.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:93bc9e5aaa06ff928d751dc6be889ff3e7d2aa393ab873bc7f6396a99f6fbb12"}, + {file = "fonttools-4.53.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2367d47816cc9783a28645bc1dac07f8ffc93e0f015e8c9fc674a5b76a6da6e4"}, + {file = "fonttools-4.53.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:907fa0b662dd8fc1d7c661b90782ce81afb510fc4b7aa6ae7304d6c094b27bce"}, + {file = "fonttools-4.53.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e0ad3c6ea4bd6a289d958a1eb922767233f00982cf0fe42b177657c86c80a8f"}, + {file = "fonttools-4.53.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:73121a9b7ff93ada888aaee3985a88495489cc027894458cb1a736660bdfb206"}, + {file = "fonttools-4.53.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ee595d7ba9bba130b2bec555a40aafa60c26ce68ed0cf509983e0f12d88674fd"}, + {file = "fonttools-4.53.0-cp38-cp38-win32.whl", hash = "sha256:fca66d9ff2ac89b03f5aa17e0b21a97c21f3491c46b583bb131eb32c7bab33af"}, + {file = "fonttools-4.53.0-cp38-cp38-win_amd64.whl", hash = "sha256:31f0e3147375002aae30696dd1dc596636abbd22fca09d2e730ecde0baad1d6b"}, + {file = "fonttools-4.53.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7d6166192dcd925c78a91d599b48960e0a46fe565391c79fe6de481ac44d20ac"}, + {file = "fonttools-4.53.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef50ec31649fbc3acf6afd261ed89d09eb909b97cc289d80476166df8438524d"}, + {file = "fonttools-4.53.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f193f060391a455920d61684a70017ef5284ccbe6023bb056e15e5ac3de11d1"}, + {file = "fonttools-4.53.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba9f09ff17f947392a855e3455a846f9855f6cf6bec33e9a427d3c1d254c712f"}, + {file = "fonttools-4.53.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0c555e039d268445172b909b1b6bdcba42ada1cf4a60e367d68702e3f87e5f64"}, + {file = "fonttools-4.53.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5a4788036201c908079e89ae3f5399b33bf45b9ea4514913f4dbbe4fac08efe0"}, + {file = "fonttools-4.53.0-cp39-cp39-win32.whl", hash = "sha256:d1a24f51a3305362b94681120c508758a88f207fa0a681c16b5a4172e9e6c7a9"}, + {file = "fonttools-4.53.0-cp39-cp39-win_amd64.whl", hash = "sha256:1e677bfb2b4bd0e5e99e0f7283e65e47a9814b0486cb64a41adf9ef110e078f2"}, + {file = "fonttools-4.53.0-py3-none-any.whl", hash = "sha256:6b4f04b1fbc01a3569d63359f2227c89ab294550de277fd09d8fca6185669fa4"}, + {file = "fonttools-4.53.0.tar.gz", hash = "sha256:c93ed66d32de1559b6fc348838c7572d5c0ac1e4a258e76763a5caddd8944002"}, +] + +[package.extras] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["munkres", "pycairo", "scipy"] +lxml = ["lxml (>=4.0)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.23.0)"] +symfont = ["sympy"] +type1 = ["xattr"] +ufo = ["fs (>=2.2.0,<3)"] +unicode = ["unicodedata2 (>=15.1.0)"] +woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] + +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] + +[[package]] +name = "future" +version = "1.0.0" +description = "Clean single-source support for Python 3 and 2" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "future-1.0.0-py3-none-any.whl", hash = "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216"}, + {file = "future-1.0.0.tar.gz", hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05"}, +] + +[[package]] +name = "gitdb" +version = "4.0.11" +description = "Git Object Database" +optional = false +python-versions = ">=3.7" +files = [ + {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, + {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, +] + +[package.dependencies] +smmap = ">=3.0.1,<6" + +[[package]] +name = "gitpython" +version = "3.1.43" +description = "GitPython is a Python library used to interact with Git repositories" +optional = false +python-versions = ">=3.7" +files = [ + {file = "GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff"}, + {file = "GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c"}, +] + +[package.dependencies] +gitdb = ">=4.0.1,<5" + +[package.extras] +doc = ["sphinx (==4.3.2)", "sphinx-autodoc-typehints", "sphinx-rtd-theme", "sphinxcontrib-applehelp (>=1.0.2,<=1.0.4)", "sphinxcontrib-devhelp (==1.0.2)", "sphinxcontrib-htmlhelp (>=2.0.0,<=2.0.1)", "sphinxcontrib-qthelp (==1.0.3)", "sphinxcontrib-serializinghtml (==1.1.5)"] +test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions"] + +[[package]] +name = "greenlet" +version = "3.0.3" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.7" +files = [ + {file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405"}, + {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f"}, + {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb"}, + {file = "greenlet-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9"}, + {file = "greenlet-3.0.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22"}, + {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3"}, + {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d"}, + {file = "greenlet-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728"}, + {file = "greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf"}, + {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305"}, + {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6"}, + {file = "greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2"}, + {file = "greenlet-3.0.3-cp37-cp37m-macosx_11_0_universal2.whl", hash = "sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41"}, + {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7"}, + {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6"}, + {file = "greenlet-3.0.3-cp37-cp37m-win32.whl", hash = "sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d"}, + {file = "greenlet-3.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67"}, + {file = "greenlet-3.0.3-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4"}, + {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5"}, + {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da"}, + {file = "greenlet-3.0.3-cp38-cp38-win32.whl", hash = "sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3"}, + {file = "greenlet-3.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf"}, + {file = "greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b"}, + {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6"}, + {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113"}, + {file = "greenlet-3.0.3-cp39-cp39-win32.whl", hash = "sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e"}, + {file = "greenlet-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067"}, + {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil"] + +[[package]] +name = "idna" +version = "3.7" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, +] + +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] + +[[package]] +name = "importlib-metadata" +version = "7.1.0" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"}, + {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"}, +] + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +perf = ["ipython"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "ipykernel" +version = "6.29.4" +description = "IPython Kernel for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.29.4-py3-none-any.whl", hash = "sha256:1181e653d95c6808039c509ef8e67c4126b3b3af7781496c7cbfb5ed938a27da"}, + {file = "ipykernel-6.29.4.tar.gz", hash = "sha256:3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=24" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.25.0" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.10" +files = [ + {file = "ipython-8.25.0-py3-none-any.whl", hash = "sha256:53eee7ad44df903a06655871cbab66d156a051fd86f3ec6750470ac9604ac1ab"}, + {file = "ipython-8.25.0.tar.gz", hash = "sha256:c6ed726a140b6e725b911528f80439c534fac915246af3efc39440a6b0f9d716"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} +prompt-toolkit = ">=3.0.41,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5.13.0" +typing-extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} + +[package.extras] +all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"] +black = ["black"] +doc = ["docrepr", "exceptiongroup", "intersphinx-registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing-extensions"] +kernel = ["ipykernel"] +matplotlib = ["matplotlib"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "ipython[test]", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"] + +[[package]] +name = "ipython-genutils" +version = "0.2.0" +description = "Vestigial utilities from IPython" +optional = false +python-versions = "*" +files = [ + {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, + {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, +] + +[[package]] +name = "ipywidgets" +version = "7.8.1" +description = "IPython HTML widgets for Jupyter" +optional = false +python-versions = "*" +files = [ + {file = "ipywidgets-7.8.1-py2.py3-none-any.whl", hash = "sha256:29f7056d368bf0a7b35d51cf0c56b58582da57c78bb9f765965fef7c332e807c"}, + {file = "ipywidgets-7.8.1.tar.gz", hash = "sha256:050b87bb9ac11641859af4c36cdb639ca072fb5e121f0f1a401f8a80f9fa008d"}, +] + +[package.dependencies] +comm = ">=0.1.3" +ipython = {version = ">=4.0.0", markers = "python_version >= \"3.3\""} +ipython-genutils = ">=0.2.0,<0.3.0" +jupyterlab-widgets = {version = ">=1.0.0,<3", markers = "python_version >= \"3.6\""} +traitlets = ">=4.3.1" +widgetsnbextension = ">=3.6.6,<3.7.0" + +[package.extras] +test = ["ipykernel", "mock", "pytest (>=3.6.0)", "pytest-cov"] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +optional = false +python-versions = ">=3.7" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] + +[package.dependencies] +arrow = ">=0.15.0" + +[[package]] +name = "jax" +version = "0.4.28" +description = "Differentiate, compile, and transform Numpy code." +optional = false +python-versions = ">=3.9" +files = [ + {file = "jax-0.4.28-py3-none-any.whl", hash = "sha256:6a181e6b5a5b1140e19cdd2d5c4aa779e4cb4ec627757b918be322d8e81035ba"}, + {file = "jax-0.4.28.tar.gz", hash = "sha256:dcf0a44aff2e1713f0a2b369281cd5b79d8c18fc1018905c4125897cb06b37e9"}, +] + +[package.dependencies] +ml-dtypes = ">=0.2.0" +numpy = [ + {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +opt-einsum = "*" +scipy = [ + {version = ">=1.9", markers = "python_version < \"3.12\""}, + {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, +] + +[package.extras] +australis = ["protobuf (>=3.13,<4)"] +ci = ["jaxlib (==0.4.27)"] +cpu = ["jaxlib (==0.4.28)"] +cuda = ["jaxlib (==0.4.28+cuda12.cudnn89)"] +cuda12 = ["jax-cuda12-plugin (==0.4.28)", "jaxlib (==0.4.28)", "nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] +cuda12-cudnn89 = ["jaxlib (==0.4.28+cuda12.cudnn89)"] +cuda12-local = ["jaxlib (==0.4.28+cuda12.cudnn89)"] +cuda12-pip = ["jaxlib (==0.4.28+cuda12.cudnn89)", "nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] +minimum-jaxlib = ["jaxlib (==0.4.27)"] +tpu = ["jaxlib (==0.4.28)", "libtpu-nightly (==0.1.dev20240508)", "requests"] + +[[package]] +name = "jaxlib" +version = "0.4.28" +description = "XLA library for JAX" +optional = false +python-versions = ">=3.9" +files = [ + {file = "jaxlib-0.4.28-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:a421d237f8c25d2850166d334603c673ddb9b6c26f52bc496704b8782297bd66"}, + {file = "jaxlib-0.4.28-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f038e68bd10d1a3554722b0bbe36e6a448384437a75aa9d283f696f0ed9f8c09"}, + {file = "jaxlib-0.4.28-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:fabe77c174e9e196e9373097cefbb67e00c7e5f9d864583a7cfcf9dabd2429b6"}, + {file = "jaxlib-0.4.28-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:e3bcdc6f8e60f8554f415c14d930134e602e3ca33c38e546274fd545f875769b"}, + {file = "jaxlib-0.4.28-cp310-cp310-win_amd64.whl", hash = "sha256:a8b31c0e5eea36b7915696b9be40ea8646edc395a3e5437bf7ef26b7239a567a"}, + {file = "jaxlib-0.4.28-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:2ff8290edc7b92c7eae52517f65492633e267b2e9067bad3e4c323d213e77cf5"}, + {file = "jaxlib-0.4.28-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:793857faf37f371cafe752fea5fc811f435e43b8fb4b502058444a7f5eccf829"}, + {file = "jaxlib-0.4.28-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:b41a6b0d506c09f86a18ecc05bd376f072b548af89c333107e49bb0c09c1a3f8"}, + {file = "jaxlib-0.4.28-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:45ce0f3c840cff8236cff26c37f26c9ff078695f93e0c162c320c281f5041275"}, + {file = "jaxlib-0.4.28-cp311-cp311-win_amd64.whl", hash = "sha256:d4d762c3971d74e610a0e85a7ee063cea81a004b365b2a7dc65133f08b04fac5"}, + {file = "jaxlib-0.4.28-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:d6c09a545329722461af056e735146d2c8c74c22ac7426a845eb69f326b4f7a0"}, + {file = "jaxlib-0.4.28-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8dd8bffe3853702f63cd924da0ee25734a4d19cd5c926be033d772ba7d1c175d"}, + {file = "jaxlib-0.4.28-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:de2e8521eb51e16e85093a42cb51a781773fa1040dcf9245d7ea160a14ee5a5b"}, + {file = "jaxlib-0.4.28-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:46a1aa857f4feee8a43fcba95c0e0ab62d40c26cc9730b6c69655908ba359f8d"}, + {file = "jaxlib-0.4.28-cp312-cp312-win_amd64.whl", hash = "sha256:eee428eac31697a070d655f1f24f6ab39ced76750d93b1de862377a52dcc2401"}, + {file = "jaxlib-0.4.28-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:4f98cc837b2b6c6dcfe0ab7ff9eb109314920946119aa3af9faa139718ff2787"}, + {file = "jaxlib-0.4.28-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b01562ec8ad75719b7d0389752489e97eb6b4dcb4c8c113be491634d5282ad3c"}, + {file = "jaxlib-0.4.28-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:aa77a9360a395ba9faf6932df637686fb0c14ddcf4fdc1d2febe04bc88a580a6"}, + {file = "jaxlib-0.4.28-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:4a56ebf05b4a4c1791699d874e072f3f808f0986b4010b14fb549a69c90ca9dc"}, + {file = "jaxlib-0.4.28-cp39-cp39-win_amd64.whl", hash = "sha256:459a4ddcc3e120904b9f13a245430d7801d707bca48925981cbdc59628057dc8"}, +] + +[package.dependencies] +ml-dtypes = ">=0.2.0" +numpy = ">=1.22" +scipy = [ + {version = ">=1.9", markers = "python_version < \"3.12\""}, + {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, +] + +[package.extras] +cuda12-pip = ["nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] + +[[package]] +name = "jaxtyping" +version = "0.2.29" +description = "Type annotations and runtime checking for shape and dtype of JAX arrays, and PyTrees." +optional = false +python-versions = "~=3.9" +files = [ + {file = "jaxtyping-0.2.29-py3-none-any.whl", hash = "sha256:3580fc4dfef4c98ef2372c2c81314d89b98a186eb78d69d925fd0546025d556f"}, + {file = "jaxtyping-0.2.29.tar.gz", hash = "sha256:e1cd916ed0196e40402b0638449e7d051571562b2cd68d8b94961a383faeb409"}, +] + +[package.dependencies] +typeguard = "2.13.3" + +[[package]] +name = "jedi" +version = "0.19.1" +description = "An autocompletion tool for Python that can be used for text editors." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, + {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, +] + +[package.dependencies] +parso = ">=0.8.3,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jsonpointer" +version = "2.4" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +files = [ + {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, + {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, +] + +[[package]] +name = "jsonschema" +version = "4.17.3" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jsonschema-4.17.3-py3-none-any.whl", hash = "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"}, + {file = "jsonschema-4.17.3.tar.gz", hash = "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"}, +] + +[package.dependencies] +attrs = ">=17.4.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" +rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] + +[[package]] +name = "jupyter-cache" +version = "0.4.3" +description = "A defined interface for working with a cache of jupyter notebooks." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jupyter-cache-0.4.3.tar.gz", hash = "sha256:4c9b5431b1d320bc68440c21fa0a155bbeb29c5b979bef72222e244a7bcd54fc"}, + {file = "jupyter_cache-0.4.3-py3-none-any.whl", hash = "sha256:6d5d662d81f565d18009e8dcfd3a56fb876af47eafead2a19ef0045aba8ffe3b"}, +] + +[package.dependencies] +attrs = "*" +nbclient = ">=0.2,<0.6" +nbdime = "*" +nbformat = "*" +sqlalchemy = ">=1.3.12,<1.5" + +[package.extras] +cli = ["click", "click-completion", "click-log", "pyyaml", "tabulate"] +code-style = ["black", "flake8 (>=3.7.0,<3.8.0)", "pre-commit (==1.17.0)"] +rtd = ["myst-nb (>=0.7,<1.0)", "pydata-sphinx-theme", "sphinx-copybutton"] +testing = ["coverage", "ipykernel", "matplotlib", "nbformat (>=5.1)", "numpy", "pandas", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions", "sympy"] + +[[package]] +name = "jupyter-client" +version = "8.6.2" +description = "Jupyter protocol implementation and client libraries" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_client-8.6.2-py3-none-any.whl", hash = "sha256:50cbc5c66fd1b8f65ecb66bc490ab73217993632809b6e505687de18e9dea39f"}, + {file = "jupyter_client-8.6.2.tar.gz", hash = "sha256:2bda14d55ee5ba58552a8c53ae43d215ad9868853489213f37da060ced54d8df"}, +] + +[package.dependencies] +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = ">=5.3" + +[package.extras] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] + +[[package]] +name = "jupyter-core" +version = "5.7.2" +description = "Jupyter core package. A base package on which Jupyter projects rely." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-events" +version = "0.6.3" +description = "Jupyter Event System library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_events-0.6.3-py3-none-any.whl", hash = "sha256:57a2749f87ba387cd1bfd9b22a0875b889237dbf2edc2121ebb22bde47036c17"}, + {file = "jupyter_events-0.6.3.tar.gz", hash = "sha256:9a6e9995f75d1b7146b436ea24d696ce3a35bfa8bfe45e0c33c334c79464d0b3"}, +] + +[package.dependencies] +jsonschema = {version = ">=3.2.0", extras = ["format-nongpl"]} +python-json-logger = ">=2.0.4" +pyyaml = ">=5.3" +rfc3339-validator = "*" +rfc3986-validator = ">=0.1.1" +traitlets = ">=5.3" + +[package.extras] +cli = ["click", "rich"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] +test = ["click", "coverage", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "pytest-cov", "rich"] + +[[package]] +name = "jupyter-server" +version = "2.10.0" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server-2.10.0-py3-none-any.whl", hash = "sha256:dde56c9bc3cb52d7b72cc0f696d15d7163603526f1a758eb4a27405b73eab2a5"}, + {file = "jupyter_server-2.10.0.tar.gz", hash = "sha256:47b8f5e63440125cb1bb8957bf12b18453ee5ed9efe42d2f7b2ca66a7019a278"}, +] + +[package.dependencies] +anyio = ">=3.1.0" +argon2-cffi = "*" +jinja2 = "*" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-events = ">=0.6.0" +jupyter-server-terminals = "*" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +overrides = "*" +packaging = "*" +prometheus-client = "*" +pywinpty = {version = "*", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = ">=1.8.2" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = "*" + +[package.extras] +docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] + +[[package]] +name = "jupyter-server-mathjax" +version = "0.2.6" +description = "MathJax resources as a Jupyter Server Extension." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_server_mathjax-0.2.6-py3-none-any.whl", hash = "sha256:416389dde2010df46d5fbbb7adb087a5607111070af65a1445391040f2babb5e"}, + {file = "jupyter_server_mathjax-0.2.6.tar.gz", hash = "sha256:bb1e6b6dc0686c1fe386a22b5886163db548893a99c2810c36399e9c4ca23943"}, +] + +[package.dependencies] +jupyter-server = ">=1.1" + +[package.extras] +test = ["jupyter-server[test]", "pytest"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.3" +description = "A Jupyter Server Extension Providing Terminals." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, + {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, +] + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + +[[package]] +name = "jupyter-sphinx" +version = "0.3.2" +description = "Jupyter Sphinx Extensions" +optional = false +python-versions = ">= 3.6" +files = [ + {file = "jupyter_sphinx-0.3.2-py3-none-any.whl", hash = "sha256:301e36d0fb3007bb5802f6b65b60c24990eb99c983332a2ab6eecff385207dc9"}, + {file = "jupyter_sphinx-0.3.2.tar.gz", hash = "sha256:37fc9408385c45326ac79ca0452fbd7ae2bf0e97842d626d2844d4830e30aaf2"}, +] + +[package.dependencies] +IPython = "*" +ipywidgets = ">=7.0.0" +nbconvert = ">=5.5" +nbformat = "*" +Sphinx = ">=2" + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +description = "Pygments theme using JupyterLab CSS variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, + {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, +] + +[[package]] +name = "jupyterlab-widgets" +version = "1.1.7" +description = "A JupyterLab extension." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jupyterlab_widgets-1.1.7-py3-none-any.whl", hash = "sha256:0c4548cf42032e490447e4180f2c7d49ba5c30b42164992b38fb8c9d56c4e1b2"}, + {file = "jupyterlab_widgets-1.1.7.tar.gz", hash = "sha256:318dab34267915d658e7b0dc57433ff0ce0d52b3e283986b73b66f7ab9017ae8"}, +] + +[[package]] +name = "kiwisolver" +version = "1.4.5" +description = "A fast implementation of the Cassowary constraint solver" +optional = false +python-versions = ">=3.7" +files = [ + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, + {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, +] + +[[package]] +name = "lxml" +version = "5.2.2" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +optional = false +python-versions = ">=3.6" +files = [ + {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:364d03207f3e603922d0d3932ef363d55bbf48e3647395765f9bfcbdf6d23632"}, + {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50127c186f191b8917ea2fb8b206fbebe87fd414a6084d15568c27d0a21d60db"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74e4f025ef3db1c6da4460dd27c118d8cd136d0391da4e387a15e48e5c975147"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981a06a3076997adf7c743dcd0d7a0415582661e2517c7d961493572e909aa1d"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aef5474d913d3b05e613906ba4090433c515e13ea49c837aca18bde190853dff"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e275ea572389e41e8b039ac076a46cb87ee6b8542df3fff26f5baab43713bca"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5b65529bb2f21ac7861a0e94fdbf5dc0daab41497d18223b46ee8515e5ad297"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bcc98f911f10278d1daf14b87d65325851a1d29153caaf146877ec37031d5f36"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:b47633251727c8fe279f34025844b3b3a3e40cd1b198356d003aa146258d13a2"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:fbc9d316552f9ef7bba39f4edfad4a734d3d6f93341232a9dddadec4f15d425f"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:13e69be35391ce72712184f69000cda04fc89689429179bc4c0ae5f0b7a8c21b"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3b6a30a9ab040b3f545b697cb3adbf3696c05a3a68aad172e3fd7ca73ab3c835"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a233bb68625a85126ac9f1fc66d24337d6e8a0f9207b688eec2e7c880f012ec0"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:dfa7c241073d8f2b8e8dbc7803c434f57dbb83ae2a3d7892dd068d99e96efe2c"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1a7aca7964ac4bb07680d5c9d63b9d7028cace3e2d43175cb50bba8c5ad33316"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae4073a60ab98529ab8a72ebf429f2a8cc612619a8c04e08bed27450d52103c0"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ffb2be176fed4457e445fe540617f0252a72a8bc56208fd65a690fdb1f57660b"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e290d79a4107d7d794634ce3e985b9ae4f920380a813717adf61804904dc4393"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96e85aa09274955bb6bd483eaf5b12abadade01010478154b0ec70284c1b1526"}, + {file = "lxml-5.2.2-cp310-cp310-win32.whl", hash = "sha256:f956196ef61369f1685d14dad80611488d8dc1ef00be57c0c5a03064005b0f30"}, + {file = "lxml-5.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:875a3f90d7eb5c5d77e529080d95140eacb3c6d13ad5b616ee8095447b1d22e7"}, + {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45f9494613160d0405682f9eee781c7e6d1bf45f819654eb249f8f46a2c22545"}, + {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0b3f2df149efb242cee2ffdeb6674b7f30d23c9a7af26595099afaf46ef4e88"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d28cb356f119a437cc58a13f8135ab8a4c8ece18159eb9194b0d269ec4e28083"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:657a972f46bbefdbba2d4f14413c0d079f9ae243bd68193cb5061b9732fa54c1"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b9ea10063efb77a965a8d5f4182806fbf59ed068b3c3fd6f30d2ac7bee734"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07542787f86112d46d07d4f3c4e7c760282011b354d012dc4141cc12a68cef5f"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:303f540ad2dddd35b92415b74b900c749ec2010e703ab3bfd6660979d01fd4ed"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2eb2227ce1ff998faf0cd7fe85bbf086aa41dfc5af3b1d80867ecfe75fb68df3"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:1d8a701774dfc42a2f0b8ccdfe7dbc140500d1049e0632a611985d943fcf12df"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:56793b7a1a091a7c286b5f4aa1fe4ae5d1446fe742d00cdf2ffb1077865db10d"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eb00b549b13bd6d884c863554566095bf6fa9c3cecb2e7b399c4bc7904cb33b5"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a2569a1f15ae6c8c64108a2cd2b4a858fc1e13d25846be0666fc144715e32ab"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:8cf85a6e40ff1f37fe0f25719aadf443686b1ac7652593dc53c7ef9b8492b115"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:d237ba6664b8e60fd90b8549a149a74fcc675272e0e95539a00522e4ca688b04"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0b3f5016e00ae7630a4b83d0868fca1e3d494c78a75b1c7252606a3a1c5fc2ad"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23441e2b5339bc54dc949e9e675fa35efe858108404ef9aa92f0456929ef6fe8"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2fb0ba3e8566548d6c8e7dd82a8229ff47bd8fb8c2da237607ac8e5a1b8312e5"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:79d1fb9252e7e2cfe4de6e9a6610c7cbb99b9708e2c3e29057f487de5a9eaefa"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6dcc3d17eac1df7859ae01202e9bb11ffa8c98949dcbeb1069c8b9a75917e01b"}, + {file = "lxml-5.2.2-cp311-cp311-win32.whl", hash = "sha256:4c30a2f83677876465f44c018830f608fa3c6a8a466eb223535035fbc16f3438"}, + {file = "lxml-5.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:49095a38eb333aaf44c06052fd2ec3b8f23e19747ca7ec6f6c954ffea6dbf7be"}, + {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7429e7faa1a60cad26ae4227f4dd0459efde239e494c7312624ce228e04f6391"}, + {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:50ccb5d355961c0f12f6cf24b7187dbabd5433f29e15147a67995474f27d1776"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc911208b18842a3a57266d8e51fc3cfaccee90a5351b92079beed912a7914c2"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33ce9e786753743159799fdf8e92a5da351158c4bfb6f2db0bf31e7892a1feb5"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec87c44f619380878bd49ca109669c9f221d9ae6883a5bcb3616785fa8f94c97"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08ea0f606808354eb8f2dfaac095963cb25d9d28e27edcc375d7b30ab01abbf6"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75a9632f1d4f698b2e6e2e1ada40e71f369b15d69baddb8968dcc8e683839b18"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74da9f97daec6928567b48c90ea2c82a106b2d500f397eeb8941e47d30b1ca85"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:0969e92af09c5687d769731e3f39ed62427cc72176cebb54b7a9d52cc4fa3b73"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:9164361769b6ca7769079f4d426a41df6164879f7f3568be9086e15baca61466"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d26a618ae1766279f2660aca0081b2220aca6bd1aa06b2cf73f07383faf48927"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab67ed772c584b7ef2379797bf14b82df9aa5f7438c5b9a09624dd834c1c1aaf"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:3d1e35572a56941b32c239774d7e9ad724074d37f90c7a7d499ab98761bd80cf"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:8268cbcd48c5375f46e000adb1390572c98879eb4f77910c6053d25cc3ac2c67"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e282aedd63c639c07c3857097fc0e236f984ceb4089a8b284da1c526491e3f3d"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfdc2bfe69e9adf0df4915949c22a25b39d175d599bf98e7ddf620a13678585"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4aefd911793b5d2d7a921233a54c90329bf3d4a6817dc465f12ffdfe4fc7b8fe"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:8b8df03a9e995b6211dafa63b32f9d405881518ff1ddd775db4e7b98fb545e1c"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f11ae142f3a322d44513de1018b50f474f8f736bc3cd91d969f464b5bfef8836"}, + {file = "lxml-5.2.2-cp312-cp312-win32.whl", hash = "sha256:16a8326e51fcdffc886294c1e70b11ddccec836516a343f9ed0f82aac043c24a"}, + {file = "lxml-5.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:bbc4b80af581e18568ff07f6395c02114d05f4865c2812a1f02f2eaecf0bfd48"}, + {file = "lxml-5.2.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e3d9d13603410b72787579769469af730c38f2f25505573a5888a94b62b920f8"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38b67afb0a06b8575948641c1d6d68e41b83a3abeae2ca9eed2ac59892b36706"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c689d0d5381f56de7bd6966a4541bff6e08bf8d3871bbd89a0c6ab18aa699573"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:cf2a978c795b54c539f47964ec05e35c05bd045db5ca1e8366988c7f2fe6b3ce"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:739e36ef7412b2bd940f75b278749106e6d025e40027c0b94a17ef7968d55d56"}, + {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d8bbcd21769594dbba9c37d3c819e2d5847656ca99c747ddb31ac1701d0c0ed9"}, + {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:2304d3c93f2258ccf2cf7a6ba8c761d76ef84948d87bf9664e14d203da2cd264"}, + {file = "lxml-5.2.2-cp36-cp36m-win32.whl", hash = "sha256:02437fb7308386867c8b7b0e5bc4cd4b04548b1c5d089ffb8e7b31009b961dc3"}, + {file = "lxml-5.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edcfa83e03370032a489430215c1e7783128808fd3e2e0a3225deee278585196"}, + {file = "lxml-5.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:28bf95177400066596cdbcfc933312493799382879da504633d16cf60bba735b"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a745cc98d504d5bd2c19b10c79c61c7c3df9222629f1b6210c0368177589fb8"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b336b0416828022bfd5a2e3083e7f5ba54b96242159f83c7e3eebaec752f1716"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:4bc6cb140a7a0ad1f7bc37e018d0ed690b7b6520ade518285dc3171f7a117905"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:57f0a0bbc9868e10ebe874e9f129d2917750adf008fe7b9c1598c0fbbfdde6a6"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:60499fe961b21264e17a471ec296dcbf4365fbea611bf9e303ab69db7159ce61"}, + {file = "lxml-5.2.2-cp37-cp37m-win32.whl", hash = "sha256:d9b342c76003c6b9336a80efcc766748a333573abf9350f4094ee46b006ec18f"}, + {file = "lxml-5.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b16db2770517b8799c79aa80f4053cd6f8b716f21f8aca962725a9565ce3ee40"}, + {file = "lxml-5.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7ed07b3062b055d7a7f9d6557a251cc655eed0b3152b76de619516621c56f5d3"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f60fdd125d85bf9c279ffb8e94c78c51b3b6a37711464e1f5f31078b45002421"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a7e24cb69ee5f32e003f50e016d5fde438010c1022c96738b04fc2423e61706"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23cfafd56887eaed93d07bc4547abd5e09d837a002b791e9767765492a75883f"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:19b4e485cd07b7d83e3fe3b72132e7df70bfac22b14fe4bf7a23822c3a35bff5"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7ce7ad8abebe737ad6143d9d3bf94b88b93365ea30a5b81f6877ec9c0dee0a48"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e49b052b768bb74f58c7dda4e0bdf7b79d43a9204ca584ffe1fb48a6f3c84c66"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d14a0d029a4e176795cef99c056d58067c06195e0c7e2dbb293bf95c08f772a3"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:be49ad33819d7dcc28a309b86d4ed98e1a65f3075c6acd3cd4fe32103235222b"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a6d17e0370d2516d5bb9062c7b4cb731cff921fc875644c3d751ad857ba9c5b1"}, + {file = "lxml-5.2.2-cp38-cp38-win32.whl", hash = "sha256:5b8c041b6265e08eac8a724b74b655404070b636a8dd6d7a13c3adc07882ef30"}, + {file = "lxml-5.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:f61efaf4bed1cc0860e567d2ecb2363974d414f7f1f124b1df368bbf183453a6"}, + {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fb91819461b1b56d06fa4bcf86617fac795f6a99d12239fb0c68dbeba41a0a30"}, + {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d4ed0c7cbecde7194cd3228c044e86bf73e30a23505af852857c09c24e77ec5d"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54401c77a63cc7d6dc4b4e173bb484f28a5607f3df71484709fe037c92d4f0ed"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:625e3ef310e7fa3a761d48ca7ea1f9d8718a32b1542e727d584d82f4453d5eeb"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:519895c99c815a1a24a926d5b60627ce5ea48e9f639a5cd328bda0515ea0f10c"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c7079d5eb1c1315a858bbf180000757db8ad904a89476653232db835c3114001"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:343ab62e9ca78094f2306aefed67dcfad61c4683f87eee48ff2fd74902447726"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:cd9e78285da6c9ba2d5c769628f43ef66d96ac3085e59b10ad4f3707980710d3"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:546cf886f6242dff9ec206331209db9c8e1643ae642dea5fdbecae2453cb50fd"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:02f6a8eb6512fdc2fd4ca10a49c341c4e109aa6e9448cc4859af5b949622715a"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:339ee4a4704bc724757cd5dd9dc8cf4d00980f5d3e6e06d5847c1b594ace68ab"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0a028b61a2e357ace98b1615fc03f76eb517cc028993964fe08ad514b1e8892d"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f90e552ecbad426eab352e7b2933091f2be77115bb16f09f78404861c8322981"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d83e2d94b69bf31ead2fa45f0acdef0757fa0458a129734f59f67f3d2eb7ef32"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a02d3c48f9bb1e10c7788d92c0c7db6f2002d024ab6e74d6f45ae33e3d0288a3"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6d68ce8e7b2075390e8ac1e1d3a99e8b6372c694bbe612632606d1d546794207"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:453d037e09a5176d92ec0fd282e934ed26d806331a8b70ab431a81e2fbabf56d"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:3b019d4ee84b683342af793b56bb35034bd749e4cbdd3d33f7d1107790f8c472"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb3942960f0beb9f46e2a71a3aca220d1ca32feb5a398656be934320804c0df9"}, + {file = "lxml-5.2.2-cp39-cp39-win32.whl", hash = "sha256:ac6540c9fff6e3813d29d0403ee7a81897f1d8ecc09a8ff84d2eea70ede1cdbf"}, + {file = "lxml-5.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:610b5c77428a50269f38a534057444c249976433f40f53e3b47e68349cca1425"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b537bd04d7ccd7c6350cdaaaad911f6312cbd61e6e6045542f781c7f8b2e99d2"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4820c02195d6dfb7b8508ff276752f6b2ff8b64ae5d13ebe02e7667e035000b9"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a09f6184f17a80897172863a655467da2b11151ec98ba8d7af89f17bf63dae"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:76acba4c66c47d27c8365e7c10b3d8016a7da83d3191d053a58382311a8bf4e1"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b128092c927eaf485928cec0c28f6b8bead277e28acf56800e972aa2c2abd7a2"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ae791f6bd43305aade8c0e22f816b34f3b72b6c820477aab4d18473a37e8090b"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a2f6a1bc2460e643785a2cde17293bd7a8f990884b822f7bca47bee0a82fc66b"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e8d351ff44c1638cb6e980623d517abd9f580d2e53bfcd18d8941c052a5a009"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bec4bd9133420c5c52d562469c754f27c5c9e36ee06abc169612c959bd7dbb07"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:55ce6b6d803890bd3cc89975fca9de1dff39729b43b73cb15ddd933b8bc20484"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8ab6a358d1286498d80fe67bd3d69fcbc7d1359b45b41e74c4a26964ca99c3f8"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:06668e39e1f3c065349c51ac27ae430719d7806c026fec462e5693b08b95696b"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9cd5323344d8ebb9fb5e96da5de5ad4ebab993bbf51674259dbe9d7a18049525"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89feb82ca055af0fe797a2323ec9043b26bc371365847dbe83c7fd2e2f181c34"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e481bba1e11ba585fb06db666bfc23dbe181dbafc7b25776156120bf12e0d5a6"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d6c6ea6a11ca0ff9cd0390b885984ed31157c168565702959c25e2191674a14"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3d98de734abee23e61f6b8c2e08a88453ada7d6486dc7cdc82922a03968928db"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:69ab77a1373f1e7563e0fb5a29a8440367dec051da6c7405333699d07444f511"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:34e17913c431f5ae01d8658dbf792fdc457073dcdfbb31dc0cc6ab256e664a8d"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05f8757b03208c3f50097761be2dea0aba02e94f0dc7023ed73a7bb14ff11eb0"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a520b4f9974b0a0a6ed73c2154de57cdfd0c8800f4f15ab2b73238ffed0b36e"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5e097646944b66207023bc3c634827de858aebc226d5d4d6d16f0b77566ea182"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b5e4ef22ff25bfd4ede5f8fb30f7b24446345f3e79d9b7455aef2836437bc38a"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ff69a9a0b4b17d78170c73abe2ab12084bdf1691550c5629ad1fe7849433f324"}, + {file = "lxml-5.2.2.tar.gz", hash = "sha256:bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87"}, +] + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html-clean = ["lxml-html-clean"] +html5 = ["html5lib"] +htmlsoup = ["BeautifulSoup4"] +source = ["Cython (>=3.0.10)"] + +[[package]] +name = "markdown-it-py" +version = "1.1.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = "~=3.6" +files = [ + {file = "markdown-it-py-1.1.0.tar.gz", hash = "sha256:36be6bb3ad987bfdb839f5ba78ddf094552ca38ccbd784ae4f74a4e1419fc6e3"}, + {file = "markdown_it_py-1.1.0-py3-none-any.whl", hash = "sha256:98080fc0bc34c4f2bcf0846a096a9429acbd9d5d8e67ed34026c03c61c464389"}, +] + +[package.dependencies] +attrs = ">=19,<22" + +[package.extras] +code-style = ["pre-commit (==2.6)"] +compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.2.2,<3.3.0)", "mistletoe-ebp (>=0.10.0,<0.11.0)", "mistune (>=0.8.4,<0.9.0)", "panflute (>=1.12,<2.0)"] +linkify = ["linkify-it-py (>=1.0,<2.0)"] +plugins = ["mdit-py-plugins"] +rtd = ["myst-nb (==0.13.0a1)", "pyyaml", "sphinx (>=2,<4)", "sphinx-book-theme", "sphinx-copybutton", "sphinx-panels (>=0.4.0,<0.5.0)"] +testing = ["coverage", "psutil", "pytest (>=3.6,<4)", "pytest-benchmark (>=3.2,<4.0)", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "2.1.5" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] + +[[package]] +name = "matplotlib" +version = "3.9.0" +description = "Python plotting package" +optional = false +python-versions = ">=3.9" +files = [ + {file = "matplotlib-3.9.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2bcee1dffaf60fe7656183ac2190bd630842ff87b3153afb3e384d966b57fe56"}, + {file = "matplotlib-3.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f988bafb0fa39d1074ddd5bacd958c853e11def40800c5824556eb630f94d3b"}, + {file = "matplotlib-3.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe428e191ea016bb278758c8ee82a8129c51d81d8c4bc0846c09e7e8e9057241"}, + {file = "matplotlib-3.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaf3978060a106fab40c328778b148f590e27f6fa3cd15a19d6892575bce387d"}, + {file = "matplotlib-3.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2e7f03e5cbbfacdd48c8ea394d365d91ee8f3cae7e6ec611409927b5ed997ee4"}, + {file = "matplotlib-3.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:13beb4840317d45ffd4183a778685e215939be7b08616f431c7795276e067463"}, + {file = "matplotlib-3.9.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:063af8587fceeac13b0936c42a2b6c732c2ab1c98d38abc3337e430e1ff75e38"}, + {file = "matplotlib-3.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a2fa6d899e17ddca6d6526cf6e7ba677738bf2a6a9590d702c277204a7c6152"}, + {file = "matplotlib-3.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:550cdda3adbd596078cca7d13ed50b77879104e2e46392dcd7c75259d8f00e85"}, + {file = "matplotlib-3.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76cce0f31b351e3551d1f3779420cf8f6ec0d4a8cf9c0237a3b549fd28eb4abb"}, + {file = "matplotlib-3.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c53aeb514ccbbcbab55a27f912d79ea30ab21ee0531ee2c09f13800efb272674"}, + {file = "matplotlib-3.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:a5be985db2596d761cdf0c2eaf52396f26e6a64ab46bd8cd810c48972349d1be"}, + {file = "matplotlib-3.9.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c79f3a585f1368da6049318bdf1f85568d8d04b2e89fc24b7e02cc9b62017382"}, + {file = "matplotlib-3.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bdd1ecbe268eb3e7653e04f451635f0fb0f77f07fd070242b44c076c9106da84"}, + {file = "matplotlib-3.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d38e85a1a6d732f645f1403ce5e6727fd9418cd4574521d5803d3d94911038e5"}, + {file = "matplotlib-3.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a490715b3b9984fa609116481b22178348c1a220a4499cda79132000a79b4db"}, + {file = "matplotlib-3.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8146ce83cbc5dc71c223a74a1996d446cd35cfb6a04b683e1446b7e6c73603b7"}, + {file = "matplotlib-3.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:d91a4ffc587bacf5c4ce4ecfe4bcd23a4b675e76315f2866e588686cc97fccdf"}, + {file = "matplotlib-3.9.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:616fabf4981a3b3c5a15cd95eba359c8489c4e20e03717aea42866d8d0465956"}, + {file = "matplotlib-3.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cd53c79fd02f1c1808d2cfc87dd3cf4dbc63c5244a58ee7944497107469c8d8a"}, + {file = "matplotlib-3.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06a478f0d67636554fa78558cfbcd7b9dba85b51f5c3b5a0c9be49010cf5f321"}, + {file = "matplotlib-3.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81c40af649d19c85f8073e25e5806926986806fa6d54be506fbf02aef47d5a89"}, + {file = "matplotlib-3.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52146fc3bd7813cc784562cb93a15788be0b2875c4655e2cc6ea646bfa30344b"}, + {file = "matplotlib-3.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:0fc51eaa5262553868461c083d9adadb11a6017315f3a757fc45ec6ec5f02888"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bd4f2831168afac55b881db82a7730992aa41c4f007f1913465fb182d6fb20c0"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:290d304e59be2b33ef5c2d768d0237f5bd132986bdcc66f80bc9bcc300066a03"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff2e239c26be4f24bfa45860c20ffccd118d270c5b5d081fa4ea409b5469fcd"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:af4001b7cae70f7eaacfb063db605280058246de590fa7874f00f62259f2df7e"}, + {file = "matplotlib-3.9.0.tar.gz", hash = "sha256:e6d29ea6c19e34b30fb7d88b7081f869a03014f66fe06d62cc77d5a6ea88ed7a"}, +] + +[package.dependencies] +contourpy = ">=1.0.1" +cycler = ">=0.10" +fonttools = ">=4.22.0" +kiwisolver = ">=1.3.1" +numpy = ">=1.23" +packaging = ">=20.0" +pillow = ">=8" +pyparsing = ">=2.3.1" +python-dateutil = ">=2.7" + +[package.extras] +dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +description = "Inline Matplotlib backend for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, +] + +[package.dependencies] +traitlets = "*" + +[[package]] +name = "mdit-py-plugins" +version = "0.2.8" +description = "Collection of plugins for markdown-it-py" +optional = false +python-versions = "~=3.6" +files = [ + {file = "mdit-py-plugins-0.2.8.tar.gz", hash = "sha256:5991cef645502e80a5388ec4fc20885d2313d4871e8b8e320ca2de14ac0c015f"}, + {file = "mdit_py_plugins-0.2.8-py3-none-any.whl", hash = "sha256:1833bf738e038e35d89cb3a07eb0d227ed647ce7dd357579b65343740c6d249c"}, +] + +[package.dependencies] +markdown-it-py = ">=1.0,<2.0" + +[package.extras] +code-style = ["pre-commit (==2.6)"] +rtd = ["myst-parser (==0.14.0a3)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] +testing = ["coverage", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mistune" +version = "0.8.4" +description = "The fastest markdown parser in pure Python" +optional = false +python-versions = "*" +files = [ + {file = "mistune-0.8.4-py2.py3-none-any.whl", hash = "sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4"}, + {file = "mistune-0.8.4.tar.gz", hash = "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e"}, +] + +[[package]] +name = "ml-dtypes" +version = "0.4.0" +description = "" +optional = false +python-versions = ">=3.9" +files = [ + {file = "ml_dtypes-0.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:93afe37f3a879d652ec9ef1fc47612388890660a2657fbb5747256c3b818fd81"}, + {file = "ml_dtypes-0.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bb83fd064db43e67e67d021e547698af4c8d5c6190f2e9b1c53c09f6ff5531d"}, + {file = "ml_dtypes-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03e7cda6ef164eed0abb31df69d2c00c3a5ab3e2610b6d4c42183a43329c72a5"}, + {file = "ml_dtypes-0.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:a15d96d090aebb55ee85173d1775ae325a001aab607a76c8ea0b964ccd6b5364"}, + {file = "ml_dtypes-0.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bdf689be7351cc3c95110c910c1b864002f113e682e44508910c849e144f3df1"}, + {file = "ml_dtypes-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c83e4d443962d891d51669ff241d5aaad10a8d3d37a81c5532a45419885d591c"}, + {file = "ml_dtypes-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1e2f4237b459a63c97c2c9f449baa637d7e4c20addff6a9bac486f22432f3b6"}, + {file = "ml_dtypes-0.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:75b4faf99d0711b81f393db36d210b4255fd419f6f790bc6c1b461f95ffb7a9e"}, + {file = "ml_dtypes-0.4.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ee9f91d4c4f9959a7e1051c141dc565f39e54435618152219769e24f5e9a4d06"}, + {file = "ml_dtypes-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad6849a2db386b38e4d54fe13eb3293464561780531a918f8ef4c8169170dd49"}, + {file = "ml_dtypes-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa32979ebfde3a0d7c947cafbf79edc1ec77ac05ad0780ee86c1d8df70f2259"}, + {file = "ml_dtypes-0.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:3b67ec73a697c88c1122038e0de46520e48dc2ec876d42cf61bc5efe3c0b7675"}, + {file = "ml_dtypes-0.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:41affb38fdfe146e3db226cf2953021184d6f0c4ffab52136613e9601706e368"}, + {file = "ml_dtypes-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43cf4356a0fe2eeac6d289018d0734e17a403bdf1fd911953c125dd0358edcc0"}, + {file = "ml_dtypes-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1724ddcdf5edbaf615a62110af47407f1719b8d02e68ccee60683acb5f74da1"}, + {file = "ml_dtypes-0.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:723af6346447268a3cf0b7356e963d80ecb5732b5279b2aa3fa4b9fc8297c85e"}, + {file = "ml_dtypes-0.4.0.tar.gz", hash = "sha256:eaf197e72f4f7176a19fe3cb8b61846b38c6757607e7bf9cd4b1d84cd3e74deb"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.21.2", markers = "python_version >= \"3.10\""}, + {version = ">=1.23.3", markers = "python_version >= \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] + +[package.extras] +dev = ["absl-py", "pyink", "pylint (>=2.6.0)", "pytest", "pytest-xdist"] + +[[package]] +name = "multipledispatch" +version = "1.0.0" +description = "Multiple dispatch" +optional = false +python-versions = "*" +files = [ + {file = "multipledispatch-1.0.0-py3-none-any.whl", hash = "sha256:0c53cd8b077546da4e48869f49b13164bebafd0c2a5afceb6bb6a316e7fb46e4"}, + {file = "multipledispatch-1.0.0.tar.gz", hash = "sha256:5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0"}, +] + +[[package]] +name = "myst-nb" +version = "0.13.2" +description = "A Jupyter Notebook Sphinx reader built on top of the MyST markdown parser." +optional = false +python-versions = ">=3.6" +files = [ + {file = "myst-nb-0.13.2.tar.gz", hash = "sha256:81e0a4f186bb35c487f5443c7005a474d68ffb58f518f469102d1db7b452066a"}, + {file = "myst_nb-0.13.2-py3-none-any.whl", hash = "sha256:1b9ea3a04c9e0eee05145aa297d2feeabb94c4e23e3047b92efa011ddba4f4b4"}, +] + +[package.dependencies] +docutils = ">=0.15,<0.18" +importlib-metadata = "*" +ipython = "*" +ipywidgets = ">=7.0.0,<8" +jupyter-cache = ">=0.4.1,<0.5.0" +jupyter-sphinx = ">=0.3.2,<0.4.0" +myst-parser = ">=0.15.2,<0.16.0" +nbconvert = ">=5.6,<7" +nbformat = ">=5.0,<6.0" +pyyaml = "*" +sphinx = ">=3.1,<5" +sphinx-togglebutton = ">=0.3.0,<0.4.0" + +[package.extras] +code-style = ["pre-commit (>=2.12,<3.0)"] +rtd = ["alabaster", "altair", "bokeh", "coconut (>=1.4.3,<1.5.0)", "ipykernel (>=5.5,<6.0)", "ipywidgets", "jupytext (>=1.11.2,<1.12.0)", "matplotlib", "numpy", "pandas", "plotly", "sphinx-book-theme (>=0.1.0,<0.2.0)", "sphinx-copybutton", "sphinx-panels (>=0.4.1,<0.5.0)", "sphinxcontrib-bibtex", "sympy"] +testing = ["coverage (<5.0)", "ipykernel (>=5.5,<6.0)", "ipython (<8)", "jupytext (>=1.11.2,<1.12.0)", "matplotlib (>=3.3.0,<3.4.0)", "numpy", "pandas (<1.4)", "pytest (>=5.4,<6.0)", "pytest-cov (>=2.8,<3.0)", "pytest-regressions", "sympy"] + +[[package]] +name = "myst-parser" +version = "0.15.2" +description = "An extended commonmark compliant parser, with bridges to docutils & sphinx." +optional = false +python-versions = ">=3.6" +files = [ + {file = "myst-parser-0.15.2.tar.gz", hash = "sha256:f7f3b2d62db7655cde658eb5d62b2ec2a4631308137bd8d10f296a40d57bbbeb"}, + {file = "myst_parser-0.15.2-py3-none-any.whl", hash = "sha256:40124b6f27a4c42ac7f06b385e23a9dcd03d84801e9c7130b59b3729a554b1f9"}, +] + +[package.dependencies] +docutils = ">=0.15,<0.18" +jinja2 = "*" +markdown-it-py = ">=1.0.0,<2.0.0" +mdit-py-plugins = ">=0.2.8,<0.3.0" +pyyaml = "*" +sphinx = ">=3.1,<5" + +[package.extras] +code-style = ["pre-commit (>=2.12,<3.0)"] +linkify = ["linkify-it-py (>=1.0,<2.0)"] +rtd = ["ipython", "sphinx-book-theme (>=0.1.0,<0.2.0)", "sphinx-panels (>=0.5.2,<0.6.0)", "sphinxcontrib-bibtex (>=2.1,<3.0)", "sphinxcontrib.mermaid (>=0.6.3,<0.7.0)", "sphinxext-opengraph (>=0.4.2,<0.5.0)", "sphinxext-rediraffe (>=0.2,<1.0)"] +testing = ["beautifulsoup4", "coverage", "docutils (>=0.17.0,<0.18.0)", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "nbclassic" +version = "1.1.0" +description = "Jupyter Notebook as a Jupyter Server extension." +optional = false +python-versions = ">=3.7" +files = [ + {file = "nbclassic-1.1.0-py3-none-any.whl", hash = "sha256:8c0fd6e36e320a18657ff44ed96c3a400f17a903a3744fc322303a515778f2ba"}, + {file = "nbclassic-1.1.0.tar.gz", hash = "sha256:77b77ba85f9e988f9bad85df345b514e9e64c7f0e822992ab1df4a78ac64fc1e"}, +] + +[package.dependencies] +ipykernel = "*" +ipython-genutils = "*" +nest-asyncio = ">=1.5" +notebook-shim = ">=0.2.3" + +[package.extras] +docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +json-logging = ["json-logging"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "pytest-jupyter", "pytest-playwright", "pytest-tornasync", "requests", "requests-unixsocket", "testpath"] + +[[package]] +name = "nbclient" +version = "0.5.13" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "nbclient-0.5.13-py3-none-any.whl", hash = "sha256:47ac905af59379913c1f8f541098d2550153cf8dc58553cbe18c702b181518b0"}, + {file = "nbclient-0.5.13.tar.gz", hash = "sha256:40c52c9b5e3c31faecaee69f202b3f53e38d7c1c563de0fadde9d7eda0fdafe8"}, +] + +[package.dependencies] +jupyter-client = ">=6.1.5" +nbformat = ">=5.0" +nest-asyncio = "*" +traitlets = ">=5.0.0" + +[package.extras] +sphinx = ["Sphinx (>=1.7)", "mock", "moto", "myst-parser", "sphinx-book-theme"] +test = ["black", "check-manifest", "flake8", "ipykernel", "ipython (<8.0.0)", "ipywidgets (<8.0.0)", "mypy", "pip (>=18.1)", "pytest (>=4.1)", "pytest-asyncio", "pytest-cov (>=2.6.1)", "setuptools (>=38.6.0)", "twine (>=1.11.0)", "wheel (>=0.31.0)", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "6.5.4" +description = "Converting Jupyter Notebooks" +optional = false +python-versions = ">=3.7" +files = [ + {file = "nbconvert-6.5.4-py3-none-any.whl", hash = "sha256:d679a947f849a966cbbd0bf6e7fedcfdb64be3b20ce7cef11ad55c13f5820e19"}, + {file = "nbconvert-6.5.4.tar.gz", hash = "sha256:9e3c7c6d491374cbdd5f35d268c05809357716d346f4573186bbeab32ee50bc1"}, +] + +[package.dependencies] +beautifulsoup4 = "*" +bleach = "*" +defusedxml = "*" +entrypoints = ">=0.2.2" +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +lxml = "*" +MarkupSafe = ">=2.0" +mistune = ">=0.8.1,<2" +nbclient = ">=0.5.0" +nbformat = ">=5.1" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +tinycss2 = "*" +traitlets = ">=5.0" + +[package.extras] +all = ["ipykernel", "ipython", "ipywidgets (>=7)", "nbsphinx (>=0.2.12)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-cov", "pytest-dependency", "sphinx (>=1.5.1)", "sphinx-rtd-theme", "tornado (>=6.1)"] +docs = ["ipython", "nbsphinx (>=0.2.12)", "sphinx (>=1.5.1)", "sphinx-rtd-theme"] +serve = ["tornado (>=6.1)"] +test = ["ipykernel", "ipywidgets (>=7)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-cov", "pytest-dependency"] +webpdf = ["pyppeteer (>=1,<1.1)"] + +[[package]] +name = "nbdime" +version = "4.0.1" +description = "Diff and merge of Jupyter Notebooks" +optional = false +python-versions = ">=3.6" +files = [ + {file = "nbdime-4.0.1-py3-none-any.whl", hash = "sha256:82538e2b52e0834e9c07607e2dea27aceaaf7e8cf2269a4607c67ea9aa625404"}, + {file = "nbdime-4.0.1.tar.gz", hash = "sha256:f1a760c0b00c1ba9b4945c16ce92577f393fb51d184f351b7685ba6e8502098e"}, +] + +[package.dependencies] +colorama = "*" +gitpython = "<2.1.4 || >2.1.4,<2.1.5 || >2.1.5,<2.1.6 || >2.1.6" +jinja2 = ">=2.9" +jupyter-server = "*" +jupyter-server-mathjax = ">=0.2.2" +nbformat = "*" +pygments = "*" +requests = "*" +tornado = "*" + +[package.extras] +docs = ["recommonmark", "sphinx", "sphinx-rtd-theme"] +test = ["jsonschema", "jupyter-server[test]", "mock", "notebook", "pytest (>=6.0)", "pytest-cov", "pytest-timeout", "pytest-tornado", "requests", "tabulate"] + +[[package]] +name = "nbformat" +version = "5.10.4" +description = "The Jupyter Notebook format" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, + {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, +] + +[package.dependencies] +fastjsonschema = ">=2.15" +jsonschema = ">=2.6" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +traitlets = ">=5.1" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "netcdf4" +version = "1.6.5" +description = "Provides an object-oriented python interface to the netCDF version 4 library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "netCDF4-1.6.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d23b97cbde2bf413fadc4697c5c255a0436511c02f811e127e0fb12f5b882a4c"}, + {file = "netCDF4-1.6.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e5edfed673005f47f8d2fbea9c72c382b085dd358ac3c20ca743a563ed7b90e"}, + {file = "netCDF4-1.6.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10d2ac9ae1308ca837d86c6dc304ec455a85bdba0f2175e222844a54589168dc"}, + {file = "netCDF4-1.6.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a63a2be2f80977ac23bb0aa736c565011fd4639097ce0922e01b0dc38015df2"}, + {file = "netCDF4-1.6.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aaceea2097d292bad398d9f9b4fe403efa7b1568fcfa6faba9b67b1630027f9"}, + {file = "netCDF4-1.6.5-cp310-cp310-win_amd64.whl", hash = "sha256:111357d9e12eb79e8d58bfd91bc6b230d35b17a0ebd8c546d17416e8ceebea49"}, + {file = "netCDF4-1.6.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1c5fede0b34c0a02a1b9e84116bfb3fcd2f80124a651d4836e72b785d10e2f15"}, + {file = "netCDF4-1.6.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3de5512b9270aa6472e4f3aa2bf895a7364c1d4f8667ce3b82e8232197d4fec8"}, + {file = "netCDF4-1.6.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b20971a164431f6eca1d24df8aa153db15c2c1b9630e83ccc5cf004e8ac8151d"}, + {file = "netCDF4-1.6.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad1101d538077152b866782e44458356981526bf2ea9cc07930bf28b589c82a7"}, + {file = "netCDF4-1.6.5-cp311-cp311-win_amd64.whl", hash = "sha256:de4dc973fae9e2bbdf42e094125e423a4c25393172a61958314969b055a38889"}, + {file = "netCDF4-1.6.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:19e16c63cdd7c0dbffe284a4a65f226ba1026f476f35cbedd099b4792b395f69"}, + {file = "netCDF4-1.6.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b994afce2ca4073f6b757385a6c0ffec25ecaae2b8821535b303c7cdbf6de42b"}, + {file = "netCDF4-1.6.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0187646e3348e7a8cd654617dda65517df138042c94c2fcc6682ff7c8c6654dc"}, + {file = "netCDF4-1.6.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1ab5dabac27d25fcc82c52dc29a74a6585e865208cce35f4e285df83d3df0b2"}, + {file = "netCDF4-1.6.5-cp312-cp312-win_amd64.whl", hash = "sha256:081e9043ac6160989f60570928eabe803c88ce7df1d3f79f2345dc48f68ef752"}, + {file = "netCDF4-1.6.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b47b22dda5b25ba6291f97634d7ac67b0a843f8ae5c9d9d5813c15364f66d0a"}, + {file = "netCDF4-1.6.5-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4609dd62d14798c9524327287091875449d68588c128abb768fc0c76c4a28165"}, + {file = "netCDF4-1.6.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2455e9d35fde067e6a6bdc24aa9d44962235a071cec49904d1589e298c23dcd3"}, + {file = "netCDF4-1.6.5-cp38-cp38-win_amd64.whl", hash = "sha256:2c210794d96431d92b5992e46ad8a9f97237bf6d6956f8816978a03dc0fa18c3"}, + {file = "netCDF4-1.6.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:18255b8b283d32d3900092f29c67e53aa25bd8f0dfe7adde59fe782d865a381c"}, + {file = "netCDF4-1.6.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:53050562bac84738bbd121fbbee9593d074579f5d6fdaafcb981abeb5c964225"}, + {file = "netCDF4-1.6.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:938c062382406bca9198b16adddd87c09b00521766b138cdfd11c95546eefeb8"}, + {file = "netCDF4-1.6.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a8300451d7542d3c4ff1dcccf5fb1c7d44bdd1dc08ec77dab04416caf13cb1f"}, + {file = "netCDF4-1.6.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a27db2701feef31201c9b20b04a9579196edc20dfc339ca423c7b81e462d6e14"}, + {file = "netCDF4-1.6.5-cp39-cp39-win_amd64.whl", hash = "sha256:574d7742ab321e5f9f33b5b1296c4ad4e5c469152c17d4fc453d5070e413e596"}, + {file = "netCDF4-1.6.5.tar.gz", hash = "sha256:824881d0aacfde5bd982d6adedd8574259c85553781e7b83e0ce82b890bfa0ef"}, +] + +[package.dependencies] +certifi = "*" +cftime = "*" +numpy = "*" + +[package.extras] +tests = ["Cython", "packaging", "pytest"] + +[[package]] +name = "notebook" +version = "6.5.4" +description = "A web-based notebook environment for interactive computing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook-6.5.4-py3-none-any.whl", hash = "sha256:dd17e78aefe64c768737b32bf171c1c766666a21cc79a44d37a1700771cab56f"}, + {file = "notebook-6.5.4.tar.gz", hash = "sha256:517209568bd47261e2def27a140e97d49070602eea0d226a696f42a7f16c9a4e"}, +] + +[package.dependencies] +argon2-cffi = "*" +ipykernel = "*" +ipython-genutils = "*" +jinja2 = "*" +jupyter-client = ">=5.3.4" +jupyter-core = ">=4.6.1" +nbclassic = ">=0.4.7" +nbconvert = ">=5" +nbformat = "*" +nest-asyncio = ">=1.5" +prometheus-client = "*" +pyzmq = ">=17" +Send2Trash = ">=1.8.0" +terminado = ">=0.8.3" +tornado = ">=6.1" +traitlets = ">=4.2.1" + +[package.extras] +docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +json-logging = ["json-logging"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "requests", "requests-unixsocket", "selenium (==4.1.5)", "testpath"] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +description = "A shim layer for notebook traits and config" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, + {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, +] + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] + +[[package]] +name = "numpy" +version = "1.26.4" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, +] + +[[package]] +name = "numpyro" +version = "0.14.0" +description = "Pyro PPL on NumPy" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpyro-0.14.0-py3-none-any.whl", hash = "sha256:1aef9b30e263f4dc4c829d0f8ce6d0640b030d33b32c2b6e1ed20be5f7c12478"}, + {file = "numpyro-0.14.0.tar.gz", hash = "sha256:3e43eaa9c843473d7ae939c183e10db14e23bb42b0ad1de90ae15a451176de48"}, +] + +[package.dependencies] +jax = ">=0.4.14" +jaxlib = ">=0.4.14" +multipledispatch = "*" +numpy = "*" +tqdm = "*" + +[package.extras] +cpu = ["jax[cpu] (>=0.4.14)"] +cuda = ["jax[cuda] (>=0.4.14)"] +dev = ["dm-haiku", "flax", "funsor (>=0.4.1)", "graphviz", "jaxns (==2.4.8)", "matplotlib", "optax (>=0.0.6)", "pylab-sdk", "pyyaml", "requests", "tensorflow-probability (>=0.18.0)"] +doc = ["ipython", "nbsphinx (>=0.8.9)", "readthedocs-sphinx-search (>=0.3.2)", "sphinx (>=5)", "sphinx-gallery", "sphinx-rtd-theme"] +examples = ["arviz", "jupyter", "matplotlib", "pandas", "scikit-learn", "seaborn", "wordcloud"] +test = ["importlib-metadata (<5.0)", "pyro-api (>=0.1.1)", "pytest (>=4.1)", "ruff (>=0.1.8)", "scipy (>=1.9)"] +tpu = ["jax[tpu] (>=0.4.14)"] + +[[package]] +name = "openpyxl" +version = "3.1.3" +description = "A Python library to read/write Excel 2010 xlsx/xlsm files" +optional = false +python-versions = ">=3.6" +files = [ + {file = "openpyxl-3.1.3-py2.py3-none-any.whl", hash = "sha256:25071b558db709de9e8782c3d3e058af3b23ffb2fc6f40c8f0c45a154eced2c3"}, + {file = "openpyxl-3.1.3.tar.gz", hash = "sha256:8dd482e5350125b2388070bb2477927be2e8ebc27df61178709bc8c8751da2f9"}, +] + +[package.dependencies] +et-xmlfile = "*" + +[[package]] +name = "opt-einsum" +version = "3.3.0" +description = "Optimizing numpys einsum function" +optional = false +python-versions = ">=3.5" +files = [ + {file = "opt_einsum-3.3.0-py3-none-any.whl", hash = "sha256:2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147"}, + {file = "opt_einsum-3.3.0.tar.gz", hash = "sha256:59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549"}, +] + +[package.dependencies] +numpy = ">=1.7" + +[package.extras] +docs = ["numpydoc", "sphinx (==1.2.3)", "sphinx-rtd-theme", "sphinxcontrib-napoleon"] +tests = ["pytest", "pytest-cov", "pytest-pep8"] + +[[package]] +name = "optax" +version = "0.1.9" +description = "A gradient processing and optimisation library in JAX." +optional = false +python-versions = ">=3.9" +files = [ + {file = "optax-0.1.9-py3-none-any.whl", hash = "sha256:3cbcfac6e70dff9484cd7560dc92e43a50df1eac0d4af2a1f7c2e1fd116bf972"}, + {file = "optax-0.1.9.tar.gz", hash = "sha256:731f43e8b404f50a5ef025b1261894d7d0300f7ad9cb688ea08f67b40822e94f"}, +] + +[package.dependencies] +absl-py = ">=0.7.1" +chex = ">=0.1.7" +jax = ">=0.1.55" +jaxlib = ">=0.1.37" +numpy = ">=1.18.0" + +[package.extras] +docs = ["dm-haiku (>=0.0.11)", "ipython (>=8.8.0)", "matplotlib (>=3.5.0)", "myst-nb (>=1.0.0)", "sphinx (>=6.0.0)", "sphinx-autodoc-typehints", "sphinx-book-theme (>=1.0.1)", "sphinx-collections (>=0.0.1)", "sphinx-gallery (>=0.14.0)", "sphinxcontrib-katex", "tensorflow (>=2.4.0)", "tensorflow-datasets (>=4.2.0)"] +dp-accounting = ["absl-py (>=1.0.0)", "attrs (>=21.4.0)", "mpmath (>=1.2.1)", "numpy (>=1.21.4)", "scipy (>=1.7.1)"] +examples = ["dm-haiku (>=0.0.3)", "tensorflow (>=2.4.0)", "tensorflow-datasets (>=4.2.0)"] +test = ["dm-haiku (>=0.0.3)", "dm-tree (>=0.1.7)", "flax (==0.5.3)"] + +[[package]] +name = "overrides" +version = "7.7.0" +description = "A decorator to automatically detect mismatch when overriding a method." +optional = false +python-versions = ">=3.6" +files = [ + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, +] + +[[package]] +name = "packaging" +version = "20.9" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"}, + {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"}, +] + +[package.dependencies] +pyparsing = ">=2.0.2" + +[[package]] +name = "pandas" +version = "2.2.2" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, + {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, + {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, + {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, + {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, + {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +description = "Utilities for writing pandoc filters in python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, + {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, +] + +[[package]] +name = "parso" +version = "0.8.4" +description = "A Python Parser" +optional = false +python-versions = ">=3.6" +files = [ + {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, + {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, +] + +[package.extras] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["docopt", "pytest"] + +[[package]] +name = "pexpect" +version = "4.9.0" +description = "Pexpect allows easy control of interactive console applications." +optional = false +python-versions = "*" +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pillow" +version = "8.4.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "Pillow-8.4.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:81f8d5c81e483a9442d72d182e1fb6dcb9723f289a57e8030811bac9ea3fef8d"}, + {file = "Pillow-8.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f97cfb1e5a392d75dd8b9fd274d205404729923840ca94ca45a0af57e13dbe6"}, + {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb9fc393f3c61f9054e1ed26e6fe912c7321af2f41ff49d3f83d05bacf22cc78"}, + {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d82cdb63100ef5eedb8391732375e6d05993b765f72cb34311fab92103314649"}, + {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62cc1afda735a8d109007164714e73771b499768b9bb5afcbbee9d0ff374b43f"}, + {file = "Pillow-8.4.0-cp310-cp310-win32.whl", hash = "sha256:e3dacecfbeec9a33e932f00c6cd7996e62f53ad46fbe677577394aaa90ee419a"}, + {file = "Pillow-8.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:620582db2a85b2df5f8a82ddeb52116560d7e5e6b055095f04ad828d1b0baa39"}, + {file = "Pillow-8.4.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:1bc723b434fbc4ab50bb68e11e93ce5fb69866ad621e3c2c9bdb0cd70e345f55"}, + {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72cbcfd54df6caf85cc35264c77ede902452d6df41166010262374155947460c"}, + {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70ad9e5c6cb9b8487280a02c0ad8a51581dcbbe8484ce058477692a27c151c0a"}, + {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25a49dc2e2f74e65efaa32b153527fc5ac98508d502fa46e74fa4fd678ed6645"}, + {file = "Pillow-8.4.0-cp36-cp36m-win32.whl", hash = "sha256:93ce9e955cc95959df98505e4608ad98281fff037350d8c2671c9aa86bcf10a9"}, + {file = "Pillow-8.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2e4440b8f00f504ee4b53fe30f4e381aae30b0568193be305256b1462216feff"}, + {file = "Pillow-8.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8c803ac3c28bbc53763e6825746f05cc407b20e4a69d0122e526a582e3b5e153"}, + {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8a17b5d948f4ceeceb66384727dde11b240736fddeda54ca740b9b8b1556b29"}, + {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1394a6ad5abc838c5cd8a92c5a07535648cdf6d09e8e2d6df916dfa9ea86ead8"}, + {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:792e5c12376594bfcb986ebf3855aa4b7c225754e9a9521298e460e92fb4a488"}, + {file = "Pillow-8.4.0-cp37-cp37m-win32.whl", hash = "sha256:d99ec152570e4196772e7a8e4ba5320d2d27bf22fdf11743dd882936ed64305b"}, + {file = "Pillow-8.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7b7017b61bbcdd7f6363aeceb881e23c46583739cb69a3ab39cb384f6ec82e5b"}, + {file = "Pillow-8.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:d89363f02658e253dbd171f7c3716a5d340a24ee82d38aab9183f7fdf0cdca49"}, + {file = "Pillow-8.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a0956fdc5defc34462bb1c765ee88d933239f9a94bc37d132004775241a7585"}, + {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b7bb9de00197fb4261825c15551adf7605cf14a80badf1761d61e59da347779"}, + {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72b9e656e340447f827885b8d7a15fc8c4e68d410dc2297ef6787eec0f0ea409"}, + {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5a4532a12314149d8b4e4ad8ff09dde7427731fcfa5917ff16d0291f13609df"}, + {file = "Pillow-8.4.0-cp38-cp38-win32.whl", hash = "sha256:82aafa8d5eb68c8463b6e9baeb4f19043bb31fefc03eb7b216b51e6a9981ae09"}, + {file = "Pillow-8.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:066f3999cb3b070a95c3652712cffa1a748cd02d60ad7b4e485c3748a04d9d76"}, + {file = "Pillow-8.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:5503c86916d27c2e101b7f71c2ae2cddba01a2cf55b8395b0255fd33fa4d1f1a"}, + {file = "Pillow-8.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4acc0985ddf39d1bc969a9220b51d94ed51695d455c228d8ac29fcdb25810e6e"}, + {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b052a619a8bfcf26bd8b3f48f45283f9e977890263e4571f2393ed8898d331b"}, + {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:493cb4e415f44cd601fcec11c99836f707bb714ab03f5ed46ac25713baf0ff20"}, + {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8831cb7332eda5dc89b21a7bce7ef6ad305548820595033a4b03cf3091235ed"}, + {file = "Pillow-8.4.0-cp39-cp39-win32.whl", hash = "sha256:5e9ac5f66616b87d4da618a20ab0a38324dbe88d8a39b55be8964eb520021e02"}, + {file = "Pillow-8.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:3eb1ce5f65908556c2d8685a8f0a6e989d887ec4057326f6c22b24e8a172c66b"}, + {file = "Pillow-8.4.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ddc4d832a0f0b4c52fff973a0d44b6c99839a9d016fe4e6a1cb8f3eea96479c2"}, + {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3e5ddc44c14042f0844b8cf7d2cd455f6cc80fd7f5eefbe657292cf601d9ad"}, + {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70e94281588ef053ae8998039610dbd71bc509e4acbc77ab59d7d2937b10698"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:3862b7256046fcd950618ed22d1d60b842e3a40a48236a5498746f21189afbbc"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4901622493f88b1a29bd30ec1a2f683782e57c3c16a2dbc7f2595ba01f639df"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c471a734240653a0ec91dec0996696eea227eafe72a33bd06c92697728046b"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:244cf3b97802c34c41905d22810846802a3329ddcb93ccc432870243211c79fc"}, + {file = "Pillow-8.4.0.tar.gz", hash = "sha256:b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed"}, +] + +[[package]] +name = "platformdirs" +version = "4.2.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, + {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] + +[[package]] +name = "pluggy" +version = "0.13.1" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, + {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] + +[[package]] +name = "prometheus-client" +version = "0.20.0" +description = "Python client for the Prometheus monitoring system." +optional = false +python-versions = ">=3.8" +files = [ + {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, + {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, +] + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.47" +description = "Library for building powerful interactive command lines in Python" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.47-py3-none-any.whl", hash = "sha256:0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10"}, + {file = "prompt_toolkit-3.0.47.tar.gz", hash = "sha256:1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360"}, +] + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "psutil" +version = "5.9.8" +description = "Cross-platform lib for process and system monitoring in Python." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +files = [ + {file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"}, + {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"}, + {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7"}, + {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36"}, + {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d"}, + {file = "psutil-5.9.8-cp27-none-win32.whl", hash = "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e"}, + {file = "psutil-5.9.8-cp27-none-win_amd64.whl", hash = "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631"}, + {file = "psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81"}, + {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421"}, + {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4"}, + {file = "psutil-5.9.8-cp36-cp36m-win32.whl", hash = "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee"}, + {file = "psutil-5.9.8-cp36-cp36m-win_amd64.whl", hash = "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2"}, + {file = "psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0"}, + {file = "psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf"}, + {file = "psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8"}, + {file = "psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c"}, +] + +[package.extras] +test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +optional = false +python-versions = "*" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] + +[[package]] +name = "pure-eval" +version = "0.2.2" +description = "Safely evaluate AST nodes without side effects" +optional = false +python-versions = "*" +files = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyparsing" +version = "2.4.7" +description = "Python parsing module" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, + {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, +] + +[[package]] +name = "pyrsistent" +version = "0.20.0" +description = "Persistent/Functional/Immutable data structures" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyrsistent-0.20.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c3aba3e01235221e5b229a6c05f585f344734bd1ad42a8ac51493d74722bbce"}, + {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1beb78af5423b879edaf23c5591ff292cf7c33979734c99aa66d5914ead880f"}, + {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21cc459636983764e692b9eba7144cdd54fdec23ccdb1e8ba392a63666c60c34"}, + {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5ac696f02b3fc01a710427585c855f65cd9c640e14f52abe52020722bb4906b"}, + {file = "pyrsistent-0.20.0-cp310-cp310-win32.whl", hash = "sha256:0724c506cd8b63c69c7f883cc233aac948c1ea946ea95996ad8b1380c25e1d3f"}, + {file = "pyrsistent-0.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:8441cf9616d642c475684d6cf2520dd24812e996ba9af15e606df5f6fd9d04a7"}, + {file = "pyrsistent-0.20.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0f3b1bcaa1f0629c978b355a7c37acd58907390149b7311b5db1b37648eb6958"}, + {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdd7ef1ea7a491ae70d826b6cc64868de09a1d5ff9ef8d574250d0940e275b8"}, + {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cae40a9e3ce178415040a0383f00e8d68b569e97f31928a3a8ad37e3fde6df6a"}, + {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6288b3fa6622ad8a91e6eb759cfc48ff3089e7c17fb1d4c59a919769314af224"}, + {file = "pyrsistent-0.20.0-cp311-cp311-win32.whl", hash = "sha256:7d29c23bdf6e5438c755b941cef867ec2a4a172ceb9f50553b6ed70d50dfd656"}, + {file = "pyrsistent-0.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:59a89bccd615551391f3237e00006a26bcf98a4d18623a19909a2c48b8e986ee"}, + {file = "pyrsistent-0.20.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:09848306523a3aba463c4b49493a760e7a6ca52e4826aa100ee99d8d39b7ad1e"}, + {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a14798c3005ec892bbada26485c2eea3b54109cb2533713e355c806891f63c5e"}, + {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b14decb628fac50db5e02ee5a35a9c0772d20277824cfe845c8a8b717c15daa3"}, + {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e2c116cc804d9b09ce9814d17df5edf1df0c624aba3b43bc1ad90411487036d"}, + {file = "pyrsistent-0.20.0-cp312-cp312-win32.whl", hash = "sha256:e78d0c7c1e99a4a45c99143900ea0546025e41bb59ebc10182e947cf1ece9174"}, + {file = "pyrsistent-0.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:4021a7f963d88ccd15b523787d18ed5e5269ce57aa4037146a2377ff607ae87d"}, + {file = "pyrsistent-0.20.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:79ed12ba79935adaac1664fd7e0e585a22caa539dfc9b7c7c6d5ebf91fb89054"}, + {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f920385a11207dc372a028b3f1e1038bb244b3ec38d448e6d8e43c6b3ba20e98"}, + {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f5c2d012671b7391803263419e31b5c7c21e7c95c8760d7fc35602353dee714"}, + {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef3992833fbd686ee783590639f4b8343a57f1f75de8633749d984dc0eb16c86"}, + {file = "pyrsistent-0.20.0-cp38-cp38-win32.whl", hash = "sha256:881bbea27bbd32d37eb24dd320a5e745a2a5b092a17f6debc1349252fac85423"}, + {file = "pyrsistent-0.20.0-cp38-cp38-win_amd64.whl", hash = "sha256:6d270ec9dd33cdb13f4d62c95c1a5a50e6b7cdd86302b494217137f760495b9d"}, + {file = "pyrsistent-0.20.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ca52d1ceae015859d16aded12584c59eb3825f7b50c6cfd621d4231a6cc624ce"}, + {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b318ca24db0f0518630e8b6f3831e9cba78f099ed5c1d65ffe3e023003043ba0"}, + {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fed2c3216a605dc9a6ea50c7e84c82906e3684c4e80d2908208f662a6cbf9022"}, + {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e14c95c16211d166f59c6611533d0dacce2e25de0f76e4c140fde250997b3ca"}, + {file = "pyrsistent-0.20.0-cp39-cp39-win32.whl", hash = "sha256:f058a615031eea4ef94ead6456f5ec2026c19fb5bd6bfe86e9665c4158cf802f"}, + {file = "pyrsistent-0.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:58b8f6366e152092194ae68fefe18b9f0b4f89227dfd86a07770c3d86097aebf"}, + {file = "pyrsistent-0.20.0-py3-none-any.whl", hash = "sha256:c55acc4733aad6560a7f5f818466631f07efc001fd023f34a6c203f8b6df0f0b"}, + {file = "pyrsistent-0.20.0.tar.gz", hash = "sha256:4c48f78f62ab596c679086084d0dd13254ae4f3d6c72a83ffdf5ebdef8f265a4"}, +] + +[[package]] +name = "pytest" +version = "6.2.5" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, + {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, +] + +[package.dependencies] +atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +py = ">=1.8.2" +toml = "*" + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-json-logger" +version = "2.0.7" +description = "A python library adding a json log formatter" +optional = false +python-versions = ">=3.6" +files = [ + {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, + {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, +] + +[[package]] +name = "pytz" +version = "2020.5" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2020.5-py2.py3-none-any.whl", hash = "sha256:16962c5fb8db4a8f63a26646d8886e9d769b6c511543557bc84e9569fb9a9cb4"}, + {file = "pytz-2020.5.tar.gz", hash = "sha256:180befebb1927b16f6b57101720075a984c019ac16b1b7575673bea42c6c3da5"}, +] + +[[package]] +name = "pywin32" +version = "306" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, + {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, + {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, + {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, + {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, + {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, + {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, + {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, + {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, + {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, + {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, + {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, + {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, + {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, +] + +[[package]] +name = "pywinpty" +version = "2.0.13" +description = "Pseudo terminal support for Windows from Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pywinpty-2.0.13-cp310-none-win_amd64.whl", hash = "sha256:697bff211fb5a6508fee2dc6ff174ce03f34a9a233df9d8b5fe9c8ce4d5eaf56"}, + {file = "pywinpty-2.0.13-cp311-none-win_amd64.whl", hash = "sha256:b96fb14698db1284db84ca38c79f15b4cfdc3172065b5137383910567591fa99"}, + {file = "pywinpty-2.0.13-cp312-none-win_amd64.whl", hash = "sha256:2fd876b82ca750bb1333236ce98488c1be96b08f4f7647cfdf4129dfad83c2d4"}, + {file = "pywinpty-2.0.13-cp38-none-win_amd64.whl", hash = "sha256:61d420c2116c0212808d31625611b51caf621fe67f8a6377e2e8b617ea1c1f7d"}, + {file = "pywinpty-2.0.13-cp39-none-win_amd64.whl", hash = "sha256:71cb613a9ee24174730ac7ae439fd179ca34ccb8c5349e8d7b72ab5dea2c6f4b"}, + {file = "pywinpty-2.0.13.tar.gz", hash = "sha256:c34e32351a3313ddd0d7da23d27f835c860d32fe4ac814d372a3ea9594f41dde"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "pyzmq" +version = "26.0.3" +description = "Python bindings for 0MQ" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:44dd6fc3034f1eaa72ece33588867df9e006a7303725a12d64c3dff92330f625"}, + {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:acb704195a71ac5ea5ecf2811c9ee19ecdc62b91878528302dd0be1b9451cc90"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dbb9c997932473a27afa93954bb77a9f9b786b4ccf718d903f35da3232317de"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bcb34f869d431799c3ee7d516554797f7760cb2198ecaa89c3f176f72d062be"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ece17ec5f20d7d9b442e5174ae9f020365d01ba7c112205a4d59cf19dc38ee"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ba6e5e6588e49139a0979d03a7deb9c734bde647b9a8808f26acf9c547cab1bf"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3bf8b000a4e2967e6dfdd8656cd0757d18c7e5ce3d16339e550bd462f4857e59"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2136f64fbb86451dbbf70223635a468272dd20075f988a102bf8a3f194a411dc"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e8918973fbd34e7814f59143c5f600ecd38b8038161239fd1a3d33d5817a38b8"}, + {file = "pyzmq-26.0.3-cp310-cp310-win32.whl", hash = "sha256:0aaf982e68a7ac284377d051c742610220fd06d330dcd4c4dbb4cdd77c22a537"}, + {file = "pyzmq-26.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:f1a9b7d00fdf60b4039f4455afd031fe85ee8305b019334b72dcf73c567edc47"}, + {file = "pyzmq-26.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:80b12f25d805a919d53efc0a5ad7c0c0326f13b4eae981a5d7b7cc343318ebb7"}, + {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:a72a84570f84c374b4c287183debc776dc319d3e8ce6b6a0041ce2e400de3f32"}, + {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ca684ee649b55fd8f378127ac8462fb6c85f251c2fb027eb3c887e8ee347bcd"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e222562dc0f38571c8b1ffdae9d7adb866363134299264a1958d077800b193b7"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f17cde1db0754c35a91ac00b22b25c11da6eec5746431d6e5092f0cd31a3fea9"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b7c0c0b3244bb2275abe255d4a30c050d541c6cb18b870975553f1fb6f37527"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:ac97a21de3712afe6a6c071abfad40a6224fd14fa6ff0ff8d0c6e6cd4e2f807a"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:88b88282e55fa39dd556d7fc04160bcf39dea015f78e0cecec8ff4f06c1fc2b5"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:72b67f966b57dbd18dcc7efbc1c7fc9f5f983e572db1877081f075004614fcdd"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f4b6cecbbf3b7380f3b61de3a7b93cb721125dc125c854c14ddc91225ba52f83"}, + {file = "pyzmq-26.0.3-cp311-cp311-win32.whl", hash = "sha256:eed56b6a39216d31ff8cd2f1d048b5bf1700e4b32a01b14379c3b6dde9ce3aa3"}, + {file = "pyzmq-26.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:3191d312c73e3cfd0f0afdf51df8405aafeb0bad71e7ed8f68b24b63c4f36500"}, + {file = "pyzmq-26.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:b6907da3017ef55139cf0e417c5123a84c7332520e73a6902ff1f79046cd3b94"}, + {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:068ca17214038ae986d68f4a7021f97e187ed278ab6dccb79f837d765a54d753"}, + {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7821d44fe07335bea256b9f1f41474a642ca55fa671dfd9f00af8d68a920c2d4"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eeb438a26d87c123bb318e5f2b3d86a36060b01f22fbdffd8cf247d52f7c9a2b"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69ea9d6d9baa25a4dc9cef5e2b77b8537827b122214f210dd925132e34ae9b12"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7daa3e1369355766dea11f1d8ef829905c3b9da886ea3152788dc25ee6079e02"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:6ca7a9a06b52d0e38ccf6bca1aeff7be178917893f3883f37b75589d42c4ac20"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1b7d0e124948daa4d9686d421ef5087c0516bc6179fdcf8828b8444f8e461a77"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e746524418b70f38550f2190eeee834db8850088c834d4c8406fbb9bc1ae10b2"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:6b3146f9ae6af82c47a5282ac8803523d381b3b21caeae0327ed2f7ecb718798"}, + {file = "pyzmq-26.0.3-cp312-cp312-win32.whl", hash = "sha256:2b291d1230845871c00c8462c50565a9cd6026fe1228e77ca934470bb7d70ea0"}, + {file = "pyzmq-26.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:926838a535c2c1ea21c903f909a9a54e675c2126728c21381a94ddf37c3cbddf"}, + {file = "pyzmq-26.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:5bf6c237f8c681dfb91b17f8435b2735951f0d1fad10cc5dfd96db110243370b"}, + {file = "pyzmq-26.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c0991f5a96a8e620f7691e61178cd8f457b49e17b7d9cfa2067e2a0a89fc1d5"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dbf012d8fcb9f2cf0643b65df3b355fdd74fc0035d70bb5c845e9e30a3a4654b"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:01fbfbeb8249a68d257f601deb50c70c929dc2dfe683b754659569e502fbd3aa"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c8eb19abe87029c18f226d42b8a2c9efdd139d08f8bf6e085dd9075446db450"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:5344b896e79800af86ad643408ca9aa303a017f6ebff8cee5a3163c1e9aec987"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:204e0f176fd1d067671157d049466869b3ae1fc51e354708b0dc41cf94e23a3a"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a42db008d58530efa3b881eeee4991146de0b790e095f7ae43ba5cc612decbc5"}, + {file = "pyzmq-26.0.3-cp37-cp37m-win32.whl", hash = "sha256:8d7a498671ca87e32b54cb47c82a92b40130a26c5197d392720a1bce1b3c77cf"}, + {file = "pyzmq-26.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:3b4032a96410bdc760061b14ed6a33613ffb7f702181ba999df5d16fb96ba16a"}, + {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2cc4e280098c1b192c42a849de8de2c8e0f3a84086a76ec5b07bfee29bda7d18"}, + {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5bde86a2ed3ce587fa2b207424ce15b9a83a9fa14422dcc1c5356a13aed3df9d"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:34106f68e20e6ff253c9f596ea50397dbd8699828d55e8fa18bd4323d8d966e6"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ebbbd0e728af5db9b04e56389e2299a57ea8b9dd15c9759153ee2455b32be6ad"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6b1d1c631e5940cac5a0b22c5379c86e8df6a4ec277c7a856b714021ab6cfad"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e891ce81edd463b3b4c3b885c5603c00141151dd9c6936d98a680c8c72fe5c67"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9b273ecfbc590a1b98f014ae41e5cf723932f3b53ba9367cfb676f838038b32c"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b32bff85fb02a75ea0b68f21e2412255b5731f3f389ed9aecc13a6752f58ac97"}, + {file = "pyzmq-26.0.3-cp38-cp38-win32.whl", hash = "sha256:f6c21c00478a7bea93caaaef9e7629145d4153b15a8653e8bb4609d4bc70dbfc"}, + {file = "pyzmq-26.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:3401613148d93ef0fd9aabdbddb212de3db7a4475367f49f590c837355343972"}, + {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:2ed8357f4c6e0daa4f3baf31832df8a33334e0fe5b020a61bc8b345a3db7a606"}, + {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c1c8f2a2ca45292084c75bb6d3a25545cff0ed931ed228d3a1810ae3758f975f"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b63731993cdddcc8e087c64e9cf003f909262b359110070183d7f3025d1c56b5"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b3cd31f859b662ac5d7f4226ec7d8bd60384fa037fc02aee6ff0b53ba29a3ba8"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:115f8359402fa527cf47708d6f8a0f8234f0e9ca0cab7c18c9c189c194dbf620"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:715bdf952b9533ba13dfcf1f431a8f49e63cecc31d91d007bc1deb914f47d0e4"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e1258c639e00bf5e8a522fec6c3eaa3e30cf1c23a2f21a586be7e04d50c9acab"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:15c59e780be8f30a60816a9adab900c12a58d79c1ac742b4a8df044ab2a6d920"}, + {file = "pyzmq-26.0.3-cp39-cp39-win32.whl", hash = "sha256:d0cdde3c78d8ab5b46595054e5def32a755fc028685add5ddc7403e9f6de9879"}, + {file = "pyzmq-26.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:ce828058d482ef860746bf532822842e0ff484e27f540ef5c813d516dd8896d2"}, + {file = "pyzmq-26.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:788f15721c64109cf720791714dc14afd0f449d63f3a5487724f024345067381"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c18645ef6294d99b256806e34653e86236eb266278c8ec8112622b61db255de"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e6bc96ebe49604df3ec2c6389cc3876cabe475e6bfc84ced1bf4e630662cb35"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:971e8990c5cc4ddcff26e149398fc7b0f6a042306e82500f5e8db3b10ce69f84"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8416c23161abd94cc7da80c734ad7c9f5dbebdadfdaa77dad78244457448223"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:082a2988364b60bb5de809373098361cf1dbb239623e39e46cb18bc035ed9c0c"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d57dfbf9737763b3a60d26e6800e02e04284926329aee8fb01049635e957fe81"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:77a85dca4c2430ac04dc2a2185c2deb3858a34fe7f403d0a946fa56970cf60a1"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4c82a6d952a1d555bf4be42b6532927d2a5686dd3c3e280e5f63225ab47ac1f5"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4496b1282c70c442809fc1b151977c3d967bfb33e4e17cedbf226d97de18f709"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:e4946d6bdb7ba972dfda282f9127e5756d4f299028b1566d1245fa0d438847e6"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:03c0ae165e700364b266876d712acb1ac02693acd920afa67da2ebb91a0b3c09"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:3e3070e680f79887d60feeda051a58d0ac36622e1759f305a41059eff62c6da7"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6ca08b840fe95d1c2bd9ab92dac5685f949fc6f9ae820ec16193e5ddf603c3b2"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e76654e9dbfb835b3518f9938e565c7806976c07b37c33526b574cc1a1050480"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:871587bdadd1075b112e697173e946a07d722459d20716ceb3d1bd6c64bd08ce"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d0a2d1bd63a4ad79483049b26514e70fa618ce6115220da9efdff63688808b17"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0270b49b6847f0d106d64b5086e9ad5dc8a902413b5dbbb15d12b60f9c1747a4"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:703c60b9910488d3d0954ca585c34f541e506a091a41930e663a098d3b794c67"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74423631b6be371edfbf7eabb02ab995c2563fee60a80a30829176842e71722a"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4adfbb5451196842a88fda3612e2c0414134874bffb1c2ce83ab4242ec9e027d"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3516119f4f9b8671083a70b6afaa0a070f5683e431ab3dc26e9215620d7ca1ad"}, + {file = "pyzmq-26.0.3.tar.gz", hash = "sha256:dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] + +[[package]] +name = "scipy" +version = "1.13.1" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, + {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f"}, + {file = "scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94"}, + {file = "scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa"}, + {file = "scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59"}, + {file = "scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884"}, + {file = "scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16"}, + {file = "scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d"}, + {file = "scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c"}, + {file = "scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2"}, + {file = "scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c"}, +] + +[package.dependencies] +numpy = ">=1.22.4,<2.3" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] +test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "seaborn" +version = "0.13.2" +description = "Statistical data visualization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "seaborn-0.13.2-py3-none-any.whl", hash = "sha256:636f8336facf092165e27924f223d3c62ca560b1f2bb5dff7ab7fad265361987"}, + {file = "seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7"}, +] + +[package.dependencies] +matplotlib = ">=3.4,<3.6.1 || >3.6.1" +numpy = ">=1.20,<1.24.0 || >1.24.0" +pandas = ">=1.2" + +[package.extras] +dev = ["flake8", "flit", "mypy", "pandas-stubs", "pre-commit", "pytest", "pytest-cov", "pytest-xdist"] +docs = ["ipykernel", "nbconvert", "numpydoc", "pydata_sphinx_theme (==0.10.0rc2)", "pyyaml", "sphinx (<6.0.0)", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] +stats = ["scipy (>=1.7)", "statsmodels (>=0.12)"] + +[[package]] +name = "send2trash" +version = "1.8.3" +description = "Send file to trash natively under Mac OS X, Windows and Linux" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, + {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, +] + +[package.extras] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "setuptools" +version = "70.0.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4"}, + {file = "setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "smmap" +version = "5.0.1" +description = "A pure Python implementation of a sliding window memory map manager" +optional = false +python-versions = ">=3.7" +files = [ + {file = "smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"}, + {file = "smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "snowballstemmer" +version = "2.2.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +optional = false +python-versions = "*" +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] + +[[package]] +name = "soupsieve" +version = "2.5" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +files = [ + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, +] + +[[package]] +name = "sphinx" +version = "4.5.0" +description = "Python documentation generator" +optional = false +python-versions = ">=3.6" +files = [ + {file = "Sphinx-4.5.0-py3-none-any.whl", hash = "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"}, + {file = "Sphinx-4.5.0.tar.gz", hash = "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6"}, +] + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=1.3" +colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.14,<0.18" +imagesize = "*" +Jinja2 = ">=2.3" +packaging = "*" +Pygments = ">=2.0" +requests = ">=2.5.0" +snowballstemmer = ">=1.1" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = ">=2.0.0" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = ">=1.1.5" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "isort", "mypy (>=0.931)", "types-requests", "types-typed-ast"] +test = ["cython", "html5lib", "pytest", "pytest-cov", "typed-ast"] + +[[package]] +name = "sphinx-rtd-theme" +version = "0.4.3" +description = "Read the Docs theme for Sphinx" +optional = false +python-versions = "*" +files = [ + {file = "sphinx_rtd_theme-0.4.3-py2.py3-none-any.whl", hash = "sha256:00cf895504a7895ee433807c62094cf1e95f065843bf3acd17037c3e9a2becd4"}, + {file = "sphinx_rtd_theme-0.4.3.tar.gz", hash = "sha256:728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a"}, +] + +[package.dependencies] +sphinx = "*" + +[[package]] +name = "sphinx-togglebutton" +version = "0.3.2" +description = "Toggle page content and collapse admonitions in Sphinx." +optional = false +python-versions = "*" +files = [ + {file = "sphinx-togglebutton-0.3.2.tar.gz", hash = "sha256:ab0c8b366427b01e4c89802d5d078472c427fa6e9d12d521c34fa0442559dc7a"}, + {file = "sphinx_togglebutton-0.3.2-py3-none-any.whl", hash = "sha256:9647ba7874b7d1e2d43413d8497153a85edc6ac95a3fea9a75ef9c1e08aaae2b"}, +] + +[package.dependencies] +docutils = "*" +setuptools = "*" +sphinx = "*" +wheel = "*" + +[package.extras] +sphinx = ["matplotlib", "myst-nb", "numpy", "sphinx-book-theme", "sphinx-design", "sphinx-examples"] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.8" +description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_applehelp-1.0.8-py3-none-any.whl", hash = "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"}, + {file = "sphinxcontrib_applehelp-1.0.8.tar.gz", hash = "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.6" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_devhelp-1.0.6-py3-none-any.whl", hash = "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f"}, + {file = "sphinxcontrib_devhelp-1.0.6.tar.gz", hash = "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.5" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_htmlhelp-2.0.5-py3-none-any.whl", hash = "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"}, + {file = "sphinxcontrib_htmlhelp-2.0.5.tar.gz", hash = "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["html5lib", "pytest"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +optional = false +python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] + +[package.extras] +test = ["flake8", "mypy", "pytest"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.7" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_qthelp-1.0.7-py3-none-any.whl", hash = "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"}, + {file = "sphinxcontrib_qthelp-1.0.7.tar.gz", hash = "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.10" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_serializinghtml-1.1.10-py3-none-any.whl", hash = "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7"}, + {file = "sphinxcontrib_serializinghtml-1.1.10.tar.gz", hash = "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sqlalchemy" +version = "1.4.52" +description = "Database Abstraction Library" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "SQLAlchemy-1.4.52-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:f68016f9a5713684c1507cc37133c28035f29925c75c0df2f9d0f7571e23720a"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24bb0f81fbbb13d737b7f76d1821ec0b117ce8cbb8ee5e8641ad2de41aa916d3"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e93983cc0d2edae253b3f2141b0a3fb07e41c76cd79c2ad743fc27eb79c3f6db"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:84e10772cfc333eb08d0b7ef808cd76e4a9a30a725fb62a0495877a57ee41d81"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:427988398d2902de042093d17f2b9619a5ebc605bf6372f7d70e29bde6736842"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-win32.whl", hash = "sha256:1296f2cdd6db09b98ceb3c93025f0da4835303b8ac46c15c2136e27ee4d18d94"}, + {file = "SQLAlchemy-1.4.52-cp310-cp310-win_amd64.whl", hash = "sha256:80e7f697bccc56ac6eac9e2df5c98b47de57e7006d2e46e1a3c17c546254f6ef"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2f251af4c75a675ea42766880ff430ac33291c8d0057acca79710f9e5a77383d"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb8f9e4c4718f111d7b530c4e6fb4d28f9f110eb82e7961412955b3875b66de0"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afb1672b57f58c0318ad2cff80b384e816735ffc7e848d8aa51e0b0fc2f4b7bb"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-win32.whl", hash = "sha256:6e41cb5cda641f3754568d2ed8962f772a7f2b59403b95c60c89f3e0bd25f15e"}, + {file = "SQLAlchemy-1.4.52-cp311-cp311-win_amd64.whl", hash = "sha256:5bed4f8c3b69779de9d99eb03fd9ab67a850d74ab0243d1be9d4080e77b6af12"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:49e3772eb3380ac88d35495843daf3c03f094b713e66c7d017e322144a5c6b7c"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:618827c1a1c243d2540314c6e100aee7af09a709bd005bae971686fab6723554"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de9acf369aaadb71a725b7e83a5ef40ca3de1cf4cdc93fa847df6b12d3cd924b"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-win32.whl", hash = "sha256:763bd97c4ebc74136ecf3526b34808c58945023a59927b416acebcd68d1fc126"}, + {file = "SQLAlchemy-1.4.52-cp312-cp312-win_amd64.whl", hash = "sha256:f12aaf94f4d9679ca475975578739e12cc5b461172e04d66f7a3c39dd14ffc64"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:853fcfd1f54224ea7aabcf34b227d2b64a08cbac116ecf376907968b29b8e763"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f98dbb8fcc6d1c03ae8ec735d3c62110949a3b8bc6e215053aa27096857afb45"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e135fff2e84103bc15c07edd8569612ce317d64bdb391f49ce57124a73f45c5"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5b5de6af8852500d01398f5047d62ca3431d1e29a331d0b56c3e14cb03f8094c"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3491c85df263a5c2157c594f54a1a9c72265b75d3777e61ee13c556d9e43ffc9"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-win32.whl", hash = "sha256:427c282dd0deba1f07bcbf499cbcc9fe9a626743f5d4989bfdfd3ed3513003dd"}, + {file = "SQLAlchemy-1.4.52-cp36-cp36m-win_amd64.whl", hash = "sha256:ca5ce82b11731492204cff8845c5e8ca1a4bd1ade85e3b8fcf86e7601bfc6a39"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:29d4247313abb2015f8979137fe65f4eaceead5247d39603cc4b4a610936cd2b"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a752bff4796bf22803d052d4841ebc3c55c26fb65551f2c96e90ac7c62be763a"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7ea11727feb2861deaa293c7971a4df57ef1c90e42cb53f0da40c3468388000"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d913f8953e098ca931ad7f58797f91deed26b435ec3756478b75c608aa80d139"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a251146b921725547ea1735b060a11e1be705017b568c9f8067ca61e6ef85f20"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-win32.whl", hash = "sha256:1f8e1c6a6b7f8e9407ad9afc0ea41c1f65225ce505b79bc0342159de9c890782"}, + {file = "SQLAlchemy-1.4.52-cp37-cp37m-win_amd64.whl", hash = "sha256:346ed50cb2c30f5d7a03d888e25744154ceac6f0e6e1ab3bc7b5b77138d37710"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:4dae6001457d4497736e3bc422165f107ecdd70b0d651fab7f731276e8b9e12d"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5d2e08d79f5bf250afb4a61426b41026e448da446b55e4770c2afdc1e200fce"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bbce5dd7c7735e01d24f5a60177f3e589078f83c8a29e124a6521b76d825b85"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bdb7b4d889631a3b2a81a3347c4c3f031812eb4adeaa3ee4e6b0d028ad1852b5"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c294ae4e6bbd060dd79e2bd5bba8b6274d08ffd65b58d106394cb6abbf35cf45"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-win32.whl", hash = "sha256:bcdfb4b47fe04967669874fb1ce782a006756fdbebe7263f6a000e1db969120e"}, + {file = "SQLAlchemy-1.4.52-cp38-cp38-win_amd64.whl", hash = "sha256:7d0dbc56cb6af5088f3658982d3d8c1d6a82691f31f7b0da682c7b98fa914e91"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:a551d5f3dc63f096ed41775ceec72fdf91462bb95abdc179010dc95a93957800"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ab773f9ad848118df7a9bbabca53e3f1002387cdbb6ee81693db808b82aaab0"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2de46f5d5396d5331127cfa71f837cca945f9a2b04f7cb5a01949cf676db7d1"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7027be7930a90d18a386b25ee8af30514c61f3852c7268899f23fdfbd3107181"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99224d621affbb3c1a4f72b631f8393045f4ce647dd3262f12fe3576918f8bf3"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-win32.whl", hash = "sha256:c124912fd4e1bb9d1e7dc193ed482a9f812769cb1e69363ab68e01801e859821"}, + {file = "SQLAlchemy-1.4.52-cp39-cp39-win_amd64.whl", hash = "sha256:2c286fab42e49db23c46ab02479f328b8bdb837d3e281cae546cc4085c83b680"}, + {file = "SQLAlchemy-1.4.52.tar.gz", hash = "sha256:80e63bbdc5217dad3485059bdf6f65a7d43f33c8bde619df5c220edf03d87296"}, +] + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\")"} + +[package.extras] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)", "sqlalchemy2-stubs"] +mysql = ["mysqlclient (>=1.4.0)", "mysqlclient (>=1.4.0,<2)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=7)", "cx_oracle (>=7,<8)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +pymysql = ["pymysql", "pymysql (<1)"] +sqlcipher = ["sqlcipher3_binary"] + +[[package]] +name = "stack-data" +version = "0.6.3" +description = "Extract data from python stack frames and tracebacks for informative displays" +optional = false +python-versions = "*" +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + +[[package]] +name = "terminado" +version = "0.18.1" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, + {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, +] + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] + +[[package]] +name = "tinycss2" +version = "1.3.0" +description = "A tiny CSS parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tinycss2-1.3.0-py3-none-any.whl", hash = "sha256:54a8dbdffb334d536851be0226030e9505965bb2f30f21a4a82c55fb2a80fae7"}, + {file = "tinycss2-1.3.0.tar.gz", hash = "sha256:152f9acabd296a8375fbca5b84c961ff95971fcfc32e79550c8df8e29118c54d"}, +] + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["pytest", "ruff"] + +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] + +[[package]] +name = "toolz" +version = "0.12.1" +description = "List processing tools and functional utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "toolz-0.12.1-py3-none-any.whl", hash = "sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85"}, + {file = "toolz-0.12.1.tar.gz", hash = "sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"}, +] + +[[package]] +name = "tornado" +version = "6.4.1" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">=3.8" +files = [ + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"}, + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"}, + {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"}, + {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"}, + {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"}, +] + +[[package]] +name = "tqdm" +version = "4.66.4" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tqdm-4.66.4-py3-none-any.whl", hash = "sha256:b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644"}, + {file = "tqdm-4.66.4.tar.gz", hash = "sha256:e4d936c9de8727928f3be6079590e97d9abfe8d39a590be678eb5919ffc186bb"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "traitlets" +version = "5.14.3" +description = "Traitlets Python configuration system" +optional = false +python-versions = ">=3.8" +files = [ + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, +] + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] + +[[package]] +name = "typeguard" +version = "2.13.3" +description = "Run-time type checker for Python" +optional = false +python-versions = ">=3.5.3" +files = [ + {file = "typeguard-2.13.3-py3-none-any.whl", hash = "sha256:5e3e3be01e887e7eafae5af63d1f36c849aaa94e3a0112097312aabfa16284f1"}, + {file = "typeguard-2.13.3.tar.gz", hash = "sha256:00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4"}, +] + +[package.extras] +doc = ["sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["mypy", "pytest", "typing-extensions"] + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20240316" +description = "Typing stubs for python-dateutil" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-python-dateutil-2.9.0.20240316.tar.gz", hash = "sha256:5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202"}, + {file = "types_python_dateutil-2.9.0.20240316-py3-none-any.whl", hash = "sha256:6b8cb66d960771ce5ff974e9dd45e38facb81718cc1e208b10b1baccbfdbee3b"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "tzdata" +version = "2024.1" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +description = "RFC 6570 URI Template Processor" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, +] + +[package.extras] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] + +[[package]] +name = "urllib3" +version = "2.2.1" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "wcwidth" +version = "0.2.13" +description = "Measures the displayed width of unicode strings in a terminal" +optional = false +python-versions = "*" +files = [ + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, +] + +[[package]] +name = "webcolors" +version = "24.6.0" +description = "A library for working with the color formats defined by HTML and CSS." +optional = false +python-versions = ">=3.8" +files = [ + {file = "webcolors-24.6.0-py3-none-any.whl", hash = "sha256:8cf5bc7e28defd1d48b9e83d5fc30741328305a8195c29a8e668fa45586568a1"}, + {file = "webcolors-24.6.0.tar.gz", hash = "sha256:1d160d1de46b3e81e58d0a280d0c78b467dc80f47294b91b1ad8029d2cedb55b"}, +] + +[package.extras] +docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] +tests = ["coverage[toml]"] + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websocket-client" +version = "1.8.0" +description = "WebSocket client for Python with low level API options" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, + {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, +] + +[package.extras] +docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[[package]] +name = "wheel" +version = "0.43.0" +description = "A built-package format for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "wheel-0.43.0-py3-none-any.whl", hash = "sha256:55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81"}, + {file = "wheel-0.43.0.tar.gz", hash = "sha256:465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85"}, +] + +[package.extras] +test = ["pytest (>=6.0.0)", "setuptools (>=65)"] + +[[package]] +name = "widgetsnbextension" +version = "3.6.6" +description = "IPython HTML widgets for Jupyter" +optional = false +python-versions = "*" +files = [ + {file = "widgetsnbextension-3.6.6-py2.py3-none-any.whl", hash = "sha256:e7fb9999845affc9024ecfbe0a824dd8e633403d027b28ceadab398b633ad51c"}, + {file = "widgetsnbextension-3.6.6.tar.gz", hash = "sha256:46f4e3cb2d451bbd6141a13696d6ba17c9b5f50645dca9cfd26fe9644d5a00e1"}, +] + +[package.dependencies] +notebook = ">=4.4.1" + +[[package]] +name = "xarray" +version = "2022.9.0" +description = "N-D labeled arrays and datasets in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "xarray-2022.9.0-py3-none-any.whl", hash = "sha256:baa7c1a9135198435a2cfb2c68e8b1fdd100d8a44ddaece6031116f585734da7"}, + {file = "xarray-2022.9.0.tar.gz", hash = "sha256:a2a5b48ec0a3890b71ef48853fe9d5107d2f75452722f319cb8ed6ff8e72e883"}, +] + +[package.dependencies] +numpy = ">=1.19" +packaging = ">=20.0" +pandas = ">=1.2" + +[package.extras] +accel = ["bottleneck", "flox", "numbagg", "scipy"] +complete = ["bottleneck", "cfgrib", "cftime", "dask[complete]", "flox", "fsspec", "h5netcdf", "matplotlib", "nc-time-axis", "netCDF4", "numbagg", "pooch", "pydap", "rasterio", "scipy", "seaborn", "zarr"] +docs = ["bottleneck", "cfgrib", "cftime", "dask[complete]", "flox", "fsspec", "h5netcdf", "ipykernel", "ipython", "jupyter-client", "matplotlib", "nbsphinx", "nc-time-axis", "netCDF4", "numbagg", "pooch", "pydap", "rasterio", "scanpydoc", "scipy", "seaborn", "sphinx-autosummary-accessors", "sphinx-rtd-theme", "zarr"] +io = ["cfgrib", "cftime", "fsspec", "h5netcdf", "netCDF4", "pooch", "pydap", "rasterio", "scipy", "zarr"] +parallel = ["dask[complete]"] +viz = ["matplotlib", "nc-time-axis", "seaborn"] + +[[package]] +name = "xarray-einstats" +version = "0.7.0" +description = "Stats, linear algebra and einops for xarray" +optional = false +python-versions = ">=3.9" +files = [ + {file = "xarray_einstats-0.7.0-py3-none-any.whl", hash = "sha256:f39403341ebf5b634ab1f1bd0e1bb2dc51046e0df31aa908dfbe2fa6a493712e"}, + {file = "xarray_einstats-0.7.0.tar.gz", hash = "sha256:2d7b571b3bbad3cf2fd10c6c75fd949d247d14c29574184c8489d9d607278d38"}, +] + +[package.dependencies] +numpy = ">=1.22" +scipy = ">=1.8" +xarray = ">=2022.09.0" + +[package.extras] +doc = ["furo", "jupyter-sphinx", "matplotlib", "myst-nb", "myst-parser[linkify]", "numpydoc", "sphinx (>=5)", "sphinx-copybutton", "sphinx-design", "sphinx-togglebutton", "watermark"] +einops = ["einops"] +numba = ["numba (>=0.55)"] +test = ["hypothesis", "packaging", "pytest", "pytest-cov"] + +[[package]] +name = "xlsxwriter" +version = "1.4.5" +description = "A Python module for creating Excel XLSX files." +optional = false +python-versions = "*" +files = [ + {file = "XlsxWriter-1.4.5-py2.py3-none-any.whl", hash = "sha256:f9335f1736e2c4fd80e940fe1b6d92d967bf454a1e5d639b0b7a4459ade790cc"}, + {file = "XlsxWriter-1.4.5.tar.gz", hash = "sha256:0956747859567ec01907e561a7d8413de18a7aae36860f979f9da52b9d58bc19"}, +] + +[[package]] +name = "zipp" +version = "3.19.2" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, + {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, +] + +[package.extras] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.11" +content-hash = "1d4252501e2f94d66e6efff363c91149a47c19134dfc50fd77f39357780b420b" diff --git a/pyproject.toml b/pyproject.toml index e4589f39..1201f570 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,7 +18,7 @@ pytest = "^6.2.1" python-dateutil = "^2.8.1" pytz = "^2020.5" scipy = "^1.6.0" -seaborn = "^0.11.1" +seaborn = "^0.13" six = "^1.15.0" toml = "^0.10.2" typing-extensions = "^4" @@ -27,10 +27,12 @@ sphinx-rtd-theme = "^0.4" myst-nb = "^0.13.1" autograd = "^1.3" jax = "^0.4" -equinox = "^0.9" +equinox = "^0.11" numpyro = "^0.14" arviz = "^0.13" optax = "^0.1" +matplotlib = "^3.9" + [tool.black] line-length = 120 From 9db155652df6f9ce6d97070f478b12991ffe9e36 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Mon, 10 Jun 2024 18:45:13 +0200 Subject: [PATCH 017/196] initial graph worlds version --- poetry.lock | 20 ++++++- pymdp/jax/envs/__init__.py | 1 + pymdp/jax/envs/graph_worlds.py | 100 +++++++++++++++++++++++++++++++++ pyproject.toml | 1 + 4 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 pymdp/jax/envs/graph_worlds.py diff --git a/poetry.lock b/poetry.lock index 322a9a78..99700dc6 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2209,6 +2209,24 @@ numpy = "*" [package.extras] tests = ["Cython", "packaging", "pytest"] +[[package]] +name = "networkx" +version = "3.3" +description = "Python package for creating and manipulating graphs and networks" +optional = false +python-versions = ">=3.10" +files = [ + {file = "networkx-3.3-py3-none-any.whl", hash = "sha256:28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2"}, + {file = "networkx-3.3.tar.gz", hash = "sha256:0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9"}, +] + +[package.extras] +default = ["matplotlib (>=3.6)", "numpy (>=1.23)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.5)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["myst-nb (>=1.0)", "numpydoc (>=1.7)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=2.0)", "pygraphviz (>=1.12)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] + [[package]] name = "notebook" version = "6.5.4" @@ -3838,4 +3856,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "1d4252501e2f94d66e6efff363c91149a47c19134dfc50fd77f39357780b420b" +content-hash = "e11c27bafde36c4c7992e0d8fed795bffd84bc0ce6b9bde87c8ab720914e40ba" diff --git a/pymdp/jax/envs/__init__.py b/pymdp/jax/envs/__init__.py index 272981b0..afac7577 100644 --- a/pymdp/jax/envs/__init__.py +++ b/pymdp/jax/envs/__init__.py @@ -1 +1,2 @@ from .env import PyMDPEnv +from .graph_worlds import GraphEnv diff --git a/pymdp/jax/envs/graph_worlds.py b/pymdp/jax/envs/graph_worlds.py new file mode 100644 index 00000000..38c76f8f --- /dev/null +++ b/pymdp/jax/envs/graph_worlds.py @@ -0,0 +1,100 @@ +import networkx as nx +import jax.numpy as jnp + +from .env import PyMDPEnv + + +class GraphEnv(PyMDPEnv): + + def __init__(self, graph: nx.Graph, object_location: int, agent_location: int, key=None): + A, A_dependencies = self.generate_A(graph) + B, B_dependencies = self.generate_B(graph) + D = self.generate_D(graph, object_location, agent_location) + + params = { + "A": A, + "B": B, + "D": D, + } + + dependencies = { + "A": A_dependencies, + "B": B_dependencies, + } + + super().__init__(params, dependencies) + + def generate_A(self, graph: nx.Graph): + A = [] + A_dependencies = [] + + num_locations = len(graph.nodes) + num_object_locations = num_locations + 1 # +1 for "not here" + p = 1.0 # probability of seeing object if it is at the same location as the agent + + # Agent location modality + A.append(jnp.eye(num_locations)) + A_dependencies.append([0]) + + # Object visibility modality + A.append(jnp.zeros((2, num_locations, num_object_locations))) + + for agent_loc in range(num_locations): + for object_loc in range(num_locations): + if agent_loc == object_loc: + # object seen + A[1] = A[1].at[0, agent_loc, object_loc].set(1 - p) + A[1] = A[1].at[1, agent_loc, object_loc].set(p) + else: + A[1] = A[1].at[0, agent_loc, object_loc].set(p) + A[1] = A[1].at[1, agent_loc, object_loc].set(1.0 - p) + + # object not here, we can't see it anywhere + A[1] = A[1].at[0, :, -1].set(1.0) + A[1] = A[1].at[1, :, -1].set(0.0) + + A_dependencies.append([0, 1]) + return A, A_dependencies + + def generate_B(self, graph: nx.Graph): + B = [] + B_dependencies = [] + + num_locations = len(graph.nodes) + num_object_locations = num_locations + 1 + + # Own location transitions, based on graph connectivity + B.append(jnp.zeros((num_locations, num_locations, num_locations))) + for action in range(num_locations): + for from_loc in range(num_locations): + for to_loc in range(num_locations): + if action == to_loc: + # we transition if connected in graph + if graph.has_edge(from_loc, to_loc): + B[0] = B[0].at[to_loc, from_loc, action].set(1.0) + else: + B[0] = B[0].at[from_loc, from_loc, action].set(1.0) + + B_dependencies.append([0]) + + # Objects don't move + B.append(jnp.zeros((num_object_locations, num_object_locations, 1))) + B[1] = B[1].at[:, :, 0].set(jnp.eye(num_object_locations)) + B_dependencies.append([1]) + + return B, B_dependencies + + def generate_D(self, graph: nx.Graph, object_location: int, agent_location: int): + num_locations = len(graph.nodes) + num_object_locations = num_locations + 1 + + states = [num_locations, num_object_locations] + D = [] + for s in states: + D.append(jnp.zeros(s)) + + # set the start locations + D[0] = D[0].at[agent_location].set(1.0) + D[1] = D[1].at[object_location].set(1.0) + + return D diff --git a/pyproject.toml b/pyproject.toml index 1201f570..a80150b8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,6 +32,7 @@ numpyro = "^0.14" arviz = "^0.13" optax = "^0.1" matplotlib = "^3.9" +networkx = "^3.3" [tool.black] From ad9c09859dcc01422cbfb4a2b1600c9a02f42b97 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 09:51:06 +0200 Subject: [PATCH 018/196] named distribution implementation First past of implementation for named distribution for easy manipulation and inspection of discrete conditional probability distributions. --- pymdp/jax/distribution.py | 101 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 pymdp/jax/distribution.py diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py new file mode 100644 index 00000000..4fb0ba82 --- /dev/null +++ b/pymdp/jax/distribution.py @@ -0,0 +1,101 @@ +import numpy as np + + +class Distribution: + + def __init__(self, data: np.ndarray, event: dict, batch: dict): + self.data = data + self.event = event + self.batch = batch + + self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} + self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} + + def get(self, batch=None, event=None): + event_slices = self._get_slices(event, self.event_indices, self.event) + batch_slices = self._get_slices(batch, self.batch_indices, self.batch) + + slices = event_slices + batch_slices + return self.data[tuple(slices)] + + def set(self, batch=None, event=None, values=None): + event_slices = self._get_slices(event, self.event_indices, self.event) + batch_slices = self._get_slices(batch, self.batch_indices, self.batch) + + slices = event_slices + batch_slices + self.data[tuple(slices)] = values + + def _get_slices(self, keys, indices, full_indices): + slices = [] + if keys is None: + return [slice(None)] * len(full_indices) + for key in full_indices: + if key in keys: + if isinstance(keys[key], list): + slices.append([self._get_index(v, indices[key]) for v in keys[key]]) + else: + slices.append(self._get_index(keys[key], indices[key])) + else: + slices.append(slice(None)) + return slices + + def _get_index(self, key, index_map): + if isinstance(key, int): + return key + else: + return index_map[key] + + def _get_index_from_axis(self, axis, element): + if isinstance(element, slice): + return slice(None) + if axis < len(self.event): + key = list(self.event.keys())[axis] + index_map = self.event_indices[key] + else: + key = list(self.batch.keys())[axis - len(self.event)] + index_map = self.batch_indices[key] + return self._get_index(element, index_map) + + def __getitem__(self, indices): + if not isinstance(indices, tuple): + indices = (indices,) + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + return self.data[tuple(index_list)] + + def __setitem__(self, indices, value): + if not isinstance(indices, tuple): + indices = (indices,) + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + self.data[tuple(index_list)] = value + + +if __name__ == "__main__": + controls = ["up", "down"] + locations = ["A", "B", "C", "D"] + + data = np.zeros((len(locations), len(locations), len(controls))) + transition = Distribution(data, {"location": locations}, {"location": locations, "control": controls}) + + assert transition["A", "B", "up"] == 0.0 + assert transition[:, "B", "up"].shape == (4,) + assert transition["A", "B", :].shape == (2,) + assert transition[:, "B", :].shape == (4, 2) + assert transition[:, :, :].shape == (4, 4, 2) + assert transition[0, "B", 0] == 0.0 + assert transition[:, "B", 0].shape == (4,) + + transition["A", "B", "up"] = 0.5 + assert transition["A", "B", "up"] == 0.5 + transition[:, "B", "up"] = np.ones(4) + assert np.all(transition[:, "B", "up"] == 1.0) + + assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 + assert transition.get({"control": "up"}).shape == (4, 4) + + transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 + transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 + transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) + assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) From 6d83206264d69d898a9fc813b854f21978823915 Mon Sep 17 00:00:00 2001 From: Dimitrije Markovic <5038100+dimarkov@users.noreply.github.com> Date: Tue, 11 Jun 2024 10:08:37 +0200 Subject: [PATCH 019/196] updated example --- .../inference_methods_comparison.ipynb | 147 +++++++++++------- 1 file changed, 88 insertions(+), 59 deletions(-) diff --git a/examples/inference_and_learning/inference_methods_comparison.ipynb b/examples/inference_and_learning/inference_methods_comparison.ipynb index 1c42052b..50c04df4 100644 --- a/examples/inference_and_learning/inference_methods_comparison.ipynb +++ b/examples/inference_and_learning/inference_methods_comparison.ipynb @@ -2,13 +2,17 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import jax.numpy as jnp\n", - "from jax import tree_util as jtu\n", - "from pymdp.jax.agent import Agent\n" + "from jax import tree_util as jtu, nn, vmap\n", + "from pymdp.jax.agent import Agent\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "from pymdp.jax.inference import smoothing_ovf\n" ] }, { @@ -20,73 +24,49 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-06-11 10:06:09.636131: W external/xla/xla/service/gpu/nvptx_compiler.cc:760] The NVIDIA driver's CUDA version is 12.3 which is older than the ptxas CUDA version (12.5.40). Because the driver is older than the ptxas version, XLA is disabling parallel compilation, which may slow down compilation. You should update your NVIDIA driver or use the NVIDIA-provided CUDA forward compatibility packages.\n" + ] + } + ], "source": [ "num_states = [3, 2]\n", "num_obs = [3]\n", "\n", - "A_tensor = jnp.stack([jnp.array([[0.5, 0.5, 0.], \n", - " [0.0, 0.0, 1.], \n", - " [0.5, 0.5, 0.]]\n", - " ), jnp.array([[1./3, 1./3, 1./3], \n", - " [1./3, 1./3, 1./3], \n", - " [1./3, 1./3, 1./3]]\n", - " )], axis=-1)\n", + "A_1 = jnp.array([[1.0, 1.0, 1.0], [0.0, 0.0, 1.]])\n", + "A_2 = jnp.array([[1.0, 1.0], [1., 0.]])\n", "\n", - "A = [ jnp.broadcast_to(A_tensor, (2, 3, 3, 2)) ]\n", + "A_tensor = A_1[..., None] * A_2[:, None]\n", "\n", - "# create two B matrices, one for each action\n", - "B_1 = jnp.broadcast_to(jnp.array([[0.0, 0.75, 0.0],\n", - " [0.0, 0.25, 1.0],\n", - " [1.0, 0.0, 0.0]]\n", - " ), (2, 3, 3))\n", + "A_tensor /= A_tensor.sum(0)\n", "\n", - "B_2 = jnp.broadcast_to(jnp.array([[0.0, 0.25, 0.0],\n", - " [0.0, 0.75, 0.0],\n", - " [1.0, 0.0, 1.0]]\n", - " ), (2, 3, 3))\n", + "A = [jnp.broadcast_to(A_tensor, (2, 2, 3, 2)) ]\n", "\n", - "B_uncontrollable = jnp.expand_dims(\n", - " jnp.broadcast_to(\n", - " jnp.array([[1.0, 0.0], [0.0, 1.0]]), (2, 2, 2)\n", - " ), \n", - " -1\n", + "# create two transition matrices, one for each state factor\n", + "B_1 = jnp.broadcast_to(\n", + " jnp.array([[0.0, 1.0, 0.0], [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]]), (2, 3, 3)\n", ")\n", "\n", - "B = [jnp.stack([B_1, B_2], axis=-1), B_uncontrollable]\n", - "\n", - "# create a policy-dependent sequence of B matrices\n", - "\n", - "policy_1 = jnp.array([ [0, 0],\n", - " [1, 0],\n", - " [1, 0] ]\n", - " )\n", - "\n", - "policy_2 = jnp.array([ [1, 0],\n", - " [1, 0],\n", - " [1, 0] ]\n", - " )\n", + "B_2 = jnp.broadcast_to(\n", + " jnp.array([[0.0, 1.0], [1.0, 0.0]]), (2, 2, 2)\n", + " )\n", "\n", - "policy_3 = jnp.array([ [1, 0],\n", - " [0, 0],\n", - " [1, 0] ]\n", - " )\n", - "\n", - "all_policies = [policy_1, policy_2, policy_3]\n", - "n_policies = len(all_policies)\n", - "all_policies = list(jnp.stack(all_policies).transpose(2, 0, 1)) # `n_factors` lists, each with matrix of shape `(n_policies, n_time_steps)`\n", + "B = [B_1[..., None], B_2[..., None]]\n", "\n", "# for the single modality, a sequence over time of observations (one hot vectors)\n", - "obs = [jnp.broadcast_to(jnp.array([[1., 0., 0.], # observation 0 is ambiguous with respect to hidden state_1 and hidden_state 2\n", - " [0., 1., 0.], # observation 1 yields certain inference over hidden_state_1 = 2\n", - " [0., 0., 1.], # observation 2 is ambiguous with respect to hidden state_1 and hidden_state 2\n", - " [1., 0., 0.]])[:, None], (4, 2, 3) )] # observation 0 is ambiguous with respect to hidden state_1 and hidden_state 2\n", - "\n", - "C = [jnp.ones((2,3))] # flat preferences\n", + "obs = [jnp.broadcast_to(jnp.array([[1., 0.], # observation 0 is ambiguous with respect state factors\n", + " [1., 0], # observation 0 is ambiguous with respect state factors\n", + " [1., 0], # observation 0 is ambiguous with respect state factors\n", + " [0., 1.]])[:, None], (4, 2, 2) )] # observation 1 provides information about exact state of both factors \n", + "C = [jnp.zeros((2, 2))] # flat preferences\n", "D = [jnp.ones((2, 3)) / 3., jnp.ones((2, 2)) / 2.] # flat prior\n", - "E = jnp.ones((2,n_policies))/n_policies\n" + "E = jnp.ones((2, 1))\n" ] }, { @@ -98,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -119,6 +99,7 @@ " gamma=16.0,\n", " alpha=16.0,\n", " use_utility=True,\n", + " onehot_obs=True,\n", " action_selection=\"deterministic\",\n", " sampling_mode=\"full\",\n", " inference_algo=\"ovf\",\n", @@ -143,12 +124,60 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ - "first_obs = jtu.tree_map(lambda x: x[0], obs)\n", - "beliefs = agents.infer_states(first_obs, past_actions=None, empirical_prior=D, qs_hist=None, mask=None)" + "prior = agents.D\n", + "qs_hist = None\n", + "action_hist = []\n", + "for t in range(len(obs[0])):\n", + " first_obs = jtu.tree_map(lambda x: jnp.moveaxis(x[:t+1], 0, 1), obs)\n", + " beliefs = agents.infer_states(first_obs, past_actions=None, empirical_prior=prior, qs_hist=qs_hist)\n", + " actions = jnp.broadcast_to(agents.policies[0, 0], (2, 2))\n", + " prior, qs_hist = agents.update_empirical_prior(actions, beliefs)\n", + " action_hist.append(actions)\n", + "\n", + "beliefs = jtu.tree_map(lambda x, y: jnp.concatenate([x[:, None], y], 1), agents.D, beliefs)\n", + "smoothed_beliefs = vmap(smoothing_ovf)(beliefs, agents.B, jnp.stack(action_hist, 1))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Filtered beliefs')" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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661x/fXXR0NDQ5x55pnxp3/6p/GZz3wmBg4c2O45AAAAyEMMBLrEe+9o+8u//Mvdxq4RI0a0+fr33xX4++e47bbbYtSoUbs8x6GHHrrXX9yxL7W0tMQpp5wSd9xxxy7vP/rooys6V8Ten9+eXHfddXHxxRfHokWLYvHixfF3f/d3MXv27Hj88cfjox/9aLtnAQAAIAcxEOi0QqGw07EBAwZE3759o7m5OS644IIOnfe9X0TSr1+/PZ5jwIAB0bt379Z32v2+559/vt1/3muvvRZNTU1t3h24bt26iIjWX8YxdOjQeOaZZ2LcuHG7fN6VaO/za895rr/++rj++uvjhRdeiFGjRsU3vvGN+Md//MdOzQcAAMDBxzUDgU7r06dP/Pa3v21zrFu3bnHJJZfED37wg/j5z3++02PeeOONvZ63sbExhg4dGrfffnts27Ztt+fo1q1bjB8/PhYtWhQvv/xy6/2/+tWvYvHixe1+Hjt27Ih58+a1fv3OO+/EvHnzYsCAAdHY2BgRERMnToxXX3015s+fv9Pjt2/fHk1NTe3+89r7/HbnrbfeirfffrvNsaFDh0bfvn3367slAQAAqB3eGQh0WmNjYzz22GNxxx13xODBg2PIkCExevTouOWWW2LZsmUxevTo+OxnPxsnnnhibN68OdasWROPPfZYbN68eY/nrauri29/+9tx0UUXxUknnRSXX355HHnkkfHqq6/GsmXLol+/fvGv//qvERFx0003xU9+8pM499xz4/Of/3zs2LEjvvWtb8VJJ50U//Vf/9Wu5zF48OC49dZb46WXXooTTjghvve978XatWvjvvvuix49ekRExF/91V/FI488Etdcc00sW7YszjnnnGhubo7nnnsuHnnkkVi8eHG7r79YyfPblXXr1sW4ceNi4sSJceKJJ0b37t1j4cKFsWHDhvj0pz/drhkAAADIRQwEOu2OO+6IqVOnxle+8pXYvn17TJ48OUaPHh0NDQ2xYsWK+NrXvhaPPvpo3H333XH44YfHSSedFLfeemu7zn3eeefF8uXL4+tf/3rMnTs3tm3bFgMHDozRo0e3+c2/I0aMiMWLF8eMGTPixhtvjKOOOipuuummeP3119sdAw877LB48MEHY/r06TF//vxoaGiIuXPnxmc/+9nW76mrq4tFixbFnDlz4jvf+U4sXLgwDjnkkPjQ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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(2, 2, figsize=(16, 8), sharex=True)\n", + "\n", + "sns.heatmap(beliefs[0][0].mT, ax=axes[0, 0], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(beliefs[1][0].mT, ax=axes[1, 0], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "\n", + "sns.heatmap(smoothed_beliefs[0][0][0].mT, ax=axes[0, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(smoothed_beliefs[1][0][0].mT, ax=axes[1, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "\n", + "axes[0, 0].set_title('Filtered beliefs')" ] }, { From 97b3716451e6a683a2cff432ae3a2bfb6e5cff9c Mon Sep 17 00:00:00 2001 From: conorheins Date: Tue, 11 Jun 2024 10:11:52 +0200 Subject: [PATCH 020/196] removed oudated markdown cell at the end of the smoothing example notebook --- .../inference_methods_comparison.ipynb | 7 ------- 1 file changed, 7 deletions(-) diff --git a/examples/inference_and_learning/inference_methods_comparison.ipynb b/examples/inference_and_learning/inference_methods_comparison.ipynb index 50c04df4..1ba6b3c2 100644 --- a/examples/inference_and_learning/inference_methods_comparison.ipynb +++ b/examples/inference_and_learning/inference_methods_comparison.ipynb @@ -179,13 +179,6 @@ "\n", "axes[0, 0].set_title('Filtered beliefs')" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Concatenate the last beliefs, aka output of the previous step (will now be passed in as `qs_hist`), assume the agent took the first timestep of each policy and log it as the `past_action`, and get the `empirical_prior` for the next step using `agent.update_empirical_prior()`" - ] } ], "metadata": { From 980d86e8afeab04dcb3d698f111e20acc8fa3f27 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Tue, 11 Jun 2024 11:15:39 +0200 Subject: [PATCH 021/196] update graph worlds env --- examples/graph_worlds_demo.ipynb | 288 +++++++++++++++++++++++++++++++ pymdp/jax/envs/graph_worlds.py | 15 +- 2 files changed, 299 insertions(+), 4 deletions(-) create mode 100644 examples/graph_worlds_demo.ipynb diff --git a/examples/graph_worlds_demo.ipynb b/examples/graph_worlds_demo.ipynb new file mode 100644 index 00000000..df87c539 --- /dev/null +++ b/examples/graph_worlds_demo.ipynb @@ -0,0 +1,288 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx\n", + "from pymdp.jax.envs import GraphEnv\n", + "\n", + "def generate_connected_clusters(cluster_size=2, connections=2):\n", + " edges = []\n", + " connecting_node = 0\n", + " while connecting_node < connections * cluster_size:\n", + " edges += [(connecting_node, a) for a in range(connecting_node + 1, connecting_node + cluster_size + 1)]\n", + " connecting_node = len(edges)\n", + " graph = nx.Graph()\n", + " graph.add_edges_from(edges)\n", + " return graph, {\n", + " \"locations\": [\n", + " (f\"hallway {i}\" if len(list(graph.neighbors(loc))) > 1 else f\"room {i}\")\n", + " for i, loc in enumerate(graph.nodes)\n", + " ]\n", + " }" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ve666y7mJQEgRARKADFjy5Yt8ng8Ki8v15o1a3TllVeaXRIA2AItbwAxYenSpXK73erSpYvy8vIIkwAQRgRKALbm8/k0Z84czZgxQ5MnT9aGDRuUnJxsdlkAYCu0vAHY1qFDh06GyMcff1yzZ89mXhIAIoBACcCW8vLy5PF4VFlZqbVr12rUqFFmlwQAtkXLG4DtvPDCCzIMQ927d1deXh5hEgAijEAJwDZqamp01113adasWZo2bZo++OAD9e7d2+yyAMD2aHkDsIXCwkJNmjRJ2dnZevLJJ3X77bczLwkArYRACSDq5ebmKj09XTU1NcrMzNSIESPMLgkAYgotbwBR7fnnn9fIkSPVs2dP5eXlESYBwAQESgBRqbq6WrNnz9ZNN92kmTNnav369erZs6fZZQFATKLlDSDqHDx4UJMmTVJOTo7+9Kc/6dZbbzW7JACIaQRKAFElJydH6enpCgQCWrdundxut9klAUDMo+UNIGo888wzuuKKK3TeeecpLy+PMAkAFkGgBGB51dXVuv322/XjH/9YN910kzIzM9WjRw+zywIAfIuWNwBL+/rrrzVx4kR5vV49/fTTuuWWW8wuCQBwGgIlAMvauHGjJkyYIIfDofXr1yslJcXskgAAdaDlDcCSnn76aY0aNUp9+/ZVXl4eYRIALIxACcBSqqqqdOutt+q2227TLbfcovfff1/du3c3uywAQANoeQOwjK+++koTJkzQRx99pGeeeUY333yz2SUBAJqAQAnAErKysjRx4kS5XC5t2LBBw4YNM7skAEAT0fIGYKpgMKinnnpKV155pS688ELl5eURJgEgyhAoAZimsrJSP/7xj3XHHXfo9ttv19q1a9WtWzezywIANBMtbwCmOHDggNLT0/XJJ5/o+eef16xZs8wuCQDQQgRKAK1uw4YNmjhxouLj4/Xhhx9qyJAhZpcEAAgBLW8ArSYYDOrJJ5/UVVddpe9+97vyer2ESQCwAQIlgFZRWVmpm2++WbNnz9bs2bO1evVqde3a1eyyAABhQMsbQMTt379f6enp+vTTT/Xiiy9qxowZZpcEAAgjAiWAiFq3bp0mT56s9u3bKysrS9/73vfMLgkAEGa0vAFERDAY1GOPPaYxY8Zo0KBB8nq9hEkAsCkCJYCwO378uGbNmqV77rlHd999t9577z116dLF7LIAABFCyxtA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P7V4XhIAADSMQAlbqj0vuW7dOlrcAABEEC1v2M5zzz2nK664gnlJAABaCYEStlF7XnLmzJnMSwIA0EpoecMWas9L/t///Z9uu+02s0sCACBmECgR9XJzc5Weni6fz6fMzEwZhmF2SQAAxBRa3ohqzz//vEaOHKmePXvK6/USJgEAMAGBElGppqZGd955p2666SbNnDlT69evV8+ePc0uCwCAmETLG1GnsLBQkyZN0saNG/XUU0/ptttuk8PhMLssAABiFoESUcXr9crj8aimpoZ5SQAALIKWN6LGX/7yF40YMUI9e/ZUXl4eYRIAAIsgUMLyampqdNddd+nGG2/UjBkzmJcEAMBiaHnD0k7MS2ZnZ+uPf/yj/uu//ot5SQAALIZACcs6fV5yxIgRZpcEAADqQMsblvTCCy9oxIgR6tGjh/Ly8giTAABYGIESlnJiXnLWrFmaPn0685IAAEQBWt6wjMLCQk2ePFlZWVl68skndfvttzMvCQBAFCBQwhK8Xq/S09NVXV3NvCQAAFGGljdMd2Je8txzz5XX6yVMAgAQZQiUME1NTY3uvvvuU+Yle/XqZXZZAACgmWh5wxTMSwIAYB8ESrS6vLw8eTweVVVV6f3339fIkSPNLgkAAISAljda1QsvvCDDMNS9e3fl5eURJgEAsAECJVpFTU2N7rnnHs2aNUvTpk3TBx98wLwkAAA2QcsbEXfo0CFNnjxZH374oZ544gndcccdzEsCAGAjBEpEVO15ybVr1+qKK64wuyQAABBmtLwRMS+++KJGjBih7t27y+v1EiYBALApAiXC7sS85A9/+ENNmTJFH3zwgXr37m12WQAAIEJoeSOsmJcEACD2ECgRNh999JE8Ho+OHz/OvCQAADGEljfC4q9//asMw1DXrl2Vl5dHmAQAIIYQKBESn8+nOXPmaObMmZoyZYo2bNjAvCQAADGGljdarPa85B/+8Af993//N/OSAADEIAIlWoR5SQAAcAItbzTb0qVLmZcEAAAnESjRZD6fT/fee69mzJihjIwM1pcEAACSaHmjiQ4dOnQyRD7++OOaPXs285IAAEASgRJNcPq85KhRo8wuCQAAWAgtbzToxLzkOeecI6/XS5gEAABnIFCiTrXnJSdPnqwNGzYoOTnZ7LIAAIAF0fLGGYqKipSRkaH169frscce05133sm8JAAAqBeB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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "graph, _ = generate_connected_clusters(cluster_size=2, connections=2)\n", + "nx.draw(graph, with_labels=True, font_weight=\"bold\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from jax import random as jr\n", + "key = jr.PRNGKey(0)\n", + "\n", + "env = GraphEnv(graph, 3, 0)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1, 2)\n", + "(1, 2)\n", + "([Array([0], dtype=int32), Array([0], dtype=int32)], GraphEnv(\n", + " params={\n", + " 'A':\n", + " [f32[1,5,5], f32[1,2,5,6]],\n", + " 'B':\n", + " [f32[1,5,5,5], f32[1,6,6,1]],\n", + " 'D':\n", + " [f32[1,5], f32[1,6]]\n", + " },\n", + " states=[[i32[1], i32[1]], [i32[1], i32[1]]],\n", + " dependencies={'A': [[0], [0, 1]], 'B': [[0], [1]]}\n", + "))\n" + ] + } + ], + "source": [ + "import jax.numpy as jnp\n", + "\n", + "batch_size = 1\n", + "keys = jr.split(key, batch_size + 1)\n", + "key = keys[-1]\n", + "\n", + "action = jnp.broadcast_to(jnp.array([4, 0]), (batch_size, 2))\n", + "print(action.shape)\n", + "\n", + "_keys = keys[:batch_size]\n", + "print(jnp.shape(_keys))\n", + "obs = env.step(_keys, action)\n", + "print(obs)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.agent import Agent\n", + "\n", + "A = [a.copy() for a in env.params[\"A\"]]\n", + "B = [b.copy() for b in env.params[\"B\"]]\n", + "A_dependencies = env.dependencies[\"A\"]\n", + "B_dependencies = env.dependencies[\"B\"]\n", + "\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "C[1] = C[1].at[1].set(1.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) for b in B]\n", + "\n", + "agent = Agent(A, B, C, D,None, None, None, A_dependencies=A_dependencies, B_dependencies=B_dependencies)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1, 5)\n" + ] + } + ], + "source": [ + "print(C[0].shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[(1, 5, 5), (1, 2, 5, 6)]\n" + ] + } + ], + "source": [ + "print([a.shape for a in A])" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[(1, 1, 5), (1, 1, 6)]\n" + ] + } + ], + "source": [ + "# add a time dimension\n", + "qs = [jnp.broadcast_to(d, (1,) + d.shape) for d in D]\n", + "\n", + "print([s.shape for s in qs])\n", + "q_pi, nefe = agent.infer_policies(qs)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "batch_keys = jr.split(key, batch_size + 1)\n", + "_keys = keys[:batch_size]\n", + "key = keys[-1]\n", + "actions = agent.sample_action(q_pi, rng_key=_keys)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[1 0]]\n" + ] + } + ], + "source": [ + "print(actions)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "batch_keys = jr.split(key, batch_size + 1)\n", + "_keys = keys[:batch_size]\n", + "key = keys[-1]\n", + "obs, _ = env.step(_keys, action)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Array([0], dtype=int32), Array([0], dtype=int32)]\n", + "[(1, 1, 5), (1, 1, 6)]\n", + "(1, 2)\n" + ] + }, + { + "data": { + "text/plain": [ + "[Array([[[0.16048184, 0.35807264, 0.16048184, 0.16048184, 0.16048184]]], dtype=float32),\n", + " Array([[[3.0379263e-03, 2.4523251e-06, 3.0379263e-03, 3.0379263e-03,\n", + " 3.0379263e-03, 9.8784572e-01]]], dtype=float32)]" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(obs)\n", + "# add time dim\n", + "obs_b = [jnp.broadcast_to(o, (1,) + o.shape) for o in obs]\n", + "\n", + "print([s.shape for s in qs])\n", + "print(actions.shape)\n", + "prior, _ = agent.update_empirical_prior(actions, qs)\n", + "\n", + "agent.infer_states(obs_b, None, prior, None)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/pymdp/jax/envs/graph_worlds.py b/pymdp/jax/envs/graph_worlds.py index 38c76f8f..fdbcc1f5 100644 --- a/pymdp/jax/envs/graph_worlds.py +++ b/pymdp/jax/envs/graph_worlds.py @@ -5,11 +5,18 @@ class GraphEnv(PyMDPEnv): + """ + A simple environment where an agent can move around a graph and search an object. + The agent observes its own location, as well as whether the object is at its location. + """ def __init__(self, graph: nx.Graph, object_location: int, agent_location: int, key=None): A, A_dependencies = self.generate_A(graph) + A = [jnp.broadcast_to(a, (1,) + a.shape) for a in A] B, B_dependencies = self.generate_B(graph) + B = [jnp.broadcast_to(b, (1,) + b.shape) for b in B] D = self.generate_D(graph, object_location, agent_location) + D = [jnp.broadcast_to(d, (1,) + d.shape) for d in D] params = { "A": A, @@ -32,11 +39,11 @@ def generate_A(self, graph: nx.Graph): num_object_locations = num_locations + 1 # +1 for "not here" p = 1.0 # probability of seeing object if it is at the same location as the agent - # Agent location modality + # agent location modality A.append(jnp.eye(num_locations)) A_dependencies.append([0]) - # Object visibility modality + # object visibility modality A.append(jnp.zeros((2, num_locations, num_object_locations))) for agent_loc in range(num_locations): @@ -63,7 +70,7 @@ def generate_B(self, graph: nx.Graph): num_locations = len(graph.nodes) num_object_locations = num_locations + 1 - # Own location transitions, based on graph connectivity + # agent location transitions, based on graph connectivity B.append(jnp.zeros((num_locations, num_locations, num_locations))) for action in range(num_locations): for from_loc in range(num_locations): @@ -77,7 +84,7 @@ def generate_B(self, graph: nx.Graph): B_dependencies.append([0]) - # Objects don't move + # objects don't move B.append(jnp.zeros((num_object_locations, num_object_locations, 1))) B[1] = B[1].at[:, :, 0].set(jnp.eye(num_object_locations)) B_dependencies.append([1]) From 0e0e1f5d43aa4c3744bc2c218f875f7acfcdc2d1 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 11:23:00 +0200 Subject: [PATCH 022/196] add a first version of model compilation --- pymdp/jax/distribution.py | 124 +++++++++++++++++++++++++++++++++++--- 1 file changed, 115 insertions(+), 9 deletions(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 4fb0ba82..e71eb852 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -8,8 +8,14 @@ def __init__(self, data: np.ndarray, event: dict, batch: dict): self.event = event self.batch = batch - self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} - self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} + self.event_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in event.items() + } + self.batch_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in batch.items() + } def get(self, batch=None, event=None): event_slices = self._get_slices(event, self.event_indices, self.event) @@ -32,7 +38,9 @@ def _get_slices(self, keys, indices, full_indices): for key in full_indices: if key in keys: if isinstance(keys[key], list): - slices.append([self._get_index(v, indices[key]) for v in keys[key]]) + slices.append( + [self._get_index(v, indices[key]) for v in keys[key]] + ) else: slices.append(self._get_index(keys[key], indices[key])) else: @@ -59,22 +67,84 @@ def _get_index_from_axis(self, axis, element): def __getitem__(self, indices): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] return self.data[tuple(index_list)] def __setitem__(self, indices, value): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] self.data[tuple(index_list)] = value +def compile(config): + # these are needed to get the ordering of the dimensions correct for pymdp + state_dependencies = dict() + control_dependencies = dict() + likelihood_dependencies = dict() + transition_events = dict() + likelihood_events = dict() + labels = dict() + shape = dict() + for mod in config: + for k, v in config[mod].items(): + for kw in v: + match kw: + case "elements": + shape[k] = len(v[kw]) + labels[k] = [name for name in v[kw]] + case "size": + shape[k] = v[kw] + labels[k] = list(range(v[kw])) + case "depends_on_states": + state_dependencies[k] = [name for name in v[kw]] + if k in v[kw]: + transition_events[k] = labels[k] + case "depends_on_control": + control_dependencies[k] = [name for name in v[kw]] + case "depends_on": + likelihood_dependencies[k] = [name for name in v[kw]] + likelihood_events[k] = labels[k] + transitions = [] + for event, description in transition_events.items(): + arr_shape = [len(description)] + batch_descr = dict() + event_descr = {event: description} + for dep in state_dependencies[event]: + arr_shape.append(shape[dep]) + batch_descr[dep] = labels[dep] + for dep in control_dependencies[event]: + arr_shape.append(shape[dep]) + batch_descr[dep] = labels[dep] + arr = np.zeros(arr_shape) + transitions.append(Distribution(arr, event_descr, batch_descr)) + likelihoods = [] + for event, description in likelihood_events.items(): + arr_shape = [len(description)] + batch_descr = dict() + event_descr = {event: description} + for dep in likelihood_dependencies[event]: + arr_shape.append(shape[dep]) + batch_descr[dep] = labels[dep] + arr = np.zeros(arr_shape) + likelihoods.append(Distribution(arr, event_descr, batch_descr)) + return transition, likelihoods + + if __name__ == "__main__": controls = ["up", "down"] locations = ["A", "B", "C", "D"] data = np.zeros((len(locations), len(locations), len(controls))) - transition = Distribution(data, {"location": locations}, {"location": locations, "control": controls}) + transition = Distribution( + data, + {"location": locations}, + {"location": locations, "control": controls}, + ) assert transition["A", "B", "up"] == 0.0 assert transition[:, "B", "up"].shape == (4,) @@ -90,12 +160,48 @@ def __setitem__(self, indices, value): assert np.all(transition[:, "B", "up"] == 1.0) assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.0 + ) assert transition.get({"control": "up"}).shape == (4, 4) transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.5 + ) transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.7 + ) transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) + + model_example = { + "observations": { + "observation_1": {"size": 10, "depends_on": ["factor_1"]}, + "observation_2": { + "elements": ["A", "B"], + "depends_on": ["factor_1"], + }, + }, + "controls": { + "control_1": {"size": 2}, + "control_2": {"elements": ["X", "Y"]}, + }, + "states": { + "factor_1": { + "elements": ["II", "JJ", "KK"], + "depends_on_states": ["factor_1", "factor_2"], + "depends_on_control": ["control_1", "control_2"], + }, + "factor_2": { + "elements": ["foo", "bar"], + "depends_on_states": ["factor_2"], + "depends_on_control": ["control_2"], + }, + }, + } + trans, like = compile(model_example) From 9f17816656f3c7d26910605e8b59ba0df1f915d2 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 11:35:44 +0200 Subject: [PATCH 023/196] add missing s, add some basic tests --- pymdp/jax/distribution.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index e71eb852..453ad628 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -132,7 +132,7 @@ def compile(config): batch_descr[dep] = labels[dep] arr = np.zeros(arr_shape) likelihoods.append(Distribution(arr, event_descr, batch_descr)) - return transition, likelihoods + return transitions, likelihoods if __name__ == "__main__": @@ -205,3 +205,9 @@ def compile(config): }, } trans, like = compile(model_example) + assert len(trans) == 2 + assert len(like) == 2 + assert trans[0].data.shape == (3, 3, 2, 2, 2) + assert trans[1].data.shape == (2, 2, 2) + assert like[0].data.shape == (10, 3) + assert like[1].data.shape == (2, 3) From 630c59e3912afb67583ad4286fab649901dffc4f Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 12:17:20 +0200 Subject: [PATCH 024/196] add unittest --- pymdp/jax/distribution.py | 24 +++++---- test/test_distribution.py | 111 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+), 10 deletions(-) create mode 100644 test/test_distribution.py diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 453ad628..c275477f 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -92,22 +92,24 @@ def compile(config): shape = dict() for mod in config: for k, v in config[mod].items(): - for kw in v: - match kw: + for keyword in v: + match keyword: case "elements": - shape[k] = len(v[kw]) - labels[k] = [name for name in v[kw]] + shape[k] = len(v[keyword]) + labels[k] = [name for name in v[keyword]] case "size": - shape[k] = v[kw] - labels[k] = list(range(v[kw])) + shape[k] = v[keyword] + labels[k] = list(range(v[keyword])) case "depends_on_states": - state_dependencies[k] = [name for name in v[kw]] - if k in v[kw]: + state_dependencies[k] = [name for name in v[keyword]] + if k in v[keyword]: transition_events[k] = labels[k] case "depends_on_control": - control_dependencies[k] = [name for name in v[kw]] + control_dependencies[k] = [name for name in v[keyword]] case "depends_on": - likelihood_dependencies[k] = [name for name in v[kw]] + likelihood_dependencies[k] = [ + name for name in v[keyword] + ] likelihood_events[k] = labels[k] transitions = [] for event, description in transition_events.items(): @@ -211,3 +213,5 @@ def compile(config): assert trans[1].data.shape == (2, 2, 2) assert like[0].data.shape == (10, 3) assert like[1].data.shape == (2, 3) + assert like[0][:, "II"] is not None + assert like[1][1, :] is not None diff --git a/test/test_distribution.py b/test/test_distribution.py new file mode 100644 index 00000000..fa6a38f2 --- /dev/null +++ b/test/test_distribution.py @@ -0,0 +1,111 @@ +import unittest +from pymdp.jax import distribution +import numpy as np + + +class TestDists(unittest.TestCase): + + def test_distribution_slice(self): + controls = ["up", "down"] + locations = ["A", "B", "C", "D"] + + data = np.zeros((len(locations), len(locations), len(controls))) + transition = distribution.Distribution( + data, + {"location": locations}, + {"location": locations, "control": controls}, + ) + self.assertEqual(transition["A", "B", "up"], 0.0) + self.assertEqual(transition[:, "B", "up"].shape, (4,)) + self.assertEqual(transition["A", "B", :].shape, (2,)) + self.assertEqual(transition[:, "B", :].shape, (4, 2)) + self.assertEqual(transition[:, :, :].shape, (4, 4, 2)) + self.assertEqual(transition[0, "B", 0], 0.0) + self.assertEqual(transition[:, "B", 0].shape, (4,)) + + transition["A", "B", "up"] = 0.5 + self.assertEqual(transition["A", "B", "up"], 0.5) + transition[:, "B", "up"] = np.ones(4) + self.assertTrue(np.all(transition[:, "B", "up"] == 1.0)) + + def test_distribution_get_set(self): + controls = ["up", "down"] + locations = ["A", "B", "C", "D"] + + data = np.zeros((len(locations), len(locations), len(controls))) + transition = distribution.Distribution( + data, + {"location": locations}, + {"location": locations, "control": controls}, + ) + + self.assertEqual( + transition.get({"location": "A"}, {"location": "B"}).shape, (2,) + ) + self.assertEqual( + transition.get( + {"location": "A", "control": "up"}, {"location": "B"} + ), + 0.0, + ) + self.assertEqual(transition.get({"control": "up"}).shape, (4, 4)) + + transition.set( + {"location": "A", "control": "up"}, {"location": "B"}, 0.5 + ) + self.assertEqual( + transition.get( + {"location": "A", "control": "up"}, {"location": "B"} + ), + 0.5, + ) + transition.set( + {"location": 0, "control": "up"}, {"location": "B"}, 0.7 + ) + self.assertEqual( + transition.get( + {"location": "A", "control": "up"}, {"location": "B"} + ), + 0.7, + ) + transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) + self.assertTrue( + np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) + ) + + def test_agent_compile(self): + model_example = { + "observations": { + "observation_1": {"size": 10, "depends_on": ["factor_1"]}, + "observation_2": { + "elements": ["A", "B"], + "depends_on": ["factor_1"], + }, + }, + "controls": { + "control_1": {"size": 2}, + "control_2": {"elements": ["X", "Y"]}, + }, + "states": { + "factor_1": { + "elements": ["II", "JJ", "KK"], + "depends_on_states": ["factor_1", "factor_2"], + "depends_on_control": ["control_1", "control_2"], + }, + "factor_2": { + "elements": ["foo", "bar"], + "depends_on_states": ["factor_2"], + "depends_on_control": ["control_2"], + }, + }, + } + trans, like = distribution.compile(model_example) + self.assertEqual(len(trans), 2) + self.assertEqual(len(like), 2) + self.assertEqual(trans[0].data.shape, (3, 3, 2, 2, 2)) + self.assertEqual(trans[1].data.shape, (2, 2, 2)) + self.assertEqual(like[0].data.shape, (10, 3)) + self.assertEqual(like[1].data.shape, (2, 3)) + self.assertIsNotNone + self.assertIsNotNone(like[0][:, "II"]) + self.assertIsNotNone(like[1][1, :]) From 3091da74205616a4cc9bed22ad3e9ca8bb91279e Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 12:22:54 +0200 Subject: [PATCH 025/196] rename compile to compile_model --- pymdp/jax/distribution.py | 4 ++-- test/test_distribution.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index c275477f..27ce25f0 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -81,7 +81,7 @@ def __setitem__(self, indices, value): self.data[tuple(index_list)] = value -def compile(config): +def compile_model(config): # these are needed to get the ordering of the dimensions correct for pymdp state_dependencies = dict() control_dependencies = dict() @@ -206,7 +206,7 @@ def compile(config): }, }, } - trans, like = compile(model_example) + trans, like = compile_model(model_example) assert len(trans) == 2 assert len(like) == 2 assert trans[0].data.shape == (3, 3, 2, 2, 2) diff --git a/test/test_distribution.py b/test/test_distribution.py index fa6a38f2..4414a25a 100644 --- a/test/test_distribution.py +++ b/test/test_distribution.py @@ -99,7 +99,7 @@ def test_agent_compile(self): }, }, } - trans, like = distribution.compile(model_example) + trans, like = distribution.compile_model(model_example) self.assertEqual(len(trans), 2) self.assertEqual(len(like), 2) self.assertEqual(trans[0].data.shape, (3, 3, 2, 2, 2)) From 465bfac00f21932fc6b43df85afe374bd881729a Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 12:26:28 +0200 Subject: [PATCH 026/196] added example notebook --- examples/distribution_api.ipynb | 108 ++++++++++++++++++++++++++++++++ pymdp/jax/__init__.py | 1 + 2 files changed, 109 insertions(+) create mode 100644 examples/distribution_api.ipynb diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb new file mode 100644 index 00000000..becd094c --- /dev/null +++ b/examples/distribution_api.ipynb @@ -0,0 +1,108 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Array([[[0., 0., 0., 1.]]], dtype=float32)]\n", + "[[0. 1.]]\n", + "[[1]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import jax\n", + "from jax import numpy as jnp \n", + "\n", + "from pymdp.jax import Distribution\n", + "from pymdp.jax.agent import Agent\n", + "\n", + "np.set_printoptions(precision=2, suppress=True)\n", + "\n", + "observations = [\"A\", \"B\", \"C\", \"D\"]\n", + "states = [\"A\", \"B\", \"C\", \"D\"]\n", + "controls = [\"up\", \"down\"]\n", + "\n", + "data = np.zeros((len(observations), len(states)))\n", + "likelihood = Distribution(data, {\"observations\": observations}, {\"states\": states})\n", + "\n", + "likelihood[\"A\", \"A\"] = 1.0 \n", + "likelihood[\"B\", \"B\"] = 1.0\n", + "likelihood[\"C\", \"C\"] = 1.0\n", + "likelihood[\"D\", \"D\"] = 1.0\n", + "\n", + "data = np.zeros((len(states), len(states), len(controls)))\n", + "transition = Distribution(data, {\"states\": states}, {\"states\": states, \"controls\": controls})\n", + "\n", + "transition[\"B\", \"A\", \"up\"] = 1.0\n", + "transition[\"C\", \"B\", \"up\"] = 1.0\n", + "transition[\"D\", \"C\", \"up\"] = 1.0\n", + "transition[\"D\", \"D\", \"up\"] = 1.0\n", + "\n", + "transition[\"A\", \"A\", \"down\"] = 1.0\n", + "transition[\"A\", \"B\", \"down\"] = 1.0\n", + "transition[\"B\", \"C\", \"down\"] = 1.0\n", + "transition[\"C\", \"D\", \"down\"] = 1.0\n", + "\n", + "A = [jnp.broadcast_to(likelihood.data, (1,) + likelihood.data.shape)]\n", + "B = [jnp.broadcast_to(transition.data, (1,) + transition.data.shape)]\n", + "\n", + "\n", + "C = [jnp.zeros((1, 4))]\n", + "C[0] = C[0].at[0, 0].set(1.0)\n", + "D = jnp.ones((1, 4)) / 8.0\n", + "E = jnp.ones((1, 2)) / 4.0\n", + "\n", + "policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", + "\n", + "\n", + "agent = Agent(A, B, C, D, E, A, B, policies=policies)\n", + "\n", + "observation = [jnp.array([[3]])]\n", + "action = jnp.array([[0]])\n", + "\n", + "qs = [jnp.zeros((1, 1, 4))]\n", + "qs[0] = qs[0].at[0, 0, 3].set(1.0)\n", + "\n", + "prior, _ = agent.update_empirical_prior(action, qs)\n", + "\n", + "\n", + "qs = agent.infer_states(observation, None, prior, None)\n", + "print(qs)\n", + "\n", + "q_pi, G = agent.infer_policies(qs)\n", + "print(q_pi)\n", + "key = jax.random.PRNGKey(0)\n", + "action = agent.sample_action(q_pi)\n", + "print(action)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pymdp", + "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.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/pymdp/jax/__init__.py b/pymdp/jax/__init__.py index e69de29b..5b957f0d 100644 --- a/pymdp/jax/__init__.py +++ b/pymdp/jax/__init__.py @@ -0,0 +1 @@ +from .distribution import Distribution From 4c0733236c9a5830c98371c222d67f65bd57f20a Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 14:41:02 +0200 Subject: [PATCH 027/196] add some documentation --- examples/distribution_api.ipynb | 55 ++++++++++++++++++++++++++++++--- pymdp/jax/distribution.py | 44 ++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 4 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index becd094c..02d2fdd1 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -1,8 +1,28 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Named Distributions API\n", + "\n", + "In this notebook we'll give some example uses of the named distribution api\n", + "designed for easier querying and construction of complicated A and B tensors.\n", + "\n", + "The distribution objects allow for giving semantically sensible names to axes\n", + "and indices within a tensor. These can be made interactively in code or an \n", + "entire set of A and B tensors can be compiled from a structured model\n", + "description.\n", + "\n", + "Below is an example of how to build a distribution from code for a model\n", + "conisting of a single observation modality \"observation\" consiting of the\n", + "possible observations {A, B, C, D}. A hidden state \"state\" consisting of the\n", + "values {A, B, C, D} and controls \"control\" {up, down}." + ] + }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -25,20 +45,31 @@ "\n", "np.set_printoptions(precision=2, suppress=True)\n", "\n", + "## Likelihood\n", + "\n", + "# Define the labels for the factors and modalities.\n", "observations = [\"A\", \"B\", \"C\", \"D\"]\n", "states = [\"A\", \"B\", \"C\", \"D\"]\n", "controls = [\"up\", \"down\"]\n", "\n", + "# Create the underlying data structure.\n", "data = np.zeros((len(observations), len(states)))\n", - "likelihood = Distribution(data, {\"observations\": observations}, {\"states\": states})\n", "\n", + "# Initialize the Distribution itself.\n", + "likelihood = Distribution(data, {\"observation\": observations}, {\"state\": states})\n", + "\n", + "# From now on we can use the semantic labels to index the array to assign the\n", + "# probabilities we want.\n", "likelihood[\"A\", \"A\"] = 1.0 \n", "likelihood[\"B\", \"B\"] = 1.0\n", "likelihood[\"C\", \"C\"] = 1.0\n", "likelihood[\"D\", \"D\"] = 1.0\n", "\n", + "\n", + "## Transition\n", + "# Similarily we can use the distributions to build a \n", "data = np.zeros((len(states), len(states), len(controls)))\n", - "transition = Distribution(data, {\"states\": states}, {\"states\": states, \"controls\": controls})\n", + "transition = Distribution(data, {\"state\": states}, {\"state\": states, \"control\": controls})\n", "\n", "transition[\"B\", \"A\", \"up\"] = 1.0\n", "transition[\"C\", \"B\", \"up\"] = 1.0\n", @@ -82,6 +113,22 @@ "action = agent.sample_action(q_pi)\n", "print(action)" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using configs\n", + "Alternatively you can use a model description to just generate the shape of the\n", + "A's and the B's in one go. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -100,7 +147,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.3" } }, "nbformat": 4, diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 27ce25f0..7551d5c8 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -82,6 +82,50 @@ def __setitem__(self, indices, value): def compile_model(config): + """Compile a model from a config. + + Takes a model description dictionary and builds the corresponding + Likelihood and Transition tensors. The tensors are filled with only + zeros and need to be filled in later by the caller of this function. + --- + The config should consist of three top-level keys: + * observations + * controls + * states + where each entry consists of another dictionary with the name of the + modality as key and the modality description. + + The modality description should consist out of either a `size` or `elements` + field indicating the named elements or the size of the integer array. + In the case of an observation the `depends_on` field needs to be present to + indicate what state factor links to this observation. In the case of states + the `depends_on_states` and `depends_on_control` fields are needed. + --- + example config: + { "observations": { + "observation_1": {"size": 10, "depends_on": ["factor_1"]}, + "observation_2": { + "elements": ["A", "B"], + "depends_on": ["factor_1"], + }, + }, + "controls": { + "control_1": {"size": 2}, + "control_2": {"elements": ["X", "Y"]}, + }, + "states": { + "factor_1": { + "elements": ["II", "JJ", "KK"], + "depends_on_states": ["factor_1", "factor_2"], + "depends_on_control": ["control_1", "control_2"], + }, + "factor_2": { + "elements": ["foo", "bar"], + "depends_on_states": ["factor_2"], + "depends_on_control": ["control_2"], + }, + }} + """ # these are needed to get the ordering of the dimensions correct for pymdp state_dependencies = dict() control_dependencies = dict() From a97f5d30d5d223e5128c9cf64fde00d475165166 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 14:50:47 +0200 Subject: [PATCH 028/196] api updates to jax/agent --- examples/distribution_api.ipynb | 53 ++--- pymdp/jax/agent.py | 351 ++++++++++++++++++-------------- 2 files changed, 217 insertions(+), 187 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index becd094c..9407f07d 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 21, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -30,48 +30,39 @@ "controls = [\"up\", \"down\"]\n", "\n", "data = np.zeros((len(observations), len(states)))\n", - "likelihood = Distribution(data, {\"observations\": observations}, {\"states\": states})\n", + "A = Distribution(data, {\"observations\": observations}, {\"states\": states})\n", "\n", - "likelihood[\"A\", \"A\"] = 1.0 \n", - "likelihood[\"B\", \"B\"] = 1.0\n", - "likelihood[\"C\", \"C\"] = 1.0\n", - "likelihood[\"D\", \"D\"] = 1.0\n", + "A[\"A\", \"A\"] = 1.0 \n", + "A[\"B\", \"B\"] = 1.0\n", + "A[\"C\", \"C\"] = 1.0\n", + "A[\"D\", \"D\"] = 1.0\n", "\n", "data = np.zeros((len(states), len(states), len(controls)))\n", - "transition = Distribution(data, {\"states\": states}, {\"states\": states, \"controls\": controls})\n", + "B = Distribution(data, {\"states\": states}, {\"states\": states, \"controls\": controls})\n", "\n", - "transition[\"B\", \"A\", \"up\"] = 1.0\n", - "transition[\"C\", \"B\", \"up\"] = 1.0\n", - "transition[\"D\", \"C\", \"up\"] = 1.0\n", - "transition[\"D\", \"D\", \"up\"] = 1.0\n", + "B[\"B\", \"A\", \"up\"] = 1.0\n", + "B[\"C\", \"B\", \"up\"] = 1.0\n", + "B[\"D\", \"C\", \"up\"] = 1.0\n", + "B[\"D\", \"D\", \"up\"] = 1.0\n", "\n", - "transition[\"A\", \"A\", \"down\"] = 1.0\n", - "transition[\"A\", \"B\", \"down\"] = 1.0\n", - "transition[\"B\", \"C\", \"down\"] = 1.0\n", - "transition[\"C\", \"D\", \"down\"] = 1.0\n", - "\n", - "A = [jnp.broadcast_to(likelihood.data, (1,) + likelihood.data.shape)]\n", - "B = [jnp.broadcast_to(transition.data, (1,) + transition.data.shape)]\n", - "\n", - "\n", - "C = [jnp.zeros((1, 4))]\n", - "C[0] = C[0].at[0, 0].set(1.0)\n", - "D = jnp.ones((1, 4)) / 8.0\n", - "E = jnp.ones((1, 2)) / 4.0\n", + "B[\"A\", \"A\", \"down\"] = 1.0\n", + "B[\"A\", \"B\", \"down\"] = 1.0\n", + "B[\"B\", \"C\", \"down\"] = 1.0\n", + "B[\"C\", \"D\", \"down\"] = 1.0\n", "\n", "policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", "\n", + "C = jnp.zeros((1, 4))\n", + "C = C.at[0, 0].set(1.0)\n", "\n", - "agent = Agent(A, B, C, D, E, A, B, policies=policies)\n", + "agent = Agent([A], [B], [C], policies=policies)\n", "\n", - "observation = [jnp.array([[3]])]\n", "action = jnp.array([[0]])\n", - "\n", "qs = [jnp.zeros((1, 1, 4))]\n", - "qs[0] = qs[0].at[0, 0, 3].set(1.0)\n", - "\n", - "prior, _ = agent.update_empirical_prior(action, qs)\n", + "qs[0] = qs[0].at[0, 0, 0].set(1.0)\n", "\n", + "observation = [jnp.array([[0]])]\n", + "prior, _ = agent.infer_empirical_prior(action, qs)\n", "\n", "qs = agent.infer_states(observation, None, prior, None)\n", "print(qs)\n", @@ -100,7 +91,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.9" } }, "nbformat": 4, diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 776a65dd..68a3d51c 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -12,14 +12,16 @@ import jax.tree_util as jtu from jax import nn, vmap, random from . import inference, control, learning, utils, maths +from .distribution import Distribution from equinox import Module, field, tree_at from typing import List, Optional from jaxtyping import Array from functools import partial + class Agent(Module): - """ + """ The Agent class, the highest-level API that wraps together processes for action, perception, and learning under active inference. The basic usage is as follows: @@ -37,25 +39,24 @@ class Agent(Module): A: List[Array] B: List[Array] - C: List[Array] + C: List[Array] D: List[Array] E: Array - # empirical_prior: List gamma: Array alpha: Array - qs: Optional[List[Array]] - q_pi: Optional[List[Array]] - - # parameters used for inductive inference - inductive_threshold: Array # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) - inductive_epsilon: Array # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) - - H: List[Array] # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints - I: List[Array] # I matrices (one per hidden state factor) used for inductive inference -- these encode the 'reachability' matrices of goal states encoded in `self.H` pA: List[Array] pB: List[Array] - + + # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) + inductive_threshold: Array + # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) + + inductive_epsilon: Array + # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints + H: List[Array] + # I matrices (one per hidden state factor) used for inductive inference -- these encode the 'reachability' matrices of goal states encoded in `self.H` + I: List[Array] # static parameters not leaves of the PyTree A_dependencies: Optional[List] = field(static=True) B_dependencies: Optional[List] = field(static=True) @@ -67,17 +68,27 @@ class Agent(Module): num_factors: int = field(static=True) num_controls: List[int] = field(static=True) control_fac_idx: Optional[List[int]] = field(static=True) - policy_len: int = field(static=True) # depth of planning during roll-outs (i.e. number of timesteps to look ahead when computing expected free energy of policies) - inductive_depth: int = field(static=True) # depth of inductive inference (i.e. number of future timesteps to use when computing inductive `I` matrix) - policies: Array = field(static=True) # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) - use_utility: bool = field(static=True) # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy - use_states_info_gain: bool = field(static=True) # flag for whether to use state information gain ("salience") when computing expected free energy - use_param_info_gain: bool = field(static=True) # flag for whether to use parameter information gain ("novelty") when computing expected free energy - use_inductive: bool = field(static=True) # flag for whether to use inductive inference ("intentional inference") when computing expected free energy + # depth of planning during roll-outs (i.e. number of timesteps to look ahead when computing expected free energy of policies) + policy_len: int = field(static=True) + # depth of inductive inference (i.e. number of future timesteps to use when computing inductive `I` matrix) + inductive_depth: int = field(static=True) + # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) + policies: Array = field(static=True) + # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy + use_utility: bool = field(static=True) + # flag for whether to use state information gain ("salience") when computing expected free energy + use_states_info_gain: bool = field(static=True) + # flag for whether to use parameter information gain ("novelty") when computing expected free energy + use_param_info_gain: bool = field(static=True) + # flag for whether to use inductive inference ("intentional inference") when computing expected free energy + use_inductive: bool = field(static=True) onehot_obs: bool = field(static=True) - action_selection: str = field(static=True) # determinstic or stochastic action selection - sampling_mode : str = field(static=True) # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") - inference_algo: str = field(static=True) # fpi, vmp, mmp, ovf + # determinstic or stochastic action selection + action_selection: str = field(static=True) + # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") + sampling_mode: str = field(static=True) + # fpi, vmp, mmp, ovf + inference_algo: str = field(static=True) learn_A: bool = field(static=True) learn_B: bool = field(static=True) @@ -89,11 +100,11 @@ def __init__( self, A, B, - C, - D, - E, - pA, - pB, + C=None, + D=None, + E=None, + pA=None, + pB=None, A_dependencies=None, B_dependencies=None, qs=None, @@ -121,55 +132,42 @@ def __init__( learn_B=True, learn_C=False, learn_D=True, - learn_E=False + learn_E=False, ): - ### PyTree leaves + + # TODO: infer batch shape in general case, here we assume no batch in Distribution object + A = [jnp.expand_dims(a.data, 0) if isinstance(a, Distribution) else a for a in A] + B = [jnp.expand_dims(b.data, 0) if isinstance(b, Distribution) else b for b in B] + + # PyTree leaves self.A = A self.B = B self.C = C self.D = D - # self.empirical_prior = D self.H = H self.pA = pA self.pB = pB - self.qs = qs - self.q_pi = q_pi self.onehot_obs = onehot_obs element_size = lambda x: x.shape[1] self.num_factors = len(self.B) - self.num_states = jtu.tree_map(element_size, self.B) + self.num_states = jtu.tree_map(element_size, self.B) self.num_modalities = len(self.A) self.num_obs = jtu.tree_map(element_size, self.A) - # Ensure consistency of A_dependencies with num_states and num_factors if A_dependencies is not None: self.A_dependencies = A_dependencies else: # assume full dependence of A matrices and state factors self.A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] - - for m in range(self.num_modalities): - factor_dims = tuple([self.num_states[f] for f in self.A_dependencies[m]]) - assert self.A[m].shape[2:] == factor_dims, f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." - if self.pA != None: - assert self.pA[m].shape[2:] == factor_dims, f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of pA[{m}]..." - assert max(self.A_dependencies[m]) <= (self.num_factors - 1), f"Check modality {m} of `A_dependencies` - must be consistent with `num_states` and `num_factors`..." - - # Ensure consistency of B_dependencies with num_states and num_factors + if B_dependencies is not None: self.B_dependencies = B_dependencies else: - self.B_dependencies = [[f] for f in range(self.num_factors)] # defaults to having all factors depend only on themselves - - for f in range(self.num_factors): - factor_dims = tuple([self.num_states[f] for f in self.B_dependencies[f]]) - assert self.B[f].shape[2:-1] == factor_dims, f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B[{f}]..." - if self.pB != None: - assert self.pB[f].shape[2:-1] == factor_dims, f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB[{f}]..." - assert max(self.B_dependencies[f]) <= (self.num_factors - 1), f"Check factor {f} of `B_dependencies` - must be consistent with `num_states` and `num_factors`..." + # defaults to having all factors depend only on themselves + self.B_dependencies = [[f] for f in range(self.num_factors)] self.batch_size = self.A[0].shape[0] @@ -178,7 +176,7 @@ def __init__( self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) self.inductive_epsilon = jnp.broadcast_to(inductive_epsilon, (self.batch_size,)) - ### Static parameters ### + # static parameters self.num_iter = num_iter self.inference_algo = inference_algo self.inductive_depth = inductive_depth @@ -193,7 +191,6 @@ def __init__( self.use_inductive = use_inductive if self.use_inductive and self.H is not None: - # print("Using inductive inference...") self.I = self._construct_I() elif self.use_inductive and I is not None: self.I = I @@ -207,97 +204,45 @@ def __init__( self.learn_D = learn_D self.learn_E = learn_E - """ Determine number of observation modalities and their respective dimensions """ + # Determine number of observation modalities and their respective dimensions self.num_obs = [self.A[m].shape[1] for m in range(len(self.A))] self.num_modalities = len(self.num_obs) # If no `num_controls` are given, then this is inferred from the shapes of the input B matrices self.num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] - # Users have the option to make only certain factors controllable. - # default behaviour is to make all hidden state factors controllable - # (i.e. self.num_states == self.num_controls) # Users have the option to make only certain factors controllable. # default behaviour is to make all hidden state factors controllable, i.e. `self.num_factors == len(self.num_controls)` if control_fac_idx == None: self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] else: - assert max(control_fac_idx) <= (self.num_factors - 1), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + assert max(control_fac_idx) <= ( + self.num_factors - 1 + ), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." self.control_fac_idx = control_fac_idx - for factor_idx in self.control_fac_idx: - assert self.num_controls[factor_idx] > 1, "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" + self.policies = policies if policies is not None else self._construct_policies() - if policies is not None: - self.policies = policies - else: - self._construct_policies() - # set E to uniform/uninformative prior over policies if not given if E is None: - self.E = jnp.ones((self.batch_size, len(self.policies)))/ len(self.policies) + self.E = jnp.ones((self.batch_size, len(self.policies))) / len(self.policies) else: self.E = E - def _construct_policies(self): - - self.policies = control.construct_policies( - self.num_states, self.num_controls, self.policy_len, self.control_fac_idx - ) - - @vmap - def _construct_I(self): - return control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) - - @property - def unique_multiactions(self): - size = pymath.prod(self.num_controls) - return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) - - @vmap - def learning(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1., lr_pB=1., **kwargs): - agent = self - if self.learn_A: - o_vec_seq = jtu.tree_map(lambda o, dim: nn.one_hot(o, dim), outcomes, self.num_obs) - qA = learning.update_obs_likelihood_dirichlet(self.pA, o_vec_seq, beliefs_A, self.A_dependencies, lr=lr_pA) - E_qA = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qA) - agent = tree_at(lambda x: (x.A, x.pA), agent, (E_qA, qA)) - - if self.learn_B: - beliefs_B = beliefs_A if beliefs_B is None else beliefs_B - actions_seq = [actions[..., i] for i in range(actions.shape[-1])] # as many elements as there are control factors, where each element is a jnp.ndarray of shape (n_timesteps, ) - assert beliefs_B[0].shape[0] == actions_seq[0].shape[0] + 1 - actions_onehot = jtu.tree_map(lambda a, dim: nn.one_hot(a, dim, axis=-1), actions_seq, self.num_controls) - qB = learning.update_state_likelihood_dirichlet(self.pB, beliefs_B, actions_onehot, self.B_dependencies, lr=lr_pB) - E_qB = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qB) - - # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece - if self.use_inductive and self.H is not None: - I_updated = control.generate_I_matrix(self.H, E_qB, self.inductive_threshold, self.inductive_depth) - else: - I_updated = self.I - - agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) - - # if self.learn_C: - # self.qC = learning.update_C(self.C, *args, **kwargs) - # self.C = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), self.qC) - # if self.learn_D: - # self.qD = learning.update_D(self.D, *args, **kwargs) - # self.D = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), self.qD) - # if self.learn_E: - # self.qE = learning.update_E(self.E, *args, **kwargs) - # self.E = maths.dirichlet_expected_value(self.qE) + if D is None: + self.D = [ + jnp.ones((self.batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors) + ] + else: + self.D = D - # do stuff - # variables = ... - # parameters = ... - # varibles = {'A': jnp.ones(5)} + if C is None: + self.C = [ + jnp.ones((self.batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities) + ] - # agent = tree_at(lambda x: (x.A, x.pA, x.B, x.pB, x.I), self, (E_qA, qA, E_qB, qB, I_updated)) + self._validate() - return agent - @vmap def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mask=None): """ @@ -310,28 +255,28 @@ def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mas past_actions: ``list`` or ``tuple`` of ints The action input. Each entry ``past_actions[f]`` stores indices (or one-hots?) representing the actions for control factor ``f``. empirical_prior: ``list`` or ``tuple`` of ``jax.numpy.ndarray`` of dtype object - Empirical prior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``empirical_prior`` variable may be a matrix (or list of matrices) + Empirical prior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``empirical_prior`` variable may be a matrix (or list of matrices) of additional dimensions to encode extra conditioning variables like timepoint and policy. Returns --------- qs: ``numpy.ndarray`` of dtype object Posterior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` at timepoint ``t_idx``. """ if not self.onehot_obs: o_vec = [nn.one_hot(o, self.num_obs[m]) for m, o in enumerate(observations)] else: o_vec = observations - + A = self.A if mask is not None: for i, m in enumerate(mask): o_vec[i] = m * o_vec[i] + (1 - m) * jnp.ones_like(o_vec[i]) / self.num_obs[i] A[i] = m * A[i] + (1 - m) * jnp.ones_like(A[i]) / self.num_obs[i] - + output = inference.update_posterior_states( A, self.B, @@ -342,21 +287,11 @@ def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mas A_dependencies=self.A_dependencies, B_dependencies=self.B_dependencies, num_iter=self.num_iter, - method=self.inference_algo + method=self.inference_algo, ) return output - @partial(vmap, in_axes=(0, 0, 0)) - def update_empirical_prior(self, action, qs): - # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t - - qs_last = jtu.tree_map( lambda x: x[-1], qs) - # this computation of the predictive prior is correct only for fully factorised Bs. - pred = control.compute_expected_state(qs_last, self.B, action, B_dependencies=self.B_dependencies) - - return (pred, qs) - @vmap def infer_policies(self, qs: List): """ @@ -373,10 +308,10 @@ def infer_policies(self, qs: List): Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. """ - latest_belief = jtu.tree_map(lambda x: x[-1], qs) # only get the posterior belief held at the current timepoint + latest_belief = jtu.tree_map(lambda x: x[-1], qs) # only get the posterior belief held at the current timepoint q_pi, G = control.update_posterior_policies_inductive( self.policies, - latest_belief, + latest_belief, self.A, self.B, self.C, @@ -385,17 +320,74 @@ def infer_policies(self, qs: List): self.pB, A_dependencies=self.A_dependencies, B_dependencies=self.B_dependencies, - I = self.I, + I=self.I, gamma=self.gamma, inductive_epsilon=self.inductive_epsilon, use_utility=self.use_utility, use_states_info_gain=self.use_states_info_gain, use_param_info_gain=self.use_param_info_gain, - use_inductive=self.use_inductive + use_inductive=self.use_inductive, ) return q_pi, G - + + @vmap + def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1.0, lr_pB=1.0, **kwargs): + agent = self + if self.learn_A: + o_vec_seq = jtu.tree_map(lambda o, dim: nn.one_hot(o, dim), outcomes, self.num_obs) + qA = learning.update_obs_likelihood_dirichlet(self.pA, o_vec_seq, beliefs_A, self.A_dependencies, lr=lr_pA) + E_qA = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qA) + agent = tree_at(lambda x: (x.A, x.pA), agent, (E_qA, qA)) + + if self.learn_B: + beliefs_B = beliefs_A if beliefs_B is None else beliefs_B + # as many elements as there are control factors, where each element is a jnp.ndarray of shape (n_timesteps, ) + actions_seq = [actions[..., i] for i in range(actions.shape[-1])] + assert beliefs_B[0].shape[0] == actions_seq[0].shape[0] + 1 + actions_onehot = jtu.tree_map(lambda a, dim: nn.one_hot(a, dim, axis=-1), actions_seq, self.num_controls) + qB = learning.update_state_likelihood_dirichlet( + self.pB, beliefs_B, actions_onehot, self.B_dependencies, lr=lr_pB + ) + E_qB = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qB) + + # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece + if self.use_inductive and self.H is not None: + I_updated = control.generate_I_matrix(self.H, E_qB, self.inductive_threshold, self.inductive_depth) + else: + I_updated = self.I + + agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) + + # if self.learn_C: + # self.qC = learning.update_C(self.C, *args, **kwargs) + # self.C = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), self.qC) + # if self.learn_D: + # self.qD = learning.update_D(self.D, *args, **kwargs) + # self.D = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), self.qD) + # if self.learn_E: + # self.qE = learning.update_E(self.E, *args, **kwargs) + # self.E = maths.dirichlet_expected_value(self.qE) + + # do stuff + # variables = ... + # parameters = ... + # varibles = {'A': jnp.ones(5)} + + # agent = tree_at(lambda x: (x.A, x.pA, x.B, x.pB, x.I), self, (E_qA, qA, E_qB, qB, I_updated)) + + return agent + + @partial(vmap, in_axes=(0, 0, 0)) + def infer_empirical_prior(self, action, qs): + # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t + + qs_last = jtu.tree_map(lambda x: x[-1], qs) + # this computation of the predictive prior is correct only for fully factorised Bs. + pred = control.compute_expected_state(qs_last, self.B, action, B_dependencies=self.B_dependencies) + + return (pred, qs) + @vmap def multiaction_probabilities(self, q_pi: Array): """ @@ -405,7 +397,7 @@ def multiaction_probabilities(self, q_pi: Array): ---------- q_pi: 1D ``numpy.ndarray`` Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - + Returns ---------- multi-action: 1D ``jax.numpy.ndarray`` @@ -418,20 +410,17 @@ def multiaction_probabilities(self, q_pi: Array): marginals = jtu.tree_reduce(outer, marginals) elif self.sampling_mode == "full": - locs = jnp.all( - self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), - -1 - ) - marginals = jnp.where(locs, q_pi, 0.).sum(-1) + locs = jnp.all(self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), -1) + marginals = jnp.where(locs, q_pi, 0.0).sum(-1) - # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan + # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan return marginals @vmap def sample_action(self, q_pi: Array, rng_key=None): """ Sample or select a discrete action from the posterior over control states. - + Returns ---------- action: 1D ``jax.numpy.ndarray`` @@ -444,12 +433,16 @@ def sample_action(self, q_pi: Array, rng_key=None): raise ValueError("Please provide a random number generator key to sample actions stochastically") if self.sampling_mode == "marginal": - action = control.sample_action(q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key) + action = control.sample_action( + q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key + ) elif self.sampling_mode == "full": - action = control.sample_policy(q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key) + action = control.sample_policy( + q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key + ) return action - + def _get_default_params(self): method = self.inference_algo default_params = None @@ -466,4 +459,50 @@ def _get_default_params(self): elif method == "CV": raise NotImplementedError("CV is not implemented") - return default_params \ No newline at end of file + return default_params + + def _construct_policies(self): + self.policies = control.construct_policies( + self.num_states, self.num_controls, self.policy_len, self.control_fac_idx + ) + + @vmap + def _construct_I(self): + return control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) + + @property + def unique_multiactions(self): + size = pymath.prod(self.num_controls) + return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) + + def _validate(self): + for m in range(self.num_modalities): + factor_dims = tuple([self.num_states[f] for f in self.A_dependencies[m]]) + assert ( + self.A[m].shape[2:] == factor_dims + ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." + if self.pA != None: + assert ( + self.pA[m].shape[2:] == factor_dims + ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of pA[{m}]..." + assert max(self.A_dependencies[m]) <= ( + self.num_factors - 1 + ), f"Check modality {m} of `A_dependencies` - must be consistent with `num_states` and `num_factors`..." + + for f in range(self.num_factors): + factor_dims = tuple([self.num_states[f] for f in self.B_dependencies[f]]) + assert ( + self.B[f].shape[2:-1] == factor_dims + ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B[{f}]..." + if self.pB != None: + assert ( + self.pB[f].shape[2:-1] == factor_dims + ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB[{f}]..." + assert max(self.B_dependencies[f]) <= ( + self.num_factors - 1 + ), f"Check factor {f} of `B_dependencies` - must be consistent with `num_states` and `num_factors`..." + + for factor_idx in self.control_fac_idx: + assert ( + self.num_controls[factor_idx] > 1 + ), "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" From beca2620d1a5da41bd85d3bbdb8f66d1ff1507b0 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 15:09:52 +0200 Subject: [PATCH 029/196] add get_dependencies --- pymdp/jax/distribution.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 7551d5c8..79e5de62 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -181,6 +181,25 @@ def compile_model(config): return transitions, likelihoods +def get_dependencies(transitions, likelihoods): + print(likelihoods[0]) + likelihood_dependencies = dict() + transition_dependencies = dict() + observations = [list(like.event.keys())[0] for like in likelihoods] + states = [list(trans.event.keys())[0] for trans in transitions] + for like in likelihoods: + likelihood_dependencies[list(like.event.keys())[0]] = [ + states.index(name) for name in like.batch.keys() + ] + for trans in transitions: + transition_dependencies[list(trans.event.keys())[0]] = [ + states.index(name) for name in trans.batch.keys() if name in states + ] + return list(likelihood_dependencies.values()), list( + transition_dependencies.values() + ) + + if __name__ == "__main__": controls = ["up", "down"] locations = ["A", "B", "C", "D"] @@ -230,7 +249,7 @@ def compile_model(config): "observation_1": {"size": 10, "depends_on": ["factor_1"]}, "observation_2": { "elements": ["A", "B"], - "depends_on": ["factor_1"], + "depends_on": ["factor_2"], }, }, "controls": { @@ -256,6 +275,8 @@ def compile_model(config): assert trans[0].data.shape == (3, 3, 2, 2, 2) assert trans[1].data.shape == (2, 2, 2) assert like[0].data.shape == (10, 3) - assert like[1].data.shape == (2, 3) + assert like[1].data.shape == (2, 2) assert like[0][:, "II"] is not None assert like[1][1, :] is not None + A_deps, B_deps = get_dependencies(trans, like) + print(A_deps, B_deps) From d070e37f2d6ebb337c7463630838d2d485c5467a Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 15:11:24 +0200 Subject: [PATCH 030/196] clean up a bit --- pymdp/jax/distribution.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 79e5de62..7f1331f4 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -185,7 +185,6 @@ def get_dependencies(transitions, likelihoods): print(likelihoods[0]) likelihood_dependencies = dict() transition_dependencies = dict() - observations = [list(like.event.keys())[0] for like in likelihoods] states = [list(trans.event.keys())[0] for trans in transitions] for like in likelihoods: likelihood_dependencies[list(like.event.keys())[0]] = [ From 3685a9311db0977a7db7ceac609a2b8e05382bb7 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 15:38:57 +0200 Subject: [PATCH 031/196] add dependency extraction to jax agent --- examples/distribution_api.ipynb | 151 ++++++++++++++++++++------------ pymdp/jax/agent.py | 5 +- pymdp/jax/distribution.py | 50 +++-------- 3 files changed, 110 insertions(+), 96 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index 02d2fdd1..42ea8c1b 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -38,80 +38,57 @@ "source": [ "import numpy as np\n", "import jax\n", - "from jax import numpy as jnp \n", + "from jax import numpy as jnp\n", "\n", "from pymdp.jax import Distribution\n", "from pymdp.jax.agent import Agent\n", "\n", "np.set_printoptions(precision=2, suppress=True)\n", "\n", - "## Likelihood\n", "\n", - "# Define the labels for the factors and modalities.\n", + "def get_task_info():\n", + " policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", + " C = jnp.zeros((1, 4))\n", + " C = C.at[0, 3].set(1.0)\n", + " action = jnp.array([[1]])\n", + " qs = [jnp.zeros((1, 1, 4))]\n", + " qs[0] = qs[0].at[0, 0, 0].set(1.0)\n", + " observation = [jnp.array([[0]])]\n", + " return policies, C, action, qs, observation\n", + "\n", "observations = [\"A\", \"B\", \"C\", \"D\"]\n", "states = [\"A\", \"B\", \"C\", \"D\"]\n", "controls = [\"up\", \"down\"]\n", "\n", - "# Create the underlying data structure.\n", "data = np.zeros((len(observations), len(states)))\n", + "A = Distribution(data, {\"observations\": observations}, {\"states\": states})\n", "\n", - "# Initialize the Distribution itself.\n", - "likelihood = Distribution(data, {\"observation\": observations}, {\"state\": states})\n", - "\n", - "# From now on we can use the semantic labels to index the array to assign the\n", - "# probabilities we want.\n", - "likelihood[\"A\", \"A\"] = 1.0 \n", - "likelihood[\"B\", \"B\"] = 1.0\n", - "likelihood[\"C\", \"C\"] = 1.0\n", - "likelihood[\"D\", \"D\"] = 1.0\n", + "A[\"A\", \"A\"] = 1.0\n", + "A[\"B\", \"B\"] = 1.0\n", + "A[\"C\", \"C\"] = 1.0\n", + "A[\"D\", \"D\"] = 1.0\n", "\n", - "\n", - "## Transition\n", - "# Similarily we can use the distributions to build a \n", "data = np.zeros((len(states), len(states), len(controls)))\n", - "transition = Distribution(data, {\"state\": states}, {\"state\": states, \"control\": controls})\n", - "\n", - "transition[\"B\", \"A\", \"up\"] = 1.0\n", - "transition[\"C\", \"B\", \"up\"] = 1.0\n", - "transition[\"D\", \"C\", \"up\"] = 1.0\n", - "transition[\"D\", \"D\", \"up\"] = 1.0\n", - "\n", - "transition[\"A\", \"A\", \"down\"] = 1.0\n", - "transition[\"A\", \"B\", \"down\"] = 1.0\n", - "transition[\"B\", \"C\", \"down\"] = 1.0\n", - "transition[\"C\", \"D\", \"down\"] = 1.0\n", - "\n", - "A = [jnp.broadcast_to(likelihood.data, (1,) + likelihood.data.shape)]\n", - "B = [jnp.broadcast_to(transition.data, (1,) + transition.data.shape)]\n", - "\n", - "\n", - "C = [jnp.zeros((1, 4))]\n", - "C[0] = C[0].at[0, 0].set(1.0)\n", - "D = jnp.ones((1, 4)) / 8.0\n", - "E = jnp.ones((1, 2)) / 4.0\n", + "B = Distribution(data, {\"states\": states}, {\"states\": states, \"controls\": controls})\n", "\n", - "policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", + "B[\"B\", \"A\", \"up\"] = 1.0\n", + "B[\"C\", \"B\", \"up\"] = 1.0\n", + "B[\"D\", \"C\", \"up\"] = 1.0\n", + "B[\"D\", \"D\", \"up\"] = 1.0\n", "\n", + "B[\"A\", \"A\", \"down\"] = 1.0\n", + "B[\"A\", \"B\", \"down\"] = 1.0\n", + "B[\"B\", \"C\", \"down\"] = 1.0\n", + "B[\"C\", \"D\", \"down\"] = 1.0\n", "\n", - "agent = Agent(A, B, C, D, E, A, B, policies=policies)\n", - "\n", - "observation = [jnp.array([[3]])]\n", - "action = jnp.array([[0]])\n", - "\n", - "qs = [jnp.zeros((1, 1, 4))]\n", - "qs[0] = qs[0].at[0, 0, 3].set(1.0)\n", - "\n", - "prior, _ = agent.update_empirical_prior(action, qs)\n", - "\n", + "policies, C, action, qs, observation = get_task_info()\n", "\n", + "agent = Agent([A], [B], [C], policies=policies)\n", + "prior, _ = agent.infer_empirical_prior(action, qs)\n", "qs = agent.infer_states(observation, None, prior, None)\n", - "print(qs)\n", "\n", "q_pi, G = agent.infer_policies(qs)\n", - "print(q_pi)\n", - "key = jax.random.PRNGKey(0)\n", - "action = agent.sample_action(q_pi)\n", - "print(action)" + "action = agent.sample_action(q_pi)" ] }, { @@ -125,10 +102,72 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(4, 4)\n" + ] + }, + { + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[13], line 21\u001b[0m\n\u001b[1;32m 18\u001b[0m As[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 19\u001b[0m As[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[0;32m---> 21\u001b[0m \u001b[43mBs\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mB\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mA\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mup\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 22\u001b[0m Bs[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mB\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mup\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 23\u001b[0m Bs[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mup\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n", + "File \u001b[0;32m~/repos/pymdp/pymdp/jax/distribution.py:78\u001b[0m, in \u001b[0;36m__setitem__\u001b[0;34m(self, indices, value)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcompile_model\u001b[39m(config):\n\u001b[1;32m 73\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Compile a model from a config.\u001b[39;00m\n\u001b[1;32m 74\u001b[0m \n\u001b[1;32m 75\u001b[0m \u001b[38;5;124;03m Takes a model description dictionary and builds the corresponding\u001b[39;00m\n\u001b[1;32m 76\u001b[0m \u001b[38;5;124;03m Likelihood and Transition tensors. The tensors are filled with only\u001b[39;00m\n\u001b[1;32m 77\u001b[0m \u001b[38;5;124;03m zeros and need to be filled in later by the caller of this function.\u001b[39;00m\n\u001b[0;32m---> 78\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[1;32m 79\u001b[0m \u001b[38;5;124;03m The config should consist of three top-level keys:\u001b[39;00m\n\u001b[1;32m 80\u001b[0m \u001b[38;5;124;03m * observations\u001b[39;00m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;124;03m * controls\u001b[39;00m\n\u001b[1;32m 82\u001b[0m \u001b[38;5;124;03m * states\u001b[39;00m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;124;03m where each entry consists of another dictionary with the name of the\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \u001b[38;5;124;03m modality as key and the modality description.\u001b[39;00m\n\u001b[1;32m 85\u001b[0m \n\u001b[1;32m 86\u001b[0m \u001b[38;5;124;03m The modality description should consist out of either a `size` or `elements`\u001b[39;00m\n\u001b[1;32m 87\u001b[0m \u001b[38;5;124;03m field indicating the named elements or the size of the integer array.\u001b[39;00m\n\u001b[1;32m 88\u001b[0m \u001b[38;5;124;03m In the case of an observation the `depends_on` field needs to be present to\u001b[39;00m\n\u001b[1;32m 89\u001b[0m \u001b[38;5;124;03m indicate what state factor links to this observation. In the case of states\u001b[39;00m\n\u001b[1;32m 90\u001b[0m \u001b[38;5;124;03m the `depends_on_states` and `depends_on_control` fields are needed.\u001b[39;00m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;124;03m example config:\u001b[39;00m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124;03m { \"observations\": {\u001b[39;00m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;124;03m \"observation_1\": {\"size\": 10, \"depends_on\": [\"factor_1\"]},\u001b[39;00m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124;03m \"observation_2\": {\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \u001b[38;5;124;03m \"elements\": [\"A\", \"B\"],\u001b[39;00m\n\u001b[1;32m 97\u001b[0m \u001b[38;5;124;03m \"depends_on\": [\"factor_1\"],\u001b[39;00m\n\u001b[1;32m 98\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 100\u001b[0m \u001b[38;5;124;03m \"controls\": {\u001b[39;00m\n\u001b[1;32m 101\u001b[0m \u001b[38;5;124;03m \"control_1\": {\"size\": 2},\u001b[39;00m\n\u001b[1;32m 102\u001b[0m \u001b[38;5;124;03m \"control_2\": {\"elements\": [\"X\", \"Y\"]},\u001b[39;00m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 104\u001b[0m \u001b[38;5;124;03m \"states\": {\u001b[39;00m\n\u001b[1;32m 105\u001b[0m \u001b[38;5;124;03m \"factor_1\": {\u001b[39;00m\n\u001b[1;32m 106\u001b[0m \u001b[38;5;124;03m \"elements\": [\"II\", \"JJ\", \"KK\"],\u001b[39;00m\n\u001b[1;32m 107\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_1\", \"factor_2\"],\u001b[39;00m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_1\", \"control_2\"],\u001b[39;00m\n\u001b[1;32m 109\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 110\u001b[0m \u001b[38;5;124;03m \"factor_2\": {\u001b[39;00m\n\u001b[1;32m 111\u001b[0m \u001b[38;5;124;03m \"elements\": [\"foo\", \"bar\"],\u001b[39;00m\n\u001b[1;32m 112\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_2\"],\u001b[39;00m\n\u001b[1;32m 113\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_2\"],\u001b[39;00m\n\u001b[1;32m 114\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 115\u001b[0m \u001b[38;5;124;03m }}\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m 117\u001b[0m \u001b[38;5;66;03m# these are needed to get the ordering of the dimensions correct for pymdp\u001b[39;00m\n\u001b[1;32m 118\u001b[0m state_dependencies \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mdict\u001b[39m()\n", + "File \u001b[0;32m~/repos/pymdp/pymdp/jax/distribution.py:79\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcompile_model\u001b[39m(config):\n\u001b[1;32m 73\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Compile a model from a config.\u001b[39;00m\n\u001b[1;32m 74\u001b[0m \n\u001b[1;32m 75\u001b[0m \u001b[38;5;124;03m Takes a model description dictionary and builds the corresponding\u001b[39;00m\n\u001b[1;32m 76\u001b[0m \u001b[38;5;124;03m Likelihood and Transition tensors. The tensors are filled with only\u001b[39;00m\n\u001b[1;32m 77\u001b[0m \u001b[38;5;124;03m zeros and need to be filled in later by the caller of this function.\u001b[39;00m\n\u001b[1;32m 78\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[0;32m---> 79\u001b[0m \u001b[38;5;124;03m The config should consist of three top-level keys:\u001b[39;00m\n\u001b[1;32m 80\u001b[0m \u001b[38;5;124;03m * observations\u001b[39;00m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;124;03m * controls\u001b[39;00m\n\u001b[1;32m 82\u001b[0m \u001b[38;5;124;03m * states\u001b[39;00m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;124;03m where each entry consists of another dictionary with the name of the\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \u001b[38;5;124;03m modality as key and the modality description.\u001b[39;00m\n\u001b[1;32m 85\u001b[0m \n\u001b[1;32m 86\u001b[0m \u001b[38;5;124;03m The modality description should consist out of either a `size` or `elements`\u001b[39;00m\n\u001b[1;32m 87\u001b[0m \u001b[38;5;124;03m field indicating the named elements or the size of the integer array.\u001b[39;00m\n\u001b[1;32m 88\u001b[0m \u001b[38;5;124;03m In the case of an observation the `depends_on` field needs to be present to\u001b[39;00m\n\u001b[1;32m 89\u001b[0m \u001b[38;5;124;03m indicate what state factor links to this observation. In the case of states\u001b[39;00m\n\u001b[1;32m 90\u001b[0m \u001b[38;5;124;03m the `depends_on_states` and `depends_on_control` fields are needed.\u001b[39;00m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;124;03m example config:\u001b[39;00m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124;03m { \"observations\": {\u001b[39;00m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;124;03m \"observation_1\": {\"size\": 10, \"depends_on\": [\"factor_1\"]},\u001b[39;00m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124;03m \"observation_2\": {\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \u001b[38;5;124;03m \"elements\": [\"A\", \"B\"],\u001b[39;00m\n\u001b[1;32m 97\u001b[0m \u001b[38;5;124;03m \"depends_on\": [\"factor_1\"],\u001b[39;00m\n\u001b[1;32m 98\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 100\u001b[0m \u001b[38;5;124;03m \"controls\": {\u001b[39;00m\n\u001b[1;32m 101\u001b[0m \u001b[38;5;124;03m \"control_1\": {\"size\": 2},\u001b[39;00m\n\u001b[1;32m 102\u001b[0m \u001b[38;5;124;03m \"control_2\": {\"elements\": [\"X\", \"Y\"]},\u001b[39;00m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 104\u001b[0m \u001b[38;5;124;03m \"states\": {\u001b[39;00m\n\u001b[1;32m 105\u001b[0m \u001b[38;5;124;03m \"factor_1\": {\u001b[39;00m\n\u001b[1;32m 106\u001b[0m \u001b[38;5;124;03m \"elements\": [\"II\", \"JJ\", \"KK\"],\u001b[39;00m\n\u001b[1;32m 107\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_1\", \"factor_2\"],\u001b[39;00m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_1\", \"control_2\"],\u001b[39;00m\n\u001b[1;32m 109\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 110\u001b[0m \u001b[38;5;124;03m \"factor_2\": {\u001b[39;00m\n\u001b[1;32m 111\u001b[0m \u001b[38;5;124;03m \"elements\": [\"foo\", \"bar\"],\u001b[39;00m\n\u001b[1;32m 112\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_2\"],\u001b[39;00m\n\u001b[1;32m 113\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_2\"],\u001b[39;00m\n\u001b[1;32m 114\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 115\u001b[0m \u001b[38;5;124;03m }}\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m 117\u001b[0m \u001b[38;5;66;03m# these are needed to get the ordering of the dimensions correct for pymdp\u001b[39;00m\n\u001b[1;32m 118\u001b[0m state_dependencies \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mdict\u001b[39m()\n", + "File \u001b[0;32m~/repos/pymdp/pymdp/jax/distribution.py:63\u001b[0m, in \u001b[0;36m_get_index_from_axis\u001b[0;34m(self, axis, element)\u001b[0m\n\u001b[1;32m 61\u001b[0m indices \u001b[38;5;241m=\u001b[39m (indices,)\n\u001b[1;32m 62\u001b[0m index_list \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_index_from_axis(i, idx) \u001b[38;5;28;01mfor\u001b[39;00m i, idx \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(indices)]\n\u001b[0;32m---> 63\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata[\u001b[38;5;28mtuple\u001b[39m(index_list)]\n", + "\u001b[0;31mIndexError\u001b[0m: list index out of range" + ] + } + ], + "source": [ + "from pymdp.jax import distribution\n", + "\n", + "model = {\n", + " \"observations\": {\n", + " \"o1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"]},\n", + " },\n", + " \"controls\": {\"c1\": {\"elements\": [\"up\", \"down\"]}},\n", + " \"states\": {\n", + " \"s1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on_states\": [\"s1\"], \"depends_on_control\": [\"c1\"]},\n", + " },\n", + "}\n", + "\n", + "As, Bs = distribution.compile_model(model)\n", + "print(Bs[0].data.shape)\n", + "\n", + "As[0][\"A\", \"A\"] = 1.0\n", + "As[0][\"B\", \"B\"] = 1.0\n", + "As[0][\"C\", \"C\"] = 1.0\n", + "As[0][\"D\", \"D\"] = 1.0\n", + "\n", + "Bs[0][\"B\", \"A\", \"up\"] = 1.0\n", + "Bs[0][\"C\", \"B\", \"up\"] = 1.0\n", + "Bs[0][\"D\", \"C\", \"up\"] = 1.0\n", + "Bs[0][\"D\", \"D\", \"up\"] = 1.0\n", + "\n", + "Bs[0][\"A\", \"A\", \"down\"] = 1.0\n", + "Bs[0][\"A\", \"B\", \"down\"] = 1.0\n", + "Bs[0][\"B\", \"C\", \"down\"] = 1.0\n", + "Bs[0][\"C\", \"D\", \"down\"] = 1.0\n", + "\n", + "policies, Cs, action, qs, observation = get_task_info()\n", + "\n", + "agent = Agent(As, Bs, Cs, policies=policies)\n", + "prior, _ = agent.infer_empirical_prior(action, qs)\n", + "qs = agent.infer_states(observation, None, prior, None)\n", + "\n", + "q_pi, G = agent.infer_policies(qs)\n", + "action = agent.sample_action(q_pi)\n", + "print(action)" + ] } ], "metadata": { @@ -147,7 +186,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.3" + "version": "3.11.9" } }, "nbformat": 4, diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 68a3d51c..f8ed8f6e 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -12,7 +12,7 @@ import jax.tree_util as jtu from jax import nn, vmap, random from . import inference, control, learning, utils, maths -from .distribution import Distribution +from .distribution import Distribution, get_dependencies from equinox import Module, field, tree_at from typing import List, Optional @@ -135,6 +135,9 @@ def __init__( learn_E=False, ): + if A_dependencies is None and B_dependencies is None: + A_dependencies, B_dependencies = get_dependencies(A, B) + # TODO: infer batch shape in general case, here we assume no batch in Distribution object A = [jnp.expand_dims(a.data, 0) if isinstance(a, Distribution) else a for a in A] B = [jnp.expand_dims(b.data, 0) if isinstance(b, Distribution) else b for b in B] diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 7f1331f4..ca51d439 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -8,14 +8,8 @@ def __init__(self, data: np.ndarray, event: dict, batch: dict): self.event = event self.batch = batch - self.event_indices = { - key: {v: i for i, v in enumerate(values)} - for key, values in event.items() - } - self.batch_indices = { - key: {v: i for i, v in enumerate(values)} - for key, values in batch.items() - } + self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} + self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} def get(self, batch=None, event=None): event_slices = self._get_slices(event, self.event_indices, self.event) @@ -38,9 +32,7 @@ def _get_slices(self, keys, indices, full_indices): for key in full_indices: if key in keys: if isinstance(keys[key], list): - slices.append( - [self._get_index(v, indices[key]) for v in keys[key]] - ) + slices.append([self._get_index(v, indices[key]) for v in keys[key]]) else: slices.append(self._get_index(keys[key], indices[key])) else: @@ -67,17 +59,13 @@ def _get_index_from_axis(self, axis, element): def __getitem__(self, indices): if not isinstance(indices, tuple): indices = (indices,) - index_list = [ - self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) - ] + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] return self.data[tuple(index_list)] def __setitem__(self, indices, value): if not isinstance(indices, tuple): indices = (indices,) - index_list = [ - self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) - ] + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] self.data[tuple(index_list)] = value @@ -151,9 +139,7 @@ def compile_model(config): case "depends_on_control": control_dependencies[k] = [name for name in v[keyword]] case "depends_on": - likelihood_dependencies[k] = [ - name for name in v[keyword] - ] + likelihood_dependencies[k] = [name for name in v[keyword]] likelihood_events[k] = labels[k] transitions = [] for event, description in transition_events.items(): @@ -182,21 +168,16 @@ def compile_model(config): def get_dependencies(transitions, likelihoods): - print(likelihoods[0]) likelihood_dependencies = dict() transition_dependencies = dict() states = [list(trans.event.keys())[0] for trans in transitions] for like in likelihoods: - likelihood_dependencies[list(like.event.keys())[0]] = [ - states.index(name) for name in like.batch.keys() - ] + likelihood_dependencies[list(like.event.keys())[0]] = [states.index(name) for name in like.batch.keys()] for trans in transitions: transition_dependencies[list(trans.event.keys())[0]] = [ states.index(name) for name in trans.batch.keys() if name in states ] - return list(likelihood_dependencies.values()), list( - transition_dependencies.values() - ) + return list(likelihood_dependencies.values()), list(transition_dependencies.values()) if __name__ == "__main__": @@ -224,22 +205,13 @@ def get_dependencies(transitions, likelihoods): assert np.all(transition[:, "B", "up"] == 1.0) assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.0 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 assert transition.get({"control": "up"}).shape == (4, 4) transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.5 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.7 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) From 2fd13dc084f65c5a61cfeddf1228ba7c7fe022bc Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 15:55:19 +0200 Subject: [PATCH 032/196] acknowledge that the alphabet has an ordering --- examples/distribution_api.ipynb | 50 +++++++++++++++-------- pymdp/jax/distribution.py | 71 ++++++++++++++++++++++++++------- test/test_distribution.py | 2 +- 3 files changed, 91 insertions(+), 32 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index 42ea8c1b..b884f894 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -22,16 +22,23 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Array([[[0., 0., 0., 1.]]], dtype=float32)]\n", - "[[0. 1.]]\n", - "[[1]]\n" + "ename": "ValueError", + "evalue": "'states' is not in list", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[1], line 48\u001b[0m\n\u001b[1;32m 44\u001b[0m B[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdown\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 46\u001b[0m policies, C, action, qs, observation \u001b[38;5;241m=\u001b[39m get_task_info()\n\u001b[0;32m---> 48\u001b[0m agent \u001b[38;5;241m=\u001b[39m \u001b[43mAgent\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[43mA\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43mB\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43mC\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpolicies\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpolicies\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 49\u001b[0m prior, _ \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_empirical_prior(action, qs)\n\u001b[1;32m 50\u001b[0m qs \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_states(observation, \u001b[38;5;28;01mNone\u001b[39;00m, prior, \u001b[38;5;28;01mNone\u001b[39;00m)\n", + "File \u001b[0;32m~/develop/pymdp/.venv/lib/python3.11/site-packages/equinox/_module.py:548\u001b[0m, in \u001b[0;36m_ModuleMeta.__call__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 546\u001b[0m initable_cls \u001b[38;5;241m=\u001b[39m _make_initable(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m, post_init, wraps\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 547\u001b[0m \u001b[38;5;66;03m# [Step 2] Instantiate the class as normal.\u001b[39;00m\n\u001b[0;32m--> 548\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m_ModuleMeta\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minitable_cls\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 549\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m _is_abstract(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 550\u001b[0m \u001b[38;5;66;03m# [Step 3] Check that all fields are occupied.\u001b[39;00m\n", + " \u001b[0;31m[... skipping hidden 2 frame]\u001b[0m\n", + "File \u001b[0;32m~/develop/pymdp/pymdp/jax/agent.py:139\u001b[0m, in \u001b[0;36mAgent.__init__\u001b[0;34m(self, A, B, C, D, E, pA, pB, A_dependencies, B_dependencies, qs, q_pi, H, I, policy_len, control_fac_idx, policies, gamma, alpha, inductive_depth, inductive_threshold, inductive_epsilon, use_utility, use_states_info_gain, use_param_info_gain, use_inductive, onehot_obs, action_selection, sampling_mode, inference_algo, num_iter, learn_A, learn_B, learn_C, learn_D, learn_E)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\n\u001b[1;32m 100\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 101\u001b[0m A,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 135\u001b[0m learn_E\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 136\u001b[0m ):\n\u001b[1;32m 138\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m A_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m B_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 139\u001b[0m A_dependencies, B_dependencies \u001b[38;5;241m=\u001b[39m \u001b[43mget_dependencies\u001b[49m\u001b[43m(\u001b[49m\u001b[43mA\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mB\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;66;03m# TODO: infer batch shape in general case, here we assume no batch in Distribution object\u001b[39;00m\n\u001b[1;32m 142\u001b[0m A \u001b[38;5;241m=\u001b[39m [jnp\u001b[38;5;241m.\u001b[39mexpand_dims(a\u001b[38;5;241m.\u001b[39mdata, \u001b[38;5;241m0\u001b[39m) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(a, Distribution) \u001b[38;5;28;01melse\u001b[39;00m a \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m A]\n", + "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36mget_dependencies\u001b[0;34m(transitions, likelihoods)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mlike\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbatch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkeys\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", + "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m like\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys()]\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", + "\u001b[0;31mValueError\u001b[0m: 'states' is not in list" ] } ], @@ -102,28 +109,30 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "(4, 4)\n" + "(4, 4, 2)\n" ] }, { - "ename": "IndexError", - "evalue": "list index out of range", + "ename": "ValueError", + "evalue": "'s1' is not in list", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[13], line 21\u001b[0m\n\u001b[1;32m 18\u001b[0m As[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 19\u001b[0m As[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[0;32m---> 21\u001b[0m \u001b[43mBs\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mB\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mA\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mup\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 22\u001b[0m Bs[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mB\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mup\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 23\u001b[0m Bs[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mup\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n", - "File \u001b[0;32m~/repos/pymdp/pymdp/jax/distribution.py:78\u001b[0m, in \u001b[0;36m__setitem__\u001b[0;34m(self, indices, value)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcompile_model\u001b[39m(config):\n\u001b[1;32m 73\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Compile a model from a config.\u001b[39;00m\n\u001b[1;32m 74\u001b[0m \n\u001b[1;32m 75\u001b[0m \u001b[38;5;124;03m Takes a model description dictionary and builds the corresponding\u001b[39;00m\n\u001b[1;32m 76\u001b[0m \u001b[38;5;124;03m Likelihood and Transition tensors. The tensors are filled with only\u001b[39;00m\n\u001b[1;32m 77\u001b[0m \u001b[38;5;124;03m zeros and need to be filled in later by the caller of this function.\u001b[39;00m\n\u001b[0;32m---> 78\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[1;32m 79\u001b[0m \u001b[38;5;124;03m The config should consist of three top-level keys:\u001b[39;00m\n\u001b[1;32m 80\u001b[0m \u001b[38;5;124;03m * observations\u001b[39;00m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;124;03m * controls\u001b[39;00m\n\u001b[1;32m 82\u001b[0m \u001b[38;5;124;03m * states\u001b[39;00m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;124;03m where each entry consists of another dictionary with the name of the\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \u001b[38;5;124;03m modality as key and the modality description.\u001b[39;00m\n\u001b[1;32m 85\u001b[0m \n\u001b[1;32m 86\u001b[0m \u001b[38;5;124;03m The modality description should consist out of either a `size` or `elements`\u001b[39;00m\n\u001b[1;32m 87\u001b[0m \u001b[38;5;124;03m field indicating the named elements or the size of the integer array.\u001b[39;00m\n\u001b[1;32m 88\u001b[0m \u001b[38;5;124;03m In the case of an observation the `depends_on` field needs to be present to\u001b[39;00m\n\u001b[1;32m 89\u001b[0m \u001b[38;5;124;03m indicate what state factor links to this observation. In the case of states\u001b[39;00m\n\u001b[1;32m 90\u001b[0m \u001b[38;5;124;03m the `depends_on_states` and `depends_on_control` fields are needed.\u001b[39;00m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;124;03m example config:\u001b[39;00m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124;03m { \"observations\": {\u001b[39;00m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;124;03m \"observation_1\": {\"size\": 10, \"depends_on\": [\"factor_1\"]},\u001b[39;00m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124;03m \"observation_2\": {\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \u001b[38;5;124;03m \"elements\": [\"A\", \"B\"],\u001b[39;00m\n\u001b[1;32m 97\u001b[0m \u001b[38;5;124;03m \"depends_on\": [\"factor_1\"],\u001b[39;00m\n\u001b[1;32m 98\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 100\u001b[0m \u001b[38;5;124;03m \"controls\": {\u001b[39;00m\n\u001b[1;32m 101\u001b[0m \u001b[38;5;124;03m \"control_1\": {\"size\": 2},\u001b[39;00m\n\u001b[1;32m 102\u001b[0m \u001b[38;5;124;03m \"control_2\": {\"elements\": [\"X\", \"Y\"]},\u001b[39;00m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 104\u001b[0m \u001b[38;5;124;03m \"states\": {\u001b[39;00m\n\u001b[1;32m 105\u001b[0m \u001b[38;5;124;03m \"factor_1\": {\u001b[39;00m\n\u001b[1;32m 106\u001b[0m \u001b[38;5;124;03m \"elements\": [\"II\", \"JJ\", \"KK\"],\u001b[39;00m\n\u001b[1;32m 107\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_1\", \"factor_2\"],\u001b[39;00m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_1\", \"control_2\"],\u001b[39;00m\n\u001b[1;32m 109\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 110\u001b[0m \u001b[38;5;124;03m \"factor_2\": {\u001b[39;00m\n\u001b[1;32m 111\u001b[0m \u001b[38;5;124;03m \"elements\": [\"foo\", \"bar\"],\u001b[39;00m\n\u001b[1;32m 112\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_2\"],\u001b[39;00m\n\u001b[1;32m 113\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_2\"],\u001b[39;00m\n\u001b[1;32m 114\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 115\u001b[0m \u001b[38;5;124;03m }}\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m 117\u001b[0m \u001b[38;5;66;03m# these are needed to get the ordering of the dimensions correct for pymdp\u001b[39;00m\n\u001b[1;32m 118\u001b[0m state_dependencies \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mdict\u001b[39m()\n", - "File \u001b[0;32m~/repos/pymdp/pymdp/jax/distribution.py:79\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcompile_model\u001b[39m(config):\n\u001b[1;32m 73\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Compile a model from a config.\u001b[39;00m\n\u001b[1;32m 74\u001b[0m \n\u001b[1;32m 75\u001b[0m \u001b[38;5;124;03m Takes a model description dictionary and builds the corresponding\u001b[39;00m\n\u001b[1;32m 76\u001b[0m \u001b[38;5;124;03m Likelihood and Transition tensors. The tensors are filled with only\u001b[39;00m\n\u001b[1;32m 77\u001b[0m \u001b[38;5;124;03m zeros and need to be filled in later by the caller of this function.\u001b[39;00m\n\u001b[1;32m 78\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[0;32m---> 79\u001b[0m \u001b[38;5;124;03m The config should consist of three top-level keys:\u001b[39;00m\n\u001b[1;32m 80\u001b[0m \u001b[38;5;124;03m * observations\u001b[39;00m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;124;03m * controls\u001b[39;00m\n\u001b[1;32m 82\u001b[0m \u001b[38;5;124;03m * states\u001b[39;00m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;124;03m where each entry consists of another dictionary with the name of the\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \u001b[38;5;124;03m modality as key and the modality description.\u001b[39;00m\n\u001b[1;32m 85\u001b[0m \n\u001b[1;32m 86\u001b[0m \u001b[38;5;124;03m The modality description should consist out of either a `size` or `elements`\u001b[39;00m\n\u001b[1;32m 87\u001b[0m \u001b[38;5;124;03m field indicating the named elements or the size of the integer array.\u001b[39;00m\n\u001b[1;32m 88\u001b[0m \u001b[38;5;124;03m In the case of an observation the `depends_on` field needs to be present to\u001b[39;00m\n\u001b[1;32m 89\u001b[0m \u001b[38;5;124;03m indicate what state factor links to this observation. In the case of states\u001b[39;00m\n\u001b[1;32m 90\u001b[0m \u001b[38;5;124;03m the `depends_on_states` and `depends_on_control` fields are needed.\u001b[39;00m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;124;03m example config:\u001b[39;00m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124;03m { \"observations\": {\u001b[39;00m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;124;03m \"observation_1\": {\"size\": 10, \"depends_on\": [\"factor_1\"]},\u001b[39;00m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124;03m \"observation_2\": {\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \u001b[38;5;124;03m \"elements\": [\"A\", \"B\"],\u001b[39;00m\n\u001b[1;32m 97\u001b[0m \u001b[38;5;124;03m \"depends_on\": [\"factor_1\"],\u001b[39;00m\n\u001b[1;32m 98\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 100\u001b[0m \u001b[38;5;124;03m \"controls\": {\u001b[39;00m\n\u001b[1;32m 101\u001b[0m \u001b[38;5;124;03m \"control_1\": {\"size\": 2},\u001b[39;00m\n\u001b[1;32m 102\u001b[0m \u001b[38;5;124;03m \"control_2\": {\"elements\": [\"X\", \"Y\"]},\u001b[39;00m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 104\u001b[0m \u001b[38;5;124;03m \"states\": {\u001b[39;00m\n\u001b[1;32m 105\u001b[0m \u001b[38;5;124;03m \"factor_1\": {\u001b[39;00m\n\u001b[1;32m 106\u001b[0m \u001b[38;5;124;03m \"elements\": [\"II\", \"JJ\", \"KK\"],\u001b[39;00m\n\u001b[1;32m 107\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_1\", \"factor_2\"],\u001b[39;00m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_1\", \"control_2\"],\u001b[39;00m\n\u001b[1;32m 109\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 110\u001b[0m \u001b[38;5;124;03m \"factor_2\": {\u001b[39;00m\n\u001b[1;32m 111\u001b[0m \u001b[38;5;124;03m \"elements\": [\"foo\", \"bar\"],\u001b[39;00m\n\u001b[1;32m 112\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_2\"],\u001b[39;00m\n\u001b[1;32m 113\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_2\"],\u001b[39;00m\n\u001b[1;32m 114\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 115\u001b[0m \u001b[38;5;124;03m }}\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m 117\u001b[0m \u001b[38;5;66;03m# these are needed to get the ordering of the dimensions correct for pymdp\u001b[39;00m\n\u001b[1;32m 118\u001b[0m state_dependencies \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mdict\u001b[39m()\n", - "File \u001b[0;32m~/repos/pymdp/pymdp/jax/distribution.py:63\u001b[0m, in \u001b[0;36m_get_index_from_axis\u001b[0;34m(self, axis, element)\u001b[0m\n\u001b[1;32m 61\u001b[0m indices \u001b[38;5;241m=\u001b[39m (indices,)\n\u001b[1;32m 62\u001b[0m index_list \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_index_from_axis(i, idx) \u001b[38;5;28;01mfor\u001b[39;00m i, idx \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(indices)]\n\u001b[0;32m---> 63\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata[\u001b[38;5;28mtuple\u001b[39m(index_list)]\n", - "\u001b[0;31mIndexError\u001b[0m: list index out of range" + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 33\u001b[0m\n\u001b[1;32m 29\u001b[0m Bs[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdown\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 31\u001b[0m policies, Cs, action, qs, observation \u001b[38;5;241m=\u001b[39m get_task_info()\n\u001b[0;32m---> 33\u001b[0m agent \u001b[38;5;241m=\u001b[39m \u001b[43mAgent\u001b[49m\u001b[43m(\u001b[49m\u001b[43mAs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mBs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mCs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpolicies\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpolicies\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 34\u001b[0m prior, _ \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_empirical_prior(action, qs)\n\u001b[1;32m 35\u001b[0m qs \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_states(observation, \u001b[38;5;28;01mNone\u001b[39;00m, prior, \u001b[38;5;28;01mNone\u001b[39;00m)\n", + "File \u001b[0;32m~/develop/pymdp/.venv/lib/python3.11/site-packages/equinox/_module.py:548\u001b[0m, in \u001b[0;36m_ModuleMeta.__call__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 546\u001b[0m initable_cls \u001b[38;5;241m=\u001b[39m _make_initable(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m, post_init, wraps\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 547\u001b[0m \u001b[38;5;66;03m# [Step 2] Instantiate the class as normal.\u001b[39;00m\n\u001b[0;32m--> 548\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m_ModuleMeta\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minitable_cls\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 549\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m _is_abstract(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 550\u001b[0m \u001b[38;5;66;03m# [Step 3] Check that all fields are occupied.\u001b[39;00m\n", + " \u001b[0;31m[... skipping hidden 2 frame]\u001b[0m\n", + "File \u001b[0;32m~/develop/pymdp/pymdp/jax/agent.py:139\u001b[0m, in \u001b[0;36mAgent.__init__\u001b[0;34m(self, A, B, C, D, E, pA, pB, A_dependencies, B_dependencies, qs, q_pi, H, I, policy_len, control_fac_idx, policies, gamma, alpha, inductive_depth, inductive_threshold, inductive_epsilon, use_utility, use_states_info_gain, use_param_info_gain, use_inductive, onehot_obs, action_selection, sampling_mode, inference_algo, num_iter, learn_A, learn_B, learn_C, learn_D, learn_E)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\n\u001b[1;32m 100\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 101\u001b[0m A,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 135\u001b[0m learn_E\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 136\u001b[0m ):\n\u001b[1;32m 138\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m A_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m B_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 139\u001b[0m A_dependencies, B_dependencies \u001b[38;5;241m=\u001b[39m \u001b[43mget_dependencies\u001b[49m\u001b[43m(\u001b[49m\u001b[43mA\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mB\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;66;03m# TODO: infer batch shape in general case, here we assume no batch in Distribution object\u001b[39;00m\n\u001b[1;32m 142\u001b[0m A \u001b[38;5;241m=\u001b[39m [jnp\u001b[38;5;241m.\u001b[39mexpand_dims(a\u001b[38;5;241m.\u001b[39mdata, \u001b[38;5;241m0\u001b[39m) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(a, Distribution) \u001b[38;5;28;01melse\u001b[39;00m a \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m A]\n", + "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36mget_dependencies\u001b[0;34m(transitions, likelihoods)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mlike\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbatch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkeys\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", + "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m like\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys()]\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", + "\u001b[0;31mValueError\u001b[0m: 's1' is not in list" ] } ], @@ -168,6 +177,13 @@ "action = agent.sample_action(q_pi)\n", "print(action)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index ca51d439..116fa016 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -8,8 +8,14 @@ def __init__(self, data: np.ndarray, event: dict, batch: dict): self.event = event self.batch = batch - self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} - self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} + self.event_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in event.items() + } + self.batch_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in batch.items() + } def get(self, batch=None, event=None): event_slices = self._get_slices(event, self.event_indices, self.event) @@ -32,7 +38,9 @@ def _get_slices(self, keys, indices, full_indices): for key in full_indices: if key in keys: if isinstance(keys[key], list): - slices.append([self._get_index(v, indices[key]) for v in keys[key]]) + slices.append( + [self._get_index(v, indices[key]) for v in keys[key]] + ) else: slices.append(self._get_index(keys[key], indices[key])) else: @@ -59,13 +67,17 @@ def _get_index_from_axis(self, axis, element): def __getitem__(self, indices): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] return self.data[tuple(index_list)] def __setitem__(self, indices, value): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] self.data[tuple(index_list)] = value @@ -139,7 +151,9 @@ def compile_model(config): case "depends_on_control": control_dependencies[k] = [name for name in v[keyword]] case "depends_on": - likelihood_dependencies[k] = [name for name in v[keyword]] + likelihood_dependencies[k] = [ + name for name in v[keyword] + ] likelihood_events[k] = labels[k] transitions = [] for event, description in transition_events.items(): @@ -164,20 +178,24 @@ def compile_model(config): batch_descr[dep] = labels[dep] arr = np.zeros(arr_shape) likelihoods.append(Distribution(arr, event_descr, batch_descr)) - return transitions, likelihoods + return likelihoods, transitions -def get_dependencies(transitions, likelihoods): +def get_dependencies(likelihoods, transitions): likelihood_dependencies = dict() transition_dependencies = dict() states = [list(trans.event.keys())[0] for trans in transitions] for like in likelihoods: - likelihood_dependencies[list(like.event.keys())[0]] = [states.index(name) for name in like.batch.keys()] + likelihood_dependencies[list(like.event.keys())[0]] = [ + states.index(name) for name in like.batch.keys() + ] for trans in transitions: transition_dependencies[list(trans.event.keys())[0]] = [ states.index(name) for name in trans.batch.keys() if name in states ] - return list(likelihood_dependencies.values()), list(transition_dependencies.values()) + return list(likelihood_dependencies.values()), list( + transition_dependencies.values() + ) if __name__ == "__main__": @@ -205,13 +223,22 @@ def get_dependencies(transitions, likelihoods): assert np.all(transition[:, "B", "up"] == 1.0) assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.0 + ) assert transition.get({"control": "up"}).shape == (4, 4) transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.5 + ) transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.7 + ) transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) @@ -240,7 +267,7 @@ def get_dependencies(transitions, likelihoods): }, }, } - trans, like = compile_model(model_example) + like, trans = compile_model(model_example) assert len(trans) == 2 assert len(like) == 2 assert trans[0].data.shape == (3, 3, 2, 2, 2) @@ -251,3 +278,19 @@ def get_dependencies(transitions, likelihoods): assert like[1][1, :] is not None A_deps, B_deps = get_dependencies(trans, like) print(A_deps, B_deps) + + model = { + "observations": { + "o1": {"elements": ["A", "B", "C", "D"], "depends_on": ["s1"]}, + }, + "controls": {"c1": {"elements": ["up", "down"]}}, + "states": { + "s1": { + "elements": ["A", "B", "C", "D"], + "depends_on_states": ["s1"], + "depends_on_control": ["c1"], + }, + }, + } + + As, Bs = compile_model(model) diff --git a/test/test_distribution.py b/test/test_distribution.py index 4414a25a..1e39b1ef 100644 --- a/test/test_distribution.py +++ b/test/test_distribution.py @@ -99,7 +99,7 @@ def test_agent_compile(self): }, }, } - trans, like = distribution.compile_model(model_example) + like, trans = distribution.compile_model(model_example) self.assertEqual(len(trans), 2) self.assertEqual(len(like), 2) self.assertEqual(trans[0].data.shape, (3, 3, 2, 2, 2)) From f3bc163cf1a2ae2fbec3c1ad96bbb824bba8b9bb Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 15:57:20 +0200 Subject: [PATCH 033/196] end to end test of agent API --- examples/distribution_api.ipynb | 51 +++------------------------------ pymdp/jax/agent.py | 18 ++++++------ pymdp/jax/distribution.py | 49 +++++++------------------------ 3 files changed, 24 insertions(+), 94 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index b884f894..cf8ec742 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -24,24 +24,7 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "'states' is not in list", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[1], line 48\u001b[0m\n\u001b[1;32m 44\u001b[0m B[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdown\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 46\u001b[0m policies, C, action, qs, observation \u001b[38;5;241m=\u001b[39m get_task_info()\n\u001b[0;32m---> 48\u001b[0m agent \u001b[38;5;241m=\u001b[39m \u001b[43mAgent\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[43mA\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43mB\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43mC\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpolicies\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpolicies\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 49\u001b[0m prior, _ \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_empirical_prior(action, qs)\n\u001b[1;32m 50\u001b[0m qs \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_states(observation, \u001b[38;5;28;01mNone\u001b[39;00m, prior, \u001b[38;5;28;01mNone\u001b[39;00m)\n", - "File \u001b[0;32m~/develop/pymdp/.venv/lib/python3.11/site-packages/equinox/_module.py:548\u001b[0m, in \u001b[0;36m_ModuleMeta.__call__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 546\u001b[0m initable_cls \u001b[38;5;241m=\u001b[39m _make_initable(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m, post_init, wraps\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 547\u001b[0m \u001b[38;5;66;03m# [Step 2] Instantiate the class as normal.\u001b[39;00m\n\u001b[0;32m--> 548\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m_ModuleMeta\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minitable_cls\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 549\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m _is_abstract(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 550\u001b[0m \u001b[38;5;66;03m# [Step 3] Check that all fields are occupied.\u001b[39;00m\n", - " \u001b[0;31m[... skipping hidden 2 frame]\u001b[0m\n", - "File \u001b[0;32m~/develop/pymdp/pymdp/jax/agent.py:139\u001b[0m, in \u001b[0;36mAgent.__init__\u001b[0;34m(self, A, B, C, D, E, pA, pB, A_dependencies, B_dependencies, qs, q_pi, H, I, policy_len, control_fac_idx, policies, gamma, alpha, inductive_depth, inductive_threshold, inductive_epsilon, use_utility, use_states_info_gain, use_param_info_gain, use_inductive, onehot_obs, action_selection, sampling_mode, inference_algo, num_iter, learn_A, learn_B, learn_C, learn_D, learn_E)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\n\u001b[1;32m 100\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 101\u001b[0m A,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 135\u001b[0m learn_E\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 136\u001b[0m ):\n\u001b[1;32m 138\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m A_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m B_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 139\u001b[0m A_dependencies, B_dependencies \u001b[38;5;241m=\u001b[39m \u001b[43mget_dependencies\u001b[49m\u001b[43m(\u001b[49m\u001b[43mA\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mB\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;66;03m# TODO: infer batch shape in general case, here we assume no batch in Distribution object\u001b[39;00m\n\u001b[1;32m 142\u001b[0m A \u001b[38;5;241m=\u001b[39m [jnp\u001b[38;5;241m.\u001b[39mexpand_dims(a\u001b[38;5;241m.\u001b[39mdata, \u001b[38;5;241m0\u001b[39m) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(a, Distribution) \u001b[38;5;28;01melse\u001b[39;00m a \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m A]\n", - "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36mget_dependencies\u001b[0;34m(transitions, likelihoods)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mlike\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbatch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkeys\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", - "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m like\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys()]\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", - "\u001b[0;31mValueError\u001b[0m: 'states' is not in list" - ] - } - ], + "outputs": [], "source": [ "import numpy as np\n", "import jax\n", @@ -50,9 +33,6 @@ "from pymdp.jax import Distribution\n", "from pymdp.jax.agent import Agent\n", "\n", - "np.set_printoptions(precision=2, suppress=True)\n", - "\n", - "\n", "def get_task_info():\n", " policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", " C = jnp.zeros((1, 4))\n", @@ -95,7 +75,8 @@ "qs = agent.infer_states(observation, None, prior, None)\n", "\n", "q_pi, G = agent.infer_policies(qs)\n", - "action = agent.sample_action(q_pi)" + "action = agent.sample_action(q_pi)\n", + "print(action)" ] }, { @@ -116,23 +97,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "(4, 4, 2)\n" - ] - }, - { - "ename": "ValueError", - "evalue": "'s1' is not in list", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[2], line 33\u001b[0m\n\u001b[1;32m 29\u001b[0m Bs[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdown\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 31\u001b[0m policies, Cs, action, qs, observation \u001b[38;5;241m=\u001b[39m get_task_info()\n\u001b[0;32m---> 33\u001b[0m agent \u001b[38;5;241m=\u001b[39m \u001b[43mAgent\u001b[49m\u001b[43m(\u001b[49m\u001b[43mAs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mBs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mCs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpolicies\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpolicies\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 34\u001b[0m prior, _ \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_empirical_prior(action, qs)\n\u001b[1;32m 35\u001b[0m qs \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_states(observation, \u001b[38;5;28;01mNone\u001b[39;00m, prior, \u001b[38;5;28;01mNone\u001b[39;00m)\n", - "File \u001b[0;32m~/develop/pymdp/.venv/lib/python3.11/site-packages/equinox/_module.py:548\u001b[0m, in \u001b[0;36m_ModuleMeta.__call__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 546\u001b[0m initable_cls \u001b[38;5;241m=\u001b[39m _make_initable(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m, post_init, wraps\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 547\u001b[0m \u001b[38;5;66;03m# [Step 2] Instantiate the class as normal.\u001b[39;00m\n\u001b[0;32m--> 548\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m_ModuleMeta\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minitable_cls\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 549\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m _is_abstract(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 550\u001b[0m \u001b[38;5;66;03m# [Step 3] Check that all fields are occupied.\u001b[39;00m\n", - " \u001b[0;31m[... skipping hidden 2 frame]\u001b[0m\n", - "File \u001b[0;32m~/develop/pymdp/pymdp/jax/agent.py:139\u001b[0m, in \u001b[0;36mAgent.__init__\u001b[0;34m(self, A, B, C, D, E, pA, pB, A_dependencies, B_dependencies, qs, q_pi, H, I, policy_len, control_fac_idx, policies, gamma, alpha, inductive_depth, inductive_threshold, inductive_epsilon, use_utility, use_states_info_gain, use_param_info_gain, use_inductive, onehot_obs, action_selection, sampling_mode, inference_algo, num_iter, learn_A, learn_B, learn_C, learn_D, learn_E)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\n\u001b[1;32m 100\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 101\u001b[0m A,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 135\u001b[0m learn_E\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 136\u001b[0m ):\n\u001b[1;32m 138\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m A_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m B_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 139\u001b[0m A_dependencies, B_dependencies \u001b[38;5;241m=\u001b[39m \u001b[43mget_dependencies\u001b[49m\u001b[43m(\u001b[49m\u001b[43mA\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mB\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;66;03m# TODO: infer batch shape in general case, here we assume no batch in Distribution object\u001b[39;00m\n\u001b[1;32m 142\u001b[0m A \u001b[38;5;241m=\u001b[39m [jnp\u001b[38;5;241m.\u001b[39mexpand_dims(a\u001b[38;5;241m.\u001b[39mdata, \u001b[38;5;241m0\u001b[39m) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(a, Distribution) \u001b[38;5;28;01melse\u001b[39;00m a \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m A]\n", - "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36mget_dependencies\u001b[0;34m(transitions, likelihoods)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mlike\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbatch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkeys\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", - "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m like\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys()]\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", - "\u001b[0;31mValueError\u001b[0m: 's1' is not in list" + "[[0]]\n" ] } ], @@ -150,7 +115,6 @@ "}\n", "\n", "As, Bs = distribution.compile_model(model)\n", - "print(Bs[0].data.shape)\n", "\n", "As[0][\"A\", \"A\"] = 1.0\n", "As[0][\"B\", \"B\"] = 1.0\n", @@ -177,13 +141,6 @@ "action = agent.sample_action(q_pi)\n", "print(action)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index f8ed8f6e..16fe343a 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -446,6 +446,15 @@ def sample_action(self, q_pi: Array, rng_key=None): return action + @vmap + def _construct_I(self): + return control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) + + def _construct_policies(self): + self.policies = control.construct_policies( + self.num_states, self.num_controls, self.policy_len, self.control_fac_idx + ) + def _get_default_params(self): method = self.inference_algo default_params = None @@ -464,15 +473,6 @@ def _get_default_params(self): return default_params - def _construct_policies(self): - self.policies = control.construct_policies( - self.num_states, self.num_controls, self.policy_len, self.control_fac_idx - ) - - @vmap - def _construct_I(self): - return control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) - @property def unique_multiactions(self): size = pymath.prod(self.num_controls) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 116fa016..04c94d08 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -8,14 +8,8 @@ def __init__(self, data: np.ndarray, event: dict, batch: dict): self.event = event self.batch = batch - self.event_indices = { - key: {v: i for i, v in enumerate(values)} - for key, values in event.items() - } - self.batch_indices = { - key: {v: i for i, v in enumerate(values)} - for key, values in batch.items() - } + self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} + self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} def get(self, batch=None, event=None): event_slices = self._get_slices(event, self.event_indices, self.event) @@ -38,9 +32,7 @@ def _get_slices(self, keys, indices, full_indices): for key in full_indices: if key in keys: if isinstance(keys[key], list): - slices.append( - [self._get_index(v, indices[key]) for v in keys[key]] - ) + slices.append([self._get_index(v, indices[key]) for v in keys[key]]) else: slices.append(self._get_index(keys[key], indices[key])) else: @@ -67,17 +59,13 @@ def _get_index_from_axis(self, axis, element): def __getitem__(self, indices): if not isinstance(indices, tuple): indices = (indices,) - index_list = [ - self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) - ] + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] return self.data[tuple(index_list)] def __setitem__(self, indices, value): if not isinstance(indices, tuple): indices = (indices,) - index_list = [ - self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) - ] + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] self.data[tuple(index_list)] = value @@ -151,9 +139,7 @@ def compile_model(config): case "depends_on_control": control_dependencies[k] = [name for name in v[keyword]] case "depends_on": - likelihood_dependencies[k] = [ - name for name in v[keyword] - ] + likelihood_dependencies[k] = [name for name in v[keyword]] likelihood_events[k] = labels[k] transitions = [] for event, description in transition_events.items(): @@ -186,16 +172,12 @@ def get_dependencies(likelihoods, transitions): transition_dependencies = dict() states = [list(trans.event.keys())[0] for trans in transitions] for like in likelihoods: - likelihood_dependencies[list(like.event.keys())[0]] = [ - states.index(name) for name in like.batch.keys() - ] + likelihood_dependencies[list(like.event.keys())[0]] = [states.index(name) for name in like.batch.keys()] for trans in transitions: transition_dependencies[list(trans.event.keys())[0]] = [ states.index(name) for name in trans.batch.keys() if name in states ] - return list(likelihood_dependencies.values()), list( - transition_dependencies.values() - ) + return list(likelihood_dependencies.values()), list(transition_dependencies.values()) if __name__ == "__main__": @@ -223,22 +205,13 @@ def get_dependencies(likelihoods, transitions): assert np.all(transition[:, "B", "up"] == 1.0) assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.0 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 assert transition.get({"control": "up"}).shape == (4, 4) transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.5 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.7 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) From 49f10a619c75f6bf62c70a6d9888ed6c5bd03512 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 15:58:34 +0200 Subject: [PATCH 034/196] forgot to push notebook --- examples/distribution_api.ipynb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index cf8ec742..947f72e4 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -22,9 +22,17 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0]]\n" + ] + } + ], "source": [ "import numpy as np\n", "import jax\n", @@ -90,7 +98,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "metadata": {}, "outputs": [ { From 5f40eb0a985b96974a220601664dcf70cb1d8e4d Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Tue, 11 Jun 2024 09:09:23 -0500 Subject: [PATCH 035/196] update random_B_matrix to handle complex action dependencies --- pymdp/utils.py | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/pymdp/utils.py b/pymdp/utils.py index b371f553..a2e8c0f8 100644 --- a/pymdp/utils.py +++ b/pymdp/utils.py @@ -128,22 +128,47 @@ def random_A_matrix(num_obs, num_states, A_factor_list=None): A[modality] = norm_dist(modality_dist) return A -def random_B_matrix(num_states, num_controls, B_factor_list=None): +def random_B_matrix(num_states, num_controls, B_dependencies=None, B_act_dependencies=None): + """ + Generate random B object array + + Parameters + ---------- + num_states: ``list`` of ``int`` + ``list`` of the dimensionalities of each hidden state factor + num_controls: ``list`` of ``int``, default ``None`` + ``list`` of the dimensionalities of each control state factor. If ``None``, then is automatically computed as the dimensionality of each hidden state factor that is controllable + B_dependencies: ``list`` of ``list`` of ``int``, default ``None`` + ``list`` of ``list`` of states that each state depends on. If ``None``, then the dependencies are set so that each state only depends on itself + B_act_dependencies: ``list`` of ``list`` of ``int``, default ``None`` + ``list`` of ``list`` of actions that each state depends on. If ``None``, then the dependencies are set so that each state only depends on action of the same index + + Returns + ---------- + B: ``obj_array`` of ``numpy.ndarray`` + A set of ``numpy.ndarray`` transition matrices stored in an ``obj_array`` + """ if type(num_states) is int: num_states = [num_states] if type(num_controls) is int: num_controls = [num_controls] num_factors = len(num_states) - assert len(num_controls) == len(num_states) - if B_factor_list is None: - B_factor_list = [[f] for f in range(num_factors)] + if B_dependencies is None: + B_dependencies = [[f] for f in range(num_factors)] + + if B_act_dependencies is None: + assert len(num_controls) == len(num_states) + B_act_dependencies = [[f] for f in range(num_factors)] + else: + unique_controls = list(set(sum(B_act_dependencies, []))) + assert unique_controls == list(range(len(num_controls))) B = obj_array(num_factors) for factor in range(num_factors): - lagging_shape = [ns for i, ns in enumerate(num_states) if i in B_factor_list[factor]] - factor_shape = [num_states[factor]] + lagging_shape + [num_controls[factor]] - # factor_shape = (num_states[factor], num_states[factor], num_controls[factor]) + lagging_shape = [ns for i, ns in enumerate(num_states) if i in B_dependencies[factor]] + control_shape = [na for i, na in enumerate(num_controls) if i in B_act_dependencies[factor]] + factor_shape = [num_states[factor]] + lagging_shape + control_shape factor_dist = np.random.rand(*factor_shape) B[factor] = norm_dist(factor_dist) return B From fb29fb3de17122e69f9bb145a72108146b0bfdf3 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 16:39:27 +0200 Subject: [PATCH 036/196] change config naming to be more consistent --- pymdp/jax/distribution.py | 81 +++++++++++++++++++++++++++------------ test/test_distribution.py | 8 ++-- 2 files changed, 60 insertions(+), 29 deletions(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 04c94d08..d94ce363 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -8,8 +8,14 @@ def __init__(self, data: np.ndarray, event: dict, batch: dict): self.event = event self.batch = batch - self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} - self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} + self.event_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in event.items() + } + self.batch_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in batch.items() + } def get(self, batch=None, event=None): event_slices = self._get_slices(event, self.event_indices, self.event) @@ -32,7 +38,9 @@ def _get_slices(self, keys, indices, full_indices): for key in full_indices: if key in keys: if isinstance(keys[key], list): - slices.append([self._get_index(v, indices[key]) for v in keys[key]]) + slices.append( + [self._get_index(v, indices[key]) for v in keys[key]] + ) else: slices.append(self._get_index(keys[key], indices[key])) else: @@ -59,13 +67,17 @@ def _get_index_from_axis(self, axis, element): def __getitem__(self, indices): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] return self.data[tuple(index_list)] def __setitem__(self, indices, value): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] self.data[tuple(index_list)] = value @@ -132,15 +144,21 @@ def compile_model(config): case "size": shape[k] = v[keyword] labels[k] = list(range(v[keyword])) - case "depends_on_states": - state_dependencies[k] = [name for name in v[keyword]] - if k in v[keyword]: - transition_events[k] = labels[k] - case "depends_on_control": - control_dependencies[k] = [name for name in v[keyword]] case "depends_on": - likelihood_dependencies[k] = [name for name in v[keyword]] - likelihood_events[k] = labels[k] + if mod == "states": + state_dependencies[k] = [ + name for name in v[keyword] + ] + if k in v[keyword]: + transition_events[k] = labels[k] + else: + likelihood_dependencies[k] = [ + name for name in v[keyword] + ] + likelihood_events[k] = labels[k] + case "controlled_by": + control_dependencies[k] = [name for name in v[keyword]] + transitions = [] for event, description in transition_events.items(): arr_shape = [len(description)] @@ -172,12 +190,16 @@ def get_dependencies(likelihoods, transitions): transition_dependencies = dict() states = [list(trans.event.keys())[0] for trans in transitions] for like in likelihoods: - likelihood_dependencies[list(like.event.keys())[0]] = [states.index(name) for name in like.batch.keys()] + likelihood_dependencies[list(like.event.keys())[0]] = [ + states.index(name) for name in like.batch.keys() + ] for trans in transitions: transition_dependencies[list(trans.event.keys())[0]] = [ states.index(name) for name in trans.batch.keys() if name in states ] - return list(likelihood_dependencies.values()), list(transition_dependencies.values()) + return list(likelihood_dependencies.values()), list( + transition_dependencies.values() + ) if __name__ == "__main__": @@ -205,13 +227,22 @@ def get_dependencies(likelihoods, transitions): assert np.all(transition[:, "B", "up"] == 1.0) assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.0 + ) assert transition.get({"control": "up"}).shape == (4, 4) transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.5 + ) transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.7 + ) transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) @@ -230,13 +261,13 @@ def get_dependencies(likelihoods, transitions): "states": { "factor_1": { "elements": ["II", "JJ", "KK"], - "depends_on_states": ["factor_1", "factor_2"], - "depends_on_control": ["control_1", "control_2"], + "depends_on": ["factor_1", "factor_2"], + "controlled_by": ["control_1", "control_2"], }, "factor_2": { "elements": ["foo", "bar"], - "depends_on_states": ["factor_2"], - "depends_on_control": ["control_2"], + "depends_on": ["factor_2"], + "controlled_by": ["control_2"], }, }, } @@ -249,7 +280,7 @@ def get_dependencies(likelihoods, transitions): assert like[1].data.shape == (2, 2) assert like[0][:, "II"] is not None assert like[1][1, :] is not None - A_deps, B_deps = get_dependencies(trans, like) + A_deps, B_deps = get_dependencies(like, trans) print(A_deps, B_deps) model = { @@ -260,8 +291,8 @@ def get_dependencies(likelihoods, transitions): "states": { "s1": { "elements": ["A", "B", "C", "D"], - "depends_on_states": ["s1"], - "depends_on_control": ["c1"], + "depends_on": ["s1"], + "controlled_by": ["c1"], }, }, } diff --git a/test/test_distribution.py b/test/test_distribution.py index 1e39b1ef..24249f74 100644 --- a/test/test_distribution.py +++ b/test/test_distribution.py @@ -89,13 +89,13 @@ def test_agent_compile(self): "states": { "factor_1": { "elements": ["II", "JJ", "KK"], - "depends_on_states": ["factor_1", "factor_2"], - "depends_on_control": ["control_1", "control_2"], + "depends_on": ["factor_1", "factor_2"], + "controlled_by": ["control_1", "control_2"], }, "factor_2": { "elements": ["foo", "bar"], - "depends_on_states": ["factor_2"], - "depends_on_control": ["control_2"], + "depends_on": ["factor_2"], + "controlled_by": ["control_2"], }, }, } From 3381edc2f5e8ff792d401f2420fba4951e9b0e37 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 16:40:19 +0200 Subject: [PATCH 037/196] config naming changes --- examples/distribution_api.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index 947f72e4..e476827a 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -118,7 +118,7 @@ " },\n", " \"controls\": {\"c1\": {\"elements\": [\"up\", \"down\"]}},\n", " \"states\": {\n", - " \"s1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on_states\": [\"s1\"], \"depends_on_control\": [\"c1\"]},\n", + " \"s1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"], \"controlled_by\": [\"c1\"]},\n", " },\n", "}\n", "\n", @@ -167,7 +167,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.9" + "version": "3.11.3" } }, "nbformat": 4, From 8aa229583b466cda589126e72b20956a82de0a19 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 17:11:29 +0200 Subject: [PATCH 038/196] make the data argument optional breaking change!! --- pymdp/jax/distribution.py | 31 ++++++++++++++++++++++--------- test/test_distribution.py | 4 ++-- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index d94ce363..6ce00f9b 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -1,10 +1,10 @@ import numpy as np +from pymdp.utils import norm_dist class Distribution: - def __init__(self, data: np.ndarray, event: dict, batch: dict): - self.data = data + def __init__(self, event: dict, batch: dict, data: np.ndarray = None): self.event = event self.batch = batch @@ -17,6 +17,16 @@ def __init__(self, data: np.ndarray, event: dict, batch: dict): for key, values in batch.items() } + if data is not None: + self.data = data + else: + shape = [] + for v in event.values(): + shape.append(len(v)) + for v in batch.values(): + shape.append(len(v)) + self.data = np.zeros(shape) + def get(self, batch=None, event=None): event_slices = self._get_slices(event, self.event_indices, self.event) batch_slices = self._get_slices(batch, self.batch_indices, self.batch) @@ -80,6 +90,9 @@ def __setitem__(self, indices, value): ] self.data[tuple(index_list)] = value + def normalize(self): + norm_dist(self.data) + def compile_model(config): """Compile a model from a config. @@ -99,7 +112,7 @@ def compile_model(config): field indicating the named elements or the size of the integer array. In the case of an observation the `depends_on` field needs to be present to indicate what state factor links to this observation. In the case of states - the `depends_on_states` and `depends_on_control` fields are needed. + the `depends_on` and `controlled_by` fields are needed. --- example config: { "observations": { @@ -116,13 +129,13 @@ def compile_model(config): "states": { "factor_1": { "elements": ["II", "JJ", "KK"], - "depends_on_states": ["factor_1", "factor_2"], - "depends_on_control": ["control_1", "control_2"], + "depends_on": ["factor_1", "factor_2"], + "controlled_by": ["control_1", "control_2"], }, "factor_2": { "elements": ["foo", "bar"], - "depends_on_states": ["factor_2"], - "depends_on_control": ["control_2"], + "depends_on": ["factor_2"], + "controlled_by": ["control_2"], }, }} """ @@ -171,7 +184,7 @@ def compile_model(config): arr_shape.append(shape[dep]) batch_descr[dep] = labels[dep] arr = np.zeros(arr_shape) - transitions.append(Distribution(arr, event_descr, batch_descr)) + transitions.append(Distribution(event_descr, batch_descr, arr)) likelihoods = [] for event, description in likelihood_events.items(): arr_shape = [len(description)] @@ -181,7 +194,7 @@ def compile_model(config): arr_shape.append(shape[dep]) batch_descr[dep] = labels[dep] arr = np.zeros(arr_shape) - likelihoods.append(Distribution(arr, event_descr, batch_descr)) + likelihoods.append(Distribution(event_descr, batch_descr, arr)) return likelihoods, transitions diff --git a/test/test_distribution.py b/test/test_distribution.py index 24249f74..d1b94944 100644 --- a/test/test_distribution.py +++ b/test/test_distribution.py @@ -11,9 +11,9 @@ def test_distribution_slice(self): data = np.zeros((len(locations), len(locations), len(controls))) transition = distribution.Distribution( - data, {"location": locations}, {"location": locations, "control": controls}, + data, ) self.assertEqual(transition["A", "B", "up"], 0.0) self.assertEqual(transition[:, "B", "up"].shape, (4,)) @@ -34,9 +34,9 @@ def test_distribution_get_set(self): data = np.zeros((len(locations), len(locations), len(controls))) transition = distribution.Distribution( - data, {"location": locations}, {"location": locations, "control": controls}, + data, ) self.assertEqual( From eab270d8fe2a13bab96c02670a4728d3c7ebc81f Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 17:23:13 +0200 Subject: [PATCH 039/196] updated agent api --- examples/distribution_api.ipynb | 12 +- pymdp/jax/agent.py | 223 +++++++++++++++----------------- 2 files changed, 112 insertions(+), 123 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index e476827a..8e812b0e 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -22,13 +22,14 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "[False]\n", "[[0]]\n" ] } @@ -43,12 +44,12 @@ "\n", "def get_task_info():\n", " policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", - " C = jnp.zeros((1, 4))\n", - " C = C.at[0, 3].set(1.0)\n", + " C = jnp.zeros((4,))\n", + " C = C.at[3].set(1.0)\n", " action = jnp.array([[1]])\n", " qs = [jnp.zeros((1, 1, 4))]\n", " qs[0] = qs[0].at[0, 0, 0].set(1.0)\n", - " observation = [jnp.array([[0]])]\n", + " observation = [jnp.array([[0, 1]])]\n", " return policies, C, action, qs, observation\n", "\n", "observations = [\"A\", \"B\", \"C\", \"D\"]\n", @@ -98,13 +99,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "[False]\n", "[[0]]\n" ] } diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 16fe343a..4b0b9ab8 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -29,7 +29,7 @@ class Agent(Module): >>> my_agent = Agent(A = A, B = C, ) >>> observation = env.step(initial_action) >>> qs = my_agent.infer_states(observation) - >>> q_pi, G = my_agent.infer_policies() + >>> q_pi, G = my_agent.infer_policies(qs) >>> next_action = my_agent.sample_action() >>> next_observation = env.step(next_action) @@ -105,14 +105,13 @@ def __init__( E=None, pA=None, pB=None, - A_dependencies=None, - B_dependencies=None, - qs=None, - q_pi=None, H=None, I=None, - policy_len=1, + A_dependencies=None, + B_dependencies=None, control_fac_idx=None, + batch_size=1, + policy_len=1, policies=None, gamma=16.0, alpha=16.0, @@ -135,49 +134,34 @@ def __init__( learn_E=False, ): - if A_dependencies is None and B_dependencies is None: - A_dependencies, B_dependencies = get_dependencies(A, B) - - # TODO: infer batch shape in general case, here we assume no batch in Distribution object - A = [jnp.expand_dims(a.data, 0) if isinstance(a, Distribution) else a for a in A] - B = [jnp.expand_dims(b.data, 0) if isinstance(b, Distribution) else b for b in B] - - # PyTree leaves - self.A = A - self.B = B - self.C = C - self.D = D - self.H = H - self.pA = pA - self.pB = pB - - self.onehot_obs = onehot_obs - - element_size = lambda x: x.shape[1] - self.num_factors = len(self.B) - self.num_states = jtu.tree_map(element_size, self.B) - - self.num_modalities = len(self.A) - self.num_obs = jtu.tree_map(element_size, self.A) + # extract high level variables + self.num_modalities = len(A) + self.num_factors = len(B) + self.batch_size = batch_size + # extract dependencies for A and B matrices if A_dependencies is not None: self.A_dependencies = A_dependencies + elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): + self.A_dependencies, _ = get_dependencies(A, B) else: - # assume full dependence of A matrices and state factors self.A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] if B_dependencies is not None: self.B_dependencies = B_dependencies + elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): + _, self.B_dependencies = get_dependencies(A, B) else: - # defaults to having all factors depend only on themselves self.B_dependencies = [[f] for f in range(self.num_factors)] - self.batch_size = self.A[0].shape[0] + # extract A and B tensors + A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] + B = [jnp.array(b.data) if isinstance(b, Distribution) else b for b in B] - self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) - self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) - self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) - self.inductive_epsilon = jnp.broadcast_to(inductive_epsilon, (self.batch_size,)) + # extract shapes from A and B + self.num_states = jtu.tree_map(lambda x: x.shape[1], B) + self.num_obs = jtu.tree_map(lambda x: x.shape[1], A) + self.num_controls = [B[f].shape[-1] for f in range(self.num_factors)] # static parameters self.num_iter = num_iter @@ -193,13 +177,6 @@ def __init__( self.use_param_info_gain = use_param_info_gain self.use_inductive = use_inductive - if self.use_inductive and self.H is not None: - self.I = self._construct_I() - elif self.use_inductive and I is not None: - self.I = I - else: - self.I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), self.D) - # learning parameters self.learn_A = learn_A self.learn_B = learn_B @@ -207,43 +184,69 @@ def __init__( self.learn_D = learn_D self.learn_E = learn_E - # Determine number of observation modalities and their respective dimensions - self.num_obs = [self.A[m].shape[1] for m in range(len(self.A))] - self.num_modalities = len(self.num_obs) - - # If no `num_controls` are given, then this is inferred from the shapes of the input B matrices - self.num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] - - # Users have the option to make only certain factors controllable. - # default behaviour is to make all hidden state factors controllable, i.e. `self.num_factors == len(self.num_controls)` + # construct control factor indices if control_fac_idx == None: self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] else: - assert max(control_fac_idx) <= ( - self.num_factors - 1 - ), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + msg = "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + assert max(control_fac_idx) <= (self.num_factors - 1), msg self.control_fac_idx = control_fac_idx - self.policies = policies if policies is not None else self._construct_policies() + # construct policies + if policies is None: + self.policies = control.construct_policies( + self.num_states, self.num_controls, self.policy_len, self.control_fac_idx + ) + else: + self.policies = policies + + # setup pytree leaves A, B, C, D, E, pA, pB, H, I + A = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), A) + B = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), B) + if pA is not None: + pA = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), pA) + + if pB is not None: + pB = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), pB) - # set E to uniform/uninformative prior over policies if not given - if E is None: - self.E = jnp.ones((self.batch_size, len(self.policies))) / len(self.policies) + if C is not None: + C = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), C) else: - self.E = E + C = [jnp.ones((batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities)] - if D is None: - self.D = [ - jnp.ones((self.batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors) - ] + if D is not None: + D = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), D) else: - self.D = D + D = [jnp.ones((batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors)] - if C is None: - self.C = [ - jnp.ones((self.batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities) - ] + if E is not None: + E = jnp.broadcast_to(E, (batch_size,) + E.shape) + else: + E = jnp.ones((batch_size, len(policies))) / len(policies) + + self.A = A + self.B = B + self.C = C + self.D = D + self.E = E + self.H = H + self.pA = pA + self.pB = pB + if self.use_inductive and self.H is not None: + self.I = control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) + elif self.use_inductive and I is not None: + self.I = I + else: + self.I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), self.D) + + self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) + self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) + self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) + self.inductive_epsilon = jnp.broadcast_to(inductive_epsilon, (self.batch_size,)) + self.onehot_obs = onehot_obs + + # validate model self._validate() @vmap @@ -269,6 +272,8 @@ def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mas ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` at timepoint ``t_idx``. """ + + # TODO: infer this from shapes if not self.onehot_obs: o_vec = [nn.one_hot(o, self.num_obs[m]) for m, o in enumerate(observations)] else: @@ -372,53 +377,16 @@ def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1 # self.qE = learning.update_E(self.E, *args, **kwargs) # self.E = maths.dirichlet_expected_value(self.qE) - # do stuff - # variables = ... - # parameters = ... - # varibles = {'A': jnp.ones(5)} - - # agent = tree_at(lambda x: (x.A, x.pA, x.B, x.pB, x.I), self, (E_qA, qA, E_qB, qB, I_updated)) - return agent @partial(vmap, in_axes=(0, 0, 0)) def infer_empirical_prior(self, action, qs): # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t - qs_last = jtu.tree_map(lambda x: x[-1], qs) # this computation of the predictive prior is correct only for fully factorised Bs. pred = control.compute_expected_state(qs_last, self.B, action, B_dependencies=self.B_dependencies) - return (pred, qs) - @vmap - def multiaction_probabilities(self, q_pi: Array): - """ - Compute probabilities of unique multi-actions from the posterior over policies. - - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - - Returns - ---------- - multi-action: 1D ``jax.numpy.ndarray`` - Vector containing probabilities of possible multi-actions for different factors - """ - - if self.sampling_mode == "marginal": - marginals = control.get_marginals(q_pi, self.policies, self.num_controls) - outer = lambda a, b: jnp.outer(a, b).reshape(-1) - marginals = jtu.tree_reduce(outer, marginals) - - elif self.sampling_mode == "full": - locs = jnp.all(self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), -1) - marginals = jnp.where(locs, q_pi, 0.0).sum(-1) - - # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan - return marginals - @vmap def sample_action(self, q_pi: Array, rng_key=None): """ @@ -447,13 +415,32 @@ def sample_action(self, q_pi: Array, rng_key=None): return action @vmap - def _construct_I(self): - return control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) + def multiaction_probabilities(self, q_pi: Array): + """ + Compute probabilities of unique multi-actions from the posterior over policies. - def _construct_policies(self): - self.policies = control.construct_policies( - self.num_states, self.num_controls, self.policy_len, self.control_fac_idx - ) + Parameters + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + + Returns + ---------- + multi-action: 1D ``jax.numpy.ndarray`` + Vector containing probabilities of possible multi-actions for different factors + """ + + if self.sampling_mode == "marginal": + marginals = control.get_marginals(q_pi, self.policies, self.num_controls) + outer = lambda a, b: jnp.outer(a, b).reshape(-1) + marginals = jtu.tree_reduce(outer, marginals) + + elif self.sampling_mode == "full": + locs = jnp.all(self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), -1) + marginals = jnp.where(locs, q_pi, 0.0).sum(-1) + + # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan + return marginals def _get_default_params(self): method = self.inference_algo @@ -473,11 +460,6 @@ def _get_default_params(self): return default_params - @property - def unique_multiactions(self): - size = pymath.prod(self.num_controls) - return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) - def _validate(self): for m in range(self.num_modalities): factor_dims = tuple([self.num_states[f] for f in self.A_dependencies[m]]) @@ -509,3 +491,8 @@ def _validate(self): assert ( self.num_controls[factor_idx] > 1 ), "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" + + @property + def unique_multiactions(self): + size = pymath.prod(self.num_controls) + return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) From bc591ae44b57b006f891d6e9815934c4059ca126 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 17:24:58 +0200 Subject: [PATCH 040/196] updated notebook --- examples/distribution_api.ipynb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index 8e812b0e..1724c565 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -29,7 +29,6 @@ "name": "stdout", "output_type": "stream", "text": [ - "[False]\n", "[[0]]\n" ] } @@ -57,7 +56,7 @@ "controls = [\"up\", \"down\"]\n", "\n", "data = np.zeros((len(observations), len(states)))\n", - "A = Distribution(data, {\"observations\": observations}, {\"states\": states})\n", + "A = Distribution({\"observations\": observations}, {\"states\": states}, data)\n", "\n", "A[\"A\", \"A\"] = 1.0\n", "A[\"B\", \"B\"] = 1.0\n", @@ -65,7 +64,7 @@ "A[\"D\", \"D\"] = 1.0\n", "\n", "data = np.zeros((len(states), len(states), len(controls)))\n", - "B = Distribution(data, {\"states\": states}, {\"states\": states, \"controls\": controls})\n", + "B = Distribution({\"states\": states}, {\"states\": states, \"controls\": controls}, data)\n", "\n", "B[\"B\", \"A\", \"up\"] = 1.0\n", "B[\"C\", \"B\", \"up\"] = 1.0\n", @@ -99,14 +98,14 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[False]\n", + "[] []\n", "[[0]]\n" ] } @@ -169,7 +168,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.3" + "version": "3.11.9" } }, "nbformat": 4, From df499f42d01d4f648f5698b544cdd0031a8be752 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 17:28:01 +0200 Subject: [PATCH 041/196] updated init for agent --- pymdp/jax/agent.py | 46 ++++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 4b0b9ab8..97083529 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -140,19 +140,7 @@ def __init__( self.batch_size = batch_size # extract dependencies for A and B matrices - if A_dependencies is not None: - self.A_dependencies = A_dependencies - elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): - self.A_dependencies, _ = get_dependencies(A, B) - else: - self.A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] - - if B_dependencies is not None: - self.B_dependencies = B_dependencies - elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): - _, self.B_dependencies = get_dependencies(A, B) - else: - self.B_dependencies = [[f] for f in range(self.num_factors)] + self.A_dependencies, self.B_dependencies = self._construct_dependencies(A_dependencies, B_dependencies, A, B) # extract A and B tensors A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] @@ -203,6 +191,7 @@ def __init__( # setup pytree leaves A, B, C, D, E, pA, pB, H, I A = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), A) B = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), B) + if pA is not None: pA = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), pA) @@ -224,22 +213,23 @@ def __init__( else: E = jnp.ones((batch_size, len(policies))) / len(policies) + if self.use_inductive and self.H is not None: + I = control.generate_I_matrix(H, B, self.inductive_threshold, self.inductive_depth) + elif self.use_inductive and I is not None: + I = I + else: + I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), D) + self.A = A self.B = B self.C = C self.D = D self.E = E self.H = H + self.I = I self.pA = pA self.pB = pB - if self.use_inductive and self.H is not None: - self.I = control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) - elif self.use_inductive and I is not None: - self.I = I - else: - self.I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), self.D) - self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) @@ -442,6 +432,22 @@ def multiaction_probabilities(self, q_pi: Array): # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan return marginals + def _construct_dependencies(self, A_dependencies, B_dependencies, A, B): + if A_dependencies is not None: + A_dependencies = A_dependencies + elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): + A_dependencies, _ = get_dependencies(A, B) + else: + A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] + + if B_dependencies is not None: + B_dependencies = B_dependencies + elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): + _, B_dependencies = get_dependencies(A, B) + else: + B_dependencies = [[f] for f in range(self.num_factors)] + return A_dependencies, B_dependencies + def _get_default_params(self): method = self.inference_algo default_params = None From 81ffea740a9ba273589ab50952eb39d0f4918f8c Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Tue, 11 Jun 2024 10:37:47 -0500 Subject: [PATCH 042/196] add utils to convert combinations to flattened index with test --- pymdp/utils.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ test/test_utils.py | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 79 insertions(+), 1 deletion(-) diff --git a/pymdp/utils.py b/pymdp/utils.py index a2e8c0f8..fc81e0b5 100644 --- a/pymdp/utils.py +++ b/pymdp/utils.py @@ -173,6 +173,52 @@ def random_B_matrix(num_states, num_controls, B_dependencies=None, B_act_depende B[factor] = norm_dist(factor_dist) return B +def get_combination_index(x, dims): + """ + Find the index of an array of categorical values in an array of categorical dimensions + + Parameters + ---------- + x: ``numpy.ndarray`` or ``list`` of ``int`` + ``numpy.ndarray`` or ``list`` of ``int`` of categorical values to be converted into combination index + dims: ``list`` of ``int`` + ``list`` of ``int`` of categorical dimensions used for conversion + + Returns + ---------- + index: ``int`` + ``int`` index of the combination + """ + assert len(x) == len(dims) + index = 0 + product = 1 + for i in reversed(range(len(dims))): + index += x[i] * product + product *= dims[i] + return index + +def index_to_combination(index, dims): + """ + Convert the combination index according to an array of categorical dimensions back to an array of categorical values + + Parameters + ---------- + index: ``int`` + ``int`` index of the combination + dims: ``list`` of ``int`` + ``list`` of ``int`` of categorical dimensions used for conversion + + Returns + ---------- + x: ``list`` of ``int`` + ```list`` of ``int`` of categorical values to be converted into combination index + """ + x = [] + for base in reversed(dims): + x.append(index % base) + index //= base + return list(reversed(x)) + def random_single_categorical(shape_list): """ Creates a random 1-D categorical distribution (or set of 1-D categoricals, e.g. multiple marginals of different factors) and returns them in an object array diff --git a/test/test_utils.py b/test/test_utils.py index 033dd8f6..feb5e560 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -8,7 +8,7 @@ """ import unittest - +import itertools import numpy as np from pymdp import utils @@ -23,6 +23,38 @@ def test_obj_array_from_list(self): obs_arrs = utils.obj_array_from_list(arrs) self.assertTrue(all([np.all(a == b) for a, b in zip(arrs, obs_arrs)])) + + def test_get_combination_index(self): + """ + Test `get_combination_index` + """ + num_controls = [10, 20] + act = [5, 1] + + # make all combinations from itertools and find correct index + action_map = list(itertools.product(*[list(range(i)) for i in num_controls])) + true_act_flat = action_map.index(tuple(act)) + + # find flat index without itertools + act_flat = utils.get_combination_index(act, num_controls) + + self.assertEqual(act_flat, true_act_flat) + + def test_index_to_combination(self): + """ + Test `index_to_combination` + """ + num_controls = [10, 20] + act = [5, 1] + + # make all combinations from itertools and find correct index + action_map = list(itertools.product(*[list(range(i)) for i in num_controls])) + act_flat = action_map.index(tuple(act)) + + # reconstruct categorical actions from flat index + act_reconstruct = utils.index_to_combination(act_flat, num_controls) + + self.assertEqual(act_reconstruct, act) if __name__ == "__main__": unittest.main() \ No newline at end of file From d7500d20de90c45f4855250b9f3b28399311462c Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 18:01:44 +0200 Subject: [PATCH 043/196] updated example notebook --- examples/distribution_api.ipynb | 83 +++++++++++++++++++-------------- pymdp/jax/agent.py | 18 ++++--- 2 files changed, 57 insertions(+), 44 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index 1724c565..502aeeb3 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -24,33 +24,45 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from jax import numpy as jnp\n", + "\n", + "np.set_printoptions(precision=2, suppress=True)\n", + "\n", + "from pymdp.jax.agent import Agent\n", + "from pymdp.jax.distribution import Distribution, compile_model\n", + "\n", + "action = jnp.array([1])\n", + "action = jnp.broadcast_to(action, (1, 1))\n", + "\n", + "observation = jnp.array([0])\n", + "observation = jnp.broadcast_to(observation, (1, 1))\n", + "\n", + "qs_init = jnp.array([1.0, 0.0, 0.0, 0.0])\n", + "qs_init = jnp.broadcast_to(qs_init, (1, 1, 4))\n", + "\n", + "policies = jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]])\n", + "policies = jnp.expand_dims(policies, -1)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[[0]]\n" + "goal state: D\n", + "initial state: A\n", + "action taken: up\n" ] } ], "source": [ - "import numpy as np\n", - "import jax\n", - "from jax import numpy as jnp\n", - "\n", - "from pymdp.jax import Distribution\n", - "from pymdp.jax.agent import Agent\n", - "\n", - "def get_task_info():\n", - " policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", - " C = jnp.zeros((4,))\n", - " C = C.at[3].set(1.0)\n", - " action = jnp.array([[1]])\n", - " qs = [jnp.zeros((1, 1, 4))]\n", - " qs[0] = qs[0].at[0, 0, 0].set(1.0)\n", - " observation = [jnp.array([[0, 1]])]\n", - " return policies, C, action, qs, observation\n", - "\n", "observations = [\"A\", \"B\", \"C\", \"D\"]\n", "states = [\"A\", \"B\", \"C\", \"D\"]\n", "controls = [\"up\", \"down\"]\n", @@ -76,15 +88,17 @@ "B[\"B\", \"C\", \"down\"] = 1.0\n", "B[\"C\", \"D\", \"down\"] = 1.0\n", "\n", - "policies, C, action, qs, observation = get_task_info()\n", - "\n", + "C = jnp.array([0.0, 0.0, 0.0, 1.0])\n", "agent = Agent([A], [B], [C], policies=policies)\n", - "prior, _ = agent.infer_empirical_prior(action, qs)\n", - "qs = agent.infer_states(observation, None, prior, None)\n", + "print(f\"goal state: {states[jnp.argmax(C)]}\")\n", + "\n", + "prior, _ = agent.infer_empirical_prior(action, [qs_init])\n", + "qs = agent.infer_states([observation], None, prior, None)\n", + "print(f\"initial state: {states[jnp.argmax(qs[0])]}\")\n", "\n", "q_pi, G = agent.infer_policies(qs)\n", "action = agent.sample_action(q_pi)\n", - "print(action)" + "print(f\"action taken: {controls[action[0][0]]}\")" ] }, { @@ -98,21 +112,20 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[] []\n", - "[[0]]\n" + "goal state: D\n", + "initial state: A\n", + "action taken: up\n" ] } ], "source": [ - "from pymdp.jax import distribution\n", - "\n", "model = {\n", " \"observations\": {\n", " \"o1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"]},\n", @@ -123,7 +136,7 @@ " },\n", "}\n", "\n", - "As, Bs = distribution.compile_model(model)\n", + "As, Bs = compile_model(model)\n", "\n", "As[0][\"A\", \"A\"] = 1.0\n", "As[0][\"B\", \"B\"] = 1.0\n", @@ -140,15 +153,17 @@ "Bs[0][\"B\", \"C\", \"down\"] = 1.0\n", "Bs[0][\"C\", \"D\", \"down\"] = 1.0\n", "\n", - "policies, Cs, action, qs, observation = get_task_info()\n", - "\n", + "Cs = [jnp.array([0.0, 0.0, 0.0, 1.0])]\n", "agent = Agent(As, Bs, Cs, policies=policies)\n", - "prior, _ = agent.infer_empirical_prior(action, qs)\n", - "qs = agent.infer_states(observation, None, prior, None)\n", + "print(f\"goal state: {states[jnp.argmax(Cs[0])]}\")\n", + "\n", + "prior, _ = agent.infer_empirical_prior(action, [qs_init])\n", + "qs = agent.infer_states([observation], None, prior, None)\n", + "print(f\"initial state: {states[jnp.argmax(qs[0])]}\")\n", "\n", "q_pi, G = agent.infer_policies(qs)\n", "action = agent.sample_action(q_pi)\n", - "print(action)" + "print(f\"action taken: {controls[action[0][0]]}\")" ] } ], diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 97083529..685edc42 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -15,7 +15,7 @@ from .distribution import Distribution, get_dependencies from equinox import Module, field, tree_at -from typing import List, Optional +from typing import List, Optional, Union from jaxtyping import Array from functools import partial @@ -42,16 +42,14 @@ class Agent(Module): C: List[Array] D: List[Array] E: Array - gamma: Array - alpha: Array - pA: List[Array] pB: List[Array] + gamma: Array + alpha: Array # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) inductive_threshold: Array # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) - inductive_epsilon: Array # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints H: List[Array] @@ -98,11 +96,11 @@ class Agent(Module): def __init__( self, - A, - B, - C=None, - D=None, - E=None, + A: Union[List[Array], List[Distribution]], + B: Union[List[Array], List[Distribution]], + C: Optional[List[Array]] = None, + D: Optional[List[Array]] = None, + E: Optional[Array] = None, pA=None, pB=None, H=None, From b3beca53e51114e056cfdb8881fcedf24b4137ee Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 18:11:36 +0200 Subject: [PATCH 044/196] added complicated example --- examples/distribution_api.ipynb | 84 +++++++++++++++++++++++++++++++++ pymdp/jax/agent.py | 2 +- 2 files changed, 85 insertions(+), 1 deletion(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index 502aeeb3..940a6fc0 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -165,6 +165,90 @@ "action = agent.sample_action(q_pi)\n", "print(f\"action taken: {controls[action[0][0]]}\")" ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "model = {\n", + " \"observations\": {\n", + " \"temperature\": {\"elements\": [\"low\", \"medium\", \"high\", \"very high\"], \"depends_on\": [\"operating_state\"]},\n", + " \"humidity\": {\"elements\": [\"low\", \"medium\", \"high\", \"very high\"], \"depends_on\": [\"maintenance_state\"]},\n", + " \"pressure\": {\"elements\": [\"low\", \"medium\", \"high\", \"very high\"], \"depends_on\": [\"power_state\"]},\n", + " \"vibration\": {\n", + " \"elements\": [\"none\", \"low\", \"medium\", \"high\"],\n", + " \"depends_on\": [\"operating_state\", \"maintenance_state\"],\n", + " },\n", + " },\n", + " \"controls\": {\n", + " \"temperature_control\": {\"elements\": [\"off\", \"low\", \"medium\", \"high\"]},\n", + " \"humidity_control\": {\"elements\": [\"off\", \"low\", \"medium\", \"high\"]},\n", + " \"pressure_control\": {\"elements\": [\"off\", \"low\", \"medium\", \"high\"]},\n", + " },\n", + " \"states\": {\n", + " \"operating_state\": {\n", + " \"elements\": [\"idle\", \"running\", \"overload\"],\n", + " \"depends_on\": [\"operating_state\"],\n", + " \"controlled_by\": [\"temperature_control\"],\n", + " },\n", + " \"maintenance_state\": {\n", + " \"elements\": [\"regular\", \"alert\", \"critical\"],\n", + " \"depends_on\": [\"maintenance_state\"],\n", + " \"controlled_by\": [\"humidity_control\"],\n", + " },\n", + " \"power_state\": {\n", + " \"elements\": [\"low\", \"normal\", \"high\"],\n", + " \"depends_on\": [\"power_state\"],\n", + " \"controlled_by\": [\"pressure_control\"],\n", + " },\n", + " },\n", + "}\n", + "\n", + "As, Bs = compile_model(model)\n", + "\n", + "As[0][\"low\", \"idle\"] = 1.0\n", + "As[0][\"medium\", \"running\"] = 1.0\n", + "As[0][\"low\", \"overload\"] = 1.0\n", + "\n", + "As[1][\"low\", \"regular\"] = 1.0\n", + "As[1][\"low\", \"alert\"] = 1.0\n", + "As[1][\"high\", \"critical\"] = 1.0\n", + "\n", + "As[2][\"low\", \"low\"] = 1.0\n", + "As[2][\"medium\", \"low\"] = 1.0\n", + "As[2][\"high\", \"high\"] = 1.0\n", + "\n", + "Bs[0][\"running\", \"idle\", \"low\"] = 1.0\n", + "Bs[0][\"overload\", \"running\", \"medium\"] = 1.0\n", + "Bs[0][\"overload\", \"overload\", \"high\"] = 1.0\n", + "\n", + "Bs[0][\"idle\", \"idle\", \"off\"] = 1.0\n", + "Bs[0][\"idle\", \"running\", \"off\"] = 1.0\n", + "Bs[0][\"running\", \"overload\", \"off\"] = 1.0\n", + "Bs[0][\"running\", \"running\", \"off\"] = 1.0\n", + "\n", + "Bs[1][\"alert\", \"regular\", \"low\"] = 1.0\n", + "Bs[1][\"critical\", \"alert\", \"medium\"] = 1.0\n", + "Bs[1][\"critical\", \"critical\", \"high\"] = 1.0\n", + "\n", + "Bs[1][\"regular\", \"regular\", \"off\"] = 1.0\n", + "Bs[1][\"regular\", \"alert\", \"off\"] = 1.0\n", + "Bs[1][\"alert\", \"critical\", \"off\"] = 1.0\n", + "Bs[1][\"alert\", \"alert\", \"off\"] = 1.0\n", + "\n", + "Bs[2][\"normal\", \"low\", \"low\"] = 1.0\n", + "Bs[2][\"high\", \"normal\", \"medium\"] = 1.0\n", + "Bs[2][\"high\", \"high\", \"high\"] = 1.0\n", + "\n", + "Bs[2][\"low\", \"low\", \"off\"] = 1.0\n", + "Bs[2][\"low\", \"normal\", \"off\"] = 1.0\n", + "Bs[2][\"normal\", \"high\", \"off\"] = 1.0\n", + "Bs[2][\"normal\", \"normal\", \"off\"] = 1.0\n", + "\n", + "agent = Agent(As, Bs)" + ] } ], "metadata": { diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 685edc42..e2e597c5 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -209,7 +209,7 @@ def __init__( if E is not None: E = jnp.broadcast_to(E, (batch_size,) + E.shape) else: - E = jnp.ones((batch_size, len(policies))) / len(policies) + E = jnp.ones((batch_size, len(self.policies))) / len(self.policies) if self.use_inductive and self.H is not None: I = control.generate_I_matrix(H, B, self.inductive_threshold, self.inductive_depth) From a9b4404fb1640c029a22ff9560aa8f0875761e25 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Tue, 11 Jun 2024 18:21:25 +0200 Subject: [PATCH 045/196] add rollout function and fix graph world env and demo notebook --- examples/graph_worlds_demo.ipynb | 299 +++++++++++++++---------------- pymdp/jax/envs/env.py | 45 +++-- pymdp/jax/envs/graph_worlds.py | 21 ++- pymdp/jax/envs/rollout.py | 96 ++++++++++ 4 files changed, 277 insertions(+), 184 deletions(-) create mode 100644 pymdp/jax/envs/rollout.py diff --git a/examples/graph_worlds_demo.ipynb b/examples/graph_worlds_demo.ipynb index df87c539..af5c4ced 100644 --- a/examples/graph_worlds_demo.ipynb +++ b/examples/graph_worlds_demo.ipynb @@ -1,10 +1,49 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Graph worlds\n", + "\n", + "This environment demonstrates agents that can navigate a graph and find an object. Object is only visible when agent is at the same location as the object." + ] + }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 11, "metadata": {}, "outputs": [], + "source": [ + "import jax.numpy as jnp\n", + "from jax import random as jr\n", + "\n", + "key = jr.PRNGKey(0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Start by generating a graph of locations" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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gM/Iz8/XgAEDZLfbtWLFCsIkTMuvA6UkDekUradvbemVaz1za4wGd2LuJFBRkZGRmjVrlpKTk9WvXz899dRTatmypd577z05nU6jywNMze12629/+5uSkpK0evVqRUVFGV0SUCq/D5SS9FjPFnp1YFsF262lrvwujc1qUbDdqukD2+rRnuVvxwjgYtHR0Zo/f7527dqlzp07a/jw4Wrbtq1WrFhBc3SgFK+//roWLlyo+fPn6/rrrze6HKBMfj2H8kKHTuZp/KokJew7IZvVUuZinaLjsc3raeqAtjzmBrzou+++0/PPP6/PPvtM119/vaZOnarevXvToBn43X/+8x/dfvvtevrppzV9+nSjywHKFVCBskhyarYWJ6Zo8940paTn6dx/ARadbVres2Wk4rtEq3lkmFFlAn5vy5YtGj9+vLZu3aoePXpo2rRp6tq1q9FlAYb65Zdf1KlTJ3Xu3Flr166VzWYzuiSgXAEZKM+V63DqQHquCpwuVbNb1SQilB1wgCrkdru1bt06Pf/88/rxxx/Vr18/vfzyy7r22muNLg2octnZ2eratasKCgqUmJiounXrGl0SUCEBHygBmIPL5dKyZcs0YcIE7d+/X/fdd58mT56sZs2aGV0aUCVcLpfuvvtubdq0SYmJibrmmmuMLgmosIBYlAPA/KxWq+67777iXXe++OILtWrVSg8//LAOHz5sdHlApZs8ebLWrFmjxYsXEybhcxihBGBKp0+f1pw5czRt2jTl5eXp8ccf13PPPceuO/BLq1at0sCBA/Xyyy/r+eefN7oc4JIRKAGY2oW77jz99NN68sknFRbGgjn4h6SkJHXt2lV9+vTRsmXL6HYAn0SgBOAT0tLSNG3aNL355puqXbu2xo8fr4cffljVq1c3ujTgsqWnp6tTp04KCwvT1q1bFRoaanRJwGVhDiUAn3Durjv9+/fXmDFj1LJlS7377rvsugOf5HQ6NXjwYGVlZWnNmjWESfg0AiUAnxIdHa133nlHu3fvVpcuXfTQQw+pTZs2+uCDD+RyuYwuD6iwZ599Vl988YVWrFihJk2aGF0O4BECJQCfFBMTo+XLl+u7775T06ZNde+996pTp0769NNP2c4RprdgwQLNmjVLr7/+um6++WajywE8RqAE4NM6dOigTz75RFu2bFH16tUVFxenm2++WVu3bjW6NKBEiYmJGjlypB566CE9+uijRpcDeAWBEoBfuOmmm/TVV19p7dq1yszMVLdu3dSvXz/98MMPRpcGFDt69KgGDhyoDh06aM6cOazoht8gUALwGxaLRX379tWOHTu0ZMkS/fzzz2rfvr3uv/9+7du3z+jyEOAcDocGDhwoSfrwww8VHBxscEWA9xAoAfgdq9WqIUOGaPfu3Xr77bf15ZdfqlWrVho5ciS77sAQbrdbo0aN0s6dO7Vq1So1bNjQ6JIAryJQAvBbQUFB+tvf/qbk5GRNnz5dH374oZo3b65nnnlG6enpRpeHADJ79my99957mjt3rm644QajywG8jsbmAAJGVlZW8a47FotFTz/9tEaPHs2uO6hUn3/+uW699Vb9/e9/18yZM40uB6gUBEoAAef48ePFu+7UqlWLXXdQaX799Vd16tRJHTp00Pr162W3240uCagUBEoAAevQoUOaPHmy3nvvPTVq1EgTJ07U//t//49f+vCKnJwcdevWTTk5Odq+fbvCw8ONLgmoNMyhBBCwGjdurHnz5mnXrl3q2rWr/vrXv6p169Zavnw5u+7AI263Ww888ID279+vjz76iDAJv0egBBDwYmJitGzZMu3YsUPNmjXT4MGD1bFjR3bdwWV75ZVX9OGHH2rhwoVq3bq10eUAlY5ACQC/a9++vdavX68vv/xSISEhiouLU48ePfT1118bXRp8yEcffaQJEyZo0qRJuuuuu4wuB6gSBEoAuEBsbKwSEhK0bt06ZWVlqXv37rrjjjvYdQfl2r17t+Lj4zVgwABNmDDB6HKAKkOgBIASWCwW9enTp3jXnT179qhdu3a67777lJycbHR5MKFTp07pzjvv1FVXXaUFCxbIauVXLAIH3+0AUIZzd92ZO3euEhISdM0112jkyJH67bffjC4PJlFYWKghQ4bo5MmTWrNmDb1NEXAIlABQAUFBQRoxYoSSk5P1j3/8o3jXnaefflonTpwwujwYbNy4cdq4caOWLVumq6++2uhygCpHH0oAuAxZWVl67bXXNHPmTFksFo0ZM0ZPPfUUI1MBaPHixYqPj9esWbP05JNPGl0OYAgCJQB44Pjx43r11Vc1Z84chYWFafz48Ro1ahS77gSIb7/9VrGxsRo8eLDee+89WSwWo0sCDEGgBAAvOHfXnYYNG2rixIl64IEH2HXHj6Wmpqpjx45q1KiRtmzZwh8RCGjMoQQALyjadWf37t3q1q2bRowYwa47fqygoEB33323nE6nVq1aRZhEwCNQAoAXtWzZUkuXLtWOHTvUvHnz4l13PvnkE3bd8RNut1uPPfaYtm/frpUrV6pRo0ZGlwQYjkAJAJWgffv2Wrdunb788kuFhoaqT58+6tGjh7766iujS4OH3n77bc2bN09vv/22unbtanQ5gCkQKAGgEsXGxurLL7/U+vXrlZ2drdjYWPXt21fff/+90aXhMnz55Zd64okn9MQTT+jBBx80uhzANFiUAwBVxOVy6YMPPtCECROUnJyswYMHa8qUKWrRooXRpaECDh48qE6dOqlNmzb67LPPFBQUZHRJgGkwQgkAVcRqtWrw4MHatWuX5s2bp6+//lrXXHON/va3v7Hrjsnl5eXprrvuUmhoqJYvX06YBC5AoASAKhYUFKS//vWvxbvurFy5Us2bN9eYMWPYdceE3G63hg8frr1792rNmjWqV6+e0SUBpsMjbwAwWFZWlmbNmqWZM2dKksaMGaPRo0erVq1aBlcGSXr11Vc1btw4rVixQnfffbfR5QCmRKAEAJM4ceKEpk2bpjlz5qhmzZoaP368HnnkEXocGmj9+vW644479Pzzz2vKlClGlwOYFoESAEzmt99+0+TJk/Xuu++qYcOGevHFF/Xggw+y604V27Nnj2644Qb16NFDq1evltXKLDGgNARKADCpvXv3auLEiVq6dKlatGihKVOmaNCgQQSbKpCRkaHOnTvLZrNp27ZtTD8AysH/lQDApFq2bKklS5Zo586datGihYYMGaLrr79e69evZ9edSlRYWKihQ4cqLS1Na9asIUwCFUCgBACTa9eundatW6eEhASFhYWpb9++uummm5SQkGB0aX5pwoQJ+vTTT4tHhgGUj0AJAD6ie/fu2rJli9avX6+cnBzddNNN6tOnj3bu3Gl0aX5j2bJlmjZtmqZPn67bbrvN6HIAn0GgBAAfYrFYFBcXp++++07Lli3TL7/8og4dOmjIkCHau3ev0eX5tJ07d+rBBx/U0KFDNWbMGKPLAXwKi3IAwIc5nU4tWLBAkyZN0tGjR/Xggw/qxRdfVOPGjY0uzaekpaWpU6dOql+/vhISElSjRg2jSwJ8CoESAPxAfn6+3nrrLU2dOlXZ2dl65JFHNG7cONWvX9/o0kzvzJkz6tWrl37++Wd9++23hHHgMhAoAcCPZGdna9asWZoxY4bcbrfGjBmjp556ipXKZXj00Uc1b948ff755+revbvR5QA+iUAJAH7oxIkTevXVVzV79mzVrFlT48aN0yOPPMKj3AvMnTtXI0eO1Ny5czVixAijywF8FoESAPzYb7/9pilTpmj+/Plq0KBB8a47QUFBRpdmuK+//lo9e/bUiBEjNGfOHKPLAXwagRIAAkBycrImTpyoJUuWqHnz5poyZYruvffegN1159ChQ+rUqZNiYmK0ceNGAjbgocD8PwkABJgWLVro/fff1/fff6+YmBjdd9996tChg9atWxdwu+6cPn1aAwYMUHBwsD744APCJOAFBEoACCDXXXed1q5dq4SEBNWqVUt33HGHYmNjA2bXHbfbrREjRmj37t1avXq1IiMjjS4J8AsESgAIQEW77nzyySfKy8vTTTfdpLi4OL/fdWfmzJlavHix3nvvPbVv397ocgC/QaAEgABlsVh0++2369tvv9Xy5cu1f/9+dejQQYMHD9aePXuMLs/rPvvsMz333HMaO3asBg8ebHQ5gF9hUQ4AQNIfu+689NJLOnLkiB544AFNnDjRLxp9Jycn64YbbtCNN96ojz76SDabzeiSAL9CoAQAnCc/P19vv/22XnnlFWVlZemRRx7R+PHjfXbXnaysLHXp0kUul0uJiYmqXbu20SUBfodACQAoUXZ2tl5//XXNmDFDLpdLTz31lMaMGeNTu+64XC7ddddd2rJli7755hvFxMQYXRLgl5hDCQAoUVhYmCZMmKD9+/fr4Ycf1j/+8Q81bdpUM2bM0OnTp40ur0ImTZqktWvXasmSJYRJoBIxQgkAqJDDhw9rypQpeueddxQVFaUXX3xRw4cPN20fxxUrVmjQoEGaNm2axo4da3Q5gF8jUAIALsm+ffv04osvFu+6M3nyZA0ePNhUu+78+OOP6tq1q/r166clS5bIYrEYXRLg1wiUAIDL8sMPP+iFF17Q2rVrde211+qVV15R3759DQ9vJ06cUKdOnVS3bl199dVXCgkJMbQeIBCY589JAIBPue666/Txxx/rq6++Up06ddSvXz/Fxsbqyy+/9Pq9ch1O7TqSqZ0pp7TrSKZyHc4S33fmzBnde++9ysnJ0apVqwiTQBVhhBIA4DG3260NGzZo/Pjx2rFjh2677TZN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zz//rO3bt2vw4MFavHixrr/+erVu3VrTpk3TwYMHjS4T8BiBEgBgallZWXK73T4zQlkSi8Wijh076vXXX9fhw4e1fv16tW/fXlOmTFGTJk3Uo0cPzZs3T6dOnTK6VOCyECgBAKaWmZkpST4dKM9lt9sVFxenxYsXKzU1VQsWLFBwcLAefvhhNWjQQPfcc49Wr14th8NhdKlAhREoAQCm5m+B8lxhYWH6y1/+og0bNujQoUOaNm2afvnlFw0YMEANGzbUqFGj9PXXXzPfEqZHoAQAmFpRoPTFOZSXolGjRnrqqae0c+dOJSUlaeTIkVq3bp26d++uZs2aacKECdqzZ4/RZQIlIlACAEwtIyNDkn+OUJamTZs2mjZtmg4cOKDNmzfrlltu0b/+9S+1atVKN9xwg/71r38pLS3N6DKBYgRKAICp+fMj7/JYrVbdfPPNeuedd3Ts2DEtX75cDRs21JgxY9SoUSP17dtXS5YsUV5entGlIsARKAEAppaZmamgoCBVr17d6FIMVaNGDQ0aNEhr1qzR0aNH9cYbb+jUqVO6//77FRUVpQceeEAbN25UYWGh0aUiABEoAQCmlpmZqTp16shisRhdimnUq1dPo0aN0tatW7Vv3z4988wz+vrrr9W7d281btxYTz/9tL7//nsW86DKECgBAKZmxn28zaRZs2Z68cUXtXfvXm3btk133323FixYoPbt2+vaa6/V9OnTdejQIaPLhJ8jUAIATM2Xtl00ksViUefOnfXGG2/oyJEjWrt2rVq3bq1Jkybpqquu0i233KJ33323eE4q4E0ESgCAqREoL11QUJD69u2rpUuXKjU1Ve+++64sFov++te/KioqSvfee68+/vhjFRQUGF0q/ASBEgBgakVzKHF5atWqpQceeECbNm1SSkqKpkyZoj179qh///5q1KiRHn30Uf3v//4v8y3hEYub7yAAgIl17dpV11xzjd59912jS/ErP/74oxYtWqTFixfryJEjatasmeLj4zV06FC1aNHC6PLgYxihBACYGo+8K8e1116rf/zjH0pJSdGmTZsUGxur1157TS1btlSXLl00Z84cHT9+3Ogy4SMIlAAAUyNQVi6bzaZbbrlF7733no4dO6alS5eqfv36evLJJ9WoUSP169dPy5cv1+nTp40uFSZGoAQAmBpzKKtOSEiIBg8erI8//lhHjhzRrFmzdPz4cQ0ePFhRUVEaPny4Pv/8c7lcLqNLhckQKAEApnXmzBnl5uYyQmmA+vXr67HHHtO2bdu0d+9ejR49Wlu2bNGf//xnXXXVVXruueeUlJRkdJkwCQIlAMC0srKyJAXmPt5m0qJFC7300kvat2+ftm7dqv79++udd97Rtddeq+uuu04zZszQ4cOHjS4TBiJQAgBMq6gJN4HSHCwWi7p27ao5c+bo6NGjWrNmjWJiYvTCCy+ocePG6tWrlxYsWKDs7GyjS0UVI1ACAEyLQGle1apVU//+/bV8+XIdO3ZM8+bNU2FhoR544AFFRUXpvvvu07p163TmzBmjS0UVIFACAEyrKFCyKMfc6tSpo4ceekibN2/WwYMHNXHiRCUlJemOO+7QFVdcoSeeeELffPMNzdP9GIESAGBaGRkZkhih9CXR0dHFC3Z27typv/zlL1qxYoU6d+6sVq1aacqUKdq/f7/RZcLLCJQAANPikbfvslgsateunWbMmKFDhw5pw4YN6tKli6ZPn65mzZqpW7dueuutt5Senm50qfACAiUAwLQyMzNVvXp1VatWzehS4AGbzabevXtrwYIFSk1N1eLFi1W7dm09/vjjatiwoe666y6tWLFC+fn5RpeKy0SgBACYFk3N/U9oaKjuv/9+rV+/XocPHy5uOTRo0CA1aNBAI0aM0JYtW2ie7mMIlAAA08rIyOBxtx+LiorSE088oe3bt+unn37S448/ro0bN+rmm29WkyZNNG7cOO3evdvoMlEBBEoAgGmxj3fgKFqw88svvyghIUF9+vTRv//9b7Vu3VodOnTQa6+9pqNHjxpdJkpBoAQAmBaBMvBYrVZ1795db7/9to4ePaqVK1eqadOmGjdunK688krddtttWrhwoXJycowuFecgUAIATIs5lIEtODhYAwYM0Icffqhjx47p7bff1unTp/WXv/xFUVFRio+P16effiqn01nlteU6nNp1JFM7U05p15FM5TqqvgYzsbjpMgoAMKkbbrhB1113nebNm2d0KTCRAwcO6P3339fChQv1888/KzIyUvfdd5+GDRumDh06yGKxVMp9k1OztTgxRZv3pCnlZJ7ODVAWSdHhIeoZE6mhnaPVIiqsUmowKwIlAMC0YmJi1K9fP82YMcPoUmBCbrdbO3bs0KJFi7RkyRKlpqaqVatWio+P19Ch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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "import networkx as nx\n", "from pymdp.jax.envs import GraphEnv\n", @@ -22,87 +61,38 @@ " (f\"hallway {i}\" if len(list(graph.neighbors(loc))) > 1 else f\"room {i}\")\n", " for i, loc in enumerate(graph.nodes)\n", " ]\n", - " }" + " }\n", + "\n", + "graph, _ = generate_connected_clusters(cluster_size=3, connections=2)\n", + "nx.draw(graph, with_labels=True, font_weight=\"bold\")" ] }, { - "cell_type": "code", - "execution_count": 2, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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ve666y7mJQEgRARKADFjy5Yt8ng8Ki8v15o1a3TllVeaXRIA2AItbwAxYenSpXK73erSpYvy8vIIkwAQRgRKALbm8/k0Z84czZgxQ5MnT9aGDRuUnJxsdlkAYCu0vAHY1qFDh06GyMcff1yzZ89mXhIAIoBACcCW8vLy5PF4VFlZqbVr12rUqFFmlwQAtkXLG4DtvPDCCzIMQ927d1deXh5hEgAijEAJwDZqamp01113adasWZo2bZo++OAD9e7d2+yyAMD2aHkDsIXCwkJNmjRJ2dnZevLJJ3X77bczLwkArYRACSDq5ebmKj09XTU1NcrMzNSIESPMLgkAYgotbwBR7fnnn9fIkSPVs2dP5eXlESYBwAQESgBRqbq6WrNnz9ZNN92kmTNnav369erZs6fZZQFATKLlDSDqHDx4UJMmTVJOTo7+9Kc/6dZbbzW7JACIaQRKAFElJydH6enpCgQCWrdundxut9klAUDMo+UNIGo888wzuuKKK3TeeecpLy+PMAkAFkGgBGB51dXVuv322/XjH/9YN910kzIzM9WjRw+zywIAfIuWNwBL+/rrrzVx4kR5vV49/fTTuuWWW8wuCQBwGgIlAMvauHGjJkyYIIfDofXr1yslJcXskgAAdaDlDcCSnn76aY0aNUp9+/ZVXl4eYRIALIxACcBSqqqqdOutt+q2227TLbfcovfff1/du3c3uywAQANoeQOwjK+++koTJkzQRx99pGeeeUY333yz2SUBAJqAQAnAErKysjRx4kS5XC5t2LBBw4YNM7skAEAT0fIGYKpgMKinnnpKV155pS688ELl5eURJgEgyhAoAZimsrJSP/7xj3XHHXfo9ttv19q1a9WtWzezywIANBMtbwCmOHDggNLT0/XJJ5/o+eef16xZs8wuCQDQQgRKAK1uw4YNmjhxouLj4/Xhhx9qyJAhZpcEAAgBLW8ArSYYDOrJJ5/UVVddpe9+97vyer2ESQCwAQIlgFZRWVmpm2++WbNnz9bs2bO1evVqde3a1eyyAABhQMsbQMTt379f6enp+vTTT/Xiiy9qxowZZpcEAAgjAiWAiFq3bp0mT56s9u3bKysrS9/73vfMLgkAEGa0vAFERDAY1GOPPaYxY8Zo0KBB8nq9hEkAsCkCJYCwO378uGbNmqV77rlHd999t9577z116dLF7LIAABFCyxtA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P7V4XhIAADSMQAlbqj0vuW7dOlrcAABEEC1v2M5zzz2nK664gnlJAABaCYEStlF7XnLmzJnMSwIA0EpoecMWas9L/t///Z9uu+02s0sCACBmECgR9XJzc5Weni6fz6fMzEwZhmF2SQAAxBRa3ohqzz//vEaOHKmePXvK6/USJgEAMAGBElGppqZGd955p2666SbNnDlT69evV8+ePc0uCwCAmETLG1GnsLBQkyZN0saNG/XUU0/ptttuk8PhMLssAABiFoESUcXr9crj8aimpoZ5SQAALIKWN6LGX/7yF40YMUI9e/ZUXl4eYRIAAIsgUMLyampqdNddd+nGG2/UjBkzmJcEAMBiaHnD0k7MS2ZnZ+uPf/yj/uu//ot5SQAALIZACcs6fV5yxIgRZpcEAADqQMsblvTCCy9oxIgR6tGjh/Ly8giTAABYGIESlnJiXnLWrFmaPn0685IAAEQBWt6wjMLCQk2ePFlZWVl68skndfvttzMvCQBAFCBQwhK8Xq/S09NVXV3NvCQAAFGGljdMd2Je8txzz5XX6yVMAgAQZQiUME1NTY3uvvvuU+Yle/XqZXZZAACgmWh5wxTMSwIAYB8ESrS6vLw8eTweVVVV6f3339fIkSPNLgkAAISAljda1QsvvCDDMNS9e3fl5eURJgEAsAECJVpFTU2N7rnnHs2aNUvTpk3TBx98wLwkAAA2QcsbEXfo0CFNnjxZH374oZ544gndcccdzEsCAGAjBEpEVO15ybVr1+qKK64wuyQAABBmtLwRMS+++KJGjBih7t27y+v1EiYBALApAiXC7sS85A9/+ENNmTJFH3zwgXr37m12WQAAIEJoeSOsmJcEACD2ECgRNh999JE8Ho+OHz/OvCQAADGEljfC4q9//asMw1DXrl2Vl5dHmAQAIIYQKBESn8+nOXPmaObMmZoyZYo2bNjAvCQAADGGljdarPa85B/+8Af993//N/OSAADEIAIlWoR5SQAAcAItbzTb0qVLmZcEAAAnESjRZD6fT/fee69mzJihjIwM1pcEAACSaHmjiQ4dOnQyRD7++OOaPXs285IAAEASgRJNcPq85KhRo8wuCQAAWAgtbzToxLzkOeecI6/XS5gEAABnIFCiTrXnJSdPnqwNGzYoOTnZ7LIAAIAF0fLGGYqKipSRkaH169frscce05133sm8JAAAqBeB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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], "source": [ - "graph, _ = generate_connected_clusters(cluster_size=2, connections=2)\n", - "nx.draw(graph, with_labels=True, font_weight=\"bold\")" + "Now we can create a GraphEnv given this graph. We specify two object locations and two agent locations. This will effectively create the environment with a batch size of 2." ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ - "from jax import random as jr\n", - "key = jr.PRNGKey(0)\n", - "\n", - "env = GraphEnv(graph, 3, 0)" + "env = GraphEnv(graph, object_locations=[3, 5], agent_locations=[0, 1])" ] }, { - "cell_type": "code", - "execution_count": 4, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(1, 2)\n", - "(1, 2)\n", - "([Array([0], dtype=int32), Array([0], dtype=int32)], GraphEnv(\n", - " params={\n", - " 'A':\n", - " [f32[1,5,5], f32[1,2,5,6]],\n", - " 'B':\n", - " [f32[1,5,5,5], f32[1,6,6,1]],\n", - " 'D':\n", - " [f32[1,5], f32[1,6]]\n", - " },\n", - " states=[[i32[1], i32[1]], [i32[1], i32[1]]],\n", - " dependencies={'A': [[0], [0, 1]], 'B': [[0], [1]]}\n", - "))\n" - ] - } - ], "source": [ - "import jax.numpy as jnp\n", - "\n", - "batch_size = 1\n", - "keys = jr.split(key, batch_size + 1)\n", - "key = keys[-1]\n", - "\n", - "action = jnp.broadcast_to(jnp.array([4, 0]), (batch_size, 2))\n", - "print(action.shape)\n", - "\n", - "_keys = keys[:batch_size]\n", - "print(jnp.shape(_keys))\n", - "obs = env.step(_keys, action)\n", - "print(obs)" + "To create an Agent, we reuse the environment's A and B tensors, but give the agent a uniform initial belief about the object location, and a preference to find (see) the object." ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -116,152 +106,161 @@ "C = [jnp.zeros(a.shape[:2]) for a in A]\n", "C[1] = C[1].at[1].set(1.0)\n", "\n", - "D = [jnp.ones(b.shape[:2]) for b in B]\n", + "D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", "\n", - "agent = Agent(A, B, C, D,None, None, None, A_dependencies=A_dependencies, B_dependencies=B_dependencies)" + "agent = Agent(A, B, C, D,None, None, None, A_dependencies=A_dependencies, B_dependencies=B_dependencies, policy_len=2)" ] }, { - "cell_type": "code", - "execution_count": 6, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(1, 5)\n" - ] - } - ], "source": [ - "print(C[0].shape)" + "Using the rollout function, we can easily simulate two agents in parallel for 10 timesteps..." ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 23, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[(1, 5, 5), (1, 2, 5, 6)]\n" - ] - } - ], + "outputs": [], "source": [ - "print([a.shape for a in A])" + "from pymdp.jax.envs.rollout import rollout\n", + "\n", + "last, result, env = rollout(agent, env, 10, key)" ] }, { - "cell_type": "code", - "execution_count": 14, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[(1, 1, 5), (1, 1, 6)]\n" - ] - } - ], "source": [ - "# add a time dimension\n", - "qs = [jnp.broadcast_to(d, (1,) + d.shape) for d in D]\n", - "\n", - "print([s.shape for s in qs])\n", - "q_pi, nefe = agent.infer_policies(qs)" + "And plot their beliefs over time." ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 24, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "batch_keys = jr.split(key, batch_size + 1)\n", - "_keys = keys[:batch_size]\n", - "key = keys[-1]\n", - "actions = agent.sample_action(q_pi, rng_key=_keys)" + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.imshow(result[\"qs\"][0][0, :, :].T, cmap=\"gray_r\", vmin=0.0, vmax=1.0)\n" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 25, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[1 0]]\n" - ] + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfQAAAGdCAYAAADkLYEYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAXN0lEQVR4nO3df2zU9f3A8Vcp42DuelOkCOFQ1C0IiD8oEmTzx0QNUTPN4jaDGcNlyZaqYLNlsGVzidPikhkWdVWcwyXKcL9QZ6JGWYQ5JRY6FpmbvyedDtBFe8DI1bT3/WOxW5Vqr/R63777eCSfP+7Tz6fvlxfMM5+7z11rSqVSKQCAYW1UtQcAAA6doANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJGD3UC3Z3d8frr78e2Ww2ampqhnp5ABhWSqVS7N27NyZPnhyjRvV9HT7kQX/99dcjn88P9bIAMKy1t7fHlClT+vz5kAc9m81GxH8Gq6urG+rlAWBYKRQKkc/ne/rZlyEP+rsvs9fV1Qk6APTTh71N7aY4AEiAoANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkYUNBvvfXWOOaYY2Ls2LExb968ePrppwd7LgCgDGUH/d57742mpqa49tpro62tLU466aQ4//zzY8+ePZWYDwDoh7KDftNNN8VXv/rVWLp0acyYMSNuu+22+OhHPxo/+9nPKjEfANAPZQW9s7Mztm3bFgsXLvzvLxg1KhYuXBhPPfXUQc8pFotRKBR6bQDA4Cor6G+++WZ0dXXFxIkTe+2fOHFi7Nq166DnNDc3Ry6X69ny+fzApwUADqrid7mvXLkyOjo6erb29vZKLwkAI87ocg4+8sgjo7a2Nnbv3t1r/+7du+Ooo4466DmZTCYymczAJwQAPlRZV+hjxoyJOXPmxMaNG3v2dXd3x8aNG2P+/PmDPhwA0D9lXaFHRDQ1NcWSJUuioaEhTjvttFi9enXs378/li5dWon5AIB+KDvoX/jCF+KNN96I733ve7Fr1644+eST4+GHH37fjXIAwNCpKZVKpaFcsFAoRC6Xi46OjqirqxvKpQFg2OlvN32XOwAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkIDR1Vr4pZdeimw2W63lB+T444+v9ggAcFCu0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASEDZQd+8eXNcdNFFMXny5KipqYn77ruvAmMBAOUoO+j79++Pk046KW699dZKzAMADMDock9YtGhRLFq0qBKzAAADVHbQy1UsFqNYLPY8LhQKlV4SAEacit8U19zcHLlcrmfL5/OVXhIARpyKB33lypXR0dHRs7W3t1d6SQAYcSr+knsmk4lMJlPpZQBgRPM5dABIQNlX6Pv27YsXX3yx5/Err7wS27dvjyOOOCKmTp06qMMBAP1TdtC3bt0aZ599ds/jpqamiIhYsmRJ3HXXXYM2GADQf2UH/ayzzopSqVSJWQCAAfIeOgAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkICy/x76SPbss89We4QRZcaMGdUeAWDYcIUOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASICgA0ACygp6c3NzzJ07N7LZbNTX18fFF18czz33XKVmAwD6qaygb9q0KRobG2PLli3x6KOPxjvvvBPnnXde7N+/v1LzAQD9MLqcgx9++OFej++6666or6+Pbdu2xRlnnDGogwEA/VdW0N+ro6MjIiKOOOKIPo8pFotRLBZ7HhcKhUNZEgA4iAHfFNfd3R3Lly+PBQsWxKxZs/o8rrm5OXK5XM+Wz+cHuiQA0IcBB72xsTF27NgR69ev/8DjVq5cGR0dHT1be3v7QJcEAPowoJfcr7zyynjwwQdj8+bNMWXKlA88NpPJRCaTGdBwAED/lBX0UqkUV111VWzYsCEef/zxmDZtWqXmAgDKUFbQGxsbY926dXH//fdHNpuNXbt2RURELpeLcePGVWRAAODDlfUeektLS3R0dMRZZ50VkyZN6tnuvffeSs0HAPRD2S+5AwD///gudwBIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASAB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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "print(actions)" + "fig, ax = plt.subplots()\n", + "ax.imshow(result[\"qs\"][1][0, :, :].T, cmap=\"gray_r\", vmin=0.0, vmax=1.0)" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 26, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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+PHjY968efHUU0/lPdKo09XVFXPnzo329vaYPHlyXHrppfHcc8/lPRYRcfPNN0ehUIjly5fnPcqo9corr8SVV14ZkyZNigkTJsRpp50WTz/9dN5jjTo9PT3xta99LWbMmBETJkyIk08+OW644YYj/oItjqylwuKBBx6IFStWxPXXXx87d+6M008/PS666KLYu3dv3qONKlu2bInOzs7Ytm1bbNy4Md5666248MIL48CBA3mPNqpt37497rrrrpgzZ07eo4xab7zxRixYsCDe9a53xYYNG+L3v/99fOc734mjjz4679FGnVtuuSXWrFkTt99+e/zhD3+IW265Jb71rW/FbbfdlvdoTa+lfo7FvHnzYu7cuXH77bdHxL9/4VmlUolrrrkmVq5cmfN0o9drr70WkydPji1btsR5552X9zij0v79++Oss86K7373u/HNb34zzjjjjFi9enXeY406K1eujF//+tfxq1/9Ku9RRr2PfvSjMWXKlLjnnnv61n384x+PCRMmxA9+8IMcJ2t+LXPH4s0334wdO3bEwoUL+9aNGTMmFi5cGE8++WSOk1GtViMiYuLEiTlPMnp1dnbGxRdffND/Hwy/hx9+ODo6OuLyyy+PyZMnx5lnnhl333133mONSueee25s2rQpnn/++YiI+O1vfxuPP/54LFq0KOfJmt+w/3bTofL6669HT09PTJky5aD1U6ZMiT/+8Y85TUVvb28sX748FixYELNnz857nFHp/vvvj507d8b27dvzHmXU+/Of/xxr1qyJFStWxFe+8pXYvn17XHvttTFu3LhYsmRJ3uONKitXroxarRYzZ86Mtra26OnpiRtvvDEWL16c92hNr2XCgpGps7Mznn322Xj88cfzHmVU6u7ujmXLlsXGjRtj/PjxeY8z6vX29kZHR0fcdNNNERFx5plnxrPPPht33nmnsBhmP/7xj+OHP/xhrFu3Lk499dTYtWtXLF++PKZOnepcDFLLhMUxxxwTbW1tsWfPnoPW79mzJ4477ricphrdrr766njkkUdi69atMW3atLzHGZV27NgRe/fujbPOOqtvXU9PT2zdujVuv/32qNfr0dbWluOEo8vxxx8fs2bNOmjdKaecEj/72c9ymmj0+tKXvhQrV66MT33qUxERcdppp8Vf//rX6OrqEhaD1DLvWIwbNy7OPvvs2LRpU9+63t7e2LRpU8yfPz/HyUafLMvi6quvjvXr18cvf/nLmDFjRt4jjVoXXHBBPPPMM7Fr166+paOjIxYvXhy7du0SFcNswYIFb/vW6+effz5OOOGEnCYavf71r3/FmDEHXwLb2tqit7c3p4laR8vcsYiIWLFiRSxZsiQ6OjrinHPOidWrV8eBAwdi6dKleY82qnR2dsa6devioYceivb29ti9e3dERJTL5ZgwYULO040u7e3tb3u35aijjopJkyZ55yUH1113XZx77rlx0003xSc+8Yl46qmnYu3atbF27dq8Rxt1Lrnkkrjxxhtj+vTpceqpp8ZvfvObuPXWW+Ozn/1s3qM1v6zF3Hbbbdn06dOzcePGZeecc062bdu2vEcadSLikMu9996b92hkWfbBD34wW7ZsWd5jjFo///nPs9mzZ2fFYjGbOXNmtnbt2rxHGpVqtVq2bNmybPr06dn48eOzk046KfvqV7+a1ev1vEdrei31cywAgHy1zDsWAED+hAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkvkfGKxvBVsQDL8AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "batch_keys = jr.split(key, batch_size + 1)\n", - "_keys = keys[:batch_size]\n", - "key = keys[-1]\n", - "obs, _ = env.step(_keys, action)" + "fig, ax = plt.subplots()\n", + "ax.imshow(result[\"qs\"][0][1, :, :].T, cmap=\"gray_r\", vmin=0.0, vmax=1.0)" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 27, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Array([0], dtype=int32), Array([0], dtype=int32)]\n", - "[(1, 1, 5), (1, 1, 6)]\n", - "(1, 2)\n" - ] + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" }, { "data": { + "image/png": "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R0fU1NTEkCFDolAodPuziEO/Qs/lctHS0hK1tbV98J/Qf9rb26s9oSwHDx6s9oRBZ9++fdWeUJa5c+dWewLwH/L5fGSz2Whra4u6uroezyvpLffzzz8/XnjhhW73LV68OCZPnhzf+973PhbziIhMJhOZTKaUywAAJSop6LW1tTFt2rRu9x111FExatSoj90PAPQfPykOABJQ8qfc/9OmTZv6YAYAcCS8QgeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQgGHVHgD893jooYeqPWFQueKKK6o9gYR4hQ4ACRB0AEiAoANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAJKCvqPf/zjqKmp6XZMnjy5UtsAgF4aVuoDpk6dGk8//fT//gXDSv4rAIA+VnKNhw0bFscff3wltgAAZSr5a+ivvPJKjBs3Lk466aRYuHBhvPXWW594fqFQiHw+3+0AAPpWSUGfNWtW3HffffHEE0/E6tWr44033ogvfvGLsW/fvh4f09TUFNlstuvI5XJHPBoA6K6mWCwWy33wBx98ECeccELcdttt8c1vfvOQ5xQKhSgUCl238/l85HK5aGlpidra2nIvXRXt7e3VnlCWgwcPVnvCoPNJ/5P732zv3r3VnjCoXHHFFdWewADS1tYWdXV1Pf75EX2i7TOf+Ux87nOfi1dffbXHczKZTGQymSO5DABwGEf0fej79++P1157LcaOHdtXewCAMpQU9O985zuxefPm+Mc//hHPPvtsXH755TF06NC48sorK7UPAOiFkt5yf/vtt+PKK6+Mf/3rXzF69Oj4whe+EFu3bo3Ro0dXah8A0AslBX39+vWV2gEAHAE/yx0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEhASb8PHYC+UywWqz2BASCfz0c2mz3seV6hA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQ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", "text/plain": [ - "[Array([[[0.16048184, 0.35807264, 0.16048184, 0.16048184, 0.16048184]]], dtype=float32),\n", - " Array([[[3.0379263e-03, 2.4523251e-06, 3.0379263e-03, 3.0379263e-03,\n", - " 3.0379263e-03, 9.8784572e-01]]], dtype=float32)]" + "
" ] }, - "execution_count": 18, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "print(obs)\n", - "# add time dim\n", - "obs_b = [jnp.broadcast_to(o, (1,) + o.shape) for o in obs]\n", - "\n", - "print([s.shape for s in qs])\n", - "print(actions.shape)\n", - "prior, _ = agent.update_empirical_prior(actions, qs)\n", - "\n", - "agent.infer_states(obs_b, None, prior, None)" + "fig, ax = plt.subplots()\n", + "ax.imshow(result[\"qs\"][1][1, :, :].T, cmap=\"gray_r\", vmin=0.0, vmax=1.0)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/pymdp/jax/envs/env.py b/pymdp/jax/envs/env.py index 5de0315e..3b83ccf8 100644 --- a/pymdp/jax/envs/env.py +++ b/pymdp/jax/envs/env.py @@ -7,12 +7,14 @@ from jax import vmap, random as jr, tree_util as jtu import jax.numpy as jnp + def select_probs(positions, matrix, dependency_list, actions=None): args = tuple(p for i, p in enumerate(positions) if i in dependency_list) args += () if actions is None else (actions,) return matrix[..., *args] + def cat_sample(key, p): a = jnp.arange(p.shape[-1]) if p.ndim > 1: @@ -22,58 +24,51 @@ def cat_sample(key, p): return jr.choice(key, a, p=p) + class PyMDPEnv(Module): params: Dict - states: List[List[Array]] + state: List[Array] dependencies: Dict = field(static=True) - def __init__( - self, params: Dict, dependencies: Dict, init_state: List[Array] = None - ): + def __init__(self, params: Dict, dependencies: Dict, init_state: List[Array] = None): self.params = params self.dependencies = dependencies if init_state is None: init_state = jtu.tree_map(lambda x: jnp.argmax(x, -1), self.params["D"]) - self.states = [init_state] + self.state = init_state def reset(self, key: Optional[PRNGKeyArray] = None): if key is None: - states = [self.states[0]] + state = self.state else: probs = self.params["D"] keys = list(jr.split(key, len(probs))) - states = [jtu.tree_map(cat_sample, keys, probs)] + state = jtu.tree_map(cat_sample, keys, probs) - return tree_at(lambda x: x.states, self, states) + return tree_at(lambda x: x.state, self, state) @vmap - def step(self, key: PRNGKeyArray, actions: Optional[Array] = None): + def step(self, rng_key: PRNGKeyArray, actions: Optional[Array] = None): # return a list of random observations and states - key_state, key_obs = jr.split(key) - states = self.states + key_state, key_obs = jr.split(rng_key) + state = self.state if actions is not None: actions = list(actions) - _select_probs = partial(select_probs, states[-1]) - state_probs = jtu.tree_map( - _select_probs, self.params["B"], self.dependencies["B"], actions - ) + _select_probs = partial(select_probs, state) + state_probs = jtu.tree_map(_select_probs, self.params["B"], self.dependencies["B"], actions) keys = list(jr.split(key_state, len(state_probs))) - new_states = jtu.tree_map(cat_sample, keys, state_probs) - - states.append(new_states) - + new_state = jtu.tree_map(cat_sample, keys, state_probs) else: - new_states = states[-1] + new_state = state - _select_probs = partial(select_probs, new_states) - obs_probs = jtu.tree_map( - _select_probs, self.params["A"], self.dependencies["A"] - ) + _select_probs = partial(select_probs, new_state) + obs_probs = jtu.tree_map(_select_probs, self.params["A"], self.dependencies["A"]) keys = list(jr.split(key_obs, len(obs_probs))) new_obs = jtu.tree_map(cat_sample, keys, obs_probs) + new_obs = jtu.tree_map(lambda x: jnp.expand_dims(x, -1), new_obs) - return new_obs, tree_at(lambda x: (x.states), self, states) \ No newline at end of file + return new_obs, tree_at(lambda x: (x.state), self, new_state) diff --git a/pymdp/jax/envs/graph_worlds.py b/pymdp/jax/envs/graph_worlds.py index fdbcc1f5..1ee98aa8 100644 --- a/pymdp/jax/envs/graph_worlds.py +++ b/pymdp/jax/envs/graph_worlds.py @@ -10,13 +10,14 @@ class GraphEnv(PyMDPEnv): The agent observes its own location, as well as whether the object is at its location. """ - def __init__(self, graph: nx.Graph, object_location: int, agent_location: int, key=None): + def __init__(self, graph: nx.Graph, object_locations: list[int], agent_locations: list[int]): + batch_size = len(object_locations) + A, A_dependencies = self.generate_A(graph) - A = [jnp.broadcast_to(a, (1,) + a.shape) for a in A] + A = [jnp.broadcast_to(a, (batch_size,) + a.shape) for a in A] B, B_dependencies = self.generate_B(graph) - B = [jnp.broadcast_to(b, (1,) + b.shape) for b in B] - D = self.generate_D(graph, object_location, agent_location) - D = [jnp.broadcast_to(d, (1,) + d.shape) for d in D] + B = [jnp.broadcast_to(b, (batch_size,) + b.shape) for b in B] + D = self.generate_D(graph, object_locations, agent_locations) params = { "A": A, @@ -91,17 +92,19 @@ def generate_B(self, graph: nx.Graph): return B, B_dependencies - def generate_D(self, graph: nx.Graph, object_location: int, agent_location: int): + def generate_D(self, graph: nx.Graph, object_locations: list[int], agent_locations: list[int]): + batch_size = len(object_locations) num_locations = len(graph.nodes) num_object_locations = num_locations + 1 states = [num_locations, num_object_locations] D = [] for s in states: - D.append(jnp.zeros(s)) + D.append(jnp.zeros((batch_size, s))) # set the start locations - D[0] = D[0].at[agent_location].set(1.0) - D[1] = D[1].at[object_location].set(1.0) + for i in range(batch_size): + D[0] = D[0].at[i, agent_locations[i]].set(1.0) + D[1] = D[1].at[i, object_locations[i]].set(1.0) return D diff --git a/pymdp/jax/envs/rollout.py b/pymdp/jax/envs/rollout.py new file mode 100644 index 00000000..84b67243 --- /dev/null +++ b/pymdp/jax/envs/rollout.py @@ -0,0 +1,96 @@ +import jax.numpy as jnp +import jax.random as jr +import jax.tree_util as jtu +import jax.lax + +from pymdp.jax.agent import Agent +from pymdp.jax.envs.env import PyMDPEnv + + +def rollout(agent: Agent, env: PyMDPEnv, num_timesteps: int, rng_key: jr.PRNGKey): + """ + Rollout an agent in an environment for a number of timesteps. + + agent: pymdp agent to generate actions + env: pymdp environment to interact with + num_timesteps: number of timesteps to rollout for + rng_key: random key to use for sampling actions + """ + # get the batch_size of the agent + batch_size = agent.A[0].shape[0] + + def step_fn(carry, x): + action_t = carry["action_t"] + observation_t = carry["observation_t"] + qs = carry["qs"] + empirical_prior = carry["empirical_prior"] + env = carry["env"] + rng_key = carry["rng_key"] + + # We infer the posterior using FPI + # so we don't need past actions or qs_hist + qs = agent.infer_states( + observations=observation_t, + past_actions=None, + empirical_prior=empirical_prior, + qs_hist=None, + ) + qpi, nefe = agent.infer_policies(qs) + + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + action_t = agent.sample_action(qpi, rng_key=keys[1:]) + + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + observation_t, env = env.step(rng_key=keys[1:], actions=action_t) + + empirical_prior, qs = agent.update_empirical_prior(action_t, qs) + + carry = { + "action_t": action_t, + "observation_t": observation_t, + "qs": jtu.tree_map(lambda x: x[:, -1:, ...], qs), + "empirical_prior": empirical_prior, + "env": env, + "rng_key": rng_key, + } + info = { + "qpi": qpi, + "qs": jtu.tree_map(lambda x: x[:, 0, ...], qs), + "env": env, + "observation": observation_t, + "action": action_t, + } + + return carry, info + + # generate initial observation + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + observation_0, env = env.step(keys[1:]) + + # initial belief + qs_0 = jtu.tree_map(lambda x: jnp.expand_dims(x, -2), agent.D) + + # initial action + # TODO better fill with zeros? + qpi_0, _ = agent.infer_policies(qs_0) + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + action_t = agent.sample_action(qpi_0, rng_key=keys[1:]) + + initial_carry = { + "qs": qs_0, + "action_t": action_t, + "observation_t": observation_0, + "empirical_prior": agent.D, + "env": env, + "rng_key": rng_key, + } + + # Scan over time dimension (axis 1) + last, info = jax.lax.scan(step_fn, initial_carry, jnp.arange(num_timesteps)) + + info = jtu.tree_map(lambda x: jnp.swapaxes(x, 0, 1), info) + return last, info, env From cf0058d7652e2a405dacf6e111370b3d618b0ae9 Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Tue, 11 Jun 2024 12:05:40 -0500 Subject: [PATCH 046/196] initial solution for flattening B action dims --- pymdp/jax/agent.py | 43 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 97083529..6df23b63 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -60,6 +60,7 @@ class Agent(Module): # static parameters not leaves of the PyTree A_dependencies: Optional[List] = field(static=True) B_dependencies: Optional[List] = field(static=True) + B_action_dependencies: Optional[List] = field(static=True) batch_size: int = field(static=True) num_iter: int = field(static=True) num_obs: List[int] = field(static=True) @@ -109,6 +110,8 @@ def __init__( I=None, A_dependencies=None, B_dependencies=None, + B_action_dependencies=None, + num_controls=None, control_fac_idx=None, batch_size=1, policy_len=1, @@ -133,19 +136,32 @@ def __init__( learn_D=True, learn_E=False, ): - + if B_action_dependencies is not None: + assert num_controls is not None, "Please specify num_controls for complex action dependencies" + # extract high level variables self.num_modalities = len(A) self.num_factors = len(B) + self.num_controls = num_controls self.batch_size = batch_size # extract dependencies for A and B matrices - self.A_dependencies, self.B_dependencies = self._construct_dependencies(A_dependencies, B_dependencies, A, B) + ( + self.A_dependencies, + self.B_dependencies, + self.B_action_dependencies, + ) = self._construct_dependencies( + A_dependencies, B_dependencies, B_action_dependencies, A, B + ) # extract A and B tensors A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] B = [jnp.array(b.data) if isinstance(b, Distribution) else b for b in B] + # flatten B action dims + if B_action_dependencies is not None: + B = self._flatten_B_action_dims(B, self.B_action_dependencies) + # extract shapes from A and B self.num_states = jtu.tree_map(lambda x: x.shape[1], B) self.num_obs = jtu.tree_map(lambda x: x.shape[1], A) @@ -211,7 +227,7 @@ def __init__( if E is not None: E = jnp.broadcast_to(E, (batch_size,) + E.shape) else: - E = jnp.ones((batch_size, len(policies))) / len(policies) + E = jnp.ones((batch_size, len(self.policies))) / len(self.policies) if self.use_inductive and self.H is not None: I = control.generate_I_matrix(H, B, self.inductive_threshold, self.inductive_depth) @@ -432,7 +448,7 @@ def multiaction_probabilities(self, q_pi: Array): # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan return marginals - def _construct_dependencies(self, A_dependencies, B_dependencies, A, B): + def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_dependencies, A, B): if A_dependencies is not None: A_dependencies = A_dependencies elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): @@ -446,8 +462,23 @@ def _construct_dependencies(self, A_dependencies, B_dependencies, A, B): _, B_dependencies = get_dependencies(A, B) else: B_dependencies = [[f] for f in range(self.num_factors)] - return A_dependencies, B_dependencies - + + """TODO: check B action shape""" + if B_action_dependencies is not None: + B_action_dependencies = B_action_dependencies + else: + B_action_dependencies = [[f] for f in range(self.num_factors)] + return A_dependencies, B_dependencies, B_action_dependencies + + def _flatten_B_action_dims(self, B, B_action_dependencies): + assert hasattr(B[0], "shape"), "Elements of B must be tensors and have attribute shape" + B_flat = [] + for B_f, action_dependency in zip(B, B_action_dependencies): + dims = [self.num_controls[d] for d in action_dependency] + target_shape = list(B_f.shape)[:-len(action_dependency)] + [pymath.prod(dims)] + B_flat.append(B_f.reshape(target_shape)) + return B_flat + def _get_default_params(self): method = self.inference_algo default_params = None From 910dd892de39fc9396bba868edf9752dc50c4d6f Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Tue, 11 Jun 2024 12:37:35 -0500 Subject: [PATCH 047/196] move a copy of combination indexing utils to jax.utils --- pymdp/jax/utils.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/pymdp/jax/utils.py b/pymdp/jax/utils.py index 12bbc461..8ebb9125 100644 --- a/pymdp/jax/utils.py +++ b/pymdp/jax/utils.py @@ -49,6 +49,52 @@ def list_array_scaled(shape_list: ShapeList, scale: float=1.0) -> Vector: return arr +def get_combination_index(x, dims): + """ + Find the index of an array of categorical values in an array of categorical dimensions + + Parameters + ---------- + x: ``numpy.ndarray`` or ``list`` of ``int`` + ``numpy.ndarray`` or ``list`` of ``int`` of categorical values to be converted into combination index + dims: ``list`` of ``int`` + ``list`` of ``int`` of categorical dimensions used for conversion + + Returns + ---------- + index: ``int`` + ``int`` index of the combination + """ + assert len(x) == len(dims) + index = 0 + product = 1 + for i in reversed(range(len(dims))): + index += x[i] * product + product *= dims[i] + return index + +def index_to_combination(index, dims): + """ + Convert the combination index according to an array of categorical dimensions back to an array of categorical values + + Parameters + ---------- + index: ``int`` + ``int`` index of the combination + dims: ``list`` of ``int`` + ``list`` of ``int`` of categorical dimensions used for conversion + + Returns + ---------- + x: ``list`` of ``int`` + ```list`` of ``int`` of categorical values to be converted into combination index + """ + x = [] + for base in reversed(dims): + x.append(index % base) + index //= base + return list(reversed(x)) + # def onehot(value, num_values): # arr = np.zeros(num_values) # arr[value] = 1.0 From 614115dd5a9bc430f48e1ab27e3449b6f244d1fa Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Tue, 11 Jun 2024 12:38:11 -0500 Subject: [PATCH 048/196] initial solution for multi action decoding --- pymdp/jax/agent.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 6df23b63..8c6e76a0 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -68,6 +68,8 @@ class Agent(Module): num_states: List[int] = field(static=True) num_factors: int = field(static=True) num_controls: List[int] = field(static=True) + # Used to store original action dimensions in case there are multiple action dependencies per state + num_controls_multi: List[int] = field(static=True) control_fac_idx: Optional[List[int]] = field(static=True) # depth of planning during roll-outs (i.e. number of timesteps to look ahead when computing expected free energy of policies) policy_len: int = field(static=True) @@ -158,7 +160,8 @@ def __init__( A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] B = [jnp.array(b.data) if isinstance(b, Distribution) else b for b in B] - # flatten B action dims + # flatten B action dims for multiple action dependencies + self.num_controls_multi = num_controls if B_action_dependencies is not None: B = self._flatten_B_action_dims(B, self.B_action_dependencies) @@ -418,6 +421,8 @@ def sample_action(self, q_pi: Array, rng_key=None): q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key ) + if self.B_action_dependencies is not None: + action = self._decode_multi_actions(action, self.B_action_dependencies, self.num_controls_multi) return action @vmap @@ -479,6 +484,18 @@ def _flatten_B_action_dims(self, B, B_action_dependencies): B_flat.append(B_f.reshape(target_shape)) return B_flat + """NOTE: maybe use tree map""" + def _decode_multi_actions(self, action, B_action_dependencies, num_controls_multi): + action_multi = [None for _ in range(len(num_controls_multi))] + for f, action_dependency in enumerate(B_action_dependencies): + num_controls = [num_controls_multi[d] for d in action_dependency] + action_multi_f = utils.index_to_combination(action[f], num_controls) + for i, a in zip(action_dependency, action_multi_f): + action_multi[i] = a + + action_multi = jnp.array(action_multi) + return action_multi + def _get_default_params(self): method = self.inference_algo default_params = None From af08d88d601bc103a8458ffce3c60852e81fd13e Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Tue, 11 Jun 2024 16:09:17 -0500 Subject: [PATCH 049/196] vectorize combination indexing and update tests --- pymdp/jax/utils.py | 30 ++++++++++++++++++------------ test/test_utils.py | 17 +++++++++++++---- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/pymdp/jax/utils.py b/pymdp/jax/utils.py index 8ebb9125..8086c293 100644 --- a/pymdp/jax/utils.py +++ b/pymdp/jax/utils.py @@ -6,7 +6,9 @@ __author__: Conor Heins, Alexander Tschantz, Brennan Klein """ +import jax import jax.numpy as jnp +import numpy as np from typing import (Any, Callable, List, NamedTuple, Optional, Sequence, Union, Tuple) @@ -55,21 +57,23 @@ def get_combination_index(x, dims): Parameters ---------- - x: ``numpy.ndarray`` or ``list`` of ``int`` - ``numpy.ndarray`` or ``list`` of ``int`` of categorical values to be converted into combination index + x: ``numpy.ndarray`` or ``jax.Array`` of shape `(batch_size, act_dims)` + ``numpy.ndarray`` or ``jax.Array`` of categorical values to be converted into combination index dims: ``list`` of ``int`` ``list`` of ``int`` of categorical dimensions used for conversion Returns ---------- - index: ``int`` - ``int`` index of the combination + index: ``np.ndarray`` or `jax.Array` of shape `(batch_size)` + ``np.ndarray`` or `jax.Array` index of the combination """ - assert len(x) == len(dims) + assert isinstance(x, jax.Array) or isinstance(x, np.ndarray) + assert x.shape[-1] == len(dims) + index = 0 product = 1 for i in reversed(range(len(dims))): - index += x[i] * product + index += x[..., i] * product product *= dims[i] return index @@ -79,21 +83,23 @@ def index_to_combination(index, dims): Parameters ---------- - index: ``int`` - ``int`` index of the combination + index: ``np.ndarray`` or `jax.Array` of shape `(batch_size)` + ``np.ndarray`` or `jax.Array` index of the combination dims: ``list`` of ``int`` ``list`` of ``int`` of categorical dimensions used for conversion Returns ---------- - x: ``list`` of ``int`` - ```list`` of ``int`` of categorical values to be converted into combination index + x: ``numpy.ndarray`` or ``jax.Array`` of shape `(batch_size, act_dims)` + ``numpy.ndarray`` or ``jax.Array`` of categorical values to be converted into combination index """ x = [] for base in reversed(dims): x.append(index % base) - index //= base - return list(reversed(x)) + index = index // base + + x = np.flip(np.stack(x, axis=-1), axis=-1) + return x # def onehot(value, num_values): # arr = np.zeros(num_values) diff --git a/test/test_utils.py b/test/test_utils.py index feb5e560..a79b39f4 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -12,6 +12,7 @@ import numpy as np from pymdp import utils +from pymdp.jax import utils as jax_utils class TestUtils(unittest.TestCase): def test_obj_array_from_list(self): @@ -35,10 +36,14 @@ def test_get_combination_index(self): action_map = list(itertools.product(*[list(range(i)) for i in num_controls])) true_act_flat = action_map.index(tuple(act)) + batch_size = 10 + act_vec = np.array(act) + act_vec = np.broadcast_to(act_vec, (batch_size,) + act_vec.shape) + # find flat index without itertools - act_flat = utils.get_combination_index(act, num_controls) + act_flat = jax_utils.get_combination_index(act_vec, num_controls) - self.assertEqual(act_flat, true_act_flat) + self.assertTrue(np.allclose(act_flat, true_act_flat)) def test_index_to_combination(self): """ @@ -51,10 +56,14 @@ def test_index_to_combination(self): action_map = list(itertools.product(*[list(range(i)) for i in num_controls])) act_flat = action_map.index(tuple(act)) + batch_size = 10 + act_flat_vec = np.array([act_flat]) + act_flat_vec = np.broadcast_to(act_flat_vec, (batch_size,)) + # reconstruct categorical actions from flat index - act_reconstruct = utils.index_to_combination(act_flat, num_controls) + act_reconstruct = jax_utils.index_to_combination(act_flat_vec, num_controls) - self.assertEqual(act_reconstruct, act) + self.assertTrue(np.allclose(act_reconstruct - np.array([act]), 0)) if __name__ == "__main__": unittest.main() \ No newline at end of file From 179317e1022de67bbb2ed546c46eb42917217c78 Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Tue, 11 Jun 2024 16:36:52 -0500 Subject: [PATCH 050/196] handle no action dependency in B tensor flattening, use vectorized multi action encoding and decoding --- pymdp/jax/agent.py | 54 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 8c6e76a0..fdeb5ad4 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -420,9 +420,7 @@ def sample_action(self, q_pi: Array, rng_key=None): action = control.sample_policy( q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key ) - - if self.B_action_dependencies is not None: - action = self._decode_multi_actions(action, self.B_action_dependencies, self.num_controls_multi) + return action @vmap @@ -452,7 +450,39 @@ def multiaction_probabilities(self, q_pi: Array): # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan return marginals - + + """TODO: maybe use tree map""" + def decode_multi_actions(self, action): + """Decode flattened actions to multiple actions""" + if self.B_action_dependencies is None: + return action + + action_multi = jnp.zeros((self.batch_size, len(self.num_controls_multi))).astype(action.dtype) + for f, action_dependency in enumerate(self.B_action_dependencies): + if action_dependency == []: + continue + + num_controls = [self.num_controls_multi[d] for d in action_dependency] + action_multi_f = utils.index_to_combination(action[..., f], num_controls) + action_multi = action_multi.at[..., action_dependency].set(action_multi_f) + return action_multi + + """TODO: maybe use tree map""" + def encode_multi_actions(self, action_multi): + """Encode multiple actions to flattened actions""" + if self.B_action_dependencies is None: + return action_multi + + action = jnp.zeros((self.batch_size, len(self.num_controls))).astype(action_multi.dtype) + for f, action_dependency in enumerate(self.B_action_dependencies): + num_controls = [self.num_controls_multi[d] for d in action_dependency] + if num_controls == []: + continue + + action_f = utils.get_combination_index(action_multi[..., action_dependency], num_controls) + action = action.at[..., f].set(action_f) + return action + def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_dependencies, A, B): if A_dependencies is not None: A_dependencies = A_dependencies @@ -479,23 +509,15 @@ def _flatten_B_action_dims(self, B, B_action_dependencies): assert hasattr(B[0], "shape"), "Elements of B must be tensors and have attribute shape" B_flat = [] for B_f, action_dependency in zip(B, B_action_dependencies): + if action_dependency == []: + B_flat.append(jnp.expand_dims(B_f, axis=-1)) + continue + dims = [self.num_controls[d] for d in action_dependency] target_shape = list(B_f.shape)[:-len(action_dependency)] + [pymath.prod(dims)] B_flat.append(B_f.reshape(target_shape)) return B_flat - """NOTE: maybe use tree map""" - def _decode_multi_actions(self, action, B_action_dependencies, num_controls_multi): - action_multi = [None for _ in range(len(num_controls_multi))] - for f, action_dependency in enumerate(B_action_dependencies): - num_controls = [num_controls_multi[d] for d in action_dependency] - action_multi_f = utils.index_to_combination(action[f], num_controls) - for i, a in zip(action_dependency, action_multi_f): - action_multi[i] = a - - action_multi = jnp.array(action_multi) - return action_multi - def _get_default_params(self): method = self.inference_algo default_params = None From 616fa597296bf9594d3607d4a183f2f022994ac3 Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Tue, 11 Jun 2024 16:43:07 -0500 Subject: [PATCH 051/196] commit complex_action_dependency notebook --- examples/complex_action_dependency.ipynb | 302 +++++++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 examples/complex_action_dependency.ipynb diff --git a/examples/complex_action_dependency.ipynb b/examples/complex_action_dependency.ipynb new file mode 100644 index 00000000..fd16fe33 --- /dev/null +++ b/examples/complex_action_dependency.ipynb @@ -0,0 +1,302 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Complex action dependencies\n", + "\n", + "In this notebook, we will show some examples of how to specify and run agents with complex action dependencies. Complex action dependencies refer to situations where a state variables depends on multiple actions or no action. These state transitions tensors have shapes of the form: `[state_dim, *prev_state_dims, *prev_action_dims]`. \n", + "\n", + "The general strategy for dealing with this is to flatten the `prev_action_dims` while initializing the agent so that the new B tensor shapes are `[state_dim, *prev_state_dims, math.prod(prev_action_dims)]`. If a state has no action dependency, the new B tensor will have shape `[state_dim, *prev_state_dims, 1]` where 1 stands for a dummy action. All computations will be done in the flattened B tensors and actions will be sampled in the flattened action dimensions. After a flattened action is sampled, one can convert it back to the original action dimensions by calling `agent.decode_multi_actions`. To flatten multi actions, for example from collected data, one can call `agent.encode_multi_actions`." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from pprint import pprint\n", + "import itertools\n", + "import numpy as np\n", + "from jax import numpy as jnp\n", + "from jax import tree_util as jtu\n", + "\n", + "from pymdp.jax.agent import Agent\n", + "from pymdp.jax import distribution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multiple action dependencies\n", + "In this example, some states depend on multiple actions. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A_dependencies [[0]]\n", + "B_dependencies [[0], [1]]\n", + "B_action_dependencies [[0, 1], [0]]\n", + "original control dims [2, 3]\n", + "flattened control dims [6, 2]\n", + "original B shapes [(4, 4, 2, 3), (4, 4, 2)]\n", + "flattened B shapes [(1, 4, 4, 6), (1, 4, 4, 2)]\n", + "B normalized [Array(True, dtype=bool), Array(True, dtype=bool)]\n", + "B flat normalized [Array(True, dtype=bool), Array(True, dtype=bool)]\n", + "\n", + "\n", + "prior\n", + "[Array([[0. , 0.25, 0.25, 0.5 ]], dtype=float32),\n", + " Array([[0. , 0.25, 0.25, 0.5 ]], dtype=float32)]\n", + "post\n", + "[Array([[[0.5 , 0.12, 0.12, 0.25]]], dtype=float32),\n", + " Array([[[0. , 0.25, 0.25, 0.5 ]]], dtype=float32)]\n", + "action\n", + "Array([[0, 0]], dtype=int32)\n", + "action_multi\n", + "Array([[0, 0]], dtype=int32)\n", + "action_reconstruct\n", + "Array([[0, 0]], dtype=int32)\n" + ] + } + ], + "source": [ + "model = {\n", + " \"observations\": {\n", + " \"o1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"]},\n", + " },\n", + " \"controls\": {\"c1\": {\"elements\": [\"up\", \"down\"]}, \"c2\": {\"elements\": [\"left\", \"right\", \"stay\"]}},\n", + " \"states\": {\n", + " \"s1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"], \"controlled_by\": [\"c1\", \"c2\"]},\n", + " \"s2\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s2\"], \"controlled_by\": [\"c1\"]},\n", + " },\n", + "}\n", + "\n", + "B_action_dependencies = [\n", + " [list(model[\"controls\"].keys()).index(i) for i in s[\"controlled_by\"]] \n", + " for s in model[\"states\"].values()\n", + "]\n", + "num_controls = [len(c[\"elements\"]) for c in model[\"controls\"].values()]\n", + "\n", + "As, Bs = distribution.compile_model(model)\n", + "\n", + "# initialize tensor values\n", + "As[0][\"A\", \"A\"] = 1.0\n", + "As[0][\"B\", \"B\"] = 1.0\n", + "As[0][\"C\", \"C\"] = 1.0\n", + "As[0][\"D\", \"D\"] = 1.0\n", + "\n", + "for i, state in enumerate(model[\"states\"].keys()):\n", + " controls = list(itertools.product(*[\n", + " model[\"controls\"][c][\"elements\"] for c in model[\"states\"][state][\"controlled_by\"]\n", + " ]))\n", + " for control in controls:\n", + " Bs[i][*[\"B\", \"A\"], *control] = 1.0\n", + " Bs[i][*[\"C\", \"B\"], *control] = 1.0\n", + " Bs[i][*[\"D\", \"C\"], *control] = 1.0\n", + " Bs[i][*[\"D\", \"D\"], *control] = 1.0\n", + "\n", + "agent = Agent(\n", + " As, Bs,\n", + " B_action_dependencies=B_action_dependencies,\n", + " num_controls=num_controls,\n", + ")\n", + "\n", + "# dummy history\n", + "action = agent.policies[np.random.randint(0, len(agent.policies))]\n", + "observation = [np.random.randint(0, d, size=(1, 1)) for d in agent.num_obs]\n", + "qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), agent.D)\n", + "\n", + "prior, _ = agent.infer_empirical_prior(action, qs_hist)\n", + "qs = agent.infer_states(observation, None, prior, None)\n", + "\n", + "q_pi, G = agent.infer_policies(qs)\n", + "action = agent.sample_action(q_pi)\n", + "action_multi = agent.decode_multi_actions(action)\n", + "action_reconstruct = agent.encode_multi_actions(action_multi)\n", + "\n", + "print(\"A_dependencies\", agent.A_dependencies)\n", + "print(\"B_dependencies\", agent.B_dependencies)\n", + "print(\"B_action_dependencies\", agent.B_action_dependencies)\n", + "print(\"original control dims\", agent.num_controls_multi)\n", + "print(\"flattened control dims\", agent.num_controls)\n", + "print(\"original B shapes\", [a.data.shape for a in Bs])\n", + "print(\"flattened B shapes\", [a.shape for a in agent.B])\n", + "print(\"B normalized\", [jnp.isclose(a.data.sum(0), 1.).all() for a in Bs])\n", + "print(\"B flat normalized\", [jnp.isclose(a.sum(1), 1.).all() for a in agent.B])\n", + "\n", + "print(\"\\n\")\n", + "print(\"prior\")\n", + "pprint([p.round(2) for p in prior])\n", + "print(\"post\")\n", + "pprint([p.round(2) for p in qs])\n", + "print(\"action\")\n", + "pprint(action)\n", + "print(\"action_multi\")\n", + "pprint(action_multi)\n", + "print(\"action_reconstruct\")\n", + "pprint(action_reconstruct)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## No action dependency\n", + "\n", + "In this example, some states do not depend on any action." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A_dependencies [[0]]\n", + "B_dependencies [[0], [1]]\n", + "B_action_dependencies [[0, 1], []]\n", + "original control dims [2, 3]\n", + "flattened control dims [6, 1]\n", + "original B shapes [(4, 4, 2, 3), (4, 4)]\n", + "flattened B shapes [(1, 4, 4, 6), (1, 4, 4, 1)]\n", + "B normalized [Array(True, dtype=bool), Array(True, dtype=bool)]\n", + "B flat normalized [Array(True, dtype=bool), Array(True, dtype=bool)]\n", + "\n", + "\n", + "prior\n", + "[Array([[0. , 0.25, 0.25, 0.5 ]], dtype=float32),\n", + " Array([[0. , 0.25, 0.25, 0.5 ]], dtype=float32)]\n", + "post\n", + "[Array([[[0., 0., 1., 0.]]], dtype=float32),\n", + " Array([[[0. , 0.25, 0.25, 0.5 ]]], dtype=float32)]\n", + "action\n", + "Array([[0, 0]], dtype=int32)\n", + "action_multi\n", + "Array([[0, 0]], dtype=int32)\n", + "action_reconstruct\n", + "Array([[0, 0]], dtype=int32)\n" + ] + } + ], + "source": [ + "model = {\n", + " \"observations\": {\n", + " \"o1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"]},\n", + " },\n", + " \"controls\": {\"c1\": {\"elements\": [\"up\", \"down\"]}, \"c2\": {\"elements\": [\"left\", \"right\", \"stay\"]}},\n", + " \"states\": {\n", + " \"s1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"], \"controlled_by\": [\"c1\", \"c2\"]},\n", + " \"s2\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s2\"], \"controlled_by\": []},\n", + " },\n", + "}\n", + "\n", + "B_action_dependencies = [\n", + " [list(model[\"controls\"].keys()).index(i) for i in s[\"controlled_by\"]] \n", + " for s in model[\"states\"].values()\n", + "]\n", + "num_controls = [len(c[\"elements\"]) for c in model[\"controls\"].values()]\n", + "\n", + "As, Bs = distribution.compile_model(model)\n", + "\n", + "# initialize tensor values\n", + "As[0][\"A\", \"A\"] = 1.0\n", + "As[0][\"B\", \"B\"] = 1.0\n", + "As[0][\"C\", \"C\"] = 1.0\n", + "As[0][\"D\", \"D\"] = 1.0\n", + "\n", + "for i, state in enumerate(model[\"states\"].keys()):\n", + " controls = list(itertools.product(*[\n", + " model[\"controls\"][c][\"elements\"] for c in model[\"states\"][state][\"controlled_by\"]\n", + " ]))\n", + " for control in controls:\n", + " Bs[i][*[\"B\", \"A\"], *control] = 1.0\n", + " Bs[i][*[\"C\", \"B\"], *control] = 1.0\n", + " Bs[i][*[\"D\", \"C\"], *control] = 1.0\n", + " Bs[i][*[\"D\", \"D\"], *control] = 1.0\n", + "\n", + "agent = Agent(\n", + " As, Bs,\n", + " B_action_dependencies=B_action_dependencies,\n", + " num_controls=num_controls,\n", + ")\n", + "\n", + "# dummy history\n", + "action = agent.policies[np.random.randint(0, len(agent.policies))]\n", + "observation = [np.random.randint(0, d, size=(1, 1)) for d in agent.num_obs]\n", + "qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), agent.D)\n", + "\n", + "prior, _ = agent.infer_empirical_prior(action, qs_hist)\n", + "qs = agent.infer_states(observation, None, prior, None)\n", + "\n", + "q_pi, G = agent.infer_policies(qs)\n", + "action = agent.sample_action(q_pi)\n", + "action_multi = agent.decode_multi_actions(action)\n", + "action_reconstruct = agent.encode_multi_actions(action_multi)\n", + "\n", + "print(\"A_dependencies\", agent.A_dependencies)\n", + "print(\"B_dependencies\", agent.B_dependencies)\n", + "print(\"B_action_dependencies\", agent.B_action_dependencies)\n", + "print(\"original control dims\", agent.num_controls_multi)\n", + "print(\"flattened control dims\", agent.num_controls)\n", + "print(\"original B shapes\", [a.data.shape for a in Bs])\n", + "print(\"flattened B shapes\", [a.shape for a in agent.B])\n", + "print(\"B normalized\", [jnp.isclose(a.data.sum(0), 1.).all() for a in Bs])\n", + "print(\"B flat normalized\", [jnp.isclose(a.sum(1), 1.).all() for a in agent.B])\n", + "\n", + "print(\"\\n\")\n", + "print(\"prior\")\n", + "pprint([p.round(2) for p in prior])\n", + "print(\"post\")\n", + "pprint([p.round(2) for p in qs])\n", + "print(\"action\")\n", + "pprint(action)\n", + "print(\"action_multi\")\n", + "pprint(action_multi)\n", + "print(\"action_reconstruct\")\n", + "pprint(action_reconstruct)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pymdp", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 58ef4af52124845cd7d1cc6b311fd86cbbc27c6d Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Tue, 11 Jun 2024 21:16:27 -0500 Subject: [PATCH 052/196] add knapsack_demo notebook, planning not working --- examples/knapsack_demo.ipynb | 356 +++++++++++++++++++++++++++++++++++ 1 file changed, 356 insertions(+) create mode 100644 examples/knapsack_demo.ipynb diff --git a/examples/knapsack_demo.ipynb b/examples/knapsack_demo.ipynb new file mode 100644 index 00000000..07c6cd55 --- /dev/null +++ b/examples/knapsack_demo.ipynb @@ -0,0 +1,356 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Demo: Knapsack Problem\n", + "\n", + "In this notebook, we demonstrate how to solve the knapsack problem, a classic Operations Research problem. In this problem, we have a knapsack with fixed weight capacity and a set of items each associated with a weight and a value. We want fit items into the knapsack in a way such as the total value of all fitted items is as high as possible, however, the sum of item weights cannot exceed the knapsack weight capacity. \n", + "\n", + "While is problem is traditionally solved with linear programming, we can convert it into a contextual bandit problem (a simplified 1-stage Markov decision problem) and solve it using pymdp.\n", + "\n", + "Let us define our actions `a_i` as whether to include an item or not for each item i. The state `s_i` of the system is defined as whether an item is included or not, i.e., copying the action variables over to the corresponding state variables. We also need another state variable `z` which represents whether the knapsack capacity is exceeded. If an item is included, i.e., `s_i = 1`, we get a reward `r_i`, otherwise, we get a reward of 0 when `s_i = 0`. We can thus define our preference of including valueable items to be proportional to the expnenital of reward: `C[s_i] = softmax([0, r_i])`. Our preference on the capacity constraint variable `z` is to never violate it, i.e., `C[z] = [1, 0]`. Since the system is fully observable, we will set all observation matrices to diagonal." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from jax import numpy as jnp\n", + "from jax import tree_util as jtu\n", + "import jax.nn as nn\n", + "\n", + "from pymdp.jax.agent import Agent\n", + "from pymdp.jax import distribution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Specify model structure" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# knapsack problem setup\n", + "num_items = 5 # agents\n", + "max_capacity = 20\n", + "item_weights = np.random.uniform(2, 8, size=(num_items,))\n", + "rewards = np.random.uniform(0, 1, size=(num_items,))\n", + "\n", + "state_config = {\n", + " f\"s_{i}\": {\"elements\": [\"not enclude\", \"include\"], \"depends_on\": [f\"s_{i}\"], \"controlled_by\": [f\"a_{i}\"]} \n", + " for i in range(num_items)\n", + "}\n", + "state_config[\"z\"] = {\n", + " \"elements\": [\"not violated\", \"violated\"], \"depends_on\": [\"z\"], \"controlled_by\": [f\"a_{i}\" for i in range(num_items)]\n", + "} \n", + "\n", + "obs_config = {\n", + " k: {\"elements\": v[\"elements\"], \"depends_on\": [k]} for k, v in state_config.items()\n", + "}\n", + "\n", + "act_config = {\n", + " f\"a_{i}\": {\"elements\": [\"not enclude\", \"include\"]} \n", + " for i in range(num_items)\n", + "}\n", + "\n", + "model = {\n", + " \"observations\": obs_config,\n", + " \"controls\": act_config,\n", + " \"states\": state_config,\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Specify model parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A shapes [(2, 2), (2, 2), (2, 2), (2, 2), (2, 2), (2, 2)]\n", + "B shapes [(2, 2, 2), (2, 2, 2), (2, 2, 2), (2, 2, 2), (2, 2, 2), (2, 2, 2, 2, 2, 2, 2)]\n" + ] + } + ], + "source": [ + "As, Bs = distribution.compile_model(model)\n", + "\n", + "print(\"A shapes\", [a.data.shape for a in As])\n", + "print(\"B shapes\", [a.data.shape for a in Bs])" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A shapes [(2, 2), (2, 2), (2, 2), (2, 2), (2, 2), (2, 2)]\n", + "B shapes [(2, 2, 2), (2, 2, 2), (2, 2, 2), (2, 2, 2), (2, 2, 2), (2, 2, 2, 2, 2, 2, 2)]\n", + "A normalized [True, True, True, True, True, True]\n", + "B normalized [True, True, True, True, True, True]\n", + "C normalized [True, True, True, True, True, True]\n" + ] + } + ], + "source": [ + "def create_identity_transition_factor(mat):\n", + " for i in range(mat.shape[1]):\n", + " mat[:, i] = np.eye(len(mat))\n", + " return mat\n", + "\n", + "def create_constraint_factor_z_greater_than(act_dim, maximum, num_items, weights):\n", + " # Create an array of shape (2, act_dim, act_dim, ..., act_dim)\n", + " tensor_shape = (2,) + (act_dim,) * num_items\n", + " \n", + " # Create an array with indices from 0 to act_dim - 1 along each dimension\n", + " indices = np.indices(tensor_shape[1:])\n", + "\n", + " # Reshape weights to fit indices shape\n", + " weights_reshaped = np.array(weights).reshape((-1,) + (1,) * (indices.ndim - 1))\n", + " # Multiply weights with matrix that conforms to constraint\n", + " result = np.array(indices == 1) * weights_reshaped\n", + "\n", + " # Calculate the total for each combination of actions\n", + " total = np.sum(result, axis=0)\n", + " \n", + " # Create the tensor based on the total hours condition\n", + " tensor = np.where(total > maximum, 1, 0)\n", + "\n", + " # Stack the tensor along the first axis to create the final tensor\n", + " tensor = np.stack((1 - tensor, tensor), axis=0)\n", + "\n", + " # Stack to make a copy for self state\n", + " # tensor = np.expand_dims(tensor, axis=1)\n", + " tensor = np.stack([tensor, tensor], axis=1)\n", + " return tensor\n", + "\n", + "# update A tensor\n", + "for i in range(len(As)):\n", + " As[i].data = np.eye(len(As[i].data))\n", + "\n", + "# update B tensors\n", + "for i in range(num_items):\n", + " Bs[i].data = create_identity_transition_factor(Bs[i].data)\n", + "\n", + "Bs[-1].data = create_constraint_factor_z_greater_than(2, max_capacity, num_items, item_weights)\n", + "\n", + "# create C tensors\n", + "preferences = nn.softmax(np.stack([np.zeros_like(rewards), rewards], axis=-1), axis=-1)\n", + "Cs = [None for _ in range(len(As))]\n", + "for i in range(len(As)):\n", + " Cs[i] = preferences[i]\n", + " \n", + "Cs[-1] = np.array([1., 0]) # capacity constraint cannot be violated\n", + "\n", + "print(\"A shapes\", [a.data.shape for a in As])\n", + "print(\"B shapes\", [a.data.shape for a in Bs])\n", + "\n", + "print(\"A normalized\", [np.isclose(a.data.sum(0), 1.).all() for a in As])\n", + "print(\"B normalized\", [np.isclose(a.data.sum(0), 1.).all() for a in As])\n", + "print(\"C normalized\", [np.isclose(a.sum(0), 1.).all() for a in Cs])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Run agent" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": {}, + "outputs": [], + "source": [ + "B_action_dependencies = [\n", + " [list(model[\"controls\"].keys()).index(i) for i in s[\"controlled_by\"]] \n", + " for s in model[\"states\"].values()\n", + "]\n", + "num_controls = [len(c[\"elements\"]) for c in model[\"controls\"].values()]\n", + "\n", + "agent = Agent(\n", + " As, Bs, Cs,\n", + " B_action_dependencies=B_action_dependencies,\n", + " num_controls=num_controls,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": {}, + "outputs": [], + "source": [ + "qs = jtu.tree_map(lambda x: jnp.expand_dims(x, axis=0), agent.D)\n", + "q_pi, G = agent.infer_policies(qs)\n", + "action = agent.sample_action(q_pi)\n", + "action_multi = agent.decode_multi_actions(action)" + ] + }, + { + "cell_type": "code", + "execution_count": 162, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "best action [[1 1 1 1 1 0]]\n", + "best action multi [[0 0 0 0 0]]\n", + "item weights\n", + "[4.29400262 6.53872627 7.64026691 3.47688306 4.93437645]\n", + "item rewards\n", + "[0.17008879 0.85895517 0.66385495 0.90542861 0.28839602]\n" + ] + } + ], + "source": [ + "print(\"best action\", action)\n", + "print(\"best action multi\", action_multi)\n", + "print(\"item weights\")\n", + "print(item_weights)\n", + "print(\"item rewards\")\n", + "print(rewards)" + ] + }, + { + "cell_type": "code", + "execution_count": 166, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "action [ 1 1 1 1 1 28]\n", + "action multi [1, 1, 1, 0, 0]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 27]\n", + "action multi [1, 1, 0, 1, 1]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 26]\n", + "action multi [1, 1, 0, 1, 0]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 25]\n", + "action multi [1, 1, 0, 0, 1]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 24]\n", + "action multi [1, 1, 0, 0, 0]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 22]\n", + "action multi [1, 0, 1, 1, 0]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 21]\n", + "action multi [1, 0, 1, 0, 1]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 20]\n", + "action multi [1, 0, 1, 0, 0]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 19]\n", + "action multi [1, 0, 0, 1, 1]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 18]\n", + "action multi [1, 0, 0, 1, 0]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 17]\n", + "action multi [1, 0, 0, 0, 1]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 16]\n", + "action multi [1, 0, 0, 0, 0]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 14]\n", + "action multi [0, 1, 1, 1, 0]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 13]\n", + "action multi [0, 1, 1, 0, 1]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 12]\n", + "action multi [0, 1, 1, 0, 0]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 11]\n", + "action multi [0, 1, 0, 1, 1]\n", + "4.1886554\n", + "action [ 1 1 1 1 1 10]\n", + "action multi [0, 1, 0, 1, 0]\n", + "4.1886554\n", + "action [1 1 1 1 1 9]\n", + "action multi [0, 1, 0, 0, 1]\n", + "4.1886554\n", + "action [1 1 1 1 1 8]\n", + "action multi [0, 1, 0, 0, 0]\n", + "4.1886554\n", + "action [1 1 1 1 1 7]\n", + "action multi [0, 0, 1, 1, 1]\n", + "4.1886554\n", + "action [1 1 1 1 1 6]\n", + "action multi [0, 0, 1, 1, 0]\n", + "4.1886554\n" + ] + } + ], + "source": [ + "from pymdp import utils\n", + "for i, idx in enumerate(np.argsort(q_pi[0])[::-1]):\n", + " print(\"action\", agent.policies[idx, 0])\n", + " print(\"action multi\", utils.index_to_combination(agent.policies[idx, 0][-1].tolist(), agent.num_controls_multi))\n", + " print(G[0, idx])\n", + " if i == 20:\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pymdp", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 21e3b587131104dc6a5c92395dacb672763c9c61 Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Tue, 11 Jun 2024 22:17:11 -0500 Subject: [PATCH 053/196] add function to construct flattend policies --- pymdp/jax/agent.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index fdeb5ad4..68d6c628 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -145,6 +145,7 @@ def __init__( self.num_modalities = len(A) self.num_factors = len(B) self.num_controls = num_controls + self.num_controls_multi = num_controls self.batch_size = batch_size # extract dependencies for A and B matrices @@ -164,6 +165,10 @@ def __init__( self.num_controls_multi = num_controls if B_action_dependencies is not None: B = self._flatten_B_action_dims(B, self.B_action_dependencies) + policies = control.construct_policies( + self.num_controls_multi, self.num_controls_multi, policy_len, control_fac_idx + ) + policies = self._construct_flattend_policies(policies, self.B_action_dependencies) # extract shapes from A and B self.num_states = jtu.tree_map(lambda x: x.shape[1], B) @@ -513,11 +518,25 @@ def _flatten_B_action_dims(self, B, B_action_dependencies): B_flat.append(jnp.expand_dims(B_f, axis=-1)) continue - dims = [self.num_controls[d] for d in action_dependency] + dims = [self.num_controls_multi[d] for d in action_dependency] target_shape = list(B_f.shape)[:-len(action_dependency)] + [pymath.prod(dims)] B_flat.append(B_f.reshape(target_shape)) return B_flat + """TODO: make better maybe invertible mapping between action spaces""" + def _construct_flattend_policies(self, policies, B_action_dependencies): + policies_flat = [] + for action_dependency in B_action_dependencies: + if action_dependency == []: + continue + + dims = [self.num_controls_multi[d] for d in action_dependency] + policies_flat.append( + utils.get_combination_index(policies[..., action_dependency], dims) + ) + policies_flat = jnp.stack(policies_flat, axis=-1) + return policies_flat + def _get_default_params(self): method = self.inference_algo default_params = None From bb1ac497ccd1d52c23731a478ac3a4a36220243d Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Tue, 11 Jun 2024 22:17:33 -0500 Subject: [PATCH 054/196] commit working knapsack demo notebook --- examples/knapsack_demo.ipynb | 144 +++++++++++++++-------------------- 1 file changed, 61 insertions(+), 83 deletions(-) diff --git a/examples/knapsack_demo.ipynb b/examples/knapsack_demo.ipynb index 07c6cd55..c8e876ab 100644 --- a/examples/knapsack_demo.ipynb +++ b/examples/knapsack_demo.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -37,16 +37,32 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "item rewards [0.64589411 0.43758721 0.891773 0.96366276 0.38344152]\n", + "item weights [6.74406752 7.57594683 7.01381688 6.72441591 6.118274 ]\n", + "item weight sum 34.17652114353595\n" + ] + } + ], "source": [ "# knapsack problem setup\n", - "num_items = 5 # agents\n", + "np.random.seed(0)\n", + "num_items = 5\n", "max_capacity = 20\n", - "item_weights = np.random.uniform(2, 8, size=(num_items,))\n", + "item_weights = max_capacity / num_items + np.random.uniform(0, 5, size=(num_items,))\n", "rewards = np.random.uniform(0, 1, size=(num_items,))\n", "\n", + "print(\"item rewards\", rewards)\n", + "print(\"item weights\", item_weights)\n", + "print(\"item weight sum\", item_weights.sum())\n", + "\n", + "# mdp config\n", "state_config = {\n", " f\"s_{i}\": {\"elements\": [\"not enclude\", \"include\"], \"depends_on\": [f\"s_{i}\"], \"controlled_by\": [f\"a_{i}\"]} \n", " for i in range(num_items)\n", @@ -80,7 +96,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -101,7 +117,7 @@ }, { "cell_type": "code", - "execution_count": 117, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -132,7 +148,7 @@ " # Reshape weights to fit indices shape\n", " weights_reshaped = np.array(weights).reshape((-1,) + (1,) * (indices.ndim - 1))\n", " # Multiply weights with matrix that conforms to constraint\n", - " result = np.array(indices == 1) * weights_reshaped\n", + " result = np.array(indices == (act_dim - 1)) * weights_reshaped\n", "\n", " # Calculate the total for each combination of actions\n", " total = np.sum(result, axis=0)\n", @@ -143,8 +159,7 @@ " # Stack the tensor along the first axis to create the final tensor\n", " tensor = np.stack((1 - tensor, tensor), axis=0)\n", "\n", - " # Stack to make a copy for self state\n", - " # tensor = np.expand_dims(tensor, axis=1)\n", + " # make a copy for self state \n", " tensor = np.stack([tensor, tensor], axis=1)\n", " return tensor\n", "\n", @@ -183,7 +198,7 @@ }, { "cell_type": "code", - "execution_count": 123, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -202,7 +217,7 @@ }, { "cell_type": "code", - "execution_count": 124, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -214,19 +229,19 @@ }, { "cell_type": "code", - "execution_count": 162, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "best action [[1 1 1 1 1 0]]\n", - "best action multi [[0 0 0 0 0]]\n", + "best action [[0 0 1 1 1 7]]\n", + "best action multi [[0 0 1 1 1]]\n", "item weights\n", - "[4.29400262 6.53872627 7.64026691 3.47688306 4.93437645]\n", + "[6.74406752 7.57594683 7.01381688 6.72441591 6.118274 ]\n", "item rewards\n", - "[0.17008879 0.85895517 0.66385495 0.90542861 0.28839602]\n" + "[0.64589411 0.43758721 0.891773 0.96366276 0.38344152]\n" ] } ], @@ -241,86 +256,49 @@ }, { "cell_type": "code", - "execution_count": 166, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "action [ 1 1 1 1 1 28]\n", - "action multi [1, 1, 1, 0, 0]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 27]\n", - "action multi [1, 1, 0, 1, 1]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 26]\n", - "action multi [1, 1, 0, 1, 0]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 25]\n", - "action multi [1, 1, 0, 0, 1]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 24]\n", - "action multi [1, 1, 0, 0, 0]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 22]\n", - "action multi [1, 0, 1, 1, 0]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 21]\n", - "action multi [1, 0, 1, 0, 1]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 20]\n", - "action multi [1, 0, 1, 0, 0]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 19]\n", - "action multi [1, 0, 0, 1, 1]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 18]\n", - "action multi [1, 0, 0, 1, 0]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 17]\n", - "action multi [1, 0, 0, 0, 1]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 16]\n", - "action multi [1, 0, 0, 0, 0]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 14]\n", - "action multi [0, 1, 1, 1, 0]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 13]\n", - "action multi [0, 1, 1, 0, 1]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 12]\n", - "action multi [0, 1, 1, 0, 0]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 11]\n", - "action multi [0, 1, 0, 1, 1]\n", - "4.1886554\n", - "action [ 1 1 1 1 1 10]\n", - "action multi [0, 1, 0, 1, 0]\n", - "4.1886554\n", - "action [1 1 1 1 1 9]\n", - "action multi [0, 1, 0, 0, 1]\n", - "4.1886554\n", - "action [1 1 1 1 1 8]\n", - "action multi [0, 1, 0, 0, 0]\n", - "4.1886554\n", - "action [1 1 1 1 1 7]\n", + "\n", + "action [0 0 1 1 1 7]\n", "action multi [0, 0, 1, 1, 1]\n", - "4.1886554\n", - "action [1 1 1 1 1 6]\n", + "efe: 3.76, reward: 2.24\n", + "\n", + "action [ 1 0 0 1 1 19]\n", + "action multi [1, 0, 0, 1, 1]\n", + "efe: 3.66, reward: 1.99\n", + "\n", + "action [ 1 0 1 0 1 21]\n", + "action multi [1, 0, 1, 0, 1]\n", + "efe: 3.63, reward: 1.92\n", + "\n", + "action [0 0 1 1 0 6]\n", "action multi [0, 0, 1, 1, 0]\n", - "4.1886554\n" + "efe: 3.57, reward: 1.86\n", + "\n", + "action [ 1 0 0 1 0 18]\n", + "action multi [1, 0, 0, 1, 0]\n", + "efe: 3.47, reward: 1.61\n", + "\n", + "action [ 1 0 1 0 0 20]\n", + "action multi [1, 0, 1, 0, 0]\n", + "efe: 3.44, reward: 1.54\n" ] } ], "source": [ + "# compare actions\n", "from pymdp import utils\n", "for i, idx in enumerate(np.argsort(q_pi[0])[::-1]):\n", - " print(\"action\", agent.policies[idx, 0])\n", - " print(\"action multi\", utils.index_to_combination(agent.policies[idx, 0][-1].tolist(), agent.num_controls_multi))\n", - " print(G[0, idx])\n", - " if i == 20:\n", + " action_multi_f = utils.index_to_combination(agent.policies[idx, 0][-1].tolist(), agent.num_controls_multi)\n", + " print(\"\\naction\", agent.policies[idx, 0])\n", + " print(\"action multi\", action_multi_f)\n", + " print(\"efe: {:.2f}, reward: {:.2f}\".format(G[0, idx], np.sum(rewards * action_multi_f)))\n", + " if i == 5:\n", " break" ] }, From 4626c746ff08baa063d492c1e5a24717f7f1a92e Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Wed, 12 Jun 2024 09:09:08 +0200 Subject: [PATCH 055/196] add some docstring --- pymdp/jax/envs/rollout.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/pymdp/jax/envs/rollout.py b/pymdp/jax/envs/rollout.py index 84b67243..737f6f5f 100644 --- a/pymdp/jax/envs/rollout.py +++ b/pymdp/jax/envs/rollout.py @@ -11,10 +11,25 @@ def rollout(agent: Agent, env: PyMDPEnv, num_timesteps: int, rng_key: jr.PRNGKey """ Rollout an agent in an environment for a number of timesteps. - agent: pymdp agent to generate actions - env: pymdp environment to interact with - num_timesteps: number of timesteps to rollout for - rng_key: random key to use for sampling actions + Parameters + ---------- + agent: ``Agent`` + Agent to interact with the environment + env: ``PyMDPEnv` + Environment to interact with + num_timesteps: ``int`` + Number of timesteps to rollout for + rng_key: ``PRNGKey`` + Random key to use for sampling actions + + Returns + ---------- + last: ``dict`` + Carry dictionary from the last timestep + info: ``dict`` + Dictionary containing information about the rollout, i.e. executed actions, observations, beliefs, etc. + env: ``PyMDPEnv`` + Environment state after the rollout """ # get the batch_size of the agent batch_size = agent.A[0].shape[0] @@ -73,12 +88,13 @@ def step_fn(carry, x): # initial belief qs_0 = jtu.tree_map(lambda x: jnp.expand_dims(x, -2), agent.D) - # initial action - # TODO better fill with zeros? + # infer initial action to get the right shape qpi_0, _ = agent.infer_policies(qs_0) keys = jr.split(rng_key, batch_size + 1) rng_key = keys[0] action_t = agent.sample_action(qpi_0, rng_key=keys[1:]) + # but set it to zeros + action_t *= 0 initial_carry = { "qs": qs_0, From 55144f9a0085524d91b2d83b4265e1da22bf43b3 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Wed, 12 Jun 2024 09:09:22 +0200 Subject: [PATCH 056/196] add some more comments in the notebook --- examples/graph_worlds_demo.ipynb | 91 +++++++++++++++++++++++++------- 1 file changed, 72 insertions(+), 19 deletions(-) diff --git a/examples/graph_worlds_demo.ipynb b/examples/graph_worlds_demo.ipynb index af5c4ced..27f13d2e 100644 --- a/examples/graph_worlds_demo.ipynb +++ b/examples/graph_worlds_demo.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -30,12 +30,12 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 2, "metadata": {}, "outputs": [ { "data": { - "image/png": "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gM/Iz8/XgAEDZLfbtWLFCsIkTMuvA6UkDekUradvbemVaz1za4wGd2LuJFBRkZGRmjVrlpKTk9WvXz899dRTatmypd577z05nU6jywNMze12629/+5uSkpK0evVqRUVFGV0SUCq/D5SS9FjPFnp1YFsF262lrvwujc1qUbDdqukD2+rRnuVvxwjgYtHR0Zo/f7527dqlzp07a/jw4Wrbtq1WrFhBc3SgFK+//roWLlyo+fPn6/rrrze6HKBMfj2H8kKHTuZp/KokJew7IZvVUuZinaLjsc3raeqAtjzmBrzou+++0/PPP6/PPvtM119/vaZOnarevXvToBn43X/+8x/dfvvtevrppzV9+nSjywHKFVCBskhyarYWJ6Zo8940paTn6dx/ARadbVres2Wk4rtEq3lkmFFlAn5vy5YtGj9+vLZu3aoePXpo2rRp6tq1q9FlAYb65Zdf1KlTJ3Xu3Flr166VzWYzuiSgXAEZKM+V63DqQHquCpwuVbNb1SQilB1wgCrkdru1bt06Pf/88/rxxx/Vr18/vfzyy7r22muNLg2octnZ2eratasKCgqUmJiounXrGl0SUCEBHygBmIPL5dKyZcs0YcIE7d+/X/fdd58mT56sZs2aGV0aUCVcLpfuvvtubdq0SYmJibrmmmuMLgmosIBYlAPA/KxWq+67777iXXe++OILtWrVSg8//LAOHz5sdHlApZs8ebLWrFmjxYsXEybhcxihBGBKp0+f1pw5czRt2jTl5eXp8ccf13PPPceuO/BLq1at0sCBA/Xyyy/r+eefN7oc4JIRKAGY2oW77jz99NN68sknFRbGgjn4h6SkJHXt2lV9+vTRsmXL6HYAn0SgBOAT0tLSNG3aNL355puqXbu2xo8fr4cffljVq1c3ujTgsqWnp6tTp04KCwvT1q1bFRoaanRJwGVhDiUAn3Durjv9+/fXmDFj1LJlS7377rvsugOf5HQ6NXjwYGVlZWnNmjWESfg0AiUAnxIdHa133nlHu3fvVpcuXfTQQw+pTZs2+uCDD+RyuYwuD6iwZ599Vl988YVWrFihJk2aGF0O4BECJQCfFBMTo+XLl+u7775T06ZNde+996pTp0769NNP2c4RprdgwQLNmjVLr7/+um6++WajywE8RqAE4NM6dOigTz75RFu2bFH16tUVFxenm2++WVu3bjW6NKBEiYmJGjlypB566CE9+uijRpcDeAWBEoBfuOmmm/TVV19p7dq1yszMVLdu3dSvXz/98MMPRpcGFDt69KgGDhyoDh06aM6cOazoht8gUALwGxaLRX379tWOHTu0ZMkS/fzzz2rfvr3uv/9+7du3z+jyEOAcDocGDhwoSfrwww8VHBxscEWA9xAoAfgdq9WqIUOGaPfu3Xr77bf15ZdfqlWrVho5ciS77sAQbrdbo0aN0s6dO7Vq1So1bNjQ6JIAryJQAvBbQUFB+tvf/qbk5GRNnz5dH374oZo3b65nnnlG6enpRpeHADJ79my99957mjt3rm644QajywG8jsbmAAJGVlZW8a47FotFTz/9tEaPHs2uO6hUn3/+uW699Vb9/e9/18yZM40uB6gUBEoAAef48ePFu+7UqlWLXXdQaX799Vd16tRJHTp00Pr162W3240uCagUBEoAAevQoUOaPHmy3nvvPTVq1EgTJ07U//t//49f+vCKnJwcdevWTTk5Odq+fbvCw8ONLgmoNMyhBBCwGjdurHnz5mnXrl3q2rWr/vrXv6p169Zavnw5u+7AI263Ww888ID279+vjz76iDAJv0egBBDwYmJitGzZMu3YsUPNmjXT4MGD1bFjR3bdwWV75ZVX9OGHH2rhwoVq3bq10eUAlY5ACQC/a9++vdavX68vv/xSISEhiouLU48ePfT1118bXRp8yEcffaQJEyZo0qRJuuuuu4wuB6gSBEoAuEBsbKwSEhK0bt06ZWVlqXv37rrjjjvYdQfl2r17t+Lj4zVgwABNmDDB6HKAKkOgBIASWCwW9enTp3jXnT179qhdu3a67777lJycbHR5MKFTp07pzjvv1FVXXaUFCxbIauVXLAIH3+0AUIZzd92ZO3euEhISdM0112jkyJH67bffjC4PJlFYWKghQ4bo5MmTWrNmDb1NEXAIlABQAUFBQRoxYoSSk5P1j3/8o3jXnaefflonTpwwujwYbNy4cdq4caOWLVumq6++2uhygCpHH0oAuAxZWVl67bXXNHPmTFksFo0ZM0ZPPfUUI1MBaPHixYqPj9esWbP05JNPGl0OYAgCJQB44Pjx43r11Vc1Z84chYWFafz48Ro1ahS77gSIb7/9VrGxsRo8eLDee+89WSwWo0sCDEGgBAAvOHfXnYYNG2rixIl64IEH2HXHj6Wmpqpjx45q1KiRtmzZwh8RCGjMoQQALyjadWf37t3q1q2bRowYwa47fqygoEB33323nE6nVq1aRZhEwCNQAoAXtWzZUkuXLtWOHTvUvHnz4l13PvnkE3bd8RNut1uPPfaYtm/frpUrV6pRo0ZGlwQYjkAJAJWgffv2Wrdunb788kuFhoaqT58+6tGjh7766iujS4OH3n77bc2bN09vv/22unbtanQ5gCkQKAGgEsXGxurLL7/U+vXrlZ2drdjYWPXt21fff/+90aXhMnz55Zd64okn9MQTT+jBBx80uhzANFiUAwBVxOVy6YMPPtCECROUnJyswYMHa8qUKWrRooXRpaECDh48qE6dOqlNmzb67LPPFBQUZHRJgGkwQgkAVcRqtWrw4MHatWuX5s2bp6+//lrXXHON/va3v7Hrjsnl5eXprrvuUmhoqJYvX06YBC5AoASAKhYUFKS//vWvxbvurFy5Us2bN9eYMWPYdceE3G63hg8frr1792rNmjWqV6+e0SUBpsMjbwAwWFZWlmbNmqWZM2dKksaMGaPRo0erVq1aBlcGSXr11Vc1btw4rVixQnfffbfR5QCmRKAEAJM4ceKEpk2bpjlz5qhmzZoaP368HnnkEXocGmj9+vW644479Pzzz2vKlClGlwOYFoESAEzmt99+0+TJk/Xuu++qYcOGevHFF/Xggw+y604V27Nnj2644Qb16NFDq1evltXKLDGgNARKADCpvXv3auLEiVq6dKlatGihKVOmaNCgQQSbKpCRkaHOnTvLZrNp27ZtTD8AysH/lQDApFq2bKklS5Zo586datGihYYMGaLrr79e69evZ9edSlRYWKihQ4cqLS1Na9asIUwCFUCgBACTa9eundatW6eEhASFhYWpb9++uummm5SQkGB0aX5pwoQJ+vTTT4tHhgGUj0AJAD6ie/fu2rJli9avX6+cnBzddNNN6tOnj3bu3Gl0aX5j2bJlmjZtmqZPn67bbrvN6HIAn0GgBAAfYrFYFBcXp++++07Lli3TL7/8og4dOmjIkCHau3ev0eX5tJ07d+rBBx/U0KFDNWbMGKPLAXwKi3IAwIc5nU4tWLBAkyZN0tGjR/Xggw/qxRdfVOPGjY0uzaekpaWpU6dOql+/vhISElSjRg2jSwJ8CoESAPxAfn6+3nrrLU2dOlXZ2dl65JFHNG7cONWvX9/o0kzvzJkz6tWrl37++Wd9++23hHHgMhAoAcCPZGdna9asWZoxY4bcbrfGjBmjp556ipXKZXj00Uc1b948ff755+revbvR5QA+iUAJAH7oxIkTevXVVzV79mzVrFlT48aN0yOPPMKj3AvMnTtXI0eO1Ny5czVixAijywF8FoESAPzYb7/9pilTpmj+/Plq0KBB8a47QUFBRpdmuK+//lo9e/bUiBEjNGfOHKPLAXwagRIAAkBycrImTpyoJUuWqHnz5poyZYruvffegN1159ChQ+rUqZNiYmK0ceNGAjbgocD8PwkABJgWLVro/fff1/fff6+YmBjdd9996tChg9atWxdwu+6cPn1aAwYMUHBwsD744APCJOAFBEoACCDXXXed1q5dq4SEBNWqVUt33HGHYmNjA2bXHbfbrREjRmj37t1avXq1IiMjjS4J8AsESgAIQEW77nzyySfKy8vTTTfdpLi4OL/fdWfmzJlavHix3nvvPbVv397ocgC/QaAEgABlsVh0++2369tvv9Xy5cu1f/9+dejQQYMHD9aePXuMLs/rPvvsMz333HMaO3asBg8ebHQ5gF9hUQ4AQNIfu+689NJLOnLkiB544AFNnDjRLxp9Jycn64YbbtCNN96ojz76SDabzeiSAL9CoAQAnCc/P19vv/22XnnlFWVlZemRRx7R+PHjfXbXnaysLHXp0kUul0uJiYmqXbu20SUBfodACQAoUXZ2tl5//XXNmDFDLpdLTz31lMaMGeNTu+64XC7ddddd2rJli7755hvFxMQYXRLgl5hDCQAoUVhYmCZMmKD9+/fr4Ycf1j/+8Q81bdpUM2bM0OnTp40ur0ImTZqktWvXasmSJYRJoBIxQgkAqJDDhw9rypQpeueddxQVFaUXX3xRw4cPN20fxxUrVmjQoEGaNm2axo4da3Q5gF8jUAIALsm+ffv04osvFu+6M3nyZA0ePNhUu+78+OOP6tq1q/r166clS5bIYrEYXRLg1wiUAIDL8sMPP+iFF17Q2rVrde211+qVV15R3759DQ9vJ06cUKdOnVS3bl199dVXCgkJMbQeIBCY589JAIBPue666/Txxx/rq6++Up06ddSvXz/Fxsbqyy+/9Pq9ch1O7TqSqZ0pp7TrSKZyHc4S33fmzBnde++9ysnJ0apVqwiTQBVhhBIA4DG3260NGzZo/Pjx2rFjh2677TZN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zz//rO3bt2vw4MFavHixrr/+erVu3VrTpk3TwYMHjS4T8BiBEgBgallZWXK73T4zQlkSi8Wijh076vXXX9fhw4e1fv16tW/fXlOmTFGTJk3Uo0cPzZs3T6dOnTK6VOCyECgBAKaWmZkpST4dKM9lt9sVFxenxYsXKzU1VQsWLFBwcLAefvhhNWjQQPfcc49Wr14th8NhdKlAhREoAQCm5m+B8lxhYWH6y1/+og0bNujQoUOaNm2afvnlFw0YMEANGzbUqFGj9PXXXzPfEqZHoAQAmFpRoPTFOZSXolGjRnrqqae0c+dOJSUlaeTIkVq3bp26d++uZs2aacKECdqzZ4/RZQIlIlACAEwtIyNDkn+OUJamTZs2mjZtmg4cOKDNmzfrlltu0b/+9S+1atVKN9xwg/71r38pLS3N6DKBYgRKAICp+fMj7/JYrVbdfPPNeuedd3Ts2DEtX75cDRs21JgxY9SoUSP17dtXS5YsUV5entGlIsARKAEAppaZmamgoCBVr17d6FIMVaNGDQ0aNEhr1qzR0aNH9cYbb+jUqVO6//77FRUVpQceeEAbN25UYWGh0aUiABEoAQCmlpmZqTp16shisRhdimnUq1dPo0aN0tatW7Vv3z4988wz+vrrr9W7d281btxYTz/9tL7//nsW86DKECgBAKZmxn28zaRZs2Z68cUXtXfvXm3btk133323FixYoPbt2+vaa6/V9OnTdejQIaPLhJ8jUAIATM2Xtl00ksViUefOnfXGG2/oyJEjWrt2rVq3bq1Jkybpqquu0i233KJ33323eE4q4E0ESgCAqREoL11QUJD69u2rpUuXKjU1Ve+++64sFov++te/KioqSvfee68+/vhjFRQUGF0q/ASBEgBgakVzKHF5atWqpQceeECbNm1SSkqKpkyZoj179qh///5q1KiRHn30Uf3v//4v8y3hEYub7yAAgIl17dpV11xzjd59912jS/ErP/74oxYtWqTFixfryJEjatasmeLj4zV06FC1aNHC6PLgYxihBACYGo+8K8e1116rf/zjH0pJSdGmTZsUGxur1157TS1btlSXLl00Z84cHT9+3Ogy4SMIlAAAUyNQVi6bzaZbbrlF7733no4dO6alS5eqfv36evLJJ9WoUSP169dPy5cv1+nTp40uFSZGoAQAmBpzKKtOSEiIBg8erI8//lhHjhzRrFmzdPz4cQ0ePFhRUVEaPny4Pv/8c7lcLqNLhckQKAEApnXmzBnl5uYyQmmA+vXr67HHHtO2bdu0d+9ejR49Wlu2bNGf//xnXXXVVXruueeUlJRkdJkwCQIlAMC0srKyJAXmPt5m0qJFC7300kvat2+ftm7dqv79++udd97Rtddeq+uuu04zZszQ4cOHjS4TBiJQAgBMq6gJN4HSHCwWi7p27ao5c+bo6NGjWrNmjWJiYvTCCy+ocePG6tWrlxYsWKDs7GyjS0UVI1ACAEyLQGle1apVU//+/bV8+XIdO3ZM8+bNU2FhoR544AFFRUXpvvvu07p163TmzBmjS0UVIFACAEyrKFCyKMfc6tSpo4ceekibN2/WwYMHNXHiRCUlJemOO+7QFVdcoSeeeELffPMNzdP9GIESAGBaGRkZkhih9CXR0dHFC3Z27typv/zlL1qxYoU6d+6sVq1aacqUKdq/f7/RZcLLCJQAANPikbfvslgsateunWbMmKFDhw5pw4YN6tKli6ZPn65mzZqpW7dueuutt5Senm50qfACAiUAwLQyMzNVvXp1VatWzehS4AGbzabevXtrwYIFSk1N1eLFi1W7dm09/vjjatiwoe666y6tWLFC+fn5RpeKy0SgBACYFk3N/U9oaKjuv/9+rV+/XocPHy5uOTRo0CA1aNBAI0aM0JYtW2ie7mMIlAAA08rIyOBxtx+LiorSE088oe3bt+unn37S448/ro0bN+rmm29WkyZNNG7cOO3evdvoMlEBBEoAgGmxj3fgKFqw88svvyghIUF9+vTRv//9b7Vu3VodOnTQa6+9pqNHjxpdJkpBoAQAmBaBMvBYrVZ1795db7/9to4ePaqVK1eqadOmGjdunK688krddtttWrhwoXJycowuFecgUAIATIs5lIEtODhYAwYM0Icffqhjx47p7bff1unTp/WXv/xFUVFRio+P16effiqn01nlteU6nNp1JFM7U05p15FM5TqqvgYzsbjpMgoAMKkbbrhB1113nebNm2d0KTCRAwcO6P3339fChQv1888/KzIyUvfdd5+GDRumDh06yGKxVMp9k1OztTgxRZv3pCnlZJ7ODVAWSdHhIeoZE6mhnaPVIiqsUmowKwIlAMC0YmJi1K9fP82YMcPoUmBCbrdbO3bs0KJFi7RkyRKlpqaqVatWio+P19Ch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", + "image/png": "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7dq1U58+fbR48WKj4wAUSvgvp9OpgQMHat++fUpPT2cyOwCvcc899ygpKUmZmZlq1KiR0XEAbnnDf5lMJs2ePVs///yznn76aaPjAMBFWb58uRYsWKAZM2ZQJlFtMEIJv/f666/riSee0Lp169SnTx+j4wBAhfLy8hQZGal27dppxYoVMplMRkcCJFEoATkcDvXp00dHjx7Vzp07FRISYnQkADinxx57TO+//77S09PVokULo+MALtzyht8zm82aN2+efvzxR/397383Og4AnFNKSoreeustvfTSS5RJVDuMUAK/mjZtmmJjY/X111+rV69eRscBAJeioiJ16dJF9evX11dffSWLxWJ0JOB3KJTAr8rLyxUVFaXTp09r+/btCg4ONjoSAEiSnnnmGb366qv69ttv1a5dO6PjAGfhljfwK4vFonnz5mn//v168cUXjY4DAJKkbdu2adq0afrHP/5BmUS1xQgl8D/++c9/6rnnnlNqaqq6d+9udBwAfqysrEzXXnutHA6Htm7dqoCAAKMjAedEoQT+x5l/wMvLy7V161YFBgYaHQmAn3rppZf0t7/9TZs3b+YXXFRr3PIG/kdAQIDmz5+v7777Ti+99JLRcQD4qe+//14vvPCCJk6cSJlEtccIJVCBf/zjH3rppZf0zTffqFOnTkbHAeBHzuyPe+zYMe3cuVM1atQwOhJwXhRKoAIlJSXq3r27goODtWnTJlmtVqMjAfATb731lh577DF9+eWX6tu3r9FxgAviljdQgaCgIM2fP1/bt2/X9OnTjY4DwE8cPHhQTz/9tB5++GHKJLwGI5TABcTGxuq1117T9u3b2bIDQKVyOp0aNmyY0tPTlZGRodq1axsdCbgoFErgAs6cUGGz2bR+/XpOqABQaRYsWKB77rlHSUlJGj58uNFxgIvGLW/gAmrUqKF58+YpNTVVr7/+utFxAPioY8eO6cknn9Sdd95JmYTXYYQSuEhPPvmk3nvvPe3cuVOtWrUyOg4AH3Pbbbdp7dq1yszMVIMGDYyOA1wSCiVwkQoKCtSxY0c1b95cycnJMpsZ4AfgGUuWLNHo0aP14Ycf6o477jA6DnDJKJTAJUhOTlb//v311ltv6dFHHzU6DgAfcPLkSbVv317du3dXQkKCTCaT0ZGAS0ahBC7RI488ogULFig9PV0tWrQwOg4AL/fggw/q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", "text/plain": [ "
" ] @@ -76,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -92,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -120,7 +120,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -133,21 +133,74 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "And plot their beliefs over time." + "The result dict contains the executed actions, observations, environment state and beliefs over states and policies." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['action', 'env', 'observation', 'qpi', 'qs'])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result.keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The beliefs result is an array for each state factor, and the shape is [batch_size x time x factor_size]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n", + "(2, 10, 7)\n" + ] + } + ], + "source": [ + "print(len(result[\"qs\"]))\n", + "print(result[\"qs\"][0].shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can plot the agent's beliefs over time." ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 24, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, @@ -171,16 +224,16 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 25, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, @@ -202,16 +255,16 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 26, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, @@ -233,16 +286,16 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 27, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, From 0856bcedfbccafc9be9a00d93f614e1210959260 Mon Sep 17 00:00:00 2001 From: conorheins Date: Wed, 12 Jun 2024 10:23:58 +0200 Subject: [PATCH 057/196] smoothing demo notebook starting to work with sparse BCOO arrays from jax.experimental.sparse --- .../inference_methods_comparison.ipynb | 203 ++++++++++++++---- 1 file changed, 165 insertions(+), 38 deletions(-) diff --git a/examples/inference_and_learning/inference_methods_comparison.ipynb b/examples/inference_and_learning/inference_methods_comparison.ipynb index 1ba6b3c2..23d6755d 100644 --- a/examples/inference_and_learning/inference_methods_comparison.ipynb +++ b/examples/inference_and_learning/inference_methods_comparison.ipynb @@ -7,12 +7,13 @@ "outputs": [], "source": [ "import jax.numpy as jnp\n", - "from jax import tree_util as jtu, nn, vmap\n", + "from jax import tree_util as jtu, nn, vmap, lax\n", + "from jax.experimental import sparse\n", "from pymdp.jax.agent import Agent\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", - "from pymdp.jax.inference import smoothing_ovf\n" + "from pymdp.jax.inference import smoothing_ovf" ] }, { @@ -26,18 +27,11 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-06-11 10:06:09.636131: W external/xla/xla/service/gpu/nvptx_compiler.cc:760] The NVIDIA driver's CUDA version is 12.3 which is older than the ptxas CUDA version (12.5.40). Because the driver is older than the ptxas version, XLA is disabling parallel compilation, which may slow down compilation. You should update your NVIDIA driver or use the NVIDIA-provided CUDA forward compatibility packages.\n" - ] - } - ], + "outputs": [], "source": [ "num_states = [3, 2]\n", - "num_obs = [3]\n", + "num_obs = [2]\n", + "n_batch = 2\n", "\n", "A_1 = jnp.array([[1.0, 1.0, 1.0], [0.0, 0.0, 1.]])\n", "A_2 = jnp.array([[1.0, 1.0], [1., 0.]])\n", @@ -46,15 +40,15 @@ "\n", "A_tensor /= A_tensor.sum(0)\n", "\n", - "A = [jnp.broadcast_to(A_tensor, (2, 2, 3, 2)) ]\n", + "A = [jnp.broadcast_to(A_tensor, (n_batch, num_obs[0], 3, 2)) ]\n", "\n", "# create two transition matrices, one for each state factor\n", "B_1 = jnp.broadcast_to(\n", - " jnp.array([[0.0, 1.0, 0.0], [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]]), (2, 3, 3)\n", + " jnp.array([[0.0, 1.0, 0.0], [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]]), (n_batch, 3, 3)\n", ")\n", "\n", "B_2 = jnp.broadcast_to(\n", - " jnp.array([[0.0, 1.0], [1.0, 0.0]]), (2, 2, 2)\n", + " jnp.array([[0.0, 1.0], [1.0, 0.0]]), (n_batch, 2, 2)\n", " )\n", "\n", "B = [B_1[..., None], B_2[..., None]]\n", @@ -63,10 +57,10 @@ "obs = [jnp.broadcast_to(jnp.array([[1., 0.], # observation 0 is ambiguous with respect state factors\n", " [1., 0], # observation 0 is ambiguous with respect state factors\n", " [1., 0], # observation 0 is ambiguous with respect state factors\n", - " [0., 1.]])[:, None], (4, 2, 2) )] # observation 1 provides information about exact state of both factors \n", - "C = [jnp.zeros((2, 2))] # flat preferences\n", - "D = [jnp.ones((2, 3)) / 3., jnp.ones((2, 2)) / 2.] # flat prior\n", - "E = jnp.ones((2, 1))\n" + " [0., 1.]])[:, None], (4, n_batch, num_obs[0]) )] # observation 1 provides information about exact state of both factors \n", + "C = [jnp.zeros((n_batch, num_obs[0]))] # flat preferences\n", + "D = [jnp.ones((n_batch, 3)) / 3., jnp.ones((n_batch, 2)) / 2.] # flat prior\n", + "E = jnp.ones((n_batch, 1))\n" ] }, { @@ -122,6 +116,23 @@ "### Run first timestep of inference using `obs[0]`, no past actions, empirical prior set to actual prior, no qs_hist" ] }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# prior = agents.D\n", + "# qs_hist = None\n", + "# action_hist = []\n", + "# t =0\n", + "# first_obs = jtu.tree_map(lambda x: jnp.moveaxis(x[:t+1], 0, 1), obs)\n", + "# beliefs = agents.infer_states(first_obs, past_actions=None, empirical_prior=prior, qs_hist=qs_hist)\n", + "# actions = jnp.broadcast_to(agents.policies[0, 0], (2, 2))\n", + "# prior, qs_hist = agents.update_empirical_prior(actions, beliefs)\n", + "# action_hist.append(actions)\n" + ] + }, { "cell_type": "code", "execution_count": 5, @@ -139,35 +150,123 @@ " action_hist.append(actions)\n", "\n", "beliefs = jtu.tree_map(lambda x, y: jnp.concatenate([x[:, None], y], 1), agents.D, beliefs)\n", - "smoothed_beliefs = vmap(smoothing_ovf)(beliefs, agents.B, jnp.stack(action_hist, 1))" + "\n", + "smoothed_beliefs = vmap(smoothing_ovf)(beliefs, agents.B, jnp.stack(action_hist, 1))\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, + "outputs": [], + "source": [ + "sparse_B = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b, n_batch=n_batch), agents.B)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Filtered beliefs')" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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661x/fXXR0NDQ5x55pnxp3/6p/GZz3wmBg4c2O45AAAAyEMMBLrEe+9o+8u//Mvdxq4RI0a0+fr33xX4++e47bbbYtSoUbs8x6GHHrrXX9yxL7W0tMQpp5wSd9xxxy7vP/rooys6V8Ten9+eXHfddXHxxRfHokWLYvHixfF3f/d3MXv27Hj88cfjox/9aLtnAQAAIAcxEOi0QqGw07EBAwZE3759o7m5OS644IIOnfe9X0TSr1+/PZ5jwIAB0bt379Z32v2+559/vt1/3muvvRZNTU1t3h24bt26iIjWX8YxdOjQeOaZZ2LcuHG7fN6VaO/za895rr/++rj++uvjhRdeiFGjRsU3vvGN+Md//MdOzQcAAMDBxzUDgU7r06dP/Pa3v21zrFu3bnHJJZfED37wg/j5z3++02PeeOONvZ63sbExhg4dGrfffnts27Ztt+fo1q1bjB8/PhYtWhQvv/xy6/2/+tWvYvHixe1+Hjt27Ih58+a1fv3OO+/EvHnzYsCAAdHY2BgRERMnToxXX3015s+fv9Pjt2/fHk1NTe3+89r7/HbnrbfeirfffrvNsaFDh0bfvn3367slAQAAqB3eGQh0WmNjYzz22GNxxx13xODBg2PIkCExevTouOWWW2LZsmUxevTo+OxnPxsnnnhibN68OdasWROPPfZYbN68eY/nrauri29/+9tx0UUXxUknnRSXX355HHnkkfHqq6/GsmXLol+/fvGv//qvERFx0003xU9+8pM499xz4/Of/3zs2LEjvvWtb8VJJ50U//Vf/9Wu5zF48OC49dZb46WXXooTTjghvve978XatWvjvvvuix49ekRExF/91V/FI488Etdcc00sW7YszjnnnGhubo7nnnsuHnnkkVi8eHG7r79YyfPblXXr1sW4ceNi4sSJceKJJ0b37t1j4cKFsWHDhvj0pz/drhkAAADIRQwEOu2OO+6IqVOnxle+8pXYvn17TJ48OUaPHh0NDQ2xYsWK+NrXvhaPPvpo3H333XH44YfHSSedFLfeemu7zn3eeefF8uXL4+tf/3rMnTs3tm3bFgMHDozRo0e3+c2/I0aMiMWLF8eMGTPixhtvjKOOOipuuummeP3119sdAw877LB48MEHY/r06TF//vxoaGiIuXPnxmc/+9nW76mrq4tFixbFnDlz4jvf+U4sXLgwDjnkkPjQ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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" + "ename": "ValueError", + "evalue": "Custom node type mismatch: expected type: , value: Tracedwith with\n val = Array([[[5.0000000e-01, 5.0000000e-01],\n [4.5378983e-01, 5.4621023e-01],\n [4.9596748e-01, 5.0403249e-01],\n [4.4570816e-01, 5.5429184e-01],\n [1.0000000e+00, 3.5709456e-16]],\n\n [[5.0000000e-01, 5.0000000e-01],\n [4.5378983e-01, 5.4621023e-01],\n [4.9596748e-01, 5.0403249e-01],\n [4.4570816e-01, 5.5429184e-01],\n [1.0000000e+00, 3.5709456e-16]]], dtype=float32)\n batch_dim = 0.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[7], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m smoothed_beliefs_sparse \u001b[38;5;241m=\u001b[39m \u001b[43mvmap\u001b[49m\u001b[43m(\u001b[49m\u001b[43msmoothing_ovf\u001b[49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbeliefs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msparse_B\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstack\u001b[49m\u001b[43m(\u001b[49m\u001b[43maction_hist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", + " \u001b[0;31m[... skipping hidden 3 frame]\u001b[0m\n", + "File \u001b[0;32m~/Documents/Verses/pymdp/pymdp/jax/inference.py:138\u001b[0m, in \u001b[0;36msmoothing_ovf\u001b[0;34m(filtered_post, B, past_actions)\u001b[0m\n\u001b[1;32m 136\u001b[0m nf \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(B) \u001b[38;5;66;03m# number of factors\u001b[39;00m\n\u001b[1;32m 137\u001b[0m joint \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mlambda\u001b[39;00m b, qs, f: joint_dist_factor(b, qs, past_actions[\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m, f])\n\u001b[0;32m--> 138\u001b[0m marginals_and_joints \u001b[38;5;241m=\u001b[39m \u001b[43mjtu\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtree_map\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 139\u001b[0m \u001b[43m \u001b[49m\u001b[43mjoint\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mB\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfiltered_post\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mlist\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mnf\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;66;03m# marginals_and_joints = []\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;66;03m# for b, qs, f in zip(B, filtered_post, list(range(nf))):\u001b[39;00m\n\u001b[1;32m 143\u001b[0m \u001b[38;5;66;03m# marginals_and_joints_f = joint(b, qs, f)\u001b[39;00m\n\u001b[1;32m 144\u001b[0m \u001b[38;5;66;03m# marginals_and_joints.append(marginals_and_joints_f)\u001b[39;00m\n\u001b[1;32m 146\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m marginals_and_joints\n", + "File \u001b[0;32m~/miniconda3/envs/pymdp_dev_env/lib/python3.12/site-packages/jax/_src/tree_util.py:319\u001b[0m, in \u001b[0;36mtree_map\u001b[0;34m(f, tree, is_leaf, *rest)\u001b[0m\n\u001b[1;32m 282\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Maps a multi-input function over pytree args to produce a new pytree.\u001b[39;00m\n\u001b[1;32m 283\u001b[0m \n\u001b[1;32m 284\u001b[0m \u001b[38;5;124;03mArgs:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 316\u001b[0m \u001b[38;5;124;03m - :func:`jax.tree.reduce`\u001b[39;00m\n\u001b[1;32m 317\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 318\u001b[0m leaves, treedef \u001b[38;5;241m=\u001b[39m tree_flatten(tree, is_leaf)\n\u001b[0;32m--> 319\u001b[0m all_leaves \u001b[38;5;241m=\u001b[39m [leaves] \u001b[38;5;241m+\u001b[39m [\u001b[43mtreedef\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mflatten_up_to\u001b[49m\u001b[43m(\u001b[49m\u001b[43mr\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest]\n\u001b[1;32m 320\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m treedef\u001b[38;5;241m.\u001b[39munflatten(f(\u001b[38;5;241m*\u001b[39mxs) \u001b[38;5;28;01mfor\u001b[39;00m xs \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(\u001b[38;5;241m*\u001b[39mall_leaves))\n", + "\u001b[0;31mValueError\u001b[0m: Custom node type mismatch: expected type: , value: Tracedwith with\n val = Array([[[5.0000000e-01, 5.0000000e-01],\n [4.5378983e-01, 5.4621023e-01],\n [4.9596748e-01, 5.0403249e-01],\n [4.4570816e-01, 5.5429184e-01],\n [1.0000000e+00, 3.5709456e-16]],\n\n [[5.0000000e-01, 5.0000000e-01],\n [4.5378983e-01, 5.4621023e-01],\n [4.9596748e-01, 5.0403249e-01],\n [4.4570816e-01, 5.5429184e-01],\n [1.0000000e+00, 3.5709456e-16]]], dtype=float32)\n batch_dim = 0." + ] } ], + "source": [ + "smoothed_beliefs_sparse = vmap(smoothing_ovf)(beliefs, sparse_B, jnp.stack(action_hist, 1))\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "f_id, batch_id = 0, 0\n", + "filtered_qs = beliefs[f_id][batch_id] # this assuming the code below is being tree_mapped over factors (first index is factor_id), and vmapped over batches (second index is batch_id)\n", + "sparse_b = sparse_B[f_id][batch_id]\n", + "b = agents.B[f_id][batch_id]\n", + "past_actions = jnp.stack(action_hist, 1)\n", + "actions = past_actions[batch_id][...,f_id]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "qs_last = filtered_qs[-1]\n", + "qs_filter = filtered_qs[:-1]\n", + "# time_b = jnp.moveaxis(b[..., actions], -1, 0)\n", + "time_b = sparse_b[...,actions].transpose([sparse_b.ndim-1] + list(range(sparse_b.ndim-1)))\n", + "qs_joint= time_b * jnp.expand_dims(qs_filter, -1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sparse_b[...,actions].transpose([sparse_b.ndim-1] + list(range(sparse_b.ndim-1))).shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "qs_last = filtered_qs[-1]\n", + "qs_filter = filtered_qs[:-1]\n", + "\n", + "# conditional dist - timestep x s_{t+1} | s_{t}\n", + "time_b = jnp.moveaxis(b[..., actions], -1, 0)\n", + "\n", + "# joint dist - timestep x s_{t+1} x s_{t}\n", + "qs_joint = time_b * jnp.expand_dims(qs_filter, -1)\n", + "\n", + "# cond dist - timestep x s_{t} | s_{t+1}\n", + "qs_backward_cond = jnp.moveaxis(\n", + " qs_joint / qs_joint.sum(-2, keepdims=True), -2, -1\n", + ")\n", + "\n", + "def step_fn(qs_smooth_past, backward_b):\n", + " qs_joint = backward_b * qs_smooth_past\n", + " qs_smooth = qs_joint.sum(-1)\n", + " \n", + " return qs_smooth, (qs_smooth, qs_joint)\n", + "\n", + "# seq_qs will contain a sequence of smoothed marginals and joints\n", + "_, seq_qs = lax.scan(\n", + " step_fn,\n", + " qs_last,\n", + " qs_backward_cond,\n", + " reverse=True,\n", + " unroll=2\n", + ")\n", + "\n", + "# we add the last filtered belief to smoothed beliefs\n", + "qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "fig, axes = plt.subplots(2, 2, figsize=(16, 8), sharex=True)\n", "\n", @@ -179,6 +278,34 @@ "\n", "axes[0, 0].set_title('Filtered beliefs')" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from opt_einsum import contract" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "type(sparse_B[0])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "contract('ijk->k', sparse_B[0][...,0].todense())" + ] } ], "metadata": { From ccfe3d4bd52a9e57222fe11b9794ef4936b41f22 Mon Sep 17 00:00:00 2001 From: conorheins Date: Wed, 12 Jun 2024 10:25:04 +0200 Subject: [PATCH 058/196] in `pymdp/jax/inference.py`, added version of joint_dist_factor (sub-routine of `smoothing_ovf`) that dispatches on jnp.ndarrays and JAXSparse arrays (e.g., BCOO arrays) --- pymdp/jax/inference.py | 50 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/pymdp/jax/inference.py b/pymdp/jax/inference.py index 817034cf..15c2f5e4 100644 --- a/pymdp/jax/inference.py +++ b/pymdp/jax/inference.py @@ -5,6 +5,8 @@ import jax.numpy as jnp from .algos import run_factorized_fpi, run_mmp, run_vmp from jax import tree_util as jtu, lax +from multimethod import multimethod +from jax.experimental.sparse._base import JAXSparse def update_posterior_states( A, @@ -56,12 +58,14 @@ def update_posterior_states( return qs_hist -def joint_dist_factor(b, filtered_qs, actions): +@multimethod +def joint_dist_factor(b: jnp.ndarray, filtered_qs, actions): qs_last = filtered_qs[-1] qs_filter = filtered_qs[:-1] # conditional dist - timestep x s_{t+1} | s_{t} time_b = jnp.moveaxis(b[..., actions], -1, 0) + # time_b = b[...,actions].transpose([b.ndim-1] + list(range(b.ndim-1))) # joint dist - timestep x s_{t+1} x s_{t} qs_joint = time_b * jnp.expand_dims(qs_filter, -1) @@ -70,6 +74,8 @@ def joint_dist_factor(b, filtered_qs, actions): qs_backward_cond = jnp.moveaxis( qs_joint / qs_joint.sum(-2, keepdims=True), -2, -1 ) + # tranpose_idx = list(range(len(qs_joint.shape[:-2]))) + [qs_joint.ndim-1, qs_joint.ndim-2] + # qs_backward_cond = (qs_joint / qs_joint.sum(-2, keepdims=True).todense()).transpose(tranpose_idx) def step_fn(qs_smooth_past, backward_b): qs_joint = backward_b * qs_smooth_past @@ -90,14 +96,52 @@ def step_fn(qs_smooth_past, backward_b): qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0) return qs_smooth_all, seq_qs[1] +@multimethod +def joint_dist_factor(b: JAXSparse, filtered_qs, actions): + qs_last = filtered_qs[-1] + qs_filter = filtered_qs[:-1] + + # conditional dist - timestep x s_{t+1} | s_{t} + time_b = b[...,actions].transpose([b.ndim-1] + list(range(b.ndim-1))) + + # joint dist - timestep x s_{t+1} x s_{t} + qs_joint = time_b * jnp.expand_dims(qs_filter, -1) + + # cond dist - timestep x s_{t} | s_{t+1} + tranpose_idx = list(range(len(qs_joint.shape[:-2]))) + [qs_joint.ndim-1, qs_joint.ndim-2] + qs_backward_cond = (qs_joint / qs_joint.sum(-2, keepdims=True).todense()).transpose(tranpose_idx) + + def step_fn(qs_smooth_past, t): + qs_joint = qs_backward_cond[t] * qs_smooth_past + qs_smooth = qs_joint.sum(-1) + + return qs_smooth, (qs_smooth, qs_joint) + + # seq_qs will contain a sequence of smoothed marginals and joints + _, seq_qs = lax.scan( + step_fn, + qs_last, + jnp.arange(qs_backward_cond.shape[0]), + reverse=True, + unroll=2 + ) + + # we add the last filtered belief to smoothed beliefs + qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0) + return qs_smooth_all, seq_qs[1] + def smoothing_ovf(filtered_post, B, past_actions): assert len(filtered_post) == len(B) nf = len(B) # number of factors joint = lambda b, qs, f: joint_dist_factor(b, qs, past_actions[..., f]) marginals_and_joints = jtu.tree_map( - joint, B, filtered_post, list(range(nf)) - ) + joint, B, filtered_post, list(range(nf))) + + # marginals_and_joints = [] + # for b, qs, f in zip(B, filtered_post, list(range(nf))): + # marginals_and_joints_f = joint(b, qs, f) + # marginals_and_joints.append(marginals_and_joints_f) return marginals_and_joints From 84cdbf171a356a7e4c99abfc90d44fa0edd8f65e Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Wed, 12 Jun 2024 10:27:49 +0200 Subject: [PATCH 059/196] add multimethod to the dependencies --- poetry.lock | 98 +++++++++++++++++++++++++++----------------------- pyproject.toml | 2 +- 2 files changed, 55 insertions(+), 45 deletions(-) diff --git a/poetry.lock b/poetry.lock index 322a9a78..fb12dfbb 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1104,17 +1104,17 @@ arrow = ">=0.15.0" [[package]] name = "jax" -version = "0.4.28" +version = "0.4.29" description = "Differentiate, compile, and transform Numpy code." optional = false python-versions = ">=3.9" files = [ - {file = "jax-0.4.28-py3-none-any.whl", hash = "sha256:6a181e6b5a5b1140e19cdd2d5c4aa779e4cb4ec627757b918be322d8e81035ba"}, - {file = "jax-0.4.28.tar.gz", hash = "sha256:dcf0a44aff2e1713f0a2b369281cd5b79d8c18fc1018905c4125897cb06b37e9"}, + {file = "jax-0.4.29-py3-none-any.whl", hash = "sha256:cfdc594d133d7dfba2ec19bc10742ffaa0e8827ead29be00d3ec4215a3f7892e"}, + {file = "jax-0.4.29.tar.gz", hash = "sha256:12904571eaefddcdc8c3b8d4936482b783d5a216e99ef5adcd3522fdfb4fc186"}, ] [package.dependencies] -ml-dtypes = ">=0.2.0" +ml-dtypes = ">=0.4.0" numpy = [ {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, @@ -1126,48 +1126,47 @@ scipy = [ ] [package.extras] -australis = ["protobuf (>=3.13,<4)"] -ci = ["jaxlib (==0.4.27)"] -cpu = ["jaxlib (==0.4.28)"] -cuda = ["jaxlib (==0.4.28+cuda12.cudnn89)"] -cuda12 = ["jax-cuda12-plugin (==0.4.28)", "jaxlib (==0.4.28)", "nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] -cuda12-cudnn89 = ["jaxlib (==0.4.28+cuda12.cudnn89)"] -cuda12-local = ["jaxlib (==0.4.28+cuda12.cudnn89)"] -cuda12-pip = ["jaxlib (==0.4.28+cuda12.cudnn89)", "nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] +ci = ["jaxlib (==0.4.28)"] +cpu = ["jaxlib (==0.4.29)"] +cuda = ["jaxlib (==0.4.29+cuda12.cudnn91)"] +cuda12 = ["jax-cuda12-plugin (==0.4.29)", "jaxlib (==0.4.29)", "nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=9.0,<10.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] +cuda12-cudnn91 = ["jaxlib (==0.4.29+cuda12.cudnn91)"] +cuda12-local = ["jaxlib (==0.4.29+cuda12.cudnn91)"] +cuda12-pip = ["jaxlib (==0.4.29+cuda12.cudnn91)", "nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=9.0,<10.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] minimum-jaxlib = ["jaxlib (==0.4.27)"] -tpu = ["jaxlib (==0.4.28)", "libtpu-nightly (==0.1.dev20240508)", "requests"] +tpu = ["jaxlib (==0.4.29)", "libtpu-nightly (==0.1.dev20240609)", "requests"] [[package]] name = "jaxlib" -version = "0.4.28" +version = "0.4.29" description = "XLA library for JAX" optional = false python-versions = ">=3.9" files = [ - {file = "jaxlib-0.4.28-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:a421d237f8c25d2850166d334603c673ddb9b6c26f52bc496704b8782297bd66"}, - {file = "jaxlib-0.4.28-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f038e68bd10d1a3554722b0bbe36e6a448384437a75aa9d283f696f0ed9f8c09"}, - {file = "jaxlib-0.4.28-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:fabe77c174e9e196e9373097cefbb67e00c7e5f9d864583a7cfcf9dabd2429b6"}, - {file = "jaxlib-0.4.28-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:e3bcdc6f8e60f8554f415c14d930134e602e3ca33c38e546274fd545f875769b"}, - {file = "jaxlib-0.4.28-cp310-cp310-win_amd64.whl", hash = "sha256:a8b31c0e5eea36b7915696b9be40ea8646edc395a3e5437bf7ef26b7239a567a"}, - {file = "jaxlib-0.4.28-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:2ff8290edc7b92c7eae52517f65492633e267b2e9067bad3e4c323d213e77cf5"}, - {file = "jaxlib-0.4.28-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:793857faf37f371cafe752fea5fc811f435e43b8fb4b502058444a7f5eccf829"}, - {file = "jaxlib-0.4.28-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:b41a6b0d506c09f86a18ecc05bd376f072b548af89c333107e49bb0c09c1a3f8"}, - {file = "jaxlib-0.4.28-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:45ce0f3c840cff8236cff26c37f26c9ff078695f93e0c162c320c281f5041275"}, - {file = "jaxlib-0.4.28-cp311-cp311-win_amd64.whl", hash = "sha256:d4d762c3971d74e610a0e85a7ee063cea81a004b365b2a7dc65133f08b04fac5"}, - {file = "jaxlib-0.4.28-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:d6c09a545329722461af056e735146d2c8c74c22ac7426a845eb69f326b4f7a0"}, - {file = "jaxlib-0.4.28-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8dd8bffe3853702f63cd924da0ee25734a4d19cd5c926be033d772ba7d1c175d"}, - {file = "jaxlib-0.4.28-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:de2e8521eb51e16e85093a42cb51a781773fa1040dcf9245d7ea160a14ee5a5b"}, - {file = "jaxlib-0.4.28-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:46a1aa857f4feee8a43fcba95c0e0ab62d40c26cc9730b6c69655908ba359f8d"}, - {file = "jaxlib-0.4.28-cp312-cp312-win_amd64.whl", hash = "sha256:eee428eac31697a070d655f1f24f6ab39ced76750d93b1de862377a52dcc2401"}, - {file = "jaxlib-0.4.28-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:4f98cc837b2b6c6dcfe0ab7ff9eb109314920946119aa3af9faa139718ff2787"}, - {file = "jaxlib-0.4.28-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b01562ec8ad75719b7d0389752489e97eb6b4dcb4c8c113be491634d5282ad3c"}, - {file = "jaxlib-0.4.28-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:aa77a9360a395ba9faf6932df637686fb0c14ddcf4fdc1d2febe04bc88a580a6"}, - {file = "jaxlib-0.4.28-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:4a56ebf05b4a4c1791699d874e072f3f808f0986b4010b14fb549a69c90ca9dc"}, - {file = "jaxlib-0.4.28-cp39-cp39-win_amd64.whl", hash = "sha256:459a4ddcc3e120904b9f13a245430d7801d707bca48925981cbdc59628057dc8"}, -] - -[package.dependencies] -ml-dtypes = ">=0.2.0" + {file = "jaxlib-0.4.29-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:60ec8aa2ba133a0615b0fce8e084c90c179c019793551641dd3da6526d036953"}, + {file = "jaxlib-0.4.29-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:adb37f9c01a0fbdf97ab4afc7b60939c1694a5c056d8224c3d292cc253a3dc55"}, + {file = "jaxlib-0.4.29-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:8b1062b804d95ddb8dbb039c48316cbaed1d6866f973ef39e03f39e452ac8a1c"}, + {file = "jaxlib-0.4.29-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:ae21b84dd08c015bf2bab9ba97fa6a1da30f9a51c35902e23c7ffe959ad2e86c"}, + {file = "jaxlib-0.4.29-cp310-cp310-win_amd64.whl", hash = "sha256:a4993ab2f91c8ee213cacc4ed341539a7980b1b231e9dac69d68b508118dc19d"}, + {file = "jaxlib-0.4.29-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:1da0716c45c5b0e177d334938a09953915f8da2080fffee9366ad8a9a988f484"}, + {file = "jaxlib-0.4.29-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5da76e760be790896f7149eccafff64b800f129a282de7f7a1edc138d56ac997"}, + {file = "jaxlib-0.4.29-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:aec76c416657e25884ee1364e98e40fcedbd2235c79691026d9babf05d850ede"}, + {file = "jaxlib-0.4.29-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:5a313e94c3ae87f147d561bc61e923d75e18e2448ac8fbf150d526ecd24404b0"}, + {file = "jaxlib-0.4.29-cp311-cp311-win_amd64.whl", hash = "sha256:7bfcc35a2991c2973489333f5c07dbb1f5d0ec78ef889097534c2c5f0d0149a7"}, + {file = "jaxlib-0.4.29-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:7d7eabdb21814386cfa32e09ddaee76e374126c3709989b6de5f1e49a04f5f36"}, + {file = "jaxlib-0.4.29-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ac11efc5eb7d0d25dc853efd68c18b204d071e78f762583dc9ebed84db272bf2"}, + {file = "jaxlib-0.4.29-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:08cb5b24f481f62ff432b0bbedc7e35c5d561dc42c1c8138bbf8514ea91ab17e"}, + {file = "jaxlib-0.4.29-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:a7c884c5651e5d1cc0fc57f2cf0abee4223b1f38c3e8cbd00fb142e6551cfe47"}, + {file = "jaxlib-0.4.29-cp312-cp312-win_amd64.whl", hash = "sha256:91058f1606312c42621b0a9979d0f14c0db9da6341ffd714ac5eb5e3be79c59a"}, + {file = "jaxlib-0.4.29-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:e59afd8026f43688fd0bf4f3dbcf913157c7f144d000850aaa7a88b1228a87ab"}, + {file = "jaxlib-0.4.29-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2801327384be3edab5f3adb38262206e488135d7c8e27d928ac3c6ffb71f7718"}, + {file = "jaxlib-0.4.29-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:dfce109290dbbd27176750b931bedbabb56a4f5e955f83eead2e3cdefe5108b8"}, + {file = "jaxlib-0.4.29-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:84be918201a7f06b73074ed154fc3344b02aa8736597b39397e7093807dcfc3c"}, + {file = "jaxlib-0.4.29-cp39-cp39-win_amd64.whl", hash = "sha256:9b0efd3ba45a7ee03fb91a4118099ea97aa02a96e50f4d91cc910554e226c5b9"}, +] + +[package.dependencies] +ml-dtypes = ">=0.4.0" numpy = ">=1.22" scipy = [ {version = ">=1.9", markers = "python_version < \"3.12\""}, @@ -1175,7 +1174,7 @@ scipy = [ ] [package.extras] -cuda12-pip = ["nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] +cuda12-pip = ["nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=9.0,<10.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] [[package]] name = "jaxtyping" @@ -1229,13 +1228,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonpointer" -version = "2.4" +version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +python-versions = ">=3.7" files = [ - {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, - {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, ] [[package]] @@ -1961,6 +1960,17 @@ numpy = [ [package.extras] dev = ["absl-py", "pyink", "pylint (>=2.6.0)", "pytest", "pytest-xdist"] +[[package]] +name = "multimethod" +version = "1.11.2" +description = "Multiple argument dispatching." +optional = false +python-versions = ">=3.9" +files = [ + {file = "multimethod-1.11.2-py3-none-any.whl", hash = "sha256:cb338f09395c0ee87d36c7691cdd794d13d8864358082cf1205f812edd5ce05a"}, + {file = "multimethod-1.11.2.tar.gz", hash = "sha256:7f2a4863967142e6db68632fef9cd79053c09670ba0c5f113301e245140bba5c"}, +] + [[package]] name = "multipledispatch" version = "1.0.0" @@ -3838,4 +3848,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "1d4252501e2f94d66e6efff363c91149a47c19134dfc50fd77f39357780b420b" +content-hash = "6dc2e37fe54c5301af3acab65d91de9441bc6edf61e3187ce914adbb2432d42a" diff --git a/pyproject.toml b/pyproject.toml index 1201f570..05ed0661 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,7 +32,7 @@ numpyro = "^0.14" arviz = "^0.13" optax = "^0.1" matplotlib = "^3.9" - +multimethod = "^1.11" [tool.black] line-length = 120 From 400fba216f76b7e7a9bbc0218c749f4c88c48e9e Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 09:51:06 +0200 Subject: [PATCH 060/196] named distribution implementation First past of implementation for named distribution for easy manipulation and inspection of discrete conditional probability distributions. --- pymdp/jax/distribution.py | 101 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 pymdp/jax/distribution.py diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py new file mode 100644 index 00000000..4fb0ba82 --- /dev/null +++ b/pymdp/jax/distribution.py @@ -0,0 +1,101 @@ +import numpy as np + + +class Distribution: + + def __init__(self, data: np.ndarray, event: dict, batch: dict): + self.data = data + self.event = event + self.batch = batch + + self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} + self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} + + def get(self, batch=None, event=None): + event_slices = self._get_slices(event, self.event_indices, self.event) + batch_slices = self._get_slices(batch, self.batch_indices, self.batch) + + slices = event_slices + batch_slices + return self.data[tuple(slices)] + + def set(self, batch=None, event=None, values=None): + event_slices = self._get_slices(event, self.event_indices, self.event) + batch_slices = self._get_slices(batch, self.batch_indices, self.batch) + + slices = event_slices + batch_slices + self.data[tuple(slices)] = values + + def _get_slices(self, keys, indices, full_indices): + slices = [] + if keys is None: + return [slice(None)] * len(full_indices) + for key in full_indices: + if key in keys: + if isinstance(keys[key], list): + slices.append([self._get_index(v, indices[key]) for v in keys[key]]) + else: + slices.append(self._get_index(keys[key], indices[key])) + else: + slices.append(slice(None)) + return slices + + def _get_index(self, key, index_map): + if isinstance(key, int): + return key + else: + return index_map[key] + + def _get_index_from_axis(self, axis, element): + if isinstance(element, slice): + return slice(None) + if axis < len(self.event): + key = list(self.event.keys())[axis] + index_map = self.event_indices[key] + else: + key = list(self.batch.keys())[axis - len(self.event)] + index_map = self.batch_indices[key] + return self._get_index(element, index_map) + + def __getitem__(self, indices): + if not isinstance(indices, tuple): + indices = (indices,) + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + return self.data[tuple(index_list)] + + def __setitem__(self, indices, value): + if not isinstance(indices, tuple): + indices = (indices,) + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + self.data[tuple(index_list)] = value + + +if __name__ == "__main__": + controls = ["up", "down"] + locations = ["A", "B", "C", "D"] + + data = np.zeros((len(locations), len(locations), len(controls))) + transition = Distribution(data, {"location": locations}, {"location": locations, "control": controls}) + + assert transition["A", "B", "up"] == 0.0 + assert transition[:, "B", "up"].shape == (4,) + assert transition["A", "B", :].shape == (2,) + assert transition[:, "B", :].shape == (4, 2) + assert transition[:, :, :].shape == (4, 4, 2) + assert transition[0, "B", 0] == 0.0 + assert transition[:, "B", 0].shape == (4,) + + transition["A", "B", "up"] = 0.5 + assert transition["A", "B", "up"] == 0.5 + transition[:, "B", "up"] = np.ones(4) + assert np.all(transition[:, "B", "up"] == 1.0) + + assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 + assert transition.get({"control": "up"}).shape == (4, 4) + + transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 + transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 + transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) + assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) From 2692973aecc637afcd09e561068b4de0dab3db1f Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 11:23:00 +0200 Subject: [PATCH 061/196] add a first version of model compilation --- pymdp/jax/distribution.py | 124 +++++++++++++++++++++++++++++++++++--- 1 file changed, 115 insertions(+), 9 deletions(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 4fb0ba82..e71eb852 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -8,8 +8,14 @@ def __init__(self, data: np.ndarray, event: dict, batch: dict): self.event = event self.batch = batch - self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} - self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} + self.event_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in event.items() + } + self.batch_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in batch.items() + } def get(self, batch=None, event=None): event_slices = self._get_slices(event, self.event_indices, self.event) @@ -32,7 +38,9 @@ def _get_slices(self, keys, indices, full_indices): for key in full_indices: if key in keys: if isinstance(keys[key], list): - slices.append([self._get_index(v, indices[key]) for v in keys[key]]) + slices.append( + [self._get_index(v, indices[key]) for v in keys[key]] + ) else: slices.append(self._get_index(keys[key], indices[key])) else: @@ -59,22 +67,84 @@ def _get_index_from_axis(self, axis, element): def __getitem__(self, indices): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] return self.data[tuple(index_list)] def __setitem__(self, indices, value): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] self.data[tuple(index_list)] = value +def compile(config): + # these are needed to get the ordering of the dimensions correct for pymdp + state_dependencies = dict() + control_dependencies = dict() + likelihood_dependencies = dict() + transition_events = dict() + likelihood_events = dict() + labels = dict() + shape = dict() + for mod in config: + for k, v in config[mod].items(): + for kw in v: + match kw: + case "elements": + shape[k] = len(v[kw]) + labels[k] = [name for name in v[kw]] + case "size": + shape[k] = v[kw] + labels[k] = list(range(v[kw])) + case "depends_on_states": + state_dependencies[k] = [name for name in v[kw]] + if k in v[kw]: + transition_events[k] = labels[k] + case "depends_on_control": + control_dependencies[k] = [name for name in v[kw]] + case "depends_on": + likelihood_dependencies[k] = [name for name in v[kw]] + likelihood_events[k] = labels[k] + transitions = [] + for event, description in transition_events.items(): + arr_shape = [len(description)] + batch_descr = dict() + event_descr = {event: description} + for dep in state_dependencies[event]: + arr_shape.append(shape[dep]) + batch_descr[dep] = labels[dep] + for dep in control_dependencies[event]: + arr_shape.append(shape[dep]) + batch_descr[dep] = labels[dep] + arr = np.zeros(arr_shape) + transitions.append(Distribution(arr, event_descr, batch_descr)) + likelihoods = [] + for event, description in likelihood_events.items(): + arr_shape = [len(description)] + batch_descr = dict() + event_descr = {event: description} + for dep in likelihood_dependencies[event]: + arr_shape.append(shape[dep]) + batch_descr[dep] = labels[dep] + arr = np.zeros(arr_shape) + likelihoods.append(Distribution(arr, event_descr, batch_descr)) + return transition, likelihoods + + if __name__ == "__main__": controls = ["up", "down"] locations = ["A", "B", "C", "D"] data = np.zeros((len(locations), len(locations), len(controls))) - transition = Distribution(data, {"location": locations}, {"location": locations, "control": controls}) + transition = Distribution( + data, + {"location": locations}, + {"location": locations, "control": controls}, + ) assert transition["A", "B", "up"] == 0.0 assert transition[:, "B", "up"].shape == (4,) @@ -90,12 +160,48 @@ def __setitem__(self, indices, value): assert np.all(transition[:, "B", "up"] == 1.0) assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.0 + ) assert transition.get({"control": "up"}).shape == (4, 4) transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.5 + ) transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.7 + ) transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) + + model_example = { + "observations": { + "observation_1": {"size": 10, "depends_on": ["factor_1"]}, + "observation_2": { + "elements": ["A", "B"], + "depends_on": ["factor_1"], + }, + }, + "controls": { + "control_1": {"size": 2}, + "control_2": {"elements": ["X", "Y"]}, + }, + "states": { + "factor_1": { + "elements": ["II", "JJ", "KK"], + "depends_on_states": ["factor_1", "factor_2"], + "depends_on_control": ["control_1", "control_2"], + }, + "factor_2": { + "elements": ["foo", "bar"], + "depends_on_states": ["factor_2"], + "depends_on_control": ["control_2"], + }, + }, + } + trans, like = compile(model_example) From ce89a0e15f294b098ce636d3b6d3dad622247d79 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 11:35:44 +0200 Subject: [PATCH 062/196] add missing s, add some basic tests --- pymdp/jax/distribution.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index e71eb852..453ad628 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -132,7 +132,7 @@ def compile(config): batch_descr[dep] = labels[dep] arr = np.zeros(arr_shape) likelihoods.append(Distribution(arr, event_descr, batch_descr)) - return transition, likelihoods + return transitions, likelihoods if __name__ == "__main__": @@ -205,3 +205,9 @@ def compile(config): }, } trans, like = compile(model_example) + assert len(trans) == 2 + assert len(like) == 2 + assert trans[0].data.shape == (3, 3, 2, 2, 2) + assert trans[1].data.shape == (2, 2, 2) + assert like[0].data.shape == (10, 3) + assert like[1].data.shape == (2, 3) From a7426917aedde5e9e8d30080485ee5e469120432 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 12:17:20 +0200 Subject: [PATCH 063/196] add unittest --- pymdp/jax/distribution.py | 24 +++++---- test/test_distribution.py | 111 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+), 10 deletions(-) create mode 100644 test/test_distribution.py diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 453ad628..c275477f 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -92,22 +92,24 @@ def compile(config): shape = dict() for mod in config: for k, v in config[mod].items(): - for kw in v: - match kw: + for keyword in v: + match keyword: case "elements": - shape[k] = len(v[kw]) - labels[k] = [name for name in v[kw]] + shape[k] = len(v[keyword]) + labels[k] = [name for name in v[keyword]] case "size": - shape[k] = v[kw] - labels[k] = list(range(v[kw])) + shape[k] = v[keyword] + labels[k] = list(range(v[keyword])) case "depends_on_states": - state_dependencies[k] = [name for name in v[kw]] - if k in v[kw]: + state_dependencies[k] = [name for name in v[keyword]] + if k in v[keyword]: transition_events[k] = labels[k] case "depends_on_control": - control_dependencies[k] = [name for name in v[kw]] + control_dependencies[k] = [name for name in v[keyword]] case "depends_on": - likelihood_dependencies[k] = [name for name in v[kw]] + likelihood_dependencies[k] = [ + name for name in v[keyword] + ] likelihood_events[k] = labels[k] transitions = [] for event, description in transition_events.items(): @@ -211,3 +213,5 @@ def compile(config): assert trans[1].data.shape == (2, 2, 2) assert like[0].data.shape == (10, 3) assert like[1].data.shape == (2, 3) + assert like[0][:, "II"] is not None + assert like[1][1, :] is not None diff --git a/test/test_distribution.py b/test/test_distribution.py new file mode 100644 index 00000000..fa6a38f2 --- /dev/null +++ b/test/test_distribution.py @@ -0,0 +1,111 @@ +import unittest +from pymdp.jax import distribution +import numpy as np + + +class TestDists(unittest.TestCase): + + def test_distribution_slice(self): + controls = ["up", "down"] + locations = ["A", "B", "C", "D"] + + data = np.zeros((len(locations), len(locations), len(controls))) + transition = distribution.Distribution( + data, + {"location": locations}, + {"location": locations, "control": controls}, + ) + self.assertEqual(transition["A", "B", "up"], 0.0) + self.assertEqual(transition[:, "B", "up"].shape, (4,)) + self.assertEqual(transition["A", "B", :].shape, (2,)) + self.assertEqual(transition[:, "B", :].shape, (4, 2)) + self.assertEqual(transition[:, :, :].shape, (4, 4, 2)) + self.assertEqual(transition[0, "B", 0], 0.0) + self.assertEqual(transition[:, "B", 0].shape, (4,)) + + transition["A", "B", "up"] = 0.5 + self.assertEqual(transition["A", "B", "up"], 0.5) + transition[:, "B", "up"] = np.ones(4) + self.assertTrue(np.all(transition[:, "B", "up"] == 1.0)) + + def test_distribution_get_set(self): + controls = ["up", "down"] + locations = ["A", "B", "C", "D"] + + data = np.zeros((len(locations), len(locations), len(controls))) + transition = distribution.Distribution( + data, + {"location": locations}, + {"location": locations, "control": controls}, + ) + + self.assertEqual( + transition.get({"location": "A"}, {"location": "B"}).shape, (2,) + ) + self.assertEqual( + transition.get( + {"location": "A", "control": "up"}, {"location": "B"} + ), + 0.0, + ) + self.assertEqual(transition.get({"control": "up"}).shape, (4, 4)) + + transition.set( + {"location": "A", "control": "up"}, {"location": "B"}, 0.5 + ) + self.assertEqual( + transition.get( + {"location": "A", "control": "up"}, {"location": "B"} + ), + 0.5, + ) + transition.set( + {"location": 0, "control": "up"}, {"location": "B"}, 0.7 + ) + self.assertEqual( + transition.get( + {"location": "A", "control": "up"}, {"location": "B"} + ), + 0.7, + ) + transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) + self.assertTrue( + np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) + ) + + def test_agent_compile(self): + model_example = { + "observations": { + "observation_1": {"size": 10, "depends_on": ["factor_1"]}, + "observation_2": { + "elements": ["A", "B"], + "depends_on": ["factor_1"], + }, + }, + "controls": { + "control_1": {"size": 2}, + "control_2": {"elements": ["X", "Y"]}, + }, + "states": { + "factor_1": { + "elements": ["II", "JJ", "KK"], + "depends_on_states": ["factor_1", "factor_2"], + "depends_on_control": ["control_1", "control_2"], + }, + "factor_2": { + "elements": ["foo", "bar"], + "depends_on_states": ["factor_2"], + "depends_on_control": ["control_2"], + }, + }, + } + trans, like = distribution.compile(model_example) + self.assertEqual(len(trans), 2) + self.assertEqual(len(like), 2) + self.assertEqual(trans[0].data.shape, (3, 3, 2, 2, 2)) + self.assertEqual(trans[1].data.shape, (2, 2, 2)) + self.assertEqual(like[0].data.shape, (10, 3)) + self.assertEqual(like[1].data.shape, (2, 3)) + self.assertIsNotNone + self.assertIsNotNone(like[0][:, "II"]) + self.assertIsNotNone(like[1][1, :]) From 98bd8c2099b9474d82ee4da7ebff296e7413f3ab Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 12:22:54 +0200 Subject: [PATCH 064/196] rename compile to compile_model --- pymdp/jax/distribution.py | 4 ++-- test/test_distribution.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index c275477f..27ce25f0 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -81,7 +81,7 @@ def __setitem__(self, indices, value): self.data[tuple(index_list)] = value -def compile(config): +def compile_model(config): # these are needed to get the ordering of the dimensions correct for pymdp state_dependencies = dict() control_dependencies = dict() @@ -206,7 +206,7 @@ def compile(config): }, }, } - trans, like = compile(model_example) + trans, like = compile_model(model_example) assert len(trans) == 2 assert len(like) == 2 assert trans[0].data.shape == (3, 3, 2, 2, 2) diff --git a/test/test_distribution.py b/test/test_distribution.py index fa6a38f2..4414a25a 100644 --- a/test/test_distribution.py +++ b/test/test_distribution.py @@ -99,7 +99,7 @@ def test_agent_compile(self): }, }, } - trans, like = distribution.compile(model_example) + trans, like = distribution.compile_model(model_example) self.assertEqual(len(trans), 2) self.assertEqual(len(like), 2) self.assertEqual(trans[0].data.shape, (3, 3, 2, 2, 2)) From e930eb71cc29d177d2d702c9adbef1b4716c8847 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 12:26:28 +0200 Subject: [PATCH 065/196] added example notebook --- examples/distribution_api.ipynb | 108 ++++++++++++++++++++++++++++++++ pymdp/jax/__init__.py | 1 + 2 files changed, 109 insertions(+) create mode 100644 examples/distribution_api.ipynb diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb new file mode 100644 index 00000000..becd094c --- /dev/null +++ b/examples/distribution_api.ipynb @@ -0,0 +1,108 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Array([[[0., 0., 0., 1.]]], dtype=float32)]\n", + "[[0. 1.]]\n", + "[[1]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import jax\n", + "from jax import numpy as jnp \n", + "\n", + "from pymdp.jax import Distribution\n", + "from pymdp.jax.agent import Agent\n", + "\n", + "np.set_printoptions(precision=2, suppress=True)\n", + "\n", + "observations = [\"A\", \"B\", \"C\", \"D\"]\n", + "states = [\"A\", \"B\", \"C\", \"D\"]\n", + "controls = [\"up\", \"down\"]\n", + "\n", + "data = np.zeros((len(observations), len(states)))\n", + "likelihood = Distribution(data, {\"observations\": observations}, {\"states\": states})\n", + "\n", + "likelihood[\"A\", \"A\"] = 1.0 \n", + "likelihood[\"B\", \"B\"] = 1.0\n", + "likelihood[\"C\", \"C\"] = 1.0\n", + "likelihood[\"D\", \"D\"] = 1.0\n", + "\n", + "data = np.zeros((len(states), len(states), len(controls)))\n", + "transition = Distribution(data, {\"states\": states}, {\"states\": states, \"controls\": controls})\n", + "\n", + "transition[\"B\", \"A\", \"up\"] = 1.0\n", + "transition[\"C\", \"B\", \"up\"] = 1.0\n", + "transition[\"D\", \"C\", \"up\"] = 1.0\n", + "transition[\"D\", \"D\", \"up\"] = 1.0\n", + "\n", + "transition[\"A\", \"A\", \"down\"] = 1.0\n", + "transition[\"A\", \"B\", \"down\"] = 1.0\n", + "transition[\"B\", \"C\", \"down\"] = 1.0\n", + "transition[\"C\", \"D\", \"down\"] = 1.0\n", + "\n", + "A = [jnp.broadcast_to(likelihood.data, (1,) + likelihood.data.shape)]\n", + "B = [jnp.broadcast_to(transition.data, (1,) + transition.data.shape)]\n", + "\n", + "\n", + "C = [jnp.zeros((1, 4))]\n", + "C[0] = C[0].at[0, 0].set(1.0)\n", + "D = jnp.ones((1, 4)) / 8.0\n", + "E = jnp.ones((1, 2)) / 4.0\n", + "\n", + "policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", + "\n", + "\n", + "agent = Agent(A, B, C, D, E, A, B, policies=policies)\n", + "\n", + "observation = [jnp.array([[3]])]\n", + "action = jnp.array([[0]])\n", + "\n", + "qs = [jnp.zeros((1, 1, 4))]\n", + "qs[0] = qs[0].at[0, 0, 3].set(1.0)\n", + "\n", + "prior, _ = agent.update_empirical_prior(action, qs)\n", + "\n", + "\n", + "qs = agent.infer_states(observation, None, prior, None)\n", + "print(qs)\n", + "\n", + "q_pi, G = agent.infer_policies(qs)\n", + "print(q_pi)\n", + "key = jax.random.PRNGKey(0)\n", + "action = agent.sample_action(q_pi)\n", + "print(action)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pymdp", + "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.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/pymdp/jax/__init__.py b/pymdp/jax/__init__.py index e69de29b..5b957f0d 100644 --- a/pymdp/jax/__init__.py +++ b/pymdp/jax/__init__.py @@ -0,0 +1 @@ +from .distribution import Distribution From 55f31411260a69a6ea9226fb9b286b6370332cc3 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 14:50:47 +0200 Subject: [PATCH 066/196] api updates to jax/agent --- examples/distribution_api.ipynb | 53 ++--- pymdp/jax/agent.py | 351 ++++++++++++++++++-------------- 2 files changed, 217 insertions(+), 187 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index becd094c..9407f07d 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 21, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -30,48 +30,39 @@ "controls = [\"up\", \"down\"]\n", "\n", "data = np.zeros((len(observations), len(states)))\n", - "likelihood = Distribution(data, {\"observations\": observations}, {\"states\": states})\n", + "A = Distribution(data, {\"observations\": observations}, {\"states\": states})\n", "\n", - "likelihood[\"A\", \"A\"] = 1.0 \n", - "likelihood[\"B\", \"B\"] = 1.0\n", - "likelihood[\"C\", \"C\"] = 1.0\n", - "likelihood[\"D\", \"D\"] = 1.0\n", + "A[\"A\", \"A\"] = 1.0 \n", + "A[\"B\", \"B\"] = 1.0\n", + "A[\"C\", \"C\"] = 1.0\n", + "A[\"D\", \"D\"] = 1.0\n", "\n", "data = np.zeros((len(states), len(states), len(controls)))\n", - "transition = Distribution(data, {\"states\": states}, {\"states\": states, \"controls\": controls})\n", + "B = Distribution(data, {\"states\": states}, {\"states\": states, \"controls\": controls})\n", "\n", - "transition[\"B\", \"A\", \"up\"] = 1.0\n", - "transition[\"C\", \"B\", \"up\"] = 1.0\n", - "transition[\"D\", \"C\", \"up\"] = 1.0\n", - "transition[\"D\", \"D\", \"up\"] = 1.0\n", + "B[\"B\", \"A\", \"up\"] = 1.0\n", + "B[\"C\", \"B\", \"up\"] = 1.0\n", + "B[\"D\", \"C\", \"up\"] = 1.0\n", + "B[\"D\", \"D\", \"up\"] = 1.0\n", "\n", - "transition[\"A\", \"A\", \"down\"] = 1.0\n", - "transition[\"A\", \"B\", \"down\"] = 1.0\n", - "transition[\"B\", \"C\", \"down\"] = 1.0\n", - "transition[\"C\", \"D\", \"down\"] = 1.0\n", - "\n", - "A = [jnp.broadcast_to(likelihood.data, (1,) + likelihood.data.shape)]\n", - "B = [jnp.broadcast_to(transition.data, (1,) + transition.data.shape)]\n", - "\n", - "\n", - "C = [jnp.zeros((1, 4))]\n", - "C[0] = C[0].at[0, 0].set(1.0)\n", - "D = jnp.ones((1, 4)) / 8.0\n", - "E = jnp.ones((1, 2)) / 4.0\n", + "B[\"A\", \"A\", \"down\"] = 1.0\n", + "B[\"A\", \"B\", \"down\"] = 1.0\n", + "B[\"B\", \"C\", \"down\"] = 1.0\n", + "B[\"C\", \"D\", \"down\"] = 1.0\n", "\n", "policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", "\n", + "C = jnp.zeros((1, 4))\n", + "C = C.at[0, 0].set(1.0)\n", "\n", - "agent = Agent(A, B, C, D, E, A, B, policies=policies)\n", + "agent = Agent([A], [B], [C], policies=policies)\n", "\n", - "observation = [jnp.array([[3]])]\n", "action = jnp.array([[0]])\n", - "\n", "qs = [jnp.zeros((1, 1, 4))]\n", - "qs[0] = qs[0].at[0, 0, 3].set(1.0)\n", - "\n", - "prior, _ = agent.update_empirical_prior(action, qs)\n", + "qs[0] = qs[0].at[0, 0, 0].set(1.0)\n", "\n", + "observation = [jnp.array([[0]])]\n", + "prior, _ = agent.infer_empirical_prior(action, qs)\n", "\n", "qs = agent.infer_states(observation, None, prior, None)\n", "print(qs)\n", @@ -100,7 +91,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.9" } }, "nbformat": 4, diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 776a65dd..68a3d51c 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -12,14 +12,16 @@ import jax.tree_util as jtu from jax import nn, vmap, random from . import inference, control, learning, utils, maths +from .distribution import Distribution from equinox import Module, field, tree_at from typing import List, Optional from jaxtyping import Array from functools import partial + class Agent(Module): - """ + """ The Agent class, the highest-level API that wraps together processes for action, perception, and learning under active inference. The basic usage is as follows: @@ -37,25 +39,24 @@ class Agent(Module): A: List[Array] B: List[Array] - C: List[Array] + C: List[Array] D: List[Array] E: Array - # empirical_prior: List gamma: Array alpha: Array - qs: Optional[List[Array]] - q_pi: Optional[List[Array]] - - # parameters used for inductive inference - inductive_threshold: Array # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) - inductive_epsilon: Array # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) - - H: List[Array] # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints - I: List[Array] # I matrices (one per hidden state factor) used for inductive inference -- these encode the 'reachability' matrices of goal states encoded in `self.H` pA: List[Array] pB: List[Array] - + + # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) + inductive_threshold: Array + # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) + + inductive_epsilon: Array + # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints + H: List[Array] + # I matrices (one per hidden state factor) used for inductive inference -- these encode the 'reachability' matrices of goal states encoded in `self.H` + I: List[Array] # static parameters not leaves of the PyTree A_dependencies: Optional[List] = field(static=True) B_dependencies: Optional[List] = field(static=True) @@ -67,17 +68,27 @@ class Agent(Module): num_factors: int = field(static=True) num_controls: List[int] = field(static=True) control_fac_idx: Optional[List[int]] = field(static=True) - policy_len: int = field(static=True) # depth of planning during roll-outs (i.e. number of timesteps to look ahead when computing expected free energy of policies) - inductive_depth: int = field(static=True) # depth of inductive inference (i.e. number of future timesteps to use when computing inductive `I` matrix) - policies: Array = field(static=True) # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) - use_utility: bool = field(static=True) # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy - use_states_info_gain: bool = field(static=True) # flag for whether to use state information gain ("salience") when computing expected free energy - use_param_info_gain: bool = field(static=True) # flag for whether to use parameter information gain ("novelty") when computing expected free energy - use_inductive: bool = field(static=True) # flag for whether to use inductive inference ("intentional inference") when computing expected free energy + # depth of planning during roll-outs (i.e. number of timesteps to look ahead when computing expected free energy of policies) + policy_len: int = field(static=True) + # depth of inductive inference (i.e. number of future timesteps to use when computing inductive `I` matrix) + inductive_depth: int = field(static=True) + # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) + policies: Array = field(static=True) + # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy + use_utility: bool = field(static=True) + # flag for whether to use state information gain ("salience") when computing expected free energy + use_states_info_gain: bool = field(static=True) + # flag for whether to use parameter information gain ("novelty") when computing expected free energy + use_param_info_gain: bool = field(static=True) + # flag for whether to use inductive inference ("intentional inference") when computing expected free energy + use_inductive: bool = field(static=True) onehot_obs: bool = field(static=True) - action_selection: str = field(static=True) # determinstic or stochastic action selection - sampling_mode : str = field(static=True) # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") - inference_algo: str = field(static=True) # fpi, vmp, mmp, ovf + # determinstic or stochastic action selection + action_selection: str = field(static=True) + # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") + sampling_mode: str = field(static=True) + # fpi, vmp, mmp, ovf + inference_algo: str = field(static=True) learn_A: bool = field(static=True) learn_B: bool = field(static=True) @@ -89,11 +100,11 @@ def __init__( self, A, B, - C, - D, - E, - pA, - pB, + C=None, + D=None, + E=None, + pA=None, + pB=None, A_dependencies=None, B_dependencies=None, qs=None, @@ -121,55 +132,42 @@ def __init__( learn_B=True, learn_C=False, learn_D=True, - learn_E=False + learn_E=False, ): - ### PyTree leaves + + # TODO: infer batch shape in general case, here we assume no batch in Distribution object + A = [jnp.expand_dims(a.data, 0) if isinstance(a, Distribution) else a for a in A] + B = [jnp.expand_dims(b.data, 0) if isinstance(b, Distribution) else b for b in B] + + # PyTree leaves self.A = A self.B = B self.C = C self.D = D - # self.empirical_prior = D self.H = H self.pA = pA self.pB = pB - self.qs = qs - self.q_pi = q_pi self.onehot_obs = onehot_obs element_size = lambda x: x.shape[1] self.num_factors = len(self.B) - self.num_states = jtu.tree_map(element_size, self.B) + self.num_states = jtu.tree_map(element_size, self.B) self.num_modalities = len(self.A) self.num_obs = jtu.tree_map(element_size, self.A) - # Ensure consistency of A_dependencies with num_states and num_factors if A_dependencies is not None: self.A_dependencies = A_dependencies else: # assume full dependence of A matrices and state factors self.A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] - - for m in range(self.num_modalities): - factor_dims = tuple([self.num_states[f] for f in self.A_dependencies[m]]) - assert self.A[m].shape[2:] == factor_dims, f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." - if self.pA != None: - assert self.pA[m].shape[2:] == factor_dims, f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of pA[{m}]..." - assert max(self.A_dependencies[m]) <= (self.num_factors - 1), f"Check modality {m} of `A_dependencies` - must be consistent with `num_states` and `num_factors`..." - - # Ensure consistency of B_dependencies with num_states and num_factors + if B_dependencies is not None: self.B_dependencies = B_dependencies else: - self.B_dependencies = [[f] for f in range(self.num_factors)] # defaults to having all factors depend only on themselves - - for f in range(self.num_factors): - factor_dims = tuple([self.num_states[f] for f in self.B_dependencies[f]]) - assert self.B[f].shape[2:-1] == factor_dims, f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B[{f}]..." - if self.pB != None: - assert self.pB[f].shape[2:-1] == factor_dims, f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB[{f}]..." - assert max(self.B_dependencies[f]) <= (self.num_factors - 1), f"Check factor {f} of `B_dependencies` - must be consistent with `num_states` and `num_factors`..." + # defaults to having all factors depend only on themselves + self.B_dependencies = [[f] for f in range(self.num_factors)] self.batch_size = self.A[0].shape[0] @@ -178,7 +176,7 @@ def __init__( self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) self.inductive_epsilon = jnp.broadcast_to(inductive_epsilon, (self.batch_size,)) - ### Static parameters ### + # static parameters self.num_iter = num_iter self.inference_algo = inference_algo self.inductive_depth = inductive_depth @@ -193,7 +191,6 @@ def __init__( self.use_inductive = use_inductive if self.use_inductive and self.H is not None: - # print("Using inductive inference...") self.I = self._construct_I() elif self.use_inductive and I is not None: self.I = I @@ -207,97 +204,45 @@ def __init__( self.learn_D = learn_D self.learn_E = learn_E - """ Determine number of observation modalities and their respective dimensions """ + # Determine number of observation modalities and their respective dimensions self.num_obs = [self.A[m].shape[1] for m in range(len(self.A))] self.num_modalities = len(self.num_obs) # If no `num_controls` are given, then this is inferred from the shapes of the input B matrices self.num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] - # Users have the option to make only certain factors controllable. - # default behaviour is to make all hidden state factors controllable - # (i.e. self.num_states == self.num_controls) # Users have the option to make only certain factors controllable. # default behaviour is to make all hidden state factors controllable, i.e. `self.num_factors == len(self.num_controls)` if control_fac_idx == None: self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] else: - assert max(control_fac_idx) <= (self.num_factors - 1), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + assert max(control_fac_idx) <= ( + self.num_factors - 1 + ), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." self.control_fac_idx = control_fac_idx - for factor_idx in self.control_fac_idx: - assert self.num_controls[factor_idx] > 1, "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" + self.policies = policies if policies is not None else self._construct_policies() - if policies is not None: - self.policies = policies - else: - self._construct_policies() - # set E to uniform/uninformative prior over policies if not given if E is None: - self.E = jnp.ones((self.batch_size, len(self.policies)))/ len(self.policies) + self.E = jnp.ones((self.batch_size, len(self.policies))) / len(self.policies) else: self.E = E - def _construct_policies(self): - - self.policies = control.construct_policies( - self.num_states, self.num_controls, self.policy_len, self.control_fac_idx - ) - - @vmap - def _construct_I(self): - return control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) - - @property - def unique_multiactions(self): - size = pymath.prod(self.num_controls) - return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) - - @vmap - def learning(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1., lr_pB=1., **kwargs): - agent = self - if self.learn_A: - o_vec_seq = jtu.tree_map(lambda o, dim: nn.one_hot(o, dim), outcomes, self.num_obs) - qA = learning.update_obs_likelihood_dirichlet(self.pA, o_vec_seq, beliefs_A, self.A_dependencies, lr=lr_pA) - E_qA = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qA) - agent = tree_at(lambda x: (x.A, x.pA), agent, (E_qA, qA)) - - if self.learn_B: - beliefs_B = beliefs_A if beliefs_B is None else beliefs_B - actions_seq = [actions[..., i] for i in range(actions.shape[-1])] # as many elements as there are control factors, where each element is a jnp.ndarray of shape (n_timesteps, ) - assert beliefs_B[0].shape[0] == actions_seq[0].shape[0] + 1 - actions_onehot = jtu.tree_map(lambda a, dim: nn.one_hot(a, dim, axis=-1), actions_seq, self.num_controls) - qB = learning.update_state_likelihood_dirichlet(self.pB, beliefs_B, actions_onehot, self.B_dependencies, lr=lr_pB) - E_qB = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qB) - - # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece - if self.use_inductive and self.H is not None: - I_updated = control.generate_I_matrix(self.H, E_qB, self.inductive_threshold, self.inductive_depth) - else: - I_updated = self.I - - agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) - - # if self.learn_C: - # self.qC = learning.update_C(self.C, *args, **kwargs) - # self.C = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), self.qC) - # if self.learn_D: - # self.qD = learning.update_D(self.D, *args, **kwargs) - # self.D = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), self.qD) - # if self.learn_E: - # self.qE = learning.update_E(self.E, *args, **kwargs) - # self.E = maths.dirichlet_expected_value(self.qE) + if D is None: + self.D = [ + jnp.ones((self.batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors) + ] + else: + self.D = D - # do stuff - # variables = ... - # parameters = ... - # varibles = {'A': jnp.ones(5)} + if C is None: + self.C = [ + jnp.ones((self.batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities) + ] - # agent = tree_at(lambda x: (x.A, x.pA, x.B, x.pB, x.I), self, (E_qA, qA, E_qB, qB, I_updated)) + self._validate() - return agent - @vmap def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mask=None): """ @@ -310,28 +255,28 @@ def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mas past_actions: ``list`` or ``tuple`` of ints The action input. Each entry ``past_actions[f]`` stores indices (or one-hots?) representing the actions for control factor ``f``. empirical_prior: ``list`` or ``tuple`` of ``jax.numpy.ndarray`` of dtype object - Empirical prior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``empirical_prior`` variable may be a matrix (or list of matrices) + Empirical prior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``empirical_prior`` variable may be a matrix (or list of matrices) of additional dimensions to encode extra conditioning variables like timepoint and policy. Returns --------- qs: ``numpy.ndarray`` of dtype object Posterior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` at timepoint ``t_idx``. """ if not self.onehot_obs: o_vec = [nn.one_hot(o, self.num_obs[m]) for m, o in enumerate(observations)] else: o_vec = observations - + A = self.A if mask is not None: for i, m in enumerate(mask): o_vec[i] = m * o_vec[i] + (1 - m) * jnp.ones_like(o_vec[i]) / self.num_obs[i] A[i] = m * A[i] + (1 - m) * jnp.ones_like(A[i]) / self.num_obs[i] - + output = inference.update_posterior_states( A, self.B, @@ -342,21 +287,11 @@ def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mas A_dependencies=self.A_dependencies, B_dependencies=self.B_dependencies, num_iter=self.num_iter, - method=self.inference_algo + method=self.inference_algo, ) return output - @partial(vmap, in_axes=(0, 0, 0)) - def update_empirical_prior(self, action, qs): - # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t - - qs_last = jtu.tree_map( lambda x: x[-1], qs) - # this computation of the predictive prior is correct only for fully factorised Bs. - pred = control.compute_expected_state(qs_last, self.B, action, B_dependencies=self.B_dependencies) - - return (pred, qs) - @vmap def infer_policies(self, qs: List): """ @@ -373,10 +308,10 @@ def infer_policies(self, qs: List): Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. """ - latest_belief = jtu.tree_map(lambda x: x[-1], qs) # only get the posterior belief held at the current timepoint + latest_belief = jtu.tree_map(lambda x: x[-1], qs) # only get the posterior belief held at the current timepoint q_pi, G = control.update_posterior_policies_inductive( self.policies, - latest_belief, + latest_belief, self.A, self.B, self.C, @@ -385,17 +320,74 @@ def infer_policies(self, qs: List): self.pB, A_dependencies=self.A_dependencies, B_dependencies=self.B_dependencies, - I = self.I, + I=self.I, gamma=self.gamma, inductive_epsilon=self.inductive_epsilon, use_utility=self.use_utility, use_states_info_gain=self.use_states_info_gain, use_param_info_gain=self.use_param_info_gain, - use_inductive=self.use_inductive + use_inductive=self.use_inductive, ) return q_pi, G - + + @vmap + def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1.0, lr_pB=1.0, **kwargs): + agent = self + if self.learn_A: + o_vec_seq = jtu.tree_map(lambda o, dim: nn.one_hot(o, dim), outcomes, self.num_obs) + qA = learning.update_obs_likelihood_dirichlet(self.pA, o_vec_seq, beliefs_A, self.A_dependencies, lr=lr_pA) + E_qA = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qA) + agent = tree_at(lambda x: (x.A, x.pA), agent, (E_qA, qA)) + + if self.learn_B: + beliefs_B = beliefs_A if beliefs_B is None else beliefs_B + # as many elements as there are control factors, where each element is a jnp.ndarray of shape (n_timesteps, ) + actions_seq = [actions[..., i] for i in range(actions.shape[-1])] + assert beliefs_B[0].shape[0] == actions_seq[0].shape[0] + 1 + actions_onehot = jtu.tree_map(lambda a, dim: nn.one_hot(a, dim, axis=-1), actions_seq, self.num_controls) + qB = learning.update_state_likelihood_dirichlet( + self.pB, beliefs_B, actions_onehot, self.B_dependencies, lr=lr_pB + ) + E_qB = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qB) + + # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece + if self.use_inductive and self.H is not None: + I_updated = control.generate_I_matrix(self.H, E_qB, self.inductive_threshold, self.inductive_depth) + else: + I_updated = self.I + + agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) + + # if self.learn_C: + # self.qC = learning.update_C(self.C, *args, **kwargs) + # self.C = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), self.qC) + # if self.learn_D: + # self.qD = learning.update_D(self.D, *args, **kwargs) + # self.D = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), self.qD) + # if self.learn_E: + # self.qE = learning.update_E(self.E, *args, **kwargs) + # self.E = maths.dirichlet_expected_value(self.qE) + + # do stuff + # variables = ... + # parameters = ... + # varibles = {'A': jnp.ones(5)} + + # agent = tree_at(lambda x: (x.A, x.pA, x.B, x.pB, x.I), self, (E_qA, qA, E_qB, qB, I_updated)) + + return agent + + @partial(vmap, in_axes=(0, 0, 0)) + def infer_empirical_prior(self, action, qs): + # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t + + qs_last = jtu.tree_map(lambda x: x[-1], qs) + # this computation of the predictive prior is correct only for fully factorised Bs. + pred = control.compute_expected_state(qs_last, self.B, action, B_dependencies=self.B_dependencies) + + return (pred, qs) + @vmap def multiaction_probabilities(self, q_pi: Array): """ @@ -405,7 +397,7 @@ def multiaction_probabilities(self, q_pi: Array): ---------- q_pi: 1D ``numpy.ndarray`` Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - + Returns ---------- multi-action: 1D ``jax.numpy.ndarray`` @@ -418,20 +410,17 @@ def multiaction_probabilities(self, q_pi: Array): marginals = jtu.tree_reduce(outer, marginals) elif self.sampling_mode == "full": - locs = jnp.all( - self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), - -1 - ) - marginals = jnp.where(locs, q_pi, 0.).sum(-1) + locs = jnp.all(self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), -1) + marginals = jnp.where(locs, q_pi, 0.0).sum(-1) - # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan + # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan return marginals @vmap def sample_action(self, q_pi: Array, rng_key=None): """ Sample or select a discrete action from the posterior over control states. - + Returns ---------- action: 1D ``jax.numpy.ndarray`` @@ -444,12 +433,16 @@ def sample_action(self, q_pi: Array, rng_key=None): raise ValueError("Please provide a random number generator key to sample actions stochastically") if self.sampling_mode == "marginal": - action = control.sample_action(q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key) + action = control.sample_action( + q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key + ) elif self.sampling_mode == "full": - action = control.sample_policy(q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key) + action = control.sample_policy( + q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key + ) return action - + def _get_default_params(self): method = self.inference_algo default_params = None @@ -466,4 +459,50 @@ def _get_default_params(self): elif method == "CV": raise NotImplementedError("CV is not implemented") - return default_params \ No newline at end of file + return default_params + + def _construct_policies(self): + self.policies = control.construct_policies( + self.num_states, self.num_controls, self.policy_len, self.control_fac_idx + ) + + @vmap + def _construct_I(self): + return control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) + + @property + def unique_multiactions(self): + size = pymath.prod(self.num_controls) + return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) + + def _validate(self): + for m in range(self.num_modalities): + factor_dims = tuple([self.num_states[f] for f in self.A_dependencies[m]]) + assert ( + self.A[m].shape[2:] == factor_dims + ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." + if self.pA != None: + assert ( + self.pA[m].shape[2:] == factor_dims + ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of pA[{m}]..." + assert max(self.A_dependencies[m]) <= ( + self.num_factors - 1 + ), f"Check modality {m} of `A_dependencies` - must be consistent with `num_states` and `num_factors`..." + + for f in range(self.num_factors): + factor_dims = tuple([self.num_states[f] for f in self.B_dependencies[f]]) + assert ( + self.B[f].shape[2:-1] == factor_dims + ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B[{f}]..." + if self.pB != None: + assert ( + self.pB[f].shape[2:-1] == factor_dims + ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB[{f}]..." + assert max(self.B_dependencies[f]) <= ( + self.num_factors - 1 + ), f"Check factor {f} of `B_dependencies` - must be consistent with `num_states` and `num_factors`..." + + for factor_idx in self.control_fac_idx: + assert ( + self.num_controls[factor_idx] > 1 + ), "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" From 435dcb171c769c572e0310fec9d42b1917d62123 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 14:41:02 +0200 Subject: [PATCH 067/196] add some documentation --- examples/distribution_api.ipynb | 45 ++++++++++++++++++++++++++++++++- pymdp/jax/distribution.py | 44 ++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 1 deletion(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index 9407f07d..855bb3ca 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -1,8 +1,28 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Named Distributions API\n", + "\n", + "In this notebook we'll give some example uses of the named distribution api\n", + "designed for easier querying and construction of complicated A and B tensors.\n", + "\n", + "The distribution objects allow for giving semantically sensible names to axes\n", + "and indices within a tensor. These can be made interactively in code or an \n", + "entire set of A and B tensors can be compiled from a structured model\n", + "description.\n", + "\n", + "Below is an example of how to build a distribution from code for a model\n", + "conisting of a single observation modality \"observation\" consiting of the\n", + "possible observations {A, B, C, D}. A hidden state \"state\" consisting of the\n", + "values {A, B, C, D} and controls \"control\" {up, down}." + ] + }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -25,10 +45,14 @@ "\n", "np.set_printoptions(precision=2, suppress=True)\n", "\n", + "## Likelihood\n", + "\n", + "# Define the labels for the factors and modalities.\n", "observations = [\"A\", \"B\", \"C\", \"D\"]\n", "states = [\"A\", \"B\", \"C\", \"D\"]\n", "controls = [\"up\", \"down\"]\n", "\n", + "# Create the underlying data structure.\n", "data = np.zeros((len(observations), len(states)))\n", "A = Distribution(data, {\"observations\": observations}, {\"states\": states})\n", "\n", @@ -37,6 +61,9 @@ "A[\"C\", \"C\"] = 1.0\n", "A[\"D\", \"D\"] = 1.0\n", "\n", + "\n", + "## Transition\n", + "# Similarily we can use the distributions to build a \n", "data = np.zeros((len(states), len(states), len(controls)))\n", "B = Distribution(data, {\"states\": states}, {\"states\": states, \"controls\": controls})\n", "\n", @@ -73,6 +100,22 @@ "action = agent.sample_action(q_pi)\n", "print(action)" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using configs\n", + "Alternatively you can use a model description to just generate the shape of the\n", + "A's and the B's in one go. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 27ce25f0..7551d5c8 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -82,6 +82,50 @@ def __setitem__(self, indices, value): def compile_model(config): + """Compile a model from a config. + + Takes a model description dictionary and builds the corresponding + Likelihood and Transition tensors. The tensors are filled with only + zeros and need to be filled in later by the caller of this function. + --- + The config should consist of three top-level keys: + * observations + * controls + * states + where each entry consists of another dictionary with the name of the + modality as key and the modality description. + + The modality description should consist out of either a `size` or `elements` + field indicating the named elements or the size of the integer array. + In the case of an observation the `depends_on` field needs to be present to + indicate what state factor links to this observation. In the case of states + the `depends_on_states` and `depends_on_control` fields are needed. + --- + example config: + { "observations": { + "observation_1": {"size": 10, "depends_on": ["factor_1"]}, + "observation_2": { + "elements": ["A", "B"], + "depends_on": ["factor_1"], + }, + }, + "controls": { + "control_1": {"size": 2}, + "control_2": {"elements": ["X", "Y"]}, + }, + "states": { + "factor_1": { + "elements": ["II", "JJ", "KK"], + "depends_on_states": ["factor_1", "factor_2"], + "depends_on_control": ["control_1", "control_2"], + }, + "factor_2": { + "elements": ["foo", "bar"], + "depends_on_states": ["factor_2"], + "depends_on_control": ["control_2"], + }, + }} + """ # these are needed to get the ordering of the dimensions correct for pymdp state_dependencies = dict() control_dependencies = dict() From 91b1de7538d6a26b66f1c00252091a65d3504fe1 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 15:09:52 +0200 Subject: [PATCH 068/196] add get_dependencies --- pymdp/jax/distribution.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 7551d5c8..79e5de62 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -181,6 +181,25 @@ def compile_model(config): return transitions, likelihoods +def get_dependencies(transitions, likelihoods): + print(likelihoods[0]) + likelihood_dependencies = dict() + transition_dependencies = dict() + observations = [list(like.event.keys())[0] for like in likelihoods] + states = [list(trans.event.keys())[0] for trans in transitions] + for like in likelihoods: + likelihood_dependencies[list(like.event.keys())[0]] = [ + states.index(name) for name in like.batch.keys() + ] + for trans in transitions: + transition_dependencies[list(trans.event.keys())[0]] = [ + states.index(name) for name in trans.batch.keys() if name in states + ] + return list(likelihood_dependencies.values()), list( + transition_dependencies.values() + ) + + if __name__ == "__main__": controls = ["up", "down"] locations = ["A", "B", "C", "D"] @@ -230,7 +249,7 @@ def compile_model(config): "observation_1": {"size": 10, "depends_on": ["factor_1"]}, "observation_2": { "elements": ["A", "B"], - "depends_on": ["factor_1"], + "depends_on": ["factor_2"], }, }, "controls": { @@ -256,6 +275,8 @@ def compile_model(config): assert trans[0].data.shape == (3, 3, 2, 2, 2) assert trans[1].data.shape == (2, 2, 2) assert like[0].data.shape == (10, 3) - assert like[1].data.shape == (2, 3) + assert like[1].data.shape == (2, 2) assert like[0][:, "II"] is not None assert like[1][1, :] is not None + A_deps, B_deps = get_dependencies(trans, like) + print(A_deps, B_deps) From a2bfbda5e4a05efee53caac022da50cb7af0b992 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 15:11:24 +0200 Subject: [PATCH 069/196] clean up a bit --- pymdp/jax/distribution.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 79e5de62..7f1331f4 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -185,7 +185,6 @@ def get_dependencies(transitions, likelihoods): print(likelihoods[0]) likelihood_dependencies = dict() transition_dependencies = dict() - observations = [list(like.event.keys())[0] for like in likelihoods] states = [list(trans.event.keys())[0] for trans in transitions] for like in likelihoods: likelihood_dependencies[list(like.event.keys())[0]] = [ From ec97a1340d086ee159ceaa6545b2bb7de7f6acef Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 15:38:57 +0200 Subject: [PATCH 070/196] add dependency extraction to jax agent --- examples/distribution_api.ipynb | 91 ++++++++++++++++++++++++++++----- pymdp/jax/agent.py | 5 +- pymdp/jax/distribution.py | 50 ++++-------------- 3 files changed, 94 insertions(+), 52 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index 855bb3ca..c3a3f771 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -38,21 +38,28 @@ "source": [ "import numpy as np\n", "import jax\n", - "from jax import numpy as jnp \n", + "from jax import numpy as jnp\n", "\n", "from pymdp.jax import Distribution\n", "from pymdp.jax.agent import Agent\n", "\n", "np.set_printoptions(precision=2, suppress=True)\n", "\n", - "## Likelihood\n", "\n", - "# Define the labels for the factors and modalities.\n", + "def get_task_info():\n", + " policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", + " C = jnp.zeros((1, 4))\n", + " C = C.at[0, 3].set(1.0)\n", + " action = jnp.array([[1]])\n", + " qs = [jnp.zeros((1, 1, 4))]\n", + " qs[0] = qs[0].at[0, 0, 0].set(1.0)\n", + " observation = [jnp.array([[0]])]\n", + " return policies, C, action, qs, observation\n", + "\n", "observations = [\"A\", \"B\", \"C\", \"D\"]\n", "states = [\"A\", \"B\", \"C\", \"D\"]\n", "controls = [\"up\", \"down\"]\n", "\n", - "# Create the underlying data structure.\n", "data = np.zeros((len(observations), len(states)))\n", "A = Distribution(data, {\"observations\": observations}, {\"states\": states})\n", "\n", @@ -91,14 +98,12 @@ "observation = [jnp.array([[0]])]\n", "prior, _ = agent.infer_empirical_prior(action, qs)\n", "\n", + "agent = Agent([A], [B], [C], policies=policies)\n", + "prior, _ = agent.infer_empirical_prior(action, qs)\n", "qs = agent.infer_states(observation, None, prior, None)\n", - "print(qs)\n", "\n", "q_pi, G = agent.infer_policies(qs)\n", - "print(q_pi)\n", - "key = jax.random.PRNGKey(0)\n", - "action = agent.sample_action(q_pi)\n", - "print(action)" + "action = agent.sample_action(q_pi)" ] }, { @@ -112,10 +117,72 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(4, 4)\n" + ] + }, + { + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[13], line 21\u001b[0m\n\u001b[1;32m 18\u001b[0m As[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 19\u001b[0m As[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[0;32m---> 21\u001b[0m \u001b[43mBs\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mB\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mA\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mup\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 22\u001b[0m Bs[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mB\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mup\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 23\u001b[0m Bs[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mup\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n", + "File \u001b[0;32m~/repos/pymdp/pymdp/jax/distribution.py:78\u001b[0m, in \u001b[0;36m__setitem__\u001b[0;34m(self, indices, value)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcompile_model\u001b[39m(config):\n\u001b[1;32m 73\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Compile a model from a config.\u001b[39;00m\n\u001b[1;32m 74\u001b[0m \n\u001b[1;32m 75\u001b[0m \u001b[38;5;124;03m Takes a model description dictionary and builds the corresponding\u001b[39;00m\n\u001b[1;32m 76\u001b[0m \u001b[38;5;124;03m Likelihood and Transition tensors. The tensors are filled with only\u001b[39;00m\n\u001b[1;32m 77\u001b[0m \u001b[38;5;124;03m zeros and need to be filled in later by the caller of this function.\u001b[39;00m\n\u001b[0;32m---> 78\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[1;32m 79\u001b[0m \u001b[38;5;124;03m The config should consist of three top-level keys:\u001b[39;00m\n\u001b[1;32m 80\u001b[0m \u001b[38;5;124;03m * observations\u001b[39;00m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;124;03m * controls\u001b[39;00m\n\u001b[1;32m 82\u001b[0m \u001b[38;5;124;03m * states\u001b[39;00m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;124;03m where each entry consists of another dictionary with the name of the\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \u001b[38;5;124;03m modality as key and the modality description.\u001b[39;00m\n\u001b[1;32m 85\u001b[0m \n\u001b[1;32m 86\u001b[0m \u001b[38;5;124;03m The modality description should consist out of either a `size` or `elements`\u001b[39;00m\n\u001b[1;32m 87\u001b[0m \u001b[38;5;124;03m field indicating the named elements or the size of the integer array.\u001b[39;00m\n\u001b[1;32m 88\u001b[0m \u001b[38;5;124;03m In the case of an observation the `depends_on` field needs to be present to\u001b[39;00m\n\u001b[1;32m 89\u001b[0m \u001b[38;5;124;03m indicate what state factor links to this observation. In the case of states\u001b[39;00m\n\u001b[1;32m 90\u001b[0m \u001b[38;5;124;03m the `depends_on_states` and `depends_on_control` fields are needed.\u001b[39;00m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;124;03m example config:\u001b[39;00m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124;03m { \"observations\": {\u001b[39;00m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;124;03m \"observation_1\": {\"size\": 10, \"depends_on\": [\"factor_1\"]},\u001b[39;00m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124;03m \"observation_2\": {\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \u001b[38;5;124;03m \"elements\": [\"A\", \"B\"],\u001b[39;00m\n\u001b[1;32m 97\u001b[0m \u001b[38;5;124;03m \"depends_on\": [\"factor_1\"],\u001b[39;00m\n\u001b[1;32m 98\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 100\u001b[0m \u001b[38;5;124;03m \"controls\": {\u001b[39;00m\n\u001b[1;32m 101\u001b[0m \u001b[38;5;124;03m \"control_1\": {\"size\": 2},\u001b[39;00m\n\u001b[1;32m 102\u001b[0m \u001b[38;5;124;03m \"control_2\": {\"elements\": [\"X\", \"Y\"]},\u001b[39;00m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 104\u001b[0m \u001b[38;5;124;03m \"states\": {\u001b[39;00m\n\u001b[1;32m 105\u001b[0m \u001b[38;5;124;03m \"factor_1\": {\u001b[39;00m\n\u001b[1;32m 106\u001b[0m \u001b[38;5;124;03m \"elements\": [\"II\", \"JJ\", \"KK\"],\u001b[39;00m\n\u001b[1;32m 107\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_1\", \"factor_2\"],\u001b[39;00m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_1\", \"control_2\"],\u001b[39;00m\n\u001b[1;32m 109\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 110\u001b[0m \u001b[38;5;124;03m \"factor_2\": {\u001b[39;00m\n\u001b[1;32m 111\u001b[0m \u001b[38;5;124;03m \"elements\": [\"foo\", \"bar\"],\u001b[39;00m\n\u001b[1;32m 112\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_2\"],\u001b[39;00m\n\u001b[1;32m 113\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_2\"],\u001b[39;00m\n\u001b[1;32m 114\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 115\u001b[0m \u001b[38;5;124;03m }}\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m 117\u001b[0m \u001b[38;5;66;03m# these are needed to get the ordering of the dimensions correct for pymdp\u001b[39;00m\n\u001b[1;32m 118\u001b[0m state_dependencies \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mdict\u001b[39m()\n", + "File \u001b[0;32m~/repos/pymdp/pymdp/jax/distribution.py:79\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcompile_model\u001b[39m(config):\n\u001b[1;32m 73\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Compile a model from a config.\u001b[39;00m\n\u001b[1;32m 74\u001b[0m \n\u001b[1;32m 75\u001b[0m \u001b[38;5;124;03m Takes a model description dictionary and builds the corresponding\u001b[39;00m\n\u001b[1;32m 76\u001b[0m \u001b[38;5;124;03m Likelihood and Transition tensors. The tensors are filled with only\u001b[39;00m\n\u001b[1;32m 77\u001b[0m \u001b[38;5;124;03m zeros and need to be filled in later by the caller of this function.\u001b[39;00m\n\u001b[1;32m 78\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[0;32m---> 79\u001b[0m \u001b[38;5;124;03m The config should consist of three top-level keys:\u001b[39;00m\n\u001b[1;32m 80\u001b[0m \u001b[38;5;124;03m * observations\u001b[39;00m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;124;03m * controls\u001b[39;00m\n\u001b[1;32m 82\u001b[0m \u001b[38;5;124;03m * states\u001b[39;00m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;124;03m where each entry consists of another dictionary with the name of the\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \u001b[38;5;124;03m modality as key and the modality description.\u001b[39;00m\n\u001b[1;32m 85\u001b[0m \n\u001b[1;32m 86\u001b[0m \u001b[38;5;124;03m The modality description should consist out of either a `size` or `elements`\u001b[39;00m\n\u001b[1;32m 87\u001b[0m \u001b[38;5;124;03m field indicating the named elements or the size of the integer array.\u001b[39;00m\n\u001b[1;32m 88\u001b[0m \u001b[38;5;124;03m In the case of an observation the `depends_on` field needs to be present to\u001b[39;00m\n\u001b[1;32m 89\u001b[0m \u001b[38;5;124;03m indicate what state factor links to this observation. In the case of states\u001b[39;00m\n\u001b[1;32m 90\u001b[0m \u001b[38;5;124;03m the `depends_on_states` and `depends_on_control` fields are needed.\u001b[39;00m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;124;03m example config:\u001b[39;00m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124;03m { \"observations\": {\u001b[39;00m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;124;03m \"observation_1\": {\"size\": 10, \"depends_on\": [\"factor_1\"]},\u001b[39;00m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124;03m \"observation_2\": {\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \u001b[38;5;124;03m \"elements\": [\"A\", \"B\"],\u001b[39;00m\n\u001b[1;32m 97\u001b[0m \u001b[38;5;124;03m \"depends_on\": [\"factor_1\"],\u001b[39;00m\n\u001b[1;32m 98\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 100\u001b[0m \u001b[38;5;124;03m \"controls\": {\u001b[39;00m\n\u001b[1;32m 101\u001b[0m \u001b[38;5;124;03m \"control_1\": {\"size\": 2},\u001b[39;00m\n\u001b[1;32m 102\u001b[0m \u001b[38;5;124;03m \"control_2\": {\"elements\": [\"X\", \"Y\"]},\u001b[39;00m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 104\u001b[0m \u001b[38;5;124;03m \"states\": {\u001b[39;00m\n\u001b[1;32m 105\u001b[0m \u001b[38;5;124;03m \"factor_1\": {\u001b[39;00m\n\u001b[1;32m 106\u001b[0m \u001b[38;5;124;03m \"elements\": [\"II\", \"JJ\", \"KK\"],\u001b[39;00m\n\u001b[1;32m 107\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_1\", \"factor_2\"],\u001b[39;00m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_1\", \"control_2\"],\u001b[39;00m\n\u001b[1;32m 109\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 110\u001b[0m \u001b[38;5;124;03m \"factor_2\": {\u001b[39;00m\n\u001b[1;32m 111\u001b[0m \u001b[38;5;124;03m \"elements\": [\"foo\", \"bar\"],\u001b[39;00m\n\u001b[1;32m 112\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_2\"],\u001b[39;00m\n\u001b[1;32m 113\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_2\"],\u001b[39;00m\n\u001b[1;32m 114\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 115\u001b[0m \u001b[38;5;124;03m }}\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m 117\u001b[0m \u001b[38;5;66;03m# these are needed to get the ordering of the dimensions correct for pymdp\u001b[39;00m\n\u001b[1;32m 118\u001b[0m state_dependencies \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mdict\u001b[39m()\n", + "File \u001b[0;32m~/repos/pymdp/pymdp/jax/distribution.py:63\u001b[0m, in \u001b[0;36m_get_index_from_axis\u001b[0;34m(self, axis, element)\u001b[0m\n\u001b[1;32m 61\u001b[0m indices \u001b[38;5;241m=\u001b[39m (indices,)\n\u001b[1;32m 62\u001b[0m index_list \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_index_from_axis(i, idx) \u001b[38;5;28;01mfor\u001b[39;00m i, idx \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(indices)]\n\u001b[0;32m---> 63\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata[\u001b[38;5;28mtuple\u001b[39m(index_list)]\n", + "\u001b[0;31mIndexError\u001b[0m: list index out of range" + ] + } + ], + "source": [ + "from pymdp.jax import distribution\n", + "\n", + "model = {\n", + " \"observations\": {\n", + " \"o1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"]},\n", + " },\n", + " \"controls\": {\"c1\": {\"elements\": [\"up\", \"down\"]}},\n", + " \"states\": {\n", + " \"s1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on_states\": [\"s1\"], \"depends_on_control\": [\"c1\"]},\n", + " },\n", + "}\n", + "\n", + "As, Bs = distribution.compile_model(model)\n", + "print(Bs[0].data.shape)\n", + "\n", + "As[0][\"A\", \"A\"] = 1.0\n", + "As[0][\"B\", \"B\"] = 1.0\n", + "As[0][\"C\", \"C\"] = 1.0\n", + "As[0][\"D\", \"D\"] = 1.0\n", + "\n", + "Bs[0][\"B\", \"A\", \"up\"] = 1.0\n", + "Bs[0][\"C\", \"B\", \"up\"] = 1.0\n", + "Bs[0][\"D\", \"C\", \"up\"] = 1.0\n", + "Bs[0][\"D\", \"D\", \"up\"] = 1.0\n", + "\n", + "Bs[0][\"A\", \"A\", \"down\"] = 1.0\n", + "Bs[0][\"A\", \"B\", \"down\"] = 1.0\n", + "Bs[0][\"B\", \"C\", \"down\"] = 1.0\n", + "Bs[0][\"C\", \"D\", \"down\"] = 1.0\n", + "\n", + "policies, Cs, action, qs, observation = get_task_info()\n", + "\n", + "agent = Agent(As, Bs, Cs, policies=policies)\n", + "prior, _ = agent.infer_empirical_prior(action, qs)\n", + "qs = agent.infer_states(observation, None, prior, None)\n", + "\n", + "q_pi, G = agent.infer_policies(qs)\n", + "action = agent.sample_action(q_pi)\n", + "print(action)" + ] } ], "metadata": { diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 68a3d51c..f8ed8f6e 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -12,7 +12,7 @@ import jax.tree_util as jtu from jax import nn, vmap, random from . import inference, control, learning, utils, maths -from .distribution import Distribution +from .distribution import Distribution, get_dependencies from equinox import Module, field, tree_at from typing import List, Optional @@ -135,6 +135,9 @@ def __init__( learn_E=False, ): + if A_dependencies is None and B_dependencies is None: + A_dependencies, B_dependencies = get_dependencies(A, B) + # TODO: infer batch shape in general case, here we assume no batch in Distribution object A = [jnp.expand_dims(a.data, 0) if isinstance(a, Distribution) else a for a in A] B = [jnp.expand_dims(b.data, 0) if isinstance(b, Distribution) else b for b in B] diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 7f1331f4..ca51d439 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -8,14 +8,8 @@ def __init__(self, data: np.ndarray, event: dict, batch: dict): self.event = event self.batch = batch - self.event_indices = { - key: {v: i for i, v in enumerate(values)} - for key, values in event.items() - } - self.batch_indices = { - key: {v: i for i, v in enumerate(values)} - for key, values in batch.items() - } + self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} + self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} def get(self, batch=None, event=None): event_slices = self._get_slices(event, self.event_indices, self.event) @@ -38,9 +32,7 @@ def _get_slices(self, keys, indices, full_indices): for key in full_indices: if key in keys: if isinstance(keys[key], list): - slices.append( - [self._get_index(v, indices[key]) for v in keys[key]] - ) + slices.append([self._get_index(v, indices[key]) for v in keys[key]]) else: slices.append(self._get_index(keys[key], indices[key])) else: @@ -67,17 +59,13 @@ def _get_index_from_axis(self, axis, element): def __getitem__(self, indices): if not isinstance(indices, tuple): indices = (indices,) - index_list = [ - self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) - ] + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] return self.data[tuple(index_list)] def __setitem__(self, indices, value): if not isinstance(indices, tuple): indices = (indices,) - index_list = [ - self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) - ] + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] self.data[tuple(index_list)] = value @@ -151,9 +139,7 @@ def compile_model(config): case "depends_on_control": control_dependencies[k] = [name for name in v[keyword]] case "depends_on": - likelihood_dependencies[k] = [ - name for name in v[keyword] - ] + likelihood_dependencies[k] = [name for name in v[keyword]] likelihood_events[k] = labels[k] transitions = [] for event, description in transition_events.items(): @@ -182,21 +168,16 @@ def compile_model(config): def get_dependencies(transitions, likelihoods): - print(likelihoods[0]) likelihood_dependencies = dict() transition_dependencies = dict() states = [list(trans.event.keys())[0] for trans in transitions] for like in likelihoods: - likelihood_dependencies[list(like.event.keys())[0]] = [ - states.index(name) for name in like.batch.keys() - ] + likelihood_dependencies[list(like.event.keys())[0]] = [states.index(name) for name in like.batch.keys()] for trans in transitions: transition_dependencies[list(trans.event.keys())[0]] = [ states.index(name) for name in trans.batch.keys() if name in states ] - return list(likelihood_dependencies.values()), list( - transition_dependencies.values() - ) + return list(likelihood_dependencies.values()), list(transition_dependencies.values()) if __name__ == "__main__": @@ -224,22 +205,13 @@ def get_dependencies(transitions, likelihoods): assert np.all(transition[:, "B", "up"] == 1.0) assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.0 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 assert transition.get({"control": "up"}).shape == (4, 4) transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.5 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.7 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) From 0c63c362ea890510c1ab8846db2751eeb7f3f7c9 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 15:55:19 +0200 Subject: [PATCH 071/196] acknowledge that the alphabet has an ordering --- examples/distribution_api.ipynb | 50 +++++++++++++++-------- pymdp/jax/distribution.py | 71 ++++++++++++++++++++++++++------- test/test_distribution.py | 2 +- 3 files changed, 91 insertions(+), 32 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index c3a3f771..5a056244 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -22,16 +22,23 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Array([[[0., 0., 0., 1.]]], dtype=float32)]\n", - "[[0. 1.]]\n", - "[[1]]\n" + "ename": "ValueError", + "evalue": "'states' is not in list", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[1], line 48\u001b[0m\n\u001b[1;32m 44\u001b[0m B[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdown\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 46\u001b[0m policies, C, action, qs, observation \u001b[38;5;241m=\u001b[39m get_task_info()\n\u001b[0;32m---> 48\u001b[0m agent \u001b[38;5;241m=\u001b[39m \u001b[43mAgent\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[43mA\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43mB\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43mC\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpolicies\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpolicies\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 49\u001b[0m prior, _ \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_empirical_prior(action, qs)\n\u001b[1;32m 50\u001b[0m qs \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_states(observation, \u001b[38;5;28;01mNone\u001b[39;00m, prior, \u001b[38;5;28;01mNone\u001b[39;00m)\n", + "File \u001b[0;32m~/develop/pymdp/.venv/lib/python3.11/site-packages/equinox/_module.py:548\u001b[0m, in \u001b[0;36m_ModuleMeta.__call__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 546\u001b[0m initable_cls \u001b[38;5;241m=\u001b[39m _make_initable(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m, post_init, wraps\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 547\u001b[0m \u001b[38;5;66;03m# [Step 2] Instantiate the class as normal.\u001b[39;00m\n\u001b[0;32m--> 548\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m_ModuleMeta\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minitable_cls\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 549\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m _is_abstract(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 550\u001b[0m \u001b[38;5;66;03m# [Step 3] Check that all fields are occupied.\u001b[39;00m\n", + " \u001b[0;31m[... skipping hidden 2 frame]\u001b[0m\n", + "File \u001b[0;32m~/develop/pymdp/pymdp/jax/agent.py:139\u001b[0m, in \u001b[0;36mAgent.__init__\u001b[0;34m(self, A, B, C, D, E, pA, pB, A_dependencies, B_dependencies, qs, q_pi, H, I, policy_len, control_fac_idx, policies, gamma, alpha, inductive_depth, inductive_threshold, inductive_epsilon, use_utility, use_states_info_gain, use_param_info_gain, use_inductive, onehot_obs, action_selection, sampling_mode, inference_algo, num_iter, learn_A, learn_B, learn_C, learn_D, learn_E)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\n\u001b[1;32m 100\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 101\u001b[0m A,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 135\u001b[0m learn_E\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 136\u001b[0m ):\n\u001b[1;32m 138\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m A_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m B_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 139\u001b[0m A_dependencies, B_dependencies \u001b[38;5;241m=\u001b[39m \u001b[43mget_dependencies\u001b[49m\u001b[43m(\u001b[49m\u001b[43mA\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mB\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;66;03m# TODO: infer batch shape in general case, here we assume no batch in Distribution object\u001b[39;00m\n\u001b[1;32m 142\u001b[0m A \u001b[38;5;241m=\u001b[39m [jnp\u001b[38;5;241m.\u001b[39mexpand_dims(a\u001b[38;5;241m.\u001b[39mdata, \u001b[38;5;241m0\u001b[39m) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(a, Distribution) \u001b[38;5;28;01melse\u001b[39;00m a \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m A]\n", + "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36mget_dependencies\u001b[0;34m(transitions, likelihoods)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mlike\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbatch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkeys\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", + "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m like\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys()]\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", + "\u001b[0;31mValueError\u001b[0m: 'states' is not in list" ] } ], @@ -117,28 +124,30 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "(4, 4)\n" + "(4, 4, 2)\n" ] }, { - "ename": "IndexError", - "evalue": "list index out of range", + "ename": "ValueError", + "evalue": "'s1' is not in list", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[13], line 21\u001b[0m\n\u001b[1;32m 18\u001b[0m As[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 19\u001b[0m As[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[0;32m---> 21\u001b[0m \u001b[43mBs\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mB\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mA\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mup\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 22\u001b[0m Bs[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mB\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mup\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 23\u001b[0m Bs[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mup\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n", - "File \u001b[0;32m~/repos/pymdp/pymdp/jax/distribution.py:78\u001b[0m, in \u001b[0;36m__setitem__\u001b[0;34m(self, indices, value)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcompile_model\u001b[39m(config):\n\u001b[1;32m 73\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Compile a model from a config.\u001b[39;00m\n\u001b[1;32m 74\u001b[0m \n\u001b[1;32m 75\u001b[0m \u001b[38;5;124;03m Takes a model description dictionary and builds the corresponding\u001b[39;00m\n\u001b[1;32m 76\u001b[0m \u001b[38;5;124;03m Likelihood and Transition tensors. The tensors are filled with only\u001b[39;00m\n\u001b[1;32m 77\u001b[0m \u001b[38;5;124;03m zeros and need to be filled in later by the caller of this function.\u001b[39;00m\n\u001b[0;32m---> 78\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[1;32m 79\u001b[0m \u001b[38;5;124;03m The config should consist of three top-level keys:\u001b[39;00m\n\u001b[1;32m 80\u001b[0m \u001b[38;5;124;03m * observations\u001b[39;00m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;124;03m * controls\u001b[39;00m\n\u001b[1;32m 82\u001b[0m \u001b[38;5;124;03m * states\u001b[39;00m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;124;03m where each entry consists of another dictionary with the name of the\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \u001b[38;5;124;03m modality as key and the modality description.\u001b[39;00m\n\u001b[1;32m 85\u001b[0m \n\u001b[1;32m 86\u001b[0m \u001b[38;5;124;03m The modality description should consist out of either a `size` or `elements`\u001b[39;00m\n\u001b[1;32m 87\u001b[0m \u001b[38;5;124;03m field indicating the named elements or the size of the integer array.\u001b[39;00m\n\u001b[1;32m 88\u001b[0m \u001b[38;5;124;03m In the case of an observation the `depends_on` field needs to be present to\u001b[39;00m\n\u001b[1;32m 89\u001b[0m \u001b[38;5;124;03m indicate what state factor links to this observation. In the case of states\u001b[39;00m\n\u001b[1;32m 90\u001b[0m \u001b[38;5;124;03m the `depends_on_states` and `depends_on_control` fields are needed.\u001b[39;00m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;124;03m example config:\u001b[39;00m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124;03m { \"observations\": {\u001b[39;00m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;124;03m \"observation_1\": {\"size\": 10, \"depends_on\": [\"factor_1\"]},\u001b[39;00m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124;03m \"observation_2\": {\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \u001b[38;5;124;03m \"elements\": [\"A\", \"B\"],\u001b[39;00m\n\u001b[1;32m 97\u001b[0m \u001b[38;5;124;03m \"depends_on\": [\"factor_1\"],\u001b[39;00m\n\u001b[1;32m 98\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 100\u001b[0m \u001b[38;5;124;03m \"controls\": {\u001b[39;00m\n\u001b[1;32m 101\u001b[0m \u001b[38;5;124;03m \"control_1\": {\"size\": 2},\u001b[39;00m\n\u001b[1;32m 102\u001b[0m \u001b[38;5;124;03m \"control_2\": {\"elements\": [\"X\", \"Y\"]},\u001b[39;00m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 104\u001b[0m \u001b[38;5;124;03m \"states\": {\u001b[39;00m\n\u001b[1;32m 105\u001b[0m \u001b[38;5;124;03m \"factor_1\": {\u001b[39;00m\n\u001b[1;32m 106\u001b[0m \u001b[38;5;124;03m \"elements\": [\"II\", \"JJ\", \"KK\"],\u001b[39;00m\n\u001b[1;32m 107\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_1\", \"factor_2\"],\u001b[39;00m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_1\", \"control_2\"],\u001b[39;00m\n\u001b[1;32m 109\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 110\u001b[0m \u001b[38;5;124;03m \"factor_2\": {\u001b[39;00m\n\u001b[1;32m 111\u001b[0m \u001b[38;5;124;03m \"elements\": [\"foo\", \"bar\"],\u001b[39;00m\n\u001b[1;32m 112\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_2\"],\u001b[39;00m\n\u001b[1;32m 113\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_2\"],\u001b[39;00m\n\u001b[1;32m 114\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 115\u001b[0m \u001b[38;5;124;03m }}\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m 117\u001b[0m \u001b[38;5;66;03m# these are needed to get the ordering of the dimensions correct for pymdp\u001b[39;00m\n\u001b[1;32m 118\u001b[0m state_dependencies \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mdict\u001b[39m()\n", - "File \u001b[0;32m~/repos/pymdp/pymdp/jax/distribution.py:79\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcompile_model\u001b[39m(config):\n\u001b[1;32m 73\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Compile a model from a config.\u001b[39;00m\n\u001b[1;32m 74\u001b[0m \n\u001b[1;32m 75\u001b[0m \u001b[38;5;124;03m Takes a model description dictionary and builds the corresponding\u001b[39;00m\n\u001b[1;32m 76\u001b[0m \u001b[38;5;124;03m Likelihood and Transition tensors. The tensors are filled with only\u001b[39;00m\n\u001b[1;32m 77\u001b[0m \u001b[38;5;124;03m zeros and need to be filled in later by the caller of this function.\u001b[39;00m\n\u001b[1;32m 78\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[0;32m---> 79\u001b[0m \u001b[38;5;124;03m The config should consist of three top-level keys:\u001b[39;00m\n\u001b[1;32m 80\u001b[0m \u001b[38;5;124;03m * observations\u001b[39;00m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;124;03m * controls\u001b[39;00m\n\u001b[1;32m 82\u001b[0m \u001b[38;5;124;03m * states\u001b[39;00m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;124;03m where each entry consists of another dictionary with the name of the\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \u001b[38;5;124;03m modality as key and the modality description.\u001b[39;00m\n\u001b[1;32m 85\u001b[0m \n\u001b[1;32m 86\u001b[0m \u001b[38;5;124;03m The modality description should consist out of either a `size` or `elements`\u001b[39;00m\n\u001b[1;32m 87\u001b[0m \u001b[38;5;124;03m field indicating the named elements or the size of the integer array.\u001b[39;00m\n\u001b[1;32m 88\u001b[0m \u001b[38;5;124;03m In the case of an observation the `depends_on` field needs to be present to\u001b[39;00m\n\u001b[1;32m 89\u001b[0m \u001b[38;5;124;03m indicate what state factor links to this observation. In the case of states\u001b[39;00m\n\u001b[1;32m 90\u001b[0m \u001b[38;5;124;03m the `depends_on_states` and `depends_on_control` fields are needed.\u001b[39;00m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;124;03m ---\u001b[39;00m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;124;03m example config:\u001b[39;00m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124;03m { \"observations\": {\u001b[39;00m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;124;03m \"observation_1\": {\"size\": 10, \"depends_on\": [\"factor_1\"]},\u001b[39;00m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124;03m \"observation_2\": {\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \u001b[38;5;124;03m \"elements\": [\"A\", \"B\"],\u001b[39;00m\n\u001b[1;32m 97\u001b[0m \u001b[38;5;124;03m \"depends_on\": [\"factor_1\"],\u001b[39;00m\n\u001b[1;32m 98\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 100\u001b[0m \u001b[38;5;124;03m \"controls\": {\u001b[39;00m\n\u001b[1;32m 101\u001b[0m \u001b[38;5;124;03m \"control_1\": {\"size\": 2},\u001b[39;00m\n\u001b[1;32m 102\u001b[0m \u001b[38;5;124;03m \"control_2\": {\"elements\": [\"X\", \"Y\"]},\u001b[39;00m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 104\u001b[0m \u001b[38;5;124;03m \"states\": {\u001b[39;00m\n\u001b[1;32m 105\u001b[0m \u001b[38;5;124;03m \"factor_1\": {\u001b[39;00m\n\u001b[1;32m 106\u001b[0m \u001b[38;5;124;03m \"elements\": [\"II\", \"JJ\", \"KK\"],\u001b[39;00m\n\u001b[1;32m 107\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_1\", \"factor_2\"],\u001b[39;00m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_1\", \"control_2\"],\u001b[39;00m\n\u001b[1;32m 109\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 110\u001b[0m \u001b[38;5;124;03m \"factor_2\": {\u001b[39;00m\n\u001b[1;32m 111\u001b[0m \u001b[38;5;124;03m \"elements\": [\"foo\", \"bar\"],\u001b[39;00m\n\u001b[1;32m 112\u001b[0m \u001b[38;5;124;03m \"depends_on_states\": [\"factor_2\"],\u001b[39;00m\n\u001b[1;32m 113\u001b[0m \u001b[38;5;124;03m \"depends_on_control\": [\"control_2\"],\u001b[39;00m\n\u001b[1;32m 114\u001b[0m \u001b[38;5;124;03m },\u001b[39;00m\n\u001b[1;32m 115\u001b[0m \u001b[38;5;124;03m }}\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m 117\u001b[0m \u001b[38;5;66;03m# these are needed to get the ordering of the dimensions correct for pymdp\u001b[39;00m\n\u001b[1;32m 118\u001b[0m state_dependencies \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mdict\u001b[39m()\n", - "File \u001b[0;32m~/repos/pymdp/pymdp/jax/distribution.py:63\u001b[0m, in \u001b[0;36m_get_index_from_axis\u001b[0;34m(self, axis, element)\u001b[0m\n\u001b[1;32m 61\u001b[0m indices \u001b[38;5;241m=\u001b[39m (indices,)\n\u001b[1;32m 62\u001b[0m index_list \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_index_from_axis(i, idx) \u001b[38;5;28;01mfor\u001b[39;00m i, idx \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(indices)]\n\u001b[0;32m---> 63\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata[\u001b[38;5;28mtuple\u001b[39m(index_list)]\n", - "\u001b[0;31mIndexError\u001b[0m: list index out of range" + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 33\u001b[0m\n\u001b[1;32m 29\u001b[0m Bs[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdown\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 31\u001b[0m policies, Cs, action, qs, observation \u001b[38;5;241m=\u001b[39m get_task_info()\n\u001b[0;32m---> 33\u001b[0m agent \u001b[38;5;241m=\u001b[39m \u001b[43mAgent\u001b[49m\u001b[43m(\u001b[49m\u001b[43mAs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mBs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mCs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpolicies\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpolicies\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 34\u001b[0m prior, _ \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_empirical_prior(action, qs)\n\u001b[1;32m 35\u001b[0m qs \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_states(observation, \u001b[38;5;28;01mNone\u001b[39;00m, prior, \u001b[38;5;28;01mNone\u001b[39;00m)\n", + "File \u001b[0;32m~/develop/pymdp/.venv/lib/python3.11/site-packages/equinox/_module.py:548\u001b[0m, in \u001b[0;36m_ModuleMeta.__call__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 546\u001b[0m initable_cls \u001b[38;5;241m=\u001b[39m _make_initable(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m, post_init, wraps\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 547\u001b[0m \u001b[38;5;66;03m# [Step 2] Instantiate the class as normal.\u001b[39;00m\n\u001b[0;32m--> 548\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m_ModuleMeta\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minitable_cls\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 549\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m _is_abstract(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 550\u001b[0m \u001b[38;5;66;03m# [Step 3] Check that all fields are occupied.\u001b[39;00m\n", + " \u001b[0;31m[... skipping hidden 2 frame]\u001b[0m\n", + "File \u001b[0;32m~/develop/pymdp/pymdp/jax/agent.py:139\u001b[0m, in \u001b[0;36mAgent.__init__\u001b[0;34m(self, A, B, C, D, E, pA, pB, A_dependencies, B_dependencies, qs, q_pi, H, I, policy_len, control_fac_idx, policies, gamma, alpha, inductive_depth, inductive_threshold, inductive_epsilon, use_utility, use_states_info_gain, use_param_info_gain, use_inductive, onehot_obs, action_selection, sampling_mode, inference_algo, num_iter, learn_A, learn_B, learn_C, learn_D, learn_E)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\n\u001b[1;32m 100\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 101\u001b[0m A,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 135\u001b[0m learn_E\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 136\u001b[0m ):\n\u001b[1;32m 138\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m A_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m B_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 139\u001b[0m A_dependencies, B_dependencies \u001b[38;5;241m=\u001b[39m \u001b[43mget_dependencies\u001b[49m\u001b[43m(\u001b[49m\u001b[43mA\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mB\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;66;03m# TODO: infer batch shape in general case, here we assume no batch in Distribution object\u001b[39;00m\n\u001b[1;32m 142\u001b[0m A \u001b[38;5;241m=\u001b[39m [jnp\u001b[38;5;241m.\u001b[39mexpand_dims(a\u001b[38;5;241m.\u001b[39mdata, \u001b[38;5;241m0\u001b[39m) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(a, Distribution) \u001b[38;5;28;01melse\u001b[39;00m a \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m A]\n", + "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36mget_dependencies\u001b[0;34m(transitions, likelihoods)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mlike\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbatch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkeys\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", + "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m like\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys()]\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", + "\u001b[0;31mValueError\u001b[0m: 's1' is not in list" ] } ], @@ -183,6 +192,13 @@ "action = agent.sample_action(q_pi)\n", "print(action)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index ca51d439..116fa016 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -8,8 +8,14 @@ def __init__(self, data: np.ndarray, event: dict, batch: dict): self.event = event self.batch = batch - self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} - self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} + self.event_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in event.items() + } + self.batch_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in batch.items() + } def get(self, batch=None, event=None): event_slices = self._get_slices(event, self.event_indices, self.event) @@ -32,7 +38,9 @@ def _get_slices(self, keys, indices, full_indices): for key in full_indices: if key in keys: if isinstance(keys[key], list): - slices.append([self._get_index(v, indices[key]) for v in keys[key]]) + slices.append( + [self._get_index(v, indices[key]) for v in keys[key]] + ) else: slices.append(self._get_index(keys[key], indices[key])) else: @@ -59,13 +67,17 @@ def _get_index_from_axis(self, axis, element): def __getitem__(self, indices): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] return self.data[tuple(index_list)] def __setitem__(self, indices, value): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] self.data[tuple(index_list)] = value @@ -139,7 +151,9 @@ def compile_model(config): case "depends_on_control": control_dependencies[k] = [name for name in v[keyword]] case "depends_on": - likelihood_dependencies[k] = [name for name in v[keyword]] + likelihood_dependencies[k] = [ + name for name in v[keyword] + ] likelihood_events[k] = labels[k] transitions = [] for event, description in transition_events.items(): @@ -164,20 +178,24 @@ def compile_model(config): batch_descr[dep] = labels[dep] arr = np.zeros(arr_shape) likelihoods.append(Distribution(arr, event_descr, batch_descr)) - return transitions, likelihoods + return likelihoods, transitions -def get_dependencies(transitions, likelihoods): +def get_dependencies(likelihoods, transitions): likelihood_dependencies = dict() transition_dependencies = dict() states = [list(trans.event.keys())[0] for trans in transitions] for like in likelihoods: - likelihood_dependencies[list(like.event.keys())[0]] = [states.index(name) for name in like.batch.keys()] + likelihood_dependencies[list(like.event.keys())[0]] = [ + states.index(name) for name in like.batch.keys() + ] for trans in transitions: transition_dependencies[list(trans.event.keys())[0]] = [ states.index(name) for name in trans.batch.keys() if name in states ] - return list(likelihood_dependencies.values()), list(transition_dependencies.values()) + return list(likelihood_dependencies.values()), list( + transition_dependencies.values() + ) if __name__ == "__main__": @@ -205,13 +223,22 @@ def get_dependencies(transitions, likelihoods): assert np.all(transition[:, "B", "up"] == 1.0) assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.0 + ) assert transition.get({"control": "up"}).shape == (4, 4) transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.5 + ) transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.7 + ) transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) @@ -240,7 +267,7 @@ def get_dependencies(transitions, likelihoods): }, }, } - trans, like = compile_model(model_example) + like, trans = compile_model(model_example) assert len(trans) == 2 assert len(like) == 2 assert trans[0].data.shape == (3, 3, 2, 2, 2) @@ -251,3 +278,19 @@ def get_dependencies(transitions, likelihoods): assert like[1][1, :] is not None A_deps, B_deps = get_dependencies(trans, like) print(A_deps, B_deps) + + model = { + "observations": { + "o1": {"elements": ["A", "B", "C", "D"], "depends_on": ["s1"]}, + }, + "controls": {"c1": {"elements": ["up", "down"]}}, + "states": { + "s1": { + "elements": ["A", "B", "C", "D"], + "depends_on_states": ["s1"], + "depends_on_control": ["c1"], + }, + }, + } + + As, Bs = compile_model(model) diff --git a/test/test_distribution.py b/test/test_distribution.py index 4414a25a..1e39b1ef 100644 --- a/test/test_distribution.py +++ b/test/test_distribution.py @@ -99,7 +99,7 @@ def test_agent_compile(self): }, }, } - trans, like = distribution.compile_model(model_example) + like, trans = distribution.compile_model(model_example) self.assertEqual(len(trans), 2) self.assertEqual(len(like), 2) self.assertEqual(trans[0].data.shape, (3, 3, 2, 2, 2)) From 296795d4494d12402e809b5628d0981594224a31 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 15:57:20 +0200 Subject: [PATCH 072/196] end to end test of agent API --- examples/distribution_api.ipynb | 51 +++------------------------------ pymdp/jax/agent.py | 18 ++++++------ pymdp/jax/distribution.py | 49 +++++++------------------------ 3 files changed, 24 insertions(+), 94 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index 5a056244..03578428 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -24,24 +24,7 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "'states' is not in list", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[1], line 48\u001b[0m\n\u001b[1;32m 44\u001b[0m B[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdown\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 46\u001b[0m policies, C, action, qs, observation \u001b[38;5;241m=\u001b[39m get_task_info()\n\u001b[0;32m---> 48\u001b[0m agent \u001b[38;5;241m=\u001b[39m \u001b[43mAgent\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[43mA\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43mB\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43mC\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpolicies\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpolicies\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 49\u001b[0m prior, _ \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_empirical_prior(action, qs)\n\u001b[1;32m 50\u001b[0m qs \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_states(observation, \u001b[38;5;28;01mNone\u001b[39;00m, prior, \u001b[38;5;28;01mNone\u001b[39;00m)\n", - "File \u001b[0;32m~/develop/pymdp/.venv/lib/python3.11/site-packages/equinox/_module.py:548\u001b[0m, in \u001b[0;36m_ModuleMeta.__call__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 546\u001b[0m initable_cls \u001b[38;5;241m=\u001b[39m _make_initable(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m, post_init, wraps\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 547\u001b[0m \u001b[38;5;66;03m# [Step 2] Instantiate the class as normal.\u001b[39;00m\n\u001b[0;32m--> 548\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m_ModuleMeta\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minitable_cls\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 549\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m _is_abstract(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 550\u001b[0m \u001b[38;5;66;03m# [Step 3] Check that all fields are occupied.\u001b[39;00m\n", - " \u001b[0;31m[... skipping hidden 2 frame]\u001b[0m\n", - "File \u001b[0;32m~/develop/pymdp/pymdp/jax/agent.py:139\u001b[0m, in \u001b[0;36mAgent.__init__\u001b[0;34m(self, A, B, C, D, E, pA, pB, A_dependencies, B_dependencies, qs, q_pi, H, I, policy_len, control_fac_idx, policies, gamma, alpha, inductive_depth, inductive_threshold, inductive_epsilon, use_utility, use_states_info_gain, use_param_info_gain, use_inductive, onehot_obs, action_selection, sampling_mode, inference_algo, num_iter, learn_A, learn_B, learn_C, learn_D, learn_E)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\n\u001b[1;32m 100\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 101\u001b[0m A,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 135\u001b[0m learn_E\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 136\u001b[0m ):\n\u001b[1;32m 138\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m A_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m B_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 139\u001b[0m A_dependencies, B_dependencies \u001b[38;5;241m=\u001b[39m \u001b[43mget_dependencies\u001b[49m\u001b[43m(\u001b[49m\u001b[43mA\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mB\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;66;03m# TODO: infer batch shape in general case, here we assume no batch in Distribution object\u001b[39;00m\n\u001b[1;32m 142\u001b[0m A \u001b[38;5;241m=\u001b[39m [jnp\u001b[38;5;241m.\u001b[39mexpand_dims(a\u001b[38;5;241m.\u001b[39mdata, \u001b[38;5;241m0\u001b[39m) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(a, Distribution) \u001b[38;5;28;01melse\u001b[39;00m a \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m A]\n", - "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36mget_dependencies\u001b[0;34m(transitions, likelihoods)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mlike\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbatch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkeys\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", - "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m like\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys()]\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", - "\u001b[0;31mValueError\u001b[0m: 'states' is not in list" - ] - } - ], + "outputs": [], "source": [ "import numpy as np\n", "import jax\n", @@ -50,9 +33,6 @@ "from pymdp.jax import Distribution\n", "from pymdp.jax.agent import Agent\n", "\n", - "np.set_printoptions(precision=2, suppress=True)\n", - "\n", - "\n", "def get_task_info():\n", " policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", " C = jnp.zeros((1, 4))\n", @@ -110,7 +90,8 @@ "qs = agent.infer_states(observation, None, prior, None)\n", "\n", "q_pi, G = agent.infer_policies(qs)\n", - "action = agent.sample_action(q_pi)" + "action = agent.sample_action(q_pi)\n", + "print(action)" ] }, { @@ -131,23 +112,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "(4, 4, 2)\n" - ] - }, - { - "ename": "ValueError", - "evalue": "'s1' is not in list", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[2], line 33\u001b[0m\n\u001b[1;32m 29\u001b[0m Bs[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mD\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdown\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1.0\u001b[39m\n\u001b[1;32m 31\u001b[0m policies, Cs, action, qs, observation \u001b[38;5;241m=\u001b[39m get_task_info()\n\u001b[0;32m---> 33\u001b[0m agent \u001b[38;5;241m=\u001b[39m \u001b[43mAgent\u001b[49m\u001b[43m(\u001b[49m\u001b[43mAs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mBs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mCs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpolicies\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpolicies\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 34\u001b[0m prior, _ \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_empirical_prior(action, qs)\n\u001b[1;32m 35\u001b[0m qs \u001b[38;5;241m=\u001b[39m agent\u001b[38;5;241m.\u001b[39minfer_states(observation, \u001b[38;5;28;01mNone\u001b[39;00m, prior, \u001b[38;5;28;01mNone\u001b[39;00m)\n", - "File \u001b[0;32m~/develop/pymdp/.venv/lib/python3.11/site-packages/equinox/_module.py:548\u001b[0m, in \u001b[0;36m_ModuleMeta.__call__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 546\u001b[0m initable_cls \u001b[38;5;241m=\u001b[39m _make_initable(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m, post_init, wraps\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 547\u001b[0m \u001b[38;5;66;03m# [Step 2] Instantiate the class as normal.\u001b[39;00m\n\u001b[0;32m--> 548\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m_ModuleMeta\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minitable_cls\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 549\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m _is_abstract(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 550\u001b[0m \u001b[38;5;66;03m# [Step 3] Check that all fields are occupied.\u001b[39;00m\n", - " \u001b[0;31m[... skipping hidden 2 frame]\u001b[0m\n", - "File \u001b[0;32m~/develop/pymdp/pymdp/jax/agent.py:139\u001b[0m, in \u001b[0;36mAgent.__init__\u001b[0;34m(self, A, B, C, D, E, pA, pB, A_dependencies, B_dependencies, qs, q_pi, H, I, policy_len, control_fac_idx, policies, gamma, alpha, inductive_depth, inductive_threshold, inductive_epsilon, use_utility, use_states_info_gain, use_param_info_gain, use_inductive, onehot_obs, action_selection, sampling_mode, inference_algo, num_iter, learn_A, learn_B, learn_C, learn_D, learn_E)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\n\u001b[1;32m 100\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 101\u001b[0m A,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 135\u001b[0m learn_E\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 136\u001b[0m ):\n\u001b[1;32m 138\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m A_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m B_dependencies \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 139\u001b[0m A_dependencies, B_dependencies \u001b[38;5;241m=\u001b[39m \u001b[43mget_dependencies\u001b[49m\u001b[43m(\u001b[49m\u001b[43mA\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mB\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;66;03m# TODO: infer batch shape in general case, here we assume no batch in Distribution object\u001b[39;00m\n\u001b[1;32m 142\u001b[0m A \u001b[38;5;241m=\u001b[39m [jnp\u001b[38;5;241m.\u001b[39mexpand_dims(a\u001b[38;5;241m.\u001b[39mdata, \u001b[38;5;241m0\u001b[39m) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(a, Distribution) \u001b[38;5;28;01melse\u001b[39;00m a \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m A]\n", - "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36mget_dependencies\u001b[0;34m(transitions, likelihoods)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mlike\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbatch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkeys\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", - "File \u001b[0;32m~/develop/pymdp/pymdp/jax/distribution.py:175\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 173\u001b[0m states \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions]\n\u001b[1;32m 174\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m like \u001b[38;5;129;01min\u001b[39;00m likelihoods:\n\u001b[0;32m--> 175\u001b[0m likelihood_dependencies[\u001b[38;5;28mlist\u001b[39m(like\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\u001b[43mstates\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m like\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys()]\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trans \u001b[38;5;129;01min\u001b[39;00m transitions:\n\u001b[1;32m 177\u001b[0m transition_dependencies[\u001b[38;5;28mlist\u001b[39m(trans\u001b[38;5;241m.\u001b[39mevent\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]] \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 178\u001b[0m states\u001b[38;5;241m.\u001b[39mindex(name) \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m trans\u001b[38;5;241m.\u001b[39mbatch\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m states\n\u001b[1;32m 179\u001b[0m ]\n", - "\u001b[0;31mValueError\u001b[0m: 's1' is not in list" + "[[0]]\n" ] } ], @@ -165,7 +130,6 @@ "}\n", "\n", "As, Bs = distribution.compile_model(model)\n", - "print(Bs[0].data.shape)\n", "\n", "As[0][\"A\", \"A\"] = 1.0\n", "As[0][\"B\", \"B\"] = 1.0\n", @@ -192,13 +156,6 @@ "action = agent.sample_action(q_pi)\n", "print(action)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index f8ed8f6e..16fe343a 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -446,6 +446,15 @@ def sample_action(self, q_pi: Array, rng_key=None): return action + @vmap + def _construct_I(self): + return control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) + + def _construct_policies(self): + self.policies = control.construct_policies( + self.num_states, self.num_controls, self.policy_len, self.control_fac_idx + ) + def _get_default_params(self): method = self.inference_algo default_params = None @@ -464,15 +473,6 @@ def _get_default_params(self): return default_params - def _construct_policies(self): - self.policies = control.construct_policies( - self.num_states, self.num_controls, self.policy_len, self.control_fac_idx - ) - - @vmap - def _construct_I(self): - return control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) - @property def unique_multiactions(self): size = pymath.prod(self.num_controls) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 116fa016..04c94d08 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -8,14 +8,8 @@ def __init__(self, data: np.ndarray, event: dict, batch: dict): self.event = event self.batch = batch - self.event_indices = { - key: {v: i for i, v in enumerate(values)} - for key, values in event.items() - } - self.batch_indices = { - key: {v: i for i, v in enumerate(values)} - for key, values in batch.items() - } + self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} + self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} def get(self, batch=None, event=None): event_slices = self._get_slices(event, self.event_indices, self.event) @@ -38,9 +32,7 @@ def _get_slices(self, keys, indices, full_indices): for key in full_indices: if key in keys: if isinstance(keys[key], list): - slices.append( - [self._get_index(v, indices[key]) for v in keys[key]] - ) + slices.append([self._get_index(v, indices[key]) for v in keys[key]]) else: slices.append(self._get_index(keys[key], indices[key])) else: @@ -67,17 +59,13 @@ def _get_index_from_axis(self, axis, element): def __getitem__(self, indices): if not isinstance(indices, tuple): indices = (indices,) - index_list = [ - self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) - ] + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] return self.data[tuple(index_list)] def __setitem__(self, indices, value): if not isinstance(indices, tuple): indices = (indices,) - index_list = [ - self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) - ] + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] self.data[tuple(index_list)] = value @@ -151,9 +139,7 @@ def compile_model(config): case "depends_on_control": control_dependencies[k] = [name for name in v[keyword]] case "depends_on": - likelihood_dependencies[k] = [ - name for name in v[keyword] - ] + likelihood_dependencies[k] = [name for name in v[keyword]] likelihood_events[k] = labels[k] transitions = [] for event, description in transition_events.items(): @@ -186,16 +172,12 @@ def get_dependencies(likelihoods, transitions): transition_dependencies = dict() states = [list(trans.event.keys())[0] for trans in transitions] for like in likelihoods: - likelihood_dependencies[list(like.event.keys())[0]] = [ - states.index(name) for name in like.batch.keys() - ] + likelihood_dependencies[list(like.event.keys())[0]] = [states.index(name) for name in like.batch.keys()] for trans in transitions: transition_dependencies[list(trans.event.keys())[0]] = [ states.index(name) for name in trans.batch.keys() if name in states ] - return list(likelihood_dependencies.values()), list( - transition_dependencies.values() - ) + return list(likelihood_dependencies.values()), list(transition_dependencies.values()) if __name__ == "__main__": @@ -223,22 +205,13 @@ def get_dependencies(likelihoods, transitions): assert np.all(transition[:, "B", "up"] == 1.0) assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.0 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 assert transition.get({"control": "up"}).shape == (4, 4) transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.5 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.7 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) From ae878dcac0dc3668d2a784e58c9a9e5695b7a365 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 15:58:34 +0200 Subject: [PATCH 073/196] forgot to push notebook --- examples/distribution_api.ipynb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index 03578428..697f5ee7 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -22,9 +22,17 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0]]\n" + ] + } + ], "source": [ "import numpy as np\n", "import jax\n", @@ -105,7 +113,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "metadata": {}, "outputs": [ { From 45ae9a048e4e616173310b88e986459a855f9e05 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 16:39:27 +0200 Subject: [PATCH 074/196] change config naming to be more consistent --- pymdp/jax/distribution.py | 81 +++++++++++++++++++++++++++------------ test/test_distribution.py | 8 ++-- 2 files changed, 60 insertions(+), 29 deletions(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 04c94d08..d94ce363 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -8,8 +8,14 @@ def __init__(self, data: np.ndarray, event: dict, batch: dict): self.event = event self.batch = batch - self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} - self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} + self.event_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in event.items() + } + self.batch_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in batch.items() + } def get(self, batch=None, event=None): event_slices = self._get_slices(event, self.event_indices, self.event) @@ -32,7 +38,9 @@ def _get_slices(self, keys, indices, full_indices): for key in full_indices: if key in keys: if isinstance(keys[key], list): - slices.append([self._get_index(v, indices[key]) for v in keys[key]]) + slices.append( + [self._get_index(v, indices[key]) for v in keys[key]] + ) else: slices.append(self._get_index(keys[key], indices[key])) else: @@ -59,13 +67,17 @@ def _get_index_from_axis(self, axis, element): def __getitem__(self, indices): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] return self.data[tuple(index_list)] def __setitem__(self, indices, value): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] self.data[tuple(index_list)] = value @@ -132,15 +144,21 @@ def compile_model(config): case "size": shape[k] = v[keyword] labels[k] = list(range(v[keyword])) - case "depends_on_states": - state_dependencies[k] = [name for name in v[keyword]] - if k in v[keyword]: - transition_events[k] = labels[k] - case "depends_on_control": - control_dependencies[k] = [name for name in v[keyword]] case "depends_on": - likelihood_dependencies[k] = [name for name in v[keyword]] - likelihood_events[k] = labels[k] + if mod == "states": + state_dependencies[k] = [ + name for name in v[keyword] + ] + if k in v[keyword]: + transition_events[k] = labels[k] + else: + likelihood_dependencies[k] = [ + name for name in v[keyword] + ] + likelihood_events[k] = labels[k] + case "controlled_by": + control_dependencies[k] = [name for name in v[keyword]] + transitions = [] for event, description in transition_events.items(): arr_shape = [len(description)] @@ -172,12 +190,16 @@ def get_dependencies(likelihoods, transitions): transition_dependencies = dict() states = [list(trans.event.keys())[0] for trans in transitions] for like in likelihoods: - likelihood_dependencies[list(like.event.keys())[0]] = [states.index(name) for name in like.batch.keys()] + likelihood_dependencies[list(like.event.keys())[0]] = [ + states.index(name) for name in like.batch.keys() + ] for trans in transitions: transition_dependencies[list(trans.event.keys())[0]] = [ states.index(name) for name in trans.batch.keys() if name in states ] - return list(likelihood_dependencies.values()), list(transition_dependencies.values()) + return list(likelihood_dependencies.values()), list( + transition_dependencies.values() + ) if __name__ == "__main__": @@ -205,13 +227,22 @@ def get_dependencies(likelihoods, transitions): assert np.all(transition[:, "B", "up"] == 1.0) assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.0 + ) assert transition.get({"control": "up"}).shape == (4, 4) transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.5 + ) transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.7 + ) transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) @@ -230,13 +261,13 @@ def get_dependencies(likelihoods, transitions): "states": { "factor_1": { "elements": ["II", "JJ", "KK"], - "depends_on_states": ["factor_1", "factor_2"], - "depends_on_control": ["control_1", "control_2"], + "depends_on": ["factor_1", "factor_2"], + "controlled_by": ["control_1", "control_2"], }, "factor_2": { "elements": ["foo", "bar"], - "depends_on_states": ["factor_2"], - "depends_on_control": ["control_2"], + "depends_on": ["factor_2"], + "controlled_by": ["control_2"], }, }, } @@ -249,7 +280,7 @@ def get_dependencies(likelihoods, transitions): assert like[1].data.shape == (2, 2) assert like[0][:, "II"] is not None assert like[1][1, :] is not None - A_deps, B_deps = get_dependencies(trans, like) + A_deps, B_deps = get_dependencies(like, trans) print(A_deps, B_deps) model = { @@ -260,8 +291,8 @@ def get_dependencies(likelihoods, transitions): "states": { "s1": { "elements": ["A", "B", "C", "D"], - "depends_on_states": ["s1"], - "depends_on_control": ["c1"], + "depends_on": ["s1"], + "controlled_by": ["c1"], }, }, } diff --git a/test/test_distribution.py b/test/test_distribution.py index 1e39b1ef..24249f74 100644 --- a/test/test_distribution.py +++ b/test/test_distribution.py @@ -89,13 +89,13 @@ def test_agent_compile(self): "states": { "factor_1": { "elements": ["II", "JJ", "KK"], - "depends_on_states": ["factor_1", "factor_2"], - "depends_on_control": ["control_1", "control_2"], + "depends_on": ["factor_1", "factor_2"], + "controlled_by": ["control_1", "control_2"], }, "factor_2": { "elements": ["foo", "bar"], - "depends_on_states": ["factor_2"], - "depends_on_control": ["control_2"], + "depends_on": ["factor_2"], + "controlled_by": ["control_2"], }, }, } From 0a3194b1bdea7fdf34985ba7bc598249e4daef29 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 16:40:19 +0200 Subject: [PATCH 075/196] config naming changes --- examples/distribution_api.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index 697f5ee7..ad1390cd 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -133,7 +133,7 @@ " },\n", " \"controls\": {\"c1\": {\"elements\": [\"up\", \"down\"]}},\n", " \"states\": {\n", - " \"s1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on_states\": [\"s1\"], \"depends_on_control\": [\"c1\"]},\n", + " \"s1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"], \"controlled_by\": [\"c1\"]},\n", " },\n", "}\n", "\n", @@ -182,7 +182,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.9" + "version": "3.11.3" } }, "nbformat": 4, From b838199c2f7f80f60a5ad099a5feec204f50599c Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 11 Jun 2024 17:11:29 +0200 Subject: [PATCH 076/196] make the data argument optional breaking change!! --- pymdp/jax/distribution.py | 31 ++++++++++++++++++++++--------- test/test_distribution.py | 4 ++-- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index d94ce363..6ce00f9b 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -1,10 +1,10 @@ import numpy as np +from pymdp.utils import norm_dist class Distribution: - def __init__(self, data: np.ndarray, event: dict, batch: dict): - self.data = data + def __init__(self, event: dict, batch: dict, data: np.ndarray = None): self.event = event self.batch = batch @@ -17,6 +17,16 @@ def __init__(self, data: np.ndarray, event: dict, batch: dict): for key, values in batch.items() } + if data is not None: + self.data = data + else: + shape = [] + for v in event.values(): + shape.append(len(v)) + for v in batch.values(): + shape.append(len(v)) + self.data = np.zeros(shape) + def get(self, batch=None, event=None): event_slices = self._get_slices(event, self.event_indices, self.event) batch_slices = self._get_slices(batch, self.batch_indices, self.batch) @@ -80,6 +90,9 @@ def __setitem__(self, indices, value): ] self.data[tuple(index_list)] = value + def normalize(self): + norm_dist(self.data) + def compile_model(config): """Compile a model from a config. @@ -99,7 +112,7 @@ def compile_model(config): field indicating the named elements or the size of the integer array. In the case of an observation the `depends_on` field needs to be present to indicate what state factor links to this observation. In the case of states - the `depends_on_states` and `depends_on_control` fields are needed. + the `depends_on` and `controlled_by` fields are needed. --- example config: { "observations": { @@ -116,13 +129,13 @@ def compile_model(config): "states": { "factor_1": { "elements": ["II", "JJ", "KK"], - "depends_on_states": ["factor_1", "factor_2"], - "depends_on_control": ["control_1", "control_2"], + "depends_on": ["factor_1", "factor_2"], + "controlled_by": ["control_1", "control_2"], }, "factor_2": { "elements": ["foo", "bar"], - "depends_on_states": ["factor_2"], - "depends_on_control": ["control_2"], + "depends_on": ["factor_2"], + "controlled_by": ["control_2"], }, }} """ @@ -171,7 +184,7 @@ def compile_model(config): arr_shape.append(shape[dep]) batch_descr[dep] = labels[dep] arr = np.zeros(arr_shape) - transitions.append(Distribution(arr, event_descr, batch_descr)) + transitions.append(Distribution(event_descr, batch_descr, arr)) likelihoods = [] for event, description in likelihood_events.items(): arr_shape = [len(description)] @@ -181,7 +194,7 @@ def compile_model(config): arr_shape.append(shape[dep]) batch_descr[dep] = labels[dep] arr = np.zeros(arr_shape) - likelihoods.append(Distribution(arr, event_descr, batch_descr)) + likelihoods.append(Distribution(event_descr, batch_descr, arr)) return likelihoods, transitions diff --git a/test/test_distribution.py b/test/test_distribution.py index 24249f74..d1b94944 100644 --- a/test/test_distribution.py +++ b/test/test_distribution.py @@ -11,9 +11,9 @@ def test_distribution_slice(self): data = np.zeros((len(locations), len(locations), len(controls))) transition = distribution.Distribution( - data, {"location": locations}, {"location": locations, "control": controls}, + data, ) self.assertEqual(transition["A", "B", "up"], 0.0) self.assertEqual(transition[:, "B", "up"].shape, (4,)) @@ -34,9 +34,9 @@ def test_distribution_get_set(self): data = np.zeros((len(locations), len(locations), len(controls))) transition = distribution.Distribution( - data, {"location": locations}, {"location": locations, "control": controls}, + data, ) self.assertEqual( From 6b5e8cc9c510ec1ff69be8ccede796f2028c0e3e Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 17:23:13 +0200 Subject: [PATCH 077/196] updated agent api --- examples/distribution_api.ipynb | 12 +- pymdp/jax/agent.py | 223 +++++++++++++++----------------- 2 files changed, 112 insertions(+), 123 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index ad1390cd..2591cd1d 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -22,13 +22,14 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "[False]\n", "[[0]]\n" ] } @@ -43,12 +44,12 @@ "\n", "def get_task_info():\n", " policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", - " C = jnp.zeros((1, 4))\n", - " C = C.at[0, 3].set(1.0)\n", + " C = jnp.zeros((4,))\n", + " C = C.at[3].set(1.0)\n", " action = jnp.array([[1]])\n", " qs = [jnp.zeros((1, 1, 4))]\n", " qs[0] = qs[0].at[0, 0, 0].set(1.0)\n", - " observation = [jnp.array([[0]])]\n", + " observation = [jnp.array([[0, 1]])]\n", " return policies, C, action, qs, observation\n", "\n", "observations = [\"A\", \"B\", \"C\", \"D\"]\n", @@ -113,13 +114,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "[False]\n", "[[0]]\n" ] } diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 16fe343a..4b0b9ab8 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -29,7 +29,7 @@ class Agent(Module): >>> my_agent = Agent(A = A, B = C, ) >>> observation = env.step(initial_action) >>> qs = my_agent.infer_states(observation) - >>> q_pi, G = my_agent.infer_policies() + >>> q_pi, G = my_agent.infer_policies(qs) >>> next_action = my_agent.sample_action() >>> next_observation = env.step(next_action) @@ -105,14 +105,13 @@ def __init__( E=None, pA=None, pB=None, - A_dependencies=None, - B_dependencies=None, - qs=None, - q_pi=None, H=None, I=None, - policy_len=1, + A_dependencies=None, + B_dependencies=None, control_fac_idx=None, + batch_size=1, + policy_len=1, policies=None, gamma=16.0, alpha=16.0, @@ -135,49 +134,34 @@ def __init__( learn_E=False, ): - if A_dependencies is None and B_dependencies is None: - A_dependencies, B_dependencies = get_dependencies(A, B) - - # TODO: infer batch shape in general case, here we assume no batch in Distribution object - A = [jnp.expand_dims(a.data, 0) if isinstance(a, Distribution) else a for a in A] - B = [jnp.expand_dims(b.data, 0) if isinstance(b, Distribution) else b for b in B] - - # PyTree leaves - self.A = A - self.B = B - self.C = C - self.D = D - self.H = H - self.pA = pA - self.pB = pB - - self.onehot_obs = onehot_obs - - element_size = lambda x: x.shape[1] - self.num_factors = len(self.B) - self.num_states = jtu.tree_map(element_size, self.B) - - self.num_modalities = len(self.A) - self.num_obs = jtu.tree_map(element_size, self.A) + # extract high level variables + self.num_modalities = len(A) + self.num_factors = len(B) + self.batch_size = batch_size + # extract dependencies for A and B matrices if A_dependencies is not None: self.A_dependencies = A_dependencies + elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): + self.A_dependencies, _ = get_dependencies(A, B) else: - # assume full dependence of A matrices and state factors self.A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] if B_dependencies is not None: self.B_dependencies = B_dependencies + elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): + _, self.B_dependencies = get_dependencies(A, B) else: - # defaults to having all factors depend only on themselves self.B_dependencies = [[f] for f in range(self.num_factors)] - self.batch_size = self.A[0].shape[0] + # extract A and B tensors + A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] + B = [jnp.array(b.data) if isinstance(b, Distribution) else b for b in B] - self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) - self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) - self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) - self.inductive_epsilon = jnp.broadcast_to(inductive_epsilon, (self.batch_size,)) + # extract shapes from A and B + self.num_states = jtu.tree_map(lambda x: x.shape[1], B) + self.num_obs = jtu.tree_map(lambda x: x.shape[1], A) + self.num_controls = [B[f].shape[-1] for f in range(self.num_factors)] # static parameters self.num_iter = num_iter @@ -193,13 +177,6 @@ def __init__( self.use_param_info_gain = use_param_info_gain self.use_inductive = use_inductive - if self.use_inductive and self.H is not None: - self.I = self._construct_I() - elif self.use_inductive and I is not None: - self.I = I - else: - self.I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), self.D) - # learning parameters self.learn_A = learn_A self.learn_B = learn_B @@ -207,43 +184,69 @@ def __init__( self.learn_D = learn_D self.learn_E = learn_E - # Determine number of observation modalities and their respective dimensions - self.num_obs = [self.A[m].shape[1] for m in range(len(self.A))] - self.num_modalities = len(self.num_obs) - - # If no `num_controls` are given, then this is inferred from the shapes of the input B matrices - self.num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] - - # Users have the option to make only certain factors controllable. - # default behaviour is to make all hidden state factors controllable, i.e. `self.num_factors == len(self.num_controls)` + # construct control factor indices if control_fac_idx == None: self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] else: - assert max(control_fac_idx) <= ( - self.num_factors - 1 - ), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + msg = "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + assert max(control_fac_idx) <= (self.num_factors - 1), msg self.control_fac_idx = control_fac_idx - self.policies = policies if policies is not None else self._construct_policies() + # construct policies + if policies is None: + self.policies = control.construct_policies( + self.num_states, self.num_controls, self.policy_len, self.control_fac_idx + ) + else: + self.policies = policies + + # setup pytree leaves A, B, C, D, E, pA, pB, H, I + A = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), A) + B = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), B) + if pA is not None: + pA = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), pA) + + if pB is not None: + pB = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), pB) - # set E to uniform/uninformative prior over policies if not given - if E is None: - self.E = jnp.ones((self.batch_size, len(self.policies))) / len(self.policies) + if C is not None: + C = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), C) else: - self.E = E + C = [jnp.ones((batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities)] - if D is None: - self.D = [ - jnp.ones((self.batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors) - ] + if D is not None: + D = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), D) else: - self.D = D + D = [jnp.ones((batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors)] - if C is None: - self.C = [ - jnp.ones((self.batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities) - ] + if E is not None: + E = jnp.broadcast_to(E, (batch_size,) + E.shape) + else: + E = jnp.ones((batch_size, len(policies))) / len(policies) + + self.A = A + self.B = B + self.C = C + self.D = D + self.E = E + self.H = H + self.pA = pA + self.pB = pB + if self.use_inductive and self.H is not None: + self.I = control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) + elif self.use_inductive and I is not None: + self.I = I + else: + self.I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), self.D) + + self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) + self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) + self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) + self.inductive_epsilon = jnp.broadcast_to(inductive_epsilon, (self.batch_size,)) + self.onehot_obs = onehot_obs + + # validate model self._validate() @vmap @@ -269,6 +272,8 @@ def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mas ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` at timepoint ``t_idx``. """ + + # TODO: infer this from shapes if not self.onehot_obs: o_vec = [nn.one_hot(o, self.num_obs[m]) for m, o in enumerate(observations)] else: @@ -372,53 +377,16 @@ def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1 # self.qE = learning.update_E(self.E, *args, **kwargs) # self.E = maths.dirichlet_expected_value(self.qE) - # do stuff - # variables = ... - # parameters = ... - # varibles = {'A': jnp.ones(5)} - - # agent = tree_at(lambda x: (x.A, x.pA, x.B, x.pB, x.I), self, (E_qA, qA, E_qB, qB, I_updated)) - return agent @partial(vmap, in_axes=(0, 0, 0)) def infer_empirical_prior(self, action, qs): # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t - qs_last = jtu.tree_map(lambda x: x[-1], qs) # this computation of the predictive prior is correct only for fully factorised Bs. pred = control.compute_expected_state(qs_last, self.B, action, B_dependencies=self.B_dependencies) - return (pred, qs) - @vmap - def multiaction_probabilities(self, q_pi: Array): - """ - Compute probabilities of unique multi-actions from the posterior over policies. - - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - - Returns - ---------- - multi-action: 1D ``jax.numpy.ndarray`` - Vector containing probabilities of possible multi-actions for different factors - """ - - if self.sampling_mode == "marginal": - marginals = control.get_marginals(q_pi, self.policies, self.num_controls) - outer = lambda a, b: jnp.outer(a, b).reshape(-1) - marginals = jtu.tree_reduce(outer, marginals) - - elif self.sampling_mode == "full": - locs = jnp.all(self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), -1) - marginals = jnp.where(locs, q_pi, 0.0).sum(-1) - - # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan - return marginals - @vmap def sample_action(self, q_pi: Array, rng_key=None): """ @@ -447,13 +415,32 @@ def sample_action(self, q_pi: Array, rng_key=None): return action @vmap - def _construct_I(self): - return control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) + def multiaction_probabilities(self, q_pi: Array): + """ + Compute probabilities of unique multi-actions from the posterior over policies. - def _construct_policies(self): - self.policies = control.construct_policies( - self.num_states, self.num_controls, self.policy_len, self.control_fac_idx - ) + Parameters + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + + Returns + ---------- + multi-action: 1D ``jax.numpy.ndarray`` + Vector containing probabilities of possible multi-actions for different factors + """ + + if self.sampling_mode == "marginal": + marginals = control.get_marginals(q_pi, self.policies, self.num_controls) + outer = lambda a, b: jnp.outer(a, b).reshape(-1) + marginals = jtu.tree_reduce(outer, marginals) + + elif self.sampling_mode == "full": + locs = jnp.all(self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), -1) + marginals = jnp.where(locs, q_pi, 0.0).sum(-1) + + # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan + return marginals def _get_default_params(self): method = self.inference_algo @@ -473,11 +460,6 @@ def _get_default_params(self): return default_params - @property - def unique_multiactions(self): - size = pymath.prod(self.num_controls) - return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) - def _validate(self): for m in range(self.num_modalities): factor_dims = tuple([self.num_states[f] for f in self.A_dependencies[m]]) @@ -509,3 +491,8 @@ def _validate(self): assert ( self.num_controls[factor_idx] > 1 ), "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" + + @property + def unique_multiactions(self): + size = pymath.prod(self.num_controls) + return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) From ba55a07b5a83eafee348cd7524c3331d2c95e7df Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 17:24:58 +0200 Subject: [PATCH 078/196] updated notebook --- examples/distribution_api.ipynb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index 2591cd1d..777cf321 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -29,7 +29,6 @@ "name": "stdout", "output_type": "stream", "text": [ - "[False]\n", "[[0]]\n" ] } @@ -57,7 +56,7 @@ "controls = [\"up\", \"down\"]\n", "\n", "data = np.zeros((len(observations), len(states)))\n", - "A = Distribution(data, {\"observations\": observations}, {\"states\": states})\n", + "A = Distribution({\"observations\": observations}, {\"states\": states}, data)\n", "\n", "A[\"A\", \"A\"] = 1.0 \n", "A[\"B\", \"B\"] = 1.0\n", @@ -68,7 +67,7 @@ "## Transition\n", "# Similarily we can use the distributions to build a \n", "data = np.zeros((len(states), len(states), len(controls)))\n", - "B = Distribution(data, {\"states\": states}, {\"states\": states, \"controls\": controls})\n", + "B = Distribution({\"states\": states}, {\"states\": states, \"controls\": controls}, data)\n", "\n", "B[\"B\", \"A\", \"up\"] = 1.0\n", "B[\"C\", \"B\", \"up\"] = 1.0\n", @@ -114,14 +113,14 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[False]\n", + "[] []\n", "[[0]]\n" ] } @@ -184,7 +183,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.3" + "version": "3.11.9" } }, "nbformat": 4, From 7f547387cf4c3f3fcdce4e4da0b95ed6ac452d0d Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 17:28:01 +0200 Subject: [PATCH 079/196] updated init for agent --- pymdp/jax/agent.py | 46 ++++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 4b0b9ab8..97083529 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -140,19 +140,7 @@ def __init__( self.batch_size = batch_size # extract dependencies for A and B matrices - if A_dependencies is not None: - self.A_dependencies = A_dependencies - elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): - self.A_dependencies, _ = get_dependencies(A, B) - else: - self.A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] - - if B_dependencies is not None: - self.B_dependencies = B_dependencies - elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): - _, self.B_dependencies = get_dependencies(A, B) - else: - self.B_dependencies = [[f] for f in range(self.num_factors)] + self.A_dependencies, self.B_dependencies = self._construct_dependencies(A_dependencies, B_dependencies, A, B) # extract A and B tensors A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] @@ -203,6 +191,7 @@ def __init__( # setup pytree leaves A, B, C, D, E, pA, pB, H, I A = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), A) B = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), B) + if pA is not None: pA = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), pA) @@ -224,22 +213,23 @@ def __init__( else: E = jnp.ones((batch_size, len(policies))) / len(policies) + if self.use_inductive and self.H is not None: + I = control.generate_I_matrix(H, B, self.inductive_threshold, self.inductive_depth) + elif self.use_inductive and I is not None: + I = I + else: + I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), D) + self.A = A self.B = B self.C = C self.D = D self.E = E self.H = H + self.I = I self.pA = pA self.pB = pB - if self.use_inductive and self.H is not None: - self.I = control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) - elif self.use_inductive and I is not None: - self.I = I - else: - self.I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), self.D) - self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) @@ -442,6 +432,22 @@ def multiaction_probabilities(self, q_pi: Array): # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan return marginals + def _construct_dependencies(self, A_dependencies, B_dependencies, A, B): + if A_dependencies is not None: + A_dependencies = A_dependencies + elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): + A_dependencies, _ = get_dependencies(A, B) + else: + A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] + + if B_dependencies is not None: + B_dependencies = B_dependencies + elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): + _, B_dependencies = get_dependencies(A, B) + else: + B_dependencies = [[f] for f in range(self.num_factors)] + return A_dependencies, B_dependencies + def _get_default_params(self): method = self.inference_algo default_params = None From ac8f1989651e7121f81ed7e648e3a6d95a865997 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 18:01:44 +0200 Subject: [PATCH 080/196] updated example notebook --- examples/distribution_api.ipynb | 80 ++++++++++++++++++++------------- pymdp/jax/agent.py | 18 ++++---- 2 files changed, 56 insertions(+), 42 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index 777cf321..a7118ebe 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -24,33 +24,45 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from jax import numpy as jnp\n", + "\n", + "np.set_printoptions(precision=2, suppress=True)\n", + "\n", + "from pymdp.jax.agent import Agent\n", + "from pymdp.jax.distribution import Distribution, compile_model\n", + "\n", + "action = jnp.array([1])\n", + "action = jnp.broadcast_to(action, (1, 1))\n", + "\n", + "observation = jnp.array([0])\n", + "observation = jnp.broadcast_to(observation, (1, 1))\n", + "\n", + "qs_init = jnp.array([1.0, 0.0, 0.0, 0.0])\n", + "qs_init = jnp.broadcast_to(qs_init, (1, 1, 4))\n", + "\n", + "policies = jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]])\n", + "policies = jnp.expand_dims(policies, -1)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[[0]]\n" + "goal state: D\n", + "initial state: A\n", + "action taken: up\n" ] } ], "source": [ - "import numpy as np\n", - "import jax\n", - "from jax import numpy as jnp\n", - "\n", - "from pymdp.jax import Distribution\n", - "from pymdp.jax.agent import Agent\n", - "\n", - "def get_task_info():\n", - " policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", - " C = jnp.zeros((4,))\n", - " C = C.at[3].set(1.0)\n", - " action = jnp.array([[1]])\n", - " qs = [jnp.zeros((1, 1, 4))]\n", - " qs[0] = qs[0].at[0, 0, 0].set(1.0)\n", - " observation = [jnp.array([[0, 1]])]\n", - " return policies, C, action, qs, observation\n", - "\n", "observations = [\"A\", \"B\", \"C\", \"D\"]\n", "states = [\"A\", \"B\", \"C\", \"D\"]\n", "controls = [\"up\", \"down\"]\n", @@ -94,12 +106,15 @@ "prior, _ = agent.infer_empirical_prior(action, qs)\n", "\n", "agent = Agent([A], [B], [C], policies=policies)\n", - "prior, _ = agent.infer_empirical_prior(action, qs)\n", - "qs = agent.infer_states(observation, None, prior, None)\n", + "print(f\"goal state: {states[jnp.argmax(C)]}\")\n", + "\n", + "prior, _ = agent.infer_empirical_prior(action, [qs_init])\n", + "qs = agent.infer_states([observation], None, prior, None)\n", + "print(f\"initial state: {states[jnp.argmax(qs[0])]}\")\n", "\n", "q_pi, G = agent.infer_policies(qs)\n", "action = agent.sample_action(q_pi)\n", - "print(action)" + "print(f\"action taken: {controls[action[0][0]]}\")" ] }, { @@ -113,21 +128,20 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[] []\n", - "[[0]]\n" + "goal state: D\n", + "initial state: A\n", + "action taken: up\n" ] } ], "source": [ - "from pymdp.jax import distribution\n", - "\n", "model = {\n", " \"observations\": {\n", " \"o1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"]},\n", @@ -138,7 +152,7 @@ " },\n", "}\n", "\n", - "As, Bs = distribution.compile_model(model)\n", + "As, Bs = compile_model(model)\n", "\n", "As[0][\"A\", \"A\"] = 1.0\n", "As[0][\"B\", \"B\"] = 1.0\n", @@ -155,15 +169,17 @@ "Bs[0][\"B\", \"C\", \"down\"] = 1.0\n", "Bs[0][\"C\", \"D\", \"down\"] = 1.0\n", "\n", - "policies, Cs, action, qs, observation = get_task_info()\n", - "\n", + "Cs = [jnp.array([0.0, 0.0, 0.0, 1.0])]\n", "agent = Agent(As, Bs, Cs, policies=policies)\n", - "prior, _ = agent.infer_empirical_prior(action, qs)\n", - "qs = agent.infer_states(observation, None, prior, None)\n", + "print(f\"goal state: {states[jnp.argmax(Cs[0])]}\")\n", + "\n", + "prior, _ = agent.infer_empirical_prior(action, [qs_init])\n", + "qs = agent.infer_states([observation], None, prior, None)\n", + "print(f\"initial state: {states[jnp.argmax(qs[0])]}\")\n", "\n", "q_pi, G = agent.infer_policies(qs)\n", "action = agent.sample_action(q_pi)\n", - "print(action)" + "print(f\"action taken: {controls[action[0][0]]}\")" ] } ], diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 97083529..685edc42 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -15,7 +15,7 @@ from .distribution import Distribution, get_dependencies from equinox import Module, field, tree_at -from typing import List, Optional +from typing import List, Optional, Union from jaxtyping import Array from functools import partial @@ -42,16 +42,14 @@ class Agent(Module): C: List[Array] D: List[Array] E: Array - gamma: Array - alpha: Array - pA: List[Array] pB: List[Array] + gamma: Array + alpha: Array # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) inductive_threshold: Array # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) - inductive_epsilon: Array # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints H: List[Array] @@ -98,11 +96,11 @@ class Agent(Module): def __init__( self, - A, - B, - C=None, - D=None, - E=None, + A: Union[List[Array], List[Distribution]], + B: Union[List[Array], List[Distribution]], + C: Optional[List[Array]] = None, + D: Optional[List[Array]] = None, + E: Optional[Array] = None, pA=None, pB=None, H=None, From ff6a18fd12687d9a06844e0362df7d30c3008fda Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Tue, 11 Jun 2024 18:11:36 +0200 Subject: [PATCH 081/196] added complicated example --- examples/distribution_api.ipynb | 84 +++++++++++++++++++++++++++++++++ pymdp/jax/agent.py | 2 +- 2 files changed, 85 insertions(+), 1 deletion(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index a7118ebe..e8d6fbdc 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -181,6 +181,90 @@ "action = agent.sample_action(q_pi)\n", "print(f\"action taken: {controls[action[0][0]]}\")" ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "model = {\n", + " \"observations\": {\n", + " \"temperature\": {\"elements\": [\"low\", \"medium\", \"high\", \"very high\"], \"depends_on\": [\"operating_state\"]},\n", + " \"humidity\": {\"elements\": [\"low\", \"medium\", \"high\", \"very high\"], \"depends_on\": [\"maintenance_state\"]},\n", + " \"pressure\": {\"elements\": [\"low\", \"medium\", \"high\", \"very high\"], \"depends_on\": [\"power_state\"]},\n", + " \"vibration\": {\n", + " \"elements\": [\"none\", \"low\", \"medium\", \"high\"],\n", + " \"depends_on\": [\"operating_state\", \"maintenance_state\"],\n", + " },\n", + " },\n", + " \"controls\": {\n", + " \"temperature_control\": {\"elements\": [\"off\", \"low\", \"medium\", \"high\"]},\n", + " \"humidity_control\": {\"elements\": [\"off\", \"low\", \"medium\", \"high\"]},\n", + " \"pressure_control\": {\"elements\": [\"off\", \"low\", \"medium\", \"high\"]},\n", + " },\n", + " \"states\": {\n", + " \"operating_state\": {\n", + " \"elements\": [\"idle\", \"running\", \"overload\"],\n", + " \"depends_on\": [\"operating_state\"],\n", + " \"controlled_by\": [\"temperature_control\"],\n", + " },\n", + " \"maintenance_state\": {\n", + " \"elements\": [\"regular\", \"alert\", \"critical\"],\n", + " \"depends_on\": [\"maintenance_state\"],\n", + " \"controlled_by\": [\"humidity_control\"],\n", + " },\n", + " \"power_state\": {\n", + " \"elements\": [\"low\", \"normal\", \"high\"],\n", + " \"depends_on\": [\"power_state\"],\n", + " \"controlled_by\": [\"pressure_control\"],\n", + " },\n", + " },\n", + "}\n", + "\n", + "As, Bs = compile_model(model)\n", + "\n", + "As[0][\"low\", \"idle\"] = 1.0\n", + "As[0][\"medium\", \"running\"] = 1.0\n", + "As[0][\"low\", \"overload\"] = 1.0\n", + "\n", + "As[1][\"low\", \"regular\"] = 1.0\n", + "As[1][\"low\", \"alert\"] = 1.0\n", + "As[1][\"high\", \"critical\"] = 1.0\n", + "\n", + "As[2][\"low\", \"low\"] = 1.0\n", + "As[2][\"medium\", \"low\"] = 1.0\n", + "As[2][\"high\", \"high\"] = 1.0\n", + "\n", + "Bs[0][\"running\", \"idle\", \"low\"] = 1.0\n", + "Bs[0][\"overload\", \"running\", \"medium\"] = 1.0\n", + "Bs[0][\"overload\", \"overload\", \"high\"] = 1.0\n", + "\n", + "Bs[0][\"idle\", \"idle\", \"off\"] = 1.0\n", + "Bs[0][\"idle\", \"running\", \"off\"] = 1.0\n", + "Bs[0][\"running\", \"overload\", \"off\"] = 1.0\n", + "Bs[0][\"running\", \"running\", \"off\"] = 1.0\n", + "\n", + "Bs[1][\"alert\", \"regular\", \"low\"] = 1.0\n", + "Bs[1][\"critical\", \"alert\", \"medium\"] = 1.0\n", + "Bs[1][\"critical\", \"critical\", \"high\"] = 1.0\n", + "\n", + "Bs[1][\"regular\", \"regular\", \"off\"] = 1.0\n", + "Bs[1][\"regular\", \"alert\", \"off\"] = 1.0\n", + "Bs[1][\"alert\", \"critical\", \"off\"] = 1.0\n", + "Bs[1][\"alert\", \"alert\", \"off\"] = 1.0\n", + "\n", + "Bs[2][\"normal\", \"low\", \"low\"] = 1.0\n", + "Bs[2][\"high\", \"normal\", \"medium\"] = 1.0\n", + "Bs[2][\"high\", \"high\", \"high\"] = 1.0\n", + "\n", + "Bs[2][\"low\", \"low\", \"off\"] = 1.0\n", + "Bs[2][\"low\", \"normal\", \"off\"] = 1.0\n", + "Bs[2][\"normal\", \"high\", \"off\"] = 1.0\n", + "Bs[2][\"normal\", \"normal\", \"off\"] = 1.0\n", + "\n", + "agent = Agent(As, Bs)" + ] } ], "metadata": { diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 685edc42..e2e597c5 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -209,7 +209,7 @@ def __init__( if E is not None: E = jnp.broadcast_to(E, (batch_size,) + E.shape) else: - E = jnp.ones((batch_size, len(policies))) / len(policies) + E = jnp.ones((batch_size, len(self.policies))) / len(self.policies) if self.use_inductive and self.H is not None: I = control.generate_I_matrix(H, B, self.inductive_threshold, self.inductive_depth) From 1d260795350ee447feccffda242c5c08101ba390 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Wed, 12 Jun 2024 14:51:02 +0200 Subject: [PATCH 082/196] updated so we do not add a batch by default in agent constructor --- examples/distribution_api.ipynb | 22 +++---------- examples/graph_worlds_demo.ipynb | 18 +++++------ pymdp/jax/agent.py | 35 +++++++++++---------- pymdp/jax/distribution.py | 53 ++++++++------------------------ pymdp/jax/envs/rollout.py | 2 +- 5 files changed, 44 insertions(+), 86 deletions(-) diff --git a/examples/distribution_api.ipynb b/examples/distribution_api.ipynb index e8d6fbdc..de9a5a32 100644 --- a/examples/distribution_api.ipynb +++ b/examples/distribution_api.ipynb @@ -76,8 +76,6 @@ "A[\"D\", \"D\"] = 1.0\n", "\n", "\n", - "## Transition\n", - "# Similarily we can use the distributions to build a \n", "data = np.zeros((len(states), len(states), len(controls)))\n", "B = Distribution({\"states\": states}, {\"states\": states, \"controls\": controls}, data)\n", "\n", @@ -91,21 +89,9 @@ "B[\"B\", \"C\", \"down\"] = 1.0\n", "B[\"C\", \"D\", \"down\"] = 1.0\n", "\n", - "policies = jnp.expand_dims(jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]]), -1)\n", + "C = jnp.array([0.0, 0.0, 0.0, 1.0])\n", "\n", - "C = jnp.zeros((1, 4))\n", - "C = C.at[0, 0].set(1.0)\n", - "\n", - "agent = Agent([A], [B], [C], policies=policies)\n", - "\n", - "action = jnp.array([[0]])\n", - "qs = [jnp.zeros((1, 1, 4))]\n", - "qs[0] = qs[0].at[0, 0, 0].set(1.0)\n", - "\n", - "observation = [jnp.array([[0]])]\n", - "prior, _ = agent.infer_empirical_prior(action, qs)\n", - "\n", - "agent = Agent([A], [B], [C], policies=policies)\n", + "agent = Agent([A], [B], [C], policies=policies, apply_batch=True)\n", "print(f\"goal state: {states[jnp.argmax(C)]}\")\n", "\n", "prior, _ = agent.infer_empirical_prior(action, [qs_init])\n", @@ -170,7 +156,7 @@ "Bs[0][\"C\", \"D\", \"down\"] = 1.0\n", "\n", "Cs = [jnp.array([0.0, 0.0, 0.0, 1.0])]\n", - "agent = Agent(As, Bs, Cs, policies=policies)\n", + "agent = Agent(As, Bs, Cs, policies=policies, apply_batch=True)\n", "print(f\"goal state: {states[jnp.argmax(Cs[0])]}\")\n", "\n", "prior, _ = agent.infer_empirical_prior(action, [qs_init])\n", @@ -263,7 +249,7 @@ "Bs[2][\"normal\", \"high\", \"off\"] = 1.0\n", "Bs[2][\"normal\", \"normal\", \"off\"] = 1.0\n", "\n", - "agent = Agent(As, Bs)" + "agent = Agent(As, Bs, apply_batch=True)" ] } ], diff --git a/examples/graph_worlds_demo.ipynb b/examples/graph_worlds_demo.ipynb index 27f13d2e..0a0d92d3 100644 --- a/examples/graph_worlds_demo.ipynb +++ b/examples/graph_worlds_demo.ipynb @@ -35,7 +35,7 @@ "outputs": [ { "data": { - "image/png": "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7dq1U58+fbR48WKj4wAUSvgvp9OpgQMHat++fUpPT2cyOwCvcc899ygpKUmZmZlq1KiR0XEAbnnDf5lMJs2ePVs///yznn76aaPjAMBFWb58uRYsWKAZM2ZQJlFtMEIJv/f666/riSee0Lp169SnTx+j4wBAhfLy8hQZGal27dppxYoVMplMRkcCJFEoATkcDvXp00dHjx7Vzp07FRISYnQkADinxx57TO+//77S09PVokULo+MALtzyht8zm82aN2+efvzxR/397383Og4AnFNKSoreeustvfTSS5RJVDuMUAK/mjZtmmJjY/X111+rV69eRscBAJeioiJ16dJF9evX11dffSWLxWJ0JOB3KJTAr8rLyxUVFaXTp09r+/btCg4ONjoSAEiSnnnmGb366qv69ttv1a5dO6PjAGfhljfwK4vFonnz5mn//v168cUXjY4DAJKkbdu2adq0afrHP/5BmUS1xQgl8D/++c9/6rnnnlNqaqq6d+9udBwAfqysrEzXXnutHA6Htm7dqoCAAKMjAedEoQT+x5l/wMvLy7V161YFBgYaHQmAn3rppZf0t7/9TZs3b+YXXFRr3PIG/kdAQIDmz5+v7777Ti+99JLRcQD4qe+//14vvPCCJk6cSJlEtccIJVCBf/zjH3rppZf0zTffqFOnTkbHAeBHzuyPe+zYMe3cuVM1atQwOhJwXhRKoAIlJSXq3r27goODtWnTJlmtVqMjAfATb731lh577DF9+eWX6tu3r9FxgAviljdQgaCgIM2fP1/bt2/X9OnTjY4DwE8cPHhQTz/9tB5++GHKJLwGI5TABcTGxuq1117T9u3b2bIDQKVyOp0aNmyY0tPTlZGRodq1axsdCbgoFErgAs6cUGGz2bR+/XpOqABQaRYsWKB77rlHSUlJGj58uNFxgIvGLW/gAmrUqKF58+YpNTVVr7/+utFxAPioY8eO6cknn9Sdd95JmYTXYYQSuEhPPvmk3nvvPe3cuVOtWrUyOg4AH3Pbbbdp7dq1yszMVIMGDYyOA1wSCiVwkQoKCtSxY0c1b95cycnJMpsZ4AfgGUuWLNHo0aP14Ycf6o477jA6DnDJKJTAJUhOTlb//v311ltv6dFHHzU6DgAfcPLkSbVv317du3dXQkKCTCaT0ZGAS0ahBC7RI488ogULFig9PV0tWrQwOg4AL/fggw/q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", + "image/png": "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+BymvAH4hDFjxiglJUVms1k9e/bUokWLjI4EqKCgQKNGjdJ3332nzz//nDIJlINCCcBntG/fXsnJyRo+fLgmTJigBx54QMXFxUbHQoAqKSnRlClTtHXrVq1atUpXXXWV0ZEAn0WhBOBTateurQULFuiVV17RP//5Tw0YMEDHjh0zOhYCjMvl0t13360VK1Zo0aJFslqtRkcCfBqFEoDPMZlMuu+++xQXF6fU1FR169ZNW7ZsMToWAsjjjz+uf//735o7d65GjBhhdBzA51EoAfis2NhY7dy5U23atJHdbterr77K1kLwuldffVXPPfecZs2apZtvvtnoOEC1QKEE4NOaNm2qjRs36t5779X999+vyZMnKzc31+hY8FPz58/X/fffr4cfflgPPPCA0XGAaoNtgwBUG4sWLdKtt96qqKgoLVu2TO3atTM6EvzImjVrNHLkSN14442aO3euTCaT0ZGAaoMzlACqjfHjx2v79u1yOBzq0aOHli9fbnQk+ImtW7dq7NixGjZsmP71r39RJoGLRKEEUK1ceeWV2r59uwYNGqQxY8bokUcekcPhMDoWqrF9+/bp2muvVc+ePbVw4UIFBQUZHQmodpjyBlAtuVwuzZo1S4888oj69++vBQsWqHHjxkbHQjVz+PBhRUdHq1GjRtq8ebPq1atndCSgWqJQAqjW4uLiNGHCBIWEhGjJkiXq3bu30ZFQTfz000+KjY2Vw+FQYmKiLrnkEqMjAdUWU94AqjW73a6dO3eqRYsWslqtevPNN9laCOeVk5OjoUOH6uTJk1q3bh1lEnAThRJAtdeiRQtt3rxZd955p/785z/rlltuUX5+vtGx4KMKCws1atQopaamau3atbrsssuMjgRUe0x5A/ArH374oe644w61bdtWy5YtoyzgHCUlJZo4caJWrVqldevWyWazGR0J8AucoQTgV2644QZt27ZNeXl56t69uz799FOjI8FHuFwu3XPPPVq2bJk+/vhjyiTgQRRKAH7nqquu0pdffimbzaYRI0boiSeeUElJidGxYLAnn3xSb7/9tt555x1dd911RscB/ApT3gD8ltPp1PPPP6/HHntMgwcP1vz58xUREWF0LBjgn//8p+677z698MILevjhh42OA/gdCiUAv7du3TpNnjxZtWvX1tKlS9W9e3ejI6EKffTRR5oyZYoefPBB/eMf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", "text/plain": [ "
" ] @@ -197,7 +197,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 8, @@ -206,7 +206,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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CYMyIADQOhp6xqJQKBx0/QMPPBCf//znj+g1/LkpALSeQXnG4ig+8gIAGAV8VwgAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkGZsswdoVYVCodkjpKjX680eAYARxBULACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACBNQ2GxatWqmD17dnR0dERHR0fMmzcv1q1bN1izAQAtpqGwmDZtWtx+++2xbdu22Lp1a3zsYx+LT37yk/H73/9+sOYDAFpIoV6v14/mBSZOnBjf/e5347rrrjui7avVapRKpahUKtHR0XE0h26qQqHQ7BFSHOXpB2CUONL377EDPUBvb2/89Kc/jf3798e8efMOuV2tVotarXbAYADAyNTww5vPP/98vP/9749isRhf/OIXY+3atXH66acfcvuenp4olUr9S7lcPqqBAYDhq+FbIe+880689tprUalU4mc/+1n84Ac/iI0bNx4yLg52xaJcLrsVMky4FQLAkTjSWyFH/YzFggUL4tRTT4177703dbDhTlgAMJoc6fv3UX+ORV9f3wFXJACA0auhhzeXL18eCxcujOnTp8fevXtjzZo18dRTT8WTTz45WPMBAC2kobDYs2dPfO5zn4t//OMfUSqVYvbs2fHkk0/Gxz/+8cGaDwBoIQ2Fxf333z9YcwAAI4DvCgEA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0oxt9gCtql6vN3sEABh2XLEAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIcVVjcfvvtUSgUYunSpUnjAACtbMBhsWXLlrj33ntj9uzZmfMAAC1sQGGxb9++WLRoUdx3331x7LHHvue2tVotqtXqAQsAMDINKCy6urrisssuiwULFhx2256eniiV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9evXx7vvvhuXXHJJ7N+/v9mjjWpbtmyJe++9N2bPnt3sUUatt99+O+bPnx/ve9/7Yt26dfGHP/whvve978Wxxx7b7NFGnTvuuCNWrVoVK1eujD/+8Y9xxx13xHe+85246667mj1ayxtRn2Mxd+7cmDNnTqxcuTIi/vcLz8rlctxwww2xbNmyJk83er355psxefLk2LhxY1x44YXNHmdU2rdvX5x77rnx/e9/P7797W/H2WefHStWrGj2WKPOsmXL4je/+U38+te/bvYoo94nPvGJmDJlStx///396z71qU/FhAkT4oc//GETJ2t9I+aKxTvvvBPbtm2LBQsW9K8bM2ZMLFiwIJ599tkmTkalUomIiIkTJzZ5ktGrq6srLrvssgP+/2DoPfbYY9HZ2RlXXXVVTJ48Oc4555y47777mj3WqHTBBRfEhg0b4qWXXoqIiN/97nfx9NNPx8KFC5s8Wesb8m83HSxvvfVW9Pb2xpQpUw5YP2XKlPjTn/7UpKno6+uLpUuXxvz582PWrFnNHmdUeuihh2L79u2xZcuWZo8y6v3lL3+JVatWRXd3d3zta1+LLVu2xI033hjjxo2LxYsXN3u8UWXZsmVRrVZj5syZ0dbWFr29vXHrrbfGokWLmj1ayxsxYcHw1NXVFS+88EI8/fTTzR5lVNq5c2csWbIk1q9fH+PHj2/2OKNeX19fdHZ2xm233RYREeecc0688MILcc899wiLIfaTn/wkfvSjH8WaNWvijDPOiB07dsTSpUtj6tSpzsVRGjFhcdxxx0VbW1vs3r37gPW7d++OE044oUlTjW7XX399PP7447Fp06aYNm1as8cZlbZt2xZ79uyJc889t39db29vbNq0KVauXBm1Wi3a2tqaOOHocuKJJ8bpp59+wLrTTjstfv7znzdpotHrK1/5Sixbtiw++9nPRkTEmWeeGX/729+ip6dHWBylEfOMxbhx4+K8886LDRs29K/r6+uLDRs2xLx585o42ehTr9fj+uuvj7Vr18avfvWrmDFjRrNHGrUuvvjieP7552PHjh39S2dnZyxatCh27NghKobY/Pnz/+tPr1966aU46aSTmjTR6PXvf/87xow58C2wra0t+vr6mjTRyDFirlhERHR3d8fixYujs7Mzzj///FixYkXs378/rr322maPNqp0dXXFmjVr4tFHH4329vbYtWtXRESUSqWYMGFCk6cbXdrb2//r2ZZjjjkmJk2a5JmXJrjpppviggsuiNtuuy0+/elPx3PPPRerV6+O1atXN3u0Uefyyy+PW2+9NaZPnx5nnHFG/Pa3v40777wzvvCFLzR7tNZXH2Huuuuu+vTp0+vjxo2rn3/++fXNmzc3e6RRJyIOujzwwAPNHo16vf6Rj3ykvmTJkmaPMWr94he/qM+aNateLBbrM2fOrK9evbrZI41K1Wq1vmTJkvr06dPr48ePr59yyin1r3/96/Vardbs0VreiPocCwCguUbMMxYAQPMJCwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANL8D2eqNJ/7/+Y6AAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -230,7 +230,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 9, @@ -239,7 +239,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfQAAAGdCAYAAADkLYEYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAXN0lEQVR4nO3df2zU9f3A8Vcp42DuelOkCOFQ1C0IiD8oEmTzx0QNUTPN4jaDGcNlyZaqYLNlsGVzidPikhkWdVWcwyXKcL9QZ6JGWYQ5JRY6FpmbvyedDtBFe8DI1bT3/WOxW5Vqr/R63777eCSfP+7Tz6fvlxfMM5+7z11rSqVSKQCAYW1UtQcAAA6doANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJGD3UC3Z3d8frr78e2Ww2ampqhnp5ABhWSqVS7N27NyZPnhyjRvV9HT7kQX/99dcjn88P9bIAMKy1t7fHlClT+vz5kAc9m81GxH8Gq6urG+rlAWBYKRQKkc/ne/rZlyEP+rsvs9fV1Qk6APTTh71N7aY4AEiAoANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkYUNBvvfXWOOaYY2Ls2LExb968ePrppwd7LgCgDGUH/d57742mpqa49tpro62tLU466aQ4//zzY8+ePZWYDwDoh7KDftNNN8VXv/rVWLp0acyYMSNuu+22+OhHPxo/+9nPKjEfANAPZQW9s7Mztm3bFgsXLvzvLxg1KhYuXBhPPfXUQc8pFotRKBR6bQDA4Cor6G+++WZ0dXXFxIkTe+2fOHFi7Nq166DnNDc3Ry6X69ny+fzApwUADqrid7mvXLkyOjo6erb29vZKLwkAI87ocg4+8sgjo7a2Nnbv3t1r/+7du+Ooo4466DmZTCYymczAJwQAPlRZV+hjxoyJOXPmxMaNG3v2dXd3x8aNG2P+/PmDPhwA0D9lXaFHRDQ1NcWSJUuioaEhTjvttFi9enXs378/li5dWon5AIB+KDvoX/jCF+KNN96I733ve7Fr1644+eST4+GHH37fjXIAwNCpKZVKpaFcsFAoRC6Xi46OjqirqxvKpQFg2OlvN32XOwAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkIDR1Vr4pZdeimw2W63lB+T444+v9ggAcFCu0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASEDZQd+8eXNcdNFFMXny5KipqYn77ruvAmMBAOUoO+j79++Pk046KW699dZKzAMADMDock9YtGhRLFq0qBKzAAADVHbQy1UsFqNYLPY8LhQKlV4SAEacit8U19zcHLlcrmfL5/OVXhIARpyKB33lypXR0dHRs7W3t1d6SQAYcSr+knsmk4lMJlPpZQBgRPM5dABIQNlX6Pv27YsXX3yx5/Err7wS27dvjyOOOCKmTp06qMMBAP1TdtC3bt0aZ599ds/jpqamiIhYsmRJ3HXXXYM2GADQf2UH/ayzzopSqVSJWQCAAfIeOgAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkICy/x76SPbss89We4QRZcaMGdUeAWDYcIUOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASICgA0ACygp6c3NzzJ07N7LZbNTX18fFF18czz33XKVmAwD6qaygb9q0KRobG2PLli3x6KOPxjvvvBPnnXde7N+/v1LzAQD9MLqcgx9++OFej++6666or6+Pbdu2xRlnnDGogwEA/VdW0N+ro6MjIiKOOOKIPo8pFotRLBZ7HhcKhUNZEgA4iAHfFNfd3R3Lly+PBQsWxKxZs/o8rrm5OXK5XM+Wz+cHuiQA0IcBB72xsTF27NgR69ev/8DjVq5cGR0dHT1be3v7QJcEAPowoJfcr7zyynjwwQdj8+bNMWXKlA88NpPJRCaTGdBwAED/lBX0UqkUV111VWzYsCEef/zxmDZtWqXmAgDKUFbQGxsbY926dXH//fdHNpuNXbt2RURELpeLcePGVWRAAODDlfUeektLS3R0dMRZZ50VkyZN6tnuvffeSs0HAPRD2S+5AwD///gudwBIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASAB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", + "image/png": "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b7mff/758eKLL/bYt3Tp0pg5c2Z861vf+lDMIyIymUxkMplKlgEAKlRR0LPZbMyePbvHviOOOCImTJjwof0AwNDxTXEAkICK73L/v5555plBGAMAGAhX6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgARUF/fvf/37U1dX12GbOnFmt2QCAPhpd6QknnXRSPP300//zBKMrfgoAYJBVXOPRo0fH0UcfXY1ZAIB+qvgz9FdeeSWmTJkSxx13XCxevDh27dr1kceXSqUoFos9NgBgcFUU9Hnz5sV9990XTzzxRKxZsybeeOON+MxnPhP79u3r9ZyWlpbI5/PdW6FQGPDQAEBPdeVyudzfk99///045phj4rbbbotrrrnmkMeUSqUolUrdj4vFYhQKhWhra4tsNtvfpWtixowZtR4BgBGmWCxGPp+Pjo6OyOVyvR43oDvaPvnJT8anPvWpePXVV3s9JpPJRCaTGcgyAMBhDOj30Pfv3x+vvfZaTJ48ebDmAQD6oaKgf+Mb34jNmzfH3//+93juuefi8ssvj/r6+rjyyiurNR8A0AcVveX+j3/8I6688sr417/+FRMnToxPf/rTsXXr1pg4cWK15gMA+qCioG/YsKFacwAAA+C73AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEhAxUF/66234qqrrooJEybEuHHj4uSTT45t27ZVYzYAoI9GV3Lwe++9FwsWLIjzzjsvHn/88Zg4cWK88sorceSRR1ZrPgCgDyoK+q233hqFQiHWrVvXvW/69OmDPhQAUJmK3nJ/5JFHorGxMa644opoaGiI0047Le65556PPKdUKkWxWOyxAQCDq6Kgv/76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meI1r8CwD/pRRx0V9fX1sWfPnh779+zZE0cffXSNphoZrr322njsscdiy5YtVf+TuCPZ9u3bY+/evXH66ad37+vs7IwtW7bEHXfcEaVSKerr62s4YVomT54cs2bN6rHvxBNPjN/85jc1mih93/zmN2PFihXxpS99KSIiTj755HjzzTejpaVF0Csw7D9DHzNmTJxxxhmxadOm7n1dXV2xadOmmD9/fg0nS1e5XI5rr702Nm7cGL/73e9i+vTptR4paeeff368+OKLsWPHju6tsbExFi9eHDt27BDzQbZgwYIP/Rrmyy+/HMccc0yNJkrfv//97xg1qmeO6uvro6urq0YTDU/D/go9IqK5uTmWLFkSjY2NceaZZ8bq1avjwIEDsXTp0lqPlqSmpqZYv359PPzww5HNZmP37t0REZHP52PcuHE1ni492Wz2Q/cnHHHEETFhwgT3LVTBDTfcEGeddVbccsst8YUvfCFeeOGFWLt2baxdu7bWoyXr0ksvjZtvvjmmTZsWJ510Uvzxj3+M2267La6++upajza8lBNx++23l6dNm1YeM2ZM+cwzzyxv3bq11iMlKyIOua1bt67Wo40Y55xzTnnZsmW1HiNZjz76aHn27NnlTCZTnjlzZnnt2rW1HilpxWKxvGzZsvK0adPKY8eOLR933HHl73znO+VSqVTr0YaVJH4PHQBGumH/GToAIOgAkARBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQAEEHgAQIOgAk4L8ACkSlhGiTsNsAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -261,7 +261,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 10, @@ -270,7 +270,7 @@ }, { "data": { - "image/png": "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+PHjY968efHUU0/lPdKo09XVFXPnzo329vaYPHlyXHrppfHcc8/lPRYRcfPNN0ehUIjly5fnPcqo9corr8SVV14ZkyZNigkTJsRpp50WTz/9dN5jjTo9PT3xta99LWbMmBETJkyIk08+OW644YYj/oItjqylwuKBBx6IFStWxPXXXx87d+6M008/PS666KLYu3dv3qONKlu2bInOzs7Ytm1bbNy4Md5666248MIL48CBA3mPNqpt37497rrrrpgzZ07eo4xab7zxRixYsCDe9a53xYYNG+L3v/99fOc734mjjz4679FGnVtuuSXWrFkTt99+e/zhD3+IW265Jb71rW/FbbfdlvdoTa+lfo7FvHnzYu7cuXH77bdHxL9/4VmlUolrrrkmVq5cmfN0o9drr70WkydPji1btsR5552X9zij0v79++Oss86K7373u/HNb34zzjjjjFi9enXeY406K1eujF//+tfxq1/9Ku9RRr2PfvSjMWXKlLjnnnv61n384x+PCRMmxA9+8IMcJ2t+LXPH4s0334wdO3bEwoUL+9aNGTMmFi5cGE8++WSOk1GtViMiYuLEiTlPMnp1dnbGxRdffND/Hwy/hx9+ODo6OuLyyy+PyZMnx5lnnhl333133mONSueee25s2rQpnn/++YiI+O1vfxuPP/54LFq0KOfJmt+w/3bTofL6669HT09PTJky5aD1U6ZMiT/+8Y85TUVvb28sX748FixYELNnz857nFHp/vvvj507d8b27dvzHmXU+/Of/xxr1qyJFStWxFe+8pXYvn17XHvttTFu3LhYsmRJ3uONKitXroxarRYzZ86Mtra26OnpiRtvvDEWL16c92hNr2XCgpGps7Mznn322Xj88cfzHmVU6u7ujmXLlsXGjRtj/PjxeY8z6vX29kZHR0fcdNNNERFx5plnxrPPPht33nmnsBhmP/7xj+OHP/xhrFu3Lk499dTYtWtXLF++PKZOnepcDFLLhMUxxxwTbW1tsWfPnoPW79mzJ4477ricphrdrr766njkkUdi69atMW3atLzHGZV27NgRe/fujbPOOqtvXU9PT2zdujVuv/32qNfr0dbWluOEo8vxxx8fs2bNOmjdKaecEj/72c9ymmj0+tKXvhQrV66MT33qUxERcdppp8Vf//rX6OrqEhaD1DLvWIwbNy7OPvvs2LRpU9+63t7e2LRpU8yfPz/HyUafLMvi6quvjvXr18cvf/nLmDFjRt4jjVoXXHBBPPPMM7Fr166+paOjIxYvXhy7du0SFcNswYIFb/vW6+effz5OOOGEnCYavf71r3/FmDEHXwLb2tqit7c3p4laR8vcsYiIWLFiRSxZsiQ6OjrinHPOidWrV8eBAwdi6dKleY82qnR2dsa6devioYceivb29ti9e3dERJTL5ZgwYULO040u7e3tb3u35aijjopJkyZ55yUH1113XZx77rlx0003xSc+8Yl46qmnYu3atbF27dq8Rxt1Lrnkkrjxxhtj+vTpceqpp8ZvfvObuPXWW+Ozn/1s3qM1v6zF3Hbbbdn06dOzcePGZeecc062bdu2vEcadSLikMu9996b92hkWfbBD34wW7ZsWd5jjFo///nPs9mzZ2fFYjGbOXNmtnbt2rxHGpVqtVq2bNmybPr06dn48eOzk046KfvqV7+a1ev1vEdrei31cywAgHy1zDsWAED+hAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkvkfGKxvBVsQDL8AAAAASUVORK5CYII=", + "image/png": "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Pcqo9corr8SVV14ZEydOjPHjx8dpp50WTz/9dN5jjTq9vb3xjW98I6ZPnx7jx4+Pk08+OW644YbD/oItDm9EhcUDDzwQy5cvj+uvvz527NgRp59+elx00UWxZ8+evEcbVTZv3hxdXV2xdevW2LBhQ7z11ltx4YUXxv79+/MebVTbtm1b3HXXXTF79uy8Rxm13njjjZg/f3685z3vifXr18cf//jH+N73vhdHH3103qONOrfcckusXr06br/99vjTn/4Ut9xyS3znO9+J2267Le/RWt6I+jkWc+fOjTlz5sTtt98eEf/9hWeVSiWuueaaWLFiRc7TjV6vvfZaTJo0KTZv3hznnXde3uOMSvv27Yuzzjorvv/978e3v/3tOOOMM2LVqlV5jzXqrFixIn7729/Gb37zm7xHGfU+/vGPx+TJk+Oee+7p3/fJT34yxo8fHz/60Y9ynKz1jZgnFm+++WZs3749FixY0L9vzJgxsWDBgnjyySdznIxqtRoRERMmTMh5ktGrq6srLr744gP+/2DoPfzww9HZ2RmXX355TJo0Kc4888y4++678x5rVDr33HNj48aN8fzzz0dExO9///t4/PHHY+HChTlP1vqG/LebNsvrr78evb29MXny5AP2T548Of785z/nNBV9fX2xbNmymD9/fsyaNSvvcUal+++/P3bs2BHbtm3Le5RR769//WusXr06li9fHl/72tdi27Ztce2118bYsWNj8eLFeY83qqxYsSJqtVrMmDEj2traore3N2688cZYtGhR3qO1vBETFgxPXV1d8eyzz8bjjz+e9yijUk9PTyxdujQ2bNgQ48aNy3ucUa+vry86OzvjpptuioiIM888M5599tm48847hcUQ++lPfxo//vGPY+3atXHqqafGzp07Y9myZTFlyhTXYpBGTFgcc8wx0dbWFrt37z5g/+7du+O4447LaarR7eqrr45HHnkktmzZElOnTs17nFFp+/btsWfPnjjrrLP69/X29saWLVvi9ttvj3q9Hm1tbTlOOLocf/zxMXPmzAP2nXLKKfGLX/wip4lGr6985SuxYsWK+MxnPhMREaeddlr8/e9/j+7ubmExSCPmHYuxY8fG2WefHRs3buzf19fXFxs3box58+blONnok2VZXH311bFu3br49a9/HdOnT897pFHrggsuiGeeeSZ27tzZv3V2dsaiRYti586domKIzZ8//x3fev3888/HCSeckNNEo9d//vOfGDPmwFtgW1tb9PX15TTRyDFinlhERCxfvjwWL14cnZ2dcc4558SqVati//79sWTJkrxHG1W6urpi7dq18dBDD0VHR0fs2rUrIiLK5XKMHz8+5+lGl46Ojne823LUUUfFxIkTvfOSg+uuuy7OPffcuOmmm+JTn/pUPPXUU7FmzZpYs2ZN3qONOpdccknceOONMW3atDj11FPjd7/7Xdx6663x+c9/Pu/RWl82wtx2223ZtGnTsrFjx2bnnHNOtnXr1rxHGnUi4qDbvffem/doZFn24Q9/OFu6dGneY4xav/zlL7NZs2ZlxWIxmzFjRrZmzZq8RxqVarVatnTp0mzatGnZuHHjspNOOin7+te/ntXr9bxHa3kj6udYAAD5GjHvWAAA+RMWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEjmfwDfu1bhIY2oGQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -292,7 +292,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 11, @@ -301,7 +301,7 @@ }, { "data": { - "image/png": "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R0fU1NTEkCFDolAodPuziEO/Qs/lctHS0hK1tbV98J/Qf9rb26s9oSwHDx6s9oRBZ9++fdWeUJa5c+dWewLwH/L5fGSz2Whra4u6uroezyvpLffzzz8/XnjhhW73LV68OCZPnhzf+973PhbziIhMJhOZTKaUywAAJSop6LW1tTFt2rRu9x111FExatSoj90PAPQfPykOABJQ8qfc/9OmTZv6YAYAcCS8QgeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQgGHVHgD893jooYeqPWFQueKKK6o9gYR4hQ4ACRB0AEiAoANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAJKCvqPf/zjqKmp6XZMnjy5UtsAgF4aVuoDpk6dGk8//fT//gXDSv4rAIA+VnKNhw0bFscff3wltgAAZSr5a+ivvPJKjBs3Lk466aRYuHBhvPXWW594fqFQiHw+3+0AAPpWSUGfNWtW3HffffHEE0/E6tWr44033ogvfvGLsW/fvh4f09TUFNlstuvI5XJHPBoA6K6mWCwWy33wBx98ECeccELcdttt8c1vfvOQ5xQKhSgUCl238/l85HK5aGlpidra2nIvXRXt7e3VnlCWgwcPVnvCoPNJ/5P732zv3r3VnjCoXHHFFdWewADS1tYWdXV1Pf75EX2i7TOf+Ux87nOfi1dffbXHczKZTGQymSO5DABwGEf0fej79++P1157LcaOHdtXewCAMpQU9O985zuxefPm+Mc//hHPPvtsXH755TF06NC48sorK7UPAOiFkt5yf/vtt+PKK6+Mf/3rXzF69Oj4whe+EFu3bo3Ro0dXah8A0AslBX39+vWV2gEAHAE/yx0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEhASb8PHYC+UywWqz2BASCfz0c2mz3seV6hA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQ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", + "image/png": "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w4ZoaWmJ5ubmWo+SvFdffTXWrFkTjY2N8a1vfSuam5vj+uuvj+HDh8eSJUtqPV6SVqxYEYVCIaZMmRJDhw6Nzs7OuPnmm2Px4sW1Hu2octQHndpqaGiIXbt2xdNPP13rUZLV2toay5YtiyeffDJGjBhR63GS19XVFbNmzYpbbrklIiLOOuus2LVrV9x1112CXiW/+MUv4oEHHoj169fHtGnTYufOnbF8+fIYP36857wMR33QTzjhhBg6dGjs3bu3x/69e/fGiSeeWKOpBodrr702Hn300di6dWvVvxJ3MNuxY0fs27cvzj777O59nZ2dsXXr1rjjjjuiWCzG0KFDazhhWsaNGxdTp07tse+0006LX//61zWaKH3f+MY3YsWKFfGFL3whIiJOP/30eP3116OpqUnQy3DUv4c+fPjwmDlzZmzatKl7X1dXV2zatCnmzp1bw8nSVSqV4tprr42NGzfG7373u5g0aVKtR0raBRdcEM8//3zs3Lmze5s1a1YsXrw4du7cKeb9bN68eR/4NcwXX3wxTjrppBpNlL5///vfMWRIzxwNHTo0urq6ajTR0emov0KPiGhsbIwlS5bErFmz4pxzzonVq1fHgQMHYunSpbUeLUkNDQ2xfv36ePjhhyObzcaePXsiIiKXy8XIkSNrPF16stnsB+5POOaYY2LUqFHuW6iCG264Ic4999y45ZZb4nOf+1w899xzsXbt2li7dm2tR0vWZZddFjfffHNMnDgxpk2bFn/84x/jtttui2uuuabWox1dSom4/fbbSxMnTiwNHz68dM4555S2bdtW65GSFRGH3NatW1fr0QaN888/v7Rs2bJaj5Gs3/72t6Xp06eXMplMacqUKaW1a9fWeqSkFQqF0rJly0oTJ04sjRgxonTKKaeUvv3tb5eKxWKtRzuqJPF76AAw2B3176EDAIIOAEkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAv4HDMm+YDGIbLUAAAAASUVORK5CYII=", "text/plain": [ "
" ] diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index e2e597c5..ded8c9a9 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -108,7 +108,6 @@ def __init__( A_dependencies=None, B_dependencies=None, control_fac_idx=None, - batch_size=1, policy_len=1, policies=None, gamma=16.0, @@ -125,6 +124,7 @@ def __init__( sampling_mode="marginal", inference_algo="fpi", num_iter=16, + apply_batch=False, learn_A=True, learn_B=True, learn_C=False, @@ -135,7 +135,6 @@ def __init__( # extract high level variables self.num_modalities = len(A) self.num_factors = len(B) - self.batch_size = batch_size # extract dependencies for A and B matrices self.A_dependencies, self.B_dependencies = self._construct_dependencies(A_dependencies, B_dependencies, A, B) @@ -143,6 +142,7 @@ def __init__( # extract A and B tensors A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] B = [jnp.array(b.data) if isinstance(b, Distribution) else b for b in B] + self.batch_size = A[0].shape[0] if not apply_batch else 1 # extract shapes from A and B self.num_states = jtu.tree_map(lambda x: x.shape[1], B) @@ -187,29 +187,30 @@ def __init__( self.policies = policies # setup pytree leaves A, B, C, D, E, pA, pB, H, I - A = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), A) - B = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), B) + if apply_batch: + A = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), A) + B = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), B) - if pA is not None: - pA = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), pA) + if pA is not None and apply_batch: + pA = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pA) - if pB is not None: - pB = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), pB) + if pB is not None and apply_batch: + pB = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pB) - if C is not None: - C = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), C) + if C is not None and apply_batch: + C = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), C) else: - C = [jnp.ones((batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities)] + C = [jnp.ones((self.batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities)] - if D is not None: - D = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), D) + if D is not None and apply_batch: + D = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), D) else: - D = [jnp.ones((batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors)] + D = [jnp.ones((self.batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors)] - if E is not None: - E = jnp.broadcast_to(E, (batch_size,) + E.shape) + if E is not None and apply_batch: + E = jnp.broadcast_to(E, (self.batch_size,) + E.shape) else: - E = jnp.ones((batch_size, len(self.policies))) / len(self.policies) + E = jnp.ones((self.batch_size, len(self.policies))) / len(self.policies) if self.use_inductive and self.H is not None: I = control.generate_I_matrix(H, B, self.inductive_threshold, self.inductive_depth) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 6ce00f9b..154789c0 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -8,14 +8,8 @@ def __init__(self, event: dict, batch: dict, data: np.ndarray = None): self.event = event self.batch = batch - self.event_indices = { - key: {v: i for i, v in enumerate(values)} - for key, values in event.items() - } - self.batch_indices = { - key: {v: i for i, v in enumerate(values)} - for key, values in batch.items() - } + self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} + self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} if data is not None: self.data = data @@ -48,9 +42,7 @@ def _get_slices(self, keys, indices, full_indices): for key in full_indices: if key in keys: if isinstance(keys[key], list): - slices.append( - [self._get_index(v, indices[key]) for v in keys[key]] - ) + slices.append([self._get_index(v, indices[key]) for v in keys[key]]) else: slices.append(self._get_index(keys[key], indices[key])) else: @@ -77,17 +69,13 @@ def _get_index_from_axis(self, axis, element): def __getitem__(self, indices): if not isinstance(indices, tuple): indices = (indices,) - index_list = [ - self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) - ] + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] return self.data[tuple(index_list)] def __setitem__(self, indices, value): if not isinstance(indices, tuple): indices = (indices,) - index_list = [ - self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) - ] + index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] self.data[tuple(index_list)] = value def normalize(self): @@ -159,15 +147,11 @@ def compile_model(config): labels[k] = list(range(v[keyword])) case "depends_on": if mod == "states": - state_dependencies[k] = [ - name for name in v[keyword] - ] + state_dependencies[k] = [name for name in v[keyword]] if k in v[keyword]: transition_events[k] = labels[k] else: - likelihood_dependencies[k] = [ - name for name in v[keyword] - ] + likelihood_dependencies[k] = [name for name in v[keyword]] likelihood_events[k] = labels[k] case "controlled_by": control_dependencies[k] = [name for name in v[keyword]] @@ -203,16 +187,12 @@ def get_dependencies(likelihoods, transitions): transition_dependencies = dict() states = [list(trans.event.keys())[0] for trans in transitions] for like in likelihoods: - likelihood_dependencies[list(like.event.keys())[0]] = [ - states.index(name) for name in like.batch.keys() - ] + likelihood_dependencies[list(like.event.keys())[0]] = [states.index(name) for name in like.batch.keys()] for trans in transitions: transition_dependencies[list(trans.event.keys())[0]] = [ states.index(name) for name in trans.batch.keys() if name in states ] - return list(likelihood_dependencies.values()), list( - transition_dependencies.values() - ) + return list(likelihood_dependencies.values()), list(transition_dependencies.values()) if __name__ == "__main__": @@ -240,22 +220,13 @@ def get_dependencies(likelihoods, transitions): assert np.all(transition[:, "B", "up"] == 1.0) assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.0 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 assert transition.get({"control": "up"}).shape == (4, 4) transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.5 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) - assert ( - transition.get({"location": "A", "control": "up"}, {"location": "B"}) - == 0.7 - ) + assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) diff --git a/pymdp/jax/envs/rollout.py b/pymdp/jax/envs/rollout.py index 737f6f5f..6382c6b6 100644 --- a/pymdp/jax/envs/rollout.py +++ b/pymdp/jax/envs/rollout.py @@ -60,7 +60,7 @@ def step_fn(carry, x): rng_key = keys[0] observation_t, env = env.step(rng_key=keys[1:], actions=action_t) - empirical_prior, qs = agent.update_empirical_prior(action_t, qs) + empirical_prior, qs = agent.infer_empirical_prior(action_t, qs) carry = { "action_t": action_t, From fac44bd20248f1de68e1dfd461e161ebd67d394a Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Wed, 12 Jun 2024 14:53:26 +0200 Subject: [PATCH 083/196] fixed normalize --- pymdp/jax/distribution.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 154789c0..a4f8ba59 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -79,7 +79,7 @@ def __setitem__(self, indices, value): self.data[tuple(index_list)] = value def normalize(self): - norm_dist(self.data) + self.data = norm_dist(self.data) def compile_model(config): From b10e3289b081ce5de85aa74167a5dc2eaf3b2a59 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Tue, 11 Jun 2024 15:59:16 +0200 Subject: [PATCH 084/196] function to rol out using jax --- pymdp/jax/agent.py | 312 +++++++++++++++------- pymdp/jax/envs/env.py | 1 - pymdp/jax/envs/generalized_tmaze.py | 395 ++++++++++++++++++++++++++++ 3 files changed, 619 insertions(+), 89 deletions(-) create mode 100644 pymdp/jax/envs/generalized_tmaze.py diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 776a65dd..b3d46016 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -18,8 +18,9 @@ from jaxtyping import Array from functools import partial + class Agent(Module): - """ + """ The Agent class, the highest-level API that wraps together processes for action, perception, and learning under active inference. The basic usage is as follows: @@ -37,7 +38,7 @@ class Agent(Module): A: List[Array] B: List[Array] - C: List[Array] + C: List[Array] D: List[Array] E: Array # empirical_prior: List @@ -47,15 +48,19 @@ class Agent(Module): q_pi: Optional[List[Array]] # parameters used for inductive inference - inductive_threshold: Array # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) - inductive_epsilon: Array # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) + inductive_threshold: Array # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) + inductive_epsilon: Array # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) - H: List[Array] # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints - I: List[Array] # I matrices (one per hidden state factor) used for inductive inference -- these encode the 'reachability' matrices of goal states encoded in `self.H` + H: List[ + Array + ] # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints + I: List[ + Array + ] # I matrices (one per hidden state factor) used for inductive inference -- these encode the 'reachability' matrices of goal states encoded in `self.H` pA: List[Array] pB: List[Array] - + # static parameters not leaves of the PyTree A_dependencies: Optional[List] = field(static=True) B_dependencies: Optional[List] = field(static=True) @@ -67,17 +72,35 @@ class Agent(Module): num_factors: int = field(static=True) num_controls: List[int] = field(static=True) control_fac_idx: Optional[List[int]] = field(static=True) - policy_len: int = field(static=True) # depth of planning during roll-outs (i.e. number of timesteps to look ahead when computing expected free energy of policies) - inductive_depth: int = field(static=True) # depth of inductive inference (i.e. number of future timesteps to use when computing inductive `I` matrix) - policies: Array = field(static=True) # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) - use_utility: bool = field(static=True) # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy - use_states_info_gain: bool = field(static=True) # flag for whether to use state information gain ("salience") when computing expected free energy - use_param_info_gain: bool = field(static=True) # flag for whether to use parameter information gain ("novelty") when computing expected free energy - use_inductive: bool = field(static=True) # flag for whether to use inductive inference ("intentional inference") when computing expected free energy + policy_len: int = field( + static=True + ) # depth of planning during roll-outs (i.e. number of timesteps to look ahead when computing expected free energy of policies) + inductive_depth: int = field( + static=True + ) # depth of inductive inference (i.e. number of future timesteps to use when computing inductive `I` matrix) + policies: Array = field( + static=True + ) # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) + use_utility: bool = field( + static=True + ) # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy + use_states_info_gain: bool = field( + static=True + ) # flag for whether to use state information gain ("salience") when computing expected free energy + use_param_info_gain: bool = field( + static=True + ) # flag for whether to use parameter information gain ("novelty") when computing expected free energy + use_inductive: bool = field( + static=True + ) # flag for whether to use inductive inference ("intentional inference") when computing expected free energy onehot_obs: bool = field(static=True) - action_selection: str = field(static=True) # determinstic or stochastic action selection - sampling_mode : str = field(static=True) # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") - inference_algo: str = field(static=True) # fpi, vmp, mmp, ovf + action_selection: str = field( + static=True + ) # determinstic or stochastic action selection + sampling_mode: str = field( + static=True + ) # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") + inference_algo: str = field(static=True) # fpi, vmp, mmp, ovf learn_A: bool = field(static=True) learn_B: bool = field(static=True) @@ -121,7 +144,7 @@ def __init__( learn_B=True, learn_C=False, learn_D=True, - learn_E=False + learn_E=False, ): ### PyTree leaves self.A = A @@ -139,7 +162,7 @@ def __init__( element_size = lambda x: x.shape[1] self.num_factors = len(self.B) - self.num_states = jtu.tree_map(element_size, self.B) + self.num_states = jtu.tree_map(element_size, self.B) self.num_modalities = len(self.A) self.num_obs = jtu.tree_map(element_size, self.A) @@ -149,34 +172,59 @@ def __init__( self.A_dependencies = A_dependencies else: # assume full dependence of A matrices and state factors - self.A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] - + self.A_dependencies = [ + list(range(self.num_factors)) + for _ in range(self.num_modalities) + ] + for m in range(self.num_modalities): - factor_dims = tuple([self.num_states[f] for f in self.A_dependencies[m]]) - assert self.A[m].shape[2:] == factor_dims, f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." + factor_dims = tuple( + [self.num_states[f] for f in self.A_dependencies[m]] + ) + assert ( + self.A[m].shape[2:] == factor_dims + ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." if self.pA != None: - assert self.pA[m].shape[2:] == factor_dims, f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of pA[{m}]..." - assert max(self.A_dependencies[m]) <= (self.num_factors - 1), f"Check modality {m} of `A_dependencies` - must be consistent with `num_states` and `num_factors`..." - + assert ( + self.pA[m].shape[2:] == factor_dims + ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of pA[{m}]..." + assert max(self.A_dependencies[m]) <= ( + self.num_factors - 1 + ), f"Check modality {m} of `A_dependencies` - must be consistent with `num_states` and `num_factors`..." + # Ensure consistency of B_dependencies with num_states and num_factors if B_dependencies is not None: self.B_dependencies = B_dependencies else: - self.B_dependencies = [[f] for f in range(self.num_factors)] # defaults to having all factors depend only on themselves + self.B_dependencies = [ + [f] for f in range(self.num_factors) + ] # defaults to having all factors depend only on themselves for f in range(self.num_factors): - factor_dims = tuple([self.num_states[f] for f in self.B_dependencies[f]]) - assert self.B[f].shape[2:-1] == factor_dims, f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B[{f}]..." + factor_dims = tuple( + [self.num_states[f] for f in self.B_dependencies[f]] + ) + assert ( + self.B[f].shape[2:-1] == factor_dims + ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B[{f}]..." if self.pB != None: - assert self.pB[f].shape[2:-1] == factor_dims, f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB[{f}]..." - assert max(self.B_dependencies[f]) <= (self.num_factors - 1), f"Check factor {f} of `B_dependencies` - must be consistent with `num_states` and `num_factors`..." + assert ( + self.pB[f].shape[2:-1] == factor_dims + ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB[{f}]..." + assert max(self.B_dependencies[f]) <= ( + self.num_factors - 1 + ), f"Check factor {f} of `B_dependencies` - must be consistent with `num_states` and `num_factors`..." self.batch_size = self.A[0].shape[0] self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) - self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) - self.inductive_epsilon = jnp.broadcast_to(inductive_epsilon, (self.batch_size,)) + self.inductive_threshold = jnp.broadcast_to( + inductive_threshold, (self.batch_size,) + ) + self.inductive_epsilon = jnp.broadcast_to( + inductive_epsilon, (self.batch_size,) + ) ### Static parameters ### self.num_iter = num_iter @@ -198,7 +246,9 @@ def __init__( elif self.use_inductive and I is not None: self.I = I else: - self.I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), self.D) + self.I = jtu.tree_map( + lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), self.D + ) # learning parameters self.learn_A = learn_A @@ -212,7 +262,9 @@ def __init__( self.num_modalities = len(self.num_obs) # If no `num_controls` are given, then this is inferred from the shapes of the input B matrices - self.num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] + self.num_controls = [ + self.B[f].shape[-1] for f in range(self.num_factors) + ] # Users have the option to make only certain factors controllable. # default behaviour is to make all hidden state factors controllable @@ -220,65 +272,116 @@ def __init__( # Users have the option to make only certain factors controllable. # default behaviour is to make all hidden state factors controllable, i.e. `self.num_factors == len(self.num_controls)` if control_fac_idx == None: - self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] + self.control_fac_idx = [ + f for f in range(self.num_factors) if self.num_controls[f] > 1 + ] else: - assert max(control_fac_idx) <= (self.num_factors - 1), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + assert max(control_fac_idx) <= ( + self.num_factors - 1 + ), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." self.control_fac_idx = control_fac_idx for factor_idx in self.control_fac_idx: - assert self.num_controls[factor_idx] > 1, "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" + assert ( + self.num_controls[factor_idx] > 1 + ), "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" if policies is not None: self.policies = policies else: self._construct_policies() - + # set E to uniform/uninformative prior over policies if not given if E is None: - self.E = jnp.ones((self.batch_size, len(self.policies)))/ len(self.policies) + self.E = jnp.ones((self.batch_size, len(self.policies))) / len( + self.policies + ) else: self.E = E def _construct_policies(self): - - self.policies = control.construct_policies( - self.num_states, self.num_controls, self.policy_len, self.control_fac_idx + + self.policies = control.construct_policies( + self.num_states, + self.num_controls, + self.policy_len, + self.control_fac_idx, ) @vmap def _construct_I(self): - return control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) + return control.generate_I_matrix( + self.H, self.B, self.inductive_threshold, self.inductive_depth + ) @property def unique_multiactions(self): size = pymath.prod(self.num_controls) - return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) + return jnp.unique( + self.policies[:, 0], axis=0, size=size, fill_value=-1 + ) @vmap - def learning(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1., lr_pB=1., **kwargs): + def learning( + self, + beliefs_A, + outcomes, + actions, + beliefs_B=None, + lr_pA=1.0, + lr_pB=1.0, + **kwargs, + ): agent = self if self.learn_A: - o_vec_seq = jtu.tree_map(lambda o, dim: nn.one_hot(o, dim), outcomes, self.num_obs) - qA = learning.update_obs_likelihood_dirichlet(self.pA, o_vec_seq, beliefs_A, self.A_dependencies, lr=lr_pA) - E_qA = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qA) + o_vec_seq = jtu.tree_map( + lambda o, dim: nn.one_hot(o, dim), outcomes, self.num_obs + ) + qA = learning.update_obs_likelihood_dirichlet( + self.pA, o_vec_seq, beliefs_A, self.A_dependencies, lr=lr_pA + ) + E_qA = jtu.tree_map( + lambda x: maths.dirichlet_expected_value(x), qA + ) agent = tree_at(lambda x: (x.A, x.pA), agent, (E_qA, qA)) - + if self.learn_B: beliefs_B = beliefs_A if beliefs_B is None else beliefs_B - actions_seq = [actions[..., i] for i in range(actions.shape[-1])] # as many elements as there are control factors, where each element is a jnp.ndarray of shape (n_timesteps, ) + actions_seq = [ + actions[..., i] for i in range(actions.shape[-1]) + ] # as many elements as there are control factors, where each element is a jnp.ndarray of shape (n_timesteps, ) assert beliefs_B[0].shape[0] == actions_seq[0].shape[0] + 1 - actions_onehot = jtu.tree_map(lambda a, dim: nn.one_hot(a, dim, axis=-1), actions_seq, self.num_controls) - qB = learning.update_state_likelihood_dirichlet(self.pB, beliefs_B, actions_onehot, self.B_dependencies, lr=lr_pB) - E_qB = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qB) + actions_onehot = jtu.tree_map( + lambda a, dim: nn.one_hot(a, dim, axis=-1), + actions_seq, + self.num_controls, + ) + qB = learning.update_state_likelihood_dirichlet( + self.pB, + beliefs_B, + actions_onehot, + self.B_dependencies, + lr=lr_pB, + ) + E_qB = jtu.tree_map( + lambda x: maths.dirichlet_expected_value(x), qB + ) # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece if self.use_inductive and self.H is not None: - I_updated = control.generate_I_matrix(self.H, E_qB, self.inductive_threshold, self.inductive_depth) + I_updated = control.generate_I_matrix( + self.H, + E_qB, + self.inductive_threshold, + self.inductive_depth, + ) else: I_updated = self.I - agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) - + agent = tree_at( + lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated) + ) + # if self.learn_C: # self.qC = learning.update_C(self.C, *args, **kwargs) # self.C = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), self.qC) @@ -297,9 +400,11 @@ def learning(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1., lr_pB # agent = tree_at(lambda x: (x.A, x.pA, x.B, x.pB, x.I), self, (E_qA, qA, E_qB, qB, I_updated)) return agent - + @vmap - def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mask=None): + def infer_states( + self, observations, past_actions, empirical_prior, qs_hist, mask=None + ): """ Update approximate posterior over hidden states by solving variational inference problem, given an observation. @@ -310,28 +415,36 @@ def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mas past_actions: ``list`` or ``tuple`` of ints The action input. Each entry ``past_actions[f]`` stores indices (or one-hots?) representing the actions for control factor ``f``. empirical_prior: ``list`` or ``tuple`` of ``jax.numpy.ndarray`` of dtype object - Empirical prior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``empirical_prior`` variable may be a matrix (or list of matrices) + Empirical prior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``empirical_prior`` variable may be a matrix (or list of matrices) of additional dimensions to encode extra conditioning variables like timepoint and policy. Returns --------- qs: ``numpy.ndarray`` of dtype object Posterior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` at timepoint ``t_idx``. """ if not self.onehot_obs: - o_vec = [nn.one_hot(o, self.num_obs[m]) for m, o in enumerate(observations)] + o_vec = [ + nn.one_hot(o, self.num_obs[m]) + for m, o in enumerate(observations) + ] else: o_vec = observations - + A = self.A if mask is not None: for i, m in enumerate(mask): - o_vec[i] = m * o_vec[i] + (1 - m) * jnp.ones_like(o_vec[i]) / self.num_obs[i] - A[i] = m * A[i] + (1 - m) * jnp.ones_like(A[i]) / self.num_obs[i] - + o_vec[i] = ( + m * o_vec[i] + + (1 - m) * jnp.ones_like(o_vec[i]) / self.num_obs[i] + ) + A[i] = ( + m * A[i] + (1 - m) * jnp.ones_like(A[i]) / self.num_obs[i] + ) + output = inference.update_posterior_states( A, self.B, @@ -342,7 +455,7 @@ def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mas A_dependencies=self.A_dependencies, B_dependencies=self.B_dependencies, num_iter=self.num_iter, - method=self.inference_algo + method=self.inference_algo, ) return output @@ -351,10 +464,12 @@ def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mas def update_empirical_prior(self, action, qs): # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t - qs_last = jtu.tree_map( lambda x: x[-1], qs) + qs_last = jtu.tree_map(lambda x: x[-1], qs) # this computation of the predictive prior is correct only for fully factorised Bs. - pred = control.compute_expected_state(qs_last, self.B, action, B_dependencies=self.B_dependencies) - + pred = control.compute_expected_state( + qs_last, self.B, action, B_dependencies=self.B_dependencies + ) + return (pred, qs) @vmap @@ -373,10 +488,12 @@ def infer_policies(self, qs: List): Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. """ - latest_belief = jtu.tree_map(lambda x: x[-1], qs) # only get the posterior belief held at the current timepoint + latest_belief = jtu.tree_map( + lambda x: x[-1], qs + ) # only get the posterior belief held at the current timepoint q_pi, G = control.update_posterior_policies_inductive( self.policies, - latest_belief, + latest_belief, self.A, self.B, self.C, @@ -385,17 +502,17 @@ def infer_policies(self, qs: List): self.pB, A_dependencies=self.A_dependencies, B_dependencies=self.B_dependencies, - I = self.I, + I=self.I, gamma=self.gamma, inductive_epsilon=self.inductive_epsilon, use_utility=self.use_utility, use_states_info_gain=self.use_states_info_gain, use_param_info_gain=self.use_param_info_gain, - use_inductive=self.use_inductive + use_inductive=self.use_inductive, ) return q_pi, G - + @vmap def multiaction_probabilities(self, q_pi: Array): """ @@ -405,7 +522,7 @@ def multiaction_probabilities(self, q_pi: Array): ---------- q_pi: 1D ``numpy.ndarray`` Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - + Returns ---------- multi-action: 1D ``jax.numpy.ndarray`` @@ -413,25 +530,28 @@ def multiaction_probabilities(self, q_pi: Array): """ if self.sampling_mode == "marginal": - marginals = control.get_marginals(q_pi, self.policies, self.num_controls) + marginals = control.get_marginals( + q_pi, self.policies, self.num_controls + ) outer = lambda a, b: jnp.outer(a, b).reshape(-1) marginals = jtu.tree_reduce(outer, marginals) elif self.sampling_mode == "full": locs = jnp.all( - self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), - -1 + self.policies[:, 0] + == jnp.expand_dims(self.unique_multiactions, -2), + -1, ) - marginals = jnp.where(locs, q_pi, 0.).sum(-1) + marginals = jnp.where(locs, q_pi, 0.0).sum(-1) - # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan + # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan return marginals @vmap def sample_action(self, q_pi: Array, rng_key=None): """ Sample or select a discrete action from the posterior over control states. - + Returns ---------- action: 1D ``jax.numpy.ndarray`` @@ -441,15 +561,31 @@ def sample_action(self, q_pi: Array, rng_key=None): """ if (rng_key is None) and (self.action_selection == "stochastic"): - raise ValueError("Please provide a random number generator key to sample actions stochastically") + raise ValueError( + "Please provide a random number generator key to sample actions stochastically" + ) if self.sampling_mode == "marginal": - action = control.sample_action(q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key) + action = control.sample_action( + q_pi, + self.policies, + self.num_controls, + self.action_selection, + self.alpha, + rng_key=rng_key, + ) elif self.sampling_mode == "full": - action = control.sample_policy(q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key) + action = control.sample_policy( + q_pi, + self.policies, + self.num_controls, + self.action_selection, + self.alpha, + rng_key=rng_key, + ) return action - + def _get_default_params(self): method = self.inference_algo default_params = None @@ -466,4 +602,4 @@ def _get_default_params(self): elif method == "CV": raise NotImplementedError("CV is not implemented") - return default_params \ No newline at end of file + return default_params diff --git a/pymdp/jax/envs/env.py b/pymdp/jax/envs/env.py index 3b83ccf8..81c3a062 100644 --- a/pymdp/jax/envs/env.py +++ b/pymdp/jax/envs/env.py @@ -1,4 +1,3 @@ -# Task environmnet from typing import Optional, List, Dict from jaxtyping import Array, PRNGKeyArray from functools import partial diff --git a/pymdp/jax/envs/generalized_tmaze.py b/pymdp/jax/envs/generalized_tmaze.py new file mode 100644 index 00000000..924edbc3 --- /dev/null +++ b/pymdp/jax/envs/generalized_tmaze.py @@ -0,0 +1,395 @@ +from pymdp.jax.envs import PyMDPEnv +import numpy as np + +import matplotlib.pyplot as plt +import io +import PIL.Image +from matplotlib.offsetbox import OffsetImage, AnnotationBbox + +import jax.numpy as jnp + + +def add_icon(ax, coord, img_path, zoom=0.1): + """Helper function to add an icon at a specified coordinate.""" + image = plt.imread(img_path) + im = OffsetImage(image, zoom=zoom) + ab = AnnotationBbox( + im, (coord[1], coord[0]), frameon=False, box_alignment=(0.5, 0.5) + ) + ax.add_artist(ab) + + +class GeneralizedTMaze: + + def __init__(self, M): + # Maze representation based on input matrix M + self.maze = np.array(M) + self.rows, self.cols = self.maze.shape + + self.num_cues = int((np.max(M) - 2) // 3) + + self.cue_positions = [] + self.reward_1_positions = [] + self.reward_2_positions = [] + for i in range(self.num_cues): + self.cue_positions.append( + tuple(np.argwhere(self.maze == 3 + 3 * i)[0]) + ) + self.reward_1_positions.append( + tuple(np.argwhere(self.maze == 4 + 3 * i)[0]) + ) + self.reward_2_positions.append( + tuple(np.argwhere(self.maze == 5 + 3 * i)[0]) + ) + + # Initialize agent's starting position (can be customized if required) + self.initial_position = tuple(np.argwhere(self.maze == 1)[0]) + self.current_position = self.initial_position + + # Actions: up, down, left, right + self.actions = [(-1, 0), (1, 0), (0, -1), (0, 1)] + + # Set reward locations + self.reward_locations = np.random.choice([0, 1], size=self.num_cues) + self.reward_indices = [] + self.no_reward_indices = [] + + for i in range(self.num_cues): + if self.reward_locations[i] == 0: + self.reward_indices += [ + self.reward_1_positions[i][0] * self.cols + + self.reward_1_positions[i][1] + ] + self.no_reward_indices += [ + self.reward_2_positions[i][0] * self.cols + + self.reward_2_positions[i][1] + ] + else: + self.reward_indices += [ + self.reward_2_positions[i][0] * self.cols + + self.reward_2_positions[i][1] + ] + self.no_reward_indices += [ + self.reward_1_positions[i][0] * self.cols + + self.reward_1_positions[i][1] + ] + + def position_to_index(self, position): + return position[0] * self.cols + position[1] + + def index_to_position(self, index): + return index // self.cols, index % self.cols + + def compute_transition_matrix(self): + num_states = self.rows * self.cols + num_actions = 4 + + P = np.zeros((num_states, num_actions), dtype=int) + + for s in range(num_states): + row, col = divmod(s, self.cols) + + for a in range(num_actions): + ns_row, ns_col = ( + row + self.actions[a][0], + col + self.actions[a][1], + ) + + if ( + ns_row < 0 + or ns_row >= self.rows + or ns_col < 0 + or ns_col >= self.cols + or self.maze[ns_row, ns_col] == 1 + ): + P[s, a] = s + else: + P[s, a] = ns_row * self.cols + ns_col + + B = np.zeros((num_states, num_states, num_actions)) + for s in range(num_states): + for a in range(num_actions): + ns = P[s, a] + B[ns, s, a] = 1 + + assert np.all(np.logical_or(B == 0, B == 1)) + assert np.allclose(B.sum(axis=0), 1) + + reward_transitions = [] + for i in range(self.num_cues): + reward_transition = np.eye(2).reshape(2, 2, 1) + reward_transitions.append(reward_transition) + + combined_transition = np.empty(1 + self.num_cues, dtype=object) + combined_transition[0] = B + for i, reward_transition in enumerate(reward_transitions): + combined_transition[1 + i] = reward_transition + + return combined_transition + + def compute_observation_likelihood(self): + # Positional observation likelihood + + num_states = self.rows * self.cols + position_likelihood = np.zeros((num_states, num_states)) + for i in range(num_states): + # Agent can be certain about its position regardless of reward state + position_likelihood[i, i] = 1 + + cue_likelihoods = [] + for i in range(self.num_cues): + # Cue observation likelihood, cue_position = (11, 5) + # obs (nothing, left location, right location) + # state: (current position, reward i position) + cue_likelihood = np.zeros((3, num_states, 2)) + cue_likelihood[0, :, :] = 1 # Default: no info about reward + + cue_state_idx = self.position_to_index(self.cue_positions[i]) + reward_1_state_idx = self.position_to_index( + self.reward_1_positions[i] + ) + reward_2_state_idx = self.position_to_index( + self.reward_2_positions[i] + ) + + cue_likelihood[:, cue_state_idx, 0] = [0, 1, 0] # Reward in r1 + cue_likelihood[:, cue_state_idx, 1] = [0, 0, 1] # Reward in r2 + cue_likelihoods.append(cue_likelihood) + + # Reward observation likelihood, r1 = (4, 7), r2 = (8, 7) + reward_likelihoods = [] + + for i in range(self.num_cues): + # observation (nothing, no reward, reward) + reward_likelihood = np.zeros((3, num_states, 2)) + reward_likelihood[0, :, :] = 1 # Default: no reward + + reward_1_state_idx = ( + self.reward_1_positions[i][0] * self.cols + + self.reward_1_positions[i][1] + ) + reward_2_state_idx = ( + self.reward_2_positions[i][0] * self.cols + + self.reward_2_positions[i][1] + ) + + # Reward in (8,4) if reward state is 0 + reward_likelihood[:, reward_1_state_idx, 0] = [0, 1, 0] + # Reward in (8,8) if reward state is 0 + reward_likelihood[:, reward_2_state_idx, 0] = [0, 0, 1] + # Reward in (8,4) if reward state is 0 + reward_likelihood[:, reward_1_state_idx, 1] = [0, 0, 1] + # Reward in (8,8) if reward state is 0 + reward_likelihood[:, reward_2_state_idx, 1] = [0, 1, 0] + reward_likelihoods.append(reward_likelihood) + + combined_likelihood = np.empty(1 + 2 * self.num_cues, dtype=object) + combined_likelihood[0] = position_likelihood + for j, cue_likelihood in enumerate(cue_likelihoods): + combined_likelihood[1 + j] = cue_likelihood + for j, reward_likelihood in enumerate(reward_likelihoods): + combined_likelihood[1 + self.num_cues + j] = reward_likelihood + + return combined_likelihood + + def compute_exact_D_vector(self): + """ + Computes the prior over state, expecting perfect knowledge + """ + D = [None for _ in range(1 + self.num_cues)] + + D[0] = np.zeros(self.cols * self.rows) + # Position of the agent when starting the environment + idx = self.position_to_index(self.initial_position) + D[0][idx] = 1 + + # Cue state i.e. where is the reward + for i in range(self.num_cues): + r1 = self.reward_locations[i] + D[1 + i] = np.zeros(2) + D[1 + i][r1] = 1 + + return D + + def get_special_states_indices(self): + """Return the indices of the cue state, reward_1 state, and reward_2 state from matrix M.""" + + cue_idx = np.argwhere(self.maze == 4)[0] + reward_1_idx = np.argwhere(self.maze == 2)[0] + reward_2_idx = np.argwhere(self.maze == 3)[0] + + rows, cols = self.maze.shape + cue_linear_idx = cue_idx[0] * cols + cue_idx[1] + reward_1_linear_idx = reward_1_idx[0] * cols + reward_1_idx[1] + reward_2_linear_idx = reward_2_idx[0] * cols + reward_2_idx[1] + + return cue_linear_idx, reward_1_linear_idx, reward_2_linear_idx + + def render_env(self, env_state): + """ + Render the environment provided that the env state from the PyMDP equivalent + is provided + """ + current_position = env_state.params["D"][0].argmax() + current_position = self.index_to_position(current_position) + + # Create a copy of the maze for rendering + maze_copy = np.copy(self.maze) + + # Set all states not in [1] to be 0 (accessible state) + mask = np.isin(maze_copy, [2], invert=True) + maze_copy[mask] = 0 + + plt.imshow(maze_copy, cmap="gray_r", origin="lower") + plt.scatter( + current_position[1], + current_position[0], + color="green", + marker="s", + s=100, + label="Agent", + ) + + c = plt.get_cmap("tab20")(0) + + plt.scatter( + self.cue_positions[0][1], + self.cue_positions[0][0], + color=c, + s=200, + label="Reward of Interest", + ) + plt.scatter( + self.cue_positions[0][1], + self.cue_positions[0][0], + marker="o", + color="blue", + s=50, + label="Cue", + ) + plt.scatter( + self.reward_1_positions[0][1], + self.reward_1_positions[0][0], + color=c, + s=200, + ) + plt.scatter( + self.reward_1_positions[0][1], + self.reward_1_positions[0][0], + marker="o", + color="red", + s=50, + label="Reward 1", + ) + plt.scatter( + self.reward_2_positions[0][1], + self.reward_2_positions[0][0], + color=c, + s=200, + ) + plt.scatter( + self.reward_2_positions[0][1], + self.reward_2_positions[0][0], + marker="o", + color="red", + s=50, + label="Reward 2", + ) + + for i in range(1, self.num_cues): + c = plt.get_cmap("tab20")(i) + plt.scatter( + self.cue_positions[i][1], + self.cue_positions[i][0], + color=c, + s=200, + ) + plt.scatter( + self.cue_positions[i][1], + self.cue_positions[i][0], + color="blue", + s=50, + ) + plt.scatter( + self.reward_1_positions[i][1], + self.reward_1_positions[i][0], + color=c, + s=200, + ) + plt.scatter( + self.reward_1_positions[i][1], + self.reward_1_positions[i][0], + color="red", + s=50, + ) + plt.scatter( + self.reward_2_positions[i][1], + self.reward_2_positions[i][0], + color=c, + s=200, + ) + plt.scatter( + self.reward_2_positions[i][1], + self.reward_2_positions[i][0], + color="red", + s=50, + ) + + plt.title("Generalized T-Maze Environment") + plt.legend(loc="upper left", bbox_to_anchor=(1, 1)) + + # Capture the current figure as an image + buf = io.BytesIO() + plt.savefig(buf, format="png") + buf.seek(0) + image = PIL.Image.open(buf) + + plt.show() + + return image + + +class GeneralizedTMazeEnv(PyMDPEnv): + """ + Extended version of the T-Maze in which there are multiple cues and reward pairs + similar to the original T-maze. + """ + + def __init__(self, environment_description): + """ + Parameters + ---------- + environment_description + The environment description is a matrix representation of the environment + where indices have particular meaning: + 0: Empty space + 1: The initial position of the agent + 2: Walls + 3 + i: Cue for reward i + 4 + i: Potential reward location i 1 + 4 + i: Potential reward location i 2 + """ + + env = GeneralizedTMaze(environment_description) + A = [ + jnp.expand_dims(jnp.array(a), 0) + for a in env.compute_observation_likelihood() + ] + B = [ + jnp.expand_dims(jnp.array(b), 0) + for b in env.compute_transition_matrix() + ] + D = [ + jnp.expand_dims(jnp.array(d), 0) + for d in env.compute_exact_D_vector() + ] + + params = {"A": A, "B": B, "D": D} + dependencies = { + "A": [[0]] + + [[0, 1 + i] for i in range(len(D) - 1)] + + [[0, 1 + i] for i in range(len(D) - 1)], + "B": [[0]] + [[i + 1] for i in range(len(D) - 1)], + } + + PyMDPEnv.__init__(self, params, dependencies) From 75242944416cf78f5279c9b0fea0bcc8220243de Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Tue, 11 Jun 2024 15:59:35 +0200 Subject: [PATCH 085/196] agent action perception loop --- examples/generalized_tmaze_demo.ipynb | 872 ++++++++++++++++++++++++++ 1 file changed, 872 insertions(+) create mode 100644 examples/generalized_tmaze_demo.ipynb diff --git a/examples/generalized_tmaze_demo.ipynb b/examples/generalized_tmaze_demo.ipynb new file mode 100644 index 00000000..66bcc4b7 --- /dev/null +++ b/examples/generalized_tmaze_demo.ipynb @@ -0,0 +1,872 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", + "import pymdp\n", + "from pymdp.jax.envs.generalized_tmaze import GeneralizedTMaze, GeneralizedTMazeEnv\n", + "\n", + "import numpy as np \n", + "import jax.random as jr \n", + "import jax.numpy as jnp" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAAGzCAYAAADg2in0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABSu0lEQVR4nO3dfVyN9/8H8Nd1TnVKnUpEIRXlJjcNYUbKZLWZ75i5twnztckMG7Pvb9hmlLsxt2PfRgzDMMYMM0XuQmIZSsrdkEj3ujnn+v1xvp05ne6uVOeU1/PxOA/6XHfv8+l0evW5Pue6BFEURRARERFRuckMXQARERFRTcMARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEXl8vnnn0MQBJ02FxcXBAYGVmsd69evhyAISEpKqtbjUvnw+0NEzwsGqGeQmJiIiRMnokWLFqhTpw7q1KkDDw8PBAUF4eLFi4Yu77mUlJQEQRDK9Sjpl7yLiwsEQYCfn1+xy7/77jvtPs6ePVuFz6ZiyuqDkJAQQ5f4XNm8eTOWLl1q6DKIqJKZGLqAmmrv3r0YMmQITExMMGLECHh6ekImk+HKlSvYuXMnVq9ejcTERDg7Oxu61Cpz9epVyGTGlcHt7e2xceNGnbbFixfj9u3bWLJkid66JTE3N8eRI0dw7949ODg46CzbtGkTzM3N8eTJk8orvAoMGzYMr732ml57hw4dquyYb7/9NoYOHQqFQlFlx6hpNm/ejNjYWEyePNnQpRBRJWKAqoCEhAQMHToUzs7OOHz4MBwdHXWWz58/H6tWrTK6cPG0rKwsWFpaPtM+jPGXpKWlJUaOHKnT9uOPPyI1NVWvvTTdu3fHmTNnsHXrVnz44Yfa9tu3b+PYsWMYMGAAduzYUWl1V4WOHTtKes6VQS6XQy6Xl7qOKIp48uQJLCwsqqkqIqLKZ7y/4Y3YggULkJWVhXXr1umFJwAwMTHBpEmT4OTkpNN+5coVvPXWW7Czs4O5uTm8vLywZ88enXUK55AcP34cU6dOhb29PSwtLTFgwAA8ePBA71j79++Ht7c3LC0toVQq0bdvX1y6dElnncDAQFhZWSEhIQGvvfYalEolRowYAQA4duwYBg0ahKZNm0KhUMDJyQlTpkxBTk5Omf1QdA5UeU+XlacfAODSpUt4+eWXYWFhgSZNmuCrr76CWq0us67KYG5ujjfffBObN2/Wad+yZQvq1q0Lf39/vW0uXryIwMBANGvWDObm5nBwcMCYMWPw8OFD7TplnV572unTpxEQEAAbGxvUqVMHPj4+OH78eKU+TxcXF7z++uuIjIxEly5dYG5ujmbNmmHDhg3adc6ePQtBEBAWFqa3/YEDByAIAvbu3Qug+DlQhcc4cOAAvLy8YGFhgTVr1gAArl+/jkGDBsHOzg516tTBiy++iH379ukcIzw8HIIgYNu2bZg7dy6aNGkCc3Nz9O7dG9euXdNZ19fXF23btsXFixfh4+ODOnXqwM3NDT/99BMAICIiAl27doWFhQVatmyJ33//Xe853blzB2PGjEHDhg2hUCjQpk0bfP/99xWqydfXF/v27cONGze032MXF5dyfGeIyNhxBKoC9u7dCzc3N3Tt2rXc21y6dAndu3dH48aNMWPGDFhaWmLbtm3o378/duzYgQEDBuis/8EHH6Bu3bqYPXs2kpKSsHTpUkycOBFbt27VrrNx40aMGjUK/v7+mD9/PrKzs7F69Wr06NED58+f13mjLigogL+/P3r06IFFixahTp06AIDt27cjOzsb77//PurVq4eoqCgsX74ct2/fxvbt2yX1S9FTZwDw2WefITk5GVZWVpL64d69e+jVqxcKCgq0661du7ZaRy2GDx+OV155BQkJCWjevDkAzemYt956C6ampnrrHzp0CNevX8fo0aPh4OCAS5cuYe3atbh06RJOnToFQRCKPcWYn5+PKVOmwMzMTNv2xx9/4NVXX0WnTp0we/ZsyGQyrFu3Di+//DKOHTuGLl26lFl/dnY2UlJS9NptbW1hYvLPj/61a9fw1ltvYezYsRg1ahS+//57BAYGolOnTmjTpg28vLzQrFkzbNu2DaNGjdLZ19atW0sMlE+7evUqhg0bhvHjx2PcuHFo2bIl7t+/j5deegnZ2dmYNGkS6tWrh7CwMPzrX//CTz/9pPczERISAplMho8//hhpaWlYsGABRowYgdOnT+usl5qaitdffx1Dhw7FoEGDsHr1agwdOhSbNm3C5MmT8d5772H48OFYuHAh3nrrLdy6dQtKpRIAcP/+fbz44osQBAETJ06Evb099u/fj7FjxyI9PV3vNFxZNf3f//0f0tLSdE4hF/4s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5iI9PV3nQURERFSTSQpQ169fx+rVq+Hu7o4DBw7g/fffx6RJkxAWFlbiNsHBwbCxsdE+nJycnrloIiIiIkMSRFEUy7uymZkZvLy8cOLECW3bpEmTcObMGZw8ebLYbXJzc5Gbm6v9Oj09HU5OTkhLS4O1tfUzlE5ERNUtPT0dNjY2fA+n556kEShHR0d4eHjotLVu3Ro3b94scRuFQgFra2udBxEREVFNJilAde/eHVevXtVpi4uLg7Ozc6UWRURERGTMJAWoKVOm4NSpU5g3bx6uXbuGzZs3Y+3atQgKCqqq+oiIiIiMjqQA1blzZ+zatQtbtmxB27ZtMWfOHCxduhQjRoyoqvqIiIiIjI6kSeSVgRMQiYhqLr6HE2nwXnhEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQk0TMFqJCQEAiCgMmTJ1dSOURERETGr8IB6syZM1izZg3at29fmfUQERERGb0KBajMzEyMGDEC3333HerWrVvZNREREREZtQoFqKCgIPTt2xd+fn5lrpubm4v09HSdBxEREVFNZiJ1gx9//BHR0dE4c+ZMudYPDg7GF198IbkwIiIiImMlaQTq1q1b+PDDD7Fp0yaYm5uXa5tPP/0UaWlp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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "M = np.zeros((10, 10))\n", + "M[1,0] = 4\n", + "M[1,2] = 5\n", + "M[1,7] = 7\n", + "M[1,9] = 8\n", + "M[9,0] = 3\n", + "M[9,9] = 6\n", + "M[9,5] = 1\n", + "env = GeneralizedTMaze(M)\n", + "env.render()\n", + "\n", + "\n", + "tmaze_env = GeneralizedTMazeEnv(M)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1, 100, 100)\n", + "(1, 3, 100, 2)\n", + "(1, 3, 100, 2)\n", + "(1, 3, 100, 2)\n", + "(1, 3, 100, 2)\n", + "(1, 100, 100, 4)\n", + "(1, 2, 2, 1)\n", + "(1, 2, 2, 1)\n", + "(1, 100)\n", + "(1, 2)\n", + "(1, 2)\n" + ] + }, + { + "data": { + "text/plain": [ + "{'A': [None, None, None, None, None],\n", + " 'B': [None, None, None],\n", + " 'D': [None, None, None]}" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import jax.tree_util as jtu \n", + "\n", + "jtu.tree_map(lambda x: print(x.shape), tmaze_env.params)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([Array([95], dtype=int32),\n", + " Array([0], dtype=int32),\n", + " Array([0], dtype=int32),\n", + " Array([0], dtype=int32),\n", + " Array([0], dtype=int32)],\n", + " GeneralizedTMazeEnv(\n", + " params={\n", + " 'A':\n", + " [\n", + " f32[1,100,100],\n", + " f32[1,3,100,2],\n", + " f32[1,3,100,2],\n", + " f32[1,3,100,2],\n", + " f32[1,3,100,2]\n", + " ],\n", + " 'B':\n", + " [f32[1,100,100,4], f32[1,2,2,1], f32[1,2,2,1]],\n", + " 'D':\n", + " [f32[1,100], f32[1,2], f32[1,2]]\n", + " },\n", + " state=[i32[1], i32[1], i32[1]],\n", + " dependencies={\n", + " 'A':\n", + " [[0], [0, 1], [0, 2], [0, 1], [0, 2]],\n", + " 'B':\n", + " [[0], [1], [2]]\n", + " }\n", + " ))" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "batch_size = 1\n", + "seed = 0 \n", + "key = jr.PRNGKey(seed)\n", + "\n", + "key, *subkeys = jr.split(key, batch_size + 1)\n", + "subkeys = jnp.array(subkeys)\n", + "\n", + "tmaze_env.step(subkeys)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.agent import Agent\n", + "\n", + "A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", + "B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", + "A_dependencies = tmaze_env.dependencies[\"A\"]\n", + "B_dependencies = tmaze_env.dependencies[\"B\"]\n", + "\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "C[1] = C[1].at[1].set(1.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) for b in B]\n", + "\n", + "agent = Agent(A, B, C, D, None, None, None, A_dependencies=A_dependencies, B_dependencies=B_dependencies)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "obs, _ = tmaze_env.step(subkeys)\n", + "\n", + "qs = [jnp.broadcast_to(d, (1,) + d.shape) for d in D]\n", + "\n", + "qpi, nefe = agent.infer_policies(qs)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "batch_size = 1\n", + "key, *subkeys = jr.split(key, batch_size + 1)\n", + "actions = agent.sample_action(qpi, rng_key=jnp.array(subkeys))\n", + "\n", + "\n", + "key, *subkeys = jr.split(key, batch_size + 1)\n", + "obs, _ = tmaze_env.step(jnp.array(subkeys), actions)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "obs_b = [jnp.broadcast_to(o, (1,) + o.shape) for o in obs]\n", + "prior, _ = agent.update_empirical_prior(actions, qs)\n", + "res = agent.infer_states(obs_b, None, prior, None)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "({'action_t': Array([[0, 0, 0]], dtype=int32),\n", + " 'empirical_prior': [Array([[1.11022594e-16, 2.22045187e-16, 1.11022594e-16, 2.22045187e-16,\n", + " 2.22045187e-16, 2.22045187e-16, 2.22045187e-16, 1.11022594e-16,\n", + " 2.22045187e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.24999985e-01, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.24999985e-01,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 2.49999613e-01, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 5.00000417e-01,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 2.46522001e-32, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 2.46522001e-32, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]], dtype=float32),\n", + " Array([[0.5, 0.5]], dtype=float32),\n", + " Array([[0.5, 0.5]], dtype=float32)],\n", + " 'env': GeneralizedTMazeEnv(\n", + " params={\n", + " 'A':\n", + " [\n", + " f32[1,100,100],\n", + " f32[1,3,100,2],\n", + " f32[1,3,100,2],\n", + " f32[1,3,100,2],\n", + " f32[1,3,100,2]\n", + " ],\n", + " 'B':\n", + " [f32[1,100,100,4], f32[1,2,2,1], f32[1,2,2,1]],\n", + " 'D':\n", + " [f32[1,100], f32[1,2], f32[1,2]]\n", + " },\n", + " state=[i32[1], i32[1], i32[1]],\n", + " dependencies={\n", + " 'A':\n", + " [[0], [0, 1], [0, 2], [0, 1], [0, 2]],\n", + " 'B':\n", + " [[0], [1], [2]]\n", + " }\n", + " ),\n", + " 'observation_t': [Array([[85]], dtype=int32),\n", + " Array([[0]], dtype=int32),\n", + " Array([[0]], dtype=int32),\n", + " Array([[0]], dtype=int32),\n", + " Array([[0]], dtype=int32)],\n", + " 'qs': [Array([[[1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1.]]], dtype=float32),\n", + " Array([[[1., 1.]]], dtype=float32),\n", + " Array([[[1., 1.]]], dtype=float32)],\n", + " 'rng_key': Array([ 16590409, 2650090507], dtype=uint32)},\n", + " {'action': Array([[[0, 0, 0]],\n", + " \n", + " [[0, 0, 0]],\n", + " \n", + " [[0, 0, 0]],\n", + " \n", + " [[0, 0, 0]],\n", + " \n", + " [[0, 0, 0]]], dtype=int32),\n", + " 'env': GeneralizedTMazeEnv(\n", + " params={\n", + " 'A':\n", + " [\n", + " f32[5,1,100,100],\n", + " f32[5,1,3,100,2],\n", + " f32[5,1,3,100,2],\n", + " f32[5,1,3,100,2],\n", + " f32[5,1,3,100,2]\n", + " ],\n", + " 'B':\n", + " [f32[5,1,100,100,4], f32[5,1,2,2,1], f32[5,1,2,2,1]],\n", + " 'D':\n", + " [f32[5,1,100], f32[5,1,2], f32[5,1,2]]\n", + " },\n", + " state=[i32[5,1], i32[5,1], i32[5,1]],\n", + " dependencies={\n", + " 'A':\n", + " [[0], [0, 1], [0, 2], [0, 1], [0, 2]],\n", + " 'B':\n", + " [[0], [1], [2]]\n", + " }\n", + " ),\n", + " 'observation': [Array([[[85]],\n", + " \n", + " [[85]],\n", + " \n", + " [[85]],\n", + " \n", + " [[85]],\n", + " \n", + " [[85]]], dtype=int32),\n", + " Array([[[0]],\n", + " \n", + " [[0]],\n", + " \n", + " [[0]],\n", + " \n", + " [[0]],\n", + " \n", + " [[0]]], dtype=int32),\n", + " Array([[[0]],\n", + " \n", + " [[0]],\n", + " \n", + " [[0]],\n", + " \n", + " [[0]],\n", + " \n", + " [[0]]], dtype=int32),\n", + " Array([[[0]],\n", + " \n", + " [[0]],\n", + " \n", + " [[0]],\n", + " \n", + " [[0]],\n", + " \n", + " [[0]]], dtype=int32),\n", + " Array([[[0]],\n", + " \n", + " [[0]],\n", + " \n", + " [[0]],\n", + " \n", + " [[0]],\n", + " \n", + " [[0]]], dtype=int32)],\n", + " 'qpi': Array([[[2.5000000e-01, 2.5000000e-01, 2.5000000e-01, 2.5000000e-01]],\n", + " \n", + " [[2.5000000e-01, 2.5000000e-01, 2.5000000e-01, 2.5000000e-01]],\n", + " \n", + " [[3.3333164e-01, 5.0862368e-06, 3.3333164e-01, 3.3333164e-01]],\n", + " \n", + " [[3.3327982e-01, 1.6054392e-04, 3.3327982e-01, 3.3327982e-01]],\n", + " \n", + " [[3.3327982e-01, 1.6054499e-04, 3.3327982e-01, 3.3327982e-01]]], dtype=float32),\n", + " 'qs': [Array([[[[1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00],\n", + " [2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 4.93039829e-32, 2.22045002e-16,\n", + " 4.93039829e-32, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 4.93039829e-32,\n", + " 2.22045002e-16, 4.93039829e-32, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 4.93039829e-32, 2.22045002e-16, 2.22045002e-16,\n", + " 2.22045002e-16, 2.22045002e-16, 1.00000000e+00,\n", + " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", + " 4.93039829e-32]]],\n", + " \n", + " \n", + " [[[1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00],\n", + " [4.93039829e-32, 9.86078247e-32, 4.93039829e-32,\n", + " 9.86078247e-32, 9.86078247e-32, 9.86078247e-32,\n", + " 9.86078247e-32, 4.93039829e-32, 9.86078247e-32,\n", + " 4.93039829e-32, 0.00000000e+00, 4.93039829e-32,\n", + " 0.00000000e+00, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 0.00000000e+00,\n", + " 4.93039829e-32, 0.00000000e+00, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 1.00000000e+00, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 0.00000000e+00, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", + " 0.00000000e+00]]],\n", + " \n", + " \n", + " [[[1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00],\n", + " [1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 2.46521795e-32, 1.11022501e-16,\n", + " 2.46521795e-32, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 2.46521795e-32,\n", + " 1.11022501e-16, 2.46521795e-32, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 5.00000000e-01, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 5.00000000e-01, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 2.46521795e-32, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", + " 2.46521795e-32]]],\n", + " \n", + " \n", + " [[[1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00],\n", + " [1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 2.46521619e-32, 1.11022422e-16,\n", + " 2.46521619e-32, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 2.46521619e-32,\n", + " 1.11022422e-16, 2.46521619e-32, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 2.50000179e-01,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 2.50000179e-01, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 4.99999642e-01, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 2.46521619e-32, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", + " 2.46521619e-32]]],\n", + " \n", + " \n", + " [[[1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00],\n", + " [1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 2.46522001e-32, 1.11022594e-16,\n", + " 2.46522001e-32, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 2.46522001e-32,\n", + " 1.11022594e-16, 2.46522001e-32, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.24999985e-01, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.24999985e-01,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 2.49999613e-01, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 5.00000417e-01, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 2.46522001e-32, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", + " 2.46522001e-32]]]], dtype=float32),\n", + " Array([[[[1. , 1. ],\n", + " [0.5, 0.5]]],\n", + " \n", + " \n", + " [[[1. , 1. ],\n", + " [0.5, 0.5]]],\n", + " \n", + " \n", + " [[[1. , 1. ],\n", + " [0.5, 0.5]]],\n", + " \n", + " \n", + " [[[1. , 1. ],\n", + " [0.5, 0.5]]],\n", + " \n", + " \n", + " [[[1. , 1. ],\n", + " [0.5, 0.5]]]], dtype=float32),\n", + " Array([[[[1. , 1. ],\n", + " [0.5, 0.5]]],\n", + " \n", + " \n", + " [[[1. , 1. ],\n", + " [0.5, 0.5]]],\n", + " \n", + " \n", + " [[[1. , 1. ],\n", + " [0.5, 0.5]]],\n", + " \n", + " \n", + " [[[1. , 1. ],\n", + " [0.5, 0.5]]],\n", + " \n", + " \n", + " [[[1. , 1. ],\n", + " [0.5, 0.5]]]], dtype=float32)]},\n", + " GeneralizedTMazeEnv(\n", + " params={\n", + " 'A':\n", + " [\n", + " f32[1,100,100],\n", + " f32[1,3,100,2],\n", + " f32[1,3,100,2],\n", + " f32[1,3,100,2],\n", + " f32[1,3,100,2]\n", + " ],\n", + " 'B':\n", + " [f32[1,100,100,4], f32[1,2,2,1], f32[1,2,2,1]],\n", + " 'D':\n", + " [f32[1,100], f32[1,2], f32[1,2]]\n", + " },\n", + " state=[i32[1], i32[1], i32[1]],\n", + " dependencies={\n", + " 'A':\n", + " [[0], [0, 1], [0, 2], [0, 1], [0, 2]],\n", + " 'B':\n", + " [[0], [1], [2]]\n", + " }\n", + " ))" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from pymdp.jax.envs.rollout import rollout\n", + "\n", + "rollout(agent, tmaze_env, num_timesteps=5, batch_size=1, rng_key=key)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "GeneralizedTMazeEnv(\n", + " params={\n", + " 'A':\n", + " [\n", + " f32[1,100,100],\n", + " f32[1,3,100,2],\n", + " f32[1,3,100,2],\n", + " f32[1,3,100,2],\n", + " f32[1,3,100,2]\n", + " ],\n", + " 'B':\n", + " [f32[1,100,100,4], f32[1,2,2,1], f32[1,2,2,1]],\n", + " 'D':\n", + " [f32[1,100], f32[1,2], f32[1,2]]\n", + " },\n", + " state=[i32[1], i32[1], i32[1]],\n", + " dependencies={\n", + " 'A':\n", + " [[0], [0, 1], [0, 2], [0, 1], [0, 2]],\n", + " 'B':\n", + " [[0], [1], [2]]\n", + " }\n", + ")" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tmaze_env " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "37\n", + "(3, 7)\n" + ] + } + ], + "source": [ + "idx = env.position_to_index((3, 7))\n", + "print(idx)\n", + "pos = env.index_to_position(idx)\n", + "print(pos)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "hackathon", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 592169bc68e7e5853ebd46bf6250f1330c4f218e Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Tue, 11 Jun 2024 16:46:05 +0200 Subject: [PATCH 086/196] Working state multiple cues --- examples/generalized_tmaze_demo.ipynb | 796 ++++++-------------------- pymdp/jax/envs/generalized_tmaze.py | 4 +- pymdp/jax/envs/rollout.py | 7 +- 3 files changed, 175 insertions(+), 632 deletions(-) diff --git a/examples/generalized_tmaze_demo.ipynb b/examples/generalized_tmaze_demo.ipynb index 66bcc4b7..09525970 100644 --- a/examples/generalized_tmaze_demo.ipynb +++ b/examples/generalized_tmaze_demo.ipynb @@ -24,7 +24,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAAGzCAYAAADg2in0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABSu0lEQVR4nO3dfVyN9/8H8Nd1TnVKnUpEIRXlJjcNYUbKZLWZ75i5twnztckMG7Pvb9hmlLsxt2PfRgzDMMYMM0XuQmIZSsrdkEj3ujnn+v1xvp05ne6uVOeU1/PxOA/6XHfv8+l0evW5Pue6BFEURRARERFRuckMXQARERFRTcMARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEXl8vnnn0MQBJ02FxcXBAYGVmsd69evhyAISEpKqtbjUvnw+0NEzwsGqGeQmJiIiRMnokWLFqhTpw7q1KkDDw8PBAUF4eLFi4Yu77mUlJQEQRDK9Sjpl7yLiwsEQYCfn1+xy7/77jvtPs6ePVuFz6ZiyuqDkJAQQ5f4XNm8eTOWLl1q6DKIqJKZGLqAmmrv3r0YMmQITExMMGLECHh6ekImk+HKlSvYuXMnVq9ejcTERDg7Oxu61Cpz9epVyGTGlcHt7e2xceNGnbbFixfj9u3bWLJkid66JTE3N8eRI0dw7949ODg46CzbtGkTzM3N8eTJk8orvAoMGzYMr732ml57hw4dquyYb7/9NoYOHQqFQlFlx6hpNm/ejNjYWEyePNnQpRBRJWKAqoCEhAQMHToUzs7OOHz4MBwdHXWWz58/H6tWrTK6cPG0rKwsWFpaPtM+jPGXpKWlJUaOHKnT9uOPPyI1NVWvvTTdu3fHmTNnsHXrVnz44Yfa9tu3b+PYsWMYMGAAduzYUWl1V4WOHTtKes6VQS6XQy6Xl7qOKIp48uQJLCwsqqkqIqLKZ7y/4Y3YggULkJWVhXXr1umFJwAwMTHBpEmT4OTkpNN+5coVvPXWW7Czs4O5uTm8vLywZ88enXUK55AcP34cU6dOhb29PSwtLTFgwAA8ePBA71j79++Ht7c3LC0toVQq0bdvX1y6dElnncDAQFhZWSEhIQGvvfYalEolRowYAQA4duwYBg0ahKZNm0KhUMDJyQlTpkxBTk5Omf1QdA5UeU+XlacfAODSpUt4+eWXYWFhgSZNmuCrr76CWq0us67KYG5ujjfffBObN2/Wad+yZQvq1q0Lf39/vW0uXryIwMBANGvWDObm5nBwcMCYMWPw8OFD7TplnV572unTpxEQEAAbGxvUqVMHPj4+OH78eKU+TxcXF7z++uuIjIxEly5dYG5ujmbNmmHDhg3adc6ePQtBEBAWFqa3/YEDByAIAvbu3Qug+DlQhcc4cOAAvLy8YGFhgTVr1gAArl+/jkGDBsHOzg516tTBiy++iH379ukcIzw8HIIgYNu2bZg7dy6aNGkCc3Nz9O7dG9euXdNZ19fXF23btsXFixfh4+ODOnXqwM3NDT/99BMAICIiAl27doWFhQVatmyJ33//Xe853blzB2PGjEHDhg2hUCjQpk0bfP/99xWqydfXF/v27cONGze032MXF5dyfGeIyNhxBKoC9u7dCzc3N3Tt2rXc21y6dAndu3dH48aNMWPGDFhaWmLbtm3o378/duzYgQEDBuis/8EHH6Bu3bqYPXs2kpKSsHTpUkycOBFbt27VrrNx40aMGjUK/v7+mD9/PrKzs7F69Wr06NED58+f13mjLigogL+/P3r06IFFixahTp06AIDt27cjOzsb77//PurVq4eoqCgsX74ct2/fxvbt2yX1S9FTZwDw2WefITk5GVZWVpL64d69e+jVqxcKCgq0661du7ZaRy2GDx+OV155BQkJCWjevDkAzemYt956C6ampnrrHzp0CNevX8fo0aPh4OCAS5cuYe3atbh06RJOnToFQRCKPcWYn5+PKVOmwMzMTNv2xx9/4NVXX0WnTp0we/ZsyGQyrFu3Di+//DKOHTuGLl26lFl/dnY2UlJS9NptbW1hYvLPj/61a9fw1ltvYezYsRg1ahS+//57BAYGolOnTmjTpg28vLzQrFkzbNu2DaNGjdLZ19atW0sMlE+7evUqhg0bhvHjx2PcuHFo2bIl7t+/j5deegnZ2dmYNGkS6tWrh7CwMPzrX//CTz/9pPczERISAplMho8//hhpaWlYsGABRowYgdOnT+usl5qaitdffx1Dhw7FoEGDsHr1agwdOhSbNm3C5MmT8d5772H48OFYuHAh3nrrLdy6dQtKpRIAcP/+fbz44osQBAETJ06Evb099u/fj7FjxyI9PV3vNFxZNf3f//0f0tLSdE4hF/4s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5iI9PV3nQURERFSTSQpQ169fx+rVq+Hu7o4DBw7g/fffx6RJkxAWFlbiNsHBwbCxsdE+nJycnrloIiIiIkMSRFEUy7uymZkZvLy8cOLECW3bpEmTcObMGZw8ebLYbXJzc5Gbm6v9Oj09HU5OTkhLS4O1tfUzlE5ERNUtPT0dNjY2fA+n556kEShHR0d4eHjotLVu3Ro3b94scRuFQgFra2udBxEREVFNJilAde/eHVevXtVpi4uLg7Ozc6UWRURERGTMJAWoKVOm4NSpU5g3bx6uXbuGzZs3Y+3atQgKCqqq+oiIiIiMjqQA1blzZ+zatQtbtmxB27ZtMWfOHCxduhQjRoyoqvqIiIiIjI6kSeSVgRMQiYhqLr6HE2nwXnhEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQk0TMFqJCQEAiCgMmTJ1dSOURERETGr8IB6syZM1izZg3at29fmfUQERERGb0KBajMzEyMGDEC3333HerWrVvZNREREREZtQoFqKCgIPTt2xd+fn5lrpubm4v09HSdBxEREVFNZiJ1gx9//BHR0dE4c+ZMudYPDg7GF198IbkwIiIiImMlaQTq1q1b+PDDD7Fp0yaYm5uXa5tPP/0UaWlp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", + "image/png": "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X9370RKPp0qtxdaWwYkslqRTeABw9uxZdOrUCbm5uXBwcEBUVBT69OlT4vozZ87ErFmzjNqjoqJgZ2cnvWIiIjKb7OxsDBs2rGJP4RGZkanHseQAlZ+fj+vXryMtLQ1btmzBN998g9jYWIOLfj2uuBEoDw8PpKamWtQcqOjoaISEhFjMPANLwz4yDfvpH6fvnkbX1V2LXWYrs8WqVqsw+tzoEudAxY2Kg28d34os0eJZ4vGUnp6OWrVqMUDRM6tC5kABgLW1tf5CY35+fjh+/DgWL16MyMjIYtdXKpX6i4w9TqFQWMwTQiFLrMnSsI9Mw34CZHJZieGoUI42p8R1ZHJZte/DQpZ0PJlSh8S/y4ksiqnH71NfB0qr1RqMMBERUfVUGK6ys7PNXAlR2RUev0/6Y0HSCNS0adPQu3dvNGjQABkZGYiKikJMTAz27t1b9kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRHZ2dlISUmBs7Mz5HJ5qetLClApKSkYMWIEbt++DScnJ7Ru3Rp79+41+nBFIiKqntzc3ADApI8lIbJEzs7O+uO4NJIC1MqVK8tcEBERPfsEQYC7uztq165tUZdfIDKFQqF44shToTJfB4qIqDQqa5VZtyfzksvlJr8QEVVFDFBEVCG8a3rj4viLyMjPMFqm1Whx6+QtxI2Kg0xu/F4WlbUK3jW9K6NMIqIyYYAiogpTUghSq9W4hVvwreNrMW/PJyKS4qkvY0BERERU3TBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEkgLU3Llz0b59e6hUKtSuXRv9+/fHn3/+WVG1EREREVkkSQEqNjYW4eHh+O233xAdHQ21Wo2ePXsiKyurouojIiIisjhWUlb++eefDW6vWbMGtWvXxsmTJ9G1a9dit8nLy0NeXp7+dnp6OgBArVZDrVZLrbdCFNZhKfVYIvaRadhPpmE/mcYS+8mSaiEyJ0EURbGsG1++fBne3t44e/YsWrVqVew6M2fOxKxZs4zao6KiYGdnV9ZdExGRGWRnZ2PYsGFIS0uDo6OjucshMpsyByitVot///vfePToEeLj40tcr7gRKA8PD6SmplrML59arUZ0dDRCQkKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LT01GrVi0GKKr2JJ3Ce1x4eDjOnTtXangCAKVSCaVSadSuUCgs5gmhkCXWZGnYR6ZhP5mG/WQaS+onS6mDyNzKFKDGjx+PXbt2IS4uDvXr1y/vmoiIiIgsmqQAJYoi3nnnHWzfvh0xMTHw8vKqqLqIiIiILJakABUeHo6oqCjs2LEDKpUKd+7cAQA4OTnB1ta2QgokIiIisjSSrgO1fPlypKWlISgoCO7u7vqvTZs2VVR9RERERBZH8ik8IiIiouqOn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIx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vCr2kzmew4kskeRTeEFBQRBF0ejLlPBkLp617DF/UGuj+QaFCt8Z9fg7pB4nAJg/qPUz/YJHpuGxZBoHGyu0a1zyi2vhu8cefxdZUe0aOz7T4QlgPxFVZdXmt+7FNvUAAFM26z4MtuhcluLIZQLkgoD5g1rrtyfisWQaj1q6OTkJSboPzDVlqFuA7u347Ro76rd/1rGfiKqmahOgAN0Ln299Z0zdegbHkh9ALhOKffErbPdvWAOfDXz2RwtIOh5LpvGoZYsaDgokJKXjfoYaAooPCIXtLipFtRxRYT8RVT3V7rfPs5Y9vn+zE87dSsPmEzdw/OpDXE/VfbyMQiagcW1HtPesgUH+Hs/sJF8qHzyWTONgY4WuLV3wKEuNayk5uJ+hRnqW7vpHgqC7flFNlQINa9tW64nQ7CeiqqXaBahCreo56V/UCidIn5res1pPkKay4bFkGmd7BZy9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1NKlS+Hp6QkbGxt07NgRx44dK++6iIiIiCyW5AC1adMmTJo0CTNmzEBCQgJ8fX0RGhqKlJSUiqiPiIiIyOJIDlBffPEFxo4di1GjRsHHxwdff/017OzssGrVqoqoj4iIiMjiWElZOT8/HydPnsS0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", "text/plain": [ "
" ] @@ -34,19 +34,20 @@ } ], "source": [ - "M = np.zeros((10, 10))\n", + "M = np.zeros((5, 5))\n", "M[1,0] = 4\n", "M[1,2] = 5\n", - "M[1,7] = 7\n", - "M[1,9] = 8\n", - "M[9,0] = 3\n", - "M[9,9] = 6\n", - "M[9,5] = 1\n", - "env = GeneralizedTMaze(M)\n", - "env.render()\n", + "M[1,3] = 7\n", + "\n", + "M[1,4] = 8\n", + "M[4,0] = 3\n", + "M[4,4] = 6\n", "\n", + "M[3,3] = 1\n", + "env = GeneralizedTMaze(M)\n", + "tmaze_env = GeneralizedTMazeEnv(M)\n", "\n", - "tmaze_env = GeneralizedTMazeEnv(M)" + "_ = env.render_env(tmaze_env)" ] }, { @@ -58,15 +59,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "(1, 100, 100)\n", - "(1, 3, 100, 2)\n", - "(1, 3, 100, 2)\n", - "(1, 3, 100, 2)\n", - "(1, 3, 100, 2)\n", - "(1, 100, 100, 4)\n", + "(1, 25, 25)\n", + "(1, 3, 25, 2)\n", + "(1, 3, 25, 2)\n", + "(1, 3, 25, 2)\n", + "(1, 3, 25, 2)\n", + "(1, 25, 25, 4)\n", "(1, 2, 2, 1)\n", "(1, 2, 2, 1)\n", - "(1, 100)\n", + "(1, 25)\n", "(1, 2)\n", "(1, 2)\n" ] @@ -98,7 +99,7 @@ { "data": { "text/plain": [ - "([Array([95], dtype=int32),\n", + "([Array([18], dtype=int32),\n", " Array([0], dtype=int32),\n", " Array([0], dtype=int32),\n", " Array([0], dtype=int32),\n", @@ -106,17 +107,11 @@ " GeneralizedTMazeEnv(\n", " params={\n", " 'A':\n", - " [\n", - " f32[1,100,100],\n", - " f32[1,3,100,2],\n", - " f32[1,3,100,2],\n", - " f32[1,3,100,2],\n", - " f32[1,3,100,2]\n", - " ],\n", + " [f32[1,25,25], f32[1,3,25,2], f32[1,3,25,2], f32[1,3,25,2], f32[1,3,25,2]],\n", " 'B':\n", - " [f32[1,100,100,4], f32[1,2,2,1], f32[1,2,2,1]],\n", + " [f32[1,25,25,4], f32[1,2,2,1], f32[1,2,2,1]],\n", " 'D':\n", - " [f32[1,100], f32[1,2], f32[1,2]]\n", + " [f32[1,25], f32[1,2], f32[1,2]]\n", " },\n", " state=[i32[1], i32[1], i32[1]],\n", " dependencies={\n", @@ -162,7 +157,13 @@ "\n", "D = [jnp.ones(b.shape[:2]) for b in B]\n", "\n", - "agent = Agent(A, B, C, D, None, None, None, A_dependencies=A_dependencies, B_dependencies=B_dependencies)" + "agent = Agent(\n", + " A, B, C, D, \n", + " None, None, None, \n", + " policy_len=5,\n", + " A_dependencies=A_dependencies, \n", + " B_dependencies=B_dependencies\n", + ")" ] }, { @@ -212,565 +213,7 @@ { "data": { "text/plain": [ - "({'action_t': Array([[0, 0, 0]], dtype=int32),\n", - " 'empirical_prior': [Array([[1.11022594e-16, 2.22045187e-16, 1.11022594e-16, 2.22045187e-16,\n", - " 2.22045187e-16, 2.22045187e-16, 2.22045187e-16, 1.11022594e-16,\n", - " 2.22045187e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.24999985e-01, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.24999985e-01,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 2.49999613e-01, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 5.00000417e-01,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 2.46522001e-32, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 2.46522001e-32, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]], dtype=float32),\n", - " Array([[0.5, 0.5]], dtype=float32),\n", - " Array([[0.5, 0.5]], dtype=float32)],\n", - " 'env': GeneralizedTMazeEnv(\n", - " params={\n", - " 'A':\n", - " [\n", - " f32[1,100,100],\n", - " f32[1,3,100,2],\n", - " f32[1,3,100,2],\n", - " f32[1,3,100,2],\n", - " f32[1,3,100,2]\n", - " ],\n", - " 'B':\n", - " [f32[1,100,100,4], f32[1,2,2,1], f32[1,2,2,1]],\n", - " 'D':\n", - " [f32[1,100], f32[1,2], f32[1,2]]\n", - " },\n", - " state=[i32[1], i32[1], i32[1]],\n", - " dependencies={\n", - " 'A':\n", - " [[0], [0, 1], [0, 2], [0, 1], [0, 2]],\n", - " 'B':\n", - " [[0], [1], [2]]\n", - " }\n", - " ),\n", - " 'observation_t': [Array([[85]], dtype=int32),\n", - " Array([[0]], dtype=int32),\n", - " Array([[0]], dtype=int32),\n", - " Array([[0]], dtype=int32),\n", - " Array([[0]], dtype=int32)],\n", - " 'qs': [Array([[[1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", - " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", - " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", - " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", - " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", - " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", - " 1., 1., 1., 1.]]], dtype=float32),\n", - " Array([[[1., 1.]]], dtype=float32),\n", - " Array([[[1., 1.]]], dtype=float32)],\n", - " 'rng_key': Array([ 16590409, 2650090507], dtype=uint32)},\n", - " {'action': Array([[[0, 0, 0]],\n", - " \n", - " [[0, 0, 0]],\n", - " \n", - " [[0, 0, 0]],\n", - " \n", - " [[0, 0, 0]],\n", - " \n", - " [[0, 0, 0]]], dtype=int32),\n", - " 'env': GeneralizedTMazeEnv(\n", - " params={\n", - " 'A':\n", - " [\n", - " f32[5,1,100,100],\n", - " f32[5,1,3,100,2],\n", - " f32[5,1,3,100,2],\n", - " f32[5,1,3,100,2],\n", - " f32[5,1,3,100,2]\n", - " ],\n", - " 'B':\n", - " [f32[5,1,100,100,4], f32[5,1,2,2,1], f32[5,1,2,2,1]],\n", - " 'D':\n", - " [f32[5,1,100], f32[5,1,2], f32[5,1,2]]\n", - " },\n", - " state=[i32[5,1], i32[5,1], i32[5,1]],\n", - " dependencies={\n", - " 'A':\n", - " [[0], [0, 1], [0, 2], [0, 1], [0, 2]],\n", - " 'B':\n", - " [[0], [1], [2]]\n", - " }\n", - " ),\n", - " 'observation': [Array([[[85]],\n", - " \n", - " [[85]],\n", - " \n", - " [[85]],\n", - " \n", - " [[85]],\n", - " \n", - " [[85]]], dtype=int32),\n", - " Array([[[0]],\n", - " \n", - " [[0]],\n", - " \n", - " [[0]],\n", - " \n", - " [[0]],\n", - " \n", - " [[0]]], dtype=int32),\n", - " Array([[[0]],\n", - " \n", - " [[0]],\n", - " \n", - " [[0]],\n", - " \n", - " [[0]],\n", - " \n", - " [[0]]], dtype=int32),\n", - " Array([[[0]],\n", - " \n", - " [[0]],\n", - " \n", - " [[0]],\n", - " \n", - " [[0]],\n", - " \n", - " [[0]]], dtype=int32),\n", - " Array([[[0]],\n", - " \n", - " [[0]],\n", - " \n", - " [[0]],\n", - " \n", - " [[0]],\n", - " \n", - " [[0]]], dtype=int32)],\n", - " 'qpi': Array([[[2.5000000e-01, 2.5000000e-01, 2.5000000e-01, 2.5000000e-01]],\n", - " \n", - " [[2.5000000e-01, 2.5000000e-01, 2.5000000e-01, 2.5000000e-01]],\n", - " \n", - " [[3.3333164e-01, 5.0862368e-06, 3.3333164e-01, 3.3333164e-01]],\n", - " \n", - " [[3.3327982e-01, 1.6054392e-04, 3.3327982e-01, 3.3327982e-01]],\n", - " \n", - " [[3.3327982e-01, 1.6054499e-04, 3.3327982e-01, 3.3327982e-01]]], dtype=float32),\n", - " 'qs': [Array([[[[1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00],\n", - " [2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 4.93039829e-32, 2.22045002e-16,\n", - " 4.93039829e-32, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 4.93039829e-32,\n", - " 2.22045002e-16, 4.93039829e-32, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 4.93039829e-32, 2.22045002e-16, 2.22045002e-16,\n", - " 2.22045002e-16, 2.22045002e-16, 1.00000000e+00,\n", - " 2.22045002e-16, 2.22045002e-16, 2.22045002e-16,\n", - " 4.93039829e-32]]],\n", - " \n", - " \n", - " [[[1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00],\n", - " [4.93039829e-32, 9.86078247e-32, 4.93039829e-32,\n", - " 9.86078247e-32, 9.86078247e-32, 9.86078247e-32,\n", - " 9.86078247e-32, 4.93039829e-32, 9.86078247e-32,\n", - " 4.93039829e-32, 0.00000000e+00, 4.93039829e-32,\n", - " 0.00000000e+00, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 0.00000000e+00,\n", - " 4.93039829e-32, 0.00000000e+00, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 1.00000000e+00, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 0.00000000e+00, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 4.93039829e-32, 4.93039829e-32, 4.93039829e-32,\n", - " 0.00000000e+00]]],\n", - " \n", - " \n", - " [[[1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00],\n", - " [1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 2.46521795e-32, 1.11022501e-16,\n", - " 2.46521795e-32, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 2.46521795e-32,\n", - " 1.11022501e-16, 2.46521795e-32, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 5.00000000e-01, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 5.00000000e-01, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 2.46521795e-32, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 1.11022501e-16, 1.11022501e-16, 1.11022501e-16,\n", - " 2.46521795e-32]]],\n", - " \n", - " \n", - " [[[1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00],\n", - " [1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 2.46521619e-32, 1.11022422e-16,\n", - " 2.46521619e-32, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 2.46521619e-32,\n", - " 1.11022422e-16, 2.46521619e-32, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 2.50000179e-01,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 2.50000179e-01, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 4.99999642e-01, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 2.46521619e-32, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 1.11022422e-16, 1.11022422e-16, 1.11022422e-16,\n", - " 2.46521619e-32]]],\n", - " \n", - " \n", - " [[[1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", - " 1.00000000e+00],\n", - " [1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 2.46522001e-32, 1.11022594e-16,\n", - " 2.46522001e-32, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 2.46522001e-32,\n", - " 1.11022594e-16, 2.46522001e-32, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.24999985e-01, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.24999985e-01,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 2.49999613e-01, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 5.00000417e-01, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 2.46522001e-32, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 1.11022594e-16, 1.11022594e-16, 1.11022594e-16,\n", - " 2.46522001e-32]]]], dtype=float32),\n", - " Array([[[[1. , 1. ],\n", - " [0.5, 0.5]]],\n", - " \n", - " \n", - " [[[1. , 1. ],\n", - " [0.5, 0.5]]],\n", - " \n", - " \n", - " [[[1. , 1. ],\n", - " [0.5, 0.5]]],\n", - " \n", - " \n", - " [[[1. , 1. ],\n", - " [0.5, 0.5]]],\n", - " \n", - " \n", - " [[[1. , 1. ],\n", - " [0.5, 0.5]]]], dtype=float32),\n", - " Array([[[[1. , 1. ],\n", - " [0.5, 0.5]]],\n", - " \n", - " \n", - " [[[1. , 1. ],\n", - " [0.5, 0.5]]],\n", - " \n", - " \n", - " [[[1. , 1. ],\n", - " [0.5, 0.5]]],\n", - " \n", - " \n", - " [[[1. , 1. ],\n", - " [0.5, 0.5]]],\n", - " \n", - " \n", - " [[[1. , 1. ],\n", - " [0.5, 0.5]]]], dtype=float32)]},\n", - " GeneralizedTMazeEnv(\n", - " params={\n", - " 'A':\n", - " [\n", - " f32[1,100,100],\n", - " f32[1,3,100,2],\n", - " f32[1,3,100,2],\n", - " f32[1,3,100,2],\n", - " f32[1,3,100,2]\n", - " ],\n", - " 'B':\n", - " [f32[1,100,100,4], f32[1,2,2,1], f32[1,2,2,1]],\n", - " 'D':\n", - " [f32[1,100], f32[1,2], f32[1,2]]\n", - " },\n", - " state=[i32[1], i32[1], i32[1]],\n", - " dependencies={\n", - " 'A':\n", - " [[0], [0, 1], [0, 2], [0, 1], [0, 2]],\n", - " 'B':\n", - " [[0], [1], [2]]\n", - " }\n", - " ))" + "(1, 3, 25, 2)" ] }, "execution_count": 9, @@ -779,9 +222,7 @@ } ], "source": [ - "from pymdp.jax.envs.rollout import rollout\n", - "\n", - "rollout(agent, tmaze_env, num_timesteps=5, batch_size=1, rng_key=key)" + "tmaze_env.params['A'][2].shape" ] }, { @@ -790,61 +231,160 @@ "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "GeneralizedTMazeEnv(\n", - " params={\n", - " 'A':\n", - " [\n", - " f32[1,100,100],\n", - " f32[1,3,100,2],\n", - " f32[1,3,100,2],\n", - " f32[1,3,100,2],\n", - " f32[1,3,100,2]\n", - " ],\n", - " 'B':\n", - " [f32[1,100,100,4], f32[1,2,2,1], f32[1,2,2,1]],\n", - " 'D':\n", - " [f32[1,100], f32[1,2], f32[1,2]]\n", - " },\n", - " state=[i32[1], i32[1], i32[1]],\n", - " dependencies={\n", - " 'A':\n", - " [[0], [0, 1], [0, 2], [0, 1], [0, 2]],\n", - " 'B':\n", - " [[0], [1], [2]]\n", - " }\n", - ")" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "[Tracedwith, Tracedwith, Tracedwith, Tracedwith, Tracedwith]\n", + "__\n" + ] } ], "source": [ - "tmaze_env " + "from pymdp.jax.envs.rollout import rollout\n", + "\n", + "_, info, _ = rollout(agent, tmaze_env, num_timesteps=20, batch_size=1, rng_key=key)" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "37\n", - "(3, 7)\n" + "(20, 1, 1)\n", + "(1, 2, 25)\n" + ] + }, + { + "data": { + "image/png": "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X9370RKPp0qtxdaWwYkslqRTeABw9uxZdOrUCbm5uXBwcEBUVBT69OlT4vozZ87ErFmzjNqjoqJgZ2cnvWIiIjKb7OxsDBs2rGJP4RGZkanHseQAlZ+fj+vXryMtLQ1btmzBN998g9jYWIOLfj2uuBEoDw8PpKamWtQcqOjoaISEhFjMPANLwz4yDfvpH6fvnkbX1V2LXWYrs8WqVqsw+tzoEudAxY2Kg28d34os0eJZ4vGUnp6OWrVqMUDRM6tC5kABgLW1tf5CY35+fjh+/DgWL16MyMjIYtdXKpX6i4w9TqFQWMwTQiFLrMnSsI9Mw34CZHJZieGoUI42p8R1ZHJZte/DQpZ0PJlSh8S/y4ksiqnH71NfB0qr1RqMMBERUfVUGK6ys7PNXAlR2RUev0/6Y0HSCNS0adPQu3dvNGjQABkZGYiKikJMTAz27t1b9kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRHZ2dlISUmBs7Mz5HJ5qetLClApKSkYMWIEbt++DScnJ7Ru3Rp79+41+nBFIiKqntzc3ADApI8lIbJEzs7O+uO4NJIC1MqVK8tcEBERPfsEQYC7uztq165tUZdfIDKFQqF44shToTJfB4qIqDQqa5VZtyfzksvlJr8QEVVFDFBEVCG8a3rj4viLyMjPMFqm1Whx6+QtxI2Kg0xu/F4WlbUK3jW9K6NMIqIyYYAiogpTUghSq9W4hVvwreNrMW/PJyKS4qkvY0BERERU3TBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEkgLU3Llz0b59e6hUKtSuXRv9+/fHn3/+WVG1EREREVkkSQEqNjYW4eHh+O233xAdHQ21Wo2ePXsiKyurouojIiIisjhWUlb++eefDW6vWbMGtWvXxsmTJ9G1a9dit8nLy0NeXp7+dnp6OgBArVZDrVZLrbdCFNZhKfVYIvaRadhPpmE/mcYS+8mSaiEyJ0EURbGsG1++fBne3t44e/YsWrVqVew6M2fOxKxZs4zao6KiYGdnV9ZdExGRGWRnZ2PYsGFIS0uDo6OjucshMpsyByitVot///vfePToEeLj40tcr7gRKA8PD6SmplrML59arUZ0dDRCQkKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LT01GrVi0GKKr2JJ3Ce1x4eDjOnTtXangCAKVSCaVSadSuUCgs5gmhkCXWZGnYR6ZhP5mG/WQaS+onS6mDyNzKFKDGjx+PXbt2IS4uDvXr1y/vmoiIiIgsmqQAJYoi3nnnHWzfvh0xMTHw8vKqqLqIiIiILJakABUeHo6oqCjs2LEDKpUKd+7cAQA4OTnB1ta2QgokIiIisjSSrgO1fPlypKWlISgoCO7u7vqvTZs2VVR9RERERBZH8ik8IiIiouqOn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIx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vCr2kzmew4kskeRTeEFBQRBF0ejLlPBkLp617DF/UGuj+QaFCt8Z9fg7pB4nAJg/qPUz/YJHpuGxZBoHGyu0a1zyi2vhu8cefxdZUe0aOz7T4QlgPxFVZdXmt+7FNvUAAFM26z4MtuhcluLIZQLkgoD5g1rrtyfisWQaj1q6OTkJSboPzDVlqFuA7u347Ro76rd/1rGfiKqmahOgAN0Ln299Z0zdegbHkh9ALhOKffErbPdvWAOfDXz2RwtIOh5LpvGoZYsaDgokJKXjfoYaAooPCIXtLipFtRxRYT8RVT3V7rfPs5Y9vn+zE87dSsPmEzdw/OpDXE/VfbyMQiagcW1HtPesgUH+Hs/sJF8qHzyWTONgY4WuLV3wKEuNayk5uJ+hRnqW7vpHgqC7flFNlQINa9tW64nQ7CeiqqXaBahCreo56V/UCidIn5res1pPkKay4bFkGmd7BZy9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1NKlS+Hp6QkbGxt07NgRx44dK++6iIiIiCyW5AC1adMmTJo0CTNmzEBCQgJ8fX0RGhqKlJSUiqiPiIiIyOJIDlBffPEFxo4di1GjRsHHxwdff/017OzssGrVqoqoj4iIiMjiWElZOT8/HydPnsS0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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "0\n", + "--\n", + "(20, 1, 1)\n", + "(1, 2, 25)\n" + ] + }, + { + "data": { + "image/png": "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X9370RKPp0qtxdaWwYkslqRTeABw9uxZdOrUCbm5uXBwcEBUVBT69OlT4vozZ87ErFmzjNqjoqJgZ2cnvWIiIjKb7OxsDBs2rGJP4RGZkanHseQAlZ+fj+vXryMtLQ1btmzBN998g9jYWIOLfj2uuBEoDw8PpKamWtQcqOjoaISEhFjMPANLwz4yDfvpH6fvnkbX1V2LXWYrs8WqVqsw+tzoEudAxY2Kg28d34os0eJZ4vGUnp6OWrVqMUDRM6tC5kABgLW1tf5CY35+fjh+/DgWL16MyMjIYtdXKpX6i4w9TqFQWMwTQiFLrMnSsI9Mw34CZHJZieGoUI42p8R1ZHJZte/DQpZ0PJlSh8S/y4ksiqnH71NfB0qr1RqMMBERUfVUGK6ys7PNXAlR2RUev0/6Y0HSCNS0adPQu3dvNGjQABkZGYiKikJMTAz27t1b9kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRHZ2dlISUmBs7Mz5HJ5qetLClApKSkYMWIEbt++DScnJ7Ru3Rp79+41+nBFIiKqntzc3ADApI8lIbJEzs7O+uO4NJIC1MqVK8tcEBERPfsEQYC7uztq165tUZdfIDKFQqF44shToTJfB4qIqDQqa5VZtyfzksvlJr8QEVVFDFBEVCG8a3rj4viLyMjPMFqm1Whx6+QtxI2Kg0xu/F4WlbUK3jW9K6NMIqIyYYAiogpTUghSq9W4hVvwreNrMW/PJyKS4qkvY0BERERU3TBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEkgLU3Llz0b59e6hUKtSuXRv9+/fHn3/+WVG1EREREVkkSQEqNjYW4eHh+O233xAdHQ21Wo2ePXsiKyurouojIiIisjhWUlb++eefDW6vWbMGtWvXxsmTJ9G1a9dit8nLy0NeXp7+dnp6OgBArVZDrVZLrbdCFNZhKfVYIvaRadhPpmE/mcYS+8mSaiEyJ0EURbGsG1++fBne3t44e/YsWrVqVew6M2fOxKxZs4zao6KiYGdnV9ZdExGRGWRnZ2PYsGFIS0uDo6OjucshMpsyByitVot///vfePToEeLj40tcr7gRKA8PD6SmplrML59arUZ0dDRCQkKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LT01GrVi0GKKr2JJ3Ce1x4eDjOnTtXangCAKVSCaVSadSuUCgs5gmhkCXWZGnYR6ZhP5mG/WQaS+onS6mDyNzKFKDGjx+PXbt2IS4uDvXr1y/vmoiIiIgsmqQAJYoi3nnnHWzfvh0xMTHw8vKqqLqIiIiILJakABUeHo6oqCjs2LEDKpUKd+7cAQA4OTnB1ta2QgokIiIisjSSrgO1fPlypKWlISgoCO7u7vqvTZs2VVR9RERERBZH8ik8IiIiouqOn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIx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vCr2kzmew4kskeRTeEFBQRBF0ejLlPBkLp617DF/UGuj+QaFCt8Z9fg7pB4nAJg/qPUz/YJHpuGxZBoHGyu0a1zyi2vhu8cefxdZUe0aOz7T4QlgPxFVZdXmt+7FNvUAAFM26z4MtuhcluLIZQLkgoD5g1rrtyfisWQaj1q6OTkJSboPzDVlqFuA7u347Ro76rd/1rGfiKqmahOgAN0Ln299Z0zdegbHkh9ALhOKffErbPdvWAOfDXz2RwtIOh5LpvGoZYsaDgokJKXjfoYaAooPCIXtLipFtRxRYT8RVT3V7rfPs5Y9vn+zE87dSsPmEzdw/OpDXE/VfbyMQiagcW1HtPesgUH+Hs/sJF8qHzyWTONgY4WuLV3wKEuNayk5uJ+hRnqW7vpHgqC7flFNlQINa9tW64nQ7CeiqqXaBahCreo56V/UCidIn5res1pPkKay4bFkGmd7BZy9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1NKlS+Hp6QkbGxt07NgRx44dK++6iIiIiCyW5AC1adMmTJo0CTNmzEBCQgJ8fX0RGhqKlJSUiqiPiIiIyOJIDlBffPEFxo4di1GjRsHHxwdff/017OzssGrVqoqoj4iIiMjiWElZOT8/HydPnsS0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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "0\n", + "--\n", + "(20, 1, 1)\n", + "(1, 2, 25)\n" + ] + }, + { + "data": { + "image/png": "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X9370RKPp0qtxdaWwYkslqRTeABw9uxZdOrUCbm5uXBwcEBUVBT69OlT4vozZ87ErFmzjNqjoqJgZ2cnvWIiIjKb7OxsDBs2rGJP4RGZkanHseQAlZ+fj+vXryMtLQ1btmzBN998g9jYWIOLfj2uuBEoDw8PpKamWtQcqOjoaISEhFjMPANLwz4yDfvpH6fvnkbX1V2LXWYrs8WqVqsw+tzoEudAxY2Kg28d34os0eJZ4vGUnp6OWrVqMUDRM6tC5kABgLW1tf5CY35+fjh+/DgWL16MyMjIYtdXKpX6i4w9TqFQWMwTQiFLrMnSsI9Mw34CZHJZieGoUI42p8R1ZHJZte/DQpZ0PJlSh8S/y4ksiqnH71NfB0qr1RqMMBERUfVUGK6ys7PNXAlR2RUev0/6Y0HSCNS0adPQu3dvNGjQABkZGYiKikJMTAz27t1b9kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRHZ2dlISUmBs7Mz5HJ5qetLClApKSkYMWIEbt++DScnJ7Ru3Rp79+41+nBFIiKqntzc3ADApI8lIbJEzs7O+uO4NJIC1MqVK8tcEBERPfsEQYC7uztq165tUZdfIDKFQqF44shToTJfB4qIqDQqa5VZtyfzksvlJr8QEVVFDFBEVCG8a3rj4viLyMjPMFqm1Whx6+QtxI2Kg0xu/F4WlbUK3jW9K6NMIqIyYYAiogpTUghSq9W4hVvwreNrMW/PJyKS4qkvY0BERERU3TBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEkgLU3Llz0b59e6hUKtSuXRv9+/fHn3/+WVG1EREREVkkSQEqNjYW4eHh+O233xAdHQ21Wo2ePXsiKyurouojIiIisjhWUlb++eefDW6vWbMGtWvXxsmTJ9G1a9dit8nLy0NeXp7+dnp6OgBArVZDrVZLrbdCFNZhKfVYIvaRadhPpmE/mcYS+8mSaiEyJ0EURbGsG1++fBne3t44e/YsWrVqVew6M2fOxKxZs4zao6KiYGdnV9ZdExGRGWRnZ2PYsGFIS0uDo6OjucshMpsyByitVot///vfePToEeLj40tcr7gRKA8PD6SmplrML59arUZ0dDRCQkKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LT01GrVi0GKKr2JJ3Ce1x4eDjOnTtXangCAKVSCaVSadSuUCgs5gmhkCXWZGnYR6ZhP5mG/WQaS+onS6mDyNzKFKDGjx+PXbt2IS4uDvXr1y/vmoiIiIgsmqQAJYoi3nnnHWzfvh0xMTHw8vKqqLqIiIiILJakABUeHo6oqCjs2LEDKpUKd+7cAQA4OTnB1ta2QgokIiIisjSSrgO1fPlypKWlISgoCO7u7vqvTZs2VVR9RERERBZH8ik8IiIiouqOn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIx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vCr2kzmew4kskeRTeEFBQRBF0ejLlPBkLp617DF/UGuj+QaFCt8Z9fg7pB4nAJg/qPUz/YJHpuGxZBoHGyu0a1zyi2vhu8cefxdZUe0aOz7T4QlgPxFVZdXmt+7FNvUAAFM26z4MtuhcluLIZQLkgoD5g1rrtyfisWQaj1q6OTkJSboPzDVlqFuA7u347Ro76rd/1rGfiKqmahOgAN0Ln299Z0zdegbHkh9ALhOKffErbPdvWAOfDXz2RwtIOh5LpvGoZYsaDgokJKXjfoYaAooPCIXtLipFtRxRYT8RVT3V7rfPs5Y9vn+zE87dSsPmEzdw/OpDXE/VfbyMQiagcW1HtPesgUH+Hs/sJF8qHzyWTONgY4WuLV3wKEuNayk5uJ+hRnqW7vpHgqC7flFNlQINa9tW64nQ7CeiqqXaBahCreo56V/UCidIn5res1pPkKay4bFkGmd7BZy9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1NKlS+Hp6QkbGxt07NgRx44dK++6iIiIiCyW5AC1adMmTJo0CTNmzEBCQgJ8fX0RGhqKlJSUiqiPiIiIyOJIDlBffPEFxo4di1GjRsHHxwdff/017OzssGrVqoqoj4iIiMjiWElZOT8/HydPnsS0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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "0\n", + "--\n", + "(20, 1, 1)\n", + "(1, 2, 25)\n" + ] + }, + { + "data": { + "image/png": "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X9370RKPp0qtxdaWwYkslqRTeABw9uxZdOrUCbm5uXBwcEBUVBT69OlT4vozZ87ErFmzjNqjoqJgZ2cnvWIiIjKb7OxsDBs2rGJP4RGZkanHseQAlZ+fj+vXryMtLQ1btmzBN998g9jYWIOLfj2uuBEoDw8PpKamWtQcqOjoaISEhFjMPANLwz4yDfvpH6fvnkbX1V2LXWYrs8WqVqsw+tzoEudAxY2Kg28d34os0eJZ4vGUnp6OWrVqMUDRM6tC5kABgLW1tf5CY35+fjh+/DgWL16MyMjIYtdXKpX6i4w9TqFQWMwTQiFLrMnSsI9Mw34CZHJZieGoUI42p8R1ZHJZte/DQpZ0PJlSh8S/y4ksiqnH71NfB0qr1RqMMBERUfVUGK6ys7PNXAlR2RUev0/6Y0HSCNS0adPQu3dvNGjQABkZGYiKikJMTAz27t1b9kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRHZ2dlISUmBs7Mz5HJ5qetLClApKSkYMWIEbt++DScnJ7Ru3Rp79+41+nBFIiKqntzc3ADApI8lIbJEzs7O+uO4NJIC1MqVK8tcEBERPfsEQYC7uztq165tUZdfIDKFQqF44shToTJfB4qIqDQqa5VZtyfzksvlJr8QEVVFDFBEVCG8a3rj4viLyMjPMFqm1Whx6+QtxI2Kg0xu/F4WlbUK3jW9K6NMIqIyYYAiogpTUghSq9W4hVvwreNrMW/PJyKS4qkvY0BERERU3TBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEkgLU3Llz0b59e6hUKtSuXRv9+/fHn3/+WVG1EREREVkkSQEqNjYW4eHh+O233xAdHQ21Wo2ePXsiKyurouojIiIisjhWUlb++eefDW6vWbMGtWvXxsmTJ9G1a9dit8nLy0NeXp7+dnp6OgBArVZDrVZLrbdCFNZhKfVYIvaRadhPpmE/mcYS+8mSaiEyJ0EURbGsG1++fBne3t44e/YsWrVqVew6M2fOxKxZs4zao6KiYGdnV9ZdExGRGWRnZ2PYsGFIS0uDo6OjucshMpsyByitVot///vfePToEeLj40tcr7gRKA8PD6SmplrML59arUZ0dDRCQkKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LT01GrVi0GKKr2JJ3Ce1x4eDjOnTtXangCAKVSCaVSadSuUCgs5gmhkCXWZGnYR6ZhP5mG/WQaS+onS6mDyNzKFKDGjx+PXbt2IS4uDvXr1y/vmoiIiIgsmqQAJYoi3nnnHWzfvh0xMTHw8vKqqLqIiIiILJakABUeHo6oqCjs2LEDKpUKd+7cAQA4OTnB1ta2QgokIiIisjSSrgO1fPlypKWlISgoCO7u7vqvTZs2VVR9RERERBZH8ik8IiIiouqOn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIx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vCr2kzmew4kskeRTeEFBQRBF0ejLlPBkLp617DF/UGuj+QaFCt8Z9fg7pB4nAJg/qPUz/YJHpuGxZBoHGyu0a1zyi2vhu8cefxdZUe0aOz7T4QlgPxFVZdXmt+7FNvUAAFM26z4MtuhcluLIZQLkgoD5g1rrtyfisWQaj1q6OTkJSboPzDVlqFuA7u347Ro76rd/1rGfiKqmahOgAN0Ln299Z0zdegbHkh9ALhOKffErbPdvWAOfDXz2RwtIOh5LpvGoZYsaDgokJKXjfoYaAooPCIXtLipFtRxRYT8RVT3V7rfPs5Y9vn+zE87dSsPmEzdw/OpDXE/VfbyMQiagcW1HtPesgUH+Hs/sJF8qHzyWTONgY4WuLV3wKEuNayk5uJ+hRnqW7vpHgqC7flFNlQINa9tW64nQ7CeiqqXaBahCreo56V/UCidIn5res1pPkKay4bFkGmd7BZy9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1NKlS+Hp6QkbGxt07NgRx44dK++6iIiIiCyW5AC1adMmTJo0CTNmzEBCQgJ8fX0RGhqKlJSUiqiPiIiIyOJIDlBffPEFxo4di1GjRsHHxwdff/017OzssGrVqoqoj4iIiMjiWElZOT8/HydPnsS0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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "0\n", + "--\n", + "(20, 1, 1)\n", + "(1, 2, 25)\n" + ] + }, + { + "data": { + "image/png": "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X9370RKPp0qtxdaWwYkslqRTeABw9uxZdOrUCbm5uXBwcEBUVBT69OlT4vozZ87ErFmzjNqjoqJgZ2cnvWIiIjKb7OxsDBs2rGJP4RGZkanHseQAlZ+fj+vXryMtLQ1btmzBN998g9jYWIOLfj2uuBEoDw8PpKamWtQcqOjoaISEhFjMPANLwz4yDfvpH6fvnkbX1V2LXWYrs8WqVqsw+tzoEudAxY2Kg28d34os0eJZ4vGUnp6OWrVqMUDRM6tC5kABgLW1tf5CY35+fjh+/DgWL16MyMjIYtdXKpX6i4w9TqFQWMwTQiFLrMnSsI9Mw34CZHJZieGoUI42p8R1ZHJZte/DQpZ0PJlSh8S/y4ksiqnH71NfB0qr1RqMMBERUfVUGK6ys7PNXAlR2RUev0/6Y0HSCNS0adPQu3dvNGjQABkZGYiKikJMTAz27t1b9kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRHZ2dlISUmBs7Mz5HJ5qetLClApKSkYMWIEbt++DScnJ7Ru3Rp79+41+nBFIiKqntzc3ADApI8lIbJEzs7O+uO4NJIC1MqVK8tcEBERPfsEQYC7uztq165tUZdfIDKFQqF44shToTJfB4qIqDQqa5VZtyfzksvlJr8QEVVFDFBEVCG8a3rj4viLyMjPMFqm1Whx6+QtxI2Kg0xu/F4WlbUK3jW9K6NMIqIyYYAiogpTUghSq9W4hVvwreNrMW/PJyKS4qkvY0BERERU3TBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEkgLU3Llz0b59e6hUKtSuXRv9+/fHn3/+WVG1EREREVkkSQEqNjYW4eHh+O233xAdHQ21Wo2ePXsiKyurouojIiIisjhWUlb++eefDW6vWbMGtWvXxsmTJ9G1a9dit8nLy0NeXp7+dnp6OgBArVZDrVZLrbdCFNZhKfVYIvaRadhPpmE/mcYS+8mSaiEyJ0EURbGsG1++fBne3t44e/YsWrVqVew6M2fOxKxZs4zao6KiYGdnV9ZdExGRGWRnZ2PYsGFIS0uDo6OjucshMpsyByitVot///vfePToEeLj40tcr7gRKA8PD6SmplrML59arUZ0dDRCQkKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LT01GrVi0GKKr2JJ3Ce1x4eDjOnTtXangCAKVSCaVSadSuUCgs5gmhkCXWZGnYR6ZhP5mG/WQaS+onS6mDyNzKFKDGjx+PXbt2IS4uDvXr1y/vmoiIiIgsmqQAJYoi3nnnHWzfvh0xMTHw8vKqqLqIiIiILJakABUeHo6oqCjs2LEDKpUKd+7cAQA4OTnB1ta2QgokIiIisjSSrgO1fPlypKWlISgoCO7u7vqvTZs2VVR9RERERBZH8ik8IiIiouqOn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIx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vCr2kzmew4kskeRTeEFBQRBF0ejLlPBkLp617DF/UGuj+QaFCt8Z9fg7pB4nAJg/qPUz/YJHpuGxZBoHGyu0a1zyi2vhu8cefxdZUe0aOz7T4QlgPxFVZdXmt+7FNvUAAFM26z4MtuhcluLIZQLkgoD5g1rrtyfisWQaj1q6OTkJSboPzDVlqFuA7u347Ro76rd/1rGfiKqmahOgAN0Ln299Z0zdegbHkh9ALhOKffErbPdvWAOfDXz2RwtIOh5LpvGoZYsaDgokJKXjfoYaAooPCIXtLipFtRxRYT8RVT3V7rfPs5Y9vn+zE87dSsPmEzdw/OpDXE/VfbyMQiagcW1HtPesgUH+Hs/sJF8qHzyWTONgY4WuLV3wKEuNayk5uJ+hRnqW7vpHgqC7flFNlQINa9tW64nQ7CeiqqXaBahCreo56V/UCidIn5res1pPkKay4bFkGmd7BZy9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1NKlS+Hp6QkbGxt07NgRx44dK++6iIiIiCyW5AC1adMmTJo0CTNmzEBCQgJ8fX0RGhqKlJSUiqiPiIiIyOJIDlBffPEFxo4di1GjRsHHxwdff/017OzssGrVqoqoj4iIiMjiWElZOT8/HydPnsS0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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "0\n", + "--\n" + ] + }, + { + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[13], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m t \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m20\u001b[39m): \n\u001b[0;32m----> 2\u001b[0m obs \u001b[38;5;241m=\u001b[39m \u001b[43minfo\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mobservation\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[43mt\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28mprint\u001b[39m(obs\u001b[38;5;241m.\u001b[39mshape)\n\u001b[1;32m 4\u001b[0m \u001b[38;5;66;03m#env_state = jtu.tree_map(lambda x: print(x.shape), info['env'])\u001b[39;00m\n", + "\u001b[0;31mIndexError\u001b[0m: list index out of range" ] } ], "source": [ - "idx = env.position_to_index((3, 7))\n", - "print(idx)\n", - "pos = env.index_to_position(idx)\n", - "print(pos)" + "for t in range(20): \n", + " obs = info['observation']\n", + " print(obs.shape)\n", + " #env_state = jtu.tree_map(lambda x: print(x.shape), info['env'])\n", + " print(info['qs'][0][t].shape)\n", + " env_state = jtu.tree_map(lambda x: x[t], info['env'])\n", + " env.render_env(env_state)\n", + "\n", + " print(info['qs'][0][t][0].argmax())\n", + " print(info['qs'][0][t][1].argmax())\n", + " print(\"--\")" ] } ], diff --git a/pymdp/jax/envs/generalized_tmaze.py b/pymdp/jax/envs/generalized_tmaze.py index 924edbc3..3016caaa 100644 --- a/pymdp/jax/envs/generalized_tmaze.py +++ b/pymdp/jax/envs/generalized_tmaze.py @@ -230,8 +230,9 @@ def render_env(self, env_state): Render the environment provided that the env state from the PyMDP equivalent is provided """ - current_position = env_state.params["D"][0].argmax() + current_position = env_state.state[0] current_position = self.index_to_position(current_position) + print("!", current_position) # Create a copy of the maze for rendering maze_copy = np.copy(self.maze) @@ -344,6 +345,7 @@ def render_env(self, env_state): buf.seek(0) image = PIL.Image.open(buf) + plt.grid("on") plt.show() return image diff --git a/pymdp/jax/envs/rollout.py b/pymdp/jax/envs/rollout.py index 737f6f5f..51566ce2 100644 --- a/pymdp/jax/envs/rollout.py +++ b/pymdp/jax/envs/rollout.py @@ -46,15 +46,16 @@ def step_fn(carry, x): # so we don't need past actions or qs_hist qs = agent.infer_states( observations=observation_t, - past_actions=None, + past_actions=action_t, empirical_prior=empirical_prior, qs_hist=None, ) qpi, nefe = agent.infer_policies(qs) - keys = jr.split(rng_key, batch_size + 1) + keys = jr.split(rng_key, batch_size + 2) rng_key = keys[0] - action_t = agent.sample_action(qpi, rng_key=keys[1:]) + action_t = agent.sample_action(qpi, rng_key=keys[2:]) + # action_t.at[0, 0].set(jr.randint(keys[1], shape=1, minval=0, maxval=4)) keys = jr.split(rng_key, batch_size + 1) rng_key = keys[0] From 7e809e39424b5f9b6f45e63d201ce00d26778562 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Tue, 11 Jun 2024 18:19:19 +0200 Subject: [PATCH 087/196] Updated notebook --- examples/generalized_tmaze_demo.ipynb | 444 +++++++++++++++----------- pymdp/jax/envs/env.py | 2 + pymdp/jax/envs/generalized_tmaze.py | 1 - pymdp/jax/envs/rollout.py | 7 +- 4 files changed, 258 insertions(+), 196 deletions(-) diff --git a/examples/generalized_tmaze_demo.ipynb b/examples/generalized_tmaze_demo.ipynb index 09525970..51507e35 100644 --- a/examples/generalized_tmaze_demo.ipynb +++ b/examples/generalized_tmaze_demo.ipynb @@ -1,5 +1,12 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generalized T-Maze environment" + ] + }, { "cell_type": "code", "execution_count": 1, @@ -11,10 +18,37 @@ "\n", "import pymdp\n", "from pymdp.jax.envs.generalized_tmaze import GeneralizedTMaze, GeneralizedTMazeEnv\n", + "from pymdp.jax.envs.rollout import rollout\n", + "from pymdp.jax.agent import Agent\n", "\n", "import numpy as np \n", "import jax.random as jr \n", - "import jax.numpy as jnp" + "import jax.numpy as jnp\n", + "import jax.tree_util as jtu \n", + "\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create the environment\n", + "\n", + "In this example we create a simple square environment, where multiple cues are present, and multiple reward pairs. Each cue indicates the location of one of the reward pairs. \n", + "\n", + "The agent is can move in the grid world using actions up, down, left and right, and observes the current tile it is at. \n", + "\n", + "The grid world is specified by a matrix using the following labels: \n", + "\n", + "```\n", + "0: Empty space\n", + "1: The initial position of the agent\n", + "2: Walls\n", + "3 + i: Cue for reward i\n", + "4 + i: Potential reward location i 1\n", + "4 + i: Potential reward location i 2\n", + "```" ] }, { @@ -35,6 +69,7 @@ ], "source": [ "M = np.zeros((5, 5))\n", + "\n", "M[1,0] = 4\n", "M[1,2] = 5\n", "M[1,3] = 7\n", @@ -44,108 +79,27 @@ "M[4,4] = 6\n", "\n", "M[3,3] = 1\n", + "\n", "env = GeneralizedTMaze(M)\n", "tmaze_env = GeneralizedTMazeEnv(M)\n", - "\n", "_ = env.render_env(tmaze_env)" ] }, { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(1, 25, 25)\n", - "(1, 3, 25, 2)\n", - "(1, 3, 25, 2)\n", - "(1, 3, 25, 2)\n", - "(1, 3, 25, 2)\n", - "(1, 25, 25, 4)\n", - "(1, 2, 2, 1)\n", - "(1, 2, 2, 1)\n", - "(1, 25)\n", - "(1, 2)\n", - "(1, 2)\n" - ] - }, - { - "data": { - "text/plain": [ - "{'A': [None, None, None, None, None],\n", - " 'B': [None, None, None],\n", - " 'D': [None, None, None]}" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import jax.tree_util as jtu \n", - "\n", - "jtu.tree_map(lambda x: print(x.shape), tmaze_env.params)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "([Array([18], dtype=int32),\n", - " Array([0], dtype=int32),\n", - " Array([0], dtype=int32),\n", - " Array([0], dtype=int32),\n", - " Array([0], dtype=int32)],\n", - " GeneralizedTMazeEnv(\n", - " params={\n", - " 'A':\n", - " [f32[1,25,25], f32[1,3,25,2], f32[1,3,25,2], f32[1,3,25,2], f32[1,3,25,2]],\n", - " 'B':\n", - " [f32[1,25,25,4], f32[1,2,2,1], f32[1,2,2,1]],\n", - " 'D':\n", - " [f32[1,25], f32[1,2], f32[1,2]]\n", - " },\n", - " state=[i32[1], i32[1], i32[1]],\n", - " dependencies={\n", - " 'A':\n", - " [[0], [0, 1], [0, 2], [0, 1], [0, 2]],\n", - " 'B':\n", - " [[0], [1], [2]]\n", - " }\n", - " ))" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ - "batch_size = 1\n", - "seed = 0 \n", - "key = jr.PRNGKey(seed)\n", - "\n", - "key, *subkeys = jr.split(key, batch_size + 1)\n", - "subkeys = jnp.array(subkeys)\n", + "#### Create the agent. \n", "\n", - "tmaze_env.step(subkeys)" + "The PyMDPEnv class consists of a params dict that contains the A, B, and D vectors of the environment. We initialize our agent using the same parameters. This means that the agent has full knowledge about the environment transitions, and likelihoods. We initialize the agent with a flat prior, i.e. it does not know where it, or the reward is. Finally, we set the C vector to have a preference only over the rewarding observation of cue-reward pair 1 (i.e. C[1][1] = 1 and zero for other values). " ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ - "from pymdp.jax.agent import Agent\n", "\n", "A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", "B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", @@ -167,100 +121,106 @@ ] }, { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "obs, _ = tmaze_env.step(subkeys)\n", - "\n", - "qs = [jnp.broadcast_to(d, (1,) + d.shape) for d in D]\n", - "\n", - "qpi, nefe = agent.infer_policies(qs)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "batch_size = 1\n", - "key, *subkeys = jr.split(key, batch_size + 1)\n", - "actions = agent.sample_action(qpi, rng_key=jnp.array(subkeys))\n", + "### Rollout an agent episode \n", "\n", - "\n", - "key, *subkeys = jr.split(key, batch_size + 1)\n", - "obs, _ = tmaze_env.step(jnp.array(subkeys), actions)" + "Using the rollout function, we can run an active inference agent in this environment over a specified number of discrete timesteps using the parameters previously set. " ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ - "obs_b = [jnp.broadcast_to(o, (1,) + o.shape) for o in obs]\n", - "prior, _ = agent.update_empirical_prior(actions, qs)\n", - "res = agent.infer_states(obs_b, None, prior, None)" + "key = jr.PRNGKey(0)\n", + "_, info, _ = rollout(agent, tmaze_env, num_timesteps=10, batch_size=1, rng_key=key)" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=0\n", + "[Array([[19]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + ] + }, { "data": { + "image/png": "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", "text/plain": [ - "(1, 3, 25, 2)" + "
" ] }, - "execution_count": 9, "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tmaze_env.params['A'][2].shape" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ + "output_type": "display_data" + }, + { + "data": { + "image/png": "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RGn3NTAwUAwMDDRqv3jxon4/CQkJpfZL8csYlNafycnJ4ssvvyw6OzuLNjY2YocOHcSdO3carFPUZ5s2bSrxfj76PA0MDBRbtmxpdJzSagAghoeHG7TduXNHDA8PFz08PESFQiG6ubmJPXr0EJcvX16mmrKyssRhw4aJzs7OIgBe0oDoGSGIImc7EhEREUnBOVBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERSVTpF9LUarX466+/oFKp+BEHRERVjCiKyMzMRN26dc1ysVMiS1HpAeqvv/4y+lR0IiKqWq5fv27waQtE1U2lByiVSgVA98Pn6OhY2YcvkVqtxt69e9GzZ08oFApzl2OR2EemYT+Zhv1kGkvsp4yMDHh4eOhfy4mqq0oPUEWn7RwdHS0qQNnZ2cHR0dFiXqQsDfvINOwn07CfTGPJ/cQpGFTd8QQ2ERERkUQMUEREREQSMUARERERSVTpc6CIiOjZJooiCgsLodFozF0KkSRyuRxWVlYmzfFjgCIionJTUFCAW7duIScnx9ylEJWJnZ0d3N3dYW1t/dj1GKCIiKhcaLVapKSkQC6Xo27durC2tua79ajKEEURBQUFuHv3LlJSUuDt7f3Yi8UyQBERUbkoKCiAVquFh4cH7OzszF0OkWS2trZQKBS4evUqCgoKYGNjU+q6nERORETlih/xQlWZqc9fPsuJiIiIJOIpPCIiMquL9y4isyBT8nYqaxW8a3pXQEVET8YARUREZnPx3kU0Xdy0zNtfiLjAEEVmwVN4RERkNmUZeSrP7Ys7fPgw5HI5+vbtW677NdWVK1cgCAKSkpLMcnwyHQMUERHR31asWIF33nkH8fHx+Ouvv8xdDlkwBigiIiIAWVlZ2LhxI95++2307dsXq1evNlj+448/wtvbGzY2NujWrRvWrFkDQRDw8OFD/ToJCQkICAiAra0tPDw88O677yI7O1u/3NPTE59++ilGjx4NlUqFBg0aYPny5frlXl5eAIC2bdtCEAQEBQVV5F2mp8AARUREBOD7779H8+bN0axZM7z66qtYuXIlRFEEAKSkpODll19G//79cerUKbz55pv43//+Z7B9cnIyevXqhYEDB+L06dPYuHEjEhISEBERYbDe559/Dn9/f5w8eRLjxo3D22+/jT///BMAcPToUQDAvn37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1MfM1pbBiSyWpFN4AHDmzBl06tQJeXl5cHBwQHR0NPr06VPq+jNmzMDMmTON2qOjo2FnZye9YiIiMpucnBwMGzasYk/hEZmRqc9jyQGqoKAA165dQ3p6OjZv3oxvvvkGcXFxBhf9elRJI1AeHh5IS0uzqDlQMTExCAkJqfbzMUrDPjIN+8k07Kd/nLpzCl1XdS1xma3MFitbrcTos6NLnQMVPyoevnV8K7JEAxkZGahVqxYDFD2zKmQOFABYW1vrLzTm5+eHY8eOYdGiRYiKiipxfaVSqb/I2KMUCoXFvXBaYk2Whn1kGvaTadhPgEwuKzUcFcnV5pa6jkwuq9Q+NOVYEv8uJ7Iopj5/n/o6UFqt1mCEiYiIqqeicJWTk2PmSojKruj5+6Q/FiSNQE2dOhW9e/dGgwYNkJmZiejoaMTGxmLPnj1lr5SIiJ4Jcrkczs7O+itq29nZQRAEM1dFZBpRFJGTk4PU1FQ4OztDLpc/dn1JASo1NRUjRozArVu34OTkhNatW2PPnj1GH65IRETVk5ubGwCY9LEkRJbI2dlZ/zx+HEkBasWKFWUuiIiInn2CIMDd3R21a9fmZSqoylEoFE8ceSpS5utAERHR01NZq8y6fUWRy+Um/yIiqooYoIiIzMi7pjcuRFxAZkGm0TKtRoubJ24iflQ8ZHLj9/yorFXwruldGWUSUTEMUEREZlZaCFKr1biJm/Ct41vtL/dAZGme+jIGRERERNUNAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERSSQpQM2ZMwft27eHSqVC7dq10b9/f/z5558VVRsRERGRRZIUoOLi4hAeHo7ffvsNMTExUKvV6NmzJ7KzsyuqPiIiIiKLYyVl5Z9//tng9urVq1G7dm2cOHECXbt2LXGb/Px85Ofn629nZGQAANRqNdRqtdR6K0RRHZZSjyViH5mG/WQa9pNpLLGfLKkWInMSRFEUy7rxpUuX4O3tjTNnzqBVq1YlrjNjxgzMnDnTqD06Ohp2dnZlPTQREZlBTk4Ohg0bhvT0dDg6Opq7HCKzKXOA0mq1+Pe//42HDx8iISGh1PVKGoHy8PBAWlqaxfzwqdVqxMTEICQkBAqFwtzlWCT2kWnYT6ZhP5nGEvspIyMDtWrVYoCiak/SKbxHhYeH4+zZs48NTwCgVCqhVCqN2hUKhcW8IBSxxJosDfvINOwn07CfTGNJ/WQpdRCZW5kCVEREBHbu3In4+HjUr1+/vGsiIiIismiSApQoinjnnXewbds2xMbGwsvLq6LqIiIiIrJYkgJUeHg4oqOjsX37dqhUKty+fRsA4OTkBFtb2wopkIiIiMjSSLoO1LJly5Ceno6goCC4u7vrvzZu3FhR9RERERFZHMmn8IiIiIiqO34WHhEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBER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LJHkU3hBQUEQRdHoy5TwZC6etewxb1Bro/kGRYreGfXoO6QeJQCYN6j1M/0Lj0zD55JpHGys0K5x6b9ci9499ui7yIpr19jxmQ5PAPuJqCqrNj91L7apBwCYvEn3YbDF57KURC4TIBcEzBvUWr89EZ9LpvGopZuTk5is+8BcU4a6Bejejt+usaN++2cd+4moaqo2AQrQ/eLzre+MKVtO42jKfchlQom//Ira/RvWwGcDn/3RApKOzyXTeNSyRQ0HBRKTM3AvUw0BJQeEonYXlaJajqiwn4iqnmr30+dZyx7fv9kJZ2+mY9Px6zh25QGupek+XkYhE9C4tiPae9bAIH+PZ3aSL5UPPpdM42Bjha4tXfAwW42rqbm4l6lGRrbu+keCoLt+UU2VAg1r21bridDsJ6KqpdoFqCKt6jnpf6kVTZA+Oa1ntZ4gTWXD55JpnO0VcPbS9Ymun3RXzmY/GWI/EVUNz/x1oIiIiIjKGwMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEZQpQS5YsgaenJ2xsbNCxY0ccPXq0vOsiIiIisliSA9TGjRsxceJETJ8+HYmJifD19UVoaChSU1Mroj4iIiIiiyM5QH3xxRcYO3YsRo0aBR8fH3z99dews7PDypUrK6I+IiIiIotjJWXlgoICnDhxAlOnTtW3yWQyBAcH4/DhwyVuk5+fj/z8fP3tjIwMAIBarYZarS5LzeWuqA5LqccSsY9Mw34yDfvJNJbYT5ZUC5E5SQpQaWlp0Gg0qFOnjkF7nTp1cP78+RK3mTNnDmbOnGnUvnfvXtjZ2Uk5fIWLiYkxdwkWj31kGvaTadhPprGkfsrJyTF3CUQWQVKAKoupU6di4sSJ+tsZGRnw8PBAz5494ejoWNGHN4larUZMTAxCQkKgUCjMXY5FYh+Zhv1kGvaTaSyxn4rOIhBVd5ICVK1atSCXy3Hnzh2D9jt37sDNza3EbZRKJZRKpVG7QqGwmBeEIpZYk6VhH5mG/WQa9pNpLKmfLKUOInOTNInc2toafn5+2L9/v75Nq9Vi//796NSpU7kXR0RERGSJJJ/CmzhxIkaOHAl/f3906NABCxcuRHZ2NkaNGlUR9RERERFZHMkBavDgwbh79y6mTZuG27dvo02bNvj555+NJpYTERERPavKNIk8IiICERER5V0LERERUZXAz8IjIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSyKqyDyiKIgAgIyOjsg9dKrVajZycHGRkZEChUJi7HIvEPjIN+8k07CfTWGI/Fb12F72WE1VXlR6gMjMzAQAeHh6VfWgiIionmZmZcHJyMncZRGYjiJX8Z4RWq8Vff/0FlUoFQRAq89ClysjIgIeHB65fvw5HR0dzl2OR2EemYT+Zhv1kGkvsJ1EUkZmZibp160Im4ywQqr4qfQRKJpOhfv36lX1Ykzg6OlrMi5SlYh+Zhv1kGvaTaSytnzjyRMRJ5ERERESSMUARERERScQABUCpVGL69OlQKpXmLsVisY9Mw34yDfvJNOwnIstV6ZPIiYiIiKo6jkARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJVO0D1JIlS+Dp6QkbGxt07NgRR48eNXdJFic+Ph79+vVD3bp1IQgCfvjhB3OXZHHmzJmD9u3bQ6VSoXbt2ujfvz/+/PNPc5dlcZYtW4bWrVvrr6zdqVMn/PTTT+Yuy+JFRkZCEASMHz/e3KUQ0d+qdYDauHEjJk6ciOnTpyMxMRG+vr4IDQ1FamqquUuzKNnZ2fD19cWSJUvMXYrFiouLQ3h4OH777TfExMRArVajZ8+eyM7ONndpFqV+/fqIjIzEiRMncPz4cXTv3h0vvvgizp07Z+7SLNaxY8cQFRWF1q1bm7sUInpEtb4OVMeOHdG+fXssXrwYgO6Djj08PPDOO+/ggw8+MHN1lkkQBGzbtg39+/c3dykW7e7du6hduzbi4uLQtWtXc5dj0VxcXDBv3jyMGTPG3KVYnKysLLRr1w5Lly7FJ598gjZt2mDhwoXmLouIUI1HoAoKCnDixAkEBwfr22QyGYKDg3H48GEzVkbPgvT0dAC6cEAl02g02LBhA7Kzs9GpUydzl2ORwsPD0bdvX4PXKSKyDFbmLsBc0tLSoNFoUKdOHYP2OnXq4Pz582aqip4FWq0W48ePR+fOndGqVStzl2Nxzpw5g06dOiEvLw8ODg7Ytm0bfHx8zF2WxdmwYQMSExNx7Ngxc5dCRCWotgGKqKKEh4fj7NmzSEhIMHcpFqlZs2ZISkpCeno6Nm/ejJEjRyIuLo4h6hHXr1/He++9h5iYGNjY2Ji7HCIqQbUNULVq1YJcLsedO3cM2u/cuQM3NzczVUVVXUREBHbu3In4+HjUr1/f3OVYJGtrazRp0gQA4Ofnh2PHjmHRokWIiooyc2WW48SJE0hNTUW7du30bRqNBvHx8Vi8eDHy8/Mhl8vNWCERVds5UNbW1vDz88P+/fv1bVqtFvv37+d8DJJMFEVERERg27ZtOHDgALy8vMxdUpWh1WqRn59v7jIsSo8ePXDmzBkkJSXpv/z9/TF8+HAkJSUxPBFZgGo7AgUAEydOxMiRI+Hv748OHTpg4cKFyM7OxqhRo8xdmkXJysrCpUuX9LdTUlKQlJQEFxcXNGjQwIyVWY7w8HBER0dj+/btUKlUuH37NgDAyckJtra2Zq7OckydOhW9e/dGgwYNkJmZiejoaMTGxmLPnj3mLs2iqFQqo/lz9vb2qFmzJufVEVmIah2gBg8ejLt372LatGm4ffs22rRpg59//tloYnl1d/z4cXTr1k1/e+LEiQCAkSNHYvXq1WaqyrIsW7YMABAUFGTQvmrVKoSFhVV+QRYqNTUVI0aMwK1bt+Dk5ITWrVtjz549CAkJMXdpRESSVOvrQBERERGVRbWdA0VERERUVgxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERSfT/Oalq6I/yAy0AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "name": "stdout", "output_type": "stream", "text": [ - "[Tracedwith, Tracedwith, Tracedwith, Tracedwith, Tracedwith]\n", - "__\n" + "Time t=1\n", + "[Array([[24]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] - } - ], - "source": [ - "from pymdp.jax.envs.rollout import rollout\n", - "\n", - "_, info, _ = rollout(agent, tmaze_env, num_timesteps=20, batch_size=1, rng_key=key)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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8n3IZUKJv/yK2gPr18Bn/Z/90QKSjs8l03jVskUNBwVOJmXgXqYaAkoOCEXtLipFtRxRYT8RVT3V7qfPu5Y9vn+zA87dSsem4zeQcPUBrqfpPl5GIRPQ0M0Rbb1rYECg1zM7yZfKB59LpnGwsULn5i54mK3GtdRc3MtUIyNbd/0jQdBdv6imSoH6brbVeiI0+4moaql2AapIi7pO+l9qRROkT03rXq0nSFPZ8LlkGmd7BZx9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1OLFi+Ht7Q0bGxu0b98ex44dK++6iIiIiCyW5AC1ceNGTJgwAdOnT8fJkyfh7++P8PBwpKamVkR9RERERBZHcoD64osvMHr0aIwYMQJ+fn74+uuvYWdnhxUrVlREfUREREQWx0rKygUFBThx4gSmTp2qb5PJZAgNDcWRI0dK3CY/Px/5+fn62xkZGQAAtVoNtVpdlprLXVEdllKPJWIfmYb9ZBr2k2kssZ8sqRYic5IUoNLS0qDRaFC7dm2D9tq1a+PChQslbjN79mzMmDHDqH3v3r2ws7OTcvgKFxMTY+4SLB77yDTsJ9Own0xjSf2Uk5Nj7hKILIKkAFUWU6dOxYQJE/S3MzIy4OXlhe7du8PR0bGiD28StVqNmJgYhIWFQaFQmLsci8Q+Mg37yTTsJ9NYYj8VnUUgqu4kBahatWpBLpcjJSXFoD0lJQXu7u4lbqNUKqFUKo3aFQqFxbwgFLHEmiwN+8g07CfTsJ9MY0n9ZCl1EJmbpEnk1tbWCAgIwP79+/VtWq0W+/fvR4cOHcq9OCIiIiJLJPkU3oQJEzB8+HAEBgaiXbt2WLBgAbKzszFixIiKqI+IiIjI4kgOUAMHDsTdu3cxbdo03LlzB61atcLPP/9sNLGciIiI6FlVpknkY8eOxdixY8u7FiIiIqIqgZ+FR0RERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJJFVZR9QFEUAQEZGRmUfulRqtRo5OTnIyMiAQqEwdzkWiX1kGvaTadhPprHEfip67S56LSeqrio9QGVmZgIAvLy8KvvQRERUTjIzM+Hk5GTuMojMRhAr+c8IrVaLv/76CyqVCoIgVOahS5WRkQEvLy/cuHEDjo6O5i7HIrGPTMN+Mg37yTSW2E+iKCIzMxN16tSBTMZZIFR9VfoIlEwmg6enZ2Uf1iSOjo4W8yJlqdhHpmE/mYb9ZBpL6yeOPBFxEjkRERGRZAxQRERERBIxQAFQKpWYPn06lEqluUuxWOwj07CfTMN+Mg37ichyVfokciIiIqKqjiNQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREElX7ALV48WJ4e3vDxsYG7du3x7Fjx8xdksU5dOgQ+vTpgzp16kAQBPzwww/mLsnizJ49G23btoVKpYKbmxv69u2LP//809xlWZylS5eiZcuW+itrd+jQAT/99JO5y7J4UVFREAQB48aNM3cpRPS3ah2gNm7ciAkTJmD69Ok4efIk/P39ER4ejtTUVHOXZlGys7Ph7++PxYsXm7sUixUXF4fIyEj89ttviImJgVqtRvfu3ZGdnW3u0iyKp6cnoqKicOLECRw/fhxdu3bFSy+9hPPnz5u7NIuVkJCA6OhotGzZ0tylENEjqvV1oNq3b4+2bdti0aJFAHQfdOzl5YV33nkHU6ZMMXN1lkkQBGzbtg19+/Y1dykW7e7du3Bzc0NcXBw6d+5s7nIsmouLC+bOnYtRo0aZuxSLk5WVhTZt2mDJkiX45JNP0KpVKyxYsMDcZRERqvEIVEFBAU6cOIHQ0FB9m0wmQ2hoKI4cOWLGyuhZkJ6eDkAXDqhkGo0GGzZsQHZ2Njp06GDucixSZGQkevfubfA6RUSWwcrcBZhLWloaNBoNateubdBeu3ZtXLhwwUxV0bNAq9Vi3Lhx6NixI1q0aGHucizO2bNn0aFDB+Tl5cHBwQHbtm2Dn5+fucuyOBs2bMDJkyeRkJBg7lKIqATVNkARVZTIyEicO3cO8fHx5i7FIjVp0gSJiYlIT0/H5s2bMXz4cMTFxTFEPeLGjRt47733EBMTAxsbG3OXQ0QlqLYBqlatWpDL5UhJSTFoT0lJgbu7u5mqoqpu7Nix2LlzJw4dOgRPT09zl2ORrK2t0ahRIwBAQEAAEhISsHDhQkRHR5u5Mstx4sQJpKamok2bNvo2jUaDQ4cOYdGiRcjPz4dcLjdjhURUbedAWVtbIyAgAPv379e3abVa7N+/n/MxSDJRFDF27Fhs27YNBw4cgI+Pj7lLqjK0Wi3y8/PNXYZF6datG86ePYvExET9V2BgIIYOHYrExESGJyILUG1HoABgwoQJGD58OAIDA9GuXTssWLAA2dnZGDFihLlLsyhZWVm4fPmy/nZycjISExPh4uKCevXqmbEyyxEZGYl169Zh+/btUKlUuHPnDgDAyckJtra2Zq7OckydOhU9e/ZEvXr1kJmZiXXr1iE2NhZ79uwxd2kWRaVSGc2fs7e3R82aNTmvjshCVOsANXDgQNy9exfTpk3DnTt30KpVK/z8889GE8uru+PHj6NLly762xMmTAAADB8+HKtWrTJTVZZl6dKlAICQkBCD9pUrVyIiIqLyC7JQqampGDZsGG7fvg0nJye0bNkSe/bsQVhYmLlLIyKSpFpfB4qIiIioLKrtHCgiIiKismKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISKL/B0GhIsYPGtrTAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "name": "stdout", "output_type": "stream", "text": [ - "(20, 1, 1)\n", - "(1, 2, 25)\n" + "Time t=2\n", + "[Array([[23]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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X9370RKPp0qtxdaWwYkslqRTeABw9uxZdOrUCbm5uXBwcEBUVBT69OlT4vozZ87ErFmzjNqjoqJgZ2cnvWIiIjKb7OxsDBs2rGJP4RGZkanHseQAlZ+fj+vXryMtLQ1btmzBN998g9jYWIOLfj2uuBEoDw8PpKamWtQcqOjoaISEhFjMPANLwz4yDfvpH6fvnkbX1V2LXWYrs8WqVqsw+tzoEudAxY2Kg28d34os0eJZ4vGUnp6OWrVqMUDRM6tC5kABgLW1tf5CY35+fjh+/DgWL16MyMjIYtdXKpX6i4w9TqFQWMwTQiFLrMnSsI9Mw34CZHJZieGoUI42p8R1ZHJZte/DQpZ0PJlSh8S/y4ksiqnH71NfB0qr1RqMMBERUfVUGK6ys7PNXAlR2RUev0/6Y0HSCNS0adPQu3dvNGjQABkZGYiKikJMTAz27t1b9kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRHZ2dlISUmBs7Mz5HJ5qetLClApKSkYMWIEbt++DScnJ7Ru3Rp79+41+nBFIiKqntzc3ADApI8lIbJEzs7O+uO4NJIC1MqVK8tcEBERPfsEQYC7uztq165tUZdfIDKFQqF44shToTJfB4qIqDQqa5VZtyfzksvlJr8QEVVFDFBEVCG8a3rj4viLyMjPMFqm1Whx6+QtxI2Kg0xu/F4WlbUK3jW9K6NMIqIyYYAiogpTUghSq9W4hVvwreNrMW/PJyKS4qkvY0BERERU3TBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEkgLU3Llz0b59e6hUKtSuXRv9+/fHn3/+WVG1EREREVkkSQEqNjYW4eHh+O233xAdHQ21Wo2ePXsiKyurouojIiIisjhWUlb++eefDW6vWbMGtWvXxsmTJ9G1a9dit8nLy0NeXp7+dnp6OgBArVZDrVZLrbdCFNZhKfVYIvaRadhPpmE/mcYS+8mSaiEyJ0EURbGsG1++fBne3t44e/YsWrVqVew6M2fOxKxZs4zao6KiYGdnV9ZdExGRGWRnZ2PYsGFIS0uDo6OjucshMpsyByitVot///vfePToEeLj40tcr7gRKA8PD6SmplrML59arUZ0dDRCQkKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LT01GrVi0GKKr2JJ3Ce1x4eDjOnTtXangCAKVSCaVSadSuUCgs5gmhkCXWZGnYR6ZhP5mG/WQaS+onS6mDyNzKFKDGjx+PXbt2IS4uDvXr1y/vmoiIiIgsmqQAJYoi3nnnHWzfvh0xMTHw8vKqqLqIiIiILJakABUeHo6oqCjs2LEDKpUKd+7cAQA4OTnB1ta2QgokIiIisjSSrgO1fPlypKWlISgoCO7u7vqvTZs2VVR9RERERBZH8ik8IiIiouqOn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIx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vCr2kzmew4kskeRTeEFBQRBF0ejLlPBkLp617DF/UGuj+QaFCt8Z9fg7pB4nAJg/qPUz/YJHpuGxZBoHGyu0a1zyi2vhu8cefxdZUe0aOz7T4QlgPxFVZdXmt+7FNvUAAFM26z4MtuhcluLIZQLkgoD5g1rrtyfisWQaj1q6OTkJSboPzDVlqFuA7u347Ro76rd/1rGfiKqmahOgAN0Ln299Z0zdegbHkh9ALhOKffErbPdvWAOfDXz2RwtIOh5LpvGoZYsaDgokJKXjfoYaAooPCIXtLipFtRxRYT8RVT3V7rfPs5Y9vn+zE87dSsPmEzdw/OpDXE/VfbyMQiagcW1HtPesgUH+Hs/sJF8qHzyWTONgY4WuLV3wKEuNayk5uJ+hRnqW7vpHgqC7flFNlQINa9tW64nQ7CeiqqXaBahCreo56V/UCidIn5res1pPkKay4bFkGmd7BZy9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1NKlS+Hp6QkbGxt07NgRx44dK++6iIiIiCyW5AC1adMmTJo0CTNmzEBCQgJ8fX0RGhqKlJSUiqiPiIiIyOJIDlBffPEFxo4di1GjRsHHxwdff/017OzssGrVqoqoj4iIiMjiWElZOT8/HydPnsS0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", + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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IpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpJIUoCaM2cO2rdvD5VKBTc3N/Tv3x9//PFHZdVGREREZJEkBai4uDhERkbi119/RUxMDNRqNXr27Ins7OzKqo+IiIjI4lhJWfmnn34y+Hn16tVwc3PDyZMn0bVr1xK3yc/PR35+vv7njIwMAIBarYZarZZab6UoqsNS6rFE7CPTsJ9Mw34yjSX2kyXVQmROgiiKYnk3vnz5Mnx9fXH27Fm0atWqxHU++ugjzJw506h9/fr1sLOzK++hiYjIDHJycjBs2DCkp6fD0dHR3OUQmU25A5RWq8U///lPPHr0CAkJCaWuV9IIlJeXF9LS0izml0+tViMmJgZhYWFQKBTmLscisY9Mw34yDfvJNJbYTxkZGahTpw4DFNV4kk7hPS4yMhLnzp0rMzwBgFKphFKpNGpXKBQW84RQxBJrsjTsI9Own0zDfjKNJfWTpdRBZG7lClDjx4/Hrl27EB8fj/r161d0TUREREQWTVKAEkURb7/9NrZv347Y2Fj4+PhUVl1EREREFktSgIqMjMT69euxY8cOqFQq3LlzBwDg5OQEW1vbSimQiIiIyNJIug7UsmXLkJ6ejpCQEHh4eOi/Nm3aVFn1EREREVkcyafwiIiIiGo6fhYeERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQk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HM/hRJZI8im8kJAQiKJo9GVKeDIX7zr2mDeotdF8gyJF74x6/B1SjxMAzBvU+pl+wSPT8LFkGgcbK7RrXPqLa9G7xx5/F1lx7Ro7PtPhCWA/EVVnNea37sU2ngCAKZt1HwZbfC5LSeQyAXJBwLxBrfXbE/GxZBqvOro5OYnJug/MNWWoW4Du7fjtGjvqt3/WsZ+IqqcaE6AA3Quff31nTN16BsdSHkAuE0p88StqD2xYC58NfPZHC0g6PpZM41XHFrUcFEhMzsD9TDUElBwQitpdVIoaOaLCfiKqfmrcb593HXt890YnnLuVjs0nbuD41Ye4nqb7eBmFTEBjN0e0966FQYFez+wkX6oYfCyZxsHGCl1buuBRthrXUnNxP1ONjGzd9Y8EQXf9otoqBRq62dboidDsJ6LqpcYFqCKtPJ30L2pFE6RPTe9ZoydIU/nwsWQaZ3sFnH10faLrJ92Vs9lPhthPRNXDM38dKCIiIqKKxgBFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCRRuQLUkiVL4O3tDRsbG3Ts2BHHjh2r6LqIiIiILJbkALVp0yZMmjQJM2bMQGJiIvz9/REeHo7U1NTKqI+IiIjI4kgOUF988QXGjh2LUaNGwc/PD19//TXs7OywcuXKyqiPiIiIyOJYSVm5oKAAJ0+exLRp0/Rt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", "text/plain": [ "
" ] @@ -272,16 +232,23 @@ "name": "stdout", "output_type": "stream", "text": [ - "0\n", - "0\n", - "--\n", - "(20, 1, 1)\n", - "(1, 2, 25)\n" + "Time t=3\n", + "[Array([[22]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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X9370RKPp0qtxdaWwYkslqRTeABw9uxZdOrUCbm5uXBwcEBUVBT69OlT4vozZ87ErFmzjNqjoqJgZ2cnvWIiIjKb7OxsDBs2rGJP4RGZkanHseQAlZ+fj+vXryMtLQ1btmzBN998g9jYWIOLfj2uuBEoDw8PpKamWtQcqOjoaISEhFjMPANLwz4yDfvpH6fvnkbX1V2LXWYrs8WqVqsw+tzoEudAxY2Kg28d34os0eJZ4vGUnp6OWrVqMUDRM6tC5kABgLW1tf5CY35+fjh+/DgWL16MyMjIYtdXKpX6i4w9TqFQWMwTQiFLrMnSsI9Mw34CZHJZieGoUI42p8R1ZHJZte/DQpZ0PJlSh8S/y4ksiqnH71NfB0qr1RqMMBERUfVUGK6ys7PNXAlR2RUev0/6Y0HSCNS0adPQu3dvNGjQABkZGYiKikJMTAz27t1b9kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRHZ2dlISUmBs7Mz5HJ5qetLClApKSkYMWIEbt++DScnJ7Ru3Rp79+41+nBFIiKqntzc3ADApI8lIbJEzs7O+uO4NJIC1MqVK8tcEBERPfsEQYC7uztq165tUZdfIDKFQqF44shToTJfB4qIqDQqa5VZtyfzksvlJr8QEVVFDFBEVCG8a3rj4viLyMjPMFqm1Whx6+QtxI2Kg0xu/F4WlbUK3jW9K6NMIqIyYYAiogpTUghSq9W4hVvwreNrMW/PJyKS4qkvY0BERERU3TBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEkgLU3Llz0b59e6hUKtSuXRv9+/fHn3/+WVG1EREREVkkSQEqNjYW4eHh+O233xAdHQ21Wo2ePXsiKyurouojIiIisjhWUlb++eefDW6vWbMGtWvXxsmTJ9G1a9dit8nLy0NeXp7+dnp6OgBArVZDrVZLrbdCFNZhKfVYIvaRadhPpmE/mcYS+8mSaiEyJ0EURbGsG1++fBne3t44e/YsWrVqVew6M2fOxKxZs4zao6KiYGdnV9ZdExGRGWRnZ2PYsGFIS0uDo6OjucshMpsyByitVot///vfePToEeLj40tcr7gRKA8PD6SmplrML59arUZ0dDRCQkKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LT01GrVi0GKKr2JJ3Ce1x4eDjOnTtXangCAKVSCaVSadSuUCgs5gmhkCXWZGnYR6ZhP5mG/WQaS+onS6mDyNzKFKDGjx+PXbt2IS4uDvXr1y/vmoiIiIgsmqQAJYoi3nnnHWzfvh0xMTHw8vKqqLqIiIiILJakABUeHo6oqCjs2LEDKpUKd+7cAQA4OTnB1ta2QgokIiIisjSSrgO1fPlypKWlISgoCO7u7vqvTZs2VVR9RERERBZH8ik8IiIiouqOn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIx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vCr2kzmew4kskeRTeEFBQRBF0ejLlPBkLp617DF/UGuj+QaFCt8Z9fg7pB4nAJg/qPUz/YJHpuGxZBoHGyu0a1zyi2vhu8cefxdZUe0aOz7T4QlgPxFVZdXmt+7FNvUAAFM26z4MtuhcluLIZQLkgoD5g1rrtyfisWQaj1q6OTkJSboPzDVlqFuA7u347Ro76rd/1rGfiKqmahOgAN0Ln299Z0zdegbHkh9ALhOKffErbPdvWAOfDXz2RwtIOh5LpvGoZYsaDgokJKXjfoYaAooPCIXtLipFtRxRYT8RVT3V7rfPs5Y9vn+zE87dSsPmEzdw/OpDXE/VfbyMQiagcW1HtPesgUH+Hs/sJF8qHzyWTONgY4WuLV3wKEuNayk5uJ+hRnqW7vpHgqC7flFNlQINa9tW64nQ7CeiqqXaBahCreo56V/UCidIn5res1pPkKay4bFkGmd7BZy9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1NKlS+Hp6QkbGxt07NgRx44dK++6iIiIiCyW5AC1adMmTJo0CTNmzEBCQgJ8fX0RGhqKlJSUiqiPiIiIyOJIDlBffPEFxo4di1GjRsHHxwdff/017OzssGrVqoqoj4iIiMjiWElZOT8/HydPnsS0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", + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAAGzCAYAAADg2in0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABUhUlEQVR4nO3deVxU5f4H8M+ZYRi2AURREFFQcUETFdRMEVQQl+vNNHMrRc1biZV61fLe0sxMUkstl/B3Xcstt8ylFBcgzNwQFctUxDUVcWFfhpnz+2NichjAOQjMIJ/364XIc7bvPByGD8955owgiqIIIiIiIjKZzNwFEBEREVU3DFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQZJKPPvoIgiAYtHl5eSE8PLxK61izZg0EQcDVq1er9LhkGn5/iKimYIB6CikpKZgwYQKaNWsGOzs72NnZwdfXFxERETh79qy5y6uRrl69CkEQTPoo7Ze8l5cXBEFASEhIicv/7//+T7+PkydPVuKjKZ8n9UFkZKS5S6xRNmzYgEWLFpm7DCKqYFbmLqC62r17N4YMGQIrKyuMGDECfn5+kMlkuHDhArZv347ly5cjJSUFjRo1MnepleaPP/6ATGZZGdzV1RXffPONQdvnn3+OmzdvYuHChUbrlsbGxgaHDx/GnTt34ObmZrBs/fr1sLGxQV5eXsUVXgmGDRuGvn37GrW3a9eu0o752muvYejQoVAqlZV2jOpmw4YNSEpKwsSJE81dChFVIAaockhOTsbQoUPRqFEjHDx4EO7u7gbLP/vsMyxbtsziwsXjsrOzYW9v/1T7sMRfkvb29nj11VcN2jZt2oSHDx8atZelS5cuOHHiBDZv3ox3331X337z5k38/PPPeOmll7Bt27YKq7sytG/fXtJjrghyuRxyubzMdURRRF5eHmxtbauoKiKiime5v+Et2Lx585CdnY3Vq1cbhScAsLKywjvvvANPT0+D9gsXLuDll1+Gi4sLbGxsEBAQgB9++MFgnaI5JEeOHMHkyZPh6uoKe3t7vPTSS7h3757RsX788UcEBgbC3t4eKpUK/fr1w/nz5w3WCQ8Ph4ODA5KTk9G3b1+oVCqMGDECAPDzzz9j8ODBaNiwIZRKJTw9PTFp0iTk5uY+sR+Kz4Ey9XKZKf0AAOfPn0ePHj1ga2uLBg0a4JNPPoFWq31iXRXBxsYGAwcOxIYNGwzaN27ciFq1aiEsLMxom7NnzyI8PByNGzeGjY0N3NzcMGbMGNy/f1+/zpMurz3u2LFj6N27N5ycnGBnZ4egoCAcOXKkQh+nl5cX/vGPfyA+Ph4dO3aEjY0NGjdujHXr1unXOXnyJARBwNq1a42237dvHwRBwO7duwGUPAeq6Bj79u1DQEAAbG1tERUVBQC4cuUKBg8eDBcXF9jZ2eH555/Hnj17DI4RExMDQRDw3XffYc6cOWjQoAFsbGzQs2dPXL582WDd4OBgtG7dGmfPnkVQUBDs7OzQtGlTbN26FQAQGxuLTp06wdbWFs2bN8eBAweMHtOtW7cwZswY1KtXD0qlEq1atcKqVavKVVNwcDD27NmDa9eu6b/HXl5eJnxniMjScQSqHHbv3o2mTZuiU6dOJm9z/vx5dOnSBR4eHnj//fdhb2+P7777DgMGDMC2bdvw0ksvGaz/9ttvo1atWpg5cyauXr2KRYsWYcKECdi8ebN+nW+++QajRo1CWFgYPvvsM+Tk5GD58uXo2rUrTp8+bfBEXVhYiLCwMHTt2hULFiyAnZ0dAGDLli3IycnBW2+9hdq1a+P48eP46quvcPPmTWzZskVSvxS/dAYAH3zwAVJTU+Hg4CCpH+7cuYPu3bujsLBQv96KFSuqdNRi+PDh6NWrF5KTk9GkSRMAussxL7/8MhQKhdH60dHRuHLlCkaPHg03NzecP38eK1aswPnz5/Hrr79CEIQSLzGq1WpMmjQJ1tbW+rZDhw6hT58+8Pf3x8yZMyGTybB69Wr06NEDP//8Mzp27PjE+nNycpCWlmbU7uzsDCurv3/0L1++jJdffhljx47FqFGjsGrVKoSHh8Pf3x+tWrVCQEAAGjdujO+++w6jRo0y2NfmzZtLDZSP++OPPzBs2DC88cYbGDduHJo3b467d+/ihRdeQE5ODt555x3Url0ba9euxT//+U9s3brV6GciMjISMpkMU6ZMQXp6OubNm4cRI0bg2LFjBus9fPgQ//jHPzB06FAMHjwYy5cvx9ChQ7F+/XpMnDgRb775JoYPH4758+fj5Zdfxo0bN6BSqQAAd+/exfPPPw9BEDBhwgS4urrixx9/xNixY5GRkWF0Ge5JNf33v/9Fenq6wSXkop8FIqrmRJIkPT1dBCAOGDDAaNnDhw/Fe/fu6T9ycnL0y3r27Ck+99xzYl5enr5Nq9WKL7zwgujj46NvW716tQhADAkJEbVarb590qRJolwuFx89eiSKoihmZmaKzs7O4rhx4wxquHPnjujk5GTQPmrUKBGA+P777xvV/HiNRebOnSsKgiBeu3ZN3zZz5kyx+OnSqFEjcdSoUUbbF5k3b54IQFy3bp3kfpg4caIIQDx27Ji+LTU1VXRychIBiCkpKaUet7h+/fqJjRo1Mnn9Ro0aif369RMLCwtFNzc3cfbs2aIoiuJvv/0mAhBjY2P136cTJ07otyupLzdu3CgCEOPi4ko93vjx40W5XC4eOnRIFEVdf/j4+IhhYWEG50BOTo7o7e0thoaGlll/SkqKCKDUj6NHjxo81uL1paamikqlUvz3v/+tb5s+fbqoUCjEBw8e6Nvy8/NFZ2dnccyYMfq2on55/PtTdIyffvrJoM6i7/HPP/+sb8vMzBS9vb1FLy8vUaPRiKIoiocPHxYBiC1bthTz8/P16y5evFgEIJ47d07fFhQUJAIQN2zYoG+7cOGCCECUyWTir7/+qm/ft2+fCEBcvXq1vm3s2LGiu7u7mJaWZlDr0KFDRScnJ/33WEpNUs8/IqoeeAlPooyMDAAl/xUZHBwMV1dX/cfSpUsBAA8ePMChQ4fwyiuvIDMzE2lpaUhLS8P9+/cRFhaGS5cu4datWwb7+te//mVwSScwMBAajQbXrl0DoBvtePToEYYNG6bfX1paGuRyOTp16oTDhw8b1ffWW28ZtT0+opOdnY20tDS88MILEEURp0+fLkcP6Rw+fBjTp0/H22+/jddee01yP+zduxfPP/+8wUiLq6ur/tJjVZDL5XjllVewceNGALrJ456enggMDCxx/cf7Mi8vD2lpaXj++ecBAAkJCSVus27dOixbtgzz5s1D9+7dAQCJiYm4dOkShg8fjvv37+v7KTs7Gz179kRcXJxJlzL/9a9/ITo62ujD19fXYD1fX1+Dx+Tq6ormzZvjypUr+rYhQ4ZArVZj+/bt+rb9+/fj0aNHGDJkyBNr8fb2Nhql2rt3Lzp27IiuXbvq2xwcHPCvf/0LV69exW+//Waw/ujRow1G6YpqfrzOon0MHTpU/3Xz5s3h7OyMli1bGowaF/2/aHtRFLFt2zb0798foiga/FyFhYUhPT3d6Ptoak1E9OzhJTyJiob6s7KyjJZFRUUhMzMTd+/eNZi8e/nyZYiiiA8//BAffvhhiftNTU2Fh4eH/uuGDRsaLK9VqxYA3eUJALh06RIAoEePHiXuz9HR0eBrKysrNGjQwGi969evY8aMGfjhhx/0+y6Snp5e4r6f5ObNmxgyZAi6dOmCL774Qt8upR+uXbtW4iXS5s2bl6um4tLT0w3meVlbW8PFxcVoveHDh+PLL7/EmTNnsGHDBgwdOtRorlKRBw8eYNasWdi0aRNSU1ONjldcYmIi3nzzTQwbNgyTJ0/Wtxd9b4tfLiu+v6JzojQ+Pj6l3orhccXPNUB3vj1+Pvj5+aFFixbYvHkzxo4dC0B3+a5OnTqlnoOP8/b2Nmor7XvcsmVL/fLWrVuXWmfxn4kiDRo0MPoeOTk5Gc1JdHJyMtj+3r17ePToEVasWIEVK1aU+DiKf19NrYmInj0MUBI5OTnB3d0dSUlJRsuKfhkUv79Q0WjBlClTSp0r0rRpU4OvS3slkyiKBvv85ptvjF5mD8Bgjguge8Vc8VcFajQahIaG4sGDB3jvvffQokUL2Nvb49atWwgPDy/XhO2CggK8/PLLUCqV+O677wzqKE8/VJZ3333XYFJ0UFAQYmJijNbr1KkTmjRpgokTJyIlJQXDhw8vdZ+vvPIKfvnlF0ydOhVt27aFg4MDtFotevfubdSXDx8+xKBBg9CsWTP873//M1hWtO78+fPRtm3bEo9VkfNonnSuFRkyZAjmzJmDtLQ0qFQq/PDDDxg2bJjRuVaSipi7Zmqdpa1n6s/Uq6++Wmp4bdOmTblqIqJnDwNUOfTr1w//+9//cPz4cZMm8zZu3BgAoFAoTBoRMEXRpOa6deuWe5/nzp3DxYsXsXbtWowcOVLfHh0dXe663nnnHSQmJiIuLg716tUzWCalHxo1aqQfiXncH3/8Ue7aHjdt2jSDUcKyRnOGDRuGTz75BC1btiw10Dx8+BAHDx7ErFmzMGPGDH17SY9Bq9VixIgRePToEQ4cOKCf0F+k6Hvr6OhYYedLRRgyZAhmzZqFbdu2oV69esjIyDC4VCZVo0aNSvx+XrhwQb+8Krm6ukKlUkGj0VRov5c2YklE1RvnQJXDtGnTYGdnhzFjxuDu3btGy4v/9Vm3bl0EBwcjKioKt2/fNlq/pNsTPElYWBgcHR3x6aefQq1Wl2ufRX89P16vKIpYvHix5HoAYPXq1YiKisLSpUtLDJZS+qFv37749ddfcfz4cYPl69evL1dtxfn6+iIkJET/4e/vX+q6r7/+OmbOnInPP/+81HVK6ksAJd6BetasWdi3bx82btxY4qUtf39/NGnSBAsWLCjxUnF5zpeK0LJlSzz33HPYvHkzNm/eDHd3d3Tr1q3c++vbty+OHz+Oo0eP6tuys7OxYsUKeHl5Gc3VqmxyuRyDBg3Ctm3bShxhLm+/29vbl/tyOBFZLo5AlYOPjw82bNiAYcOGoXnz5vo7kYuiiJSUFGzYsAEymcxgztHSpUvRtWtXPPfccxg3bhwaN26Mu3fv4ujRo7h58ybOnDkjqQZHR0csX74cr732Gtq3b4+hQ4fC1dUV169fx549e9ClSxcsWbKkzH20aNECTZo0wZQpU3Dr1i04Ojpi27Zt5Zq/kZaWhvHjx8PX1xdKpRLffvutwfKXXnoJ9vb2JvfDtGnT8M0336B3795499139bcxaNSoUZW/TU6jRo3w0UcflbmOo6MjunXrhnnz5kGtVsPDwwP79+9HSkqKwXrnzp3D7Nmz0a1bN6Smphr106uvvgqZTIb//e9/6NOnD1q1aoXRo0fDw8MDt27dwuHDh+Ho6Ihdu3Y9se6EhASj/QO6Ea7OnTs/+YGXYMiQIZgxYwZsbGwwduzYp7pZ7Pvvv4+NGzeiT58+eOedd+Di4oK1a9ciJSUF27ZtM8uNaCMjI3H48GF06tQJ48aNg6+vLx48eICEhAQcOHAADx48kLxPf39/bN68GZMnT0aHDh3g4OCA/v37V0L1RFSlzPDKv2fG5cuXxbfeekts2rSpaGNjI9ra2ootWrQQ33zzTTExMdFo/eTkZHHkyJGim5ubqFAoRA8PD/Ef//iHuHXrVv06Jb08XhT/ftn04cOHjdrDwsJEJycn0cbGRmzSpIkYHh4unjx5Ur/OqFGjRHt7+xIfw2+//SaGhISIDg4OYp06dcRx48aJZ86cMXp595NuY/Ckl84//rJ2U/pBFEXx7NmzYlBQkGhjYyN6eHiIs2fPFleuXFlltzEoS0nfp5s3b4ovvfSS6OzsLDo5OYmDBw8W//zzTxGAOHPmTFEU//4+lvbxuNOnT4sDBw4Ua9euLSqVSrFRo0biK6+8Ih48eLDM2p70vXj81hOlPdagoCAxKCjIqP3SpUv6/cTHx5faL8VvY1BafyYnJ4svv/yy6OzsLNrY2IgdO3YUd+/ebbBOUZ9t2bKlxMf5+HkaFBQktmrVyug4pdUAQIyIiDBou3v3rhgRESF6enqKCoVCdHNzE3v27CmuWLGiXDVlZWWJw4cPF52dnUUAvKUB0TNCEEXOdiQiIiKSgnOgiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKoym+kqdVq8eeff0KlUvEtDoiIqhlRFJGZmYn69eub5WanRJaiygPUn3/+afSu6EREVL3cuHHD4N0WiGqaKg9QKpUKgO6Hz9HRsaoPXyK1Wo39+/ejV69eUCgU5i7HIrGPTMN+Mg37yTSW2E8ZGRnw9PTUP5cT1VRVHqCKLts5OjpaVICys7ODo6OjxTxJWRr2kWnYT6ZhP5nGkvuJUzCopuMFbCIiIiKJGKCIiIiIJGKAIiIiIpKoyudAERHRs00URRQWFkKj0Zi7FCJJ5HI5rKysTJrjxwBFREQVpqCgALdv30ZOTo65SyEqFzs7O7i7u8Pa2rrM9RigiIioQmi1WqSkpEAul6N+/fqwtrbmq/Wo2hBFEQUFBbh37x5SUlLg4+NT5s1iGaCIiKhCFBQUQKvVwtPTE3Z2duYuh0gyW1tbKBQKXLt2DQUFBbCxsSl1XU4iJyKiCsW3eKHqzNTzl2c5ERERkUS8hEdERGZ16f4lZBZkSt5OZa2CT22fSqiI6MkYoIiIyGwu3b+EZkualXv7ixMuMkSRWfASHhERmU15Rp4qcvvijh49Crlcjn79+lXofk119epVCIKAxMREsxyfTMcARURE9JeVK1fi7bffRlxcHP78809zl0MWjAGKiIgIQFZWFjZv3oy33noL/fr1w5o1awyW//DDD/Dx8YGNjQ26d++OtWvXQhAEPHr0SL9OfHw8AgMDYWtrC09PT7zzzjvIzs7WL/fy8sKnn36KMWPGQKVSoWHDhlixYoV+ube3NwCgXbt2EAQBwcHBlfmQ6SkwQBEREQH47rvv0KJFCzRv3hyvvvoqVq1aBVEUAQApKSl4+eWXMWDAAJw5cwZvvPEG/vvf/xpsn5ycjN69e2PQoEE4e/YsNm/ejPj4eEyYMMFgvc8//xwBAQE4ffo0xo8fj7feegt//PEHAOD48eMAgAMHDuD27dvYvn17FTxyKg8GKCIiIugu37366qsAgN69eyM9PR2xsbEAgKioKDRv3hzz589H8+bNMXToUISHhxtsP3fuXIwYMQITJ06Ej48PXnjhBXz55ZdYt24d8vLy9Ov17dsX48ePR9OmTfHee++hTp06OHz4MADA1dUVAFC7dm24ubnBxcWlCh45lQcDFBER1Xh//PEHjh8/jmHDhgEArKysMGTIEKxcuVK/vEOHDgbbdOzY0eDrM2fOYM2aNXBwcNB/hIWF6d/ipkibNm30/xcEAW5ubkhNTa2sh0aVhLcxICKiGm/lypUoLCxE/fr19W2iKEKpVGLJkiUm7SMrKwtvvPEG3nnnHaNlDRs21P9foVAYLBMEAVqttpyVk7kwQBERUY1WWFiIdevW4fPPP0evXr0Mlg0YMAAbN25E8+bNsXfvXoNlJ06cMPi6ffv2+O2339C0adNy12JtbQ0A0Gg05d4HVQ0GKCIiqtF2796Nhw8fYuzYsXBycjJYNmjQIKxcuRLfffcdvvjiC7z33nsYO3YsEhMT9a/SEwQBAPDee+/h+eefx4QJE/D666/D3t4ev/32G6Kjo00exapbty5sbW3x008/oUGDBrCxsTGqiSwD50AREVGNtnLlSoSEhJQYVAYNGoSTJ08iMzMTW7duxfbt29GmTRssX75c/yo8pVIJQDe3KTY2FhcvXkRgYCDatWuHGTNmGFwWfBIrKyt8+eWXiIqKQv369fHiiy9WzIOkCscRKCIiqtF27dpV6rKOHTvqb2XQpk0b/POf/9QvmzNnjn6UqEiHDh2wf//+Uvd39epVo7bidx1//fXX8frrr5tYPZkLAxQREZEJli1bhg4dOqB27do4cuQI5s+fb3SPJ6o5GKCIiIhMcOnSJXzyySd48OABGjZsiH//+9+YPn26ucsiM6mxASrpVjq2nLyB41cf4EZaJuYEAO0+3g/POip09HLB4ABPtPbgxD0iqlqPstW4lpqLtEw1MrPzIADYczIVKnsb1FEp0KiuLZztFU/cT3WhslaZdXspFi5ciIULF1bZ8ciy1bgAdTUtG9O2ncXxlAeQywRotCKUct31bbVWxO+3M3HxbhbWHr2Gjt4umDeoDbzq2Ju5aiJ61mXlFSIhOQP3M9UQAIjQ/SMAEEUgI6cQmTmFuHI3F7VVCrRv4ggHm+r/FO5T2wcXJ1xEZkGm5G1V1ir41PaphKqInqz6//RJsDPxFqZuOQvNXxMCNVqxxPWK2k9de4heC+Mwf3AbvNjWo8rqJMt36f6lEp/wtRrdzfDO3D0Dmdz4Ra58wqeS3EjLRUJyBv56akLJz0x/tz/IVOPgmfto38QRnnVsq6LESlXWz4RWK0ImE6qwGiLT1JgAtTPxFiZuSiz1iakkGq0IDURM3JQIAAxRBEAXnpotaVbiMluZLTa22Yhuq7shV5tb4joXJ1xkiCK9G2m5OHk5Q9I2InSjUkXbPQshqsjj0ysup2ZBrRGhkAtoWteB0yvIotSIAJWSlo2pW86W/ledWgZAo/ssM15LBDB1y1n4NXDm5Twq16WGityenh1ZubrLdqXJzwds//qsLCUjJSRnoJaDotpfzitpekURtYbTK8jy1Igbab637e/Ldo/Lu1kLqdvb4+bSEADAzaUhSN3eHnk3axmtqxFFTNt2ttJrJaKaI+HK35ftHvf7GQU+e98JY/u7AgDG9nfFZ+874fczxpPHRRFlhrDqYGfiLfRaGIdT1x4CMH16xc7EW1VWI1FxTxWgIiMjIQgCJk6cWEHlVLxzN9NxPOWB0Q9k5umGuLu+M3KT6wHiX9fXRQG5yfVwd31nZJ5uaLC+RivieMoDJN1Kr6rSiegZ9jBLjfuZaqOR8Z+22+K/b9bCiXglRK3uuUnUCjgRr8R/36yFfdsNh6JEAPcz1XiUra6awitY0fSKAo221OBUnEYrokCjxcRNiQxRZDblDlAnTpxAVFQU2rRpU5H1VLitp27AqtgExLybtfBgf2sAAqAt1gVaGQABD/a3NhqJkssEbDl5o3ILJqIa4fq9XAjF5kb/fkaBFfNVAARoNYYLdV8LiJqvMhqJEgBcSy15zp0le9L0iicpml5xNS27IsuqloKDg596MOPOnTsIDQ2Fvb09nJ2dK6SuZ1m5AlRWVhZGjBiB//u//0OtWsaXuyzJ8asPUFjsr5qM494lznUyIBORccLboEmjFXHi6sOKLpGIaqC0TLXR5bsfNtpBJi97O5kc2LXJzqCtaBSquilteoUUFTW9Ijw8HIIgQBAEKBQKeHt7Y9q0acjLy3vqfVcXCxcuxO3bt5GYmIiLFy+WuM5HH32Etm3bStqvl5cXFi1a9PQFVoCKCJpFyjXrMCIiAv369UNISAg++eSTMtfNz89Hfn6+/uuMDN21erVaDbW68n/gb6Rl6u/zBPw1YfxWbdgqNQA0AABbW7XBZ72btWGtFSAotPqm62kZVVK3pSl6zDXxsRen1WhhKyt5Rm9Re2nLi7av6f3I8wnIzM4zuF9Bfj5w7qQMSutCfVtpz01nT8iQn1uIv97DFgCQkV1YJf1ZUccoml7xtB6fXvG0r87r3bs3Vq9eDbVajVOnTmHUqFEQBAGfffbZU9dZEURRhEajgZVV5bxgIDk5Gf7+/vDxscxXCRcUFMDa2trcZehJ/i5s2rQJCQkJOHHihEnrz507F7NmzTJq379/P+zs7ErYomLNCSjeogG6/FjiuqtWRZu0z7179z5dUdVYdLRpffSs29hmY5nLV7VeVeqyW6du4RY4bwOo2eeT8NdHEVsAG9aXvG6Jz00lzBuviqemnJycCtlP0fSK4lcIyqNoesXTBiilUgk3NzcAgKenJ0JCQhAdHa0PUFqtFp999hlWrFiBO3fuoFmzZvjwww/x8ssvAwACAgIwdOhQTJkyBQAwYMAA7NmzBw8fPoSDgwNu3rwJT09PXLp0CU2bNsU333yDxYsX448//oC9vT169OiBRYsWoW7dugCAmJgYdO/eHXv37sUHH3yAc+fOYf/+/ejQoQPeeustbN++HSqVSn+8J1m+fDkWLFiAGzduwNvbGx988AFee+01ALpRomvXrgEA1q1bh1GjRmHNmjVP3Gd4eDgePXqErl274vPPP0dBQQGGDh2KRYsWQaFQIDg4GNeuXcOkSZMwadIkANC/OXN8fDymT5+OkydPok6dOnjppZcwd+5c2Nvb62saO3YsLl26hO+//x4DBw7EmjVrnrjdsmXLsHDhQty4cQNOTk4IDAzE1q1bER4ejtjYWMTGxmLx4sUAgJSUFHh5eZnUf8VJClA3btzAu+++i+joaIN3ny7L9OnTMXnyZP3XGRkZ8PT0RK9eveDo6Cit2nJo9/F+qLWGI1A3l4b8PXEcur/uVq2KxpgxocjNfWxugSCiQcQBgxEohUzA6Rm9Kr1uS6NWqxEdHY3Q0FAoFM/O20iUx5m7Z9BtdbcSl9nKbLGq9SqMSRpT6n2g4kbHwa+eX2WWaPF4PunenkUsNgI1tr+rfuI4UPpzkyATsXLXPYMRKEEA+gXUrfS6i64iPK2SpleUV2VMr0hKSsIvv/yCRo0a6dvmzp2Lb7/9Fl9//TV8fHwQFxeHV199Fa6urggKCkJQUBBiYmIwZcoUiKKIn3/+Gc7OzoiPj0fv3r0RGxsLDw8PNG3aFIDu52D27Nlo3rw5UlNTMXnyZISHhxv9kf7+++9jwYIFaNy4MWrVqoWpU6ciNjYWO3fuRN26dfGf//wHCQkJZV5a27FjB959910sWrQIISEh2L17N0aPHo0GDRqge/fuOHHiBEaOHAlHR0csXrwYtram31vs8OHDcHd3x+HDh3H58mUMGTIEbdu2xbhx47B9+3b4+fnhX//6F8aNG6ffJjk5Gb1798Ynn3yCVatW4d69e5gwYQImTJiA1atX69dbsGABZsyYgZkzZ5q03cmTJ/HOO+/gm2++wQsvvIAHDx7g559/BgAsXrwYFy9eROvWrfHxxx8DAFxdXU1+nMVJClCnTp1Camoq2rdvr2/TaDSIi4vDkiVLkJ+fD7nc8AK+UqmE8vGf8r8oFIoqeeL0rKPC77cfu++OTAQ87utefVdsAnluruLvJymZFrZN76JAJgKPTeZsUtexxj7hA1X3fbNkMrms1HBUJFebW+o6MrmsxvdhkZp8PqnsbZCR8/flOqUt8FyAFifilUYTyB9/bpLJRXQMzIfS1vDp29HOqkr6sqKOcTk1q0L2U+RS6tPfX2337t1wcHBAYWEh8vPzIZPJsGTJEgC66SiffvopDhw4gM6dOwMAGjdujPj4eERFRSEoKAjBwcFYuXIlNBoNkpKSYG1tjSFDhiAmJga9e/dGTEwMgoKC9McbM2aM/v+NGzfGl19+iQ4dOiArKwsODg76ZR9//DFCQ0MB6OYgr1y5Et9++y169uwJAFi7di0aNGhQ5mNbsGABwsPDMX78eADA5MmT8euvv2LBggXo3r07XF1doVQqYWtrqx+FM1WtWrWwZMkSyOVytGjRAv369cPBgwcxbtw4uLi4QC6XQ6VSGex37ty5GDFihH4+ko+PD7788ksEBQVh+fLl+kGaHj164N///rd+u9dff73M7a5fvw57e3v84x//gEqlQqNGjdCuXTsAgJOTE6ytrWFnZyf5MZZE0iTynj174ty5c0hMTNR/BAQEYMSIEUhMTDQKT5ago5cL5MVehefYMQXQPuGtAbQCHDukGDTJZQI6eFn2pHkiqh7qqBQo/iz0z2E50GrK3k6rAfoPNbyMJgCorao+QVSrFaHWVMzoUxG1RoT2KUe0unfvjsTERBw7dgyjRo3C6NGjMWjQIADA5cuXkZOTg9DQUDg4OOg/1q1bh+TkZABAYGAgMjMzcfr0acTGxupDVUxMDAAgNjYWwcHB+uOdOnUK/fv3R8OGDaFSqfTh6vr16wZ1BQT8PRclOTkZBQUF6NSpk77NxcUFzZs3L/Ox/f777+jSpYtBW5cuXfD7779L66QStGrVyuD3v7u7O1JTU8vc5syZM1izZo1BX4aFhUGr1SIl5e/fvY8/dlO2Cw0NRaNGjdC4cWO89tprWL9+fYVddi5O0giUSqVC69atDdrs7e1Ru3Zto3ZLMTjAE2uPXjNos2nwEC69knS3Mij+ajyZFtAKcOmVBJsGhkPCGq2IwQGelV0yEdUAjera4spdw1HKln5qvDE1E1HzVUavxpPJRWg1wBtTM9HSz3Ait/jX/qoLmUyAQi5UaIhSyIWnfs88e3t7/eW1VatWwc/PDytXrsTYsWORlaUbMduzZw88PAzf1qvoKouzszP8/PwQExODo0ePIjQ0FN26dcOQIUNw8eJFXLp0SR+SsrOzERYWhrCwMKxfvx6urq64fv06wsLCUFBQYFSXJSs+KikIArRabSlr62RlZeGNN97AO++8Y7SsYcO/78NY/LE/aTtra2skJCQgJiYG+/fvx4wZM/DRRx/hxIkTFX5rhup9738TtPZwQkdvF5y69tDgJm2qdtehcM3U3argZm1doyDCtuldOHZIMQpPcpkA/0a1+B5MRFQhnO0VqK1S4EGxm2mGDcxFwyaF2LXJDmdP6C4SCDLdZbv+Q3OMwpMAwEWlgLN99RmBAoCmdR0Mp1c8JZ+6qgrbFwDIZDL85z//weTJkzF8+HD4+vpCqVTi+vXrBpfhigsKCsLhw4dx/PhxzJkzBy4uLmjZsiXmzJkDd3d3NGumex/NCxcu4P79+4iMjISnp+4P85MnTz6xriZNmkChUODYsWP6oPHw4UNcvHixzLpatmyJI0eOYNSoUfq2I0eOwNfX16T+eBrW1tbQaAyHVtu3b4/ffvtNH1hNZcp2VlZWCAkJQUhICGbOnAlnZ2ccOnQIAwcOLLGW8nrqAFU0NGnJ5g1qg14L46Apdrs2mwYPYdPgIaz/upzXIOKAbs5TCeSCgHmDLPumoURUvbRv4oiDZ+4b3Q+qpZ8aLf3SkZ9bCGRAN2HctuSna0HQ7ae66ejlgot3s0y++3hZKmt6xeDBgzF16lQsXboUU6ZMwZQpUzBp0iRotVp07doV6enpOHLkCBwdHfXBJDg4GF999RVcXV3RokULfduSJUswePBg/b6LRku++uorvPnmm0hKSsLs2bOfWJODgwPGjh2LqVOnonbt2qhbty7++9//QiYre0bO1KlT8corr6Bdu3YICQnBrl27sH37dhw4cOApesg0Xl5eiIuLw9ChQ6FUKlGnTh289957eP755zFhwgS8/vrrsLe3x2+//Ybo6Gj9vLOSPGm73bt348qVK+jWrRtq1aqFvXv3QqvV6i9xenl54dixY7h69SocHBzg4uLyxL4rTY14LzyvOvaYP7iN0XyDIkWvsnv81XYGywHMH8w3riQdlfXT/aX7tNvTs8PBxqrM8FP0+psSXoej176JY7V8I+HBAZ4VEp6AypteYWVlhQkTJmDevHnIzs7G7Nmz8eGHH2Lu3Llo2bIlevfujT179sDb+++bLgcGBkKr1RqMBgUHB0Oj0RjMf3J1dcWaNWuwZcsW+Pr6IjIyEgsWLDCprvnz5yMwMBD9+/dHSEgIunbtCn9//zK3GTBgABYvXowFCxagVatWiIqKwurVqw1qqiwff/wxrl69iiZNmuhf9damTRvExsbi4sWLCAwMRLt27TBjxgzUr1+/zH09aTtnZ2ds374dPXr0QMuWLfH1119j48aNaNWqFQBgypQpkMvl8PX11V82LS9BFJ/yNrASZWRkwMnJCenp6VVyG4PH7Uy8halbdHe+ffwHVykXMa+jBtOOy5H/2Ktf5DIBckHA/MFt8GJbj5J2WWOo1Wrs3bsXffv2rbGvmnrcpfuXkFlgfPlBq9Hi1qlb8PD3gExu/PeJyloFn9qWeZO6qsTzydCNtFwkJOveWNjgCVlbCNm9k9C6BgCyv0OSgL9HnjzrVO3cp7Kew/Py8pCSkgJvb2+TbnXzStRRo+kVUhVNr/jujc7l3gfR40w9j6vfny1P4cW2HvBr4Ixp287ieMoDyGVCiT+4Re0BjWrhs0EceSJjpYUgtVqNW7gFv3p+DAZkMs86tqjloEBCcgbuZ6ohACW+P1xRu4tKUW1Hnh5X2vQKKTi9gsylev/0lYNXHXt890ZnJN1Kx5aTN3Di6kNcT9PdGE4hE9CkriM6eNXC4ABPThgnoirjYGOFbq1c8ChbjWupubifqUZGtu4+UYKgu89TbZUCjeraVrsJ46Upml4xcVNiuSIUp1eQOdW4AFWktYeTPiAVXU44PaMXRw2IyKyc7RVw9tY9D+mem3R3GH9Wn5uKpkeUNL2iNJxeQZagRkwiJyIiy/ViWw/sn9QN/o10r6QrfvPjIkXtAY1qYf+kbgxPZFY1dgSKiIgsR0nTKy6lZkKtEaGQC/Cpq+L0CrIoDFBERGQxHp9eAeje9uVp7zBOVBl4CY+IiCwWwxNZKgYoIiIiIokYoIiIiIgkYoAiIiKLlJsL3L2r+0xkaRigiIjIosTHAwMHAg4OgJub7vPAgcCRI5V73Dt37uDtt99G48aNoVQq4enpif79++PgwYOVe2CqlhigiIjIYixfDnTrBuzaBWj/en93rVb3dWAg8PXXlXPcq1evwt/fH4cOHcL8+fNx7tw5/PTTT+jevTsiIiIq56BUrTFAERGRRYiPByIiAFEECgsNlxUW6trHj6+ckajx48dDEAQcP34cgwYNQrNmzdCqVStMnjwZv/76K65evQpBEJCYmKjf5tGjRxAEATExMfq2pKQk9OnTBw4ODqhXrx5ee+01pKWlVXzBZHYMUEREZBG++AKQy8teRy4HFi6s2OM+ePAAP/30EyIiImBvb/y+es7Ozibt59GjR+jRowfatWuHkydP4qeffsLdu3fxyiuvVGzBZBF4I00iIjK73Fxg586/L9uVprAQ2LFDt76tbcUc+/LlyxBFES1atHiq/SxZsgTt2rXDp59+qm9btWoVPD09cfHiRTRr1uxpSyULwgBFRERml5Hx5PBURKvVrV9RAUoUn/wGxqY4c+YMDh8+DAcHB6NlycnJDFDPGAYoIiIyO0dHQCYzLUTJZLr1K4qPjw8EQcCFCxfKOKZuxsvjYUutVhusk5WVhf79++Ozzz4z2t7d3b2CqiVLwTlQRERkdra2wIsvAlZP+LPeygp46aWKG30CABcXF4SFhWHp0qXIzs42Wv7o0SO4uroCAG7fvq1vf3xCOQC0b98e58+fh5eXF5o2bWrwUdLcKqreGKCIiMgiTJ4MaDRlr6PRAJMmVfyxly5dCo1Gg44dO2Lbtm24dOkSfv/9d3z55Zfo3LkzbG1t8fzzzyMyMhK///47YmNj8cEHHxjsIyIiAg8ePMCwYcNw4sQJJCcnY9++fRg9ejQ0T3pgVO0wQBERkUXo2hVYtgwQBOORKCsrXfuyZUCXLhV/7MaNGyMhIQHdu3fHv//9b7Ru3RqhoaE4ePAgli9fDkA3IbywsBD+/v6YOHEiPvnkE4N91K9fH0eOHIFGo0GvXr3w3HPPYeLEiXB2dtZfAqRnB+dAERGRxXjzTeC553S3KtixQzcnSibTXd6bNKlywlMRd3d3LFmyBEuWLClxecuWLfHLL78YtBWfgO7j44Pt27dXWo1kORigiIjIonTpovvIzdW92s7RsWLnPBFVBAYoIiKySLa2DE5kuXhRloiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiy5SbC9y9q/tMZQoODsbEiRPNXUaNwgBFRESWJT4eGDgQcHAA3Nx0nwcOBI4cqbRDhoeHQxAECIIAhUIBb29vTJs2DXl5eZV2zKp0+/ZtDB8+HM2aNYNMJmPYqgAMUEREZDmWLwe6dQN27dK9ER6g+7xrFxAYCHz9daUdunfv3rh9+zauXLmChQsXIioqCjNnzqy040kliiIKCwvLtW1+fj5cXV3xwQcfwM/Pr4Irq5kYoIiIyDLExwMREYAoAsWDQmGhrn38+EobiVIqlXBzc4OnpycGDBiAkJAQREdH65drtVrMnTsX3t7esLW1hZ+fH7Zu3apfHhAQgAULFui/HjBgABQKBbKysgAAN2/ehCAIuHz5MgDgm2++QUBAAFQqFdzc3DB8+HCkpqbqt4+JiYEgCPjxxx/h7+8PpVKJ+Ph4ZGdnY+TIkXBwcIC7uzs+//zzJz42Ly8vLF68GCNHjoSTk9NT9xUxQBERkaX44gtALi97HbkcWLiw0ktJSkrCL7/8Amtra33b3LlzsW7dOnz99dc4f/48Jk2ahFdffRWxsbEAgKCgIMTExADQjRb9/PPPcHZ2Rnx8PAAgNjYWHh4eaNq0KQBArVZj9uzZOHPmDL7//ntcvXoV4eHhRrW8//77iIyMxO+//442bdpg6tSpiI2Nxc6dO7F//37ExMQgISGhcjuEjPDNhImIyPxyc4GdO/++bFeawkJgxw7d+hX8TsO7d++Gg4MDCgsLkZ+fD5lMhiVLlgDQXQL79NNPceDAAXTu3BkA0LhxY8THxyMqKgpBQUEIDg7GypUrodFokJSUBGtrawwZMgQxMTHo3bs3YmJiEBQUpD/emDFj9P9v3LgxvvzyS3To0AFZWVlwcHDQL/v4448RGhoKAMjKysLKlSvx7bffomfPngCAtWvXokGDBhXaF/RkDFBERGR+GRlPDk9FtFrd+hUcoLp3747ly5cjOzsbCxcuhJWVFQYNGgQAuHz5MnJycvRBpkhBQQHatWsHAAgMDERmZiZOnz6NX375RR+qIiMjAehGoKZOnarf9tSpU/joo49w5swZPHz4ENq/Hv/169fh6+urXy8gIED//+TkZBQUFKBTp076NhcXFzRv3rxC+4KejAGKiIjMz9ERkMlMC1EymW79CmZvb6+/vLZq1Sr4+flh5cqVGDt2rH4e0549e+Dh4WGwnVKpBAA4OzvDz88PMTExOHr0KEJDQ9GtWzcMGTIEFy9exKVLl/QjUNnZ2QgLC0NYWBjWr18PV1dXXL9+HWFhYSgoKDCqiywP50AREZH52doCL74IWD3h73orK+Cllyp89Kk4mUyG//znP/jggw+Qm5sLX19fKJVKXL9+HU2bNjX48PT01G8XFBSEw4cPIy4uDsHBwXBxcUHLli0xZ84cuLu7o1mzZgCACxcu4P79+4iMjERgYCBatGhhMIG8NE2aNIFCocCxY8f0bQ8fPsTFixcrvhOoTAxQRERkGSZPBjSastfRaIBJk6qknMGDB0Mul2Pp0qVQqVSYMmUKJk2ahLVr1yI5ORkJCQn46quvsHbtWv02wcHB2LdvH6ysrNCiRQt92/r16w3mPzVs2BDW1tb46quvcOXKFfzwww+YPXv2E2tycHDA2LFjMXXqVBw6dAhJSUkIDw+HTPbkX+eJiYlITExEVlYW7t27h8TERPz222/l6BkCGKCIiMhSdO0KLFsGCILxSJSVla592TKgS5cqKcfKygoTJkzAvHnzkJ2djdmzZ+PDDz/E3Llz0bJlS/Tu3Rt79uyBt7e3fpvAwEBotVqDsBQcHAyNRoPg4GB9m6urK9asWYMtW7bA19cXkZGRBrdAKMv8+fMRGBiI/v37IyQkBF27doW/v/8Tt2vXrh3atWuHU6dOYcOGDWjXrh369u1reoeQAUEURbEqD5iRkQEnJyekp6fDsRKuYZeHWq3G3r170bdvXygUCnOXY5HYR6ZhP5mG/WQaS+ynsp7D8/LykJKSAm9vb9jY2JT/IEeO6G5VsGOHbk6UTKa7bDdpUpWFJ6q5TD2POYmciIgsS5cuuo/cXN2r7RwdK33OE5FUDFBERGSZbG0ZnMhicQ4UERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFRESWKTcXuHtX95nKFBwcjIkTJ5q7jBqFAYqIiCxLfDwwcCDg4AC4uek+Dxyoe4uXShIeHg5BECAIAhQKBby9vTFt2jTk5eVV2jGr0vbt2xEaGgpXV1c4Ojqic+fO2Ldvn7nLqtYYoIiIyHIsXw506wbs2qV7HzxA93nXLiAwEPj660o7dO/evXH79m1cuXIFCxcuRFRUFGbOnFlpx5NKFEUUFhaWa9u4uDiEhoZi7969OHXqFLp3747+/fvj9OnTFVxlzcEARUREliE+HoiIAEQRKB4UCgt17ePHV9pIlFKphJubGzw9PTFgwACEhIQgOjpav1yr1WLu3Lnw9vaGra0t/Pz8sHXrVv3ygIAALFiwQP/1gAEDoFAokJWVBQC4efMmBEHA5cuXAQDffPMNAgICoFKp4ObmhuHDhyM1NVW/fUxMDARBwI8//gh/f38olUrEx8cjOzsbI0eOhIODA9zd3fH5558/8bEtWrQI06ZNQ4cOHeDj44NPP/0UPj4+2LVr11P3W03FAEVERJbhiy8AubzsdeRyYOHCSi8lKSkJv/zyC6ytrfVtc+fOxbp16/D111/j/PnzmDRpEl599VXExsYCAIKCghATEwNAN1r0888/w9nZGfHx8QCA2NhYeHh4oGnTpgAAtVqN2bNn48yZM/j+++9x9epVhIeHG9Xy/vvvIzIyEr///jvatGmDqVOnIjY2Fjt37sT+/fsRExODhIQESY9Pq9UiMzMTLi4u5egdAvhmwkREZAlyc4GdO/++bFeawkJgxw7d+hX8RsO7d++Gg4MDCgsLkZ+fD5lMhiVLlgAA8vPz8emnn+LAgQPo3LkzAKBx48aIj49HVFQUgoKCEBwcjJUrV0Kj0SApKQnW1tYYMmQIYmJi0Lt3b8TExCAoKEh/vDFjxuj/37hxY3z55Zfo0KEDsrKy4ODgoF/28ccfIzQ0FACQlZWFlStX4ttvv0XPnj0BAGvXrkWDBg0kPdYFCxYgKysLr7zySvk6ixigiIjIAmRkPDk8FdFqdetXcIDq3r07li9fjuzsbCxcuBBWVlYYNGgQAODy5cvIycnRB5kiBQUFaNeuHQAgMDAQmZmZOH36NH755Rd9qIqMjASgG4GaOnWqfttTp07ho48+wpkzZ/Dw4UNo/3r8169fh6+vr369gIAA/f+Tk5NRUFCATp066dtcXFzQvHlzkx/nhg0bMGvWLOzcuRN169Y1eTsyxABFRETm5+gIyGSmhSiZTLd+BbO3t9dfXlu1ahX8/PywcuVKjB07Vj+Pac+ePfDw8DDYTqlUAgCcnZ3h5+eHmJgYHD16FKGhoejWrRuGDBmCixcv4tKlS/oRqOzsbISFhSEsLAzr16+Hq6srrl+/jrCwMBQUFBjVVVE2bdqE119/HVu2bEFISEiF7bcm4hwoIiIyP1tb4MUXAasn/F1vZQW89FKFjz4VJ5PJ8J///AcffPABcnNz4evrC6VSievXr6Np06YGH56envrtgoKCcPjwYcTFxSE4OBguLi5o2bIl5syZA3d3dzRr1gwAcOHCBdy/fx+RkZEIDAxEixYtDCaQl6ZJkyZQKBQ4duyYvu3hw4e4ePHiE7fduHEjRo8ejY0bN6Jfv37l6BV6HAMUERFZhsmTAY2m7HU0GmDSpCopZ/DgwZDL5Vi6dClUKhWmTJmCSZMmYe3atUhOTkZCQgK++uorrF27Vr9NcHAw9u3bBysrK7Ro0ULftn79eoP5Tw0bNoS1tTW++uorXLlyBT/88ANmz579xJocHBwwduxYTJ06FYcOHUJSUhLCw8Mhk5X963zDhg0YOXIkPv/8c3Tq1Al37tzBnTt3kJ6eXs7eIUkBavny5WjTpg0cHR31N+L68ccfK6s2IiKqSbp2BZYtAwTBeCTKykrXvmwZ0KVLlZRjZWWFCRMmYN68ecjOzsbs2bPx4YcfYu7cuWjZsiV69+6NPXv2wNvbW79NYGAgtFqtQVgKDg6GRqNBcHCwvs3V1RVr1qzBli1b4Ovri8jISINbIJRl/vz5CAwMRP/+/RESEoKuXbvC39+/zG1WrFiBwsJCREREwN3dXf/x7rvvSusU0hNEURRNXXnXrl2Qy+Xw8fGBKIpYu3Yt5s+fj9OnT6NVq1Ym7SMjIwNOTk5IT0+HYyVcwy4PtVqNvXv3om/fvlAoFOYuxyKxj0zDfjIN+8k0lthPZT2H5+XlISUlBd7e3rCxsSn/QY4c0d2qYMcO3ZwomUx32W7SpCoLT1RzmXoeS5pE3r9/f4Ov58yZg+XLl+PXX381OUARERGVqUsX3Uduru7Vdo6OlT7niUiqcr8KT6PRYMuWLcjOztbfE6Mk+fn5yM/P13+dkZEBQPeXlVqtLu/hK1RRHZZSjyViH5mG/WQa9pNpLLGfqrQWW1sGJ7JYkgPUuXPn0LlzZ+Tl5cHBwQE7duwwuF9FcXPnzsWsWbOM2vfv3w87Ozuph69Uj9+yn0rGPjIN+8k07CfTWFI/5eTkmLsEIosgaQ4UoLtp2PXr15Geno6tW7fif//7H2JjY0sNUSWNQHl6eiItLc2i5kBFR0cjNDTUYuYZWBr2kWnYT6ZhP5nGEvspIyMDderUqdw5UERmVClzoADA2tpaf6Mxf39/nDhxAosXL0ZUVFSJ6yuVSv1Nxh6nUCgs5gmhiCXWZGnYR6ZhP5mG/WQaS+onU+qQ+Hc5kUUx9fx96vtAabVagxEmIiKqmYrCFS/zUXVWdP4+6Y8FSSNQ06dPR58+fdCwYUNkZmZiw4YNiImJwb59+8pfKRERPRPkcjmcnZ31d9S2s7ODIAhmrorINKIoIicnB6mpqXB2doZcLi9zfUkBKjU1FSNHjsTt27fh5OSENm3aYN++fUZvrkhERDWTm5sbAJj0tiRElsjZ2Vl/HpdFUoBauXJluQsiIqJnnyAIcHd3R926dS3q9gtEplAoFE8ceSpS7vtAERERlUYul5v8i4ioOuKbCRMRERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJJGkADV37lx06NABKpUKdevWxYABA/DHH39UVm1EREREFklSgIqNjUVERAR+/fVXREdHQ61Wo1evXsjOzq6s+oiIiIgsjpWUlX/66SeDr9esWYO6devi1KlT6NatW4nb5OfnIz8/X/91RkYGAECtVkOtVkutt1IU1WEp9Vgi9pFp2E+mYT+ZxhL7yZJqITInQRRFsbwbX758GT4+Pjh37hxat25d4jofffQRZs2aZdS+YcMG2NnZlffQRERkBjk5ORg+fDjS09Ph6Oho7nKIzKbcAUqr1eKf//wnHj16hPj4+FLXK2kEytPTE2lpaRbzw6dWqxEdHY3Q0FAoFApzl2OR2EemYT+Zhv1kGkvsp4yMDNSpU4cBimo8SZfwHhcREYGkpKQywxMAKJVKKJVKo3aFQmExTwhFLLEmS8M+Mg37yTTsJ9NYUj9ZSh1E5lauADVhwgTs3r0bcXFxaNCgQUXXRERERGTRJAUoURTx9ttvY8eOHYiJiYG3t3dl1UVERERksSQFqIiICGzYsAE7d+6ESqXCnTt3AABOTk6wtbWtlAKJiIiILI2k+0AtX74c6enpCA4Ohru7u/5j8+bNlVUfERERkcWRfAmPiIiIqKbje+ERERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUAR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SyT5El5wcDBEUTT6MCU8mYtXHXvMH9zGaL5BkaJXRj3+CqnHCQDmD27zTP/CI9PwXDKNg40V2jcp/Zdr0avHHn8VWXHtmzg+0+EJYD8RVWc15qfuxbYeAICpW3RvBlt8LktJ5DIBckHA/MFt9NsT8VwyjWcd3ZychGTdG+aaMtQtQPdy/PZNHPXbP+vYT0TVU40JUIDuF59fA2dM23YWx1MeQC4TSvzlV9Qe0KgWPhv07I8WkHQ8l0zjWccWtRwUSEjOwP1MNQSUHBCK2l1Uiho5osJ+Iqp+atxPn1cde3z3Rmck3UrHlpM3cOLqQ1xP0729jEImoEldR3TwqoXBAZ7P7CRfqhg8l0zjYGOFbq1c8ChbjWupubifqUZGtu7+R4Kgu39RbZUCjera1uiJ0OwnouqlxgWoIq09nPS/1IomSJ+e0atGT5Cm8uG5ZBpnewWcvXV9ousn3Z2z2U+G2E9E1cMzfx8oIiIioorGAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJFG5AtTSpUvh5eUFGxsbdOrUCcePH6/ouoiIiIgsluQAtXnzZkyePBkzZ85EQkIC/Pz8EBYWhtTU1Mqoj4iIiMjiSA5QX3zxBcaNG4fRo0fD19cXX3/9Nezs7LBq1arKqI+IiIjI4lhJWbmgoACnTp3C9OnT9W0ymQwh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", "text/plain": [ "
" ] @@ -293,16 +260,23 @@ "name": "stdout", "output_type": "stream", "text": [ - "0\n", - "0\n", - "--\n", - "(20, 1, 1)\n", - "(1, 2, 25)\n" + "Time t=4\n", + "[Array([[21]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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X9370RKPp0qtxdaWwYkslqRTeABw9uxZdOrUCbm5uXBwcEBUVBT69OlT4vozZ87ErFmzjNqjoqJgZ2cnvWIiIjKb7OxsDBs2rGJP4RGZkanHseQAlZ+fj+vXryMtLQ1btmzBN998g9jYWIOLfj2uuBEoDw8PpKamWtQcqOjoaISEhFjMPANLwz4yDfvpH6fvnkbX1V2LXWYrs8WqVqsw+tzoEudAxY2Kg28d34os0eJZ4vGUnp6OWrVqMUDRM6tC5kABgLW1tf5CY35+fjh+/DgWL16MyMjIYtdXKpX6i4w9TqFQWMwTQiFLrMnSsI9Mw34CZHJZieGoUI42p8R1ZHJZte/DQpZ0PJlSh8S/y4ksiqnH71NfB0qr1RqMMBERUfVUGK6ys7PNXAlR2RUev0/6Y0HSCNS0adPQu3dvNGjQABkZGYiKikJMTAz27t1b9kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRHZ2dlISUmBs7Mz5HJ5qetLClApKSkYMWIEbt++DScnJ7Ru3Rp79+41+nBFIiKqntzc3ADApI8lIbJEzs7O+uO4NJIC1MqVK8tcEBERPfsEQYC7uztq165tUZdfIDKFQqF44shToTJfB4qIqDQqa5VZtyfzksvlJr8QEVVFDFBEVCG8a3rj4viLyMjPMFqm1Whx6+QtxI2Kg0xu/F4WlbUK3jW9K6NMIqIyYYAiogpTUghSq9W4hVvwreNrMW/PJyKS4qkvY0BERERU3TBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEkgLU3Llz0b59e6hUKtSuXRv9+/fHn3/+WVG1EREREVkkSQEqNjYW4eHh+O233xAdHQ21Wo2ePXsiKyurouojIiIisjhWUlb++eefDW6vWbMGtWvXxsmTJ9G1a9dit8nLy0NeXp7+dnp6OgBArVZDrVZLrbdCFNZhKfVYIvaRadhPpmE/mcYS+8mSaiEyJ0EURbGsG1++fBne3t44e/YsWrVqVew6M2fOxKxZs4zao6KiYGdnV9ZdExGRGWRnZ2PYsGFIS0uDo6OjucshMpsyByitVot///vfePToEeLj40tcr7gRKA8PD6SmplrML59arUZ0dDRCQkKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LT01GrVi0GKKr2JJ3Ce1x4eDjOnTtXangCAKVSCaVSadSuUCgs5gmhkCXWZGnYR6ZhP5mG/WQaS+onS6mDyNzKFKDGjx+PXbt2IS4uDvXr1y/vmoiIiIgsmqQAJYoi3nnnHWzfvh0xMTHw8vKqqLqIiIiILJakABUeHo6oqCjs2LEDKpUKd+7cAQA4OTnB1ta2QgokIiIisjSSrgO1fPlypKWlISgoCO7u7vqvTZs2VVR9RERERBZH8ik8IiIiouqOn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIx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vCr2kzmew4kskeRTeEFBQRBF0ejLlPBkLp617DF/UGuj+QaFCt8Z9fg7pB4nAJg/qPUz/YJHpuGxZBoHGyu0a1zyi2vhu8cefxdZUe0aOz7T4QlgPxFVZdXmt+7FNvUAAFM26z4MtuhcluLIZQLkgoD5g1rrtyfisWQaj1q6OTkJSboPzDVlqFuA7u347Ro76rd/1rGfiKqmahOgAN0Ln299Z0zdegbHkh9ALhOKffErbPdvWAOfDXz2RwtIOh5LpvGoZYsaDgokJKXjfoYaAooPCIXtLipFtRxRYT8RVT3V7rfPs5Y9vn+zE87dSsPmEzdw/OpDXE/VfbyMQiagcW1HtPesgUH+Hs/sJF8qHzyWTONgY4WuLV3wKEuNayk5uJ+hRnqW7vpHgqC7flFNlQINa9tW64nQ7CeiqqXaBahCreo56V/UCidIn5res1pPkKay4bFkGmd7BZy9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1NKlS+Hp6QkbGxt07NgRx44dK++6iIiIiCyW5AC1adMmTJo0CTNmzEBCQgJ8fX0RGhqKlJSUiqiPiIiIyOJIDlBffPEFxo4di1GjRsHHxwdff/017OzssGrVqoqoj4iIiMjiWElZOT8/HydPnsS0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", + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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C09Uc5n6OJY0ibx///4Gt+fMmYPly5fj119/NTlAERERlalLF91Xbq7u3XaOjpU+54lIqnK/C0+j0WDLli3Izs7WXxOjJPn5+cjPz9ffzsjIAKD7y0qtVpf38BWqqA5LqccSsY9Mw34yDfvJNJbYT1Vai60tgxNZLMkB6ty5c+jcuTPy8vLg4OCAHTt2GFyvori5c+di1qxZRu379++HnZ2d1MNXqscv2U8lYx+Zhv1kGvaTaSypn3JycsxdApFFkDQHCtBdNOz69etIT0/H1q1b8b///Q+xsbGlhqiSRqA8PT2RlpZmUXOgoqOjERoaajHzDCwN+8g07CfTsJ9MY4n9lJGRgTp16lTuHCgiM6qUOVAAYG1trb/QmL+/P06cOIHFixcjKiqqxPWVSqX+ImOPUygUFvOEUMQSa7I07CPTsJ9Mw34yjSX1kyl1SPy7nMiimPr4ferrQGm1WoMRJiIiqpmKwhVP81F1VvT4fdIfC5JGoKZPn44+ffqgYcOGyMzMxIYNGxATE4N9+/aVv1IiInomyOVyODs766+obWdnB0EQzFwVkWlEUUROTg5SU1Ph7OwMuVxe5vqSAlRqaipGjhyJ27dvw8nJCW3atMG+ffuMPlyRiIhqJnd3dwAw6WNJiCyRs7Oz/nFcFkkBauXKleUuiIiInn2CIMDDwwNubm4WdfkFIlMoFIonjjwVKfd1oIiIiEojl8tNfiEiqo74YcJEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUkkKUDNnTsXHTp0gEqlgpubGwYMGIA//vijsmojIiIiskiSAlRsbCwiIiLw66+/Ijo6Gmq1Gr169UJ2dnZl1UdERERkcaykrPzTTz8Z3F6zZg3c3Nxw6tQpdOvWrcRt8vPzkZ+fr7+dkZEBAFCr1VCr1VLrrRRFdVhKPZaIfWQa9pNp2E+mscR+sqRaiMxJEEVRLO/Gly9fho+PD86dO4fWrVuXuM5HH32EWbNmGbVv2LABdnZ25T00ERGZQU5ODoYPH4709HQ4Ojqauxwisyl3gNJqtfjnP/+JR48eIT4+vtT1ShqB8vT0RFpamsX88qnVakRHRyM0NBQKhcLc5Vgk9pFp2E+mYT+ZxhL7KSMjA3Xq1GGAohpP0im8x0VERCApKanM8AQASqUSSqXSqF2hUFjME0IRS6zJ0rCPTMN+Mg37yTSW1E+WUgeRuZUrQE2YMAG7d+9GXFwcGjRoUNE1EREREVk0SQFKFEW8/fbb2LFjB2JiYuDt7V1ZdRERERFZLEkBKiIiAhs2bMDOnTuhUqlw584dAICTkxNsbW0rpUAiIiIiSyPpOlDLly9Heno6goOD4eHhof/avHlzZdVHREREZHEkn8IjIiIiqun4WXhEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBED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mD59ur5NJpMhJCQER48eLXGb/Px85Ofn629nZGQAANRqNdRqdXlqrnBFdVhKPZaIfWQa9pNp2E+mscR+sqRaiMxJUoBKS0uDRqNB3bp1Ddrr1q2LCxculLjN3LlzMWvWLKP2/fv3w87OTsrhK110dLS5S7B47CPTsJ9Mw34yjSX1U05OjrlLILIIkgJUeUyfPh2TJ0/W387IyICnpyd69eoFR0fHyj68SdRqNaKjoxEaGgqFQmHuciwS+8g07CfTsJ9MY4n9VHQWgaimkxSg6tSpA7lcjrt37xq03717F+7u7iVuo1QqoVQqjdoVCoXFPCEUscSaLA37yDTsJ9Own0xjSf1kKXUQmZukSeTW1tbw9/fHwYMH9W1arRYHDx5E586dK7w4IiIiIksk+RTe5MmTMWrUKAQEBKBjx45YtGgRsrOzMXr06Mqoj4iIiMjiSA5QQ4YMwb179zBjxgzcuXMHbdu2xU8//WQ0sZyIiIjoWVWuSeQTJkzAhAkTKroWIiIiomqBn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkkVVVH1AURQBARkZGVR+6VGq1Gjk5OcjIyIBCoTB3ORaJfWQa9pNp2E+mscR+KnruLnouJ6qpqjxAZWZmAgA8PT2r+tBERFRBMjMz4eTkZO4yiMxGEKv4zwitVos///wTKpUKgiBU5aFLlZGRAU9PT9y4cQOOjo7mLscisY9Mw34yDfvJNJbYT6IoIjMzE/Xq1YNMxlkgVHNV+QiUTCZDgwYNqvqwJnF0dLSYJylLxT4yDfvJNOwn01haP3HkiYiTyImIiIgkY4AiIiIikogBCoBSqcTMmTOhVCrNXYrFYh+Zhv1kGvaTadhPRJaryieRExEREVV3HIEiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSqMYHqKVLl8LLyws2Njbo1KkTjh8/bu6SLE5cXBz69++PevXqQRAEfP/99+YuyeLMnTsXHTp0gEqlgpubGwYMGIA//vjD3GVZnOXLl6NNmzb6K2t37twZP/74o7nLsniRkZEQBAETJ040dylE9JcaHaA2b96MyZMnY+bMmUhISICfnx/CwsKQmppq7tIsSnZ2Nvz8/LB06VJzl2KxYmNjERERgV9//RXR0dFQq9Xo1asXsrOzzV2aRWnQoAEiIyNx6tQpnDx5Ej169MCLL76I8+fPm7s0i3XixAlERUWhTZs25i6FiB5To68D1alTJ3To0AFLliwBoPugY09PT7z99tt4//33zVydZRIEATt27MCAAQPMXYpFu3fvHtzc3BAbG4tu3bqZuxyL5uLigvnz52Ps2LHmLsXiZGVloX379li2bBk++eQTtG3bFosWLTJ3WUSEGjwCVVBQgFOnTiEkJETfJpPJEBISgqNHj5qxMnoWpKenA9CFAyqZRqPBpk2bkJ2djc6dO5u7HIsUERGBfv36GTxPEZFlsDJ3AeaSlpYGjUaDunXrGrTXrVsXFy5cMFNV9CzQarWYOHEiunTpgtatW5u7HItz7tw5dO7cGXl5eXBwcMCOHTvg6+tr7rIszqZNm5CQkIATJ06YuxQiKkGNDVBElSUiIgJJSUmIj483dykWqXnz5khMTER6ejq2bt2KUaNGITY2liHqMTdu3MC7776L6Oho2NjYmLscIipBjQ1QderUgVwux927dw3a7969C3d3dzNVRdXdhAkTsHv3bsTFxaFBgwbmLsciWVtbo2nTpgAAf39/nDhxAosXL0ZUVJSZK7Mcp06dQmpqKtq3b69v02g0iIuLw5IlS5Cfnw+5XG7GComoxs6Bsra2hr+/Pw4ePKhv02q1OHjwIOdjkGSiKGLChAnYsWMHDh06BG9vb3OXVG1otVrk5+ebuwyL0rNnT5w7dw6JiYn6r4CAAIwYMQKJiYkMT0QWoMaOQAHA5MmTMWrUKAQEBKBjx45YtGgRsrOzMXr0aHOXZlGysrJw+fJl/e2UlBQkJibCxcUFDRs2NGNlliMiIgIbNmzAzp07oVKpcOfOHQCAk5MTbG1tzVyd5Zg+fTr69OmDhg0bIjMzExs2bEBMTAz27dtn7tIsikqlMpo/Z29vj9q1a3NeHZGFqNEBasiQIbh37x5mzJiBO3fuoG3btvjpp5+MJpbXdCdPnkT37t31tydPngwAGDVqFNasWWOmqizL8uXLAQDBwcEG7atXr0Z4eHjVF2ShUlNTMXLkSNy+fRtOTk5o06YN9u3bh9DQUHOXRkQkSY2+DhQRERFRedTYOVBERERE5cUARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUT/D5subC83CEl8AAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -314,16 +288,23 @@ "name": "stdout", "output_type": "stream", "text": [ - "0\n", - "0\n", - "--\n", - "(20, 1, 1)\n", - "(1, 2, 25)\n" + "Time t=5\n", + "[Array([[20]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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X9370RKPp0qtxdaWwYkslqRTeABw9uxZdOrUCbm5uXBwcEBUVBT69OlT4vozZ87ErFmzjNqjoqJgZ2cnvWIiIjKb7OxsDBs2rGJP4RGZkanHseQAlZ+fj+vXryMtLQ1btmzBN998g9jYWIOLfj2uuBEoDw8PpKamWtQcqOjoaISEhFjMPANLwz4yDfvpH6fvnkbX1V2LXWYrs8WqVqsw+tzoEudAxY2Kg28d34os0eJZ4vGUnp6OWrVqMUDRM6tC5kABgLW1tf5CY35+fjh+/DgWL16MyMjIYtdXKpX6i4w9TqFQWMwTQiFLrMnSsI9Mw34CZHJZieGoUI42p8R1ZHJZte/DQpZ0PJlSh8S/y4ksiqnH71NfB0qr1RqMMBERUfVUGK6ys7PNXAlR2RUev0/6Y0HSCNS0adPQu3dvNGjQABkZGYiKikJMTAz27t1b9kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRHZ2dlISUmBs7Mz5HJ5qetLClApKSkYMWIEbt++DScnJ7Ru3Rp79+41+nBFIiKqntzc3ADApI8lIbJEzs7O+uO4NJIC1MqVK8tcEBERPfsEQYC7uztq165tUZdfIDKFQqF44shToTJfB4qIqDQqa5VZtyfzksvlJr8QEVVFDFBEVCG8a3rj4viLyMjPMFqm1Whx6+QtxI2Kg0xu/F4WlbUK3jW9K6NMIqIyYYAiogpTUghSq9W4hVvwreNrMW/PJyKS4qkvY0BERERU3TBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEkgLU3Llz0b59e6hUKtSuXRv9+/fHn3/+WVG1EREREVkkSQEqNjYW4eHh+O233xAdHQ21Wo2ePXsiKyurouojIiIisjhWUlb++eefDW6vWbMGtWvXxsmTJ9G1a9dit8nLy0NeXp7+dnp6OgBArVZDrVZLrbdCFNZhKfVYIvaRadhPpmE/mcYS+8mSaiEyJ0EURbGsG1++fBne3t44e/YsWrVqVew6M2fOxKxZs4zao6KiYGdnV9ZdExGRGWRnZ2PYsGFIS0uDo6OjucshMpsyByitVot///vfePToEeLj40tcr7gRKA8PD6SmplrML59arUZ0dDRCQkKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LT01GrVi0GKKr2JJ3Ce1x4eDjOnTtXangCAKVSCaVSadSuUCgs5gmhkCXWZGnYR6ZhP5mG/WQaS+onS6mDyNzKFKDGjx+PXbt2IS4uDvXr1y/vmoiIiIgsmqQAJYoi3nnnHWzfvh0xMTHw8vKqqLqIiIiILJakABUeHo6oqCjs2LEDKpUKd+7cAQA4OTnB1ta2QgokIiIisjSSrgO1fPlypKWlISgoCO7u7vqvTZs2VVR9RERERBZH8ik8IiIiouqOn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERSWRl7gLM5dytNGw+cQPHrj7AjdQMzPEH2n68Dx61VOjg6YJB/h5oVc/J3GVSFcBjyTSPstS4lpKD1Aw1MrJyIQDYfSIFKnsb1FIp0LC2LZztFeYu0+zYT0RVQ7ULUFdTszB16xkcS34AuUyARitCKRcBAGqtiD9uZ+Di3UysPXINHbxcMG9ga3jWsjdz1WSJeCyZJjO3AAlJ6bifoYYAQITuHwGAKALp2QXIyC7Albs5qKlSoF1jRzjYVLunJvYTURVTrU7h7Ui8hZ4L43Dy2kMAgEYrFrteYfvJaw/Rc2EcdiTeqrQaqWrgsWSaG6k5OHD6Ph5kqAH8HQqKUdj+IEONA6fv40ZqTqXUZynYT0RVT7X582VH4i1M2JhY4hNTcTRaERqImLAxEQDwYpt6FVIbVS08lkxzIzUHJy6nS9pGhG60pXA7j1q2FVCZZWE/EVVN1WIEKjk1C1M2nynxBU+pzjf4XpQIYMrmM7iamlUxBVKVwWPJNJk5utNRJZHl5Rp8L05CUjoycwvKvTZLwn4iqrqqRYB6f+sZaETjlzz/m+fx9bY5OLb0NQDAsaWv4ettc+B383ejdTWiiKlbz1R4rWTZeCyZJuFKOorpJtQ8fRQdPhiN3v18AQC9+/miwwej4XL6mNG6oohSw8WzgP1EVHU98wHq7M00HEt+YDRH5dVTe/D9+vcRnHQM8r+fweSiiOCkY9i8fiqGn9pjsL5GK+JY8gOcu5VWabWTZeGxZJqHmWrcz1AbjdJ5bVuDgLf6wz1+LwStFgAgaLVwj9+Lrm+9CM9taw3WFwHcz1DjUZa6cgqvZOwnoqpNcoCKi4tDv379ULduXQiCgB9++KECyio/W07egJVMMGjzv3keH+9bBhkAK63GYJmVVgMZgNn7lhmNHshlAjafuFHBFZOl4rFkmuv3ciAYdhNqnj4K3/nTIECETGPYTzKNBgJEtJn/gdEIiwDgWsqzOVGa/URUtUkOUFlZWfD19cXSpUsrop5yd+zqAxQUGTF4/dgP0MrkpW6nlckx5vgPBm0arYjjVx+Wd4lURfBYMk1qhtrotFTjDZEQ5aU/3YhyGZpsjDRsg2505VnEfiKq2iS/C693797o3bu3yevn5eUhLy9Pfzs9XXeuXq1WQ62u+F/4G6kZ+mvzALrJvUG3TkNUWqNw72pbW4PvhbrfTISjNg95Cmt92/XU9Eqp29IUPubq+NgL8VgyTUZWrsH78GV5uXA9EQuNtTUKx1RK6ifX4zGQ5WRCq7TRt6VnFbCfLKifnsWfBVFZCKJY3BRGEzcWBGzfvh39+/cvcZ2ZM2di1qxZRu1RUVGws7Mr666JiMgMsrOzMWzYMKSlpcHR0dHc5RCZTYUHqOJGoDw8PJCamlopv3xtP94HtdZw1ODY0tf0k30B3V930atWIWT0aChy/plHoBEEdAj/1mDUQCETcGp6zwqv29Ko1WpER0cjJCQECkX1/BgJHkum2X0ixeDUlCwvF737+eonRAMl95Mok+GnnacNRlYEAejrX7tSaq9MVbWf0tPTUatWLQYoqvYq/EKaSqUSSqXSqF2hUFTKC7FHLRX+uJ2hv50nUyKmni+Ck44ZTfpV5OTon6QKZHIcbNIR6TIl8NhqjWs7VtsAAVTez80S8VgyjcreBunZ/1yXSGvrgHv+gXCP32s0MfrxftLK5bgd0AtaWweDdRztrNhPFtRPz+LPgqgsnvnLGHTwdIG8yDunvunQH7IiL3hFybQarGzf36BNLhPQ3rNGeZdIVQSPJdPUUilQ5M1lSBr6JgSNttj1CwkaLS4PedOwDUBN1bP5gs1+IqranvkANcjfw+i6PSfqt8RHPcdBC93owOMKZHJoAXzUcxxO1vcxWKbRihjk71HBFZOl4rFkmoa1bY2ubXTftyMSp0RAhACt3LCftHI5RAhInBKBB74dDJaJf9/fs4j9RFS1ST6Fl5mZicuXL+tvJycnIzExES4uLmjQoEG5FlceWtVzQgcvF5y89tDgxW992z644OqJMcd/QPebiQB081QONumIle37G73gyWUC/BrWQKt6TpVZPlkQHkumcbZXoKZKgQdFLhJ5dcBIpDdugSYbI+F6PAaAbi7P7YBeuDzkTaNQIABwUSngbP9sjqywn4iqNsmTyGNiYtCtWzej9pEjR2LNmjVP3D49PR1OTk6VOgHxamoWei6MQ34JQ+OO2jzM7izHR4c1unkqxbCWy7BvYld41rKvyFItllqtxp49e9CnT59qPQeCx5JpMnMLcOD0fWhLeHaR5WQC6ecAx1ZGc3n06whAD9+acLB5dj/zvCr2kzmew4kskeRTeEFBQRBF0ejLlPBkLp617DF/UGuj+QaFCt8Z9fg7pB4nAJg/qPUz/YJHpuGxZBoHGyu0a1zyi2vhu8cefxdZUe0aOz7T4QlgPxFVZdXmt+7FNvUAAFM26z4MtuhcluLIZQLkgoD5g1rrtyfisWQaj1q6OTkJSboPzDVlqFuA7u347Ro76rd/1rGfiKqmahOgAN0Ln299Z0zdegbHkh9ALhOKffErbPdvWAOfDXz2RwtIOh5LpvGoZYsaDgokJKXjfoYaAooPCIXtLipFtRxRYT8RVT3V7rfPs5Y9vn+zE87dSsPmEzdw/OpDXE/VfbyMQiagcW1HtPesgUH+Hs/sJF8qHzyWTONgY4WuLV3wKEuNayk5uJ+hRnqW7vpHgqC7flFNlQINa9tW64nQ7CeiqqXaBahCreo56V/UCidIn5res1pPkKay4bFkGmd7BZy9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1NKlS+Hp6QkbGxt07NgRx44dK++6iIiIiCyW5AC1adMmTJo0CTNmzEBCQgJ8fX0RGhqKlJSUiqiPiIiIyOJIDlBffPEFxo4di1GjRsHHxwdff/017OzssGrVqoqoj4iIiMjiWElZOT8/HydPnsS0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", + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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EREREVkkSQEqLi4OkZGR+PXXXxETEwO1Wo3u3bsjMzOzouojIiIisjhWUhbevXu3we2VK1fC3d0dp06dQufOnYtcJzc3F7m5ufrbaWlpAAC1Wg21Wi213gpRUIel1GOJ2EemYT+Zhv1kGkvsJ0uqhcicBFEUxbKufPXqVfj6+uL8+fNo0aJFkct88sknmD59ulH72rVrYWdnV9ZdExGRGWRlZWHIkCFITU2Fo6OjucshMpsyByitVot//vOfePLkCeLj44tdrqgRKC8vL6SkpFjMD59arUZMTAzCwsKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LS0uDq6soARdWepEN4T4uMjMSFCxdKDE8AoFQqoVQqjdoVCoXFvCEUsMSaLA37yDTsJ9Own0xjSf1kKXUQmVuZAtTYsWOxY8cOHDp0CHXr1i3vmoiIiIgsmqQAJYoi3n33XWzduhWxsbHw8fGpqLqIiIiILJakABUZGYm1a9di27ZtUKlUuHfvHgDAyckJtra2FVIgERERkaWRdB6oJUuWIDU1FSEhIfD09NR/bdiwoaLqIyIiIrI4kg/hEREREVV3vBYeERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJJGVuQswlwt3UrHx5C0cv/4It1LSMTMQaP3pXni5qtDO2wUDAr3Qoo6TucukKoCvJdM8yVTjRnI2UtLVSM/MgQBg58lkqOxt4KpSoL67LZztFeYu0+zYT0RVQ7ULUNdTMjF58zkcT3oEuUyARitCKRcBAGqtiN/vpuPy/QysOnoD7XxcMLt/S3i72pu5arJEfC2ZJiMnH6cT0/AwXQ0BgAjdPwIAUQTSsvKRnpWPa/ezUVOlQJuGjnCwqXZvTewnoiqmWh3C25ZwB93nHcKpG48BABqtWORyBe2nbjxG93mHsC3hTqXVSFUDX0umuZWSjf1nH+JRuhrAX6GgCAXtj9LV2H/2IW6lZFdKfZaC/URU9VSbP1+2JdzBuPUJxb4xFUWjFaGBiHHrEwAAL7eqUyG1UdXC15JpbqVk4+TVNEnriNCNthSs5+VqWwGVWRb2E1HVVC1GoJJSMjFp47lif+Ep1XkG3wsTAUzaeA7XUzIrpkCqMvhaMk1Gtu5wVHFkuTkG34tyOjENGTn55V6bJWE/EVVd1SJAfbD5HDSi8a+8wNsX8e2WmTi+6A0AwPFFb+DbLTMRcPs3o2U1oojJm89VeK1k2fhaMs3pa2kooptQ8+wxtPtwJHr28QcA9Ozjj3YfjoTL2eNGy4oiSgwXzwP2E1HV9dwHqPO3U3E86ZHRHJXXz+zCD2s+QGjiccj/egeTiyJCE49j45rJGHpml8HyGq2I40mPcOFOaqXVTpaFryXTPM5Q42G62miUzmfLSgS93Ree8XsgaLUAAEGrhWf8HnR++2V4b1llsLwI4GG6Gk8y1ZVTeCVjPxFVbZID1KFDh9CnTx/Url0bgiDgxx9/rICyys+mU7dgJRMM2gJvX8SnexdDBsBKqzG4z0qrgQzAjL2LjUYP5DIBG0/equCKyVLxtWSamw+yIRh2E2qePQb/OVMgQIRMY9hPMo0GAkS0mvOh0QiLAOBG8vM5UZr9RFS1SQ5QmZmZ8Pf3x6JFiyqinnJ3/Poj5BcaMXjz+I/QyuQlrqeVyTHqxI8GbRqtiBPXH5d3iVRF8LVkmpR0tdFhqYbroiHKS367EeUyNFofbdgG3ejK84j9RFS1Sf4UXs+ePdGzZ0+Tl8/NzUVubq7+dlqa7li9Wq2GWl3xP/C3UtL15+YBdJN7Q+6chai0RsHe1ba2Bt8LdL2dAEdtLnIV1vq2mylplVK3pSl4zNXxsRfga8k06Zk5Bp/Dl+XmwO1kHDTW1igYUymun9xOxEKWnQGt0kbflpaZz36yoH56Hp8LorIQRLGoKYwmriwI2Lp1K/r27VvsMp988gmmT59u1L527VrY2dmVdddERGQGWVlZGDJkCFJTU+Ho6GjucojMpsIDVFEjUF5eXkhJSamUH77Wn+6FWms4anB80Rv6yb6A7q+7mOXLETZyJBTZf88j0AgC2kV+ZzBqoJAJODO1e4XXbWnUajViYmIQFhYGhaJ6XkaCryXT7DyZbHBoSpabg559/PUTooHi+0mUyfDz9rMGIyuCAPQOdK+U2itTVe2ntLQ0uLq6MkBRtVfhJ9JUKpVQKpVG7QqFolJ+EXu5qvD73XT97VyZErF1/BGaeNxo0q8iO1v/JpUvk+NAo/ZIkymBpxZr6O5YbQMEUHnPmyXia8k0KnsbpGX9fV4ira0DHgQGwzN+j9HE6Kf7SSuX425QD2htHQyWcbSzYj9ZUD89j88FUVk896cxaOftAnmhT079r11fyAr9witMptVgWdu+Bm1ymYC23jXKu0SqIvhaMo2rSoFCHy5D4uC3IGi0RS5fQNBocXXQW4ZtAGqqns9f2OwnoqrtuQ9QAwK9jM7bc7Juc3zcfQy00I0OPC1fJocWwMfdx+BUXT+D+zRaEQMCvSq4YrJUfC2Zpr67rdG5jR76t0fCpCiIEKCVG/aTVi6HCAEJk6LwyL+dwX3iX9t7HrGfiKo2yYfwMjIycPXqVf3tpKQkJCQkwMXFBfXq1SvX4spDizpOaOfjglM3Hhv88lvTuhcuuXlj1Ikf0fV2AgDdPJUDjdpjWdu+Rr/w5DIBAfVroEUdp8osnywIX0umcbZXoKZKgUeFThJ5vd9wpDVshkbro+F2IhaAbi7P3aAeuDroLaNQIABwUSngbP98jqywn4iqNsmTyGNjY9GlSxej9uHDh2PlypWlrp+WlgYnJ6dKnYB4PSUT3ecdQl4xQ+OO2lzM6CjHx0c0unkqRbCWy7B3fGd4u9pXZKkWS61WY9euXejVq1e1ngPB15JpMnLysf/sQ2iLeXeRZWcAaRcAxxZGc3n0ywhAN/+acLB5fq95XhX7yRzv4USWSPIhvJCQEIiiaPRlSngyF29Xe8wZ0NJovkGBgk9GPf0JqacJAOYMaPlc/8Ij0/C1ZBoHGyu0aVj8L9eCT489/Smywto0dHyuwxPAfiKqyqrNT93LreoAACZt1F0MtvBclqLIZQLkgoA5A1rq1yfia8k0Xq66OTmnE3UXzDVlqFuA7uP4bRo66td/3rGfiKqmahOgAN0vPv+6zpi8+RyOJz2CXCYU+cuvoD2wfg180f/5Hy0g6fhaMo2Xqy1qOChwOjEND9PVEFB0QChod1EpquWICvuJqOqpdj993q72+OGtDrhwJxUbT97CieuPcTNFd3kZhUxAQ3dHtPWugQGBXs/tJF8qH3wtmcbBxgqdm7vgSaYaN5Kz8TBdjbRM3fmPBEF3/qKaKgXqu9tW64nQ7CeiqqXaBagCLeo46X+pFUyQPjO1e7WeIE1lw9eSaZztFXD20fWJrp90Z85mPxliPxFVDc/9eaCIiIiIyhsDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRGUKUIsWLYK3tzdsbGzQvn17HD9+vLzrIiIiIrJYkgPUhg0bMGHCBEybNg2nT5+Gv78/wsPDkZycXBH1EREREVkcyQHqq6++wujRozFixAj4+fnh22+/hZ2dHZYvX14R9RERERFZHCspC+fl5eHUqVOYMmWKvk0mkyE0NBRHjx4tcp3c3Fzk5ubqb6elpQEA1Go11Gp1WWoudwV1WEo9loh9ZBr2k2nYT6axxH6ypFqIzElSgEpJSYFGo0GtWrUM2mvVqoVLly4Vuc6sWbMwffp0o/a9e/fCzs5Oyu4rXExMjLlLsHjsI9Ow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", "text/plain": [ "
" ] @@ -335,16 +316,51 @@ "name": "stdout", "output_type": "stream", "text": [ - "0\n", - "0\n", - "--\n", - "(20, 1, 1)\n", - "(1, 2, 25)\n" + "Time t=6\n", + "[Array([[15]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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X9370RKPp0qtxdaWwYkslqRTeABw9uxZdOrUCbm5uXBwcEBUVBT69OlT4vozZ87ErFmzjNqjoqJgZ2cnvWIiIjKb7OxsDBs2rGJP4RGZkanHseQAlZ+fj+vXryMtLQ1btmzBN998g9jYWIOLfj2uuBEoDw8PpKamWtQcqOjoaISEhFjMPANLwz4yDfvpH6fvnkbX1V2LXWYrs8WqVqsw+tzoEudAxY2Kg28d34os0eJZ4vGUnp6OWrVqMUDRM6tC5kABgLW1tf5CY35+fjh+/DgWL16MyMjIYtdXKpX6i4w9TqFQWMwTQiFLrMnSsI9Mw34CZHJZieGoUI42p8R1ZHJZte/DQpZ0PJlSh8S/y4ksiqnH71NfB0qr1RqMMBERUfVUGK6ys7PNXAlR2RUev0/6Y0HSCNS0adPQu3dvNGjQABkZGYiKikJMTAz27t1b9kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRHZ2dlISUmBs7Mz5HJ5qetLClApKSkYMWIEbt++DScnJ7Ru3Rp79+41+nBFIiKqntzc3ADApI8lIbJEzs7O+uO4NJIC1MqVK8tcEBERPfsEQYC7uztq165tUZdfIDKFQqF44shToTJfB4qIqDQqa5VZtyfzksvlJr8QEVVFDFBEVCG8a3rj4viLyMjPMFqm1Whx6+QtxI2Kg0xu/F4WlbUK3jW9K6NMIqIyYYAiogpTUghSq9W4hVvwreNrMW/PJyKS4qkvY0BERERU3TBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEkgLU3Llz0b59e6hUKtSuXRv9+/fHn3/+WVG1EREREVkkSQEqNjYW4eHh+O233xAdHQ21Wo2ePXsiKyurouojIiIisjhWUlb++eefDW6vWbMGtWvXxsmTJ9G1a9dit8nLy0NeXp7+dnp6OgBArVZDrVZLrbdCFNZhKfVYIvaRadhPpmE/mcYS+8mSaiEyJ0EURbGsG1++fBne3t44e/YsWrVqVew6M2fOxKxZs4zao6KiYGdnV9ZdExGRGWRnZ2PYsGFIS0uDo6OjucshMpsyByitVot///vfePToEeLj40tcr7gRKA8PD6SmplrML59arUZ0dDRCQkKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LT01GrVi0GKKr2JJ3Ce1x4eDjOnTtXangCAKVSCaVSadSuUCgs5gmhkCXWZGnYR6ZhP5mG/WQaS+onS6mDyNzKFKDGjx+PXbt2IS4uDvXr1y/vmoiIiIgsmqQAJYoi3nnnHWzfvh0xMTHw8vKqqLqIiIiILJakABUeHo6oqCjs2LEDKpUKd+7cAQA4OTnB1ta2QgokIiIisjSSrgO1fPlypKWlISgoCO7u7vqvTZs2VVR9RERERBZH8ik8IiIiouqOn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIx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vCr2kzmew4kskeRTeEFBQRBF0ejLlPBkLp617DF/UGuj+QaFCt8Z9fg7pB4nAJg/qPUz/YJHpuGxZBoHGyu0a1zyi2vhu8cefxdZUe0aOz7T4QlgPxFVZdXmt+7FNvUAAFM26z4MtuhcluLIZQLkgoD5g1rrtyfisWQaj1q6OTkJSboPzDVlqFuA7u347Ro76rd/1rGfiKqmahOgAN0Ln299Z0zdegbHkh9ALhOKffErbPdvWAOfDXz2RwtIOh5LpvGoZYsaDgokJKXjfoYaAooPCIXtLipFtRxRYT8RVT3V7rfPs5Y9vn+zE87dSsPmEzdw/OpDXE/VfbyMQiagcW1HtPesgUH+Hs/sJF8qHzyWTONgY4WuLV3wKEuNayk5uJ+hRnqW7vpHgqC7flFNlQINa9tW64nQ7CeiqqXaBahCreo56V/UCidIn5res1pPkKay4bFkGmd7BZy9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1NKlS+Hp6QkbGxt07NgRx44dK++6iIiIiCyW5AC1adMmTJo0CTNmzEBCQgJ8fX0RGhqKlJSUiqiPiIiIyOJIDlBffPEFxo4di1GjRsHHxwdff/017OzssGrVqoqoj4iIiMjiWElZOT8/HydPnsS0adP0bTKZDMHBwThy5Eix2+Tl5SEvL09/Oz09HQCgVquhVqvLUnO5K6zDUuqxROwj07CfTMN+Mo0l9pMl1UJkTpICVGpqKjQaDerUqWPQXqdOHVy4cKHYbebOnYtZs2YZte/btw92dnZSdl/hoqOjzV2CxWMfmYb9ZBr2k2ksqZ+ys7PNXQKRRZAUoMpi2rRpmDRpkv52eno6PDw80LNnTzg6Olb07k2iVqsRHR2NkJAQKBQKc5djkdhHpmE/mYb9ZBpL7KfCswhE1Z2kAFWrVi3I5XLcvXvXoP3u3btwc3MrdhulUgmlUmnUrlAoLOYJoZAl1mRp2EemYT+Zhv1kGkvqJ0upg8jcJE0it7a2hp+fHw4cOKBv02q1OHDgADp16lTuxRERERFZIsmn8CZNmoSRI0fC398fHTp0wKJFi5CVlYVRo0ZVRH1EREREFkdygBo8eDDu3buH6dOn486dO2jTpg1+/vlno4nlRERERM+qMk0iHz9+PMaPH1/etRARERFVCfwsPCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIomsKnuHoigCANLT0yt71yVSq9XIzs5Geno6FAqFucuxSOwj07CfTMN+Mo0l9lPhc3fhczlRdVXpASojIwMA4OHhUdm7JiKicpKRkQEnJydzl0FkNoJYyX9GaLVa/PXXX1CpVBAEoTJ3XaL09HR4eHjgxo0bcHR0NHc5Fol9ZBr2k2nYT6axxH4SRREZGRmoW7cuZDLOAqHqq9JHoGQyGerXr1/ZuzWJo6OjxTxJWSr2kWnYT6ZhP5nG0vqJI09EnEROREREJBkDFBEREZFEDFAAlEolZsyYAaVSae5SLBb7yDTsJ9Own0zDfiKyXJU+iZyIiIioquMIFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUTVPkAtXboUnp6esLGxQceOHXHs2DFzl2Rx4uLi0K9fP9StWxeCIOCHH34wd0kWZ+7cuWjfvj1UKhVq166N/v37488//zR3WRZn+fLlaN26tf7K2p06dcJPP/1k7rIsXkREBARBwIQJE8xdChH9rVoHqE2bNmHSpEmYMWMGEhIS4Ovri9DQUKSkpJi7NIuSlZUFX19fLF261NylWKzY2FiEh4fjt99+Q3R0NNRqNXr27ImsrCxzl2ZR6tevj4iICJw8eRInTpxA9+7d8eKLL+L8+fPmLs1iHT9+HJGRkWjdurW5SyGix1Tr60B17NgR7du3x5IlSwDoPujYw8MD77zzDj744AMzV2eZBEHA9u3b0b9/f3OXYtHu3buH2rVrIzY2Fl27djV3ORbNxcUF8+fPx5gxY8xdisXJzMxEu3btsGzZMnzyySdo06YNFi1aZO6yiAjVeAQqPz8fJ0+eRHBwsL5NJpMhODgYR44cMWNl9CxIS0sDoAsHVDyNRoONGzciKysLnTp1Mnc5Fik8PBx9+/Y1eJ4iIstgZe4CzCU1NRUajQZ16tQxaK9Tpw4uXLhgpqroWaDVajFhwgR07twZrVq1Mnc5Fufs2bPo1KkTcnNz4eDggO3bt8PHx8fcZVmcjRs3IiEhAcePHzd3KURUjGoboIgqSnh4OM6dO4f4+Hhzl2KRmjVrhsTERKSlpWHLli0YOXIkYmNjGaIec+PGDbz33nuIjo6GjY2NucshomJU2wBVq1YtyOVy3L1716D97t27cHNzM1NVVNWNHz8eu3btQlxcHOrXr2/uciyStbU1mjRpAgDw8/PD8ePHsXjxYkRGRpq5Mstx8uRJpKSkoF27dvo2jUaDuLg4LFmyBHl5eZDL5WaskIiq7Rwoa2tr+Pn54cCBA/o2rVaLAwcOcD4GSSaKIsaPH4/t27fj4MGD8PLyMndJVYZWq0VeXp65y7AoPXr0wNmzZ5GYmKj/8vf3x/Dhw5GYmMjwRGQBqu0IFABMmjQJI0eOhL+/Pzp06IBFixYhKysLo0aNMndpFiUzMxOXL1/W305OTkZiYiJcXFzQoEEDM1ZmOcLDwxEVFYUdO3ZApVLhzp07AAAnJyfY2tqauTrLMW3aNPTu3RsNGjRARkYGoqKiEBMTg71795q7NIuiUqmM5s/Z29ujZs2anFdHZCGqdYAaPHgw7t27h+nTp+POnTto06YNfv75Z6OJ5dXdiRMn0K1bN/3tSZMmAQBGjhyJNWvWmKkqy7J8+XIAQFBQkEH76tWrERYWVvkFWaiUlBSMGDECt2/fhpOTE1q3bo29e/ciJCTE3KUREUlSra8DRURERFQW1XYOFBEREVFZMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQk0f8DlaZq6LUOu/8AAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAATgAAAESCAYAAABpSMk6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAlEUlEQVR4nO3df1RU54E+8IcBGZA4TCiRYSwqSUnU4I+I62Qs0Zw6zZCwDdO1VCknGkphm3V29dBqgouQoj24RC2ibtjUKHErQT1NSUvYybIgcRvpqAhVDLGaJeIuGdCygJLwc97vH3698eqADt0ovj6fc+6Z8N7n/ngZfc6FO974CCEEiIgkpLnbJ0BE9FVhwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLb+7fQJjidvtRmtrKyZMmAAfH5+7fTpEdB0hBC5fvgyj0QiN5vauzVhw12ltbUVERMTdPg0iGsGFCxfw9a9//bayLLjrTJgwAcDVb6BOp7vLZ0NE1+vu7kZERITy9/S2iFHYsWOHmDJlitBqtWL+/PnC6XSOmD9w4IB47LHHhFarFdHR0eK9995TrXe73WL9+vXCYDCIgIAAsXjxYvGnP/1Jldm4caMwm80iMDBQBAcHezzO+fPnxXPPPScCAwPFQw89JH7605+KgYGB255XV1eXACC6urpuexsiujNG8/fT65sM+/fvR0ZGBnJycnDixAnMnj0bVqsV7e3tHvNHjhxBUlISUlNTUV9fD5vNBpvNhsbGRiWTn5+PwsJCFBUVwel0IigoCFarFb29vUqmv78fiYmJeOmllzweZ2hoCPHx8ejv78eRI0fw1ltvobi4GNnZ2d5OkYhk4W2Lzp8/X6xcuVL5emhoSBiNRpGXl+cx//3vf1/Ex8erxkwmk/jbv/1bIcTVqzeDwSBee+01ZX1nZ6fQarXi7bffvml/e/bs8XgFV1FRITQajXC5XMrY66+/LnQ6nejr67utufEKjmjs+sqv4Pr7+1FXVweLxaKMaTQaWCwW1NbWetymtrZWlQcAq9Wq5Jubm+FyuVSZ4OBgmEymYfc53HFmzpyJsLAw1XG6u7tx+vRpj9v09fWhu7tbtRCRPLwquEuXLmFoaEhVIgAQFhYGl8vlcRuXyzVi/tqrN/v05jjXH+NGeXl5CA4OVhbeQSWSy339Qd/MzEx0dXUpy4ULF+72KRHR/yGvCi40NBS+vr5oa2tTjbe1tcFgMHjcxmAwjJi/9urNPr05zvXHuJFWq4VOp1MtRCQPrwrO398fMTExqKqqUsbcbjeqqqpgNps9bmM2m1V5AKisrFTykZGRMBgMqkx3dzecTuew+xzuOKdOnVLdza2srIROp8OMGTNuez9EJBFv72SUlpYKrVYriouLxUcffSTS09OFXq9X7l6+8MIL4pVXXlHyH374ofDz8xObN28WTU1NIicnR4wbN06cOnVKyWzatEno9Xrx7rvvipMnT4qEhAQRGRkpvvjiCyVz/vx5UV9fL372s5+JBx54QNTX14v6+npx+fJlIYQQg4ODIjo6WjzzzDOioaFBOBwO8dBDD4nMzMzbnhvvohKNXaP5++n1v2RYunQpLl68iOzsbLhcLsyZMwcOh0P5hX5LS4vq34ktWLAAJSUlyMrKwrp16xAVFYWysjJER0crmbVr16Knpwfp6eno7OxEbGwsHA4HAgIClEx2djbeeust5esnnngCAHDo0CE8/fTT8PX1RXl5OV566SWYzWYEBQVhxYoVyM3N9XaKt23qK+/dNPbppnivx0ezLx6fx5fp+F+VUf1TLbvdDrvd7nFdTU3NTWOJiYlITEwcdn8+Pj7Izc0dsYyKi4tRXFw84nlNmTIFFRUVI2aI6P5xX99FJSK5seCISFosOCKSFguOiKTFgiMiabHgiEhaLDgikhYLjoikxYIjImmx4IhIWiw4IpIWC46IpMWCIyJpseCISFosOCKSFguOiKTFgiMiabHgiEhaLDgikhYLjoikxYIjImmx4IhIWiw4IpIWC46IpMWCIyJpseCISFosOCKSFguOiKTFgiMiabHgiEhaLDgikhYLjoikxYIjImmx4IhIWqMquJ07d2Lq1KkICAiAyWTC0aNHR8wfPHgQ06ZNQ0BAAGbOnImKigrVeiEEsrOzER4ejsDAQFgsFpw9e1aV6ejoQHJyMnQ6HfR6PVJTU3HlyhVV5v3338eTTz6JCRMm4KGHHsKSJUvw6aefjmaKRCQBrwtu//79yMjIQE5ODk6cOIHZs2fDarWivb3dY/7IkSNISkpCamoq6uvrYbPZYLPZ0NjYqGTy8/NRWFiIoqIiOJ1OBAUFwWq1ore3V8kkJyfj9OnTqKysRHl5OQ4fPoz09HRlfXNzMxISEvCtb30LDQ0NeP/993Hp0iX8zd/8jbdTJCJJeF1wW7duRVpaGlJSUjBjxgwUFRVh/Pjx2L17t8f8tm3bEBcXhzVr1mD69OnYsGED5s6dix07dgC4evVWUFCArKwsJCQkYNasWdi7dy9aW1tRVlYGAGhqaoLD4cCuXbtgMpkQGxuL7du3o7S0FK2trQCAuro6DA0NYePGjXjkkUcwd+5c/PSnP0VDQwMGBgZG+e0honuZVwXX39+Puro6WCyWL3eg0cBisaC2ttbjNrW1tao8AFitViXf3NwMl8ulygQHB8NkMimZ2tpa6PV6zJs3T8lYLBZoNBo4nU4AQExMDDQaDfbs2YOhoSF0dXXhX//1X2GxWDBu3DiP59bX14fu7m7VQkTy8KrgLl26hKGhIYSFhanGw8LC4HK5PG7jcrlGzF97vVVm4sSJqvV+fn4ICQlRMpGRkfj3f/93rFu3DlqtFnq9Hv/93/+NAwcODDufvLw8BAcHK0tERMStvgVEdA+R5i6qy+VCWloaVqxYgWPHjuGDDz6Av78/vve970EI4XGbzMxMdHV1KcuFCxfu8FkT0VfJz5twaGgofH190dbWphpva2uDwWDwuI3BYBgxf+21ra0N4eHhqsycOXOUzI03MQYHB9HR0aFsv3PnTgQHByM/P1/J/OpXv0JERAScTieefPLJm85Nq9VCq9XeztSJ6B7k1RWcv78/YmJiUFVVpYy53W5UVVXBbDZ73MZsNqvyAFBZWankIyMjYTAYVJnu7m44nU4lYzab0dnZibq6OiVTXV0Nt9sNk8kEAPj888+h0ain4+vrq5wjEd1/vP4RNSMjA7/85S/x1ltvoampCS+99BJ6enqQkpICAFi+fDkyMzOV/KpVq+BwOLBlyxZ8/PHHePXVV3H8+HHY7XYAgI+PD1avXo2NGzfit7/9LU6dOoXly5fDaDTCZrMBAKZPn464uDikpaXh6NGj+PDDD2G327Fs2TIYjUYAQHx8PI4dO4bc3FycPXsWJ06cQEpKCqZMmYInnnjiL/0+EdE9yKsfUQFg6dKluHjxIrKzs+FyuTBnzhw4HA7lJkFLS4vqSmrBggUoKSlBVlYW1q1bh6ioKJSVlSE6OlrJrF27Fj09PUhPT0dnZydiY2PhcDgQEBCgZPbt2we73Y7FixdDo9FgyZIlKCwsVNZ/61vfQklJCfLz85Gfn4/x48fDbDbD4XAgMDBwVN8cIrq3eV1wAGC325UrsBvV1NTcNJaYmIjExMRh9+fj44Pc3Fzk5uYOmwkJCUFJScmI57Vs2TIsW7ZsxAwR3T+kuYtKRHQjFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJa1QFt3PnTkydOhUBAQEwmUw4evToiPmDBw9i2rRpCAgIwMyZM1FRUaFaL4RAdnY2wsPDERgYCIvFgrNnz6oyHR0dSE5Ohk6ng16vR2pqKq5cuXLTfjZv3oxHH30UWq0WkyZNws9//vPRTJGIJOB1we3fvx8ZGRnIycnBiRMnMHv2bFitVrS3t3vMHzlyBElJSUhNTUV9fT1sNhtsNhsaGxuVTH5+PgoLC1FUVASn04mgoCBYrVb09vYqmeTkZJw+fRqVlZUoLy/H4cOHkZ6erjrWqlWrsGvXLmzevBkff/wxfvvb32L+/PneTpGIJOF1wW3duhVpaWlISUnBjBkzUFRUhPHjx2P37t0e89u2bUNcXBzWrFmD6dOnY8OGDZg7dy527NgB4OpVV0FBAbKyspCQkIBZs2Zh7969aG1tRVlZGQCgqakJDocDu3btgslkQmxsLLZv347S0lK0trYqmddffx3vvvsunn/+eURGRiImJgbf/va3R/mtIaJ7nVcF19/fj7q6Olgsli93oNHAYrGgtrbW4za1tbWqPABYrVYl39zcDJfLpcoEBwfDZDIpmdraWuj1esybN0/JWCwWaDQaOJ1OAMDvfvc7PPzwwygvL0dkZCSmTp2KH/3oR+jo6Bh2Pn19feju7lYtRCQPrwru0qVLGBoaQlhYmGo8LCwMLpfL4zYul2vE/LXXW2UmTpyoWu/n54eQkBAl81//9V84f/48Dh48iL1796K4uBh1dXX43ve+N+x88vLyEBwcrCwRERG3+hYQ0T1EmruobrcbfX192Lt3L5566ik8/fTTePPNN3Ho0CGcOXPG4zaZmZno6upSlgsXLtzhsyair5JXBRcaGgpfX1+0tbWpxtva2mAwGDxuYzAYRsxfe71V5sabGIODg+jo6FAy4eHh8PPzw6OPPqpkpk+fDgBoaWnxeG5arRY6nU61EJE8vCo4f39/xMTEoKqqShlzu92oqqqC2Wz2uI3ZbFblAaCyslLJR0ZGwmAwqDLd3d1wOp1Kxmw2o7OzE3V1dUqmuroabrcbJpMJAPDNb34Tg4OD+OSTT5TMn/70JwDAlClTvJkmEUnCz9sNMjIysGLFCsybNw/z589HQUEBenp6kJKSAgBYvnw5Jk2ahLy8PABXP7qxaNEibNmyBfHx8SgtLcXx48fxxhtvAAB8fHywevVqbNy4EVFRUYiMjMT69ethNBphs9kAXL0Si4uLQ1paGoqKijAwMAC73Y5ly5bBaDQCuHrTYe7cufjhD3+IgoICuN1urFy5Et/+9rdVV3VEdP/wuuCWLl2KixcvIjs7Gy6XC3PmzIHD4VBuErS0tECj+fLCcMGCBSgpKUFWVhbWrVuHqKgolJWVITo6WsmsXbsWPT09SE9PR2dnJ2JjY+FwOBAQEKBk9u3bB7vdjsWLF0Oj0WDJkiUoLCxU1ms0Gvzud7/D3//932PhwoUICgrCs88+iy1btozqG0NE9z6vCw4A7HY77Ha7x3U1NTU3jSUmJiIxMXHY/fn4+CA3Nxe5ubnDZkJCQlBSUjLieRmNRvz6178eMUNE9w9p7qISEd2IBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSGlXB7dy5E1OnTkVAQABMJhOOHj06Yv7gwYOYNm0aAgICMHPmTFRUVKjWCyGQnZ2N8PBwBAYGwmKx4OzZs6pMR0cHkpOTodPpoNfrkZqaiitXrng83rlz5zBhwgTo9frRTI+IJOF1we3fvx8ZGRnIycnBiRMnMHv2bFitVrS3t3vMHzlyBElJSUhNTUV9fT1sNhtsNhsaGxuVTH5+PgoLC1FUVASn04mgoCBYrVb09vYqmeTkZJw+fRqVlZUoLy/H4cOHkZ6eftPxBgYGkJSUhKeeesrbqRGRZLwuuK1btyItLQ0pKSmYMWMGioqKMH78eOzevdtjftu2bYiLi8OaNWswffp0bNiwAXPnzsWOHTsAXL16KygoQFZWFhISEjBr1izs3bsXra2tKCsrAwA0NTXB4XBg165dMJlMiI2Nxfbt21FaWorW1lbV8bKysjBt2jR8//vf93ZqRCQZrwquv78fdXV1sFgsX+5Ao4HFYkFtba3HbWpra1V5ALBarUq+ubkZLpdLlQkODobJZFIytbW10Ov1mDdvnpKxWCzQaDRwOp3KWHV1NQ4ePIidO3fe1nz6+vrQ3d2tWohIHl4V3KVLlzA0NISwsDDVeFhYGFwul8dtXC7XiPlrr7fKTJw4UbXez88PISEhSubPf/4zXnzxRRQXF0On093WfPLy8hAcHKwsERERt7UdEd0bpLmLmpaWhh/84AdYuHDhbW+TmZmJrq4uZblw4cJXeIZEdKd5VXChoaHw9fVFW1ubarytrQ0Gg8HjNgaDYcT8tddbZW68iTE4OIiOjg4lU11djc2bN8PPzw9+fn5ITU1FV1cX/Pz8hv39oFarhU6nUy1EJA+vCs7f3x8xMTGoqqpSxtxuN6qqqmA2mz1uYzabVXkAqKysVPKRkZEwGAyqTHd3N5xOp5Ixm83o7OxEXV2dkqmurobb7YbJZAJw9fd0DQ0NypKbm4sJEyagoaEB3/3ud72ZJhFJws/bDTIyMrBixQrMmzcP8+fPR0FBAXp6epCSkgIAWL58OSZNmoS8vDwAwKpVq7Bo0SJs2bIF8fHxKC0txfHjx/HGG28AAHx8fLB69Wps3LgRUVFRiIyMxPr162E0GmGz2QAA06dPR1xcHNLS0lBUVISBgQHY7XYsW7YMRqNRyVzv+PHj0Gg0iI6OHvU3h4jubV4X3NKlS3Hx4kVkZ2fD5XJhzpw5cDgcyk2ClpYWaDRfXhguWLAAJSUlyMrKwrp16xAVFYWysjJV8axduxY9PT1IT09HZ2cnYmNj4XA4EBAQoGT27dsHu92OxYsXQ6PRYMmSJSgsLPxL5k5EkvO64ADAbrfDbrd7XFdTU3PTWGJiIhITE4fdn4+PD3Jzc5GbmztsJiQkBCUlJbd9ji+++CJefPHF284TkXykuYtKRHQjFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJa1QFt3PnTkydOhUBAQEwmUw4evToiPmDBw9i2rRpCAgIwMyZM1FRUaFaL4RAdnY2wsPDERgYCIvFgrNnz6oyHR0dSE5Ohk6ng16vR2pqKq5cuaKsr6mpQUJCAsLDwxEUFIQ5c+Zg3759o5keEUnC64Lbv38/MjIykJOTgxMnTmD27NmwWq1ob2/3mD9y5AiSkpKQmpqK+vp62Gw22Gw2NDY2Kpn8/HwUFhaiqKgITqcTQUFBsFqt6O3tVTLJyck4ffo0KisrUV5ejsOHDyM9PV11nFmzZuHXv/41Tp48iZSUFCxfvhzl5eXeTpGIJOF1wW3duhVpaWlISUnBjBkzUFRUhPHjx2P37t0e89u2bUNcXBzWrFmD6dOnY8OGDZg7dy527NgB4OrVW0FBAbKyspCQkIBZs2Zh7969aG1tRVlZGQCgqakJDocDu3btgslkQmxsLLZv347S0lK0trYCANatW4cNGzZgwYIFeOSRR7Bq1SrExcXhnXfeGeW3hojudV4VXH9/P+rq6mCxWL7cgUYDi8WC2tpaj9vU1taq8gBgtVqVfHNzM1wulyoTHBwMk8mkZGpra6HX6zFv3jwlY7FYoNFo4HQ6hz3frq4uhISEDLu+r68P3d3dqoWI5OFVwV26dAlDQ0MICwtTjYeFhcHlcnncxuVyjZi/9nqrzMSJE1Xr/fz8EBISMuxxDxw4gGPHjiElJWXY+eTl5SE4OFhZIiIihs0S0b1Hyruohw4dQkpKCn75y1/i8ccfHzaXmZmJrq4uZblw4cIdPEsi+qp5VXChoaHw9fVFW1ubarytrQ0Gg8HjNgaDYcT8tddbZW68iTE4OIiOjo6bjvvBBx/gO9/5Dn7xi19g+fLlI85Hq9VCp9OpFiKSh1cF5+/vj5iYGFRVVSljbrcbVVVVMJvNHrcxm82qPABUVlYq+cjISBgMBlWmu7sbTqdTyZjNZnR2dqKurk7JVFdXw+12w2QyKWM1NTWIj4/HP/3TP6nusBLR/cnP2w0yMjKwYsUKzJs3D/Pnz0dBQQF6enqU33UtX74ckyZNQl5eHgBg1apVWLRoEbZs2YL4+HiUlpbi+PHjeOONNwAAPj4+WL16NTZu3IioqChERkZi/fr1MBqNsNlsAIDp06cjLi4OaWlpKCoqwsDAAOx2O5YtWwaj0Qjg6o+lf/3Xf41Vq1ZhyZIlyu/m/P39R7zRQETy8rrgli5diosXLyI7Oxsulwtz5syBw+FQbhK0tLRAo/nywnDBggUoKSlBVlYW1q1bh6ioKJSVlSE6OlrJrF27Fj09PUhPT0dnZydiY2PhcDgQEBCgZPbt2we73Y7FixdDo9FgyZIlKCwsVNa/9dZb+Pzzz5GXl6eUKwAsWrQINTU13k6TiCTgdcEBgN1uh91u97jOU5kkJiYiMTFx2P35+PggNzcXubm5w2ZCQkJQUlIy7Pri4mIUFxcPu56I7j9S3kUlIgJYcEQkMRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSWtUBbdz505MnToVAQEBMJlMOHr06Ij5gwcPYtq0aQgICMDMmTNRUVGhWi+EQHZ2NsLDwxEYGAiLxYKzZ8+qMh0dHUhOToZOp4Ner0dqaiquXLmiypw8eRJPPfUUAgICEBERgfz8/NFMj4gk4XXB7d+/HxkZGcjJycGJEycwe/ZsWK1WtLe3e8wfOXIESUlJSE1NRX19PWw2G2w2GxobG5VMfn4+CgsLUVRUBKfTiaCgIFitVvT29iqZ5ORknD59GpWVlSgvL8fhw4eRnp6urO/u7sYzzzyDKVOmoK6uDq+99hpeffVVvPHGG95OkYgk4eftBlu3bkVaWhpSUlIAAEVFRXjvvfewe/duvPLKKzflt23bhri4OKxZswYAsGHDBlRWVmLHjh0oKiqCEAIFBQXIyspCQkICAGDv3r0ICwtDWVkZli1bhqamJjgcDhw7dgzz5s0DAGzfvh3PPfccNm/eDKPRiH379qG/vx+7d++Gv78/Hn/8cTQ0NGDr1q2qIrxeX18f+vr6lK+7uroAXC3L2+Hu+/ymse7ubq/HR7MvHp/Hl+n4t+NaVghx29tAeKGvr0/4+vqK3/zmN6rx5cuXi+eff97jNhEREeIXv/iFaiw7O1vMmjVLCCHEJ598IgCI+vp6VWbhwoXiH/7hH4QQQrz55ptCr9er1g8MDAhfX1/xzjvvCCGEeOGFF0RCQoIqU11dLQCIjo4Oj+eWk5MjAHDhwuUeWi5cuDBcRd3Eqyu4S5cuYWhoCGFhYarxsLAwfPzxxx63cblcHvMul0tZf21spMzEiRNV6/38/BASEqLKREZG3rSPa+sefPDBm84tMzMTGRkZytdutxsdHR342te+Bh8fH4/zuaa7uxsRERG4cOECdDrdiNmxTqa5AHLNR6a5AH/ZfIQQuHz5MoxG421v4/WPqDLRarXQarWqMb1e79U+dDqdFH/wALnmAsg1H5nmAox+PsHBwV7lvbrJEBoaCl9fX7S1tanG29raYDAYPG5jMBhGzF97vVXmxpsYg4OD6OjoUGU87eP6YxDR/cWrgvP390dMTAyqqqqUMbfbjaqqKpjNZo/bmM1mVR4AKisrlXxkZCQMBoMq093dDafTqWTMZjM6OztRV1enZKqrq+F2u2EymZTM4cOHMTAwoDrOY4895vHHUyK6D9z2b+v+v9LSUqHVakVxcbH46KOPRHp6utDr9cLlcim/7H/llVeU/Icffij8/PzE5s2bRVNTk8jJyRHjxo0Tp06dUjKbNm0Ser1evPvuu+LkyZMiISFBREZGii+++ELJxMXFiSeeeEI4nU7x+9//XkRFRYmkpCRlfWdnpwgLCxMvvPCCaGxsFKWlpWL8+PHiX/7lX7yd4m3p7e0VOTk5ore39yvZ/50k01yEkGs+Ms1FiDs/H68LTgghtm/fLiZPniz8/f3F/PnzxR/+8Adl3aJFi8SKFStU+QMHDohHH31U+Pv7i8cff1y89957qvVut1usX79ehIWFCa1WKxYvXizOnDmjyvz5z38WSUlJ4oEHHhA6nU6kpKSIy5cvqzJ//OMfRWxsrNBqtWLSpEli06ZNo5keEUnCRwhvPlRCRHTv4L9FJSJpseCISFosOCKSFguOiKTFghsFbx8XdTfk5eXhr/7qrzBhwgRMnDgRNpsNZ86cUWWefvpp+Pj4qJYf//jHqkxLSwvi4+Mxfvx4TJw4EWvWrMHg4OCdnAoA4NVXX73pXKdNm6as7+3txcqVK/G1r30NDzzwAJYsWXLTB7/HylymTp1601x8fHywcuVKAGP/fTl8+DC+853vwGg0wsfHB2VlZar1Yiw9/uwu38W955SWlgp/f3+xe/ducfr0aZGWlib0er1oa2u726emYrVaxZ49e0RjY6NoaGgQzz33nJg8ebK4cuWKklm0aJFIS0sTn332mbJ0dXUp6wcHB0V0dLSwWCyivr5eVFRUiNDQUJGZmXnH55OTkyMef/xx1blevHhRWf/jH/9YREREiKqqKnH8+HHx5JNPigULFozJubS3t6vmUVlZKQCIQ4cOCSHG/vtSUVEh/vEf/1G88847AsBND9/YtGmTCA4OFmVlZeKPf/yjeP755z1+rnX27NniD3/4g/jP//xP8Y1vfEP1udauri4RFhYmkpOTRWNjo3j77bdFYGCg159rZcF5af78+WLlypXK10NDQ8JoNIq8vLy7eFa31t7eLgCIDz74QBlbtGiRWLVq1bDbVFRUCI1Go3yIWwghXn/9daHT6URfX99Xebo3ycnJEbNnz/a4rrOzU4wbN04cPHhQGWtqahIARG1trRBibM3lRqtWrRKPPPKIcLvdQoh76325seDcbrcwGAzitddeU8Y6OzuFVqsVb7/9thBCiI8++kgAEMeOHVMy//Zv/yZ8fHzE//zP/wghhPjnf/5n8eCDD6rm8/LLL4vHHnvMq/Pjj6he6O/vR11dHSwWizKm0WhgsVhQW1t7F8/s1q496y4kJEQ1vm/fPoSGhiI6OhqZmZn4/PMvn9lVW1uLmTNnqp70YrVa0d3djdOnT9+ZE7/O2bNnYTQa8fDDDyM5ORktLS0AgLq6OgwMDKjel2nTpmHy5MnK+zLW5nJNf38/fvWrX+GHP/yh6gk299L7cr3m5ma4XC7VexEcHAyTyaR6L/R6vfJsRwCwWCzQaDRwOp1KZuHChfD391cyVqsVZ86cwf/+7//e9vnc108T8dZoHhc1FrjdbqxevRrf/OY3ER0drYz/4Ac/wJQpU2A0GnHy5Em8/PLLOHPmDN555x0Awz/q6tq6O8lkMqG4uBiPPfYYPvvsM/zsZz/DU089hcbGRrhcLvj7+9/0JJgbH7k1VuZyvbKyMnR2duLFF19Uxu6l9+VGd/PxZ56w4O4DK1euRGNjI37/+9+rxq9/0vHMmTMRHh6OxYsX45NPPsEjjzxyp09zRM8++6zy37NmzYLJZMKUKVNw4MABBAYG3sUz+8u8+eabePbZZ1XPOLuX3pexjj+iemE0j4u62+x2O8rLy3Ho0CF8/etfHzF77cks586dAzC2H0Gl1+vx6KOP4ty5czAYDOjv70dnZ6cqc+Mjt8baXM6fP4//+I//wI9+9KMRc/fS+zLWHn/GgvPCaB4XdbcIIWC32/Gb3/wG1dXVN13ue9LQ0AAACA8PB3D1EVSnTp1S/WGsrKyETqfDjBkzvpLzvl1XrlzBJ598gvDwcMTExGDcuHGq9+XMmTNoaWlRPXJrrM1lz549mDhxIuLj40fM3Uvvy5h7/Nkobpzc1271uKix4qWXXhLBwcGipqZG9XGDzz//XAghxLlz50Rubq44fvy4aG5uFu+++654+OGHxcKFC5V9XPs4wjPPPCMaGhqEw+EQDz300F35aMVPfvITUVNTI5qbm8WHH34oLBaLCA0NFe3t7UKIqx8TmTx5sqiurhbHjx8XZrNZmM3mMTkXIa7efZ88ebJ4+eWXVeP3wvty+fJlUV9fL+rr6wUAsXXrVlFfXy/Onz8vhBhbjz9jwY3CSI+LGiswzP+wY8+ePUIIIVpaWsTChQtFSEiI0Gq14hvf+IZYs2aN6vNWQgjx6aefimeffVYEBgaK0NBQ8ZOf/EQMDAzc8fksXbpUhIeHC39/fzFp0iSxdOlSce7cOWX9F198If7u7/5OPPjgg2L8+PHiu9/9rvjss89U+xgrcxFCiPfff18AuOmxYPfC+3Lo0CGPf7auPSZtLD3+jI9LIiJp8XdwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNL6f+NO/vS+IO61AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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RGn3NTAwUAwMDDRqv3jxon4/CQkJpfZL8csYlNafycnJ4ssvvyw6OzuLNjY2YocOHcSdO3carFPUZ5s2bSrxfj76PA0MDBRbtmxpdJzSagAghoeHG7TduXNHDA8PFz08PESFQiG6ubmJPXr0EJcvX16mmrKyssRhw4aJzs7OIgBe0oDoGSGIImc7EhEREUnBOVBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERSVTpF9LUarX466+/oFKp+BEHRERVjCiKyMzMRN26dc1ysVMiS1HpAeqvv/4y+lR0IiKqWq5fv27waQtE1U2lByiVSgVA98Pn6OhY2YcvkVqtxt69e9GzZ08oFApzl2OR2EemYT+Zhv1kGkvsp4yMDHh4eOhfy4mqq0oPUEWn7RwdHS0qQNnZ2cHR0dFiXqQsDfvINOwn07CfTGPJ/cQpGFTd8QQ2ERERkUQMUEREREQSMUARERERSVTpc6CIiOjZJooiCgsLodFozF0KkSRyuRxWVlYmzfFjgCIionJTUFCAW7duIScnx9ylEJWJnZ0d3N3dYW1t/dj1GKCIiKhcaLVapKSkQC6Xo27durC2tua79ajKEEURBQUFuHv3LlJSUuDt7f3Yi8UyQBERUbkoKCiAVquFh4cH7OzszF0OkWS2trZQKBS4evUqCgoKYGNjU+q6nERORETlih/xQlWZqc9fPsuJiIiIJOIpPCIiMquL9y4isyBT8nYqaxW8a3pXQEVET8YARUREZnPx3kU0Xdy0zNtfiLjAEEVmwVN4RERkNmUZeSrP7Ys7fPgw5HI5+vbtW677NdWVK1cgCAKSkpLMcnwyHQMUERHR31asWIF33nkH8fHx+Ouvv8xdDlkwBigiIiIAWVlZ2LhxI95++2307dsXq1evNlj+448/wtvbGzY2NujWrRvWrFkDQRDw8OFD/ToJCQkICAiAra0tPDw88O677yI7O1u/3NPTE59++ilGjx4NlUqFBg0aYPny5frlXl5eAIC2bdtCEAQEBQVV5F2mp8AARUREBOD7779H8+bN0axZM7z66qtYuXIlRFEEAKSkpODll19G//79cerUKbz55pv43//+Z7B9cnIyevXqhYEDB+L06dPYuHEjEhISEBERYbDe559/Dn9/f5w8eRLjxo3D22+/jT///BMAcPToUQDAvn37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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=7\n", + "[Array([[10]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAATgAAAESCAYAAABpSMk6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAlEUlEQVR4nO3df1RU54E+8IcBGZA4TCiRYSwqSUnU4I+I62Qs0Zw6zZCwDdO1VCknGkphm3V29dBqgouQoj24RC2ibtjUKHErQT1NSUvYybIgcRvpqAhVDLGaJeIuGdCygJLwc97vH3698eqADt0ovj6fc+6Z8N7n/ngZfc6FO974CCEEiIgkpLnbJ0BE9FVhwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLb+7fQJjidvtRmtrKyZMmAAfH5+7fTpEdB0hBC5fvgyj0QiN5vauzVhw12ltbUVERMTdPg0iGsGFCxfw9a9//bayLLjrTJgwAcDVb6BOp7vLZ0NE1+vu7kZERITy9/S2iFHYsWOHmDJlitBqtWL+/PnC6XSOmD9w4IB47LHHhFarFdHR0eK9995TrXe73WL9+vXCYDCIgIAAsXjxYvGnP/1Jldm4caMwm80iMDBQBAcHezzO+fPnxXPPPScCAwPFQw89JH7605+KgYGB255XV1eXACC6urpuexsiujNG8/fT65sM+/fvR0ZGBnJycnDixAnMnj0bVqsV7e3tHvNHjhxBUlISUlNTUV9fD5vNBpvNhsbGRiWTn5+PwsJCFBUVwel0IigoCFarFb29vUqmv78fiYmJeOmllzweZ2hoCPHx8ejv78eRI0fw1ltvobi4GNnZ2d5OkYhk4W2Lzp8/X6xcuVL5emhoSBiNRpGXl+cx//3vf1/Ex8erxkwmk/jbv/1bIcTVqzeDwSBee+01ZX1nZ6fQarXi7bffvml/e/bs8XgFV1FRITQajXC5XMrY66+/LnQ6nejr67utufEKjmjs+sqv4Pr7+1FXVweLxaKMaTQaWCwW1NbWetymtrZWlQcAq9Wq5Jubm+FyuVSZ4OBgmEymYfc53HFmzpyJsLAw1XG6u7tx+vRpj9v09fWhu7tbtRCRPLwquEuXLmFoaEhVIgAQFhYGl8vlcRuXyzVi/tqrN/v05jjXH+NGeXl5CA4OVhbeQSWSy339Qd/MzEx0dXUpy4ULF+72KRHR/yGvCi40NBS+vr5oa2tTjbe1tcFgMHjcxmAwjJi/9urNPr05zvXHuJFWq4VOp1MtRCQPrwrO398fMTExqKqqUsbcbjeqqqpgNps9bmM2m1V5AKisrFTykZGRMBgMqkx3dzecTuew+xzuOKdOnVLdza2srIROp8OMGTNuez9EJBFv72SUlpYKrVYriouLxUcffSTS09OFXq9X7l6+8MIL4pVXXlHyH374ofDz8xObN28WTU1NIicnR4wbN06cOnVKyWzatEno9Xrx7rvvipMnT4qEhAQRGRkpvvjiCyVz/vx5UV9fL372s5+JBx54QNTX14v6+npx+fJlIYQQg4ODIjo6WjzzzDOioaFBOBwO8dBDD4nMzMzbnhvvohKNXaP5++n1v2RYunQpLl68iOzsbLhcLsyZMwcOh0P5hX5LS4vq34ktWLAAJSUlyMrKwrp16xAVFYWysjJER0crmbVr16Knpwfp6eno7OxEbGwsHA4HAgIClEx2djbeeust5esnnngCAHDo0CE8/fTT8PX1RXl5OV566SWYzWYEBQVhxYoVyM3N9XaKt23qK+/dNPbppnivx0ezLx6fx5fp+F+VUf1TLbvdDrvd7nFdTU3NTWOJiYlITEwcdn8+Pj7Izc0dsYyKi4tRXFw84nlNmTIFFRUVI2aI6P5xX99FJSK5seCISFosOCKSFguOiKTFgiMiabHgiEhaLDgikhYLjoikxYIjImmx4IhIWiw4IpIWC46IpMWCIyJpseCISFosOCKSFguOiKTFgiMiabHgiEhaLDgikhYLjoikxYIjImmx4IhIWiw4IpIWC46IpMWCIyJpseCISFosOCKSFguOiKTFgiMiabHgiEhaLDgikhYLjoikxYIjImmx4IhIWqMquJ07d2Lq1KkICAiAyWTC0aNHR8wfPHgQ06ZNQ0BAAGbOnImKigrVeiEEsrOzER4ejsDAQFgsFpw9e1aV6ejoQHJyMnQ6HfR6PVJTU3HlyhVV5v3338eTTz6JCRMm4KGHHsKSJUvw6aefjmaKRCQBrwtu//79yMjIQE5ODk6cOIHZs2fDarWivb3dY/7IkSNISkpCamoq6uvrYbPZYLPZ0NjYqGTy8/NRWFiIoqIiOJ1OBAUFwWq1ore3V8kkJyfj9OnTqKysRHl5OQ4fPoz09HRlfXNzMxISEvCtb30LDQ0NeP/993Hp0iX8zd/8jbdTJCJJeF1wW7duRVpaGlJSUjBjxgwUFRVh/Pjx2L17t8f8tm3bEBcXhzVr1mD69OnYsGED5s6dix07dgC4evVWUFCArKwsJCQkYNasWdi7dy9aW1tRVlYGAGhqaoLD4cCuXbtgMpkQGxuL7du3o7S0FK2trQCAuro6DA0NYePGjXjkkUcwd+5c/PSnP0VDQwMGBgZG+e0honuZVwXX39+Puro6WCyWL3eg0cBisaC2ttbjNrW1tao8AFitViXf3NwMl8ulygQHB8NkMimZ2tpa6PV6zJs3T8lYLBZoNBo4nU4AQExMDDQaDfbs2YOhoSF0dXXhX//1X2GxWDBu3DiP59bX14fu7m7VQkTy8KrgLl26hKGhIYSFhanGw8LC4HK5PG7jcrlGzF97vVVm4sSJqvV+fn4ICQlRMpGRkfj3f/93rFu3DlqtFnq9Hv/93/+NAwcODDufvLw8BAcHK0tERMStvgVEdA+R5i6qy+VCWloaVqxYgWPHjuGDDz6Av78/vve970EI4XGbzMxMdHV1KcuFCxfu8FkT0VfJz5twaGgofH190dbWphpva2uDwWDwuI3BYBgxf+21ra0N4eHhqsycOXOUzI03MQYHB9HR0aFsv3PnTgQHByM/P1/J/OpXv0JERAScTieefPLJm85Nq9VCq9XeztSJ6B7k1RWcv78/YmJiUFVVpYy53W5UVVXBbDZ73MZsNqvyAFBZWankIyMjYTAYVJnu7m44nU4lYzab0dnZibq6OiVTXV0Nt9sNk8kEAPj888+h0ain4+vrq5wjEd1/vP4RNSMjA7/85S/x1ltvoampCS+99BJ6enqQkpICAFi+fDkyMzOV/KpVq+BwOLBlyxZ8/PHHePXVV3H8+HHY7XYAgI+PD1avXo2NGzfit7/9LU6dOoXly5fDaDTCZrMBAKZPn464uDikpaXh6NGj+PDDD2G327Fs2TIYjUYAQHx8PI4dO4bc3FycPXsWJ06cQEpKCqZMmYInnnjiL/0+EdE9yKsfUQFg6dKluHjxIrKzs+FyuTBnzhw4HA7lJkFLS4vqSmrBggUoKSlBVlYW1q1bh6ioKJSVlSE6OlrJrF27Fj09PUhPT0dnZydiY2PhcDgQEBCgZPbt2we73Y7FixdDo9FgyZIlKCwsVNZ/61vfQklJCfLz85Gfn4/x48fDbDbD4XAgMDBwVN8cIrq3eV1wAGC325UrsBvV1NTcNJaYmIjExMRh9+fj44Pc3Fzk5uYOmwkJCUFJScmI57Vs2TIsW7ZsxAwR3T+kuYtKRHQjFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJa1QFt3PnTkydOhUBAQEwmUw4evToiPmDBw9i2rRpCAgIwMyZM1FRUaFaL4RAdnY2wsPDERgYCIvFgrNnz6oyHR0dSE5Ohk6ng16vR2pqKq5cuXLTfjZv3oxHH30UWq0WkyZNws9//vPRTJGIJOB1we3fvx8ZGRnIycnBiRMnMHv2bFitVrS3t3vMHzlyBElJSUhNTUV9fT1sNhtsNhsaGxuVTH5+PgoLC1FUVASn04mgoCBYrVb09vYqmeTkZJw+fRqVlZUoLy/H4cOHkZ6erjrWqlWrsGvXLmzevBkff/wxfvvb32L+/PneTpGIJOF1wW3duhVpaWlISUnBjBkzUFRUhPHjx2P37t0e89u2bUNcXBzWrFmD6dOnY8OGDZg7dy527NgB4OpVV0FBAbKyspCQkIBZs2Zh7969aG1tRVlZGQCgqakJDocDu3btgslkQmxsLLZv347S0lK0trYqmddffx3vvvsunn/+eURGRiImJgbf/va3R/mtIaJ7nVcF19/fj7q6Olgsli93oNHAYrGgtrbW4za1tbWqPABYrVYl39zcDJfLpcoEBwfDZDIpmdraWuj1esybN0/JWCwWaDQaOJ1OAMDvfvc7PPzwwygvL0dkZCSmTp2KH/3oR+jo6Bh2Pn19feju7lYtRCQPrwru0qVLGBoaQlhYmGo8LCwMLpfL4zYul2vE/LXXW2UmTpyoWu/n54eQkBAl81//9V84f/48Dh48iL1796K4uBh1dXX43ve+N+x88vLyEBwcrCwRERG3+hYQ0T1EmruobrcbfX192Lt3L5566ik8/fTTePPNN3Ho0CGcOXPG4zaZmZno6upSlgsXLtzhsyair5JXBRcaGgpfX1+0tbWpxtva2mAwGDxuYzAYRsxfe71V5sabGIODg+jo6FAy4eHh8PPzw6OPPqpkpk+fDgBoaWnxeG5arRY6nU61EJE8vCo4f39/xMTEoKqqShlzu92oqqqC2Wz2uI3ZbFblAaCyslLJR0ZGwmAwqDLd3d1wOp1Kxmw2o7OzE3V1dUqmuroabrcbJpMJAPDNb34Tg4OD+OSTT5TMn/70JwDAlClTvJkmEUnCz9sNMjIysGLFCsybNw/z589HQUEBenp6kJKSAgBYvnw5Jk2ahLy8PABXP7qxaNEibNmyBfHx8SgtLcXx48fxxhtvAAB8fHywevVqbNy4EVFRUYiMjMT69ethNBphs9kAXL0Si4uLQ1paGoqKijAwMAC73Y5ly5bBaDQCuHrTYe7cufjhD3+IgoICuN1urFy5Et/+9rdVV3VEdP/wuuCWLl2KixcvIjs7Gy6XC3PmzIHD4VBuErS0tECj+fLCcMGCBSgpKUFWVhbWrVuHqKgolJWVITo6WsmsXbsWPT09SE9PR2dnJ2JjY+FwOBAQEKBk9u3bB7vdjsWLF0Oj0WDJkiUoLCxU1ms0Gvzud7/D3//932PhwoUICgrCs88+iy1btozqG0NE9z6vCw4A7HY77Ha7x3U1NTU3jSUmJiIxMXHY/fn4+CA3Nxe5ubnDZkJCQlBSUjLieRmNRvz6178eMUNE9w9p7qISEd2IBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSGlXB7dy5E1OnTkVAQABMJhOOHj06Yv7gwYOYNm0aAgICMHPmTFRUVKjWCyGQnZ2N8PBwBAYGwmKx4OzZs6pMR0cHkpOTodPpoNfrkZqaiitXrng83rlz5zBhwgTo9frRTI+IJOF1we3fvx8ZGRnIycnBiRMnMHv2bFitVrS3t3vMHzlyBElJSUhNTUV9fT1sNhtsNhsaGxuVTH5+PgoLC1FUVASn04mgoCBYrVb09vYqmeTkZJw+fRqVlZUoLy/H4cOHkZ6eftPxBgYGkJSUhKeeesrbqRGRZLwuuK1btyItLQ0pKSmYMWMGioqKMH78eOzevdtjftu2bYiLi8OaNWswffp0bNiwAXPnzsWOHTsAXL16KygoQFZWFhISEjBr1izs3bsXra2tKCsrAwA0NTXB4XBg165dMJlMiI2Nxfbt21FaWorW1lbV8bKysjBt2jR8//vf93ZqRCQZrwquv78fdXV1sFgsX+5Ao4HFYkFtba3HbWpra1V5ALBarUq+ubkZLpdLlQkODobJZFIytbW10Ov1mDdvnpKxWCzQaDRwOp3KWHV1NQ4ePIidO3fe1nz6+vrQ3d2tWohIHl4V3KVLlzA0NISwsDDVeFhYGFwul8dtXC7XiPlrr7fKTJw4UbXez88PISEhSubPf/4zXnzxRRQXF0On093WfPLy8hAcHKwsERERt7UdEd0bpLmLmpaWhh/84AdYuHDhbW+TmZmJrq4uZblw4cJXeIZEdKd5VXChoaHw9fVFW1ubarytrQ0Gg8HjNgaDYcT8tddbZW68iTE4OIiOjg4lU11djc2bN8PPzw9+fn5ITU1FV1cX/Pz8hv39oFarhU6nUy1EJA+vCs7f3x8xMTGoqqpSxtxuN6qqqmA2mz1uYzabVXkAqKysVPKRkZEwGAyqTHd3N5xOp5Ixm83o7OxEXV2dkqmurobb7YbJZAJw9fd0DQ0NypKbm4sJEyagoaEB3/3ud72ZJhFJws/bDTIyMrBixQrMmzcP8+fPR0FBAXp6epCSkgIAWL58OSZNmoS8vDwAwKpVq7Bo0SJs2bIF8fHxKC0txfHjx/HGG28AAHx8fLB69Wps3LgRUVFRiIyMxPr162E0GmGz2QAA06dPR1xcHNLS0lBUVISBgQHY7XYsW7YMRqNRyVzv+PHj0Gg0iI6OHvU3h4jubV4X3NKlS3Hx4kVkZ2fD5XJhzpw5cDgcyk2ClpYWaDRfXhguWLAAJSUlyMrKwrp16xAVFYWysjJV8axduxY9PT1IT09HZ2cnYmNj4XA4EBAQoGT27dsHu92OxYsXQ6PRYMmSJSgsLPxL5k5EkvO64ADAbrfDbrd7XFdTU3PTWGJiIhITE4fdn4+PD3Jzc5GbmztsJiQkBCUlJbd9ji+++CJefPHF284TkXykuYtKRHQjFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJa1QFt3PnTkydOhUBAQEwmUw4evToiPmDBw9i2rRpCAgIwMyZM1FRUaFaL4RAdnY2wsPDERgYCIvFgrNnz6oyHR0dSE5Ohk6ng16vR2pqKq5cuaKsr6mpQUJCAsLDwxEUFIQ5c+Zg3759o5keEUnC64Lbv38/MjIykJOTgxMnTmD27NmwWq1ob2/3mD9y5AiSkpKQmpqK+vp62Gw22Gw2NDY2Kpn8/HwUFhaiqKgITqcTQUFBsFqt6O3tVTLJyck4ffo0KisrUV5ejsOHDyM9PV11nFmzZuHXv/41Tp48iZSUFCxfvhzl5eXeTpGIJOF1wW3duhVpaWlISUnBjBkzUFRUhPHjx2P37t0e89u2bUNcXBzWrFmD6dOnY8OGDZg7dy527NgB4OrVW0FBAbKyspCQkIBZs2Zh7969aG1tRVlZGQCgqakJDocDu3btgslkQmxsLLZv347S0lK0trYCANatW4cNGzZgwYIFeOSRR7Bq1SrExcXhnXfeGeW3hojudV4VXH9/P+rq6mCxWL7cgUYDi8WC2tpaj9vU1taq8gBgtVqVfHNzM1wulyoTHBwMk8mkZGpra6HX6zFv3jwlY7FYoNFo4HQ6hz3frq4uhISEDLu+r68P3d3dqoWI5OFVwV26dAlDQ0MICwtTjYeFhcHlcnncxuVyjZi/9nqrzMSJE1Xr/fz8EBISMuxxDxw4gGPHjiElJWXY+eTl5SE4OFhZIiIihs0S0b1Hyruohw4dQkpKCn75y1/i8ccfHzaXmZmJrq4uZblw4cIdPEsi+qp5VXChoaHw9fVFW1ubarytrQ0Gg8HjNgaDYcT8tddbZW68iTE4OIiOjo6bjvvBBx/gO9/5Dn7xi19g+fLlI85Hq9VCp9OpFiKSh1cF5+/vj5iYGFRVVSljbrcbVVVVMJvNHrcxm82qPABUVlYq+cjISBgMBlWmu7sbTqdTyZjNZnR2dqKurk7JVFdXw+12w2QyKWM1NTWIj4/HP/3TP6nusBLR/cnP2w0yMjKwYsUKzJs3D/Pnz0dBQQF6enqU33UtX74ckyZNQl5eHgBg1apVWLRoEbZs2YL4+HiUlpbi+PHjeOONNwAAPj4+WL16NTZu3IioqChERkZi/fr1MBqNsNlsAIDp06cjLi4OaWlpKCoqwsDAAOx2O5YtWwaj0Qjg6o+lf/3Xf41Vq1ZhyZIlyu/m/P39R7zRQETy8rrgli5diosXLyI7Oxsulwtz5syBw+FQbhK0tLRAo/nywnDBggUoKSlBVlYW1q1bh6ioKJSVlSE6OlrJrF27Fj09PUhPT0dnZydiY2PhcDgQEBCgZPbt2we73Y7FixdDo9FgyZIlKCwsVNa/9dZb+Pzzz5GXl6eUKwAsWrQINTU13k6TiCTgdcEBgN1uh91u97jOU5kkJiYiMTFx2P35+PggNzcXubm5w2ZCQkJQUlIy7Pri4mIUFxcPu56I7j9S3kUlIgJYcEQkMRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSWtUBbdz505MnToVAQEBMJlMOHr06Ij5gwcPYtq0aQgICMDMmTNRUVGhWi+EQHZ2NsLDwxEYGAiLxYKzZ8+qMh0dHUhOToZOp4Ner0dqaiquXLmiypw8eRJPPfUUAgICEBERgfz8/NFMj4gk4XXB7d+/HxkZGcjJycGJEycwe/ZsWK1WtLe3e8wfOXIESUlJSE1NRX19PWw2G2w2GxobG5VMfn4+CgsLUVRUBKfTiaCgIFitVvT29iqZ5ORknD59GpWVlSgvL8fhw4eRnp6urO/u7sYzzzyDKVOmoK6uDq+99hpeffVVvPHGG95OkYgk4eftBlu3bkVaWhpSUlIAAEVFRXjvvfewe/duvPLKKzflt23bhri4OKxZswYAsGHDBlRWVmLHjh0oKiqCEAIFBQXIyspCQkICAGDv3r0ICwtDWVkZli1bhqamJjgcDhw7dgzz5s0DAGzfvh3PPfccNm/eDKPRiH379qG/vx+7d++Gv78/Hn/8cTQ0NGDr1q2qIrxeX18f+vr6lK+7uroAXC3L2+Hu+/ymse7ubq/HR7MvHp/Hl+n4t+NaVghx29tAeKGvr0/4+vqK3/zmN6rx5cuXi+eff97jNhEREeIXv/iFaiw7O1vMmjVLCCHEJ598IgCI+vp6VWbhwoXiH/7hH4QQQrz55ptCr9er1g8MDAhfX1/xzjvvCCGEeOGFF0RCQoIqU11dLQCIjo4Oj+eWk5MjAHDhwuUeWi5cuDBcRd3Eqyu4S5cuYWhoCGFhYarxsLAwfPzxxx63cblcHvMul0tZf21spMzEiRNV6/38/BASEqLKREZG3rSPa+sefPDBm84tMzMTGRkZytdutxsdHR342te+Bh8fH4/zuaa7uxsRERG4cOECdDrdiNmxTqa5AHLNR6a5AH/ZfIQQuHz5MoxG421v4/WPqDLRarXQarWqMb1e79U+dDqdFH/wALnmAsg1H5nmAox+PsHBwV7lvbrJEBoaCl9fX7S1tanG29raYDAYPG5jMBhGzF97vVXmxpsYg4OD6OjoUGU87eP6YxDR/cWrgvP390dMTAyqqqqUMbfbjaqqKpjNZo/bmM1mVR4AKisrlXxkZCQMBoMq093dDafTqWTMZjM6OztRV1enZKqrq+F2u2EymZTM4cOHMTAwoDrOY4895vHHUyK6D9z2b+v+v9LSUqHVakVxcbH46KOPRHp6utDr9cLlcim/7H/llVeU/Icffij8/PzE5s2bRVNTk8jJyRHjxo0Tp06dUjKbNm0Ser1evPvuu+LkyZMiISFBREZGii+++ELJxMXFiSeeeEI4nU7x+9//XkRFRYmkpCRlfWdnpwgLCxMvvPCCaGxsFKWlpWL8+PHiX/7lX7yd4m3p7e0VOTk5ore39yvZ/50k01yEkGs+Ms1FiDs/H68LTgghtm/fLiZPniz8/f3F/PnzxR/+8Adl3aJFi8SKFStU+QMHDohHH31U+Pv7i8cff1y89957qvVut1usX79ehIWFCa1WKxYvXizOnDmjyvz5z38WSUlJ4oEHHhA6nU6kpKSIy5cvqzJ//OMfRWxsrNBqtWLSpEli06ZNo5keEUnCRwhvPlRCRHTv4L9FJSJpseCISFosOCKSFguOiKTFghsFbx8XdTfk5eXhr/7qrzBhwgRMnDgRNpsNZ86cUWWefvpp+Pj4qJYf//jHqkxLSwvi4+Mxfvx4TJw4EWvWrMHg4OCdnAoA4NVXX73pXKdNm6as7+3txcqVK/G1r30NDzzwAJYsWXLTB7/HylymTp1601x8fHywcuVKAGP/fTl8+DC+853vwGg0wsfHB2VlZar1Yiw9/uwu38W955SWlgp/f3+xe/ducfr0aZGWlib0er1oa2u726emYrVaxZ49e0RjY6NoaGgQzz33nJg8ebK4cuWKklm0aJFIS0sTn332mbJ0dXUp6wcHB0V0dLSwWCyivr5eVFRUiNDQUJGZmXnH55OTkyMef/xx1blevHhRWf/jH/9YREREiKqqKnH8+HHx5JNPigULFozJubS3t6vmUVlZKQCIQ4cOCSHG/vtSUVEh/vEf/1G88847AsBND9/YtGmTCA4OFmVlZeKPf/yjeP755z1+rnX27NniD3/4g/jP//xP8Y1vfEP1udauri4RFhYmkpOTRWNjo3j77bdFYGCg159rZcF5af78+WLlypXK10NDQ8JoNIq8vLy7eFa31t7eLgCIDz74QBlbtGiRWLVq1bDbVFRUCI1Go3yIWwghXn/9daHT6URfX99Xebo3ycnJEbNnz/a4rrOzU4wbN04cPHhQGWtqahIARG1trRBibM3lRqtWrRKPPPKIcLvdQoh76325seDcbrcwGAzitddeU8Y6OzuFVqsVb7/9thBCiI8++kgAEMeOHVMy//Zv/yZ8fHzE//zP/wghhPjnf/5n8eCDD6rm8/LLL4vHHnvMq/Pjj6he6O/vR11dHSwWizKm0WhgsVhQW1t7F8/s1q496y4kJEQ1vm/fPoSGhiI6OhqZmZn4/PMvn9lVW1uLmTNnqp70YrVa0d3djdOnT9+ZE7/O2bNnYTQa8fDDDyM5ORktLS0AgLq6OgwMDKjel2nTpmHy5MnK+zLW5nJNf38/fvWrX+GHP/yh6gk299L7cr3m5ma4XC7VexEcHAyTyaR6L/R6vfJsRwCwWCzQaDRwOp1KZuHChfD391cyVqsVZ86cwf/+7//e9vnc108T8dZoHhc1FrjdbqxevRrf/OY3ER0drYz/4Ac/wJQpU2A0GnHy5Em8/PLLOHPmDN555x0Awz/q6tq6O8lkMqG4uBiPPfYYPvvsM/zsZz/DU089hcbGRrhcLvj7+9/0JJgbH7k1VuZyvbKyMnR2duLFF19Uxu6l9+VGd/PxZ56w4O4DK1euRGNjI37/+9+rxq9/0vHMmTMRHh6OxYsX45NPPsEjjzxyp09zRM8++6zy37NmzYLJZMKUKVNw4MABBAYG3sUz+8u8+eabePbZZ1XPOLuX3pexjj+iemE0j4u62+x2O8rLy3Ho0CF8/etfHzF77cks586dAzC2H0Gl1+vx6KOP4ty5czAYDOjv70dnZ6cqc+Mjt8baXM6fP4//+I//wI9+9KMRc/fS+zLWHn/GgvPCaB4XdbcIIWC32/Gb3/wG1dXVN13ue9LQ0AAACA8PB3D1EVSnTp1S/WGsrKyETqfDjBkzvpLzvl1XrlzBJ598gvDwcMTExGDcuHGq9+XMmTNoaWlRPXJrrM1lz549mDhxIuLj40fM3Uvvy5h7/Nkobpzc1271uKix4qWXXhLBwcGipqZG9XGDzz//XAghxLlz50Rubq44fvy4aG5uFu+++654+OGHxcKFC5V9XPs4wjPPPCMaGhqEw+EQDz300F35aMVPfvITUVNTI5qbm8WHH34oLBaLCA0NFe3t7UKIqx8TmTx5sqiurhbHjx8XZrNZmM3mMTkXIa7efZ88ebJ4+eWXVeP3wvty+fJlUV9fL+rr6wUAsXXrVlFfXy/Onz8vhBhbjz9jwY3CSI+LGiswzP+wY8+ePUIIIVpaWsTChQtFSEiI0Gq14hvf+IZYs2aN6vNWQgjx6aefimeffVYEBgaK0NBQ8ZOf/EQMDAzc8fksXbpUhIeHC39/fzFp0iSxdOlSce7cOWX9F198If7u7/5OPPjgg2L8+PHiu9/9rvjss89U+xgrcxFCiPfff18AuOmxYPfC+3Lo0CGPf7auPSZtLD3+jI9LIiJp8XdwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNL6f+NO/vS+IO61AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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4vFLT5R2X4OCgsSgoCCj9kuXLun3k5CQUGq/FL+MQWn9mZycLL788suis7OzaGNjI3bs2FHctWuXwTpFfbZ58+YS7+fjz9OgoCCxVatWRscprQYAYkREhEHb3bt3xYiICNHT01NUKBSiu7u72LNnT3H58uXlqikrK0scPny46OzsLALgJQ2InhGCKHK2IxEREZEUnANFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkURVfiFNrVaLP//8EyqVih9xQERUzYiiiMzMTNSrV88sFzslshRVHqD+/PNPo09FJyKi6uXGjRsGn7ZAVNNUeYBSqVQAdD98jo6OVX34EqnVauzbtw+9evWCQqEwdzkWiX1kGvaTadhPprHEfsrIyICnp6f+tZyopqryAFV02s7R0dGiApSdnR0cHR0t5kXK0rCPTMN+Mg37yTSW3E+cgkE1HU9gExEREUnEAEVEREQkEQMUERERkURVPgeKiIiebaIoorCwEBqNxtylEEkil8thZWVl0hw/BigiIqowBQUFuH37NnJycsxdClG52NnZwcPDA9bW1k9cjwGKiIgqhFarRUpKCuRyOerVqwdra2u+W4+qDVEUUVBQgHv37iElJQU+Pj5PvFgsAxQREVWIgoICaLVaeHp6ws7OztzlEElma2sLhUKBa9euoaCgADY2NqWuy0nkRERUofgRL1Sdmfr85bOciIiISCKewiMiIrO6dP8SMgsyJW+nslbBp7ZPJVREVDYGKCIiMptL9y+h2eJm5d7+YuRFhigyC57CIyIisynPyFNFbl/ckSNHIJfL0a9fvwrdr6muXr0KQRCQlJRkluOT6RigiIiI/rJixQq8/fbbiI+Px59//mnucsiCMUAREREByMrKwqZNm/DWW2+hX79+WL16tcHyH374AT4+PrCxsUH37t2xZs0aCIKAR48e6ddJSEhAYGAgbG1t4enpiXfeeQfZ2dn65V5eXvj0008xZswYqFQqNGzYEMuXL9cv9/b2BgC0a9cOgiAgODi4Mu8yPQUGKCIiIgDfffcdWrRogebNm+PVV1/FypUrIYoiACAlJQUvv/wyBgwYgNOnT+ONN97Af//7X4Ptk5OT0bt3bwwaNAhnzpzBpk2bkJCQgMjISIP1Pv/8cwQEBODUqVMYP3483nrrLfzxxx8AgGPHjgEA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6emJtLQ0i5oDFRMTg9DQUIuZZ2Bp2EemYT+Zhv1kGkvsp4yMDNSpU6dy50ARmVGlzIECAGtra/2Fxvz9/XH8+HEsWrQI0dHRJa6vVCr1Fxl7nEKhsJgXhCKWWJOlYR+Zhv1kGvaTaSypn0ypQ+Lf5UQWxdTn71NfB0qr1RqMMBERUc1UFK54mo+qs6Lnb1l/LEgagZo2bRr69OmDhg0bIjMzE+vXr0dsbCz27t1b/kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRE5OTlITU2Fs7Mz5HL5E9eXFKBSU1MxcuRI3L59G05OTmjTpg327t1r9OGKRERUM7m7uwOASR9LQmSJnJ2d9c/jJ5EUoFasWFHugoiI6NknCAI8PDzg5uZmUZdfIDKFQqEoc+SpSLmvA0VERFQauVxu8i8iouqIHyZMREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCSRlbkLqEqX7l9CZkGmUbtWowUAnL57GjK5caZUWavgU9un0usjIiKi6qHGBKhL9y+h2eJmJS6zldliQ5sN6LaqG3K1uSWuczHyIkMUERERAahBp/BKGnmqyu2JiIjo2VFjAhQRERFRRWGAIiIiIpJIUoCaM2cOOnToAJVKBTc3NwwYMAB//PFHZdVGREREZJEkBai4uDhERETg119/RUxMDNRqNXr16oXs7OzKqo+IiIjI4kh6F95PP/1kcHv16tVwc3PDyZMn0a1btxK3yc/PR35+vv52RkYGAECtVkOtVkutt9y0Gi1sZbYlLitqL2150fZVWa+lKbrvNbkPTMF+Mg37yTSW2E+WVAuROQmiKIrl3fjy5cvw8fHB2bNn0bp16xLX+eijjzBz5kyj9vXr18POzq68hyYiIjPIycnB8OHDkZ6eDkdHR3OXQ2Q25Q5QWq0W//znP/Ho0SMkJCSUul5JI1Cenp5IS0ur0h++03dPo9uqkkfJbGW2WNl6JcacG1PqdaDiR8fDr65fZZZo0dRqNWJiYhAaGgqFQmHuciwW+8k07CfTWGI/ZWRkoE6dOgxQVOOV+0KaEREROHfu3BPDEwAolUoolUqjdoVCUaUvCDK5rNRwVCRXm1vqOjK5zGJewMypqh+36or9ZBr2k2ksqZ8spQ4icytXgIqMjMSuXbsQHx+PBg0aVHRNRERERBZNUoASRRFvv/02tm/fjtjYWHh7e1dWXUREREQWS1KAioiIwPr167Fjxw6oVCrcuXMHAODk5ARb29LfwUZERET0LJF0Hahly5YhPT0dwcHB8PDw0H9t2rSpsuojIiIisjiST+FVVyprlVm3JyIiomdHud+FV9341PbBxciLyCzINFqm1Whx6+QtxI+Oh0xuPCinslbBp7ZPVZRJRERE1UCNCVAASg1BarUat3ALfnX9+BZdIiIiKpOkOVBERERExABFREREJBkDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBER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wpO5eNWxx7zBbYzmGxQpemfU4++QepwAYN7gNs/0LzwyDZ9LpnGwsUL7JqX/ci1699jj7yIrrn0Tx2c6PAHsJ6LqrMb81L3Ytj4AYMpm3YfBFp/LUhK5TIBcEDBvcBv99kR8LpnGs45uTk5isu4Dc00Z6hagezt++yaO+u2fdewnouqpxgQoQPeLz6+BM6ZuPYNjKQ8glwkl/vIrag9oVAufDXr2RwtIOj6XTONZxxa1HBRITM7A/Uw1BJQcEIraXVSKGjmiwn4iqn5q3E+fVx17fPdGZ5y7lY7NJ27g+NWHuJ6m+3gZhUxAEzdHdPCqhcEBns/sJF+qGHwumcbBxgrdWrngUbYa11JzcT9TjYxs3fWPBEF3/aLaKgUaudnW6InQ7Cei6qXGBagires76X+pFU2QPjW9V42eIE3lw+eSaZztFXD21vWJrp90V85mPxliPxFVD8/8daCIiIiIKhoDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRROUKUEuWLIGXlxdsbGzQqVMnHDt2rKLrIiIiIrJYkgPUpk2bMGnSJMyYMQOJiYnw8/NDWFgYUlNTK6M+IiIiIosjOUB98cUXGDduHEaPHg1fX198/fXXsLOzw8qVKyujPiIiIiKLYyVl5YKCApw8eRLTpk3Tt8lkMoSEhODIkSMlbpOfn4/8/Hz97YyMDACAWq2GWq0uT80VrqgOS6nHErGPTMN+Mg37yTSW2E+WVAuROUkKUGlpadBoNKhbt65Be926dXHhwoUSt5kzZw5mzpxp1L5v3z7Y2dlJOXyli4mJMXcJFo99ZBr2k2nYT6axpH7KyckxdwlEFkFSgCqPadOmYdKkSfrbGRkZ8PT0RK9eveDo6FjZhzeJWq1GTEwMQkNDoVAozF2ORWIfmYb9ZBr2k2kssZ+KziIQ1XSSAlSdOnUgl8tx9+5dg/a7d+/C3d29xG2USiWUSqVRu0KhsJgXhCKWWJOlYR+Zhv1kGvaTaSypnyylDiJzkzSJ3NraGv7+/jhw4IC+TavV4sCBA+jcuXOFF0dERERkiSSfwps0aRJGjRqFgIAAdOzYEQsXLkR2djZGjx5dGfURERERWRzJAWrIkCG4d+8epk+fjjt37qBt27b46aefjCaWExERET2ryjWJPDIyEpGRkRVdCxEREVG1wM/CIyIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIiksiqqg8oiiIAICMjo6oPXSq1Wo2cnBxkZGRAoVCYuxyLxD4yDfvJNOwn01hiPxW9dhe9lhPVVFUeoDIzMwEAnp6eVX1oIiKqIJmZmXBycjJ3GURmI4hV/GeEVqvFn3/+CZVKBUEQqvLQpcrIyICnpydu3LgBR0dHc5djkdhHpmE/mYb9ZBpL7CdRFJGZmYl69epBJuMsEKq5qnwESiaToUGDBlV9WJM4OjpazIuUpWIfmYb9ZBr2k2ksrZ848kTESeREREREkjFAEREREUnEAAVAqVRixowZUCqV5i7FYrGPTMN+Mg37yTTsJyLLVeWTyImIiIiqO45AEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERSVTjA9SSJUvg5eUFGxsbdOrUCceOHTN3SRYnPj4e/fv3R7169SAIAr7//ntzl2Rx5syZgw4dOkClUsHNzQ0DBgzAH3/8Ye6yLM6yZcvQpk0b/ZW1O3fujB9//NHcZVm8qKgoCIKACRMmmLsUIvpLjQ5QmzZtwqRJkzBjxgwkJibCz88PYWFhSE1NNXdpFiU7Oxt+fn5YsmSJuUuxWHFxcYiIiMCvv/6KmJgYqNVq9OrVC9nZ2eYuzaI0aNAAUVFROHnyJE6cOIEePXrgxRdfxPnz581dmsU6fvw4oqOj0aZNG3OXQkSPqdHXgerUqRM6dOiAxYsXA9B90LGnpyfefvttvP/++2auzjIJgoDt27djwIAB5i7Fot27dw9ubm6Ii4tDt27dzF2ORXNxccG8efMwduxYc5dicbKystC+fXssXboUn3zyCdq2bYuFCxeauywiQg0egSooKMDJkycREhKib5PJZAgJCcGRI0fMWBk9C9LT0wHowgGVTKPRYOPGjcjOzkbnzp3NXY5FioiIQL9+/Qxep4jIMliZuwBzSUtLg0ajQd26dQ3a69atiwsXLpipKnoWaLVaTJgwAV26dEHr1q3NXY7FOXv2LDp37oy8vDw4ODhg+/bt8PX1NXdZFmfjxo1ITEzE8ePHzV0KEZWgxgYoosoSERGBc+fOISEhwdylWKTmzZsjKSkJ6enp2LJlC0aNGoW4uDiGqMfcuHED7777LmJiYmBjY2PucoioBDU2QNWpUwdyuRx37941aL979y7c3d3NVBVVd5GRkdi1axfi4+PRoEEDc5djkaytrdG0aVMAgL+/P44fP45FixYhOjrazJVZjpMnTyI1NRXt27fXt2k0GsTHx2Px4sXIz8+HXC43Y4VEVGPnQFlbW8Pf3x8HDhzQt2m1Whw4cIDzMUgyURQRGRmJ7du34+DBg/D29jZ3SdWGVqtFfn6+ucuwKD179sTZs2eRlJSk/woICMCIESOQlJTE8ERkAWrsCBQATJo0CaNGjUJAQAA6duyIhQsXIjs7G6NHjzZ3aRYlKysLly9f1t9OSUlBUlISXFxc0LBhQzNWZjkiIiKwfv167NixAyqVCnfu3AEAODk5wdbW1szVWY5p06ahT58+aNiwITIzM7F+/XrExsZi79695i7NoqhUKqP5c/b29qhduzbn1RFZiBodoIYMGYJ79+5h+vTpuHPnDtq2bYuffvrJaGJ5TXfixAl0795df3vSpEkAgFGjRmH16tVmqsqyLFu2DAAQHBxs0L5q1SqEh4dXfUEWKjU1FSNHjsTt27fh5OSENm3aYO/evQgNDTV3aUREktTo60ARERERlUeNnQNFREREVF4MUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUn0/yCjW+mt7GqPAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -356,35 +372,81 @@ "name": "stdout", "output_type": "stream", "text": [ - "0\n", - "0\n", - "--\n" + "Time t=8\n", + "[Array([[5]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { - "ename": "IndexError", - "evalue": "list index out of range", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[13], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m t \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m20\u001b[39m): \n\u001b[0;32m----> 2\u001b[0m obs \u001b[38;5;241m=\u001b[39m \u001b[43minfo\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mobservation\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[43mt\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28mprint\u001b[39m(obs\u001b[38;5;241m.\u001b[39mshape)\n\u001b[1;32m 4\u001b[0m \u001b[38;5;66;03m#env_state = jtu.tree_map(lambda x: print(x.shape), info['env'])\u001b[39;00m\n", - "\u001b[0;31mIndexError\u001b[0m: list index out of range" + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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6emJlJQUi5oDFR0djdDQUIuZZ2Bp2EemYT+Zhv1kGkvsp7S0NNSqVati50ARmVGFzIECAGtra/2Fxvz9/XHy5EksXLgQUVFRRS6vVCr1Fxl7mkKhsJgXhAKWWJOlYR+Zhv1kGvaTaSypn0ypQ+Lf5UQWxdTj95mvA6XVag1GmIiIqHoqCFc8zUdVWcHxW9ofC5JGoKZOnYpevXqhfv36SE9Px7p16xATE4O9e/eWvVIiInouyOVyODs766+obWdnB0EQzFwVkWlEUURWVhaSk5Ph7OwMuVxe4vKSAlRycjKGDx+Ou3fvwsnJCa1atcLevXuNbq5IRETVk7u7OwCYdFsSIkvk7OysP45LIilALV++vMwFERHR808QBHh4eMDNzc2iLr9AZAqFQlHqyFOBMl8HioiIqDhyudzkX0REVRFvJkxEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUSSAtTs2bPRrl07qFQquLm5oV+/fvjjjz8qqjYiIiIiiyQpQMXGxiIiIgK//voroqOjoVar0aNHD2RmZlZUfUREREQWx0rKwnv27DH4etWqVXBzc8Pp06fRpUuXItfJzc1Fbm6u/uu0tDQAgFqthlqtllpvhSiow1LqsUTsI9Own0zDfjKNJfaTJdVCZE6CKIpiWVe+du0afHx8cOHCBbRs2bLIZT755BPMmDHDqH3dunWws7Mr666JiMgMsrKyMHToUKSmpsLR0dHc5RCZTZkDlFarxT//+U88efIEcXFxxS5X1AiUp6cnUlJSLOaHT61WIzo6GqGhoVAoFOYuxyKxj0zDfjIN+8k0lthPaWlpqFWrFgMUVXuSTuE9LSIiAhcvXiwxPAGAUqmEUqk0alcoFBbzglDAEmuyNOwj07CfTMN+Mo0l9ZOl1EFkbmUKUOPGjcPOnTtx+PBh1KtXr7xrIiIiIrJokgKUKIp49913sW3bNsTExMDb27ui6iIiIiKyWJICVEREBNatW4ft27dDpVLh3r17AAAnJyfY2tpWSIFERERElkbSdaCWLl2K1NRUBAcHw8PDQ/+xcePGiqqPiIiIyOJIPoVHREREVN3xXnhEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRFbmLsBcLt5JxaZTt3Ai6RFupaRjVgDQ5tN98KylQnsvFwwM8ETLuk7mLpOqAB5LpnmSqcaN5GykpKuRnpkDAcCuU8lQ2duglkqBBm62cLZXmLtMs2M/EVUN1S5AJaVkYsqW8ziR+AhymQCNVoRSLgIA1FoRv99Nx5X7GVh97Abae7tgzoBW8Kplb+aqyRLxWDJNRk4+ziSk4WG6GgIAEbp/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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=9\n", + "[Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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AOzfvx+3bt3Ctm3bquCeU3kwQBEREUF3+u61114DAPTq1QsZGRmIi4sDAERFRaFZs2aYP38+mjVrhiFDhiA8PNxg+7lz52L48OGYMGECfHx88OKLL+LLL7/EunXrkJ+fr1+vT58+GDduHJo0aYL3338fderUwaFDhwAArq6uAIDatWvD3d0dLi4uVXDPqTwYoIiIqMb7448/cOzYMQwdOhQAYGVlhcGDB2PlypX65e3btzfYpkOHDga3T58+jTVr1sDBwUH/FRYWpv+Im2KtW7fW/18QBLi7uyMtLa2y7hpVEl7GgIiIaryVK1eiqKgIdevW1beJogilUoklS5aYtI/s7Gy8+eabePfdd42WNWjQQP9/hUJhsEwQBGi12nJWTubCAEVERDVaUVER1q1bh88//xw9e/Y0WNa/f39s2LABzZo1w549ewyWHT9+3OB2u3bt8Ntvv6FJkyblrsXa2hoAoNFoyr0PqhoMUEREVKPt2rULDx48wJgxY+Dk5GSwbODAgVi5ciW+++47fPHFF3j//fcxZswYJCUl6d+lJwgCAOD999/HCy+8gPHjx+ONN96Avb09fvvtN8TExJg8iuXm5gZbW1v89NNPqF+/PmxsbIxqIsvAOVBERFSjrVy5EiEhIaUGlYEDB+LEiRPIysrCli1bsG3bNrRu3RrLly/XvwtPqVQC0M1tiouLw4ULFxAYGIi2bdti+vTpBqcFn8TKygpffvkloqKiULduXbz00ksVcyepwnEEioiIarSdO3eWuaxDhw76Sxm0bt0a//znP/XL5syZox8lKta+fXvs27evzP1duXLFqK3kVcffeOMNvPHGGyZWT+bCAEVERGSCZcuWoX379qhduzYOHz6M+fPnG13jiWoOBigiIiITXLx4EZ988gnu37+PBg0a4N///jemTZtm7rLITGpsgEq+mYHNJ67j2JX7uJ6ehTkBQNuP98GzjgodvFwwKMATrepx4h4RVa2HOWpcTctDepYaWTn5EADsPpEGlb0N6qgUaOhmC2d7xRP3U12orFVm3V6KhQsXYuHChVV2PLJsNS5AXUnPwdStZ3As9T7kMgEarQilXHd+W60V8futLFy4k421R66ig7cL5g1sDa869maumoieddn5RUhMycS9LDUEACJ0/wgARBHIzC1CVm4RLt/JQ22VAu0aO8LBpvq/hPvU9sGF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KE9PT6Snp1vUHKiYmBiEhoZazDwDS8M+Mg37yTTsJ9NYYj9lZmaiTp06lTsHisiMKmUOFABYW1vrLzTm7++P48ePY/HixYiKiip1faVSqb/I2KMUCoXFvCAUs8SaLA37yDTsJ9Own0xjSf1kSh0S/y4nsiimPn+f+jpQWq3WYISJiIhqpuJwxdN8VJ0VP3+f9MeCpBGoadOmoXfv3mjQoAGysrIQHR2N2NhY7N27t/yVEhHRM0Eul8PZ2Vl/RW07OzsIgmDmqohMI4oicnNzkZaWBmdnZ8jl8seuLylApaWlYcSIEbh16xacnJzQunVr7N271+jDFYmIqGZyd3cHAJM+loTIEjk7O+ufx48jKUCtXLmy3AUREdGzTxAEeHh4wM3NzaIuv0BkCoVC8cSRp2Llvg4UERFRWeRyucm/iIiqI36YMBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEkkKUHPnzkX79u2hUqng5uaG/v37448//qis2oiIiIgskqQAFRcXh4iICPz666+IiYmBWq1Gz549kZOTU1n1EREREVkcKykr//TTTwa316xZAzc3N5w8eRJdu3YtdZuCggIUFBTob2dmZgIA1Go11Gq11HorRXEdllKPJWIfmYb9ZBr2k2kssZ8sqRYicxJEURTLu/GlS5fg4+ODs2fPolWrVqWuM3PmTMyaNcuoPTo6GnZ2duU9NBERmUFubi6GDRuGjIwMODo6mrscIrMpd4DSarX45z//iYcPHyIhIaHM9UobgfL09ER6errF/PCp1WrExMQgNDQUCoXC3OVYJPaRadhPpmE/mcYS+ykzMxN16tRhgKIaT9IpvEdFREQgOTn5seEJAJRKJZRKpVG7QqGwmBeEYpZYk6VhH5mG/WQa9pNpLKmfLKUOInMrV4AaP348du3ahfj4eNSvX7+iayIiIiKyaJIClCiKeOedd7B9+3bExsbC29u7suoiIiIisliSAlRERASio6OxY8cOqFQq3L59GwDg5OQEW1vbSimQiIiIyNJIug7U8uXLkZGRgeDgYHh4eOi/Nm3aVFn1EREREVkcyafwiIiIiGo6fhYeERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJJGVuQswl+SbGdh84jqOXbmP6+lZmBMAtP14HzzrqNDBywWDAjzRqp6TucukaoDPJdM8zFHjaloe0rPUyMrJhwBg94k0qOxtUEelQEM3WzjbK8xdptmxn4iqhxoXoK6k52Dq1jM4lnofcpkAjVaEUi4CANRaEb/fysKFO9lYe+QqOni7YN7A1vCqY2/mqskS8blkmuz8IiSmZOJelhoCABG6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jAw4Ojqauxwis6n060BNmzYNkyZN0t/OzMyEp6cnevbsWaU/fKfvnEbX1V1LXWYrs8WqVqswOnl0mdeBih8VD7/n/CqzRIumVqsRExOD0NBQKBQKc5djsdhPpmE/mcYS+6n4LAJRTScpQNWpUwdyuRx37twxaL9z5w7c3d1L3UapVEKpVBq1KxSKKn1BkMllZYajYnnavDLXkcllFvMCZk5V/bhVV+wn07CfTGNJ/WQpdRCZm6RJ5NbW1vD398eBAwf0bVqtFgcOHDA4pUdERET0LJN8Cm/SpEkYOXIkAgIC0KFDByxatAg5OTkYNWpUZdRHREREZHEkB6jBgwfj7t27mD59Om7fvo02bdrgp59+wnPPPVcZ9RERERFZnHJNIh8/fjzGjx9f0bUQERERVQs15rPwVNYqs25PREREz45Kv4yBpfCp7YML4y8gqzDLaJlWo8XNkzcRPyoeMrlxplRZq+BT26cqyiQiIqJqoMYEKABlhiC1Wo2buAm/5/z4Fl0iIiJ6ohpzCo+IiIioojBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUlkVdUHFEURAJCZmVnVhy6TWq1Gbm4uMjMzoVAozF2ORWIfmYb9ZBr2k2kssZ+KX7uLX8uJaqoqD1BZWVkAAE9Pz6o+NBERVZCsrCw4OTmZuwwisxHEKv4zQqvV4s8//4RKpYIgCFV56DJlZmbC09MT169fh6Ojo7nLsUjsI9Own0zDfjKNJfaTKIrIyspC3bp1IZNxFgjVXFU+AiWTyVC/fv2qPqxJHB0dLeZFylKxj0zDfjIN+8k0ltZPHHki4iRyIiIiIskYoIiIiIgkYoACoFQqMWPGDCiVSnOXYrHYR6ZhP5mG/WQa9hOR5arySeRERERE1R1HoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCSq8QFq6dKl8PLygo2NDTp27Ihjx46ZuySLEx8fj379+qFu3boQBAHff/+9uUuyOHPnzkX79u2hUqng5uaG/v37448//jB3WRZn+fLlaN26tf7K2p06dcKPP/5o7rIsXmRkJARBwIQJE8xdChH9pUYHqE2bNmHSpEmYMWMGEhMT4efnh7CwMKSlpZm7NIuSk5MDPz8/LF261NylWKy4uDhERETg119/RUxMDNRqNXr27ImcnBxzl2ZR6tevj8jISJw8eRInTpxA9+7d8dJLL+HcuXPmLs1iHT9+HFFRUWjdurW5SyGiR9To60B17NgR7du3x5IlSwDoPujY09MT77zzDj744AMzV2eZBEHA9u3b0b9/f3OXYtHu3r0LNzc3xMXFoWvXruYux6K5uLhg/vz5GDNmjLlLsTjZ2dlo164dli1bhk8++QRt2rTBokWLzF0WEaEGj0AVFhbi5MmTCAkJ0bfJZDKEhITgyJEjZqyMngUZGRkAdOGASqfRaLBx40bk5OSgU6dO5i7HIkVERKBv374Gr1NEZBmszF2AuaSnp0Oj0eC5554zaH/uuedw/vx5M1VFzwKtVosJEyagc+fOaNWqlbnLsThnz55Fp06dkJ+fDwcHB2zfvh2+vr7mLsvibNy4EYmJiTh+/Li5SyGiUtTYAEVUWSIiIpCcnIyEhARzl2KRmjVrhqSkJGRkZGDLli0YOXIk4uLiGKIecf36dbz33nuIiYmBjY2NucsholLU2ABVp04dyOVy3Llzx6D9zp07cHd3N1NVVN2NHz8eu3btQnx8POrXr2/uciyStbU1mjRpAgDw9/fH8ePHsXjxYkRFRZm5Mstx8uRJpKWloV27dvo2jUaD+Ph4LFmyBAUFBZDL5WaskIhq7Bwoa2tr+Pv748CBA/o2rVaLAwcOcD4GSSaKIsaPH4/t27fj4MGD8Pb2NndJ1YZWq0VBQYG5y7AoPXr0wNmzZ5GUlKT/CggIwPDhw5GUlMTwRGQBauwIFABMmjQJI0eOREBAADp06IBFixYhJycHo0aNMndpFiU7OxuXLl3S305NTUVSUhJcXFzQoEEDM1ZmOSIiIhAdHY0dO3ZApVLh9u3bAAAnJyfY2tqauTrLMW3aNPTu3RsNGjRAVlYWoqOjERsbi71795q7NIuiUqmM5s/Z29ujdu3anFdHZCFqdIAaPHgw7t69i+nTp+P27dto06YNfvrpJ6OJ5TXdiRMn0K1bN/3tSZMmAQBGjhyJNWvWmKkqy7J8+XIAQHBwsEH76tWrER4eXvUFWai0tDSMGDECt27dgpOTE1q3bo29e/ciNDTU3KUREUlSo68DRURERFQeNXYOFBEREVF5MUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQk0f8DlOdb2qDcOqQAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "for t in range(20): \n", - " obs = info['observation']\n", - " print(obs.shape)\n", - " #env_state = jtu.tree_map(lambda x: print(x.shape), info['env'])\n", - " print(info['qs'][0][t].shape)\n", - " env_state = jtu.tree_map(lambda x: x[t], info['env'])\n", - " env.render_env(env_state)\n", + "ims = []\n", + "for t in range(10): \n", + " print(f'Time t={t}')\n", + " obs = jtu.tree_map(lambda x: x[:, t], info['observation'])\n", + " print(obs)\n", + " act = info['action'][:, t, 0]\n", + "\n", + " qpi = info['qpi'][:, t]\n", + "\n", + " plt.figure(figsize=(3,3))\n", + " plt.bar(np.arange(qpi[0].shape[0]), qpi[0])\n", + " plt.show()\n", "\n", - " print(info['qs'][0][t][0].argmax())\n", - " print(info['qs'][0][t][1].argmax())\n", - " print(\"--\")" + " pos_idx = (obs[0][0][0])\n", + "\n", + " p = env.index_to_position(pos_idx)\n", + "\n", + " #env_state = jtu.tree_map(lambda x: print(x.shape), info['env'])\n", + " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", + " ims.append(env.render_env(env_state))\n", + "ims = [np.array(i) for i in ims]" ] } ], diff --git a/pymdp/jax/envs/env.py b/pymdp/jax/envs/env.py index 81c3a062..2925a8dc 100644 --- a/pymdp/jax/envs/env.py +++ b/pymdp/jax/envs/env.py @@ -70,4 +70,6 @@ def step(self, rng_key: PRNGKeyArray, actions: Optional[Array] = None): new_obs = jtu.tree_map(cat_sample, keys, obs_probs) new_obs = jtu.tree_map(lambda x: jnp.expand_dims(x, -1), new_obs) + new_obs = jtu.tree_map(lambda x: jnp.expand_dims(x, -1), new_obs) + return new_obs, tree_at(lambda x: (x.state), self, new_state) diff --git a/pymdp/jax/envs/generalized_tmaze.py b/pymdp/jax/envs/generalized_tmaze.py index 3016caaa..b85406cf 100644 --- a/pymdp/jax/envs/generalized_tmaze.py +++ b/pymdp/jax/envs/generalized_tmaze.py @@ -232,7 +232,6 @@ def render_env(self, env_state): """ current_position = env_state.state[0] current_position = self.index_to_position(current_position) - print("!", current_position) # Create a copy of the maze for rendering maze_copy = np.copy(self.maze) diff --git a/pymdp/jax/envs/rollout.py b/pymdp/jax/envs/rollout.py index 51566ce2..737f6f5f 100644 --- a/pymdp/jax/envs/rollout.py +++ b/pymdp/jax/envs/rollout.py @@ -46,16 +46,15 @@ def step_fn(carry, x): # so we don't need past actions or qs_hist qs = agent.infer_states( observations=observation_t, - past_actions=action_t, + past_actions=None, empirical_prior=empirical_prior, qs_hist=None, ) qpi, nefe = agent.infer_policies(qs) - keys = jr.split(rng_key, batch_size + 2) + keys = jr.split(rng_key, batch_size + 1) rng_key = keys[0] - action_t = agent.sample_action(qpi, rng_key=keys[2:]) - # action_t.at[0, 0].set(jr.randint(keys[1], shape=1, minval=0, maxval=4)) + action_t = agent.sample_action(qpi, rng_key=keys[1:]) keys = jr.split(rng_key, batch_size + 1) rng_key = keys[0] From 3d5387b5bca07d4a0284bc732d0472120e2c9387 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Wed, 12 Jun 2024 09:16:43 +0200 Subject: [PATCH 088/196] made environment functional and added docstrings --- examples/generalized_tmaze_demo.ipynb | 197 ++----- pymdp/jax/envs/generalized_tmaze.py | 764 ++++++++++++++------------ 2 files changed, 469 insertions(+), 492 deletions(-) diff --git a/examples/generalized_tmaze_demo.ipynb b/examples/generalized_tmaze_demo.ipynb index 51507e35..72740fdb 100644 --- a/examples/generalized_tmaze_demo.ipynb +++ b/examples/generalized_tmaze_demo.ipynb @@ -17,7 +17,9 @@ "%autoreload 2\n", "\n", "import pymdp\n", - "from pymdp.jax.envs.generalized_tmaze import GeneralizedTMaze, GeneralizedTMazeEnv\n", + "from pymdp.jax.envs.generalized_tmaze import (\n", + " GeneralizedTMazeEnv, parse_maze, render, index_to_position\n", + ")\n", "from pymdp.jax.envs.rollout import rollout\n", "from pymdp.jax.agent import Agent\n", "\n", @@ -58,7 +60,7 @@ "outputs": [ { "data": { - "image/png": "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X9370RKPp0qtxdaWwYkslqRTeABw9uxZdOrUCbm5uXBwcEBUVBT69OlT4vozZ87ErFmzjNqjoqJgZ2cnvWIiIjKb7OxsDBs2rGJP4RGZkanHseQAlZ+fj+vXryMtLQ1btmzBN998g9jYWIOLfj2uuBEoDw8PpKamWtQcqOjoaISEhFjMPANLwz4yDfvpH6fvnkbX1V2LXWYrs8WqVqsw+tzoEudAxY2Kg28d34os0eJZ4vGUnp6OWrVqMUDRM6tC5kABgLW1tf5CY35+fjh+/DgWL16MyMjIYtdXKpX6i4w9TqFQWMwTQiFLrMnSsI9Mw34CZHJZieGoUI42p8R1ZHJZte/DQpZ0PJlSh8S/y4ksiqnH71NfB0qr1RqMMBERUfVUGK6ys7PNXAlR2RUev0/6Y0HSCNS0adPQu3dvNGjQABkZGYiKikJMTAz27t1b9kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRHZ2dlISUmBs7Mz5HJ5qetLClApKSkYMWIEbt++DScnJ7Ru3Rp79+41+nBFIiKqntzc3ADApI8lIbJEzs7O+uO4NJIC1MqVK8tcEBERPfsEQYC7uztq165tUZdfIDKFQqF44shToTJfB4qIqDQqa5VZtyfzksvlJr8QEVVFDFBEVCG8a3rj4viLyMjPMFqm1Whx6+QtxI2Kg0xu/F4WlbUK3jW9K6NMIqIyYYAiogpTUghSq9W4hVvwreNrMW/PJyKS4qkvY0BERERU3TBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEkgLU3Llz0b59e6hUKtSuXRv9+/fHn3/+WVG1EREREVkkSQEqNjYW4eHh+O233xAdHQ21Wo2ePXsiKyurouojIiIisjhWUlb++eefDW6vWbMGtWvXxsmTJ9G1a9dit8nLy0NeXp7+dnp6OgBArVZDrVZLrbdCFNZhKfVYIvaRadhPpmE/mcYS+8mSaiEyJ0EURbGsG1++fBne3t44e/YsWrVqVew6M2fOxKxZs4zao6KiYGdnV9ZdExGRGWRnZ2PYsGFIS0uDo6OjucshMpsyByitVot///vfePToEeLj40tcr7gRKA8PD6SmplrML59arUZ0dDRCQkKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LT01GrVi0GKKr2JJ3Ce1x4eDjOnTtXangCAKVSCaVSadSuUCgs5gmhkCXWZGnYR6ZhP5mG/WQaS+onS6mDyNzKFKDGjx+PXbt2IS4uDvXr1y/vmoiIiIgsmqQAJYoi3nnnHWzfvh0xMTHw8vKqqLqIiIiILJakABUeHo6oqCjs2LEDKpUKd+7cAQA4OTnB1ta2QgokIiIisjSSrgO1fPlypKWlISgoCO7u7vqvTZs2VVR9RERERBZH8ik8IiIiouqOn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIx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vCr2kzmew4kskeRTeEFBQRBF0ejLlPBkLp617DF/UGuj+QaFCt8Z9fg7pB4nAJg/qPUz/YJHpuGxZBoHGyu0a1zyi2vhu8cefxdZUe0aOz7T4QlgPxFVZdXmt+7FNvUAAFM26z4MtuhcluLIZQLkgoD5g1rrtyfisWQaj1q6OTkJSboPzDVlqFuA7u347Ro76rd/1rGfiKqmahOgAN0Ln299Z0zdegbHkh9ALhOKffErbPdvWAOfDXz2RwtIOh5LpvGoZYsaDgokJKXjfoYaAooPCIXtLipFtRxRYT8RVT3V7rfPs5Y9vn+zE87dSsPmEzdw/OpDXE/VfbyMQiagcW1HtPesgUH+Hs/sJF8qHzyWTONgY4WuLV3wKEuNayk5uJ+hRnqW7vpHgqC7flFNlQINa9tW64nQ7CeiqqXaBahCreo56V/UCidIn5res1pPkKay4bFkGmd7BZy9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1NKlS+Hp6QkbGxt07NgRx44dK++6iIiIiCyW5AC1adMmTJo0CTNmzEBCQgJ8fX0RGhqKlJSUiqiPiIiIyOJIDlBffPEFxo4di1GjRsHHxwdff/017OzssGrVqoqoj4iIiMjiWElZOT8/HydPnsS0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", + "image/png": "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r7BazQjx6quvsmTJEqKjo2nbtm2J17Zarfzvf//j119/pWXLlowbN45Jkya5lfH29ubbb7+lVq1a3HLLLbRq1YoJEya46ta3b18SEhLo3r07ERERfPTRR1gsFhYsWECNGjXo0qULPXr0oGHDhsydO/eC2uiWW26hbdu2fPHFF6xYsYK2bdue832dq30sFgtfffUVXbp04e6776ZJkyYMGjSIffv2Ubt27RLf08WwGEY5LpAjIiLiwXJyckhKSjrnWmjnVNyzYq1e5kSJrDTAMHvq2t1pjssToWyfO92KFRERqSzhjaDrU+YTJfat+XOdOqvNnCgR09G8/VrOPXVy+VCwExERqUx2X6jXAeq2/3OdOpu3Ofu1gidKiOdTsBMREakKFssfT5So2MWH5fKiyRMiIiIiHkLBTkREpIw071AqU1k+bwp2IiIipWS32wHIysqq4prI5aTw81b4+TsXjbETEREpJZvNRmhoKCkpKQD4+/uX+IxVkYtlGAZZWVmkpKQQGhpa4lqDZ9I6diIiImVgGAZHjhwhPT29qqsil4nQ0FAiIyNL9Z8IBTsREZEL4HA4yM/Pr+pqiIez2+2l6qkrpGAnIiIi4iE0eUJERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4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", "text/plain": [ "
" ] @@ -68,21 +70,24 @@ } ], "source": [ - "M = np.zeros((5, 5))\n", + "M = np.zeros((3, 5))\n", "\n", - "M[1,0] = 4\n", - "M[1,2] = 5\n", - "M[1,3] = 7\n", + "# Set the reward locations\n", + "M[0,0] = 4\n", + "M[0,1] = 5\n", + "M[0,3] = 7\n", + "M[0,4] = 8\n", "\n", - "M[1,4] = 8\n", - "M[4,0] = 3\n", - "M[4,4] = 6\n", + "# Set the cue locations\n", + "M[2,0] = 3\n", + "M[2,4] = 6\n", "\n", - "M[3,3] = 1\n", + "# Set the initial position\n", + "M[2,2] = 1\n", "\n", - "env = GeneralizedTMaze(M)\n", - "tmaze_env = GeneralizedTMazeEnv(M)\n", - "_ = env.render_env(tmaze_env)" + "env_info = parse_maze(M)\n", + "tmaze_env = GeneralizedTMazeEnv(env_info)\n", + "_ = render(env_info, tmaze_env)" ] }, { @@ -100,7 +105,6 @@ "metadata": {}, "outputs": [], "source": [ - "\n", "A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", "B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", "A_dependencies = tmaze_env.dependencies[\"A\"]\n", @@ -114,7 +118,7 @@ "agent = Agent(\n", " A, B, C, D, \n", " None, None, None, \n", - " policy_len=5,\n", + " policy_len=4,\n", " A_dependencies=A_dependencies, \n", " B_dependencies=B_dependencies\n", ")" @@ -141,7 +145,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -149,22 +153,12 @@ "output_type": "stream", "text": [ "Time t=0\n", - "[Array([[19]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[11]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAAGzCAYAAADg2in0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABUg0lEQVR4nO3deVxU5f4H8M+ZYRi2AURRUFFQcUETFdRMEVQQl+vNNHMrRc0WoVKvWt5bLplJaqnlEv5yLVFzy1xKcQHCzA1xK1MR11TEhX0ZZs7vj4nJYUDnIDCDfN6vF+I8Z/vOM8Pw4TnPnBFEURRBRERERCaTmbsAIiIioqqGAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKTDJjxgwIgmDQ5unpibCwsEqtY/Xq1RAEAVeuXKnU45Jp+PgQUXXBAPUUUlJSEBERgaZNm8LOzg52dnbw8fFBeHg4Tp8+be7yqqUrV65AEASTvkr7Je/p6QlBEBAcHFzi8v/7v//T7+P48eMVeG/K5kl9EBkZae4Sq5Xo6GgsXLjQ3GUQUTmzMncBVdXOnTsxePBgWFlZYfjw4fD19YVMJsP58+exdetWLFu2DCkpKWjYsKG5S60wf/75J2Qyy8rgrq6u+Pbbbw3aPv/8c9y4cQMLFiwwWrc0NjY2OHjwIG7fvg03NzeDZevWrYONjQ3y8vLKr/AKMHToUPTp08eovW3bthV2zNdeew1DhgyBUqmssGNUNdHR0Th79izGjx9v7lKIqBwxQJVBcnIyhgwZgoYNG2L//v1wd3c3WP7ZZ59h6dKlFhcuHpWdnQ17e/un2ocl/pK0t7fHq6++atC2YcMGPHjwwKj9cTp37oxjx45h48aNeO+99/TtN27cwC+//IKXXnoJW7ZsKbe6K0K7du0k3efyIJfLIZfLH7uOKIrIy8uDra1tJVVFRFT+LPc3vAWbO3cusrOzsWrVKqPwBABWVlZ499134eHhYdB+/vx5vPzyy3BxcYGNjQ38/f3x448/GqxTNIfk0KFDmDhxIlxdXWFvb4+XXnoJd+/eNTrWTz/9hICAANjb20OlUqFv3744d+6cwTphYWFwcHBAcnIy+vTpA5VKheHDhwMAfvnlFwwaNAgNGjSAUqmEh4cHJkyYgNzc3Cf2Q/E5UKaeLjOlHwDg3Llz6N69O2xtbVG/fn188skn0Gq1T6yrPNjY2GDAgAGIjo42aF+/fj1q1KiB0NBQo21Onz6NsLAwNGrUCDY2NnBzc8Po0aNx7949/TpPOr32qCNHjqBXr15wcnKCnZ0dAgMDcejQoXK9n56envjXv/6FhIQEdOjQATY2NmjUqBHWrl2rX+f48eMQBAFr1qwx2n7Pnj0QBAE7d+4EUPIcqKJj7NmzB/7+/rC1tUVUVBQA4PLlyxg0aBBcXFxgZ2eH559/Hrt27TI4RmxsLARBwPfff4/Zs2ejfv36sLGxQY8ePXDp0iWDdYOCgtCqVSucPn0agYGBsLOzQ5MmTbB582YAQFxcHDp27AhbW1s0a9YM+/btM7pPN2/exOjRo1GnTh0olUq0bNkSK1euLFNNQUFB2LVrF65evap/jD09PU14ZIjI0nEEqgx27tyJJk2aoGPHjiZvc+7cOXTu3Bn16tXDBx98AHt7e3z//ffo378/tmzZgpdeeslg/XfeeQc1atTA9OnTceXKFSxcuBARERHYuHGjfp1vv/0WI0eORGhoKD777DPk5ORg2bJl6NKlC06ePGnwQl1YWIjQ0FB06dIF8+fPh52dHQBg06ZNyMnJwdtvv42aNWvi6NGj+Oqrr3Djxg1s2rRJUr8UP3UGAB9++CFSU1Ph4OAgqR9u376Nbt26obCwUL/e8uXLK3XUYtiwYejZsyeSk5PRuHFjALrTMS+//DIUCoXR+jExMbh8+TJGjRoFNzc3nDt3DsuXL8e5c+fw22+/QRCEEk8xqtVqTJgwAdbW1vq2AwcOoHfv3vDz88P06dMhk8mwatUqdO/eHb/88gs6dOjwxPpzcnKQlpZm1O7s7Awrq39+9C9duoSXX34ZY8aMwciRI7Fy5UqEhYXBz88PLVu2hL+/Pxo1aoTvv/8eI0eONNjXxo0bSw2Uj/rzzz8xdOhQvPnmmxg7diyaNWuGO3fu4IUXXkBOTg7effdd1KxZE2vWrMG///1vbN682ehnIjIyEjKZDJMmTUJ6ejrmzp2L4cOH48iRIwbrPXjwAP/6178wZMgQDBo0CMuWLcOQIUOwbt06jB8/Hm+99RaGDRuGefPm4eWXX8b169ehUqkAAHfu3MHzzz8PQRAQEREBV1dX/PTTTxgzZgwyMjKMTsM9qab//e9/SE9PNziFXPSzQERVnEiSpKeniwDE/v37Gy178OCBePfuXf1XTk6OflmPHj3E5557TszLy9O3abVa8YUXXhC9vb31batWrRIBiMHBwaJWq9W3T5gwQZTL5eLDhw9FURTFzMxM0dnZWRw7dqxBDbdv3xadnJwM2keOHCkCED/44AOjmh+tscicOXNEQRDEq1ev6tumT58uFn+6NGzYUBw5cqTR9kXmzp0rAhDXrl0ruR/Gjx8vAhCPHDmib0tNTRWdnJxEAGJKSkqpxy2ub9++YsOGDU1ev2HDhmLfvn3FwsJC0c3NTZw1a5YoiqL4+++/iwDEuLg4/eN07Ngx/XYl9eX69etFAGJ8fHypxxs3bpwol8vFAwcOiKKo6w9vb28xNDTU4DmQk5Mjenl5iSEhIY+tPyUlRQRQ6tfhw4cN7mvx+lJTU0WlUin+5z//0bdNnTpVVCgU4v379/Vt+fn5orOzszh69Gh9W1G/PPr4FB3j559/Nqiz6DH+5Zdf9G2ZmZmil5eX6OnpKWo0GlEURfHgwYMiALFFixZifn6+ft1FixaJAMQzZ87o2wIDA0UAYnR0tL7t/PnzIgBRJpOJv/32m759z549IgBx1apV+rYxY8aI7u7uYlpamkGtQ4YMEZ2cnPSPsZSapD7/iKhq4Ck8iTIyMgCU/FdkUFAQXF1d9V9LliwBANy/fx8HDhzAK6+8gszMTKSlpSEtLQ337t1DaGgoLl68iJs3bxrs64033jA4pRMQEACNRoOrV68C0I12PHz4EEOHDtXvLy0tDXK5HB07dsTBgweN6nv77beN2h4d0cnOzkZaWhpeeOEFiKKIkydPlqGHdA4ePIipU6finXfewWuvvSa5H3bv3o3nn3/eYKTF1dVVf+qxMsjlcrzyyitYv349AN3kcQ8PDwQEBJS4/qN9mZeXh7S0NDz//PMAgMTExBK3Wbt2LZYuXYq5c+eiW7duAICkpCRcvHgRw4YNw7179/T9lJ2djR49eiA+Pt6kU5lvvPEGYmJijL58fHwM1vPx8TG4T66urmjWrBkuX76sbxs8eDDUajW2bt2qb9u7dy8ePnyIwYMHP7EWLy8vo1Gq3bt3o0OHDujSpYu+zcHBAW+88QauXLmC33//3WD9UaNGGYzSFdX8aJ1F+xgyZIj+drNmzeDs7IwWLVoYjBoX/b9oe1EUsWXLFvTr1w+iKBr8XIWGhiI9Pd3ocTS1JiJ69vAUnkRFQ/1ZWVlGy6KiopCZmYk7d+4YTN69dOkSRFHERx99hI8++qjE/aampqJevXr62w0aNDBYXqNGDQC60xMAcPHiRQBA9+7dS9yfo6OjwW0rKyvUr1/faL1r165h2rRp+PHHH/X7LpKenl7ivp/kxo0bGDx4MDp37owvvvhC3y6lH65evVriKdJmzZqVqabi0tPTDeZ5WVtbw8XFxWi9YcOG4csvv8SpU6cQHR2NIUOGGM1VKnL//n3MnDkTGzZsQGpqqtHxiktKSsJbb72FoUOHYuLEifr2ose2+Omy4vsrek6Uxtvbu9RLMTyq+HMN0D3fHn0++Pr6onnz5ti4cSPGjBkDQHf6rlatWqU+Bx/l5eVl1FbaY9yiRQv98latWpVaZ/GfiSL169c3eoycnJyM5iQ6OTkZbH/37l08fPgQy5cvx/Lly0u8H8UfV1NrIqJnDwOURE5OTnB3d8fZs2eNlhX9Mih+faGi0YJJkyaVOlekSZMmBrdLeyeTKIoG+/z222+N3mYPwGCOC6B7x1zxdwVqNBqEhITg/v37eP/999G8eXPY29vj5s2bCAsLK9OE7YKCArz88stQKpX4/vvvDeooSz9UlPfee89gUnRgYCBiY2ON1uvYsSMaN26M8ePHIyUlBcOGDSt1n6+88gp+/fVXTJ48GW3atIGDgwO0Wi169epl1JcPHjzAwIED0bRpU3zzzTcGy4rWnTdvHtq0aVPiscpzHs2TnmtFBg8ejNmzZyMtLQ0qlQo//vgjhg4davRcK0l5zF0ztc7S1jP1Z+rVV18tNby2bt26TDUR0bOHAaoM+vbti2+++QZHjx41aTJvo0aNAAAKhcKkEQFTFE1qrl27dpn3eebMGVy4cAFr1qzBiBEj9O0xMTFlruvdd99FUlIS4uPjUadOHYNlUvqhYcOG+pGYR/35559lru1RU6ZMMRglfNxoztChQ/HJJ5+gRYsWpQaaBw8eYP/+/Zg5cyamTZumby/pPmi1WgwfPhwPHz7Evn379BP6ixQ9to6OjuX2fCkPgwcPxsyZM7FlyxbUqVMHGRkZBqfKpGrYsGGJj+f58+f1yyuTq6srVCoVNBpNufZ7aSOWRFS1cQ5UGUyZMgV2dnYYPXo07ty5Y7S8+F+ftWvXRlBQEKKionDr1i2j9Uu6PMGThIaGwtHREZ9++inUanWZ9ln01/Oj9YqiiEWLFkmuBwBWrVqFqKgoLFmypMRgKaUf+vTpg99++w1Hjx41WL5u3boy1Vacj48PgoOD9V9+fn6lrvv6669j+vTp+Pzzz0tdp6S+BFDiFahnzpyJPXv2YP369SWe2vLz80Pjxo0xf/78Ek8Vl+X5Uh5atGiB5557Dhs3bsTGjRvh7u6Orl27lnl/ffr0wdGjR3H48GF9W3Z2NpYvXw5PT0+juVoVTS6XY+DAgdiyZUuJI8xl7Xd7e/synw4nIsvFEagy8Pb2RnR0NIYOHYpmzZrpr0QuiiJSUlIQHR0NmUxmMOdoyZIl6NKlC5577jmMHTsWjRo1wp07d3D48GHcuHEDp06dklSDo6Mjli1bhtdeew3t2rXDkCFD4OrqimvXrmHXrl3o3LkzFi9e/Nh9NG/eHI0bN8akSZNw8+ZNODo6YsuWLWWav5GWloZx48bBx8cHSqUS3333ncHyl156Cfb29ib3w5QpU/Dtt9+iV69eeO+99/SXMWjYsGGlf0xOw4YNMWPGjMeu4+joiK5du2Lu3LlQq9WoV68e9u7di5SUFIP1zpw5g1mzZqFr165ITU016qdXX30VMpkM33zzDXr37o2WLVti1KhRqFevHm7evImDBw/C0dERO3bseGLdiYmJRvsHdCNcnTp1evIdL8HgwYMxbdo02NjYYMyYMU91sdgPPvgA69evR+/evfHuu+/CxcUFa9asQUpKCrZs2WKWC9FGRkbi4MGD6NixI8aOHQsfHx/cv38fiYmJ2LdvH+7fvy95n35+fti4cSMmTpyI9u3bw8HBAf369auA6omoUpnhnX/PjEuXLolvv/222KRJE9HGxka0tbUVmzdvLr711ltiUlKS0frJycniiBEjRDc3N1GhUIj16tUT//Wvf4mbN2/Wr1PS2+NF8Z+3TR88eNCoPTQ0VHRychJtbGzExo0bi2FhYeLx48f164wcOVK0t7cv8T78/vvvYnBwsOjg4CDWqlVLHDt2rHjq1Cmjt3c/6TIGT3rr/KNvazelH0RRFE+fPi0GBgaKNjY2Yr169cRZs2aJK1asqLTLGDxOSY/TjRs3xJdeekl0dnYWnZycxEGDBol//fWXCECcPn26KIr/PI6lfT3q5MmT4oABA8SaNWuKSqVSbNiwofjKK6+I+/fvf2xtT3osHr30RGn3NTAwUAwMDDRqv3jxon4/CQkJpfZL8csYlNafycnJ4ssvvyw6OzuLNjY2YocOHcSdO3carFPUZ5s2bSrxfj76PA0MDBRbtmxpdJzSagAghoeHG7TduXNHDA8PFz08PESFQiG6ubmJPXr0EJcvX16mmrKyssRhw4aJzs7OIgBe0oDoGSGIImc7EhEREUnBOVBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERSVTpF9LUarX466+/oFKp+BEHRERVjCiKyMzMRN26dc1ysVMiS1HpAeqvv/4y+lR0IiKqWq5fv27waQtE1U2lByiVSgVA98Pn6OhY2YcvkVqtxt69e9GzZ08oFApzl2OR2EemYT+Zhv1kGkvsp4yMDHh4eOhfy4mqq0oPUEWn7RwdHS0qQNnZ2cHR0dFiXqQsDfvINOwn07CfTGPJ/cQpGFTd8QQ2ERERkUQMUEREREQSMUARERERSVTpc6CIiOjZJooiCgsLodFozF0KkSRyuRxWVlYmzfFjgCIionJTUFCAW7duIScnx9ylEJWJnZ0d3N3dYW1t/dj1GKCIiKhcaLVapKSkQC6Xo27durC2tua79ajKEEURBQUFuHv3LlJSUuDt7f3Yi8UyQBERUbkoKCiAVquFh4cH7OzszF0OkWS2trZQKBS4evUqCgoKYGNjU+q6nERORETlih/xQlWZqc9fPsuJiIiIJOIpPCIiMquL9y4isyBT8nYqaxW8a3pXQEVET8YARUREZnPx3kU0Xdy0zNtfiLjAEEVmwVN4RERkNmUZeSrP7Ys7fPgw5HI5+vbtW677NdWVK1cgCAKSkpLMcnwyHQMUERHR31asWIF33nkH8fHx+Ouvv8xdDlkwBigiIiIAWVlZ2LhxI95++2307dsXq1evNlj+448/wtvbGzY2NujWrRvWrFkDQRDw8OFD/ToJCQkICAiAra0tPDw88O677yI7O1u/3NPTE59++ilGjx4NlUqFBg0aYPny5frlXl5eAIC2bdtCEAQEBQVV5F2mp8AARUREBOD7779H8+bN0axZM7z66qtYuXIlRFEEAKSkpODll19G//79cerUKbz55pv43//+Z7B9cnIyevXqhYEDB+L06dPYuHEjEhISEBERYbDe559/Dn9/f5w8eRLjxo3D22+/jT///BMAcPToUQDAvn37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1MfM1pbBiSyWpFN4AHDmzBl06tQJeXl5cHBwQHR0NPr06VPq+jNmzMDMmTON2qOjo2FnZye9YiIiMpucnBwMGzasYk/hEZmRqc9jyQGqoKAA165dQ3p6OjZv3oxvvvkGcXFxBhf9elRJI1AeHh5IS0uzqDlQMTExCAkJqfbzMUrDPjIN+8k07Kd/nLpzCl1XdS1xma3MFitbrcTos6NLnQMVPyoevnV8K7JEAxkZGahVqxYDFD2zKmQOFABYW1vrLzTm5+eHY8eOYdGiRYiKiipxfaVSqb/I2KMUCoXFvXBaYk2Whn1kGvaTadhPgEwuKzUcFcnV5pa6jkwuq9Q+NOVYEv8uJ7Iopj5/n/o6UFqt1mCEiYiIqqeicJWTk2PmSojKruj5+6Q/FiSNQE2dOhW9e/dGgwYNkJmZiejoaMTGxmLPnj1lr5SIiJ4Jcrkczs7O+itq29nZQRAEM1dFZBpRFJGTk4PU1FQ4OztDLpc/dn1JASo1NRUjRozArVu34OTkhNatW2PPnj1GH65IRETVk5ubGwCY9LEkRJbI2dlZ/zx+HEkBasWKFWUuiIiInn2CIMDd3R21a9fmZSqoylEoFE8ceSpS5utAERHR01NZq8y6fUWRy+Um/yIiqooYoIiIzMi7pjcuRFxAZkGm0TKtRoubJ24iflQ8ZHLj9/yorFXwruldGWUSUTEMUEREZlZaCFKr1biJm/Ct41vtL/dAZGme+jIGRERERNUNAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERSSQpQM2ZMwft27eHSqVC7dq10b9/f/z5558VVRsRERGRRZIUoOLi4hAeHo7ffvsNMTExUKvV6NmzJ7KzsyuqPiIiIiKLYyVl5Z9//tng9urVq1G7dm2cOHECXbt2LXGb/Px85Ofn629nZGQAANRqNdRqtdR6K0RRHZZSjyViH5mG/WQa9pNpLLGfLKkWInMSRFEUy7rxpUuX4O3tjTNnzqBVq1YlrjNjxgzMnDnTqD06Ohp2dnZlPTQREZlBTk4Ohg0bhvT0dDg6Opq7HCKzKXOA0mq1+Pe//42HDx8iISGh1PVKGoHy8PBAWlqaxfzwqdVqxMTEICQkBAqFwtzlWCT2kWnYT6ZhP5nGEvspIyMDtWrVYoCiak/SKbxHhYeH4+zZs48NTwCgVCqhVCqN2hUKhcW8IBSxxJosDfvINOwn07CfTGNJ/WQpdRCZW5kCVEREBHbu3In4+HjUr1+/vGsiIiIismiSApQoinjnnXewbds2xMbGwsvLq6LqIiIiIrJYkgJUeHg4oqOjsX37dqhUKty+fRsA4OTkBFtb2wopkIiIiMjSSLoO1LJly5Ceno6goCC4u7vrvzZu3FhR9RERERFZHMmn8IiIiIiqO34WHhEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBER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LJHkU3hBQUEQRdHoy5TwZC6etewxb1Bro/kGRYreGfXoO6QeJQCYN6j1M/0Lj0zD55JpHGys0K5x6b9ci9499ui7yIpr19jxmQ5PAPuJqCqrNj91L7apBwCYvEn3YbDF57KURC4TIBcEzBvUWr89EZ9LpvGopZuTk5is+8BcU4a6Bejejt+usaN++2cd+4moaqo2AQrQ/eLzre+MKVtO42jKfchlQom//Ira/RvWwGcDn/3RApKOzyXTeNSyRQ0HBRKTM3AvUw0BJQeEonYXlaJajqiwn4iqnmr30+dZyx7fv9kJZ2+mY9Px6zh25QGupek+XkYhE9C4tiPae9bAIH+PZ3aSL5UPPpdM42Bjha4tXfAwW42rqbm4l6lGRrbu+keCoLt+UU2VAg1r21bridDsJ6KqpdoFqCKt6jnpf6kVTZA+Oa1ntZ4gTWXD55JpnO0VcPbS9Ymun3RXzmY/GWI/EVUNz/x1oIiIiIjKGwMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEZQpQS5YsgaenJ2xsbNCxY0ccPXq0vOsiIiIisliSA9TGjRsxceJETJ8+HYmJifD19UVoaChSU1Mroj4iIiIiiyM5QH3xxRcYO3YsRo0aBR8fH3z99dews7PDypUrK6I+IiIiIotjJWXlgoICnDhxAlOnTtW3yWQy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", + "image/png": "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r7BazQjx6quvsmTJEqKjo2nbtm2J17Zarfzvf//j119/pWXLlowbN45Jkya5lfH29ubbb7+lVq1a3HLLLbRq1YoJEya46ta3b18SEhLo3r07ERERfPTRR1gsFhYsWECNGjXo0qULPXr0oGHDhsydO/eC2uiWW26hbdu2fPHFF6xYsYK2bdue832dq30sFgtfffUVXbp04e6776ZJkyYMGjSIffv2Ubt27RLf08WwGEY5LpAjIiLiwXJyckhKSjrnWmjnVNyzYq1e5kSJrDTAMHvq2t1pjssToWyfO92KFRERqSzhjaDrU+YTJfat+XOdOqvNnCgR09G8/VrOPXVy+VCwExERqUx2X6jXAeq2/3OdOpu3Ofu1gidKiOdTsBMREakKFssfT5So2MWH5fKiyRMiIiIiHkLBTkREpIw071AqU1k+bwp2IiIipWS32wHIysqq4prI5aTw81b4+TsXjbETEREpJZvNRmhoKCkpKQD4+/uX+IxVkYtlGAZZWVmkpKQQGhpa4lqDZ9I6diIiImVgGAZHjhwhPT29qqsil4nQ0FAiIyNL9Z8IBTsREZEL4HA4yM/Pr+pqiIez2+2l6qkrpGAnIiIi4iE0eUJERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEB4Z7JxOg3yHE6fTqOqqeCy1sXgEwwBHPjgdVV0Tz6U2FqlUXlVdgfJgGAZHT+Wy7fBJko5ncvBEFgUOA5vVQp1QPxrUDCC+TjB1Q/2wWCxVXd1qK+V0DtsOnSLpeCb707IocDixWS1EhfgRWzOA+KhgosPUxnKJy0qD5I2QugfS9kBBDlgsEBQFYY2gdgsIjwOrR/6/t3Jkp0PyJkjdZbZxfjZggcBaEP5HG9dsAlZbVddUxONYDMOo1l0uaZl5fLM1mQ370zmVk4+3zYq/jxdeVgsOp0FWnoOcfAfBvl60jg7l5pZRRAT5VHW1q5WT2fl8u+0I6/amcTI7H7vNSoC3F162P9s4N99BgK8XLesEc0urOkSG+FZ1tUXc5WXCziWwZzlkHgerHbwDwWYHwwn5WebL7g8RzaBFbzOESOnl58Du72DXd5CZAhYv8A4AmzdgQF4W5GeCl68Z7Fr0hoimVV1rEY9SrYPdb0dO8ckvBziQlk1ksC+h/vZie4sMw+Bkdj5HTuUQFeLHX9vVpXW90MqvcDW0KyWDj3/Zz97jWdQK8iEswLvENj6dU8DhkzlEBHnTp21d2seEVUGNRYpx8iD8OgtStoF/TQiIKLm3KDcDTu4H3xCIvx3iepg9enJup4/C+plwZDP41oDA2iW3cV4mnDxghujmvaDJzeohFSkn1TbY/XbkFLPW7ONUTj6x4QHYrOf/wet0GuxLy8LXbmXYNTEKd+ex51gGM9bsJTUjj9ia/niV4gev0zA4eCIbqwUGX1WfDrEKd1LFTh2Gn6ZAWhLUbPxH79F5GAacTjZ7l1oNgKYJFV/P6izjmNnGx383b2N7laLH3jAg4yjknoT4PhD/FwVokXJQLf+LlJ6Vx/xfD3IqJ5+GNYsPdbbcHPxPHMeWm+PaZrVaiA33JyffyafrD3HsdG5lVrtaycgtYN6vBzmekUujiIBiQ11eroXTJ2zk5f7Z/laLhfph/jgN+GzDIQ6nZ1dmtUXcFeTBpv+Z47wimhUf6nLzIe20+WchiwWC64B3ECQugJTtlVfn6sZRAJvnmqEuolmxoS4714ujaf5k554xrNtigaBI8AuD3xaZ4x5F5KJVy8kTi7cdZV9qFk1qBxW5LVhn6y+0mz+DRj9+h9XpxGm1svvaG1jf724Ot2iPxWIhJsyfHSmn+XprMndcE6PB/sVYtj2FXccyaBwRWKR99mz1ZeX8Gmz9MRDDacFiNWh5bQbd+p2gQQszSEfX8OP3o6dZtPkw917XEGspelRFyt3eH+DwBnNSxNm3BbfshU9WwZrt4DTAaoGOzWFAZ2gZY5YJrA2pO2DLfOj6OHhpfG4RB36Gg+ugRgOwuv9KWbWlHq99chUL1jTG6bRitTq5veNOHh3wM51aHjILBURAzknY+hmENwafwCp4EyKeo9r12B07ncv6/SeoFeRTpKeu9RdzGPDIMBr+tAyr0wmA1emk4U/LGDBuKK0XfWRus1qIDPZl84F0Dp/MKXKNy93J7Hx+TkolzN8bL5v7R2T1FyG89Ug0234yQx2A4bSw7adA3hwXzZpFIQBYLBbqhvqRePgUe1MzK/09iFCQC3tWmuO47H7u+xb8BA+/Bz/+ZoY6MP/88TcYMxUW/mxus1ggNBbSdsGRrZVa/WrB6YA9K/6YiBLgtmvKgrZ0eXgYX/wYh9Np/hxxOq188WMcncfcwbsL2/5ZODQG0vea4/NE5KJUu2CXmHyK9Kx8agS431Kps/UXrn/zRSwY2Bzu6yXZHA4sGFw/+QXqbPsVgBA/O6dzC0g8fKrS6l5dbE8+RWpmHjUD3Xsn9mz1Zf6btQALTod7qDa/tjBvci2Stpm3YgJ9vMjOd7DtkNpYqsDxHeYkiKBI9+1b9sJ/Fpp/dzjd9xV+/cYC2LrP/LuXDxjAoV8qsrbVU+puc+xiUJTb5lVb6vHgf3piYKHA4d5TWuCwYWBh1Bs9Wb21rrnRZjd7+/b/VFk1F/FY1S7YHUjLwmY1x3Kdqd38GTht5347TpuVtvNnAGaPkreXlaTjGRVV1WrrcHo2FijSI7pyfo3zLjtltZnlwGxjf28vdquNpSqcOmz2KJ095uuTVXCenxXYrGa5Qj7BZohxFJR/PauzU4fAkQve/m6bX/vkKmw2ZwkHmWw2J69/ctWfG3xCIP2AuSSKiFywahns/L3dx3HYcnNo9ON3RXrqzmZzOIhbs9Q1oSLA24tDJ7L19ISzHEjLwtfunuDyci1s/TGwSE/d2ZwOC1vWBLomVPh72zh2OpecfK06L5XsVDJYzvoRl5tvjqk7u6fubA4nrE78c0KFdwDknoas1Iqpa3WVebzIpuxcLxasaVykp+5sBQ4bn61u8ueECu9AcxZy5rGKqKnIZaPaBbu8AmeRniSfrAzXmLrzsTqd+GSZPUhWi7nArqN6rvhSYXILnNjO6hHNzbK6xtSdj+G0kJtlfrRsfywUXaDwLJWtILvIYH4yc/4cU3c+TsMsD2ZXtOEEZ/65j7ncFOQWCc+nMr1dY+rOx+m0cirzj2E1VpvZw+pUr6jIxah2wc7HbsXhcP/BnOsfiLOUi1s6rVZy/c1ZVw7DwMtmLRJiLne+dhsFZwVlH38nFmvpfiFarAY+/ubxDqf5aDe7TW0slczuXzQkBPias19Lw2oxy4N5HqutdGvgXU68fMzAe4bggDys1lL+R9vqJDggz/zC1cb28q6lyGWl2gW7+mH+ZOW7/7B2+Piy+9obcNjO3fXvsNnY1bEHDh/zh3VWbgHRNfy0FMdZ6of5k5vv/oPZ28dc0sRqO3e4s9oMWnXMwNvHLJeZW0BksC8+XnompFSyoKgioQMfu7mkSWnG2HWKN8uD+aQEn2BzzTX5U2At888z7nr4+RRwe8edeNnOPfzCy+agT6cd+Pn88fM8L9O85R0QUVG1FbksVLtgFx3mj9NJkXFx6/sOx3qecTNWh5MNfYcD5iOw8hxOYmsGnPOYy1GdUD+wUKTXrmvfEzjPM1TO6TDLgdnG2fkOGkaojaUKhNQ1b8Xmn7WkUf/rSjfGrv91f36de8p8ooKtWi79WXFC6pmTU/LdlzR6pP9aHI5z/3pxOKyM67/2zw056VAjtujSNCJSJtUu2LWoE0INfzupmXlu2w+37MCyMc9hYCnSc+ewmdPrl415jsMt2gOQnpVPiJ+dFnVCKq3u1UXzqCAignw4ftq9jRu2zKHfmBTAKNJzZ35t0G9MimuR4tM5BQR4e9GyrtpYqkDNJub6aKeT3be3ioWxt5t/P7vnrvDrsbf/uUhxfo65nl29DhVa3WqpRgMz8J5yb+PrWh3knbGLsWAU6bnzspnLT70zdvGfixQ78sz/FUZfU1k1F/FY1S7YhQV4c1WDMI5n5FJw1v+6N/cazMevz2b3tTe4xtwVPnni49dns7nXYMAc93XkVA5XRIcSGVKKZxpeZoJ87VzbMJz07DzyCtzbuGOvkzz0+gFaXpvhGnNX+OSJh14/QMdeJwHzmbGH07NpWS+E+mH+Ra4hUuFsdmjU3VyOI++sRbL/cjVMfsC8LVs4FKPwyROTHzD3g3mL8UQSRDSHWvGVW//qwGqFht0Aw5w1fIaRf9nAD5M/5PaOO11j7gqfPPHD5A8Z+ZcNfxZOSzIDYmSryqu7iIeyGEb1mxJ6Kiefd5bvYn9aFnHFPPIKzCVQfLIyyPUPdI2pA/P24J7jmdQO9mF098ZFFjoWU1ZeAe+u2M3OlAziIgKLHYeYl2vOfvXxd7rG1IHZxntTswj1tzO6exy1ghWepYo4CuCnd+DAT2Y4O3uWLJhLmmTmmBMlfM4auH/yoNlb12ks1IyrlCpXO04nrHvffAJFRNNiJ5hk53pxKtOb4IC8P8fUFTp9xAzf146GyJaVU2cRD1bteuwAgn3t9O8QTc1AH3YfyyzScwfmhIqsGjXdQp3DaYa6wuMV6krm7+1F/w7RRIX4sutYBvnFtLG3j0FQDYdbqHM4DfamZuJrt9KvfT2FOqlaNi9oMxhqNoNjv0FBMY8Q9LFDWJB7qDMMSN9v3iJs2Veh7lysVmjVz+xtO74D8osuMOznU0DtsCz3UGcYcPIQ5J2G+N5Qu0Xl1VnEg1XLHrtCu49l8MkvB9hzLJOagT6EB3gX27PkNAxOZOaRcjqXmHB/+rWPpmlkUBXUuPrZn5rFx78eYOfR09Tw96ZmYNFn9ILZS3ciK5+jp3KoG+rHX9vVo1U9ja2TS8Tpo7BhFiRvNme3BkUW33tnGOYD6U8dMmdntuoLMZ3MXjs5t6w0WP8hHPrVnN0aFFX80iWGYU5GOXUI/ELNUNfoerWxSDmp1sEOzNuy3yUeZW1SGiey8rFawd/uZS6Maxhk5xVQ4IRQfzvt69fgpha1CfVXT11ZZOYWsOy3FH7ak0raH5NWArzNNnYaBll5DgqcTkL87LSpF0pCy0jCz3rOrEiVK8iF3cvM1+kjZpDw8jfDh2GYMzsdeeATZPY+xd9uzvqU0nPkQ9JK2PWd+Ug3wzBnudq8/2jjLLONvQPMMYstbjdnwopIuan2wa5QWmYe2w6f5EBaFvvTssgrcOLtZSW6hj/1wvyJjwomIkhh42KczMpn2+GT7P+jjXPyHdhtVurV8HO1cW3depVLXW4GHNkMaXshbQ/kZZgL44bUM0NGrXgIra8epIuRlwVHtpgTT9L2QM4ps42DoiCsAdRqbs6oVRuLlDuPCXYiIiIil7tqOXlCRERERIpSsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHuL/A1OibH4WPbSWAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -177,22 +171,12 @@ "output_type": "stream", "text": [ "Time t=1\n", - "[Array([[24]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[10]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAAGzCAYAAADg2in0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABT4klEQVR4nO3deVxU5f4H8M+ZYRi2AURBUFBQcUETFdRMEVQQl7yZZm6lqHkrsVKvmt5bmplJaqnlEv5yLbfcMpdSXMAwU1xwK1MR1xTEhX0ZZs7vj4nJYUDnIDCDfN6vF+I8Z/vOM8Pw4TnPnBFEURRBRERERCaTmbsAIiIioqqGAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKTPLRRx9BEASDNm9vb0RERFRqHatWrYIgCLh69WqlHpdMw8eHiKoLBqinkJycjLFjx6Jx48aws7ODnZ0d/Pz8EBkZiTNnzpi7vGrp6tWrEATBpK/Sfsl7e3tDEASEhoaWuPz//u//9Ps4fvx4Bd6bsnlSH0RFRZm7xGpl3bp1WLBggbnLIKJyZmXuAqqqnTt3YuDAgbCyssLQoUPh7+8PmUyGCxcuYOvWrVi6dCmSk5NRv359c5daYf7880/IZJaVwV1dXfHtt98atH3++ee4efMm5s+fb7RuaWxsbHDw4EHcuXMH7u7uBsvWrl0LGxsb5OXllV/hFWDw4MHo1auXUXvr1q0r7Jivv/46Bg0aBKVSWWHHqGrWrVuHc+fOYdy4ceYuhYjKEQNUGSQlJWHQoEGoX78+9u/fDw8PD4Pln332GZYsWWJx4eJR2dnZsLe3f6p9WOIvSXt7e7z22msGbRs2bMCDBw+M2h+nY8eOSEhIwMaNG/Hee+/p22/evIlffvkFL7/8MrZs2VJudVeENm3aSLrP5UEul0Mulz92HVEUkZeXB1tb20qqioio/Fnub3gLNmfOHGRnZ2PlypVG4QkArKys8O6778LLy8ug/cKFC3jllVfg4uICGxsbBAYG4scffzRYp2gOyeHDhzFhwgS4urrC3t4eL7/8Mu7evWt0rJ9++glBQUGwt7eHSqVC7969cf78eYN1IiIi4ODggKSkJPTq1QsqlQpDhw4FAPzyyy8YMGAA6tWrB6VSCS8vL4wfPx65ublP7Ific6BMPV1mSj8AwPnz59G1a1fY2trC09MTn3zyCbRa7RPrKg82Njbo168f1q1bZ9C+fv161KhRA+Hh4UbbnDlzBhEREWjQoAFsbGzg7u6OkSNH4t69e/p1nnR67VFHjx5Fjx494OTkBDs7OwQHB+Pw4cPlej+9vb3x4osvIj4+Hu3atYONjQ0aNGiANWvW6Nc5fvw4BEHA6tWrjbbfs2cPBEHAzp07AZQ8B6roGHv27EFgYCBsbW0RHR0NALhy5QoGDBgAFxcX2NnZ4fnnn8euXbsMjhEbGwtBEPD9999j1qxZ8PT0hI2NDbp164bLly8brBsSEoIWLVrgzJkzCA4Ohp2dHRo1aoTNmzcDAOLi4tC+fXvY2tqiSZMm2Ldvn9F9unXrFkaOHInatWtDqVSiefPmWLFiRZlqCgkJwa5du3Dt2jX9Y+zt7W3CI0NElo4jUGWwc+dONGrUCO3btzd5m/Pnz6Njx46oW7cupkyZAnt7e3z//ffo27cvtmzZgpdfftlg/XfeeQc1atTA9OnTcfXqVSxYsABjx47Fxo0b9et8++23GD58OMLDw/HZZ58hJycHS5cuRadOnXDq1CmDF+rCwkKEh4ejU6dOmDdvHuzs7AAAmzZtQk5ODt5++23UrFkTx44dw1dffYWbN29i06ZNkvql+KkzAPjggw+QmpoKBwcHSf1w584ddOnSBYWFhfr1li1bVqmjFkOGDEH37t2RlJSEhg0bAtCdjnnllVegUCiM1o+JicGVK1cwYsQIuLu74/z581i2bBnOnz+P3377DYIglHiKUa1WY/z48bC2tta3HThwAD179kRAQACmT58OmUyGlStXomvXrvjll1/Qrl27J9afk5ODtLQ0o3ZnZ2dYWf3zo3/58mW88sorGDVqFIYPH44VK1YgIiICAQEBaN68OQIDA9GgQQN8//33GD58uMG+Nm7cWGqgfNSff/6JwYMH480338To0aPRpEkTpKSk4IUXXkBOTg7effdd1KxZE6tXr8a//vUvbN682ehnIioqCjKZDBMnTkR6ejrmzJmDoUOH4ujRowbrPXjwAC+++CIGDRqEAQMGYOnSpRg0aBDWrl2LcePG4a233sKQIUMwd+5cvPLKK7hx4wZUKhUAICUlBc8//zwEQcDYsWPh6uqKn376CaNGjUJGRobRabgn1fS///0P6enpBqeQi34WiKiKE0mS9PR0EYDYt29fo2UPHjwQ7969q//KycnRL+vWrZv43HPPiXl5efo2rVYrvvDCC6Kvr6++beXKlSIAMTQ0VNRqtfr28ePHi3K5XHz48KEoiqKYmZkpOjs7i6NHjzao4c6dO6KTk5NB+/Dhw0UA4pQpU4xqfrTGIrNnzxYFQRCvXbumb5s+fbpY/OlSv359cfjw4UbbF5kzZ44IQFyzZo3kfhg3bpwIQDx69Ki+LTU1VXRychIBiMnJyaUet7jevXuL9evXN3n9+vXri7179xYLCwtFd3d3cebMmaIoiuLvv/8uAhDj4uL0j1NCQoJ+u5L6cv369SIA8dChQ6Ueb8yYMaJcLhcPHDggiqKuP3x9fcXw8HCD50BOTo7o4+MjhoWFPbb+5ORkEUCpX0eOHDG4r8XrS01NFZVKpfif//xH3zZ16lRRoVCI9+/f17fl5+eLzs7O4siRI/VtRf3y6ONTdIyff/7ZoM6ix/iXX37Rt2VmZoo+Pj6it7e3qNFoRFEUxYMHD4oAxGbNmon5+fn6dRcuXCgCEM+ePatvCw4OFgGI69at07dduHBBBCDKZDLxt99+07fv2bNHBCCuXLlS3zZq1CjRw8NDTEtLM6h10KBBopOTk/4xllKT1OcfEVUNPIUnUUZGBoCS/4oMCQmBq6ur/mvx4sUAgPv37+PAgQN49dVXkZmZibS0NKSlpeHevXsIDw/HpUuXcOvWLYN9/fvf/zY4pRMUFASNRoNr164B0I12PHz4EIMHD9bvLy0tDXK5HO3bt8fBgweN6nv77beN2h4d0cnOzkZaWhpeeOEFiKKIU6dOlaGHdA4ePIipU6finXfeweuvvy65H3bv3o3nn3/eYKTF1dVVf+qxMsjlcrz66qtYv349AN3kcS8vLwQFBZW4/qN9mZeXh7S0NDz//PMAgJMnT5a4zZo1a7BkyRLMmTMHXbp0AQAkJibi0qVLGDJkCO7du6fvp+zsbHTr1g2HDh0y6VTmv//9b8TExBh9+fn5Gazn5+dncJ9cXV3RpEkTXLlyRd82cOBAqNVqbN26Vd+2d+9ePHz4EAMHDnxiLT4+PkajVLt370a7du3QqVMnfZuDgwP+/e9/4+rVq/j9998N1h8xYoTBKF1RzY/WWbSPQYMG6W83adIEzs7OaNasmcGocdH/i7YXRRFbtmxBnz59IIqiwc9VeHg40tPTjR5HU2siomcPT+FJVDTUn5WVZbQsOjoamZmZSElJMZi8e/nyZYiiiA8//BAffvhhiftNTU1F3bp19bfr1atnsLxGjRoAdKcnAODSpUsAgK5du5a4P0dHR4PbVlZW8PT0NFrv+vXrmDZtGn788Uf9voukp6eXuO8nuXnzJgYOHIiOHTviiy++0LdL6Ydr166VeIq0SZMmZaqpuPT0dIN5XtbW1nBxcTFab8iQIfjyyy9x+vRprFu3DoMGDTKaq1Tk/v37mDFjBjZs2IDU1FSj4xWXmJiIt956C4MHD8aECRP07UWPbfHTZcX3V/ScKI2vr2+pl2J4VPHnGqB7vj36fPD390fTpk2xceNGjBo1CoDu9F2tWrVKfQ4+ysfHx6ittMe4WbNm+uUtWrQotc7iPxNFPD09jR4jJycnozmJTk5OBtvfvXsXDx8+xLJly7Bs2bIS70fxx9XUmojo2cMAJZGTkxM8PDxw7tw5o2VFvwyKX1+oaLRg4sSJpc4VadSokcHt0t7JJIqiwT6//fZbo7fZAzCY4wLo3jFX/F2BGo0GYWFhuH//Pt5//300bdoU9vb2uHXrFiIiIso0YbugoACvvPIKlEolvv/+e4M6ytIPFeW9994zmBQdHByM2NhYo/Xat2+Phg0bYty4cUhOTsaQIUNK3eerr76KX3/9FZMmTUKrVq3g4OAArVaLHj16GPXlgwcP0L9/fzRu3BjffPONwbKidefOnYtWrVqVeKzynEfzpOdakYEDB2LWrFlIS0uDSqXCjz/+iMGDBxs910pSHnPXTK2ztPVM/Zl67bXXSg2vLVu2LFNNRPTsYYAqg969e+Obb77BsWPHTJrM26BBAwCAQqEwaUTAFEWTmt3c3Mq8z7Nnz+LixYtYvXo1hg0bpm+PiYkpc13vvvsuEhMTcejQIdSuXdtgmZR+qF+/vn4k5lF//vlnmWt71OTJkw1GCR83mjN48GB88sknaNasWamB5sGDB9i/fz9mzJiBadOm6dtLug9arRZDhw7Fw4cPsW/fPv2E/iJFj62jo2O5PV/Kw8CBAzFjxgxs2bIFtWvXRkZGhsGpMqnq169f4uN54cIF/fLK5OrqCpVKBY1GU679XtqIJRFVbZwDVQaTJ0+GnZ0dRo4ciZSUFKPlxf/6dHNzQ0hICKKjo3H79m2j9Uu6PMGThIeHw9HREZ9++inUanWZ9ln01/Oj9YqiiIULF0quBwBWrlyJ6OhoLF68uMRgKaUfevXqhd9++w3Hjh0zWL527doy1Vacn58fQkND9V8BAQGlrvvGG29g+vTp+Pzzz0tdp6S+BFDiFahnzJiBPXv2YP369SWe2goICEDDhg0xb968Ek8Vl+X5Uh6aNWuG5557Dhs3bsTGjRvh4eGBzp07l3l/vXr1wrFjx3DkyBF9W3Z2NpYtWwZvb2+juVoVTS6Xo3///tiyZUuJI8xl7Xd7e/synw4nIsvFEagy8PX1xbp16zB48GA0adJEfyVyURSRnJyMdevWQSaTGcw5Wrx4MTp16oTnnnsOo0ePRoMGDZCSkoIjR47g5s2bOH36tKQaHB0dsXTpUrz++uto06YNBg0aBFdXV1y/fh27du1Cx44dsWjRosfuo2nTpmjYsCEmTpyIW7duwdHREVu2bCnT/I20tDSMGTMGfn5+UCqV+O677wyWv/zyy7C3tze5HyZPnoxvv/0WPXr0wHvvvae/jEH9+vUr/WNy6tevj48++uix6zg6OqJz586YM2cO1Go16tati7179yI5OdlgvbNnz2LmzJno3LkzUlNTjfrptddeg0wmwzfffIOePXuiefPmGDFiBOrWrYtbt27h4MGDcHR0xI4dO55Y98mTJ432D+hGuDp06PDkO16CgQMHYtq0abCxscGoUaOe6mKxU6ZMwfr169GzZ0+8++67cHFxwerVq5GcnIwtW7aY5UK0UVFROHjwINq3b4/Ro0fDz88P9+/fx8mTJ7Fv3z7cv39f8j4DAgKwceNGTJgwAW3btoWDgwP69OlTAdUTUaUywzv/nhmXL18W3377bbFRo0aijY2NaGtrKzZt2lR86623xMTERKP1k5KSxGHDhonu7u6iQqEQ69atK7744ovi5s2b9euU9PZ4UfznbdMHDx40ag8PDxednJxEGxsbsWHDhmJERIR4/Phx/TrDhw8X7e3tS7wPv//+uxgaGio6ODiItWrVEkePHi2ePn3a6O3dT7qMwZPeOv/o29pN6QdRFMUzZ86IwcHBoo2NjVi3bl1x5syZ4vLlyyvtMgaPU9LjdPPmTfHll18WnZ2dRScnJ3HAgAHiX3/9JQIQp0+fLoriP49jaV+POnXqlNivXz+xZs2aolKpFOvXry+++uqr4v79+x9b25Mei0cvPVHafQ0ODhaDg4ON2i9duqTfT3x8fKn9UvwyBqX1Z1JSkvjKK6+Izs7Ooo2NjdiuXTtx586dBusU9dmmTZtKvJ+PPk+Dg4PF5s2bGx2ntBoAiJGRkQZtKSkpYmRkpOjl5SUqFArR3d1d7Natm7hs2bIy1ZSVlSUOGTJEdHZ2FgHwkgZEzwhBFDnbkYiIiEgKzoEiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISKJKv5CmVqvFX3/9BZVKxY84ICKqYkRRRGZmJurUqWOWi50SWYpKD1B//fWX0aeiExFR1XLjxg2DT1sgqm4qPUCpVCoAuh8+R0fHyj58idRqNfbu3Yvu3btDoVCYuxyLxD4yDfvJNOwn01hiP2VkZMDLy0v/Wk5UXVV6gCo6befo6GhRAcrOzg6Ojo4W8yJladhHpmE/mYb9ZBpL7idOwaDqjiewiYiIiCRigCIiIiKSiAGKiIiISKJKnwNFRETPNlEUUVhYCI1GY+5SiCSRy+WwsrIyaY4fAxQREZWbgoIC3L59Gzk5OeYuhahM7Ozs4OHhAWtr68euxwBFRETlQqvVIjk5GXK5HHXq1IG1tTXfrUdVhiiKKCgowN27d5GcnAxfX9/HXiyWAYqIiMpFQUEBtFotvLy8YGdnZ+5yiCSztbWFQqHAtWvXUFBQABsbm1LX5SRyIiIqV/yIF6rKTH3+8llOREREJBFP4RERkVlduncJmQWZkrdTWavgW9O3AioiejIGKCIiMptL9y6h8aLGZd7+4tiLDFFkFjyFR0REZlOWkafy3L64I0eOQC6Xo3fv3uW6X1NdvXoVgiAgMTHRLMcn0zFAERER/W358uV45513cOjQIfz111/mLocsGAMUERERgKysLGzcuBFvv/02evfujVWrVhks//HHH+Hr6wsbGxt06dIFq1evhiAIePjwoX6d+Ph4BAUFwdbWFl5eXnj33XeRnZ2tX+7t7Y1PP/0UI0eOhEqlQr169bBs2TL9ch8fHwBA69atIQgCQkJCKvIu01NggCIiIgLw/fffo2nTpmjSpAlee+01rFixAqIoAgCSk5PxyiuvoG/fvjh9+jTefPNN/O9//zPYPikpCT169ED//v1x5swZbNy4EfHx8Rg7dqzBep9//jkCAwNx6tQpjBkzBm+//Tb+/PNPAMCxY8cAAPv27cPt27exdevWSrjnVBYMUERERNCdvnvttdcAAD169EB6ejri4uIAANHR0WjSpAnmzp2LJk2aYNCgQYiIiDDYfvbs2Rg6dCjGjRsHX19fvPDCC/jyyy+xZs0a5OXl6dfr1asXxowZg0aNGuH9999HrVq1cPDgQQCAq6srAKBmzZpwd3eHi4tLJdxzKgsGKCIiqvb+/PNPHDt2DIMHDwYAWFlZYeDAgVi+fLl+edu2bQ22adeuncHt06dPY9WqVXBwcNB/hYeH6z/ipkjLli31/xcEAe7u7khNTa2ou0YVhJcxICKiam/58uUoLCxEnTp19G2iKEKpVGLRokUm7SMrKwtvvvkm3n33XaNl9erV0/9foVAYLBMEAVqttoyVk7kwQBERUbVWWFiINWvW4PPPP0f37t0NlvXt2xfr169HkyZNsHv3boNlCQkJBrfbtGmD33//HY0aNSpzLdbW1gAAjUZT5n1Q5WCAIiKiam3nzp148OABRo0aBScnJ4Nl/fv3x/Lly/H999/jiy++wPvvv49Ro0YhMTFR/y49QRAAAO+//z6ef/55jB07Fm+88Qbs7e3x+++/IyYmxuRRLDc3N9ja2uLnn3+Gp6cnbGxsjGoiy8A5UEREVK0tX74coaGhJQaV/v374/jx48jMzMTmzZuxdetWtGzZEkuXLtW/C0+pVALQzW2Ki4vDxYsXERQUhNatW2PatGkGpwWfxMrKCl9++SWio6NRp04dvPTSS+VzJ6nccQSKiIiqtR07dpS6rF27dvpLGbRs2RL/+te/9MtmzZqlHyUq0rZtW+zdu7fU/V29etWorfhVx9944w288cYbJlZP5sIARUREZIIlS5agbdu2qFmzJg4fPoy5c+caXeOJqg8GKCIiIhNcunQJn3zyCe7fv4969erhP//5D6ZOnWrusshMqm2AOncrHZuO38Cxq/dxIy0TswKB1h/vhVctFdp5u2BAoBda1OXEPSKqXA+z1biWmou0TDUys/MgANh1PBUqexvUUilQ380WzvaKJ+6nqlBZq8y6vRTz58/H/PnzK+14ZNmqXYC6mpaNyVvO4FjyfchlAjRaEUq57vy2Wivij9uZuJiShdVHrqGdjwvm9G8J71r2Zq6aiJ51WXmFOJmUgXuZaggAROj+EQCIIpCRU4jMnEJcSclFTZUCbRo6wsGm6r+E+9b0xcWxF5FZkCl5W5W1Cr41fSugKqInq/o/fRJsT7yFSZvOQPP3hECNVixxvaL2E9ceoPv8Q5g7oCVealW30uokouolITkZN1Ns/74loORXJujb72UWICYxDZ7uuWjr7VMJFVasx4UgrVaETCZUYjVEpqk2AWp74i2M25BY6gtTSTRaERqIGLchEQAYooio3CUkJ+PGHRuIECETTL2yjACtqMWN2zaAmIy2PlU/RBV5dHrF5dQsqDUiFHIBjdwcOL2CLEq1CFDJadmYtOlM6X/VqWUANLrvMuO1RACTNp2Bv6czT+cRUbnJyi3EzRTbUsNTfj5g+/d3pa3hMpkgg1bU4maKLZp5FFb503klTa8ootZwegVZnmpxIc33t/xz2u5ReTdrIHVrG9xcHAoAuLk4FKlb2yDvZg2jdTWiiMlbzlR4rURUfZy8kgEARuHpj9MKfDbFCaP6uAIARvVxxWdTnPDHacPJ40XbnUzKqIRqK872xFvoPv8QTlx7AMD06RXbE29VWo1ExT1VgIqKioIgCBg3blw5lVP+zt5Mx7Hk+0Y/kJmn6iFlbQfkJtUGxL/Pr4sCcpNqI2VtB2SeqmewvkYr4ljyfZy7lV5ZpRPRM+xBlhr3MtXQTRP/x89bbfG/t2ogIV4JUatbJmoFJMQr8b+3amDP1mJDURBwL1ONh9nqyim8nBVNryjQaEsNTsVptCIKNFqM25DIEEVmU+YAlZCQgOjoaLRs2bI86yl3m0/cgFWxCYh5N2vg/t4WAARAW6wLtDIAAu7vbWE0EiWXCdh0/EbFFkxE1cL1u7kQis2N/uO0AsvmqgAI0GoMF+puC4ieqzIaiRIAXEvNrdB6K8KTplc8SdH0iqtp2eVZVpUUEhLy1IMZd+7cQVhYGOzt7eHs7FwudT3LyhSgsrKyMHToUPzf//0fatQwPt1lSY5dvY/CYn/VZBzzKXGukwGZiIwEw4mZGq2IhKsPyrtEIqqG0jLVKD6z4Mf1dpDJH7+dTA7s2GBn0CYCf49mVS2lTa+QorymV0REREAQBAiCAIVCAR8fH0yePBl5eXlPve+qYv78+bh9+zYSExNx8eLFEtf56KOP0KpVK0n79fb2xoIFC56+wHJQHkGzSJlmHUZGRqJ3794IDQ3FJ5988th18/PzkZ+fr7+dkaE7V69Wq6FWV/wP/I20TP11noC/J4zfqglbpQaABgBga6s2+K53syastQIEhVbfdD0to1LqtjRF97k63ncp2E+mYT8Bmdl5eHToJT8fOHtcBqV1ob6ttNemMwky5OcW4u/PsAUAZGQXVkp/ltcxiqZXPK1Hp1c87bvzevTogZUrV0KtVuPEiRMYPnw4BEHAZ5999tR1lgdRFKHRaGBlVTFvGEhKSkJAQAB8fS3z2loFBQWwtrY2dxl6kh+FDRs24OTJk0hISDBp/dmzZ2PGjBlG7Xv37oWdnV0JW5SvWYHFWzRAx59KXHfFihiT9rl79+6nK6oKi4kxrY+qO/aTaapzPwkwnP1kC2Dd2pLXLfG1qYR545Xx0pSTk1Mu+ymaXlH8DEFZFE2veNoApVQq4e7uDgDw8vJCaGgoYmJi9AFKq9Xis88+w7Jly3Dnzh00btwYH374IV555RUAQGBgIAYNGoSJEycCAPr27Ytdu3bhwYMHcHBwwM2bN+Hl5YVLly6hUaNG+Pbbb7Fw4UL8+eefsLe3R9euXbFgwQK4ubkBAGJjY9GlSxfs3r0bH3zwAc6ePYu9e/eibdu2ePvtt7F161aoVCr98Z5k6dKlmDdvHm7cuAEfHx988MEHeP311wHoRomuXbsGAFizZg2GDx+OVatWPXGfERERePjwITp16oTPP/8cBQUFGDRoEBYsWACFQoGQkBBcu3YN48ePx/jx4wFA/+HM8fHxmDp1Ko4fP45atWrh5ZdfxuzZs2Fvb6+vadSoUbh06RJ++OEH9OvXD6tWrXridkuWLMH8+fNx48YNODk5ISgoCJs3b0ZERATi4uIQFxeHhQsXAgCSk5Ph7e1tUv8VJylA3bhxA++99x5iYmIMPn36caZOnYoJEybob2dkZMDLywvdu3eHo6OjtGrLoPXHe6HWGo5A3Vwc+s/Ecej+uluxIgYjR4YhN/eRuQWCCM/IfQYjUAqZgFPTuld43ZZGrVYjJiYGYWFhUCienY+RKG/sJ9Own3QfzyIWG4Ea1cdVP3EcKP21SZCJWL7jrsEIlCAAvQPdKrzuorMIT6uk6RVlVRHTK86dO4dff/0V9evX17fNnj0b3333Hb7++mv4+vri0KFDeO211+Dq6org4GAEBwcjNjYWEydOhCiK+OWXX+Ds7Iz4+Hj06NEDcXFxqFu3Lho1agRA93Mwc+ZMNGnSBKmpqZgwYQIiIiKM/kifMmUK5s2bhwYNGqBGjRqYNGkS4uLisH37dri5ueG///0vTp48+dhTa9u2bcN7772HBQsWIDQ0FDt37sSIESPg6emJLl26ICEhAcOGDYOjoyMWLlwIW9vib1Yo3cGDB+Hh4YGDBw/i8uXLGDhwIFq1aoXRo0dj69at8Pf3x7///W+MHj1av01SUhJ69OiBTz75BCtWrMDdu3cxduxYjB07FitXrtSvN2/ePEybNg3Tp083abvjx4/j3XffxbfffosXXngB9+/fxy+//AIAWLhwIS5evIgWLVrg448/BgC4urqafD+LkxSgTpw4gdTUVLRp00bfptFocOjQISxatAj5+fmQyw1P4CuVSigf/Sn/m0KhqJQXTq9aKvxx+5GPCJCJQN17unffFZtAnpur+OdFSqaFbaMUFMhE4JHJnA3dHKvtCz5QeY9bVcd+Mk117ieVvQ0ycv45Xae0BZ4L1CIhXmk0gfzR1yaZXES7oHwobQ1fvh3trCqlL8vrGJdTs8plP0UupUr/KJjidu7cCQcHBxQWFiI/Px8ymQyLFi0CoJuO8umnn2Lfvn3o0KEDAKBBgwaIj49HdHQ0goODERISguXLl0Oj0eDcuXOwtrbGwIEDERsbix49eiA2NhbBwcH6440cOVL//wYNGuDLL79E27ZtkZWVBQcHB/2yjz/+GGFhYQB0c5CXL1+O7777Dt26dQMArF69Gp6eno+9b/PmzUNERATGjBkDAJgwYQJ+++03zJs3D126dIGrqyuUSiVsbW31o3CmqlGjBhYtWgS5XI6mTZuid+/e2L9/P0aPHg0XFxfI5XKoVCqD/c6ePRtDhw7Vz0fy9fXFl19+ieDgYCxdulQ/SNO1a1f85z//0W/3xhtvPHa769evw97eHi+++CJUKhXq16+P1q1bAwCcnJxgbW0NOzs7yfexJJImkXfr1g1nz55FYmKi/iswMBBDhw5FYmKiUXiyBO28XSAv9i48x3bJgFYoZYu/aQU4tk02aJLLBLT1tuxJ80RUNdRSKVD8Vehfg3Og1Tx+O60G6DPI8DSaAKCmquoEUa1WhFpTPqNPRdQaEdqnHNHq0qULEhMTcfToUQwfPhwjRoxA//79AQCXL19GTk4OwsLC4ODgoP9as2YNkpKSAABBQUHIzMzEqVOnEBcXpw9VsbGxAIC4uDiEhIToj3fixAn06dMH9erVg0ql0oer69evG9QVGPjPXJSkpCQUFBSgffv2+jYXFxc0adLksfftjz/+QMeOHQ3aOnbsiD/++ENaJ5WgefPmBr//PTw8kJqa+thtTp8+jVWrVhn0ZXh4OLRaLZKT//nd++h9N2W7sLAw1K9fHw0aNMDrr7+OtWvXlttp5+IkjUCpVCq0aNHCoM3e3h41a9Y0arcUAwK9sPrINYM2G88HcOl+Tncpg+LvxpNpAa0Al+7nYONpOCSs0YoYEOhV0SUTUTVQ380WV1IMLz3QzF+NNydlInquyujdeDK5CK0GeHNSJpr5G07kFv/eX1UhkwlQyIVyDVEKufDUn5lnb2+vP722YsUK+Pv7Y/ny5Rg1ahSysnQjZrt27ULduoYf61V0lsXZ2Rn+/v6IjY3FkSNHEBYWhs6dO2PgwIG4ePEiLl26pA9J2dnZCA8PR3h4ONauXQtXV1dcv34d4eHhKCgoMKrLkhUflRQEAVqttpS1dbKysvDmm2/i3XffNVpWr94/12Esft+ftJ21tTVOnjyJ2NhY7N27F9OmTcNHH32EhISEcr80Q9W+9r8JWtR1QjsfF5y49sDgIm2q1tehcM3UXargZk1doyDCtlEKHNsmG4UnuUxAQP0a/AwmIioXzvYK1FQpcC+zAI9OJw/vl4t6DQuxY4MdziToThIIMt1puz6DcozCEyCipsoazvZVZwQKABq5ORhOr3hKvm6qctsXAMhkMvz3v//FhAkTMGTIEPj5+UGpVOL69esGp+GKCw4OxsGDB3Hs2DHMmjULLi4uaNasGWbNmgUPDw80btwYAHDhwgXcu3cPUVFR8PLS/WF+/PjxJ9bVsGFDKBQKHD16VB80Hjx4gIsXLz62rmbNmuHw4cMYPny4vu3w4cPw8/MzqT+ehrW1NTQaw6HVNm3a4Pfff9cHVlOZsp2VlRVCQ0MRGhqK6dOnw9nZGQcOHEC/fv1KrKWsnjpAFQ1NWrI5/Vui+/xD0BS7XJuN5wPYeD6A9d+n8zwj9+nmPJVALgiY09+yLxpKRFVLm4aOiElMg1bUGnycSzN/NZr5pyM/txDIgG7CuK3xy7VuOwFtGlb8G3LKWztvF1xMyTL56uOPU1HTKwYMGIBJkyZh8eLFmDhxIiZOnIjx48dDq9WiU6dOSE9Px+HDh+Ho6KgPJiEhIfjqq6/g6uqKpk2b6tsWLVqEAQMG6PddNFry1Vdf4a233sK5c+cwc+bMJ9bk4OCAUaNGYdKkSahZsybc3Nzwv//9DzLZ42fkTJo0Ca+++ipat26N0NBQ7NixA1u3bsW+ffueoodM4+3tjUOHDmHQoEFQKpWoVasW3n//fTz//PMYO3Ys3njjDdjb2+P3339HTEyMft5ZSZ603c6dO3HlyhV07twZNWrUwO7du6HVavWnOL29vXH06FFcvXoVDg4OcHFxeWLflaZafBaedy17zB3Q0mi+QZGid9k9+m47g+UA5g7gB1cSUflysLGCp3suBOjCUHFF778p4X040IpaCAA83XOr5AcJDwj0KpfwBFTc9AorKyuMHTsWc+bMQXZ2NmbOnIkPP/wQs2fPRrNmzdCjRw/s2rULPj7/XHQ5KCgIWq3WYDQoJCQEGo3GYP6Tq6srVq1ahU2bNsHPzw9RUVGYN2+eSXXNnTsXQUFB6NOnD0JDQ9GpUycEBAQ8dpu+ffti4cKFmDdvHpo3b47o6GisXLnSoKaK8vHHH+Pq1ato2LCh/l1vLVu2RFxcHC5evIigoCC0bt0a06ZNQ506dR67rydt5+zsjK1bt6Jr165o1qwZvv76a6xfvx7NmzcHAEycOBFyuRx+fn7606ZlJYjiU14GVqKMjAw4OTkhPT29Ui5j8KjtibcwaZPuyreP/uAq5SLmtNNg8jE58h9594tcJkAuCJg7oCVealW3pF1WG2q1Grt370avXr2q7bumTMF+Mg37yVBCcjJuphTNYXrkTz1tIWR3j0PrGgjIHg1JutcvT/dctPU2/MSEiva41/C8vDwkJyfDx8fHpEvdvBp9xGh6hVRF0yu+f7NDmfdB9ChTn8fVYgSqyEut6mLv+M4IqK8b6i3+7rwiRe2B9Wtg7/jO1T48EVHFauvjg7BWtVBTpbvKcqmj5X9/r6myRlirWpUensrbnP4tIS/+gYAScXoFmUvVG/d9St617PH9mx1w7lY6Nh2/gYSrD3A9TXdhOIVMQEM3R7T1roEBgV6cME5ElcbBxgqdm7vgYbYa11JzcS9TjYxs3XWiBEF3naeaKgXqu9lWuQnjpSmaXjFuQ2KZPlCY0yvInKpdgCrSoq6TPiAVnU44Na07TycQkVk52yvg7KN7HdK9NumuMP6svjYVjfCXNL2iNJxeQZagWp3CIyIiy8PpFVQVVdsRKCIishwlTa+4lJoJtUaEQi7A103F6RVkURigiIjIYjw6vQLQfezL015hnKgi8BQeERFZLIYnslQMUEREREQSMUARERERScQARUREFik3F0hJ0X0nsjQMUEREZFHi44F+/QAHB8DdXfe9Xz/g8OGKPe6dO3fwzjvvoEGDBlAqlfDy8kKfPn2wf//+ij0wVUkMUEREZDGWLgU6dwZ27AC0f3++slarux0UBHz9dcUc9+rVqwgICMCBAwcwd+5cnD17Fj///DO6dOmCyMjIijkoVWkMUEREZBHi44HISEAUgcJCw2WFhbr2MWMqZiRqzJgxEAQBx44dQ//+/dG4cWM0b94cEyZMwG+//YarV69CEAQkJibqt3n48CEEQUBsbKy+7dy5c+jZsyccHBxQu3ZtvP7660hLSyv/gsnsGKCIiMgifPEFIJc/fh25HJg/v3yPe//+ffz888+IjIyEvb3x5+o5OzubtJ+HDx+ia9euaN26NY4fP46ff/4ZKSkpePXVV8u3YLIIvJAmERGZXW4usH37P6ftSlNYCGzbplvf1rZ8jn358mWIooimTZs+1X4WLVqE1q1b49NPP9W3rVixAl5eXrh48SIaN278tKWSBWGAIiIis8vIeHJ4KqLV6tYvrwAlik/+AGNTnD59GgcPHoSDg4PRsqSkJAaoZwwDFBERmZ2jIyCTmRaiZDLd+uXF19cXgiDgwoULjzmmbsbLo2FLrVYbrJOVlYU+ffrgs88+M9rew8OjnKolS8E5UEREZHa2tsBLLwFWT/iz3soKePnl8ht9AgAXFxeEh4dj8eLFyM7ONlr+8OFDuLq6AgBu376tb390QjkAtGnTBufPn4e3tzcaNWpk8FXS3Cqq2higiIjIIkyYAGg0j19HowHGjy//Yy9evBgajQbt2rXDli1bcOnSJfzxxx/48ssv0aFDB9ja2uL5559HVFQU/vjjD8TFxeGDDz4w2EdkZCTu37+PwYMHIyEhAUlJSdizZw9GjBgBzZPuGFU5DFBERGQROnUCliwBBMF4JMrKSte+ZAnQsWP5H7tBgwY4efIkunTpgv/85z9o0aIFwsLCsH//fixduhSAbkJ4YWEhAgICMG7cOHzyyScG+6hTpw4OHz4MjUaD7t2747nnnsO4cePg7OysPwVIzw7OgSIiIovx1lvAc8/pLlWwbZtuTpRMpju9N358xYSnIh4eHli0aBEWLVpU4vJmzZrh119/NWgrPgHd19cXW7durbAayXIwQBERkUXp2FH3lZure7edo2P5znkiKg8MUEREZJFsbRmcyHLxpCwRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVERJYpNxdISdF9p8cKCQnBuHHjzF1GtcIARUREliU+HujXD3BwANzddd/79QMOH66wQ0ZEREAQBAiCAIVCAR8fH0yePBl5eXkVdszKdPv2bQwZMgSNGzeGTCZj2CoHDFBERGQ5li4FOncGduzQfRAeoPu+YwcQFAR8/XWFHbpHjx64ffs2rly5gvnz5yM6OhrTp0+vsONJJYoiCgsLy7Rtfn4+XF1d8cEHH8Df37+cK6ueGKCIiMgyxMcDkZGAKALFg0Jhoa59zJgKG4lSKpVwd3eHl5cX+vbti9DQUMTExOiXa7VazJ49Gz4+PrC1tYW/vz82b96sXx4YGIh58+bpb/ft2xcKhQJZWVkAgJs3b0IQBFy+fBkA8O233yIwMBAqlQru7u4YMmQIUlNT9dvHxsZCEAT89NNPCAgIgFKpRHx8PLKzszFs2DA4ODjAw8MDn3/++RPvm7e3NxYuXIhhw4bBycnpqfuKGKCIiMhSfPEFIJc/fh25HJg/v8JLOXfuHH799VdYW1vr22bPno01a9bg66+/xvnz5zF+/Hi89tpriIuLAwAEBwcjNjYWgG606JdffoGzszPi4+MBAHFxcahbty4aNWoEAFCr1Zg5cyZOnz6NH374AVevXkVERIRRLVOmTEFUVBT++OMPtGzZEpMmTUJcXBy2b9+OvXv3IjY2FidPnqzYDiEj/DBhIiIyv9xcYPv2f07blaawENi2Tbd+OX/S8M6dO+Hg4IDCwkLk5+dDJpNh0aJFAHSnwD799FPs27cPHTp0AAA0aNAA8fHxiI6ORnBwMEJCQrB8+XJoNBqcO3cO1tbWGDhwIGJjY9GjRw/ExsYiODhYf7yRI0fq/9+gQQN8+eWXaNu2LbKysuDg4KBf9vHHHyMsLAwAkJWVheXLl+O7775Dt27dAACrV6+Gp6dnufYFPRkDFBERmV9GxpPDUxGtVrd+OQeoLl26YOnSpcjOzsb8+fNhZWWF/v37AwAuX76MnJwcfZApUlBQgNatWwMAgoKCkJmZiVOnTuHXX3/Vh6qoqCgAuhGoSZMm6bc9ceIEPvroI5w+fRoPHjyA9u/7f/36dfj5+enXCwwM1P8/KSkJBQUFaN++vb7NxcUFTZo0Kde+oCdjgCIiIvNzdARkMtNClEymW7+c2dvb60+vrVixAv7+/li+fDlGjRqln8e0a9cu1K1b12A7pVIJAHB2doa/vz9iY2Nx5MgRhIWFoXPnzhg4cCAuXryIS5cu6UegsrOzER4ejvDwcKxduxaurq64fv06wsPDUVBQYFQXWR7OgSIiIvOztQVeegmwesLf9VZWwMsvl/voU3EymQz//e9/8cEHHyA3Nxd+fn5QKpW4fv06GjVqZPDl5eWl3y44OBgHDx7EoUOHEBISAhcXFzRr1gyzZs2Ch4cHGjduDAC4cOEC7t27h6ioKAQFBaFp06YGE8hL07BhQygUChw9elTf9uDBA1y8eLH8O4EeiwGKiIgsw4QJgEbz+HU0GmD8+EopZ8CAAZDL5Vi8eDFUKhUmTpyI8ePHY/Xq1UhKSsLJkyfx1VdfYfXq1fptQkJCsGfPHlhZWaFp06b6trVr1xrMf6pXrx6sra3x1Vdf4cqVK/jxxx8xc+bMJ9bk4OCAUaNGYdKkSThw4ADOnTuHiIgIyGRP/nWemJiIxMREZGVl4e7du0hMTMTvv/9ehp4hgAGKiIgsRadOwJIlgCAYj0RZWenalywBOnaslHKsrKwwduxYzJkzB9nZ2Zg5cyY+/PBDzJ49G82aNUOPHj2wa9cu+Pj46LcJCgqCVqs1CEshISHQaDQICQnRt7m6umLVqlXYtGkT/Pz8EBUVZXAJhMeZO3cugoKC0KdPH4SGhqJTp04ICAh44natW7dG69atceLECaxbtw6tW7dGr169TO8QMiCIoihW5gEzMjLg5OSE9PR0OFbAOeyyUKvV2L17N3r16gWFQmHuciwS+8g07CfTsJ9MY4n99LjX8Ly8PCQnJ8PHxwc2NjZlP8jhw7pLFWzbppsTJZPpTtuNH19p4YmqL1Ofx5xETkRElqVjR91Xbq7u3XaOjhU+54lIKgYoIiKyTLa2DE5ksTgHioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiy5SbC6Sk6L7TY4WEhGDcuHHmLqNaYYAiIiLLEh8P9OsHODgA7u667/366T7ipYJERERAEAQIggCFQgEfHx9MnjwZeXl5FXbMyrR161aEhYXB1dUVjo6O6NChA/bs2WPusqo0BigiIrIcS5cCnTsDO3boPgcP0H3fsQMICgK+/rrCDt2jRw/cvn0bV65cwfz58xEdHY3p06dX2PGkEkURhYWFZdr20KFDCAsLw+7du3HixAl06dIFffr0walTp8q5yuqDAYqIiCxDfDwQGQmIIlA8KBQW6trHjKmwkSilUgl3d3d4eXmhb9++CA0NRUxMjH65VqvF7Nmz4ePjA1tbW/j7+2Pz5s365YGBgZg3b57+dt++faFQKJCVlQUAuHnzJgRBwOXLlwEA3377LQIDA6FSqeDu7o4hQ4YgNTVVv31sbCwEQcBPP/2EgIAAKJVKxMfHIzs7G8OGDYODgwM8PDzw+eefP/G+LViwAJMnT0bbtm3h6+uLTz/9FL6+vtixY8dT91t1xQBFRESW4YsvALn88evI5cD8+RVeyrlz5/Drr7/C2tpa3zZ79mysWbMGX3/9Nc6fP4/x48fjtddeQ1xcHAAgODgYsbGxAHSjRb/88gucnZ0RHx8PAIiLi0PdunXRqFEjAIBarcbMmTNx+vRp/PDDD7h69SoiIiKMapkyZQqioqLwxx9/oGXLlpg0aRLi4uKwfft27N27F7GxsTh58qSk+6fVapGZmQkXF5cy9A4B/DBhIiKyBLm5wPbt/5y2K01hIbBtm279cv6g4Z07d8LBwQGFhYXIz8+HTCbDokWLAAD5+fn49NNPsW/fPnTo0AEA0KBBA8THxyM6OhrBwcEICQnB8uXLodFocO7cOVhbW2PgwIGIjY1Fjx49EBsbi+DgYP3xRo4cqf9/gwYN8OWXX6Jt27bIysqCg4ODftnHH3+MsLAwAEBWVhaWL1+O7777Dt26dQMArF69Gp6enpLu67x585CVlYVXX321bJ1FDFBERGQBMjKeHJ6KaLW69cs5QHXp0gVLly5FdnY25s+fDysrK/Tv3x8AcPnyZeTk5OiDTJGCggK0bt0aABAUFITMzEycOnUKv/76qz5URUVFAdCNQE2aNEm/7YkTJ/DRRx/h9OnTePDgAbR/3//r16/Dz89Pv15gYKD+/0lJSSgoKED79u31bS4uLmjSpInJ93PdunWYMWMGtm/fDjc3N5O3I0MMUEREZH6OjoBMZlqIksl065cze3t7/em1FStWwN/fH8uXL8eoUaP085h27dqFunXrGmynVCoBAM7OzvD390dsbCyOHDmCsLAwdO7cGQMHDsTFixdx6dIl/QhUdnY2wsPDER4ejrVr18LV1RXXr19HeHg4CgoKjOoqLxs2bMAbb7yBTZs2ITQ0tNz2Wx1xDhQREZmfrS3w0kuA1RP+rreyAl5+udxHn4qTyWT473//iw8++AC5ubnw8/ODUqnE9evX0ahRI4MvLy8v/XbBwcE4ePAgDh06hJCQELi4uKBZs2aYNWsWPDw80LhxYwDAhQsXcO/ePURFRSEoKAhNmzY1mEBemoYNG0KhUODo0aP6tgcPHuDixYtP3Hb9+vUYMWIE1q9fj969e5ehV+hRDFBERGQZJkwANJrHr6PRAOPHV0o5AwYMgFwux+LFi6FSqTBx4kSMHz8eq1evRlJSEk6ePImvvvoKq1ev1m8TEhKCPXv2wMrKCk2bNtW3rV271mD+U7169WBtbY2vvvoKV65cwY8//oiZM2c+sSYHBweMGjUKkyZNwoEDB3Du3DlERERAJnv8r/N169Zh2LBh+Pzzz9G+fXvcuXMHd+7cQXp6ehl7hyQFqKVLl6Jly5ZwdHTUX4jrp59+qqjaiIioOunUCViyBBAE45EoKytd+5IlQMeOlVKOlZUVxo4dizlz5iA7OxszZ87Ehx9+iNmzZ6NZs2bo0aMHdu3aBR8fH/02QUFB0Gq1BmEpJCQEGo0GISEh+jZXV1esWrUKmzZtgp+fH6KiogwugfA4c+fORVBQEPr06YPQ0FB06tQJAQEBj91m2bJlKCwsRGRkJDw8PPRf7733nrROIT1BFEXR1JV37NgBuVwOX19fiKKI1atXY+7cuTh16hSaN29u0j4yMjLg5OSE9PR0OFbAOeyyUKvV2L17N3r16gWFQmHuciwS+8g07CfTsJ9MY4n99LjX8Ly8PCQnJ8PHxwc2NjZlP8jhw7pLFWzbppsTJZPpTtuNH19p4YmqL1Ofx5Imkffp08fg9qxZs7B06VL89ttvJgcoIiKix+rYUfeVm6t7t52jY4XPeSKSqszvwtNoNNi0aROys7P118QoSX5+PvLz8/W3MzIyAOj+slKr1WU9fLkqqsNS6rFE7CPTsJ9Mw34yjSX2U6XWYmvL4EQWS3KAOnv2LDp06IC8vDw4ODhg27ZtBterKG727NmYMWOGUfvevXthZ2cn9fAV6tFL9lPJ2EemYT+Zhv1kGkvqp5ycHHOXQGQRJM2BAnQXDbt+/TrS09OxefNmfPPNN4iLiys1RJU0AuXl5YW0tDSLmgMVExODsLAwi5lnYGnYR6ZhP5mG/WQaS+ynjIwM1KpVq2LnQBGZUYXMgQIAa2tr/YXGAgICkJCQgIULFyI6OrrE9ZVKpf4iY49SKBQW84JQxBJrsjTsI9Own0zDfjKNJfWTKXVI/LucyKKY+vx96utAabVagxEmIiKqnorCFU/zUVVW9Px90h8Lkkagpk6dip49e6JevXrIzMzEunXrEBsbiz179pS9UiIieibI5XI4Ozvrr6htZ2cHQRDMXBWRaURRRE5ODlJTU+Hs7Ay5XP7Y9SUFqNTUVAwbNgy3b9+Gk5MTWrZsiT179hh9uCIREVVP7u7uAGDSx5IQWSJnZ2f98/hxJAWo5cuXl7kgIiJ69gmCAA8PD7i5uVnU5ReITKFQKJ448lSkzNeBIiIiKo1cLjf5FxFRVcQPEyYiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCJJAWr27Nlo27YtVCoV3Nzc0LdvX/z5558VVRsRERGRRZIUoOLi4hAZGYnffvsNMTExUKvV6N69O7KzsyuqPiIiIiKLYyVl5Z9//tng9qpVq+Dm5oYTJ06gc+fOJW6Tn5+P/Px8/e2MjAwAgFqthlqtllpvhSiqw1LqsUTsI9Own0zDfjKNJfaTJdVCZE6CKIpiWTe+fPkyfH19cfbsWbRo0aLEdT766CPMmDHDqH3dunWws7Mr66GJiMgMcnJyMGTIEKSnp8PR0dHc5RCZTZkDlFarxb/+9S88fPgQ8fHxpa5X0giUl5cX0tLSLOaHT61WIyYmBmFhYVAoFOYuxyKxj0zDfjIN+8k0lthPGRkZqFWrFgMUVXuSTuE9KjIyEufOnXtseAIApVIJpVJp1K5QKCzmBaGIJdZkadhHpmE/mYb9ZBpL6idLqYPI3MoUoMaOHYudO3fi0KFD8PT0LO+aiIiIiCyapAAliiLeeecdbNu2DbGxsfDx8amouoiIiIgslqQAFRkZiXXr1mH79u1QqVS4c+cOAMDJyQm2trYVUiARERGRpZF0HailS5ciPT0dISEh8PDw0H9t3LixouojIiIisjiST+ERERERVXf8LDwiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpKIAYqIiIhIIitzF2Au526lY9PxGzh29T5upGViViDQ+uO98KqlQjtvFwwI9EKLuk7mLpOqAD6XTPMwW41rqblIy1QjMzsPAoBdx1OhsrdBLZUC9d1s4WyvMHeZZsd+Iqoaql2AupqWjclbzuBY8n3IZQI0WhFKuQgAUGtF/HE7ExdTsrD6yDW083HBnP4t4V3L3sxVkyXic8k0WXmFOJmUgXuZaggAROj+EQCIIpCRU4jMnEJcSclFTZUCbRo6wsGm2r00sZ+IqphqdQpve+ItdJ9/CCeuPQAAaLRiiesVtZ+49gDd5x/C9sRblVYjVQ18LpnmRlou9p++h/uZagB/h4ISFLXfz1Rj/+l7uJGWWyn1WQr2E1HVU23+fNmeeAvjNiSW+sJUEo1WhAYixm1IBAC81KpuhdRGVQufS6a5kZaL45czJG0jQjfaUrSdVy3bCqjMsrCfiKqmajEClZyWjUmbzpT6C0+pLjD4XpwIYNKmM7iall0xBVKVweeSabJydaejSiPLzzP4XpKTSRnIyiss99osCfuJqOqqFgHq/S1noBGNf+UF3jyPr7fOwrHFrwMAji1+HV9vnYWAm78brasRRUzecqbCayXLxueSaU5eyUAJ3YSap4+i3ZSR6NnHHwDQs48/2k0ZCZfTx4zWFUU8Nlw8C9hPRFXXMx+gzt5Mx7Hk+0ZzVF47tRvfr30foUnHIP/7FUwuighNOoZNaydj6KndButrtCKOJd/HuVvplVY7WRY+l0zzIEuNe5lqo1E6n62rEPRWX3jE74Gg1QIABK0WHvF70Pmtl+C9dbXB+iKAe5lqPMxWV07hlYz9RFS1SQ5Qhw4dQp8+fVCnTh0IgoAffvihAsoqP5tP3ICVTDBoC7x5Hh/vXQIZACutxmCZlVYDGYCZe5cYjR7IZQI2Hb9RwRWTpeJzyTTX7+ZCMOwm1Dx9FP5zp0KACJnGsJ9kGg0EiGg1d4rRCIsA4FrqszlRmv1EVLVJDlDZ2dnw9/fH4sWLK6Kecnfs6n0UFhsxeOPYD9DK5I/dTiuTY1TCDwZtGq2IhKsPyrtEqiL4XDJNWqba6LRUw/XREOWPf7kR5TI02hBt2Abd6MqziP1EVLVJfhdez5490bNnT5PXz8/PR35+vv52RobuXL1arYZaXfE/8DfSMvXX5gF0k3tDbp2GqLRG0dHVtrYG34t0vZkIR20+8hXW+rbraRmVUrelKbrP1fG+F+FzyTSZ2XkG78OX5efB9XgcNNbWKBpTKa2fXBNiIcvNglZpo2/LyC5kP1lQPz2LjwVRWQiiWNIURhM3FgRs27YNffv2LXWdjz76CDNmzDBqX7duHezs7Mp6aCIiMoOcnBwMGTIE6enpcHR0NHc5RGZT4QGqpBEoLy8vpKWlVcoPX+uP90KtNRw1OLb4df1kX0D3113MihUIGzkSitx/5hFoBAHtIr81GDVQyAScmta9wuu2NGq1GjExMQgLC4NCUT0/RoLPJdPsOp5qcGpKlp+Hnn389ROigdL7SZTJ8NOO0wYjK4IA9A50q5TaK1NV7aeMjAzUqlWLAYqqvQq/kKZSqYRSqTRqVygUlfKL2KuWCn/cztTfzpcpEVvXH6FJx4wm/Spyc/UvUoUyOQ40ao8MmRJ4ZLWGbo7VNkAAlfe4WSI+l0yjsrdBRs4/1yXS2jrgbmAwPOL3GE2MfrSftHI5bgf1gNbWwWAdRzsr9pMF9dOz+FgQlcUzfxmDdt4ukBd759Q37fpCVuwXXnEyrQbL2/Y1aJPLBLT1rlHeJVIVweeSaWqpFCj25jIkDX4TgkZb4vpFBI0Wlwe9adgGoKbq2fyFzX4iqtqe+QA1INDL6Lo9xz2b48PuY6CFbnTgUYUyObQAPuw+Bic8/QyWabQiBgR6VXDFZKn4XDJNfTdbo2sb3fNvj8RJURAhQCs37CetXA4RAhInReG+fzuDZeLf+3sWsZ+IqjbJp/CysrJw+fJl/e3k5GQkJibCxcUF9erVK9fiykOLuk5o5+OCE9ceGPzyW9u6Fy64emNUwg/oejMRgG6eyoFG7bG8bV+jX3hymYCA+jXQoq5TZZZPFoTPJdM42ytQU6XA/WIXibzabzgyGjZDow3RcE2IBaCby3M7qAcuD3rTKBQIAFxUCjjbP5sjK+wnoqpN8iTy2NhYdOnSxah9+PDhWLVq1RO3z8jIgJOTU6VOQLyalo3u8w+hoJShcUdtPmZ2lOPDwxrdPJUSWMtl2Du+M7xr2VdkqRZLrVZj9+7d6NWrV7WeA8Hnkmmy8gqx//Q9aEt5dZHlZgEZ5wDHFkZzefTrCEA3/5pwsHl2P/O8KvaTOV7DiSyR5FN4ISEhEEXR6MuU8GQu3rXsMXdAS6P5BkWK3hn16DukHiUAmDug5TP9C49Mw+eSaRxsrNCmYem/XIvePfbou8iKa9PQ8ZkOTwD7iagqqzY/dS+1qgsAmLRJ92GwxeeylEQuEyAXBMwd0FK/PRGfS6bxqqWbk3MySfeBuaYMdQvQvR2/TUNH/fbPOvYTUdVUbQIUoPvF5+/pjMlbzuBY8n3IZUKJv/yK2gPr18Bn/Z/90QKSjs8l03jVskUNBwVOJmXgXqYaAkoOCEXtLipFtRxRYT8RVT3V7qfPu5Y9vn+zA87dSsem4zeQcPUBrqfpPl5GIRPQ0M0Rbb1rYECg1zM7yZfKB59LpnGwsULn5i54mK3GtdRc3MtUIyNbd/0jQdBdv6imSoH6brbVeiI0+4moaql2AapIi7pO+l9qRROkT03rXq0nSFPZ8LlkGmd7BZx9dH2i6yfdlbPZT4bYT0RVwzN/HSgiIiKi8sYARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkUZkC1OLFi+Ht7Q0bGxu0b98ex44dK++6iIiIiCyW5AC1ceNGTJgwAdOnT8fJkyfh7++P8PBwpKamVkR9RERERBZHcoD64osvMHr0aIwYMQJ+fn74+uuvYWdnhxUrVlREfUREREQWx0rKygUFBThx4gSmTp2qb5PJZAgNDcWRI0dK3CY/Px/5+fn62xkZGQAAtVoNtVpdlprLXVEdllKPJWIfmYb9ZBr2k2kssZ8sqRYic5IUoNLS0qDRaFC7dm2D9tq1a+PChQslbjN79mzMmDHDqH3v3r2ws7OTcvgKFxMTY+4SLB77yDTsJ9Own0xjSf2Uk5Nj7hKILIKkAFUWU6dOxYQJE/S3MzIy4OXlhe7du8PR0bGiD28StVqNmJgYhIWFQaFQmLsci8Q+Mg37yTTsJ9NYYj8VnUUgqu4kBahatWpBLpcjJSXFoD0lJQXu7u4lbqNUKqFUKo3aFQqFxbwgFLHEmiwN+8g07CfTsJ9MY0n9ZCl1EJmbpEnk1tbWCAgIwP79+/VtWq0W+/fvR4cOHcq9OCIiIiJLJPkU3oQJEzB8+HAEBgaiXbt2WLBgAbKzszFixIiKqI+IiIjI4kgOUAMHDsTdu3cxbdo03LlzB61atcLPP/9sNLGciIiI6FlVpknkY8eOxdixY8u7FiIiIqIqgZ+FR0RERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJJFVZR9QFEUAQEZGRmUfulRqtRo5OTnIyMiAQqEwdzkWiX1kGvaTadhPprHEfip67S56LSeqrio9QGVmZgIAvLy8KvvQRERUTjIzM+Hk5GTuMojMRhAr+c8IrVaLv/76CyqVCoIgVOahS5WRkQEvLy/cuHEDjo6O5i7HIrGPTMN+Mg37yTSW2E+iKCIzMxN16tSBTMZZIFR9VfoIlEwmg6enZ2Uf1iSOjo4W8yJlqdhHpmE/mYb9ZBpL6yeOPBFxEjkRERGRZAxQRERERBIxQAFQKpWYPn06lEqluUuxWOwj07CfTMN+Mg37ichyVfokciIiIqKqjiNQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREElX7ALV48WJ4e3vDxsYG7du3x7Fjx8xdksU5dOgQ+vTpgzp16kAQBPzwww/mLsnizJ49G23btoVKpYKbmxv69u2LP//809xlWZylS5eiZcuW+itrd+jQAT/99JO5y7J4UVFREAQB48aNM3cpRPS3ah2gNm7ciAkTJmD69Ok4efIk/P39ER4ejtTUVHOXZlGys7Ph7++PxYsXm7sUixUXF4fIyEj89ttviImJgVqtRvfu3ZGdnW3u0iyKp6cnoqKicOLECRw/fhxdu3bFSy+9hPPnz5u7NIuVkJCA6OhotGzZ0tylENEjqvV1oNq3b4+2bdti0aJFAHQfdOzl5YV33nkHU6ZMMXN1lkkQBGzbtg19+/Y1dykW7e7du3Bzc0NcXBw6d+5s7nIsmouLC+bOnYtRo0aZuxSLk5WVhTZt2mDJkiX45JNP0KpVKyxYsMDcZRERqvEIVEFBAU6cOIHQ0FB9m0wmQ2hoKI4cOWLGyuhZkJ6eDkAXDqhkGo0GGzZsQHZ2Njp06GDucixSZGQkevfubfA6RUSWwcrcBZhLWloaNBoNateubdBeu3ZtXLhwwUxV0bNAq9Vi3Lhx6NixI1q0aGHucizO2bNn0aFDB+Tl5cHBwQHbtm2Dn5+fucuyOBs2bMDJkyeRkJBg7lKIqATVNkARVZTIyEicO3cO8fHx5i7FIjVp0gSJiYlIT0/H5s2bMXz4cMTFxTFEPeLGjRt47733EBMTAxsbG3OXQ0QlqLYBqlatWpDL5UhJSTFoT0lJgbu7u5mqoqpu7Nix2LlzJw4dOgRPT09zl2ORrK2t0ahRIwBAQEAAEhISsHDhQkRHR5u5Mstx4sQJpKamok2bNvo2jUaDQ4cOYdGiRcjPz4dcLjdjhURUbedAWVtbIyAgAPv379e3abVa7N+/n/MxSDJRFDF27Fhs27YNBw4cgI+Pj7lLqjK0Wi3y8/PNXYZF6datG86ePYvExET9V2BgIIYOHYrExESGJyILUG1HoABgwoQJGD58OAIDA9GuXTssWLAA2dnZGDFihLlLsyhZWVm4fPmy/nZycjISExPh4uKCevXqmbEyyxEZGYl169Zh+/btUKlUuHPnDgDAyckJtra2Zq7OckydOhU9e/ZEvXr1kJmZiXXr1iE2NhZ79uwxd2kWRaVSGc2fs7e3R82aNTmvjshCVOsANXDgQNy9exfTpk3DnTt30KpVK/z8889GE8uru+PHj6NLly762xMmTAAADB8+HKtWrTJTVZZl6dKlAICQkBCD9pUrVyIiIqLyC7JQqampGDZsGG7fvg0nJye0bNkSe/bsQVhYmLlLIyKSpFpfB4qIiIioLKrtHCgiIiKismKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISKL/B0GhIsYPGtrTAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQhUlEQVR4nO3dd3hUZf7+8ffMpHcSAgkQUggtNCk2OopLVFxgEUJRQbGgIoK6q+5v7QXUtSwWwFWaX3BRUcGKIgQpKqDSUVrogZCEBNKTmfP745iRIQkESCHD/bquuSCnfuZkIHee8zzPsRiGYSAiIiIidZ61tgsQERERkaqhYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnteLJJ5/EYrG4LIuJiWH06NE1WsesWbOwWCzs2bOnRs8rlaPvj4jI2VGwu4CkpKQwbtw4WrRogZ+fH35+fiQkJHDvvfeycePG2i7vorRnzx4sFkulXhWFj5iYGCwWC3379i13/X//+1/nMdatW1eN7+bcnOkaTJ48ubZLvKjMmzeP1157rbbLEJELlEdtFyCmzz//nKSkJDw8PBg5ciQdOnTAarXy22+/8fHHHzN16lRSUlKIjo6u7VKrze+//47VemH9rhEeHs57773nsuzll1/mwIEDvPrqq2W2rYiPjw/Lli3j8OHDREREuKybO3cuPj4+FBQUVF3h1WD48OFcd911ZZZ37Nix2s558803M2zYMLy9vavtHHXNvHnz2Lx5MxMmTKjtUkTkAqRgdwHYtWsXw4YNIzo6mu+++47IyEiX9S+88AJvvfXWBRd6Tpabm4u/v/95HeNC/OHt7+/PTTfd5LLsf//7H8eOHSuz/HS6devG2rVrmT9/Pvfff79z+YEDB1ixYgWDBg1iwYIFVVZ3dejUqdNZveeqYLPZsNlsp93GMAwKCgrw9fWtoapERC5cF25SuIi8+OKL5ObmMnPmzDKhDsDDw4Px48cTFRXlsvy3337jxhtvJDQ0FB8fH7p06cKiRYtctinto7Rq1SoeeOABwsPD8ff3Z9CgQRw9erTMub766it69OiBv78/gYGBXH/99WzZssVlm9GjRxMQEMCuXbu47rrrCAwMZOTIkQCsWLGCIUOG0LRpU7y9vYmKimLixInk5+ef8Tqc2seusrc9K3MdALZs2cJVV12Fr68vTZo04dlnn8XhcJyxrqrg4+PD3/72N+bNm+ey/P3336devXr069evzD4bN25k9OjRxMXF4ePjQ0REBLfddhsZGRnObc50m/RkP/30E4mJiQQHB+Pn50evXr1YtWpVlb7PmJgY+vfvz8qVK7nsssvw8fEhLi6OOXPmOLdZt24dFouF2bNnl9l/8eLFWCwWPv/8c6D8Pnal51i8eDFdunTB19eX6dOnA7B7926GDBlCaGgofn5+XHHFFXzxxRcu50hOTsZisfDBBx/w3HPP0aRJE3x8fLj66qvZuXOny7a9e/embdu2bNy4kV69euHn50d8fDwfffQRAMuXL+fyyy/H19eXli1bsmTJkjLv6eDBg9x22200bNgQb29v2rRpw4wZM86ppt69e/PFF1+wd+9e5/c4JiamEt8ZEblYqMXuAvD5558THx/P5ZdfXul9tmzZQrdu3WjcuDGPPPII/v7+fPDBBwwcOJAFCxYwaNAgl+3vu+8+6tWrxxNPPMGePXt47bXXGDduHPPnz3du89577zFq1Cj69evHCy+8QF5eHlOnTqV79+78+uuvLj9ASkpK6NevH927d+ff//43fn5+AHz44Yfk5eVx9913ExYWxpo1a3j99dc5cOAAH3744Vldl1NvgQL861//Ii0tjYCAgLO6DocPH6ZPnz6UlJQ4t3v77bdrtJVnxIgR/OUvf2HXrl00a9YMMG+r3XjjjXh6epbZ/ttvv2X37t3ceuutREREsGXLFt5++222bNnCjz/+iMViKfdWcXFxMRMnTsTLy8u5bOnSpVx77bV07tyZJ554AqvVysyZM7nqqqtYsWIFl1122Rnrz8vLIz09vczykJAQPDz+/K9k586d3HjjjYwZM4ZRo0YxY8YMRo8eTefOnWnTpg1dunQhLi6ODz74gFGjRrkca/78+RUG3ZP9/vvvDB8+nLvuuos77riDli1bcuTIEbp27UpeXh7jx48nLCyM2bNn89e//pWPPvqozL+JyZMnY7Vaeeihh8jOzubFF19k5MiR/PTTTy7bHTt2jP79+zNs2DCGDBnC1KlTGTZsGHPnzmXChAmMHTuWESNG8NJLL3HjjTeyf/9+AgMDAThy5AhXXHEFFouFcePGER4ezldffcWYMWM4fvx4mdupZ6rp//2//0d2drZLV4DSfwsiIgAYUquys7MNwBg4cGCZdceOHTOOHj3qfOXl5TnXXX311Ua7du2MgoIC5zKHw2F07drVaN68uXPZzJkzDcDo27ev4XA4nMsnTpxo2Gw2IysryzAMwzhx4oQREhJi3HHHHS41HD582AgODnZZPmrUKAMwHnnkkTI1n1xjqUmTJhkWi8XYu3evc9kTTzxhnPrxi46ONkaNGlVm/1IvvviiARhz5sw56+swYcIEAzB++ukn57K0tDQjODjYAIyUlJQKz3uq66+/3oiOjq709tHR0cb1119vlJSUGBEREcYzzzxjGIZhbN261QCM5cuXO79Pa9eude5X3rV8//33DcD4/vvvKzzfPffcY9hsNmPp0qWGYZjXo3nz5ka/fv1cPgN5eXlGbGyscc0115y2/pSUFAOo8PXDDz+4vNdT60tLSzO8vb2NBx980Lns0UcfNTw9PY3MzEznssLCQiMkJMS47bbbnMtKr8vJ35/Sc3z99dcudZZ+j1esWOFcduLECSM2NtaIiYkx7Ha7YRiGsWzZMgMwWrdubRQWFjq3/c9//mMAxqZNm5zLevXqZQDGvHnznMt+++03AzCsVqvx448/OpcvXrzYAIyZM2c6l40ZM8aIjIw00tPTXWodNmyYERwc7Pwen01NZ/v5E5GLi27F1rLjx48D5f/W3bt3b8LDw52vN998E4DMzEyWLl3K0KFDOXHiBOnp6aSnp5ORkUG/fv3YsWMHBw8edDnWnXfe6XJrrkePHtjtdvbu3QuYrUNZWVkMHz7cebz09HRsNhuXX345y5YtK1Pf3XffXWbZyS1gubm5pKen07VrVwzD4Ndffz2HK2RatmwZjz76KPfddx8333zzWV+HL7/8kiuuuMKlZSo8PNx5C7km2Gw2hg4dyvvvvw+YgyaioqLo0aNHuduffC0LCgpIT0/niiuuAOCXX34pd585c+bw1ltv8eKLL9KnTx8A1q9fz44dOxgxYgQZGRnO65Sbm8vVV1/N999/X6lb0nfeeSfffvttmVdCQoLLdgkJCS7vKTw8nJYtW7J7927nsqSkJIqLi/n444+dy7755huysrJISko6Yy2xsbFlWvW+/PJLLrvsMrp37+5cFhAQwJ133smePXvYunWry/a33nqrS6tmac0n11l6jGHDhjm/btmyJSEhIbRu3dqllb3076X7G4bB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QU5ODhEREVx++eXcddddlarn/fffd47oPdmoUaPOK9j961//Ii8vr1KjYU+nYcOGrF69mocffpjXX3+dgoIC2rdvz2effcb1119/Xsc+n5rWrFnD008/zccff8xbb71FWFgYbdq04YUXXjinY95zzz2sX7+emTNn8uqrrxIdHa1gJyJOFkO9ckVERETcgvrYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm/Co7QJERETqIrvdTnFxcW2XIW7O09MTm81W6e0V7ERERM6CYRgcPnyYrKys2i5FLhIhISFERERgsVjOuK2CnYiIyFkoDXUNGjTAz8+vUj9sRc6FYRjk5eWRlpYGQGRk5Bn3UbATERGpJLvd7gx1YWFhtV2OXAR8fX0BSEtLo0GDBme8LavBEyIiIpVU2qfOz8+vliuRi0np560yfToV7ERERM6Sbr9KTTqbz5uCnYiIiIibULATERERcRMKdiIiIjWoqKjovNafj8OHD3PfffcRFxeHt7c3UVFR3HDDDXz33XfVdk6pWQp2IiIiNWT+/Pm0a9eO/fv3l7t+//79tGvXjvnz51f5uffs2UPnzp1ZunQpL730Eps2beLrr7+mT58+3HvvvVV+PqkdCnYiIiI1oKioiMcff5zt27fTu3fvMuFu//799O7dm+3bt/P4449XecvdPffcg8ViYc2aNQwePJgWLVrQpk0bHnjgAX788Uf27NmDxWJh/fr1zn2ysrKwWCwkJyc7l23evJlrr72WgIAAGjZsyM0330x6enqV1irnTsFORESkBnh5ebFkyRLi4uLYvXu3S7grDXW7d+8mLi6OJUuW4OXlVWXnzszM5Ouvv+bee+/F39+/zPqQkJBKHScrK4urrrqKjh07sm7dOr7++muOHDnC0KFDq6xWOT8KdiIiIjUkKiqK5ORkl3C3evVql1CXnJxMVFRUlZ53586dGIZBq1atzus4b7zxBh07duT555+nVatWdOzYkRkzZrBs2TK2b99eRdXK+dCTJ0RERGpQabgrDXPdunUDqLZQB+ajqarChg0bWLZsGQEBAWXW7dq1ixYtWlTJeeTcKdiJiIjUsKioKN577z1nqAN4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X7++Vs7v7hTsRERELiLvvvsu9913H99//z2HDh2q7XKkiinYiYiIXCRycnKYP38+d999N9dffz2zZs1yWb9o0SKaN2+Oj48Pffr0Yfbs2VgsFrKyspzbrFy5kh49euDr60tUVBTjx48nN/fPVsWYmBief/55brvtNgIDA2natClvv/22c31sbCwAHTt2xGKx0Lt37+p8yxcdBTsREZGLxAcffECrVq1o2bIlN910EzNmzMAwDABSUlK48cYbGThwIBs2bOCuu+7i//2//+ey/65du0hMTGTw4MFs3LiR+fPns3LlSsaNG+ey3csvv0yXLl349ddfueeee7j77rv5/fffAVizZg0AS5YsITU1lY8//rgG3vnFQ8FORETkIvHuu+9y0003AZCYmEh2djbLly8HYPr06bRs2ZKXXnqJli1bMmzYMEaPHu2y/6RJkxg5ciQTJkygefPmdO3alSlTpjBnzhwKCgqc21133XXcc889xMfH8/DDD1O/fn2WLVsGQHh4OABhYWFEREQQGhpaA+/84qFgJyIichH4/fffWbNmDcOHDwfAw8ODpKQk3n33Xef6Sy+91GWfyy67zOXrDRs2MGvWLAICApyvfv364XA4SElJcW7Xvn17598tFgsRERGkpaVV11uTk2i6ExERkYvAu+++S0lJCY0aNXIuMwwDb29v3njjjUodIycnh7vuuovx48eXWde0aVPn3z09PV3WWSwWHA7HOVYuZ0PBTkRExM2VlJQwZ84cXn75Zf7yl7+4rBs4cCDvv/8+LVu25Msvv3RZt3btWpevO3XqxNatW4mPjz/nWry8vACw2+3nfAypmIKdiIiIm/v88885duwYY8aMITg42GXd4MGDeffdd/nggw945ZVXePjhhxkzZgzr1693jpq1WCwAPPzww1xxxRWMGzeO22+/HX9/f7Zu3cq3335b6Va/Bg0a4Ovry9dff02TJk3w8fEpU5OcO/WxExERcXPvvvsuffv2LTdADR48mHXr1nHixAk++ugjPv74Y9q3b8/UqVOdo2K9vb0Bs+/c8uXL2b59Oz169KBjx448/vjjLrd3z8TDw4MpU6Ywffp0GjVqxIABA6rmTQoAFqN0nLOIiIicVkFBASkpKcTGxuLj41OpfbZmbCXp86RzPuf8/vNJCEs45/3Px3PPPce0adPYv39/rZxfTGfzudOt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6Oho/vvf/9KoUSMcDgdt27Z1Dmbw9a2+91pePVXhdNcnJyeHyMhIl1vCpUJCQqqlHgU7ERGR6mSxmE+UOPjzn48PO5OSQsCA6K7V/pixpUuXsmnTJiZOnFjhNkFBQSQlJZGUlMSNN95IYmIimZmZhIaG4unpid1uP+N5MjIy+P333/nvf/9Ljx49APNW5cnat2/PO++84zz2qby8vMqcq3Xr1s5+baWtdlu3biUrK4uEhIQz1lUVKro+nTp14vDhw3h4eDhbJ09V3ns6Hwp2IiIi1S2inflEiczd5jx1pwtrhgHHUsztG7at0jIKCws5fPgwdrudI0eO8PXXXzNp0iT69+/PLbfcUu4+r7zyCpGRkXTs2BGr1cqHH35IRESEs8UpJiaG7777jm7duuHt7U29evXKPU69evUICwvj7bffJjIykn379vHII4+4bDN8+HCef/55Bg4cyKRJk4iMjOTXX3+lUaNGXHnllcTExJCSksL69etp0qQJgYGB9O3bl3bt2jFy5Ehee+01SkpKuOeee+jVqxddunQ562u0detWioqKyMzM5MSJE6xfvx6gwrnmTnd9+vbty5VXXsnAgQN58cUXadGiBYcOHeKLL75g0KBBdOnSpdz3dD5TzaiPnYiISHXz9DEfExbQANJ//6NFrhwlheb6gAbQ6ZYqf2bs119/TWRkJDExMSQmJrJs2TKmTJnCwoULKxwpGhgYyIsvvkiXLl249NJL2bNnD19++SVWqxkhXn75Zb799luioqLo2LFjhee2Wq3873//4+eff6Zt27ZMnDiRl156yWUbLy8vvvnmGxo0aMB1111Hu3btmDx5srO2wYMHk5iYSJ8+fQgPD+f999/HYrGwcOFC6tWrR8+ePenbty9xcXHMnz//nK7RddddR8eOHfnss89ITk6mY8eOp31fp7s+FouFL7/8kp49e3LrrbfSokULhg0bxt69e2nYsGGF7+l8WAyjCifIERERcWMFBQWkpKScdi600yrvWbFWD3OgRF4mYJgtdZ1uMfvliXB2nzvdihUREakpYc2g1yPmEyX2rv5znjqrzRwoEd3VvP1axS11cvFQsBMREalJnj7QpAs07vznPHU2L3P0azUPlBD3p2AnIiJSGyyWP54oUb2TD8vFRYMnRERERNyEgp2IiMhZ0rhDqUln83lTsBMREakkT09PAPLy8mq5ErmYlH7eSj9/p6M+diIiIpVks9kICQkhLS0NAD8/vwqfsSpyvgzDIC8vj7S0NEJCQiqca/BkmsdORETkLBiGweHDh8nKyqrtUuQiERISQkRERKV+iVCwExEROQd2u53i4uLaLkPcnKenZ6Va6kop2ImIiIi4CQ2eEBEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEWwY7h8Og2O7A4TBquxS3pWssbsEwwF4MDnttV+K+dI1FapRHbRdQFQzD4MjxQrYcyiYlPZcDx/IosRvYrBYahfgSW9+fhEZBNA7xxWKx1Ha5dVbaiQK2HDxOSnou+zLzKLE7sFktRAb7ElPfn4TIIKJCdY3lApeXCanrIWM3ZO6GkgKwWCAwEkKbQcM2EBYPVrf8vbdm5GdB6gbI2Gle4+J8wAIBDSDsj2tcvwVYbbVdqYjbsRiGUaebXDJzi/h6cyq/7svieEExXjYrft4eeFgt2B0GeUV2CortBPl40D4qhGvbRhIe6F3bZdcp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", "text/plain": [ "
" ] @@ -205,22 +189,12 @@ "output_type": "stream", "text": [ "Time t=2\n", - "[Array([[23]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[5]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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IpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSiAGKiIiISCIGKCIiIiKJGKCIiIiIJGKAIiIiIpJIUoCaM2cO2rdvD5VKBTc3N/Tv3x9//PFHZdVGREREZJEkBai4uDhERkbi119/RUxMDNRqNXr27Ins7OzKqo+IiIjI4lhJWfmnn34y+Hn16tVwc3PDyZMn0bVr1xK3yc/PR35+vv7njIwMAIBarYZarZZab6UoqsNS6rFE7CPTsJ9Mw34yjSX2kyXVQmROgiiKYnk3vnz5Mnx9fXH27Fm0atWqxHU++ugjzJw506h9/fr1sLOzK++hiYjIDHJycjBs2DCkp6fD0dHR3OUQmU25A5RWq8U///lPPHr0CAkJCaWuV9IIlJeXF9LS0izml0+tViMmJgZhYWFQKBTmLscisY9Mw34yDfvJNJbYTxkZGahTpw4DFNV4kk7hPS4yMhLnzp0rMzwBgFKphFKpNGpXKBQW84RQxBJrsjTsI9Own0zDfjKNJfWTpdRBZG7lClDjx4/Hrl27EB8fj/r161d0TUREREQWTVKAEkURb7/9NrZv347Y2Fj4+PhUVl1EREREFktSgIqMjMT69euxY8cOqFQq3LlzBwDg5OQEW1vbSimQiIiIyNJIug7UsmXLkJ6ejpCQEHh4eOi/Nm3aVFn1EREREVkcyafwiIiIiGo6fhYeERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQk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HM/hRJZI8im8kJAQiKJo9GVKeDIX7zr2mDeotdF8gyJF74x6/B1SjxMAzBvU+pl+wSPT8LFkGgcbK7RrXPqLa9G7xx5/F1lx7Ro7PtPhCWA/EVVnNea37sU2ngCAKZt1HwZbfC5LSeQyAXJBwLxBrfXbE/GxZBqvOro5OYnJug/MNWWoW4Du7fjtGjvqt3/WsZ+IqqcaE6AA3Quff31nTN16BsdSHkAuE0p88StqD2xYC58NfPZHC0g6PpZM41XHFrUcFEhMzsD9TDUElBwQitpdVIoaOaLCfiKqfmrcb593HXt890YnnLuVjs0nbuD41Ye4nqb7eBmFTEBjN0e0966FQYFez+wkX6oYfCyZxsHGCl1buuBRthrXUnNxP1ONjGzd9Y8EQXf9otoqBRq62dboidDsJ6LqpcYFqCKtPJ30L2pFE6RPTe9ZoydIU/nwsWQaZ3sFnH10faLrJ92Vs9lPhthPRNXDM38dKCIiIqKKxgBFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCRRuQLUkiVL4O3tDRsbG3Ts2BHHjh2r6LqIiIiILJbkALVp0yZMmjQJM2bMQGJiIvz9/REeHo7U1NTKqI+IiIjI4kgOUF988QXGjh2LUaNGwc/PD19//TXs7OywcuXKyqiPiIiIyOJYSVm5oKAAJ0+exLRp0/Rt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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABR6klEQVR4nO3dd3hUVeL/8ffMZNIbCYEECEkgtNCWYgNpiktUXGVRQlNRLIiIoK5lf2vfFcS1LBbAVZpfcFFRQSwIQlBABaUTlBaqgUBCgPRk5v7+uGZkSAIJpJDh83qePCH3nnvvmZMh+eTcc861GIZhICIiIiJ1nrW2KyAiIiIiVUPBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5qxTPPPIPFYnHbFhsby4gRI2q0HjNnzsRisbBnz54ava5UjL4/IiKVo2B3AUlNTWXMmDG0bNkSf39//P39SUhI4P7772fTpk21Xb2L0p49e7BYLBX6KC98xMbGYrFY6Nu3b5n7//vf/7rO8dNPP1Xjqzk3Z2uDiRMn1nYVLypz587ltddeq+1qiMgFyqu2KyCmRYsWkZSUhJeXF8OGDaNjx45YrVZ++eUXPv74Y6ZMmUJqaioxMTG1XdVq8+uvv2K1Xlh/a0RERPDee++5bXv55Zc5cOAAr776aqmy5fH19WX58uUcOnSIyMhIt31z5szB19eX/Pz8qqt4NRgyZAjXXXddqe2dOnWqtmveeuutDB48GB8fn2q7Rl0zd+5ctmzZwrhx42q7KiJyAVKwuwDs2rWLwYMHExMTwzfffENUVJTb/hdffJG33nrrggs9p8rJySEgIOC8znEh/vIOCAhg+PDhbtv+97//cezYsVLbz6R79+6sXbuWefPm8eCDD7q2HzhwgO+++44BAwYwf/78Kqt3dejcuXOlXnNVsNls2Gy2M5YxDIP8/Hz8/PxqqFYiIheuCzcpXEQmTZpETk4OM2bMKBXqALy8vBg7dizR0dFu23/55RduvvlmwsLC8PX1pWvXrixcuNCtTMkYpVWrVvHQQw8RERFBQEAAAwYM4MiRI6Wu9eWXX9KjRw8CAgIICgri+uuvZ+vWrW5lRowYQWBgILt27eK6664jKCiIYcOGAfDdd99xyy230LRpU3x8fIiOjmb8+PHk5eWdtR1OH2NX0dueFWkHgK1bt3LVVVfh5+dHkyZN+Oc//4nT6TxrvaqCr68vf/3rX5k7d67b9vfff5969erRr1+/Usds2rSJESNG0KxZM3x9fYmMjOTOO+8kIyPDVeZst0lP9eOPP5KYmEhISAj+/v706tWLVatWVenrjI2NpX///qxcuZJLL70UX19fmjVrxuzZs11lfvrpJywWC7NmzSp1/OLFi7FYLCxatAgoe4xdyTUWL15M165d8fPzY9q0aQDs3r2bW265hbCwMPz9/bn88sv5/PPP3a6RnJyMxWLhgw8+4F//+hdNmjTB19eXq6++mp07d7qV7d27N+3atWPTpk306tULf39/4uPj+eijjwBYsWIFl112GX5+frRq1YqlS5eWek0HDx7kzjvvpGHDhvj4+NC2bVumT59+TnXq3bs3n3/+OXv37nV9j2NjYyvwnRGRi4V67C4AixYtIj4+nssuu6zCx2zdupXu3bvTuHFjHn/8cQICAvjggw+46aabmD9/PgMGDHAr/8ADD1CvXj2efvpp9uzZw2uvvcaYMWOYN2+eq8x7773H7bffTr9+/XjxxRfJzc1lypQpXHnllaxfv97tF0hxcTH9+vXjyiuv5N///jf+/v4AfPjhh+Tm5nLfffcRHh7OmjVreP311zlw4AAffvhhpdrl9FugAP/4xz9IT08nMDCwUu1w6NAh+vTpQ3Fxsavc22+/XaO9PEOHDuXPf/4zu3btonnz5oB5W+3mm2/GbreXKr9kyRJ2797NHXfcQWRkJFu3buXtt99m69at/PDDD1gsljJvFRcVFTF+/Hi8vb1d25YtW8a1115Lly5dePrpp7FarcyYMYOrrrqK7777jksvvfSs9c/NzeXo0aOltoeGhuLl9cePkp07d3LzzTczcuRIbr/9dqZPn86IESPo0qULbdu2pWvXrjRr1owPPviA22+/3e1c8+bNKzfonurXX39lyJAh3Hvvvdx99920atWKw4cP061bN3Jzcxk7dizh4eHMmjWLv/zlL3z00Uel/k9MnDgRq9XKI488wvHjx5k0aRLDhg3jxx9/dCt37Ngx+vfvz+DBg7nllluYMmUKgwcPZs6cOYwbN45Ro0YxdOhQXnrpJW6++Wb2799PUFAQAIcPH+byyy/HYrEwZswYIiIi+PLLLxk5ciQnTpwodTv1bHX6f//v/3H8+HG3oQAl/xdERAAwpFYdP37cAIybbrqp1L5jx44ZR44ccX3k5ua69l199dVG+/btjfz8fNc2p9NpdOvWzWjRooVr24wZMwzA6Nu3r+F0Ol3bx48fb9hsNiMrK8swDMM4efKkERoaatx9991udTh06JAREhLitv322283AOPxxx8vVedT61hiwoQJhsViMfbu3eva9vTTTxunv/1iYmKM22+/vdTxJSZNmmQAxuzZsyvdDuPGjTMA48cff3RtS09PN0JCQgzASE1NLfe6p7v++uuNmJiYCpePiYkxrr/+eqO4uNiIjIw0nn/+ecMwDCMlJcUAjBUrVri+T2vXrnUdV1Zbvv/++wZgfPvtt+Veb/To0YbNZjOWLVtmGIbZHi1atDD69evn9h7Izc014uLijGuuueaM9U9NTTWAcj++//57t9d6ev3S09MNHx8f4+GHH3Zte+KJJwy73W5kZma6thUUFBihoaHGnXfe6dpW0i6nfn9KrvHVV1+51bPke/zdd9+5tp08edKIi4szYmNjDYfDYRiGYSxfvtwAjDZt2hgFBQWusv/5z38MwNi8ebNrW69evQzAmDt3rmvbL7/8YgCG1Wo1fvjhB9f2xYsXG4AxY8YM17aRI0caUVFRxtGjR93qOnjwYCMkJMT1Pa5MnSr7/hORi4tuxdayEydOAGX/1d27d28iIiJcH2+++SYAmZmZLFu2jEGDBnHy5EmOHj3K0aNHycjIoF+/fuzYsYODBw+6neuee+5xuzXXo0cPHA4He/fuBczeoaysLIYMGeI639GjR7HZbFx22WUsX768VP3uu+++UttO7QHLycnh6NGjdOvWDcMwWL9+/Tm0kGn58uU88cQTPPDAA9x6662VbocvvviCyy+/3K1nKiIiwnULuSbYbDYGDRrE+++/D5iTJqKjo+nRo0eZ5U9ty/z8fI4ePcrll18OwLp168o8Zvbs2bz11ltMmjSJPn36ALBhwwZ27NjB0KFDycjIcLVTTk4OV199Nd9++22Fbknfc889LFmypNRHQkKCW7mEhAS31xQREUGrVq3YvXu3a1tSUhJFRUV8/PHHrm1ff/01WVlZJCUlnbUucXFxpXr1vvjiCy699FKuvPJK17bAwEDuuece9uzZQ0pKilv5O+64w61Xs6TOp9az5ByDBw92fd2qVStCQ0Np06aN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3/P888/zxhtvkJ2dTWRkJJdddhn33ntvherz/vvvu2b0nur2228/r2D3j3/8g9zc3ArNhj2Thg0bsnr1ah577DFef/118vPz6dChA5999hnXX3/9eZ37fOq0Zs0annvuOT7++GPeeustwsPDadu2LS+++OI5nXP06NFs2LCBGTNm8OqrrxITE6NgJyIuFkOjckVEREQ8gsbYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh/Cq7QqIiIjURQ6Hg6Kiotquhng4u92OzWarcHkFOxERkUowDINDhw6RlZVV21WRi0RoaCiRkZFYLJazllWwExERqYSSUNegQQP8/f0r9MtW5FwYhkFubi7p6ekAREVFnfUYBTsREZEKcjgcrlAXHh5e29WRi4Cfnx8A6enpNGjQ4Ky3ZTV5QkREpIJKxtT5+/vXck3kYlLyfqvImE4FOxERkUrS7VepSZV5vynYiYiIiHgIBTsRERERD6FgJyIiUoMKCwvPa//5OHToEA888ADNmjXDx8eH6OhobrjhBr755ptqu6bULAU7ERGRGjJv3jzat2/P/v37y9y/f/9+2rdvz7x586r82nv27KFLly4sW7aMl156ic2bN/PVV1/Rp08f7r///iq/ntQOBTsREZEaUFhYyFNPPcX27dvp3bt3qXC3f/9+evfuzfbt23nqqaeqvOdu9OjRWCwW1qxZw8CBA2nZsiVt27bloYce4ocffmDPnj1YLBY2bNjgOiYrKwuLxUJycrJr25YtW7j22msJDAykYcOG3HrrrRw9erRK6yrnTsFORESkBnh7e7N06VKaNWvG7t273cJdSajbvXs3zZo1Y+nSpXh7e1fZtTMzM/nqq6+4//77CQgIKLU/NDS0QufJysriqquuolOnTvz000989dVXHD58mEGDBlVZXeX8KNiJiIjUkOjoaJKTk93C3erVq91CXXJyMtHR0VV63Z07d2IYBq1btz6v87zxxht06tSJF154gdatW9OpUyemT5/O8uXL2b59exXVVs6HnjwhIiJSg0rCXUmY6969O0C1hTowH01VFTZu3Mjy5csJDAwstW/Xrl20bNmySq4j507BTkREpIZFR0fz3nvvuUIdwHvvvVctoQ6gRYsWWCwWfvnll3LLWK3mTbxTQ+DpTzrIzs7mhhtu4MUXXyx1fEWeYyrVT7diRUREatj+/fu59dZb3bbdeuut5c6WPV9hYWH069ePN998k5ycnFL7s7KyiIiIACAtLc21/dSJFACdO3dm69atxMbGEh8f7/ZR1tg9qXkKdiIiIjXo9IkSq1atKnNCRVV78803cTgcXHrppcyfP58dO3awbds2Jk+ezBVXXIGfnx+XX345EydOZNu2baxYsYJ//OMfbue4//77yczMZMiQIaxdu5Zdu3axePFi7rjjDhwOR7XUWypHwU5ERKSGnB7qkpOT6datW6kJFdUR7po1a8a6devo06cPDz/8MO3ateOaa67hm2++YcqUKQBMnz6d4uJiunTpwrhx4/jnP//pdo5GjRqxatUqHA4Hf/7zn2nfvj3jxo0jNDTUdStXapfFqKoRlSIiIh4uPz+f1NRU4uLi8PX1rdSxhYWFtG/fnu3bt5c5UeLU0NeyZUs2b95cpUueSN1Vmfed4rWIiEgN8Pb25rnnnqNly5Zlzn4tmS3bsmVLnnvuOYU6OSfqsRMREamg8+mxK1FYWHjG0Ha2/XLxUY+diIjIBepsoU2hTs6Hgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAiv2q5AVTMMg5MFxRQVO/GyWQn29cJisdR2tURELk6FOVCUBxYr+ASDzeN+7YhcUDzif5jDabDrSDabDmSxMz2brNwiHE4Dq9VCqJ+dZhGBdGgSQosGgXjZ1EkpIlJtDAOOH4Df1sHhFMg+DI4isFjAOwDqxUGjP0FkB/D2r+3aShVITk6mT58+HDt2jNDQ0HLLxcbGMm7cOMaNG1djdbsY1fkFivdn5rJo029sSztBYbFBoI8X/j42bFYLTqdBTqGDnIJivKwWWjYM4oaOjYitH1Db1RYR8Tx5WbBtEexbDfnHwTvQ/LDZzcBXlAsFJ8FwQmg0JNwIjbtCHXrGaFUsUOwmLw9OnIDgYPDzO//zncGIESOYNWsWAHa7naZNm3Lbbbfx97//HS+vc+/nKSwsJDMzk4YNG2KxWJg5cybjxo0jKyvLrdyRI0cICAjA31+BvrIq876r0z12a/dk8vG6AxzLKaJJPT8CfEq/nNDf3z95hQ5S0k5w4Fguf/lTY7o1D9ctWhGRqpK5G36eCRm7ICgKgpuYvXSn8gs1PzuKIGsf/DgVml8N7W8Br4tsUd6VK+GVV2DBAnA6zXB7443w8MPQvXu1XTYxMZEZM2ZQUFDAF198wf3334/dbueJJ54453N6e3sTGRl51nIRERHnfA2puLrzZ9Jpft57jP+t2UdBkZOWDQPLDHWn8vO20aJBIE4DPvxpP9/vzqihmoqIeLis/bDmv5C5ByJag3946VB3KpsdwpuDf33Y/iVs+sAMNxeLKVOgZ0/47LM/XrfTaX7dowdMnVptl/bx8SEyMpKYmBjuu+8++vbty8KFCzl27Bi33XYb9erVw9/fn2uvvZYdO3a4jtu7dy833HAD9erVIyAggLZt2/LFF18A5q1Yi8VCVlYWycnJ3HHHHRw/fhyLxYLFYuGZZ54BzFuxr732GgBDhw4lKSnJrW5FRUXUr1+f2bNn/94kTiZMmEBcXBx+fn507NiRjz76qNraxlPUyWCXfiKfBRsO4nAaRIf5u3reiosKz3ico7iIRqF+eFmtLNqYxoFjuTVRXRERz1VcABv/Z4a7iFZgNf/ILiwqPuNhhUXF4FcPghvDrqWw/4eaqG3tW7kS7r/fvDVdfFobFReb20ePhlWraqQ6fn5+FBYWMmLECH766ScWLlzI999/j2EYXHfddRQVFQFw//33U1BQwLfffsvmzZt58cUXCQwMLHW+bt268dprrxEcHExaWhppaWk88sgjpcoNGzaMzz77jOzsbNe2xYsXk5uby4ABAwCYMGECs2fPZurUqWzdupXx48czfPhwVqxYUU2t4RnqXLAzDIMvtxzi8Il8osP+uE+/PvkLXrr3Bo6lp5V53LH0NF669wbWJ39Bo1BfMnMK+XxTGnV8iKGISO3asxIObTJ74Czmr5R5yzfRfuRk9qdnlXnI/vQs2o+czLzlm8A3FGw+kLLAHKPn6V55BWy2M5ex2eDVV6u1GoZhsHTpUhYvXkzTpk1ZuHAh77zzDj169KBjx47MmTOHgwcP8umnnwKwb98+unfvTvv27WnWrBn9+/enZ8+epc7r7e1NSEgIFouFyMhIIiMjywyA/fr1IyAggE8++cS1be7cufzlL38hKCiIgoICXnjhBaZPn06/fv1o1qwZI0aMYPjw4UybNq3a2sUT1Llgl3Y8n80HjxMZ7Iv1lJ66r2b/hyMH9vDW324tFe6Opafx1t9u5ciBPXw1+z+/99z58suhk+zJUK+diMg5KS6E3SvA7g9e5oDuwqJinpqxlO0HjtJ7/Dulwt3+9Cx6j3+H7QeO8tSMpWbPXUg0HD8Iv62vhRdRg/LyzDF1p/fUna64GD75xCxfxRYtWkRgYCC+vr5ce+21JCUlMWLECLy8vLjssstc5cLDw2nVqhXbtm0DYOzYsfzzn/+ke/fuPP3002zatOm86uHl5cWgQYOYM2cOADk5OSxYsIBhw4YBsHPnTnJzc7nmmmsIDAx0fcyePZtdu3ad17U9XZ0Ldr8cOsHJ/CJC/OyubV52b0ZNnEl4VDQZafvdwl1JqMtI2094VDSjJs7Ey+5NoI8XuQXFbEs7XlsvRUSkbsvYCcf3Q9AfA+e97V4s/fedNIsKY3daplu4Kwl1u9MyaRYVxtJ/34m33QusNjMY7l9TSy+khpw4UfGxhE6nWb6K9enThw0bNrBjxw7y8vKYNWtWhSYS3nXXXezevZtbb72VzZs307VrV15//fXzqsuwYcP45ptvSE9P59NPP8XPz4/ExEQA1y3azz//nA0bNrg+UlJSNM7uLOpcsNuXmYvdZi31RqzXIIrRL73nFu5St65zC3WjX3qPeg2iALBYLPjabexVj52IyLk5+Rs4il29dSWiG4SS/OpdbuFu9Za9bqEu+dW7iG4Q+sdBviFw4jdzORRPFRxc8aVdrFazfBULCAggPj6epk2bupY4adOmDcXFxfz444+uchkZGfz6668kJCS4tkVHRzNq1Cg+/vhjHn74Yf773/+WeQ1vb28cDsdZ69KtWzeio6OZN28ec+bM4ZZbbsFuNzttEhIS8PHxYd++fcTHx7t9REdHn08TeLw6F+wOHsvDz172+ITTw93r44eUGepK+Hvb+C0rH6dT4+xERCot5yiU09lzerjrPnZa+aEOzMWLi3Ih14NXLPDzM5c0OduacV5eMGBAta9rV6JFixbceOON3H333axcuZKNGzcyfPhwGjduzI033gjAuHHjWLx4Mampqaxbt47ly5fTpk2bMs8XGxtLdnY233zzDUePHiU3t/wOlKFDhzJ16lSWLFniug0LEBQUxCOPPML48eOZNWsWu3btYt26dbz++uuutfikbHUu2BU7zCdKlKdegyiGPjrJbdvQRyeVCnVg9toZhoFDEyhERCrPUeyaMFGW6AahvPfELW7b3nviltKhDszzGE5wnr2np0576CE4W2+WwwHjx9dMfX43Y8YMunTpQv/+/bniiiswDIMvvvjC1YPmcDi4//77adOmDYmJibRs2ZK33nqrzHN169aNUaNGkZSUREREBJMmTSqzHJi3Y1NSUmjcuDHdT1u/7/nnn+fJJ59kwoQJrut+/vnnxMXFVd0L90B17skTLy3+lUPH82hSr+yVq08dU1eivB67tON5BPp48WT/BC1WLCJSWZvnQ8on0KBtmbtPHVNXotweu8Jsswfw6ichpEk1Vvr8VMmTJ6ZONZc0sdncJ1J4eZmh7q23YNSoqqmweITKvO/qXI9dTLg/eYVl/7Vz+kSJB159v8wJFSVyChzEhPsr1ImInIughubnMvoHTp8osWryvWVOqHApyAafIAhoUP31rm2jRsF335m3ZUvG3JU8eeK77xTq5LzUuWAXXc8fJ+A4bVzc6aFu9EvvEde2c6kJFSXhzuk0KHY6ia1fen0dERGpgJBo81mwBe6zN08Pdcmv3kW3djGlJlS4hbv8LAiPv3geLda9O3z0EWRnw6FD5uePPqrWx4nJxaHOBbu2jYOJCPThyMkC17biokKmPj6izIkSp0+omPr4CIqLCsnIKaSevzftGlX9rCMRkYtCaFPzEWIn/7gbUlhUTN9Hppc5UeL0CRV9H5lurmNXlG8+giz60lp6IbXIzw8aNqyxiRLi+epcsAv2tdM9PpysvEIKi831gLzs3iTe9iARTWLLHEtXEu4imsSSeNuDGFYvMnIKuLxZOOGBPrXxMkRE6j6LBZr3AZs35B0DzHXsnrujLy2b1C9zLF1JuGvZpD7P3dEXby8bHNsNDRKgYbtaeBEinqXOTZ4AyC9yMCV5F78eOkl8g0Bs1j+eQOFlL78bv7ioEKvNzs4j2TSLCOC+3vEE+pxl2rmIiJTPMGDDXPj1CwhrDnaz56mwqNhcfLgcrv1Ze8Fmh+7jzMeSXeCqZPKESCV59OQJAF+7jcGXRtM03I8d6ScpKDInU5wp1AE4LDZ2pJ8kKsSXpK5NFepERM6XxQJtb4LoyyBzlzlWDs4Y6gC8bRbI2AVYoOOQOhHqROqCOptsokL8uLN7Mz76+QBbDh4nwMdGgyBfvL1KZ9Uih5MjJws4kV9E68hgbu7ShOiwspdLERGRSvIOgK53gk8w7PkOso9AcCNz++kMp7msSU66uaxJ+1ugSdear7OIh6qzwQ4gMsSXu3vGsXrnUVbtzGBvZg5OA+xWCzarBYdhUOQwsAINg325JqEhPVtG4FvOkytEROQc+QRCl9shsh3sWGI+R9ZRCBabOQYPA4rzzc9+YdAyEVpdCwH1a7vmIh6lTgc7AB8vG31aN+SK5vX59dBJ0o7nc/BYLvnFTry9rDQJ9SMyxJdWkUH4e9f5lysicuGyWMzet0ad4OgOc/xc1j7z+a8Wq9mLF9wIItpAQHht11bEI3lM0vG12+gYHUpHPRtYRKR2WW3QoLX5IVIJsbGxjBs3jnHjxtV2VeqsOjl5QkRExBPk5cHhw+bn6jZixAgsFgsTJ0502/7pp5/W+BOYZs6cSWhoaKnta9eu5Z577qnRungaBTsREZEatnIl/PWvEBgIkZHm57/+FVatqt7r+vr68uKLL3Ls2LHqvdA5ioiIwN9fkxvPh4KdiIhIDZoyBXr2hM8+A6e5zj5Op/l1jx4wdWr1Xbtv375ERkYyYcKEcsusXLmSHj164OfnR3R0NGPHjiUnJ8e1Py0tjeuvvx4/Pz/i4uKYO3cusbGxvPbaa64yr7zyCu3btycgIIDo6GhGjx5NdnY2AMnJydxxxx0cP34ci8WCxWLhmWeeAXA7z9ChQ0lKSnKrW1FREfXr12f27NkAOJ1OJkyYQFxcHH5+fnTs2JGPPvqoClqq7lKwExERqSErV8L995vrOhcXu+8rLja3jx5dfT13NpuNF154gddff50DBw6U2r9r1y4SExMZOHAgmzZtYt68eaxcuZIxY8a4ytx222389ttvJCcnM3/+fN5++23S09PdzmO1Wpk8eTJbt25l1qxZLFu2jEcffRSAbt268dprrxEcHExaWhppaWk88sgjpeoybNgwPvvsM1cgBFi8eDG5ubkMGDAAgAkTJjB79mymTp3K1q1bGT9+PMOHD2fFihVV0l51kiEiIiIVkpeXZ6SkpBh5eXnndPyAAYbh5WUYZoQr+8PLyzAGDqziihuGcfvttxs33nijYRiGcfnllxt33nmnYRiG8cknnxglcWDkyJHGPffc43bcd999Z1itViMvL8/Ytm2bARhr16517d+xY4cBGK+++mq51/7www+N8PBw19czZswwQkJCSpWLiYlxnaeoqMioX7++MXv2bNf+IUOGGElJSYZhGEZ+fr7h7+9vrF692u0cI0eONIYMGXLmxqhjKvO+85hZsSIiIheyvDxYsOCP26/lKS6GTz4xy/v5VU9dXnzxRa666qpSPWUbN25k06ZNzJkzx7XNMAycTiepqals374dLy8vOnfu7NofHx9PvXr13M6zdOlSJkyYwC+//MKJEycoLi4mPz+f3NzcCo+h8/LyYtCgQcyZM4dbb72VnJwcFixYwP/+9z8Adu7cSW5uLtdcc43bcYWFhXTq1KlS7eFJFOxERERqwIkTZw91JZxOs3x1BbuePXvSr18/nnjiCUaMGOHanp2dzb333svYsWNLHdO0aVO2b99+1nPv2bOH/v37c9999/Gvf/2LsLAwVq5cyciRIyksLKzU5Ihhw4bRq1cv0tPTWbJkCX5+fiQmJrrqCvD555/TuHFjt+N8fHwqfA1Po2AnIiJSA4KDwWqtWLizWs3y1WnixIn86U9/olWrVq5tnTt3JiUlhfj4+DKPadWqFcXFxaxfv54uXboAZs/ZqbNsf/75Z5xOJy+//DJWqzmU/4MPPnA7j7e3Nw6H46x17NatG9HR0cybN48vv/ySW265BbvdDkBCQgI+Pj7s27ePXr16Ve7FezAFOxERkRrg5wc33mjOfj194sSpvLzMctXVW1eiffv2DBs2jMmTJ7u2PfbYY1x++eWMGTOGu+66i4CAAFJSUliyZAlvvPEGrVu3pm/fvtxzzz1MmTIFu93Oww8/jJ+fn2stvPj4eIqKinj99de54YYbWLVqFVNPm+obGxtLdnY233zzDR07dsTf37/cnryhQ4cydepUtm/fzvLly13bg4KCeOSRRxg/fjxOp5Mrr7yS48ePs2rVKoKDg7n99turodUufJoVKyIiUkMeegjO1lHlcMD48TVTn+eeew7nKV2IHTp0YMWKFWzfvp0ePXrQqVMnnnrqKRo1auQqM3v2bBo2bEjPnj0ZMGAAd999N0FBQfj6+gLQsWNHXnnlFV588UXatWvHnDlzSi2v0q1bN0aNGkVSUhIRERFMmjSp3DoOGzaMlJQUGjduTPfu3d32Pf/88zz55JNMmDCBNm3akJiYyOeff05cXFxVNE+dZDEMw6jtSoiIiNQF+fn5pKamEhcX5woylTV1qrmkic3m3nPn5WWGurfeglGjqqjCNeDAgQNER0ezdOlSrr766tqujkeqzPtOPXYiIiI1aNQo+O4783br70PQsFrNr7/77sIPdcuWLWPhwoWkpqayevVqBg8eTGxsLD179qztqgkaYyciIlLjunc3P/LyzNmvwcHVP6auqhQVFfH3v/+d3bt3ExQURLdu3ZgzZ45rUoPULgU7ERGRWuLnV3cCXYl+/frRr1+/2q6GlEO3YkVEREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQ2hWrIiISDXbe2IvOUU5lT4uwB5ATHBMNdRIPJWCnYiISDXae2Iv/T/pf87HLxqwSOFOKky3YkVERKrRufTUVeXxp/v++++x2Wxcf/31VXreitqzZw8Wi4UNGzbUyvU9nYKdiIjIReTdd9/lgQce4Ntvv+W3336r7epIFVOwExERuUhkZ2czb9487rvvPq6//npmzpzptn/hwoW0aNECX19f+vTpw6xZs7BYLGRlZbnKrFy5kh49euDn50d0dDRjx44lJ+ePXsXY2FheeOEF7rzzToKCgmjatClvv/22a39cXBwAnTp1wmKx0Lt37+p8yRcdBTsREZGLxAcffEDr1q1p1aoVw4cPZ/r06RiGAUBqaio333wzN910Exs3buTee+/l//2//+d2/K5du0hMTGTgwIFs2rSJefPmsXLlSsaMGeNW7uWXX6Zr166sX7+e0aNHc9999/Hrr78CsGbNGgCWLl1KWloaH3/8cQ288ouHgp2IiMhF4t1332X48OEAJCYmcvz4cVasWAHAtGnTaNWqFS+99BKtWrVi8ODBjBgxwu34CRMmMGzYMMaNG0eLFi3o1q0bkydPZvbs2eTn57vKXXfddYwePZr4+Hgee+wx6tevz/LlywGIiIgAIDw8nMjISMLCwmrglV88FOxEREQuAr/++itr1qxhyJAhAHh5eZGUlMS7777r2n/JJZe4HXPppZe6fb1x40ZmzpxJYGCg66Nfv344nU5SU1Nd5Tp06OD6t8ViITIykvT09Op6aXIKLXciIiJyEXj33XcpLi6mUaNGrm2GYeDj48Mbb7xRoXNkZ2dz7733Mnbs2FL7mjZt6vq33W5322exWHA6nedYc6kMBTsREREPV1xczOzZs3n55Zf585//7Lbvpptu4v3336dVq1Z88cUXbvvWrl3r9nXnzp1JSUkhPj7+nOvi7e0NgMPhOOdzSPkU7ERERDzcokWLOHbsGCNHjiQkJMRt38CBA3n33Xf54IMPeOWVV3jssccYOXIkGzZscM2atVgsADz22GNcfvnljBkzhrvuuouAgABSUlJYsmRJhXv9GjRogJ+fH1999RVNmjTB19e3VJ3k3GmMnYiIiId799136du3b5kBauDAgfz000+cPHmSjz76iI8//pgOHTowZcoU16xYHx8fwBw7t2LFCrZv306PHj3o1KkTTz31lNvt3bPx8vJi8uTJTJs2jUaNGnHjjTdWzYsUACxGyTxnEREROaP8/HxSU1OJi4vD19e3QsekZKSQtCjpnK85r/88EsITzvn48/Gvf/2LqVOnsn///lq5vpgq877TrVgREREB4K233uKSSy4hPDycVatW8dJLL5Vao04ubAp2IiIiAsCOHTv45z//SWZmJk2bNuXhhx/miSeeqO1qSSUo2ImIiFSjAHtArR5fGa+++iqvvvpqjV1Pqp6CnYiISDWKCY5h0YBF5BTlnL3waQLsAcQEx1RDrcRTKdiJiIhUM4UzqSla7kRERETEQ6jHTkREpBYYhkF+kZNChxNvmxVfu9W1ELDIuVKwExERqUH5RQ5S0k6wNjWTvRk5OJwGNquFmPAALokLIyEqGF+7rbarKXWUgp2IiEgN2XM0h3k/7WdvRg4WLNTzt+PtbaPY4WTTgeNsPJBFTHgASV2jia1fc7NhxXNojJ2IiEgN2HM0hxmrUtl7NIeYsADiGwQSHuhDiJ+d8EAf4hsEEhMWwN7fy+05WvlZtJ6sd+/ejBs3rrarccFTsBMREalm+UUO5v20nyMnC4hvEIi3V9m/fr29rMQ3COTIyQLm/bSf/CJHldVhxIgRWCwWLBYLdruduLg4Hn30UfLz86vsGnVZbGwsr732Wm1X47wp2ImIiFSzlLQT7M3IISY84KwTJCwWc7zd3owctqWdqNJ6JCYmkpaWxu7du3n11VeZNm0aTz/9dJVe43wYhkFxcXFtV6NOU7ATERGpRoZhsDY1EwuWcnvqTuftZcWChTWpmRiGUWV18fHxITIykujoaG666Sb69u3LkiVLXPudTicTJkwgLi4OPz8/OnbsyEcffeTa37VrV/7973+7vr7pppuw2+1kZ2cDcODAASwWCzt37gTgvffeo2vXrgQFBREZGcnQoUNJT093HZ+cnIzFYuHLL7+kS5cu+Pj4sHLlSnJycrjtttsIDAwkKiqKl19++ayvbePGjfTp04egoCCCg4Pp0qULP/30k2v/ypUr6dGjB35+fkRHRzN27Fhycszb3b1792bv3r2MHz/e1atZVynYiYiIVKP8Iid7M3Ko52+v1HH1/O3szcghv8hZLfXasmULq1evxtvb27VtwoQJzJ49m6lTp7J161bGjx/P8OHDWbFiBQC9evUiOTkZMAPrd999R2hoKCtXrgRgxYoVNG7cmPj4eACKiop4/vnn2bhxI59++il79uxhxIgRpery+OOPM3HiRLZt20aHDh3429/+xooVK1iwYAFff/01ycnJrFu37oyvZ9iwYTRp0oS1a9fy888/8/jjj2O3m22+a9cuEhMTGThwIJs2bWLevHmsXLmSMWPGAPDxxx/TpEkTnnvuOdLS0khLSzuvtq1NmhUrIiJSjQodThxOA2/vyi1hYrNaKPp9nTs/qmb5k0WLFhEYGEhxcTEFBQVYrVbeeOMNAAoKCnjhhRdYunQpV1xxBQDNmjVj5cqVTJs2jV69etG7d2/effddHA4HW7Zswdvbm6SkJJKTk0lMTCQ5OZlevXq5rnfnnXe6/t2sWTMmT57MJZdcQnZ2NoGBga59zz33HNdccw0A2dnZvPvuu/zf//0fV199NQCzZs2iSZMmZ3xt+/bt429/+xutW7cGoEWLFq59EyZMYNiwYa7JFy1atGDy5Mn06tWLKVOmEBYWhs1mc/Us1mXqsRMREalG3jYrNquFYkflet5K1rfztlXdr+o+ffqwYcMGfvzxR26//XbuuOMOBg4cCMDOnTvJzc3lmmuuITAw0PUxe/Zsdu3aBUCPHj04efIk69evZ8WKFa6wV9KLt2LFCnr37u263s8//8wNN9xA06ZNCQoKcoW+ffv2udWra9eurn/v2rWLwsJCLrvsMte2sLAwWrVqdcbX9tBDD3HXXXfRt29fJk6c6KozmLdpZ86c6fa6+vXrh9PpJDU1tfINeQFTsBMREalGvnYrMeEBHMstqtRxx3KLiAkPwNdedb+qAwICiI+Pp2PHjkyfPp0ff/yRd999F8A1Tu7zzz9nw4YNro+UlBTXOLvQ0FA6duxIcnKyK8T17NmT9evXs337dnbs2OEKbzk5OfTr14/g4GDmzJnD2rVr+eSTTwAoLCwsVa/z9cwzz7B161auv/56li1bRkJCgut62dnZ3HvvvW6va+PGjezYsYPmzZuf97UvJAp2IiIi1chisXBJXBgGBoXFFeu1Kyx2YmBwaVxYtQ3kt1qt/P3vf+cf//gHeXl5JCQk4OPjw759+4iPj3f7iI6Odh3Xq1cvli9fzrfffkvv3r0JCwujTZs2/Otf/yIqKoqWLVsC8Msvv5CRkcHEiRPp0aMHrVu3dps4UZ7mzZtjt9v58ccfXduOHTvG9u3bz3psy5YtGT9+PF9//TV//etfmTFjBgCdO3cmJSWl1OuKj493jTH09vbG4ai65WVqi4KdiIhINUuICnYtYXK2Wa6GYbiWRmkTFVyt9brllluw2Wy8+eabBAUF8cgjjzB+/HhmzZrFrl27WLduHa+//jqzZs1yHdO7d28WL16Ml5eXazxb7969mTNnjtv4uqZNm+Lt7c3rr7/O7t27WbhwIc8///xZ6xQYGMjIkSP529/+xrJly9iyZQsjRozAai0/suTl5TFmzBiSk5PZu3cvq1atYu3atbRp0waAxx57jNWrVzNmzBg2bNjAjh07WLBggWvyBJjr2H377bccPHiQo0ePVrotLxQKdiIiItXM124jqWs0EUE+7EzPLrfnrrDYyc70bCKCfBh8SXS1PzPWy8uLMWPGMGnSJHJycnj++ed58sknmTBhAm3atCExMZHPP/+cuLg41zE9evTA6XS6hbjevXvjcDjcxtdFREQwc+ZMPvzwQxISEpg4caLbUiln8tJLL9GjRw9uuOEG+vbty5VXXkmXLl3KLW+z2cjIyOC2226jZcuWDBo0iGuvvZZnn30WgA4dOrBixQq2b99Ojx496NSpE0899RSNGjVyneO5555jz549NG/enIiIiIo24QXHYlTlAjkiIiIeLD8/n9TUVOLi4vD19a308WU9K9ZmteBwGhzLLcLAICY8gMGXRBMTrmfFiqky7zstdyIiIlJDYusH8ODVLdiWdoI1qZnszcihqMiJzWqhQ5MQLo0Lo01UcLX31InnUrATERGpQb52G52a1uNP0aHk/75OnbfNiq/dWqefeCAXBgU7ERGRWmCxWPDztlXZ4sMioMkTIiIiIh5DwU5ERETEQyjYiYiIiHgIjbETERGpDYYBRXngKASbN9j9QJMn5Dwp2ImIiNSkonw4tBn2fQ+Zu8HpAKsNwppB0ysgsj3YK79Gnggo2ImIiNScjF2w/j3ITAUs4B8Gdh9wFsHBdXDwZwiLg063QrhnPZxeaobG2ImIiNSEjF3w41Qz1IU1g4hWEBABfqHm54hW5vbMVLNcxq5aq6rFYuHTTz+ttevLuVOwExERqW5F+WZPXXY61G9ljqkri83b3J+dbpYvyq+yKowYMQKLxYLFYsFut9OwYUOuueYapk+fjtPp/uzatLQ0rr322gqdtyZD4DPPPMOf/vSnajt/fn4+I0aMoH379nh5eXHTTTdV27VKVPVrUrATERGpboc2/9FTd7YJEhYL1Iszyx/eUqXVSExMJC0tjT179vDll1/Sp08fHnzwQfr3709xcbGrXGRkJD4+PlV23cLCwio7V1Uorz4OhwM/Pz/Gjh1L3759a7hWVUPBTkREpDoZhjlRAkv5PXWn8/Ixy+9dbR5fRXx8fIiMjKRx48Z07tyZv//97yxYsIAvv/ySmTNnusqd2gtXWFjImDFjiIqKwtfXl5iYGCZMmABAbGwsAAMGDMBisbi+LumFeuedd9weXP/VV19x5ZVXEhoaSnh4OP3792fXLvdbzgcOHGDIkCGEhYUREBBA165d+fHHH5k5cybPPvssGzdudPU8ltR537593HjjjQQGBhIcHMygQYM4fPiw65zl1ed0AQEBTJkyhbvvvpvIyMgKtemZ2gcgKyuLu+66i4iICIKDg7nqqqvYuHEjwBlf07nS5AkREZHqVJRnzn71D6vccf5h5nFFeeDtXz11A6666io6duzIxx9/zF133VVq/+TJk1m4cCEffPABTZs2Zf/+/ezfvx+AtWvX0qBBA2bMmEFiYiI22x+PR9u5cyfz58/n448/dm3PycnhoYceokOHDmRnZ/PUU08xYMAANmzYgNVqJTs7m169etG4cWMWLlxIZGQk69atw+l0kpSUxJYtW/jqq69YunQpACEhITidTleoW7FiBcXFxdx///0kJSWRnJx8xvpUhTO1D8Att9yCn58fX375JSEhIUybNo2rr76a7du3l/uazoeCnYiISHVyFJpLmtgreWvT6vXHOndUX7ADaN26NZs2bSpz3759+2jRogVXXnklFouFmJgY176IiAgAQkNDS/VwFRYWMnv2bFcZgIEDB7qVmT59OhEREaSkpNCuXTvmzp3LkSNHWLt2LWFhZhCOj493lQ8MDMTLy8vtWkuWLGHz5s2kpqYSHR0NwOzZs2nbti1r167lkksu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", "text/plain": [ "
" ] @@ -233,22 +207,12 @@ "output_type": "stream", "text": [ "Time t=3\n", - "[Array([[22]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[6]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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3r9/f4Ov58yZg+XLl+PXX381OUARERGVqUsX3Uduru7Vdo6OlT7niUiqcr8KT6PRYMuWLcjOztbfE6Mk+fn5yM/P13+dkZEBQPeXlVqtLu/hK1RRHZZSjyViH5mG/WQa9pNpLLGfqrQWW1sGJ7JYkgPUuXPn0LlzZ+Tl5cHBwQE7duwwuF9FcXPnzsWsWbOM2vfv3w87Ozuph69Uj9+yn0rGPjIN+8k07CfTWFI/5eTkmLsEIosgaQ4UoLtp2PXr15Geno6tW7fif//7H2JjY0sNUSWNQHl6eiItLc2i5kBFR0cjNDTUYuYZWBr2kWnYT6ZhP5nGEvspIyMDderUqdw5UERmVClzoADA2tpaf6Mxf39/nDhxAosXL0ZUVFSJ6yuVSv1Nxh6nUCgs5gmhiCXWZGnYR6ZhP5mG/WQaS+onU+qQ+Hc5kUUx9fx96vtAabVagxEmIiKqmYrCFS/zUXVWdP4+6Y8FSSNQ06dPR58+fdCwYUNkZmZiw4YNiImJwb59+8pfKRERPRPkcjmcnZ31d9S2s7ODIAhmrorINKIoIicnB6mpqXB2doZcLi9zfUkBKjU1FSNHjsTt27fh5OSENm3aYN++fUZvrkhERDWTm5sbAJj0tiRElsjZ2Vl/HpdFUoBauXJluQsiIqJnnyAIcHd3R926dS3q9gtEplAoFE8ceSpS7vtAERERlUYul5v8i4ioOuKbCRMRERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJJGkADV37lx06NABKpUKdevWxYABA/DHH39UVm1EREREFklSgIqNjUVERAR+/fVXREdHQ61Wo1evXsjOzq6s+oiIiIgsjpWUlX/66SeDr9esWYO6devi1KlT6NatW4nb5OfnIz8/X/91RkYGAECtVkOtVkutt1IU1WEp9Vgi9pFp2E+mYT+ZxhL7yZJqITInQRRFsbwbX758GT4+Pjh37hxat25d4jofffQRZs2aZdS+YcMG2NnZlffQRERkBjk5ORg+fDjS09Ph6Oho7nKIzKbcAUqr1eKf//wnHj16hPj4+FLXK2kEytPTE2lpaRbzw6dWqxEdHY3Q0FAoFApzl2OR2EemYT+Zhv1kGkvsp4yMDNSpU4cBimo8SZfwHhcREYGkpKQywxMAKJVKKJVKo3aFQmExTwhFLLEmS8M+Mg37yTTsJ9NYUj9ZSh1E5lauADVhwgTs3r0bcXFxaNCgQUXXRERERGTRJAUoURTx9ttvY8eOHYiJiYG3t3dl1UVERERksSQFqIiICGzYsAE7d+6ESqXCnTt3AABOTk6wtbWtlAKJiIiILI2k+0AtX74c6enpCA4Ohru7u/5j8+bNlVUfERERkcWRfAmPiIiIqKbje+ERERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREElmZuwBzSbqVji0nb+D41Qe4kZaJOQFAu4/3w7OOCh29XDA4wBOtPZzMXSZVAzyXTPMoW41rqblIy1QjMzsPAoA9J1OhsrdBHZUCjerawtleYe4yzY79RFQ91LgAdTUtG9O2ncXxlAeQywRotCKUchEAoNaK+P12Ji7ezcLao9fQ0dsF8wa1gVcdezNXTZaI55JpsvIKkZCcgfuZaggAROj+EQCIIpCRU4jMnEJcuZuL2ioF2jdxhINNjXtqYj8RVTM16hLezsRb6LUwDqeuPQQAaLRiiesVtZ+69hC9FsZhZ+KtKquRqgeeS6a5kZaLg2fu40GmGsBfoaAERe0PMtU4eOY+bqTlVkl9loL9RFT91Jg/X3Ym3sLETYmlPjGVRKMVoYGIiZsSAQAvtvWolNqoeuG5ZJobabk4eTlD0jYidKMtRdt51rGthMosC/uJqHqqESNQKWnZmLrlbKm/8JTqAoPPxYkApm45i6tp2ZVTIFUbPJdMk5WruxxVGll+nsHnkiQkZyArr7DCa7Mk7Cei6qtGBKj3tp2FRjT+lRdw8zy+3j4Hx5e+BgA4vvQ1fL19Dvxv/ma0rkYUMW3b2UqvlSwbzyXTJFzJQAndhNpnjqHj+2PQp78fAKBPfz90fH8MXM4cN1pXFFFmuHgWsJ+Iqq9nPkCdu5mO4ykPjOaovHp6L75b/x5Cko9D/tczmFwUEZJ8HFvWT8OI03sN1tdoRRxPeYCkW+lVVjtZFp5LpnmYpcb9TLXRKJ339jUIfHMA3OP3QdBqAQCCVgv3+H3o9uaL8Nq+1mB9EcD9TDUeZaurpvAqxn4iqt4kB6i4uDj0798f9evXhyAI+P777yuhrIqz9dQNWMkEg7aAm+fx8f5lkAGw0moMlllpNZABmL1/mdHogVwmYMvJG5VcMVkqnkumuX4vF4JhN6H2mWPwmz8dAkTINIb9JNNoIEBE2/nvG42wCACupT6bE6XZT0TVm+QAlZ2dDT8/PyxdurQy6qlwx68+QGGxEYPXj38PrUxe5nZamRxjT3xv0KbRijhx9WFFl0jVBM8l06Rlqo0uSzXZGAVRXvbTjSiXoemmKMM26EZXnkXsJ6LqTfKr8Pr06YM+ffqYvH5+fj7y8/P1X2dk6K7Vq9VqqNWV/wN/Iy1Tf28eQDe5N/jWGYhKaxQdXW1ra/C5SI+biXDU5iNfYa1vu56WUSV1W5qix1wTH3sRnkumyczOM3gdviw/D64nY6GxtkbRmEpp/eR6Igay3CxolTb6tozsQvaTBfXTs/i9ICoPQRRLmsJo4saCgB07dmDAgAGlrvPRRx9h1qxZRu0bNmyAnZ1deQ9NRERmkJOTg+HDhyM9PR2Ojo7mLofIbCo9QJU0AuXp6Ym0tLQq+eFr9/F+qLWGowbHl76mn+wL6P66i161CqFjxkCR+/c8Ao0goGPENwajBgqZgNMzelV63ZZGrVYjOjoaoaGhUChq5ttI8FwyzZ6TqQaXpmT5eejT308/IRoovZ9EmQw/7jpjMLIiCEC/gLpVUntVqq79lJGRgTp16jBAUY1X6TfSVCqVUCqVRu0KhaJKfhF71lHh99uZ+q/zZUrEePghJPm40aRfRW6u/kmqUCbHoaadkCFTAo+t1qSuY40NEEDVfd8sEc8l06jsbZCR8/d9ibS2DrgXEAT3+H1GE6Mf7yetXI7bgb2htXUwWMfRzor9ZEH99Cx+L4jK45m/jUFHLxfIi71y6n8dB0BW7BdecTKtBis7DDBok8sEdPCqVdElUjXBc8k0dVQKFHtxGZKHvQFBoy1x/SKCRovLQ98wbANQW/Vs/sJmPxFVb898gBoc4Gl0356TDVrhw17joYVudOBxhTI5tAA+7DUepxr4GizTaEUMDvCs5IrJUvFcMk2jurZG9za679cJiVMjIUKAVm7YT1q5HCIEJE6NxAO/jgbLxL/29yxiPxFVb5Iv4WVlZeHy5cv6r1NSUpCYmAgXFxc0bNiwQourCK09nNDR2wWnrj00+OW3vl1fXHD1wtgT36PHzUQAunkqh5p2wsoOA4x+4cllAvwb1UJrD6eqLJ8sCM8l0zjbK1BbpcCDYjeJvDpwFDKatETTTVFwPREDQDeX53Zgb1we+oZRKBAAuKgUcLZ/NkdW2E9E1ZvkSeQxMTHo3r27UfuoUaOwZs2aJ26fkZEBJyenKp2AeDUtG70WxqGglKFxR20+ZneR48MjGt08lRJYy2XYP6kbvOrYV2apFkutVmPv3r3o27dvjZ4DwXPJNFl5hTh45j60pTy7yHKzgIwkwLG10Vwe/ToC0NOvNhxsnt33PK+O/WSO53AiSyT5El5wcDBEUTT6MCU8mYtXHXvMH9zGaL5BkaJXRj3+CqnHCQDmD27zTP/CI9PwXDKNg40V2jcp/Zdr0avHHn8VWXHtmzg+0+EJYD8RVWc15qfuxbYeAICpW3RvBlt8LktJ5DIBckHA/MFt9NsT8VwyjWcd3ZychGTdG+aaMtQtQPdy/PZNHPXbP+vYT0TVU40JUIDuF59fA2dM23YWx1MeQC4TSvzlV9Qe0KgWPhv07I8WkHQ8l0zjWccWtRwUSEjOwP1MNQSUHBCK2l1Uiho5osJ+Iqp+atxPn1cde3z3Rmck3UrHlpM3cOLqQ1xP0729jEImoEldR3TwqoXBAZ7P7CRfqhg8l0zjYGOFbq1c8ChbjWupubifqUZGtu7+R4Kgu39RbZUCjera1uiJ0OwnouqlxgWoIq09nPS/1IomSJ+e0atGT5Cm8uG5ZBpnewWcvXV9ousn3Z2z2U+G2E9E1cMzfx8oIiIioorGAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJFG5AtTSpUvh5eUFGxsbdOrUCcePH6/ouoiIiIgsluQAtXnzZkyePBkzZ85EQkIC/Pz8EBYWhtTU1Mqoj4iIiMjiSA5QX3zxBcaNG4fRo0fD19cXX3/9Nezs7LBq1arKqI+IiIjI4lhJWbmgoACnTp3C9OnT9W0ymQwh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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABR40lEQVR4nO3dd3hUVeL/8ffMZNIbCYEECEkgtNCWYgNpiktUXGVRQlNRLIiIoK5lf2vfFcS1LBbAVZpfcFFRQSwIQlBABaUTlBaqgUBCgPRk5v7+uGZkSAIJpJDh83qePCH3nnvvmZMh+eTcc861GIZhICIiIiJ1nrW2KyAiIiIiVUPBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5qxTPPPIPFYnHbFhsby4gRI2q0HjNnzsRisbBnz54ava5UjL4/IiKVo2B3AUlNTWXMmDG0bNkSf39//P39SUhI4P7772fTpk21Xb2L0p49e7BYLBX6KC98xMbGYrFY6Nu3b5n7//vf/7rO8dNPP1Xjqzk3Z2uDiRMn1nYVLypz587ltddeq+1qiMgFyqu2KyCmRYsWkZSUhJeXF8OGDaNjx45YrVZ++eUXPv74Y6ZMmUJqaioxMTG1XdVq8+uvv2K1Xlh/a0RERPDee++5bXv55Zc5cOAAr776aqmy5fH19WX58uUcOnSIyMhIt31z5szB19eX/Pz8qqt4NRgyZAjXXXddqe2dOnWqtmveeuutDB48GB8fn2q7Rl0zd+5ctmzZwrhx42q7KiJyAVKwuwDs2rWLwYMHExMTwzfffENUVJTb/hdffJG33nrrggs9p8rJySEgIOC8znEh/vIOCAhg+PDhbtv+97//cezYsVLbz6R79+6sXbuWefPm8eCDD7q2HzhwgO+++44BAwYwf/78Kqt3dejcuXOlXnNVsNls2Gy2M5YxDIP8/Hz8/PxqqFYiIheuCzcpXEQmTZpETk4OM2bMKBXqALy8vBg7dizR0dFu23/55RduvvlmwsLC8PX1pWvXrixcuNCtTMkYpVWrVvHQQw8RERFBQEAAAwYM4MiRI6Wu9eWXX9KjRw8CAgIICgri+uuvZ+vWrW5lRowYQWBgILt27eK6664jKCiIYcOGAfDdd99xyy230LRpU3x8fIiOjmb8+PHk5eWdtR1OH2NX0dueFWkHgK1bt3LVVVfh5+dHkyZN+Oc//4nT6TxrvaqCr68vf/3rX5k7d67b9vfff5969erRr1+/Usds2rSJESNG0KxZM3x9fYmMjOTOO+8kIyPDVeZst0lP9eOPP5KYmEhISAj+/v706tWLVatWVenrjI2NpX///qxcuZJLL70UX19fmjVrxuzZs11lfvrpJywWC7NmzSp1/OLFi7FYLCxatAgoe4xdyTUWL15M165d8fPzY9q0aQDs3r2bW265hbCwMPz9/bn88sv5/PPP3a6RnJyMxWLhgw8+4F//+hdNmjTB19eXq6++mp07d7qV7d27N+3atWPTpk306tULf39/4uPj+eijjwBYsWIFl112GX5+frRq1YqlS5eWek0HDx7kzjvvpGHDhvj4+NC2bVumT59+TnXq3bs3n3/+OXv37nV9j2NjYyvwnRGRi4V67C4AixYtIj4+nssuu6zCx2zdupXu3bvTuHFjHn/8cQICAvjggw+46aabmD9/PgMGDHAr/8ADD1CvXj2efvpp9uzZw2uvvcaYMWOYN2+eq8x7773H7bffTr9+/XjxxRfJzc1lypQpXHnllaxfv97tF0hxcTH9+vXjyiuv5N///jf+/v4AfPjhh+Tm5nLfffcRHh7OmjVreP311zlw4AAffvhhpdrl9FugAP/4xz9IT08nMDCwUu1w6NAh+vTpQ3Fxsavc22+/XaO9PEOHDuXPf/4zu3btonnz5oB5W+3mm2/GbreXKr9kyRJ2797NHXfcQWRkJFu3buXtt99m69at/PDDD1gsljJvFRcVFTF+/Hi8vb1d25YtW8a1115Lly5dePrpp7FarcyYMYOrrrqK7777jksvvfSs9c/NzeXo0aOltoeGhuLl9cePkp07d3LzzTczcuRIbr/9dqZPn86IESPo0qULbdu2pWvXrjRr1owPPviA22+/3e1c8+bNKzfonurXX39lyJAh3Hvvvdx99920atWKw4cP061bN3Jzcxk7dizh4eHMmjWLv/zlL3z00Uel/k9MnDgRq9XKI488wvHjx5k0aRLDhg3jxx9/dCt37Ngx+vfvz+DBg7nllluYMmUKgwcPZs6cOYwbN45Ro0YxdOhQXnrpJW6++Wb2799PUFAQAIcPH+byyy/HYrEwZswYIiIi+PLLLxk5ciQnTpwodTv1bHX6f//v/3H8+HG3oQAl/xdERAAwpFYdP37cAIybbrqp1L5jx44ZR44ccX3k5ua69l199dVG+/btjfz8fNc2p9NpdOvWzWjRooVr24wZMwzA6Nu3r+F0Ol3bx48fb9hsNiMrK8swDMM4efKkERoaatx9991udTh06JAREhLitv322283AOPxxx8vVedT61hiwoQJhsViMfbu3eva9vTTTxunv/1iYmKM22+/vdTxJSZNmmQAxuzZsyvdDuPGjTMA48cff3RtS09PN0JCQgzASE1NLfe6p7v++uuNmJiYCpePiYkxrr/+eqO4uNiIjIw0nn/+ecMwDCMlJcUAjBUrVri+T2vXrnUdV1Zbvv/++wZgfPvtt+Veb/To0YbNZjOWLVtmGIbZHi1atDD69evn9h7Izc014uLijGuuueaM9U9NTTWAcj++//57t9d6ev3S09MNHx8f4+GHH3Zte+KJJwy73W5kZma6thUUFBihoaHGnXfe6dpW0i6nfn9KrvHVV1+51bPke/zdd9+5tp08edKIi4szYmNjDYfDYRiGYSxfvtwAjDZt2hgFBQWusv/5z38MwNi8ebNrW69evQzAmDt3rmvbL7/8YgCG1Wo1fvjhB9f2xYsXG4AxY8YM17aRI0caUVFRxtGjR93qOnjwYCMkJMT1Pa5MnSr7/hORi4tuxdayEydOAGX/1d27d28iIiJcH2+++SYAmZmZLFu2jEGDBnHy5EmOHj3K0aNHycjIoF+/fuzYsYODBw+6neuee+5xuzXXo0cPHA4He/fuBczeoaysLIYMGeI639GjR7HZbFx22WUsX768VP3uu+++UttO7QHLycnh6NGjdOvWDcMwWL9+/Tm0kGn58uU88cQTPPDAA9x6662VbocvvviCyy+/3K1nKiIiwnULuSbYbDYGDRrE+++/D5iTJqKjo+nRo0eZ5U9ty/z8fI4ePcrll18OwLp168o8Zvbs2bz11ltMmjSJPn36ALBhwwZ27NjB0KFDycjIcLVTTk4OV199Nd9++22Fbknfc889LFmypNRHQkKCW7mEhAS31xQREUGrVq3YvXu3a1tSUhJFRUV8/PHHrm1ff/01WVlZJCUlnbUucXFxpXr1vvjiCy699FKuvPJK17bAwEDuuece9uzZQ0pKilv5O+64w61Xs6TOp9az5ByDBw92fd2qVStCQ0Np06aN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3/P888/zxhtvkJ2dTWRkJJdddhn33ntvherz/vvvu2b0nur2228/r2D3j3/8g9zc3ArNhj2Thg0bsnr1ah577DFef/118vPz6dChA5999hnXX3/9eZ37fOq0Zs0annvuOT7++GPeeustwsPDadu2LS+++OI5nXP06NFs2LCBGTNm8OqrrxITE6NgJyIuFkOjckVEREQ8gsbYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh/Cq7QqIiIjURQ6Hg6Kiotquhng4u92OzWarcHkFOxERkUowDINDhw6RlZVV21WRi0RoaCiRkZFYLJazllWwExERqYSSUNegQQP8/f0r9MtW5FwYhkFubi7p6ekAREVFnfUYBTsREZEKcjgcrlAXHh5e29WRi4Cfnx8A6enpNGjQ4Ky3ZTV5QkREpIJKxtT5+/vXck3kYlLyfqvImE4FOxERkUrS7VepSZV5vynYiYiIiHgIBTsRERERD6FgJyIiUoMKCwvPa//5OHToEA888ADNmjXDx8eH6OhobrjhBr755ptqu6bULAU7ERGRGjJv3jzat2/P/v37y9y/f/9+2rdvz7x586r82nv27KFLly4sW7aMl156ic2bN/PVV1/Rp08f7r///iq/ntQOBTsREZEaUFhYyFNPPcX27dvp3bt3qXC3f/9+evfuzfbt23nqqaeqvOdu9OjRWCwW1qxZw8CBA2nZsiVt27bloYce4ocffmDPnj1YLBY2bNjgOiYrKwuLxUJycrJr25YtW7j22msJDAykYcOG3HrrrRw9erRK6yrnTsFORESkBnh7e7N06VKaNWvG7t273cJdSajbvXs3zZo1Y+nSpXh7e1fZtTMzM/nqq6+4//77CQgIKLU/NDS0QufJysriqquuolOnTvz000989dVXHD58mEGDBlVZXeX8KNiJiIjUkOjoaJKTk93C3erVq91CXXJyMtHR0VV63Z07d2IYBq1btz6v87zxxht06tSJF154gdatW9OpUyemT5/O8uXL2b59exXVVs6HnjwhIiJSg0rCXUmY6969O0C1hTowH01VFTZu3Mjy5csJDAwstW/Xrl20bNmySq4j507BTkREpIZF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FsHBdXDwZwiLg063QrhnPZxeaobG2ImIiNSEjF3w41Qz1IU1g4hWEBABfqHm54hW5vbMVLNcxq5aq6rFYuHTTz+ttevLuVOwExERqW5F+WZPXXY61G9ljqkri83b3J+dbpYvyq+yKowYMQKLxYLFYsFut9OwYUOuueYapk+fjtPp/uzatLQ0rr322gqdtyZD4DPPPMOf/vSnajt/fn4+I0aMoH379nh5eXHTTTdV27VKVPVrUrATERGpboc2/9FTd7YJEhYL1Iszyx/eUqXVSExMJC0tjT179vDll1/Sp08fHnzwQfr3709xcbGrXGRkJD4+PlV23cLCwio7V1Uorz4OhwM/Pz/Gjh1L3759a7hWVUPBTkREpDoZhjlRAkv5PXWn8/Ixy+9dbR5fRXx8fIiMjKRx48Z07tyZv//97yxYsIAvv/ySmTNnusqd2gtXWFjImDFjiIqKwtfXl5iYGCZMmABAbGwsAAMGDMBisbi+LumFeuedd9weXP/VV19x5ZVXEhoaSnh4OP3792fXLvdbzgcOHGDIkCGEhYUREBBA165d+fHHH5k5cybPPvssGzdudPU8ltR537593HjjjQQGBhIcHMygQYM4fPiw65zl1ed0AQEBTJkyhbvvvpvIyMgKtemZ2gcgKyuLu+66i4iICIKDg7nqqqvYuHEjwBlf07nS5AkREZHqVJRnzn71D6vccf5h5nFFeeDtXz11A6666io6duzIxx9/zF133VVq/+TJk1m4cCEffPABTZs2Zf/+/ezfvx+AtWvX0qBBA2bMmEFiYiI22x+PR9u5cyfz58/n448/dm3PycnhoYceokOHDmRnZ/PUU08xYMAANmzYgNVqJTs7m169etG4cWMWLlxIZGQk69atw+l0kpSUxJYtW/jqq69YunQpACEhITidTleoW7FiBcXFxdx///0kJSWRnJx8xvpUhTO1D8Att9yCn58fX375JSEhIUybNo2rr76a7du3l/uazoeCnYiISHVyFJpLmtgreWvT6vXHOndUX7ADaN26NZs2bSpz3759+2jRogVXXnklFouFmJgY176IiAgAQkNDS/VwFRYWMnv2bFcZgIEDB7qVmT59OhEREaSkpNCuXTvmzp3LkSNHWLt2LWFhZhCOj493lQ8MDMTLy8vtWkuWLGHz5s2kpqYSHR0NwOzZs2nbti1r167lkksu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", "text/plain": [ "
" ] @@ -261,22 +225,12 @@ "output_type": "stream", "text": [ "Time t=4\n", - "[Array([[21]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[7]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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C09Uc5n6OJY0ibx///4Gt+fMmYPly5fj119/NTlAERERlalLF91Xbq7u3XaOjpU+54lIqnK/C0+j0WDLli3Izs7WXxOjJPn5+cjPz9ffzsjIAKD7y0qtVpf38BWqqA5LqccSsY9Mw34yDfvJNJbYT1Vai60tgxNZLMkB6ty5c+jcuTPy8vLg4OCAHTt2GFyvori5c+di1qxZRu379++HnZ2d1MNXqscv2U8lYx+Zhv1kGvaTaSypn3JycsxdApFFkDQHCtBdNOz69etIT0/H1q1b8b///Q+xsbGlhqiSRqA8PT2RlpZmUXOgoqOjERoaajHzDCwN+8g07CfTsJ9MY4n9lJGRgTp16lTuHCgiM6qUOVAAYG1trb/QmL+/P06cOIHFixcjKiqqxPWVSqX+ImOPUygUFvOEUMQSa7I07CPTsJ9Mw34yjSX1kyl1SPy7nMiimPr4ferrQGm1WoMRJiIiqpmKwhVP81F1VvT4fdIfC5JGoKZPn44+ffqgYcOGyMzMxIYNGxATE4N9+/aVv1IiInomyOVyODs766+obWdnB0EQzFwVkWlEUUROTg5SU1Ph7OwMuVxe5vqSAlRqaipGjhyJ27dvw8nJCW3atMG+ffuMPlyRiIhqJnd3dwAw6WNJiCyRs7Oz/nFcFkkBauXKleUuiIiInn2CIMDDwwNubm4WdfkFIlMoFIonjjwVKfd1oIiIiEojl8tNfiEiqo74YcJEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUkkKUDNnTsXHTp0gEqlgpubGwYMGIA//vijsmojIiIiskiSAlRsbCwiIiLw66+/Ijo6Gmq1Gr169UJ2dnZl1UdERERkcaykrPzTTz8Z3F6zZg3c3Nxw6tQpdOvWrcRt8vPzkZ+fr7+dkZEBAFCr1VCr1VLrrRRFdVhKPZaIfWQa9pNp2E+mscR+sqRaiMxJEEVRLO/Gly9fho+PD86dO4fWrVuXuM5HH32EWbNmGbVv2LABdnZ25T00ERGZQU5ODoYPH4709HQ4Ojqauxwisyl3gNJqtfjnP/+JR48eIT4+vtT1ShqB8vT0RFpamsX88qnVakRHRyM0NBQKhcLc5Vgk9pFp2E+mYT+ZxhL7KSMjA3Xq1GGAohpP0im8x0VERCApKanM8AQASqUSSqXSqF2hUFjME0IRS6zJ0rCPTMN+Mg37yTSW1E+WUgeRuZUrQE2YMAG7d+9GXFwcGjRoUNE1EREREVk0SQFKFEW8/fbb2LFjB2JiYuDt7V1ZdRERERFZLEkBKiIiAhs2bMDOnTuhUqlw584dAICTkxNsbW0rpUAiIiIiSyPpOlDLly9Heno6goOD4eHhof/avHlzZdVHREREZHEkn8IjIiIiqun4WXhEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBED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mD59ur5NJpMhJCQER48eLXGb/Px85Ofn629nZGQAANRqNdRqdXlqrnBFdVhKPZaIfWQa9pNp2E+mscR+sqRaiMxJUoBKS0uDRqNB3bp1Ddrr1q2LCxculLjN3LlzMWvWLKP2/fv3w87OTsrhK110dLS5S7B47CPTsJ9Mw34yjSX1U05OjrlLILIIkgJUeUyfPh2TJ0/W387IyICnpyd69eoFR0fHyj68SdRqNaKjoxEaGgqFQmHuciwS+8g07CfTsJ9MY4n9VHQWgaimkxSg6tSpA7lcjrt37xq03717F+7u7iVuo1QqoVQqjdoVCoXFPCEUscSaLA37yDTsJ9Own0xjSf1kKXUQmZukSeTW1tbw9/fHwYMH9W1arRYHDx5E586dK7w4IiIiIksk+RTe5MmTMWrUKAQEBKBjx45YtGgRsrOzMXr06Mqoj4iIiMjiSA5QQ4YMwb179zBjxgzcuXMHbdu2xU8//WQ0sZyIiIjoWVWuSeQTJkzAhAkTKroWIiIiomqBn4VHREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkkVVVH1AURQBARkZGVR+6VGq1Gjk5OcjIyIBCoTB3ORaJfWQa9pNp2E+mscR+KnruLnouJ6qpqjxAZWZmAgA8PT2r+tBERFRBMjMz4eTkZO4yiMxGEKv4zwitVos///wTKpUKgiBU5aFLlZGRAU9PT9y4cQOOjo7mLscisY9Mw34yDfvJNJbYT6IoIjMzE/Xq1YNMxlkgVHNV+QiUTCZDgwYNqvqwJnF0dLSYJylLxT4yDfvJNOwn01haP3HkiYiTyImIiIgkY4AiIiIikogBCoBSqcTMmTOhVCrNXYrFYh+Zhv1kGvaTadhPRJaryieRExEREVV3HIEiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCRigCIiIiKSqMYHqKVLl8LLyws2Njbo1KkTjh8/bu6SLE5cXBz69++PevXqQRAEfP/99+YuyeLMnTsXHTp0gEqlgpubGwYMGIA//vjD3GVZnOXLl6NNmzb6K2t37twZP/74o7nLsniRkZEQBAETJ040dylE9JcaHaA2b96MyZMnY+bMmUhISICfnx/CwsKQmppq7tIsSnZ2Nvz8/LB06VJzl2KxYmNjERERgV9//RXR0dFQq9Xo1asXsrOzzV2aRWnQoAEiIyNx6tQpnDx5Ej169MCLL76I8+fPm7s0i3XixAlERUWhTZs25i6FiB5To68D1alTJ3To0AFLliwBoPugY09PT7z99tt4//33zVydZRIEATt27MCAAQPMXYpFu3fvHtzc3BAbG4tu3bqZuxyL5uLigvnz52Ps2LHmLsXiZGVloX379li2bBk++eQTtG3bFosWLTJ3WUSEGjwCVVBQgFOnTiEkJETfJpPJEBISgqNHj5qxMnoWpKenA9CFAyqZRqPBpk2bkJ2djc6dO5u7HIsUERGBfv36GTxPEZFlsDJ3AeaSlpYGjUaDunXrGrTXrVsXFy5cMFNV9CzQarWYOHEiunTpgtatW5u7HItz7tw5dO7cGXl5eXBwcMCOHTvg6+tr7rIszqZNm5CQkIATJ06YuxQiKkGNDVBElSUiIgJJSUmIj483dykWqXnz5khMTER6ejq2bt2KUaNGITY2liHqMTdu3MC7776L6Oho2NjYmLscIipBjQ1QderUgVwux927dw3a7969C3d3dzNVRdXdhAkTsHv3bsTFxaFBgwbmLsciWVtbo2nTpgAAf39/nDhxAosXL0ZUVJSZK7Mcp06dQmpqKtq3b69v02g0iIuLw5IlS5Cfnw+5XG7GComoxs6Bsra2hr+/Pw4ePKhv02q1OHjwIOdjkGSiKGLChAnYsWMHDh06BG9vb3OXVG1otVrk5+ebuwyL0rNnT5w7dw6JiYn6r4CAAIwYMQKJiYkMT0QWoMaOQAHA5MmTMWrUKAQEBKBjx45YtGgRsrOzMXr0aHOXZlGysrJw+fJl/e2UlBQkJibCxcUFDRs2NGNlliMiIgIbNmzAzp07oVKpcOfOHQCAk5MTbG1tzVyd5Zg+fTr69OmDhg0bIjMzExs2bEBMTAz27dtn7tIsikqlMpo/Z29vj9q1a3NeHZGFqNEBasiQIbh37x5mzJiBO3fuoG3btvjpp5+MJpbXdCdPnkT37t31tydPngwAGDVqFNasWWOmqizL8uXLAQDBwcEG7atXr0Z4eHjVF2ShUlNTMXLkSNy+fRtOTk5o06YN9u3bh9DQUHOXRkQkSY2+DhQRERFRedTYOVBERERE5cUARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUT/D5subC83CEl8AAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABR5ElEQVR4nO3dd3hUVeL/8ffMZNIbCYEECEkgtNCWYgNpiktUXGVRQlNRLIiIoK5lf2vfFcS1LBbAVZpfcFFRQSwIQlBABaUTlBaqgUBCgPRk5v7+uGZkSAIJpJDh83qePCH3nnvvmZMh+eTcc861GIZhICIiIiJ1nrW2KyAiIiIiVUPBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5qxTPPPIPFYnHbFhsby4gRI2q0HjNnzsRisbBnz54ava5UjL4/IiKVo2B3AUlNTWXMmDG0bNkSf39//P39SUhI4P7772fTpk21Xb2L0p49e7BYLBX6KC98xMbGYrFY6Nu3b5n7//vf/7rO8dNPP1Xjqzk3Z2uDiRMn1nYVLypz587ltddeq+1qiMgFyqu2KyCmRYsWkZSUhJeXF8OGDaNjx45YrVZ++eUXPv74Y6ZMmUJqaioxMTG1XdVq8+uvv2K1Xlh/a0RERPDee++5bXv55Zc5cOAAr776aqmy5fH19WX58uUcOnSIyMhIt31z5szB19eX/Pz8qqt4NRgyZAjXXXddqe2dOnWqtmveeuutDB48GB8fn2q7Rl0zd+5ctmzZwrhx42q7KiJyAVKwuwDs2rWLwYMHExMTwzfffENUVJTb/hdffJG33nrrggs9p8rJySEgIOC8znEh/vIOCAhg+PDhbtv+97//cezYsVLbz6R79+6sXbuWefPm8eCDD7q2HzhwgO+++44BAwYwf/78Kqt3dejcuXOlXnNVsNls2Gy2M5YxDIP8/Hz8/PxqqFYiIheuCzcpXEQmTZpETk4OM2bMKBXqALy8vBg7dizR0dFu23/55RduvvlmwsLC8PX1pWvXrixcuNCtTMkYpVWrVvHQQw8RERFBQEAAAwYM4MiRI6Wu9eWXX9KjRw8CAgIICgri+uuvZ+vWrW5lRowYQWBgILt27eK6664jKCiIYcOGAfDdd99xyy230LRpU3x8fIiOjmb8+PHk5eWdtR1OH2NX0dueFWkHgK1bt3LVVVfh5+dHkyZN+Oc//4nT6TxrvaqCr68vf/3rX5k7d67b9vfff5969erRr1+/Usds2rSJESNG0KxZM3x9fYmMjOTOO+8kIyPDVeZst0lP9eOPP5KYmEhISAj+/v706tWLVatWVenrjI2NpX///qxcuZJLL70UX19fmjVrxuzZs11lfvrpJywWC7NmzSp1/OLFi7FYLCxatAgoe4xdyTUWL15M165d8fPzY9q0aQDs3r2bW265hbCwMPz9/bn88sv5/PPP3a6RnJyMxWLhgw8+4F//+hdNmjTB19eXq6++mp07d7qV7d27N+3atWPTpk306tULf39/4uPj+eijjwBYsWIFl112GX5+frRq1YqlS5eWek0HDx7kzjvvpGHDhvj4+NC2bVumT59+TnXq3bs3n3/+OXv37nV9j2NjYyvwnRGRi4V67C4AixYtIj4+nssuu6zCx2zdupXu3bvTuHFjHn/8cQICAvjggw+46aabmD9/PgMGDHAr/8ADD1CvXj2efvpp9uzZw2uvvcaYMWOYN2+eq8x7773H7bffTr9+/XjxxRfJzc1lypQpXHnllaxfv97tF0hxcTH9+vXjyiuv5N///jf+/v4AfPjhh+Tm5nLfffcRHh7OmjVreP311zlw4AAffvhhpdrl9FugAP/4xz9IT08nMDCwUu1w6NAh+vTpQ3Fxsavc22+/XaO9PEOHDuXPf/4zu3btonnz5oB5W+3mm2/GbreXKr9kyRJ2797NHXfcQWRkJFu3buXtt99m69at/PDDD1gsljJvFRcVFTF+/Hi8vb1d25YtW8a1115Lly5dePrpp7FarcyYMYOrrrqK7777jksvvfSs9c/NzeXo0aOltoeGhuLl9cePkp07d3LzzTczcuRIbr/9dqZPn86IESPo0qULbdu2pWvXrjRr1owPPviA22+/3e1c8+bNKzfonurXX39lyJAh3Hvvvdx99920atWKw4cP061bN3Jzcxk7dizh4eHMmjWLv/zlL3z00Uel/k9MnDgRq9XKI488wvHjx5k0aRLDhg3jxx9/dCt37Ngx+vfvz+DBg7nllluYMmUKgwcPZs6cOYwbN45Ro0YxdOhQXnrpJW6++Wb2799PUFAQAIcPH+byyy/HYrEwZswYIiIi+PLLLxk5ciQnTpwodTv1bHX6f//v/3H8+HG3oQAl/xdERAAwpFYdP37cAIybbrqp1L5jx44ZR44ccX3k5ua69l199dVG+/btjfz8fNc2p9NpdOvWzWjRooVr24wZMwzA6Nu3r+F0Ol3bx48fb9hsNiMrK8swDMM4efKkERoaatx9991udTh06JAREhLitv322283AOPxxx8vVedT61hiwoQJhsViMfbu3eva9vTTTxunv/1iYmKM22+/vdTxJSZNmmQAxuzZsyvdDuPGjTMA48cff3RtS09PN0JCQgzASE1NLfe6p7v++uuNmJiYCpePiYkxrr/+eqO4uNiIjIw0nn/+ecMwDCMlJcUAjBUrVri+T2vXrnUdV1Zbvv/++wZgfPvtt+Veb/To0YbNZjOWLVtmGIbZHi1atDD69evn9h7Izc014uLijGuuueaM9U9NTTWAcj++//57t9d6ev3S09MNHx8f4+GHH3Zte+KJJwy73W5kZma6thUUFBihoaHGnXfe6dpW0i6nfn9KrvHVV1+51bPke/zdd9+5tp08edKIi4szYmNjDYfDYRiGYSxfvtwAjDZt2hgFBQWusv/5z38MwNi8ebNrW69evQzAmDt3rmvbL7/8YgCG1Wo1fvjhB9f2xYsXG4AxY8YM17aRI0caUVFRxtGjR93qOnjwYCMkJMT1Pa5MnSr7/hORi4tuxdayEydOAGX/1d27d28iIiJcH2+++SYAmZmZLFu2jEGDBnHy5EmOHj3K0aNHycjIoF+/fuzYsYODBw+6neuee+5xuzXXo0cPHA4He/fuBczeoaysLIYMGeI639GjR7HZbFx22WUsX768VP3uu+++UttO7QHLycnh6NGjdOvWDcMwWL9+/Tm0kGn58uU88cQTPPDAA9x6662VbocvvviCyy+/3K1nKiIiwnULuSbYbDYGDRrE+++/D5iTJqKjo+nRo0eZ5U9ty/z8fI4ePcrll18OwLp168o8Zvbs2bz11ltMmjSJPn36ALBhwwZ27NjB0KFDycjIcLVTTk4OV199Nd9++22Fbknfc889LFmypNRHQkKCW7mEhAS31xQREUGrVq3YvXu3a1tSUhJFRUV8/PHHrm1ff/01WVlZJCUlnbUucXFxpXr1vvjiCy699FKuvPJK17bAwEDuuece9uzZQ0pKilv5O+64w61Xs6TOp9az5ByDBw92fd2qVStCQ0Np06aN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3/P888/zxhtvkJ2dTWRkJJdddhn33ntvherz/vvvu2b0nur2228/r2D3j3/8g9zc3ArNhj2Thg0bsnr1ah577DFef/118vPz6dChA5999hnXX3/9eZ37fOq0Zs0annvuOT7++GPeeustwsPDadu2LS+++OI5nXP06NFs2LCBGTNm8OqrrxITE6NgJyIuFkOjckVEREQ8gsbYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh/Cq7QqIiIjURQ6Hg6Kiotquhng4u92OzWarcHkFOxERkUowDINDhw6RlZVV21WRi0RoaCiRkZFYLJazllWwExERqYSSUNegQQP8/f0r9MtW5FwYhkFubi7p6ekAREVFnfUYBTsREZEKcjgcrlAXHh5e29WRi4Cfnx8A6enpNGjQ4Ky3ZTV5QkREpIJKxtT5+/vXck3kYlLyfqvImE4FOxERkUrS7VepSZV5vynYiYiIiHgIBTsRERERD6FgJyIiUoMKCwvPa//5OHToEA888ADNmjXDx8eH6OhobrjhBr755ptqu6bULAU7ERGRGjJv3jzat2/P/v37y9y/f/9+2rdvz7x586r82nv27KFLly4sW7aMl156ic2bN/PVV1/Rp08f7r///iq/ntQOBTsREZEaUFhYyFNPPcX27dvp3bt3qXC3f/9+evfuzfbt23nqqaeqvOdu9OjRWCwW1qxZw8CBA2nZsiVt27bloYce4ocffmDPnj1YLBY2bNjgOiYrKwuLxUJycrJr25YtW7j22msJDAykYcOG3HrrrRw9erRK6yrnTsFORESkBnh7e7N06VKaNWvG7t273cJdSajbvXs3zZo1Y+nSpXh7e1fZtTMzM/nqq6+4//77CQgIKLU/NDS0QufJysriqquuolOnTvz000989dVXHD58mEGDBlVZXeX8KNiJiIjUkOjoaJKTk93C3erVq91CXXJyMtHR0VV63Z07d2IYBq1btz6v87zxxht06tSJF154gdatW9OpUyemT5/O8uXL2b59exXVVs6HnjwhIiJSg0rCXUmY6969O0C1hTowH01VFTZu3Mjy5csJDAwstW/Xrl20bNmySq4j507BTkREpIZF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FsHBdXDwZwiLg063QrhnPZxeaobG2ImIiNSEjF3w41Qz1IU1g4hWEBABfqHm54hW5vbMVLNcxq5aq6rFYuHTTz+ttevLuVOwExERqW5F+WZPXXY61G9ljqkri83b3J+dbpYvyq+yKowYMQKLxYLFYsFut9OwYUOuueYapk+fjtPp/uzatLQ0rr322gqdtyZD4DPPPMOf/vSnajt/fn4+I0aMoH379nh5eXHTTTdV27VKVPVrUrATERGpboc2/9FTd7YJEhYL1Iszyx/eUqXVSExMJC0tjT179vDll1/Sp08fHnzwQfr3709xcbGrXGRkJD4+PlV23cLCwio7V1Uorz4OhwM/Pz/Gjh1L3759a7hWVUPBTkREpDoZhjlRAkv5PXWn8/Ixy+9dbR5fRXx8fIiMjKRx48Z07tyZv//97yxYsIAvv/ySmTNnusqd2gtXWFjImDFjiIqKwtfXl5iYGCZMmABAbGwsAAMGDMBisbi+LumFeuedd9weXP/VV19x5ZVXEhoaSnh4OP3792fXLvdbzgcOHGDIkCGEhYUREBBA165d+fHHH5k5cybPPvssGzdudPU8ltR537593HjjjQQGBhIcHMygQYM4fPiw65zl1ed0AQEBTJkyhbvvvpvIyMgKtemZ2gcgKyuLu+66i4iICIKDg7nqqqvYuHEjwBlf07nS5AkREZHqVJRnzn71D6vccf5h5nFFeeDtXz11A6666io6duzIxx9/zF133VVq/+TJk1m4cCEffPABTZs2Zf/+/ezfvx+AtWvX0qBBA2bMmEFiYiI22x+PR9u5cyfz58/n448/dm3PycnhoYceokOHDmRnZ/PUU08xYMAANmzYgNVqJTs7m169etG4cWMWLlxIZGQk69atw+l0kpSUxJYtW/jqq69YunQpACEhITidTleoW7FiBcXFxdx///0kJSWRnJx8xvpUhTO1D8Att9yCn58fX375JSEhIUybNo2rr76a7du3l/uazoeCnYiISHVyFJpLmtgreWvT6vXHOndUX7ADaN26NZs2bSpz3759+2jRogVXXnklFouFmJgY176IiAgAQkNDS/VwFRYWMnv2bFcZgIEDB7qVmT59OhEREaSkpNCuXTvmzp3LkSNHWLt2LWFhZhCOj493lQ8MDMTLy8vtWkuWLGHz5s2kpqYSHR0NwOzZs2nbti1r167lkksu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", "text/plain": [ "
" ] @@ -289,22 +243,12 @@ "output_type": "stream", "text": [ "Time t=5\n", - "[Array([[20]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[8]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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EREREVkkSQEqLi4OkZGR+PXXXxETEwO1Wo3u3bsjMzOzouojIiIisjhWUhbevXu3we2VK1fC3d0dp06dQufOnYtcJzc3F7m5ufrbaWlpAAC1Wg21Wi213gpRUIel1GOJ2EemYT+Zhv1kGkvsJ0uqhcicBFEUxbKufPXqVfj6+uL8+fNo0aJFkct88sknmD59ulH72rVrYWdnV9ZdExGRGWRlZWHIkCFITU2Fo6OjucshMpsyByitVot//vOfePLkCeLj44tdrqgRKC8vL6SkpFjMD59arUZMTAzCwsKgUCjMXY5FYh+Zhv1kGvaTaSyxn9LS0uDq6soARdWepEN4T4uMjMSFCxdKDE8AoFQqoVQqjdoVCoXFvCEUsMSaLA37yDTsJ9Own0xjSf1kKXUQmVuZAtTYsWOxY8cOHDp0CHXr1i3vmoiIiIgsmqQAJYoi3n33XWzduhWxsbHw8fGpqLqIiIiILJakABUZGYm1a9di27ZtUKlUuHfvHgDAyckJtra2FVIgERERkaWRdB6oJUuWIDU1FSEhIfD09NR/bdiwoaLqIyIiIrI4kg/hEREREVV3vBYeERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJJGVuQswlwt3UrHx5C0cv/4It1LSMTMQaP3pXni5qtDO2wUDAr3Qoo6TucukKoCvJdM8yVTjRnI2UtLV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a8k0Xq66OTmnE3UXzDVlqFuA7uP4bRo66td/3rGfiKqmahOgAN0vPv+6zpi8+RyOJz2CXCYU+cuvoD2wfg180f/5Hy0g6fhaMo2Xqy1qOChwOjEND9PVEFB0QChod1EpquWICvuJqOqpdj993q72+OGtDrhwJxUbT97CieuPcTNFd3kZhUxAQ3dHtPWugQGBXs/tJF8qH3wtmcbBxgqdm7vgSaYaN5Kz8TBdjbRM3fmPBEF3/qKaKgXqu9tW64nQ7CeiqqXaBagCLeo46X+pFUyQPjO1e7WeIE1lw9eSaZztFXD20fWJrp90Z85mPxliPxFVDc/9eaCIiIiIyhsDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRGUKUIsWLYK3tzdsbGzQvn17HD9+vLzrIiIiIrJYkgPUhg0bMGHCBEybNg2nT5+Gv78/wsPDkZycXBH1EREREVkcyQHqq6++wujRozFixAj4+fnh22+/hZ2dHZYvX14R9RERERFZHCspC+fl5eHUqVOYMmWKvk0mkyE0NBRHjx4tcp3c3Fzk5ubqb6elpQEA1Go11Gp1WWoudwV1WEo9loh9ZBr2k2nYT6axxH6ypFqIzElSgEpJSYFGo0GtWrUM2mvVqoVLly4Vuc6sWbMwffp0o/a9e/fCzs5Oyu4rXExMjLlLsHjsI9Ow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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABR4klEQVR4nO3dd3hUVeL/8ffMZNIbCYEECEkgtNCWYgNpiktUXGVRQlNRLIiIoK5lf2vfFcS1LBbAVZpfcFFRQSwIQlBABaUTlBaqgUBCgPRk5v7+uGZkSAIJpJDh83qePCH3nnvvmZMh+eTcc861GIZhICIiIiJ1nrW2KyAiIiIiVUPBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5qxTPPPIPFYnHbFhsby4gRI2q0HjNnzsRisbBnz54ava5UjL4/IiKVo2B3AUlNTWXMmDG0bNkSf39//P39SUhI4P7772fTpk21Xb2L0p49e7BYLBX6KC98xMbGYrFY6Nu3b5n7//vf/7rO8dNPP1Xjqzk3Z2uDiRMn1nYVLypz587ltddeq+1qiMgFyqu2KyCmRYsWkZSUhJeXF8OGDaNjx45YrVZ++eUXPv74Y6ZMmUJqaioxMTG1XdVq8+uvv2K1Xlh/a0RERPDee++5bXv55Zc5cOAAr776aqmy5fH19WX58uUcOnSIyMhIt31z5szB19eX/Pz8qqt4NRgyZAjXXXddqe2dOnWqtmveeuutDB48GB8fn2q7Rl0zd+5ctmzZwrhx42q7KiJyAVKwuwDs2rWLwYMHExMTwzfffENUVJTb/hdffJG33nrrggs9p8rJySEgIOC8znEh/vIOCAhg+PDhbtv+97//cezYsVLbz6R79+6sXbuWefPm8eCDD7q2HzhwgO+++44BAwYwf/78Kqt3dejcuXOlXnNVsNls2Gy2M5YxDIP8/Hz8/PxqqFYiIheuCzcpXEQmTZpETk4OM2bMKBXqALy8vBg7dizR0dFu23/55RduvvlmwsLC8PX1pWvXrixcuNCtTMkYpVWrVvHQQw8RERFBQEAAAwYM4MiRI6Wu9eWXX9KjRw8CAgIICgri+uuvZ+vWrW5lRowYQWBgILt27eK6664jKCiIYcOGAfDdd99xyy230LRpU3x8fIiOjmb8+PHk5eWdtR1OH2NX0dueFWkHgK1bt3LVVVfh5+dHkyZN+Oc//4nT6TxrvaqCr68vf/3rX5k7d67b9vfff5969erRr1+/Usds2rSJESNG0KxZM3x9fYmMjOTOO+8kIyPDVeZst0lP9eOPP5KYmEhISAj+/v706tWLVatWVenrjI2NpX///qxcuZJLL70UX19fmjVrxuzZs11lfvrpJywWC7NmzSp1/OLFi7FYLCxatAgoe4xdyTUWL15M165d8fPzY9q0aQDs3r2bW265hbCwMPz9/bn88sv5/PPP3a6RnJyMxWLhgw8+4F//+hdNmjTB19eXq6++mp07d7qV7d27N+3atWPTpk306tULf39/4uPj+eijjwBYsWIFl112GX5+frRq1YqlS5eWek0HDx7kzjvvpGHDhvj4+NC2bVumT59+TnXq3bs3n3/+OXv37nV9j2NjYyvwnRGRi4V67C4AixYtIj4+nssuu6zCx2zdupXu3bvTuHFjHn/8cQICAvjggw+46aabmD9/PgMGDHAr/8ADD1CvXj2efvpp9uzZw2uvvcaYMWOYN2+eq8x7773H7bffTr9+/XjxxRfJzc1lypQpXHnllaxfv97tF0hxcTH9+vXjyiuv5N///jf+/v4AfPjhh+Tm5nLfffcRHh7OmjVreP311zlw4AAffvhhpdrl9FugAP/4xz9IT08nMDCwUu1w6NAh+vTpQ3Fxsavc22+/XaO9PEOHDuXPf/4zu3btonnz5oB5W+3mm2/GbreXKr9kyRJ2797NHXfcQWRkJFu3buXtt99m69at/PDDD1gsljJvFRcVFTF+/Hi8vb1d25YtW8a1115Lly5dePrpp7FarcyYMYOrrrqK7777jksvvfSs9c/NzeXo0aOltoeGhuLl9cePkp07d3LzzTczcuRIbr/9dqZPn86IESPo0qULbdu2pWvXrjRr1owPPviA22+/3e1c8+bNKzfonurXX39lyJAh3Hvvvdx99920atWKw4cP061bN3Jzcxk7dizh4eHMmjWLv/zlL3z00Uel/k9MnDgRq9XKI488wvHjx5k0aRLDhg3jxx9/dCt37Ngx+vfvz+DBg7nllluYMmUKgwcPZs6cOYwbN45Ro0YxdOhQXnrpJW6++Wb2799PUFAQAIcPH+byyy/HYrEwZswYIiIi+PLLLxk5ciQnTpwodTv1bHX6f//v/3H8+HG3oQAl/xdERAAwpFYdP37cAIybbrqp1L5jx44ZR44ccX3k5ua69l199dVG+/btjfz8fNc2p9NpdOvWzWjRooVr24wZMwzA6Nu3r+F0Ol3bx48fb9hsNiMrK8swDMM4efKkERoaatx9991udTh06JAREhLitv322283AOPxxx8vVedT61hiwoQJhsViMfbu3eva9vTTTxunv/1iYmKM22+/vdTxJSZNmmQAxuzZsyvdDuPGjTMA48cff3RtS09PN0JCQgzASE1NLfe6p7v++uuNmJiYCpePiYkxrr/+eqO4uNiIjIw0nn/+ecMwDCMlJcUAjBUrVri+T2vXrnUdV1Zbvv/++wZgfPvtt+Veb/To0YbNZjOWLVtmGIbZHi1atDD69evn9h7Izc014uLijGuuueaM9U9NTTWAcj++//57t9d6ev3S09MNHx8f4+GHH3Zte+KJJwy73W5kZma6thUUFBihoaHGnXfe6dpW0i6nfn9KrvHVV1+51bPke/zdd9+5tp08edKIi4szYmNjDYfDYRiGYSxfvtwAjDZt2hgFBQWusv/5z38MwNi8ebNrW69evQzAmDt3rmvbL7/8YgCG1Wo1fvjhB9f2xYsXG4AxY8YM17aRI0caUVFRxtGjR93qOnjwYCMkJMT1Pa5MnSr7/hORi4tuxdayEydOAGX/1d27d28iIiJcH2+++SYAmZmZLFu2jEGDBnHy5EmOHj3K0aNHycjIoF+/fuzYsYODBw+6neuee+5xuzXXo0cPHA4He/fuBczeoaysLIYMGeI639GjR7HZbFx22WUsX768VP3uu+++UttO7QHLycnh6NGjdOvWDcMwWL9+/Tm0kGn58uU88cQTPPDAA9x6662VbocvvviCyy+/3K1nKiIiwnULuSbYbDYGDRrE+++/D5iTJqKjo+nRo0eZ5U9ty/z8fI4ePcrll18OwLp168o8Zvbs2bz11ltMmjSJPn36ALBhwwZ27NjB0KFDycjIcLVTTk4OV199Nd9++22Fbknfc889LFmypNRHQkKCW7mEhAS31xQREUGrVq3YvXu3a1tSUhJFRUV8/PHHrm1ff/01WVlZJCUlnbUucXFxpXr1vvjiCy699FKuvPJK17bAwEDuuece9uzZQ0pKilv5O+64w61Xs6TOp9az5ByDBw92fd2qVStCQ0Np06aN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3/P888/zxhtvkJ2dTWRkJJdddhn33ntvherz/vvvu2b0nur2228/r2D3j3/8g9zc3ArNhj2Thg0bsnr1ah577DFef/118vPz6dChA5999hnXX3/9eZ37fOq0Zs0annvuOT7++GPeeustwsPDadu2LS+++OI5nXP06NFs2LCBGTNm8OqrrxITE6NgJyIuFkOjckVEREQ8gsbYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh/Cq7QqIiIjURQ6Hg6Kiotquhng4u92OzWarcHkFOxERkUowDINDhw6RlZVV21WRi0RoaCiRkZFYLJazllWwExERqYSSUNegQQP8/f0r9MtW5FwYhkFubi7p6ekAREVFnfUYBTsREZEKcjgcrlAXHh5e29WRi4Cfnx8A6enpNGjQ4Ky3ZTV5QkREpIJKxtT5+/vXck3kYlLyfqvImE4FOxERkUrS7VepSZV5vynYiYiIiHgIBTsRERERD6FgJyIiUoMKCwvPa//5OHToEA888ADNmjXDx8eH6OhobrjhBr755ptqu6bULAU7ERGRGjJv3jzat2/P/v37y9y/f/9+2rdvz7x586r82nv27KFLly4sW7aMl156ic2bN/PVV1/Rp08f7r///iq/ntQOBTsREZEaUFhYyFNPPcX27dvp3bt3qXC3f/9+evfuzfbt23nqqaeqvOdu9OjRWCwW1qxZw8CBA2nZsiVt27bloYce4ocffmDPnj1YLBY2bNjgOiYrKwuLxUJycrJr25YtW7j22msJDAykYcOG3HrrrRw9erRK6yrnTsFORESkBnh7e7N06VKaNWvG7t273cJdSajbvXs3zZo1Y+nSpXh7e1fZtTMzM/nqq6+4//77CQgIKLU/NDS0QufJysriqquuolOnTvz000989dVXHD58mEGDBlVZXeX8KNiJiIjUkOjoaJKTk93C3erVq91CXXJyMtHR0VV63Z07d2IYBq1btz6v87zxxht06tSJF154gdatW9OpUyemT5/O8uXL2b59exXVVs6HnjwhIiJSg0rCXUmY6969O0C1hTowH01VFTZu3Mjy5csJDAwstW/Xrl20bNmySq4j507BTkREpIZF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FsHBdXDwZwiLg063QrhnPZxeaobG2ImIiNSEjF3w41Qz1IU1g4hWEBABfqHm54hW5vbMVLNcxq5aq6rFYuHTTz+ttevLuVOwExERqW5F+WZPXXY61G9ljqkri83b3J+dbpYvyq+yKowYMQKLxYLFYsFut9OwYUOuueYapk+fjtPp/uzatLQ0rr322gqdtyZD4DPPPMOf/vSnajt/fn4+I0aMoH379nh5eXHTTTdV27VKVPVrUrATERGpboc2/9FTd7YJEhYL1Iszyx/eUqXVSExMJC0tjT179vDll1/Sp08fHnzwQfr3709xcbGrXGRkJD4+PlV23cLCwio7V1Uorz4OhwM/Pz/Gjh1L3759a7hWVUPBTkREpDoZhjlRAkv5PXWn8/Ixy+9dbR5fRXx8fIiMjKRx48Z07tyZv//97yxYsIAvv/ySmTNnusqd2gtXWFjImDFjiIqKwtfXl5iYGCZMmABAbGwsAAMGDMBisbi+LumFeuedd9weXP/VV19x5ZVXEhoaSnh4OP3792fXLvdbzgcOHGDIkCGEhYUREBBA165d+fHHH5k5cybPPvssGzdudPU8ltR537593HjjjQQGBhIcHMygQYM4fPiw65zl1ed0AQEBTJkyhbvvvpvIyMgKtemZ2gcgKyuLu+66i4iICIKDg7nqqqvYuHEjwBlf07nS5AkREZHqVJRnzn71D6vccf5h5nFFeeDtXz11A6666io6duzIxx9/zF133VVq/+TJk1m4cCEffPABTZs2Zf/+/ezfvx+AtWvX0qBBA2bMmEFiYiI22x+PR9u5cyfz58/n448/dm3PycnhoYceokOHDmRnZ/PUU08xYMAANmzYgNVqJTs7m169etG4cWMWLlxIZGQk69atw+l0kpSUxJYtW/jqq69YunQpACEhITidTleoW7FiBcXFxdx///0kJSWRnJx8xvpUhTO1D8Att9yCn58fX375JSEhIUybNo2rr76a7du3l/uazoeCnYiISHVyFJpLmtgreWvT6vXHOndUX7ADaN26NZs2bSpz3759+2jRogVXXnklFouFmJgY176IiAgAQkNDS/VwFRYWMnv2bFcZgIEDB7qVmT59OhEREaSkpNCuXTvmzp3LkSNHWLt2LWFhZhCOj493lQ8MDMTLy8vtWkuWLGHz5s2kpqYSHR0NwOzZs2nbti1r167lkksuKbc+VeFM7bNy5UrWrFlDenq669b2v//9bz799FM++ugj7rnnnjJf0/nQrVgREZHqZPM216lzFlXuOGexeVxFb9+eB8MwsJQz9m/EiBFs2LCBVq1aMXbsWL7++usKnTMmJqZUiNqxYwdDhgyhWbNmBAcHu27d7tu3D4ANGzbQqVMnV6iriG3bthEdHe0KdQAJCQmEhoaybdu2M9anKpypfTZu3Eh2djbh4eEEBga6PlJTU0vdgq4q6rETkYvC3hN7ySnKqfRxAfYAYoJjzl5QpDx2P3PSxMF15rImFZWbCY07m8dXs23bthEXF1fmvs6dO5OamsqXX37J0qVLGTRoEH379uWjjz464zkDAgJKbbvhhhuIiYnhv//9L40aNcLpdNKuXTvXZAY/v+p7rWXVpyqcqX2ys7OJiopyuyVcIjQ0tFrqo2AnIh5v74m99P+k/zkfv2jAIoU7OXcWi/lEiYM///H4sLMpLgAMiOlW7Y8ZW7ZsGZs3b2b8+PHllgkODiYpKYmkpCRuvvlmEhMTyczMJCwsDLvdjsPhOOt1MjIy+PXXX/nvf/9Ljx49APNW5ak6dOjAO++84zr36by9vUtdq02bNq5xbSW9dikpKWRlZZGQkHDWelWF8tqnc+fOHDp0CC8vL1fv5OnKek3nQ8FORDzeufTUVeXxIkS2N58okbnbXKfuTGHNMOBYqlm+YbsqrUZBQQGHDh3C4XBw+PBhvvrqKyZMmED//v257bbbyjzmlVdeISoqik6dOmG1Wvnwww+JjIx09TjFxsbyzTff0L17d3x8fKhXr16Z56lXrx7h4eG8/fbbREVFsW/fPh5//HG3MkOGDOGFF17gpptuYsKECURFRbF+/XoaNWrEFVdcQWxsLKmpqWzYsIEmTZoQFBRE3759ad++PcOGDeO1116juLiY0aNH06tXL7p27VrpNkpJSaGwsJDMzExOnjzJhg0bAMpda+5M7dO3b1+uuOIKbrrpJiZNmkTLli357bff+PzzzxkwYABdu3Yt8zWdz1IzGmMnIiJS3ey+5mPCAhvA0V9/75ErQ3GBuT+wAXS+rcqfGfvVV18RFRVFbGwsiYmJLF++nMmTJ7NgwYJyZ4oGBQUxadIkunbtyiWXXMKePXv44osvsFrNCPHyyy+zZMkSoqOj6dSpU7nXtlqt/O9//+Pnn3+mXbt2jB8/npdeesmtjLe3N19//TUNGjTguuuuo3379kycONFVt4EDB5KYmEifPn2IiIjg/fffx2KxsGDBAurVq0fPnj3p27cvzZo1Y968eefURtdddx2dOnXis88+Izk5mU6dOp3xdZ2pfSwWC1988QU9e/bkjjvuoGXLlgwePJi9e/fSsGHDcl/T+bAYRhUukCMicgFKyUghaVHSOR8/r/88EsJr5paOXNjy8/NJTU0941poZ1TWs2KtXuZEidxMwDB76jrfZo7LE6Fy7zvdihUREakp4c2h1+PmEyX2rv5jnTqrzZwoEdPNvP1axT11cvFQsBMREalJdl9o0hUad/ljnTqbtzn7tZonSojnU7ATERGpDRbL70+UqN7Fh+XioskTIiIiIh5CwU5ERKSSNO9QalJl3m8KdiIiIhVkt9sByM3NreWayMWk5P1W8v47E42xExERqSCbzUZoaCjp6ekA+Pv7l/uMVZHzZRgGubm5pKenExoaWu5ag6dSsBMREamEyMhIAFe4E6luoaGhrvfd2SjYiYiIVILFYiEqKooGDRpQVFRU29URD2e32yvUU1dCwU5EROQc2Gy2Sv3CFakJmjwhIh4vwB5Qq8eLiNQUPStWRC4Ke0/sJacop9LHBdgDiAmOqYYaiYhUPQU7EREREQ+hW7EiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7ERE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", "text/plain": [ "
" ] @@ -317,22 +261,12 @@ "output_type": "stream", "text": [ "Time t=6\n", - "[Array([[15]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[3]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32)]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAATgAAAESCAYAAABpSMk6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAlEUlEQVR4nO3df1RU54E+8IcBGZA4TCiRYSwqSUnU4I+I62Qs0Zw6zZCwDdO1VCknGkphm3V29dBqgouQoj24RC2ibtjUKHErQT1NSUvYybIgcRvpqAhVDLGaJeIuGdCygJLwc97vH3698eqADt0ovj6fc+6Z8N7n/ngZfc6FO974CCEEiIgkpLnbJ0BE9FVhwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLb+7fQJjidvtRmtrKyZMmAAfH5+7fTpEdB0hBC5fvgyj0QiN5vauzVhw12ltbUVERMTdPg0iGsGFCxfw9a9//bayLLjrTJgwAcDVb6BOp7vLZ0NE1+vu7kZERITy9/S2iFHYsWOHmDJlitBqtWL+/PnC6XSOmD9w4IB47LHHhFarFdHR0eK9995TrXe73WL9+vXCYDCIgIAAsXjxYvGnP/1Jldm4caMwm80iMDBQBAcHezzO+fPnxXPPPScCAwPFQw89JH7605+KgYGB255XV1eXACC6urpuexsiujNG8/fT65sM+/fvR0ZGBnJycnDixAnMnj0bVqsV7e3tHvNHjhxBUlISUlNTUV9fD5vNBpvNhsbGRiWTn5+PwsJCFBUVwel0IigoCFarFb29vUqmv78fiYmJeOmllzweZ2hoCPHx8ejv78eRI0fw1ltvobi4GNnZ2d5OkYhk4W2Lzp8/X6xcuVL5emhoSBiNRpGXl+cx//3vf1/Ex8erxkwmk/jbv/1bIcTVqzeDwSBee+01ZX1nZ6fQarXi7bffvml/e/bs8XgFV1FRITQajXC5XMrY66+/LnQ6nejr67utufEKjmjs+sqv4Pr7+1FXVweLxaKMaTQaWCwW1NbWetymtrZWlQcAq9Wq5Jubm+FyuVSZ4OBgmEymYfc53HFmzpyJsLAw1XG6u7tx+vRpj9v09fWhu7tbtRCRPLwquEuXLmFoaEhVIgAQFhYGl8vlcRuXyzVi/tqrN/v05jjXH+NGeXl5CA4OVhbeQSWSy339Qd/MzEx0dXUpy4ULF+72KRHR/yGvCi40NBS+vr5oa2tTjbe1tcFgMHjcxmAwjJi/9urNPr05zvXHuJFWq4VOp1MtRCQPrwrO398fMTExqKqqUsbcbjeqqqpgNps9bmM2m1V5AKisrFTykZGRMBgMqkx3dzecTuew+xzuOKdOnVLdza2srIROp8OMGTNuez9EJBFv72SUlpYKrVYriouLxUcffSTS09OFXq9X7l6+8MIL4pVXXlHyH374ofDz8xObN28WTU1NIicnR4wbN06cOnVKyWzatEno9Xrx7rvvipMnT4qEhAQRGRkpvvjiCyVz/vx5UV9fL372s5+JBx54QNTX14v6+npx+fJlIYQQg4ODIjo6WjzzzDOioaFBOBwO8dBDD4nMzMzbnhvvohKNXaP5++n1v2RYunQpLl68iOzsbLhcLsyZMwcOh0P5hX5LS4vq34ktWLAAJSUlyMrKwrp16xAVFYWysjJER0crmbVr16Knpwfp6eno7OxEbGwsHA4HAgIClEx2djbeeust5esnnngCAHDo0CE8/fTT8PX1RXl5OV566SWYzWYEBQVhxYoVyM3N9XaKt23qK+/dNPbppnivx0ezLx6fx5fp+F+VUf1TLbvdDrvd7nFdTU3NTWOJiYlITEwcdn8+Pj7Izc0dsYyKi4tRXFw84nlNmTIFFRUVI2aI6P5xX99FJSK5seCISFosOCKSFguOiKTFgiMiabHgiEhaLDgikhYLjoikxYIjImmx4IhIWiw4IpIWC46IpMWCIyJpseCISFosOCKSFguOiKTFgiMiabHgiEhaLDgikhYLjoikxYIjImmx4IhIWiw4IpIWC46IpMWCIyJpseCISFosOCKSFguOiKTFgiMiabHgiEhaLDgikhYLjoikxYIjImmx4IhIWqMquJ07d2Lq1KkICAiAyWTC0aNHR8wfPHgQ06ZNQ0BAAGbOnImKigrVeiEEsrOzER4ejsDAQFgsFpw9e1aV6ejoQHJyMnQ6HfR6PVJTU3HlyhVV5v3338eTTz6JCRMm4KGHHsKSJUvw6aefjmaKRCQBrwtu//79yMjIQE5ODk6cOIHZs2fDarWivb3dY/7IkSNISkpCamoq6uvrYbPZYLPZ0NjYqGTy8/NRWFiIoqIiOJ1OBAUFwWq1ore3V8kkJyfj9OnTqKysRHl5OQ4fPoz09HRlfXNzMxISEvCtb30LDQ0NeP/993Hp0iX8zd/8jbdTJCJJeF1wW7duRVpaGlJSUjBjxgwUFRVh/Pjx2L17t8f8tm3bEBcXhzVr1mD69OnYsGED5s6dix07dgC4evVWUFCArKwsJCQkYNasWdi7dy9aW1tRVlYGAGhqaoLD4cCuXbtgMpkQGxuL7du3o7S0FK2trQCAuro6DA0NYePGjXjkkUcwd+5c/PSnP0VDQwMGBgZG+e0honuZVwXX39+Puro6WCyWL3eg0cBisaC2ttbjNrW1tao8AFitViXf3NwMl8ulygQHB8NkMimZ2tpa6PV6zJs3T8lYLBZoNBo4nU4AQExMDDQaDfbs2YOhoSF0dXXhX//1X2GxWDBu3DiP59bX14fu7m7VQkTy8KrgLl26hKGhIYSFhanGw8LC4HK5PG7jcrlGzF97vVVm4sSJqvV+fn4ICQlRMpGRkfj3f/93rFu3DlqtFnq9Hv/93/+NAwcODDufvLw8BAcHK0tERMStvgVEdA+R5i6qy+VCWloaVqxYgWPHjuGDDz6Av78/vve970EI4XGbzMxMdHV1KcuFCxfu8FkT0VfJz5twaGgofH190dbWphpva2uDwWDwuI3BYBgxf+21ra0N4eHhqsycOXOUzI03MQYHB9HR0aFsv3PnTgQHByM/P1/J/OpXv0JERAScTieefPLJm85Nq9VCq9XeztSJ6B7k1RWcv78/YmJiUFVVpYy53W5UVVXBbDZ73MZsNqvyAFBZWankIyMjYTAYVJnu7m44nU4lYzab0dnZibq6OiVTXV0Nt9sNk8kEAPj888+h0ain4+vrq5wjEd1/vP4RNSMjA7/85S/x1ltvoampCS+99BJ6enqQkpICAFi+fDkyMzOV/KpVq+BwOLBlyxZ8/PHHePXVV3H8+HHY7XYAgI+PD1avXo2NGzfit7/9LU6dOoXly5fDaDTCZrMBAKZPn464uDikpaXh6NGj+PDDD2G327Fs2TIYjUYAQHx8PI4dO4bc3FycPXsWJ06cQEpKCqZMmYInnnjiL/0+EdE9yKsfUQFg6dKluHjxIrKzs+FyuTBnzhw4HA7lJkFLS4vqSmrBggUoKSlBVlYW1q1bh6ioKJSVlSE6OlrJrF27Fj09PUhPT0dnZydiY2PhcDgQEBCgZPbt2we73Y7FixdDo9FgyZIlKCwsVNZ/61vfQklJCfLz85Gfn4/x48fDbDbD4XAgMDBwVN8cIrq3eV1wAGC325UrsBvV1NTcNJaYmIjExMRh9+fj44Pc3Fzk5uYOmwkJCUFJScmI57Vs2TIsW7ZsxAwR3T+kuYtKRHQjFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJa1QFt3PnTkydOhUBAQEwmUw4evToiPmDBw9i2rRpCAgIwMyZM1FRUaFaL4RAdnY2wsPDERgYCIvFgrNnz6oyHR0dSE5Ohk6ng16vR2pqKq5cuXLTfjZv3oxHH30UWq0WkyZNws9//vPRTJGIJOB1we3fvx8ZGRnIycnBiRMnMHv2bFitVrS3t3vMHzlyBElJSUhNTUV9fT1sNhtsNhsaGxuVTH5+PgoLC1FUVASn04mgoCBYrVb09vYqmeTkZJw+fRqVlZUoLy/H4cOHkZ6erjrWqlWrsGvXLmzevBkff/wxfvvb32L+/PneTpGIJOF1wW3duhVpaWlISUnBjBkzUFRUhPHjx2P37t0e89u2bUNcXBzWrFmD6dOnY8OGDZg7dy527NgB4OpVV0FBAbKyspCQkIBZs2Zh7969aG1tRVlZGQCgqakJDocDu3btgslkQmxsLLZv347S0lK0trYqmddffx3vvvsunn/+eURGRiImJgbf/va3R/mtIaJ7nVcF19/fj7q6Olgsli93oNHAYrGgtrbW4za1tbWqPABYrVYl39zcDJfLpcoEBwfDZDIpmdraWuj1esybN0/JWCwWaDQaOJ1OAMDvfvc7PPzwwygvL0dkZCSmTp2KH/3oR+jo6Bh2Pn19feju7lYtRCQPrwru0qVLGBoaQlhYmGo8LCwMLpfL4zYul2vE/LXXW2UmTpyoWu/n54eQkBAl81//9V84f/48Dh48iL1796K4uBh1dXX43ve+N+x88vLyEBwcrCwRERG3+hYQ0T1EmruobrcbfX192Lt3L5566ik8/fTTePPNN3Ho0CGcOXPG4zaZmZno6upSlgsXLtzhsyair5JXBRcaGgpfX1+0tbWpxtva2mAwGDxuYzAYRsxfe71V5sabGIODg+jo6FAy4eHh8PPzw6OPPqpkpk+fDgBoaWnxeG5arRY6nU61EJE8vCo4f39/xMTEoKqqShlzu92oqqqC2Wz2uI3ZbFblAaCyslLJR0ZGwmAwqDLd3d1wOp1Kxmw2o7OzE3V1dUqmuroabrcbJpMJAPDNb34Tg4OD+OSTT5TMn/70JwDAlClTvJkmEUnCz9sNMjIysGLFCsybNw/z589HQUEBenp6kJKSAgBYvnw5Jk2ahLy8PABXP7qxaNEibNmyBfHx8SgtLcXx48fxxhtvAAB8fHywevVqbNy4EVFRUYiMjMT69ethNBphs9kAXL0Si4uLQ1paGoqKijAwMAC73Y5ly5bBaDQCuHrTYe7cufjhD3+IgoICuN1urFy5Et/+9rdVV3VEdP/wuuCWLl2KixcvIjs7Gy6XC3PmzIHD4VBuErS0tECj+fLCcMGCBSgpKUFWVhbWrVuHqKgolJWVITo6WsmsXbsWPT09SE9PR2dnJ2JjY+FwOBAQEKBk9u3bB7vdjsWLF0Oj0WDJkiUoLCxU1ms0Gvzud7/D3//932PhwoUICgrCs88+iy1btozqG0NE9z6vCw4A7HY77Ha7x3U1NTU3jSUmJiIxMXHY/fn4+CA3Nxe5ubnDZkJCQlBSUjLieRmNRvz6178eMUNE9w9p7qISEd2IBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSGlXB7dy5E1OnTkVAQABMJhOOHj06Yv7gwYOYNm0aAgICMHPmTFRUVKjWCyGQnZ2N8PBwBAYGwmKx4OzZs6pMR0cHkpOTodPpoNfrkZqaiitXrng83rlz5zBhwgTo9frRTI+IJOF1we3fvx8ZGRnIycnBiRMnMHv2bFitVrS3t3vMHzlyBElJSUhNTUV9fT1sNhtsNhsaGxuVTH5+PgoLC1FUVASn04mgoCBYrVb09vYqmeTkZJw+fRqVlZUoLy/H4cOHkZ6eftPxBgYGkJSUhKeeesrbqRGRZLwuuK1btyItLQ0pKSmYMWMGioqKMH78eOzevdtjftu2bYiLi8OaNWswffp0bNiwAXPnzsWOHTsAXL16KygoQFZWFhISEjBr1izs3bsXra2tKCsrAwA0NTXB4XBg165dMJlMiI2Nxfbt21FaWorW1lbV8bKysjBt2jR8//vf93ZqRCQZrwquv78fdXV1sFgsX+5Ao4HFYkFtba3HbWpra1V5ALBarUq+ubkZLpdLlQkODobJZFIytbW10Ov1mDdvnpKxWCzQaDRwOp3KWHV1NQ4ePIidO3fe1nz6+vrQ3d2tWohIHl4V3KVLlzA0NISwsDDVeFhYGFwul8dtXC7XiPlrr7fKTJw4UbXez88PISEhSubPf/4zXnzxRRQXF0On093WfPLy8hAcHKwsERERt7UdEd0bpLmLmpaWhh/84AdYuHDhbW+TmZmJrq4uZblw4cJXeIZEdKd5VXChoaHw9fVFW1ubarytrQ0Gg8HjNgaDYcT8tddbZW68iTE4OIiOjg4lU11djc2bN8PPzw9+fn5ITU1FV1cX/Pz8hv39oFarhU6nUy1EJA+vCs7f3x8xMTGoqqpSxtxuN6qqqmA2mz1uYzabVXkAqKysVPKRkZEwGAyqTHd3N5xOp5Ixm83o7OxEXV2dkqmurobb7YbJZAJw9fd0DQ0NypKbm4sJEyagoaEB3/3ud72ZJhFJws/bDTIyMrBixQrMmzcP8+fPR0FBAXp6epCSkgIAWL58OSZNmoS8vDwAwKpVq7Bo0SJs2bIF8fHxKC0txfHjx/HGG28AAHx8fLB69Wps3LgRUVFRiIyMxPr162E0GmGz2QAA06dPR1xcHNLS0lBUVISBgQHY7XYsW7YMRqNRyVzv+PHj0Gg0iI6OHvU3h4jubV4X3NKlS3Hx4kVkZ2fD5XJhzpw5cDgcyk2ClpYWaDRfXhguWLAAJSUlyMrKwrp16xAVFYWysjJV8axduxY9PT1IT09HZ2cnYmNj4XA4EBAQoGT27dsHu92OxYsXQ6PRYMmSJSgsLPxL5k5EkvO64ADAbrfDbrd7XFdTU3PTWGJiIhITE4fdn4+PD3Jzc5GbmztsJiQkBCUlJbd9ji+++CJefPHF284TkXykuYtKRHQjFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJa1QFt3PnTkydOhUBAQEwmUw4evToiPmDBw9i2rRpCAgIwMyZM1FRUaFaL4RAdnY2wsPDERgYCIvFgrNnz6oyHR0dSE5Ohk6ng16vR2pqKq5cuaKsr6mpQUJCAsLDwxEUFIQ5c+Zg3759o5keEUnC64Lbv38/MjIykJOTgxMnTmD27NmwWq1ob2/3mD9y5AiSkpKQmpqK+vp62Gw22Gw2NDY2Kpn8/HwUFhaiqKgITqcTQUFBsFqt6O3tVTLJyck4ffo0KisrUV5ejsOHDyM9PV11nFmzZuHXv/41Tp48iZSUFCxfvhzl5eXeTpGIJOF1wW3duhVpaWlISUnBjBkzUFRUhPHjx2P37t0e89u2bUNcXBzWrFmD6dOnY8OGDZg7dy527NgB4OrVW0FBAbKyspCQkIBZs2Zh7969aG1tRVlZGQCgqakJDocDu3btgslkQmxsLLZv347S0lK0trYCANatW4cNGzZgwYIFeOSRR7Bq1SrExcXhnXfeGeW3hojudV4VXH9/P+rq6mCxWL7cgUYDi8WC2tpaj9vU1taq8gBgtVqVfHNzM1wulyoTHBwMk8mkZGpra6HX6zFv3jwlY7FYoNFo4HQ6hz3frq4uhISEDLu+r68P3d3dqoWI5OFVwV26dAlDQ0MICwtTjYeFhcHlcnncxuVyjZi/9nqrzMSJE1Xr/fz8EBISMuxxDxw4gGPHjiElJWXY+eTl5SE4OFhZIiIihs0S0b1Hyruohw4dQkpKCn75y1/i8ccfHzaXmZmJrq4uZblw4cIdPEsi+qp5VXChoaHw9fVFW1ubarytrQ0Gg8HjNgaDYcT8tddbZW68iTE4OIiOjo6bjvvBBx/gO9/5Dn7xi19g+fLlI85Hq9VCp9OpFiKSh1cF5+/vj5iYGFRVVSljbrcbVVVVMJvNHrcxm82qPABUVlYq+cjISBgMBlWmu7sbTqdTyZjNZnR2dqKurk7JVFdXw+12w2QyKWM1NTWIj4/HP/3TP6nusBLR/cnP2w0yMjKwYsUKzJs3D/Pnz0dBQQF6enqU33UtX74ckyZNQl5eHgBg1apVWLRoEbZs2YL4+HiUlpbi+PHjeOONNwAAPj4+WL16NTZu3IioqChERkZi/fr1MBqNsNlsAIDp06cjLi4OaWlpKCoqwsDAAOx2O5YtWwaj0Qjg6o+lf/3Xf41Vq1ZhyZIlyu/m/P39R7zRQETy8rrgli5diosXLyI7Oxsulwtz5syBw+FQbhK0tLRAo/nywnDBggUoKSlBVlYW1q1bh6ioKJSVlSE6OlrJrF27Fj09PUhPT0dnZydiY2PhcDgQEBCgZPbt2we73Y7FixdDo9FgyZIlKCwsVNa/9dZb+Pzzz5GXl6eUKwAsWrQINTU13k6TiCTgdcEBgN1uh91u97jOU5kkJiYiMTFx2P35+PggNzcXubm5w2ZCQkJQUlIy7Pri4mIUFxcPu56I7j9S3kUlIgJYcEQkMRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNJiwRGRtFhwRCQtFhwRSWtUBbdz505MnToVAQEBMJlMOHr06Ij5gwcPYtq0aQgICMDMmTNRUVGhWi+EQHZ2NsLDwxEYGAiLxYKzZ8+qMh0dHUhOToZOp4Ner0dqaiquXLmiypw8eRJPPfUUAgICEBERgfz8/NFMj4gk4XXB7d+/HxkZGcjJycGJEycwe/ZsWK1WtLe3e8wfOXIESUlJSE1NRX19PWw2G2w2GxobG5VMfn4+CgsLUVRUBKfTiaCgIFitVvT29iqZ5ORknD59GpWVlSgvL8fhw4eRnp6urO/u7sYzzzyDKVOmoK6uDq+99hpeffVVvPHGG95OkYgk4eftBlu3bkVaWhpSUlIAAEVFRXjvvfewe/duvPLKKzflt23bhri4OKxZswYAsGHDBlRWVmLHjh0oKiqCEAIFBQXIyspCQkICAGDv3r0ICwtDWVkZli1bhqamJjgcDhw7dgzz5s0DAGzfvh3PPfccNm/eDKPRiH379qG/vx+7d++Gv78/Hn/8cTQ0NGDr1q2qIrxeX18f+vr6lK+7uroAXC3L2+Hu+/ymse7ubq/HR7MvHp/Hl+n4t+NaVghx29tAeKGvr0/4+vqK3/zmN6rx5cuXi+eff97jNhEREeIXv/iFaiw7O1vMmjVLCCHEJ598IgCI+vp6VWbhwoXiH/7hH4QQQrz55ptCr9er1g8MDAhfX1/xzjvvCCGEeOGFF0RCQoIqU11dLQCIjo4Oj+eWk5MjAHDhwuUeWi5cuDBcRd3Eqyu4S5cuYWhoCGFhYarxsLAwfPzxxx63cblcHvMul0tZf21spMzEiRNV6/38/BASEqLKREZG3rSPa+sefPDBm84tMzMTGRkZytdutxsdHR342te+Bh8fH4/zuaa7uxsRERG4cOECdDrdiNmxTqa5AHLNR6a5AH/ZfIQQuHz5MoxG421v4/WPqDLRarXQarWqMb1e79U+dDqdFH/wALnmAsg1H5nmAox+PsHBwV7lvbrJEBoaCl9fX7S1tanG29raYDAYPG5jMBhGzF97vVXmxpsYg4OD6OjoUGU87eP6YxDR/cWrgvP390dMTAyqqqqUMbfbjaqqKpjNZo/bmM1mVR4AKisrlXxkZCQMBoMq093dDafTqWTMZjM6OztRV1enZKqrq+F2u2EymZTM4cOHMTAwoDrOY4895vHHUyK6D9z2b+v+v9LSUqHVakVxcbH46KOPRHp6utDr9cLlcim/7H/llVeU/Icffij8/PzE5s2bRVNTk8jJyRHjxo0Tp06dUjKbNm0Ser1evPvuu+LkyZMiISFBREZGii+++ELJxMXFiSeeeEI4nU7x+9//XkRFRYmkpCRlfWdnpwgLCxMvvPCCaGxsFKWlpWL8+PHiX/7lX7yd4m3p7e0VOTk5ore39yvZ/50k01yEkGs+Ms1FiDs/H68LTgghtm/fLiZPniz8/f3F/PnzxR/+8Adl3aJFi8SKFStU+QMHDohHH31U+Pv7i8cff1y89957qvVut1usX79ehIWFCa1WKxYvXizOnDmjyvz5z38WSUlJ4oEHHhA6nU6kpKSIy5cvqzJ//OMfRWxsrNBqtWLSpEli06ZNo5keEUnCRwhvPlRCRHTv4L9FJSJpseCISFosOCKSFguOiKTFghsFbx8XdTfk5eXhr/7qrzBhwgRMnDgRNpsNZ86cUWWefvpp+Pj4qJYf//jHqkxLSwvi4+Mxfvx4TJw4EWvWrMHg4OCdnAoA4NVXX73pXKdNm6as7+3txcqVK/G1r30NDzzwAJYsWXLTB7/HylymTp1601x8fHywcuVKAGP/fTl8+DC+853vwGg0wsfHB2VlZar1Yiw9/uwu38W955SWlgp/f3+xe/ducfr0aZGWlib0er1oa2u726emYrVaxZ49e0RjY6NoaGgQzz33nJg8ebK4cuWKklm0aJFIS0sTn332mbJ0dXUp6wcHB0V0dLSwWCyivr5eVFRUiNDQUJGZmXnH55OTkyMef/xx1blevHhRWf/jH/9YREREiKqqKnH8+HHx5JNPigULFozJubS3t6vmUVlZKQCIQ4cOCSHG/vtSUVEh/vEf/1G88847AsBND9/YtGmTCA4OFmVlZeKPf/yjeP755z1+rnX27NniD3/4g/jP//xP8Y1vfEP1udauri4RFhYmkpOTRWNjo3j77bdFYGCg159rZcF5af78+WLlypXK10NDQ8JoNIq8vLy7eFa31t7eLgCIDz74QBlbtGiRWLVq1bDbVFRUCI1Go3yIWwghXn/9daHT6URfX99Xebo3ycnJEbNnz/a4rrOzU4wbN04cPHhQGWtqahIARG1trRBibM3lRqtWrRKPPPKIcLvdQoh76325seDcbrcwGAzitddeU8Y6OzuFVqsVb7/9thBCiI8++kgAEMeOHVMy//Zv/yZ8fHzE//zP/wghhPjnf/5n8eCDD6rm8/LLL4vHHnvMq/Pjj6he6O/vR11dHSwWizKm0WhgsVhQW1t7F8/s1q496y4kJEQ1vm/fPoSGhiI6OhqZmZn4/PMvn9lVW1uLmTNnqp70YrVa0d3djdOnT9+ZE7/O2bNnYTQa8fDDDyM5ORktLS0AgLq6OgwMDKjel2nTpmHy5MnK+zLW5nJNf38/fvWrX+GHP/yh6gk299L7cr3m5ma4XC7VexEcHAyTyaR6L/R6vfJsRwCwWCzQaDRwOp1KZuHChfD391cyVqsVZ86cwf/+7//e9vnc108T8dZoHhc1FrjdbqxevRrf/OY3ER0drYz/4Ac/wJQpU2A0GnHy5Em8/PLLOHPmDN555x0Awz/q6tq6O8lkMqG4uBiPPfYYPvvsM/zsZz/DU089hcbGRrhcLvj7+9/0JJgbH7k1VuZyvbKyMnR2duLFF19Uxu6l9+VGd/PxZ56w4O4DK1euRGNjI37/+9+rxq9/0vHMmTMRHh6OxYsX45NPPsEjjzxyp09zRM8++6zy37NmzYLJZMKUKVNw4MABBAYG3sUz+8u8+eabePbZZ1XPOLuX3pexjj+iemE0j4u62+x2O8rLy3Ho0CF8/etfHzF77cks586dAzC2H0Gl1+vx6KOP4ty5czAYDOjv70dnZ6cqc+Mjt8baXM6fP4//+I//wI9+9KMRc/fS+zLWHn/GgvPCaB4XdbcIIWC32/Gb3/wG1dXVN13ue9LQ0AAACA8PB3D1EVSnTp1S/WGsrKyETqfDjBkzvpLzvl1XrlzBJ598gvDwcMTExGDcuHGq9+XMmTNoaWlRPXJrrM1lz549mDhxIuLj40fM3Uvvy5h7/Nkobpzc1271uKix4qWXXhLBwcGipqZG9XGDzz//XAghxLlz50Rubq44fvy4aG5uFu+++654+OGHxcKFC5V9XPs4wjPPPCMaGhqEw+EQDz300F35aMVPfvITUVNTI5qbm8WHH34oLBaLCA0NFe3t7UKIqx8TmTx5sqiurhbHjx8XZrNZmM3mMTkXIa7efZ88ebJ4+eWXVeP3wvty+fJlUV9fL+rr6wUAsXXrVlFfXy/Onz8vhBhbjz9jwY3CSI+LGiswzP+wY8+ePUIIIVpaWsTChQtFSEiI0Gq14hvf+IZYs2aN6vNWQgjx6aefimeffVYEBgaK0NBQ8ZOf/EQMDAzc8fksXbpUhIeHC39/fzFp0iSxdOlSce7cOWX9F198If7u7/5OPPjgg2L8+PHiu9/9rvjss89U+xgrcxFCiPfff18AuOmxYPfC+3Lo0CGPf7auPSZtLD3+jI9LIiJp8XdwRCQtFhwRSYsFR0TSYsERkbRYcEQkLRYcEUmLBUdE0mLBEZG0WHBEJC0WHBFJiwVHRNL6f+NO/vS+IO61AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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RGn3NTAwUAwMDDRqv3jxon4/CQkJpfZL8csYlNafycnJ4ssvvyw6OzuLNjY2YocOHcSdO3carFPUZ5s2bSrxfj76PA0MDBRbtmxpdJzSagAghoeHG7TduXNHDA8PFz08PESFQiG6ubmJPXr0EJcvX16mmrKyssRhw4aJzs7OIgBe0oDoGSGIImc7EhEREUnBOVBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERSVTpF9LUarX466+/oFKp+BEHRERVjCiKyMzMRN26dc1ysVMiS1HpAeqvv/4y+lR0IiKqWq5fv27waQtE1U2lByiVSgVA98Pn6OhY2YcvkVqtxt69e9GzZ08oFApzl2OR2EemYT+Zhv1kGkvsp4yMDHh4eOhfy4mqq0oPUEWn7RwdHS0qQNnZ2cHR0dFiXqQsDfvINOwn07CfTGPJ/cQpGFTd8QQ2ERERkUQMUEREREQSMUARERERSVTpc6CIiOjZJooiCgsLodFozF0KkSRyuRxWVlYmzfFjgCIionJTUFCAW7duIScnx9ylEJWJnZ0d3N3dYW1t/dj1GKCIiKhcaLVapKSkQC6Xo27durC2tua79ajKEEURBQUFuHv3LlJSUuDt7f3Yi8UyQBERUbkoKCiAVquFh4cH7OzszF0OkWS2trZQKBS4evUqCgoKYGNjU+q6nERORETlih/xQlWZqc9fPsuJiIiIJOIpPCIiMquL9y4isyBT8nYqaxW8a3pXQEVET8YARUREZnPx3kU0Xdy0zNtfiLjAEEVmwVN4RERkNmUZeSrP7Ys7fPgw5HI5+vbtW677NdWVK1cgCAKSkpLMcnwyHQMUERHR31asWIF33nkH8fHx+Ouvv8xdDlkwBigiIiIAWVlZ2LhxI95++2307dsXq1evNlj+448/wtvbGzY2NujWrRvWrFkDQRDw8OFD/ToJCQkICAiAra0tPDw88O677yI7O1u/3NPTE59++ilGjx4NlUqFBg0aYPny5frlXl5eAIC2bdtCEAQEBQVV5F2mp8AARUREBOD7779H8+bN0axZM7z66qtYuXIlRFEEAKSkpODll19G//79cerUKbz55pv43//+Z7B9cnIyevXqhYEDB+L06dPYuHEjEhISEBERYbDe559/Dn9/f5w8eRLjxo3D22+/jT///BMAcPToUQDAvn37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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQnklEQVR4nO3dd3hUVeL/8ffMZNIbCYEECCmEFpoUG0hTXKLiCotKVVEsiIigrmV/a3cFYS2LBXCV5hdcFCwIKtKCAiogvSgt9EAgIUD6ZOb+/hgzMiSBBFLI8Hk9Tx7Mvefee+7JSD6ce865JsMwDERERESkxjNXdwVEREREpGIo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNhJtXjxxRcxmUxu22JjYxkyZEiV1mPatGmYTCb27t1bpdeVstHPR0SkfBTsLiEpKSmMGDGCJk2a4O/vj7+/P4mJiTzyyCNs2rSpuqt3Wdq7dy8mk6lMX6WFj9jYWEwmEz169Chx/3//+1/XOdauXVuJd3NhztcGY8eOre4qXlZmzZrF22+/Xd3VEJFLlFd1V0Cc5s+fT79+/fDy8mLQoEG0adMGs9nMb7/9xueff87EiRNJSUkhJiamuqtaaX7//XfM5kvr3xoRERF8/PHHbtveeOMNDh48yFtvvVWsbGl8fX1ZtmwZR44cITIy0m3fzJkz8fX1JS8vr+IqXgkGDBjAzTffXGx727ZtK+2ad911F/3798fHx6fSrlHTzJo1iy1btjBq1KjqroqIXIIU7C4Bu3fvpn///sTExLBkyRKioqLc9r/++uu8//77l1zoOVN2djYBAQEXdY5L8Zd3QEAAgwcPdtv2v//9jxMnThTbfi6dOnVizZo1zJ49m8cee8y1/eDBg/z444/06dOHuXPnVli9K0O7du3Kdc8VwWKxYLFYzlnGMAzy8vLw8/OrolqJiFy6Lt2kcBkZN24c2dnZTJ06tVioA/Dy8mLkyJFER0e7bf/tt9+4/fbbCQsLw9fXlw4dOjBv3jy3MkVjlFauXMnjjz9OREQEAQEB9OnTh2PHjhW71rfffkvnzp0JCAggKCiIW265ha1bt7qVGTJkCIGBgezevZubb76ZoKAgBg0aBMCPP/7IHXfcQcOGDfHx8SE6OprRo0eTm5t73nY4e4xdWR97lqUdALZu3cr111+Pn58fDRo04NVXX8XhcJy3XhXB19eXv/3tb8yaNctt+yeffEKtWrXo2bNnsWM2bdrEkCFDiI+Px9fXl8jISO677z7S09NdZc73mPRMv/zyC0lJSYSEhODv70/Xrl1ZuXJlhd5nbGwsvXr1YsWKFVx11VX4+voSHx/PjBkzXGXWrl2LyWRi+vTpxY5fuHAhJpOJ+fPnAyWPsSu6xsKFC+nQoQN+fn5MnjwZgD179nDHHXcQFhaGv78/11xzDQsWLHC7RnJyMiaTiU8//ZR//etfNGjQAF9fX2644QZ27drlVrZbt260bNmSTZs20bVrV/z9/UlISGDOnDkALF++nKuvvho/Pz+aNm3K4sWLi93ToUOHuO+++6hbty4+Pj60aNGCKVOmXFCdunXrxoIFC9i3b5/rZxwbG1uGn4yIXC7UY3cJmD9/PgkJCVx99dVlPmbr1q106tSJ+vXr88wzzxAQEMCnn35K7969mTt3Ln369HEr/+ijj1KrVi1eeOEF9u7dy9tvv82IESOYPXu2q8zHH3/MPffcQ8+ePXn99dfJyclh4sSJXHfddaxfv97tF0hhYSE9e/bkuuuu49///jf+/v4AfPbZZ+Tk5PDwww8THh7O6tWreeeddzh48CCfffZZudrl7EegAP/85z9JS0sjMDCwXO1w5MgRunfvTmFhoavcBx98UKW9PAMHDuQvf/kLu3fvplGjRoDzsdrtt9+O1WotVn7RokXs2bOHe++9l8jISLZu3coHH3zA1q1b+fnnnzGZTCU+KrbZbIwePRpvb2/XtqVLl3LTTTfRvn17XnjhBcxmM1OnTuX666/nxx9/5Kqrrjpv/XNycjh+/Hix7aGhoXh5/flXya5du7j99tsZOnQo99xzD1OmTGHIkCG0b9+eFi1a0KFDB+Lj4/n000+555573M41e/bsUoPumX7//XcGDBjAQw89xAMPPEDTpk05evQoHTt2JCcnh5EjRxIeHs706dP561//ypw5c4r9PzF27FjMZjNPPvkkJ0+eZNy4cQwaNIhffvnFrdyJEyfo1asX/fv354477mDixIn079+fmTNnMmrUKIYNG8bAgQMZP348t99+OwcOHCAoKAiAo0ePcs0112AymRgxYgQRERF8++23DB06lFOnThV7nHq+Ov2///f/OHnypNtQgKL/F0READCkWp08edIAjN69exfbd+LECePYsWOur5ycHNe+G264wWjVqpWRl5fn2uZwOIyOHTsajRs3dm2bOnWqARg9evQwHA6Ha/vo0aMNi8ViZGZmGoZhGKdPnzZCQ0ONBx54wK0OR44cMUJCQty233PPPQZgPPPMM8XqfGYdi4wZM8YwmUzGvn37XNteeOEF4+yPX0xMjHHPPfcUO77IuHHjDMCYMWNGudth1KhRBmD88ssvrm1paWlGSEiIARgpKSmlXvdst9xyixETE1Pm8jExMcYtt9xiFBYWGpGRkcYrr7xiGIZhbNu2zQCM5cuXu35Oa9ascR1XUlt+8sknBmD88MMPpV5v+PDhhsViMZYuXWoYhrM9GjdubPTs2dPtM5CTk2PExcUZN9544znrn5KSYgClfv30009u93p2/dLS0gwfHx/jiSeecG179tlnDavVamRkZLi25efnG6GhocZ9993n2lbULmf+fIqu8d1337nVs+hn/OOPP7q2nT592oiLizNiY2MNu91uGIZhLFu2zACM5s2bG/n5+a6y//nPfwzA2Lx5s2tb165dDcCYNWuWa9tvv/1mAIbZbDZ+/vln1/aFCxcagDF16lTXtqFDhxpRUVHG8ePH3erav39/IyQkxPUzLk+dyvv5E5HLix7FVrNTp04BJf+ru1u3bkRERLi+3nvvPQAyMjJYunQpd955J6dPn+b48eMcP36c9PR0evbsyc6dOzl06JDbuR588EG3R3OdO3fGbrezb98+wNk7lJmZyYABA1znO378OBaLhauvvpply5YVq9/DDz9cbNuZPWDZ2dkcP36cjh07YhgG69evv4AWclq2bBnPPvssjz76KHfddVe52+Gbb77hmmuuceuZioiIcD1CrgoWi4U777yTTz75BHBOmoiOjqZz584llj+zLfPy8jh+/DjXXHMNAOvWrSvxmBkzZvD+++8zbtw4unfvDsCGDRvYuXMnAwcOJD093dVO2dnZ3HDDDfzwww9leiT94IMPsmjRomJfiYmJbuUSExPd7ikiIoKmTZuyZ88e17Z+/fphs9n4/PPPXdu+//57MjMz6dev33nrEhcXV6xX75tvvuGqq67iuuuuc20LDAzkwQcfZO/evWzbts2t/L333uvWq1lU5zPrWXSO/v37u75v2rQpoaGhNG/e3K2Xvei/i443DIO5c+dy6623YhiG2/9XPXv25OTJk8V+jmWtk4hIafQotpoVPbLJysoqtm/y5MmcPn2ao0ePug1a37VrF4Zh8Nxzz/Hcc8+VeN60tDTq16/v+r5hw4Zu+2vVqgU4HzMB7Ny5E4Drr7++xPMFBwe7fe/l5UWDBg2Kldu/fz/PP/888+bNc527yMmTJ0s89/kcPHiQfv360alTJ958803X9vK0w759+0p81N20adMLqtPZTp486TaO0Nvbm7CwsGLlBg4cyIQJE9i4cSOzZs2if//+xcbCFcnIyOCll17if//7H2lpacWud7YNGzYwbNgwBgwYwOOPP+7aXvSzPfux59nnK/pMlKZx48alLtlyprM/a+D8vJ35eWjTpg3NmjVj9uzZDB06FHA+hq1du3apn8EzxcXFFdtW2s+4efPmrv0tW7YstZ5n/z9RpEGDBsV+RiEhIcXGvIaEhLgdf+zYMTIzM/nggw/44IMPSryPs3+uZa2TiEhpFOyqWUhICFFRUWzZsqXYvqJfUmevj1bUu/Lkk0+WOhYpISHB7fvSZhYahuF2zo8//rjYchyA2xgqcM5gPXuWrt1u58YbbyQjI4Onn36aZs2aERAQwKFDhxgyZMgFTVQoKCjg9ttvx8fHh08//dStHhfSDpXlsccec5sM0LVrV5KTk4uVu/rqq2nUqBGjRo0iJSWFgQMHlnrOO++8k1WrVvH3v/+dK664gsDAQBwOB0lJScXa8sSJE/Tt25cmTZrw4Ycfuu0rKjt+/HiuuOKKEq9VkeO0zvdZK9KvXz/+9a9/cfz4cYKCgpg3bx4DBgwo9lkrSUWMjSxrPUsrV9b/pwYPHlxqqG7duvUF1UlEpDQKdpeAW265hQ8//JDVq1eXaRB7fHw8AFartUw9KGVRNJi/Tp06F3zOzZs3s2PHDqZPn87dd9/t2r5o0aILrtfIkSPZsGEDP/zwA3Xr1nXbV552iImJcfVcnen333+/4Lqd6amnnnLrVT1X79eAAQN49dVXad68ealB68SJEyxZsoSXXnqJ559/3rW9pHtwOBwMGjSIzMxMFi9e7JrIUqToZxscHFxhn5eK0K9fP1566SXmzp1L3bp1OXXqlNsjz/KKiYkp8ef522+/ufZXpYiICIKCgrDb7RXa7qX18IqIgJY7uSQ89dRT+Pv7c99993H06NFi+8/+13qdOnXo1q0bkydPJjU1tVj5kpYxOZ+ePXsSHBzMa6+9hs1mu6BzFvU2nFlfwzD4z3/+U+76AEydOpXJkyfz3nvvlRh4y9MON998Mz///DOrV6922z9z5swLqtvZEhMT6dGjh+urffv2pZa9//77eeGFF3jjjTdKLVNSWwIlvnHgpZdeYuHChXzyySclPqJs3749jRo14t///neJj/wv5PNSEZo3b06rVq2YPXs2s2fPJioqii5dulzw+W6++WZWr17NTz/95NqWnZ3NBx98QGxsbLGxgJXNYrHQt29f5s6dW2KP/IW2e0BAwAUPaxARz6ceu0tA48aNmTVrFgMGDKBp06auN08YhkFKSgqzZs3CbDa7jWl77733uO6662jVqhUPPPAA8fHxHD16lJ9++omDBw+ycePGctUhODiYiRMnctddd9GuXTv69+9PREQE+/fvZ8GCBXTq1Il33333nOdo1qwZjRo14sknn+TQoUMEBwczd+7cCxofdPz4cYYPH05iYiI+Pj783//9n9v+Pn36EBAQUOZ2eOqpp/j4449JSkrisccecy13EhMTU+Wva4uJieHFF188Z5ng4GC6dOnCuHHjsNls1K9fn++//56UlBS3cps3b+aVV16hS5cupKWlFWunwYMHYzab+fDDD7npppto0aIF9957L/Xr1+fQoUMsW7aM4OBgvv766/PWe926dcXOD84ewWuvvfb8N16Cfv368fzzz+Pr68vQoUMvahHuZ555hk8++YSbbrqJkSNHEhYWxvTp00lJSWHu3LnVssD32LFjWbZsGVdffTUPPPAAiYmJZGRksG7dOhYvXkxGRka5z9m+fXtmz57N448/zpVXXklgYCC33nprJdReRGoiBbtLxG233cbmzZt54403+P7775kyZQomk4mYmBhuueUWhg0bRps2bVzlExMTWbt2LS+99BLTpk0jPT2dOnXq0LZtW7dHd+UxcOBA6tWrx9ixYxk/fjz5+fnUr1+fzp07c++99573eKvVytdff83IkSMZM2YMvr6+9OnThxEjRrjVvSyysrLIy8tj27ZtrlmwZ0pJSSEgIKDM7RAVFcWyZct49NFHGTt2LOHh4QwbNox69eq5Bu9fambNmsWjjz7Ke++9h2EY/OUvf+Hbb7+lXr16rjLp6ekYhsHy5ctZvnx5sXMUPR7u1q0bP/30E6+88grv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", "text/plain": [ "
" ] @@ -345,22 +279,12 @@ "output_type": "stream", "text": [ "Time t=7\n", - "[Array([[10]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[3]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAAGzCAYAAADg2in0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABUdUlEQVR4nO3deVxU5f4H8M+ZYRi2AURBUFFQcUETFdRMEVQQl+vNNHMrRc1bCZV61fLe0sxMUkstl/B3Xcstt8ylFBcgzNwQtzIVcU1FXNiXYeb8/piYHAZkDgIzyOf9eiHOc7bvPDMMH57zzBlBFEURRERERGQymbkLICIiIqpuGKCIiIiIJGKAIiIiIpKIAYqIiIhIIgYoIiIiIokYoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigyCQfffQRBEEwaPPy8kJ4eHiV1rF69WoIgoCrV69W6XHJNHx8iKimYIB6CikpKYiMjESzZs1gZ2cHOzs7+Pr6IiIiAmfOnDF3eTXS1atXIQiCSV+l/ZL38vKCIAgICQkpcfn//d//6fdx4sSJSrw35VNWH0RFRZm7xBpl/fr1WLhwobnLIKIKZmXuAqqrXbt2YciQIbCyssKIESPg5+cHmUyGCxcuYNu2bVi2bBlSUlLQqFEjc5daaf744w/IZJaVwV1dXfHNN98YtH3++ee4efMmFixYYLRuaWxsbHDo0CHcuXMH7u7uBsvWrVsHGxsb5OXlVVzhlWDYsGHo27evUXu7du0q7ZivvfYahg4dCqVSWWnHqG7Wr1+Pc+fOYcKECeYuhYgqEANUOSQnJ2Po0KFo1KgRDhw4AA8PD4Pln332GZYuXWpx4eJx2dnZsLe3f6p9WOIvSXt7e7z66qsGbRs3bsTDhw+N2p+kS5cuOH78ODZt2oR3331X337z5k38/PPPeOmll7B169YKq7sytG/fXtJ9rghyuRxyufyJ64iiiLy8PNja2lZRVUREFc9yf8NbsLlz5yI7OxurVq0yCk8AYGVlhXfeeQeenp4G7RcuXMDLL78MFxcX2NjYICAgAD/88IPBOkVzSA4fPoxJkybB1dUV9vb2eOmll3Dv3j2jY/34448IDAyEvb09VCoV+vXrh/PnzxusEx4eDgcHByQnJ6Nv375QqVQYMWIEAODnn3/G4MGD0bBhQyiVSnh6emLixInIzc0tsx+Kz4Ey9XSZKf0AAOfPn0ePHj1ga2uLBg0a4JNPPoFWqy2zropgY2ODgQMHYv369QbtGzZsQK1atRAWFma0zZkzZxAeHo7GjRvDxsYG7u7uGDNmDO7fv69fp6zTa487evQoevfuDScnJ9jZ2SEoKAiHDx+u0Pvp5eWFf/zjH0hISEDHjh1hY2ODxo0bY+3atfp1Tpw4AUEQsGbNGqPt9+7dC0EQsGvXLgAlz4EqOsbevXsREBAAW1tbREdHAwCuXLmCwYMHw8XFBXZ2dnj++eexe/dug2PExsZCEAR89913mD17Nho0aAAbGxv07NkTly9fNlg3ODgYrVu3xpkzZxAUFAQ7Ozs0bdoUW7ZsAQDExcWhU6dOsLW1RfPmzbF//36j+3Tr1i2MGTMGdevWhVKpRKtWrbBy5cpy1RQcHIzdu3fj2rVr+sfYy8vLhEeGiCwdR6DKYdeuXWjatCk6depk8jbnz59Hly5dUL9+fbz//vuwt7fHd999hwEDBmDr1q146aWXDNZ/++23UatWLcyYMQNXr17FwoULERkZiU2bNunX+eabbzBq1CiEhYXhs88+Q05ODpYtW4auXbvi1KlTBi/UhYWFCAsLQ9euXTF//nzY2dkBADZv3oycnBy89dZbqF27No4dO4avvvoKN2/exObNmyX1S/FTZwDwwQcfIDU1FQ4ODpL64c6dO+jevTsKCwv16y1fvrxKRy2GDx+OXr16ITk5GU2aNAGgOx3z8ssvQ6FQGK0fExODK1euYPTo0XB3d8f58+exfPlynD9/Hr/++isEQSjxFKNarcbEiRNhbW2tbzt48CD69OkDf39/zJgxAzKZDKtWrUKPHj3w888/o2PHjmXWn5OTg7S0NKN2Z2dnWFn9/aN/+fJlvPzyyxg7dixGjRqFlStXIjw8HP7+/mjVqhUCAgLQuHFjfPfddxg1apTBvjZt2lRqoHzcH3/8gWHDhuGNN97AuHHj0Lx5c9y9excvvPACcnJy8M4776B27dpYs2YN/vnPf2LLli1GPxNRUVGQyWSYPHky0tPTMXfuXIwYMQJHjx41WO/hw4f4xz/+gaFDh2Lw4MFYtmwZhg4dinXr1mHChAl48803MXz4cMybNw8vv/wybty4AZVKBQC4e/cunn/+eQiCgMjISLi6uuLHH3/E2LFjkZGRYXQarqya/vvf/yI9Pd3gFHLRzwIRVXMiSZKeni4CEAcMGGC07OHDh+K9e/f0Xzk5OfplPXv2FJ977jkxLy9P36bVasUXXnhB9PHx0betWrVKBCCGhISIWq1W3z5x4kRRLpeLjx49EkVRFDMzM0VnZ2dx3LhxBjXcuXNHdHJyMmgfNWqUCEB8//33jWp+vMYic+bMEQVBEK9du6ZvmzFjhlj86dKoUSNx1KhRRtsXmTt3rghAXLt2reR+mDBhgghAPHr0qL4tNTVVdHJyEgGIKSkppR63uH79+omNGjUyef1GjRqJ/fr1EwsLC0V3d3dx1qxZoiiK4m+//SYCEOPi4vSP0/Hjx/XbldSXGzZsEAGI8fHxpR5v/PjxolwuFw8ePCiKoq4/fHx8xLCwMIPnQE5Ojujt7S2GhoY+sf6UlBQRQKlfR44cMbivxetLTU0VlUql+O9//1vfNm3aNFGhUIgPHjzQt+Xn54vOzs7imDFj9G1F/fL441N0jJ9++smgzqLH+Oeff9a3ZWZmit7e3qKXl5eo0WhEURTFQ4cOiQDEli1bivn5+fp1Fy1aJAIQz549q28LCgoSAYjr16/Xt124cEEEIMpkMvHXX3/Vt+/du1cEIK5atUrfNnbsWNHDw0NMS0szqHXo0KGik5OT/jGWUpPU5x8RVQ88hSdRRkYGgJL/igwODoarq6v+a8mSJQCABw8e4ODBg3jllVeQmZmJtLQ0pKWl4f79+wgLC8OlS5dw69Ytg33961//MjilExgYCI1Gg2vXrgHQjXY8evQIw4YN0+8vLS0NcrkcnTp1wqFDh4zqe+utt4zaHh/Ryc7ORlpaGl544QWIoohTp06Vo4d0Dh06hGnTpuHtt9/Ga6+9Jrkf9uzZg+eff95gpMXV1VV/6rEqyOVyvPLKK9iwYQMA3eRxT09PBAYGlrj+432Zl5eHtLQ0PP/88wCAxMTEErdZu3Ytli5dirlz56J79+4AgKSkJFy6dAnDhw/H/fv39f2UnZ2Nnj17Ij4+3qRTmf/6178QExNj9OXr62uwnq+vr8F9cnV1RfPmzXHlyhV925AhQ6BWq7Ft2zZ92759+/Do0SMMGTKkzFq8vb2NRqn27NmDjh07omvXrvo2BwcH/Otf/8LVq1fx22+/Gaw/evRog1G6opofr7NoH0OHDtXfbt68OZydndGyZUuDUeOi/xdtL4oitm7div79+0MURYOfq7CwMKSnpxs9jqbWRETPHp7Ck6hoqD8rK8toWXR0NDIzM3H37l2DybuXL1+GKIr48MMP8eGHH5a439TUVNSvX19/u2HDhgbLa9WqBUB3egIALl26BADo0aNHiftzdHQ0uG1lZYUGDRoYrXf9+nVMnz4dP/zwg37fRdLT00vcd1lu3ryJIUOGoEuXLvjiiy/07VL64dq1ayWeIm3evHm5aiouPT3dYJ6XtbU1XFxcjNYbPnw4vvzyS5w+fRrr16/H0KFDjeYqFXnw4AFmzpyJjRs3IjU11eh4xSUlJeHNN9/EsGHDMGnSJH170WNb/HRZ8f0VPSdK4+PjU+qlGB5X/LkG6J5vjz8f/Pz80KJFC2zatAljx44FoDt9V6dOnVKfg4/z9vY2aivtMW7ZsqV+eevWrUuts/jPRJEGDRoYPUZOTk5GcxKdnJwMtr937x4ePXqE5cuXY/ny5SXej+KPq6k1EdGzhwFKIicnJ3h4eODcuXNGy4p+GRS/vlDRaMHkyZNLnSvStGlTg9ulvZNJFEWDfX7zzTdGb7MHYDDHBdC9Y674uwI1Gg1CQ0Px4MEDvPfee2jRogXs7e1x69YthIeHl2vCdkFBAV5++WUolUp89913BnWUpx8qy7vvvmswKTooKAixsbFG63Xq1AlNmjTBhAkTkJKSguHDh5e6z1deeQW//PILpkyZgrZt28LBwQFarRa9e/c26suHDx9i0KBBaNasGf73v/8ZLCtad968eWjbtm2Jx6rIeTRlPdeKDBkyBLNnz0ZaWhpUKhV++OEHDBs2zOi5VpKKmLtmap2lrWfqz9Srr75aanht06ZNuWoiomcPA1Q59OvXD//73/9w7NgxkybzNm7cGACgUChMGhEwRdGkZjc3t3Lv8+zZs7h48SLWrFmDkSNH6ttjYmLKXdc777yDpKQkxMfHo27dugbLpPRDo0aN9CMxj/vjjz/KXdvjpk6dajBK+KTRnGHDhuGTTz5By5YtSw00Dx8+xIEDBzBz5kxMnz5d317SfdBqtRgxYgQePXqE/fv36yf0Fyl6bB0dHSvs+VIRhgwZgpkzZ2Lr1q2oW7cuMjIyDE6VSdWoUaMSH88LFy7ol1clV1dXqFQqaDSaCu330kYsiah64xyocpg6dSrs7OwwZswY3L1712h58b8+3dzcEBwcjOjoaNy+fdto/ZIuT1CWsLAwODo64tNPP4VarS7XPov+en68XlEUsWjRIsn1AMCqVasQHR2NJUuWlBgspfRD37598euvv+LYsWMGy9etW1eu2orz9fVFSEiI/svf37/UdV9//XXMmDEDn3/+eanrlNSXAEq8AvXMmTOxd+9ebNiwocRTW/7+/mjSpAnmz59f4qni8jxfKkLLli3x3HPPYdOmTdi0aRM8PDzQrVu3cu+vb9++OHbsGI4cOaJvy87OxvLly+Hl5WU0V6uyyeVyDBo0CFu3bi1xhLm8/W5vb1/u0+FEZLk4AlUOPj4+WL9+PYYNG4bmzZvrr0QuiiJSUlKwfv16yGQygzlHS5YsQdeuXfHcc89h3LhxaNy4Me7evYsjR47g5s2bOH36tKQaHB0dsWzZMrz22mto3749hg4dCldXV1y/fh27d+9Gly5dsHjx4ifuo0WLFmjSpAkmT56MW7duwdHREVu3bi3X/I20tDSMHz8evr6+UCqV+Pbbbw2Wv/TSS7C3tze5H6ZOnYpvvvkGvXv3xrvvvqu/jEGjRo2q/GNyGjVqhI8++uiJ6zg6OqJbt26YO3cu1Go16tevj3379iElJcVgvbNnz2LWrFno1q0bUlNTjfrp1VdfhUwmw//+9z/06dMHrVq1wujRo1G/fn3cunULhw4dgqOjI3bu3Flm3YmJiUb7B3QjXJ07dy77jpdgyJAhmD59OmxsbDB27Ninuljs+++/jw0bNqBPnz5455134OLigjVr1iAlJQVbt241y4Voo6KicOjQIXTq1Anjxo2Dr68vHjx4gMTEROzfvx8PHjyQvE9/f39s2rQJkyZNQocOHeDg4ID+/ftXQvVEVKXM8M6/Z8bly5fFt956S2zatKloY2Mj2traii1atBDffPNNMSkpyWj95ORkceTIkaK7u7uoUCjE+vXri//4xz/ELVu26Ncp6e3xovj326YPHTpk1B4WFiY6OTmJNjY2YpMmTcTw8HDxxIkT+nVGjRol2tvbl3gffvvtNzEkJER0cHAQ69SpI44bN048ffq00du7y7qMQVlvnX/8be2m9IMoiuKZM2fEoKAg0cbGRqxfv744a9YsccWKFVV2GYMnKelxunnzpvjSSy+Jzs7OopOTkzh48GDxzz//FAGIM2bMEEXx78extK/HnTp1Shw4cKBYu3ZtUalUio0aNRJfeeUV8cCBA0+srazH4vFLT5R2X4OCgsSgoCCj9kuXLun3k5CQUGq/FL+MQWn9mZycLL788suis7OzaGNjI3bs2FHctWuXwTpFfbZ58+YS7+fjz9OgoCCxVatWRscprQYAYkREhEHb3bt3xYiICNHT01NUKBSiu7u72LNnT3H58uXlqikrK0scPny46OzsLALgJQ2InhGCKHK2IxEREZEUnANFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkURVfiFNrVaLP//8EyqVih9xQERUzYiiiMzMTNSrV88sFzslshRVHqD+/PNPo09FJyKi6uXGjRsGn7ZAVNNUeYBSqVQAdD98jo6OVX34EqnVauzbtw+9evWCQqEwdzkWiX1kGvaTadhPprHEfsrIyICnp6f+tZyopqryAFV02s7R0dGiApSdnR0cHR0t5kXK0rCPTMN+Mg37yTSW3E+cgkE1HU9gExEREUnEAEVEREQkEQMUERERkURVPgeKiIiebaIoorCwEBqNxtylEEkil8thZWVl0hw/BigiIqowBQUFuH37NnJycsxdClG52NnZwcPDA9bW1k9cjwGKiIgqhFarRUpKCuRyOerVqwdra2u+W4+qDVEUUVBQgHv37iElJQU+Pj5PvFgsAxQREVWIgoICaLVaeHp6ws7OztzlEElma2sLhUKBa9euoaCgADY2NqWuy0nkRERUofgRL1Sdmfr85bOciIiISCKewiMiIrO6dP8SMgsyJW+nslbBp7ZPJVREVDYGKCIiMptL9y+h2eJm5d7+YuRFhigyC57CIyIisynPyFNFbl/ckSNHIJfL0a9fvwrdr6muXr0KQRCQlJRkluOT6RigiIiI/rJixQq8/fbbiI+Px59//mnucsiCMUAREREByMrKwqZNm/DWW2+hX79+WL16tcHyH374AT4+PrCxsUH37t2xZs0aCIKAR48e6ddJSEhAYGAgbG1t4enpiXfeeQfZ2dn65V5eXvj0008xZswYqFQqNGzYEMuXL9cv9/b2BgC0a9cOgiAgODi4Mu8yPQUGKCIiIgDfffcdWrRogebNm+PVV1/FypUrIYoiACAlJQUvv/wyBgwYgNOnT+ONN97Af//7X4Ptk5OT0bt3bwwaNAhnzpzBpk2bkJCQgMjISIP1Pv/8cwQEBODUqVMYP3483nrrLfzxxx8AgGPHjgEA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6emJtLQ0i5oDFRMTg9DQUIuZZ2Bp2EemYT+Zhv1kGkvsp4yMDNSpU6dy50ARmVGlzIECAGtra/2Fxvz9/XH8+HEsWrQI0dHRJa6vVCr1Fxl7nEKhsJgXhCKWWJOlYR+Zhv1kGvaTaSypn0ypQ+Lf5UQWxdTn71NfB0qr1RqMMBERUc1UFK54mo+qs6Lnb1l/LEgagZo2bRr69OmDhg0bIjMzE+vXr0dsbCz27t1b/kqJiOiZIJfL4ezsrL+itp2dHQRBMHNVRKYRRRE5OTlITU2Fs7Mz5HL5E9eXFKBSU1MxcuRI3L59G05OTmjTpg327t1r9OGKRERUM7m7uwOASR9LQmSJnJ2d9c/jJ5EUoFasWFHugoiI6NknCAI8PDzg5uZmUZdfIDKFQqEoc+SpSLmvA0VERFQauVxu8i8iouqIHyZMREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCSRlbkLqEqX7l9CZkGmUbtWowUAnL57GjK5caZUWavgU9un0usjIiKi6qHGBKhL9y+h2eJmJS6zldliQ5sN6LaqG3K1uSWuczHyIkMUERERAahBp/BKGnmqyu2JiIjo2VFjAhQRERFRRWGAIiIiIpJIUoCaM2cOOnToAJVKBTc3NwwYMAB//PFHZdVGREREZJEkBai4uDhERETg119/RUxMDNRqNXr16oXs7OzKqo+IiIjI4kh6F95PP/1kcHv16tVwc3PDyZMn0a1btxK3yc/PR35+vv52RkYGAECtVkOtVkutt9y0Gi1sZbYlLitqL2150fZVWa+lKbrvNbkPTMF+Mg37yTSW2E+WVAuROQmiKIrl3fjy5cvw8fHB2bNn0bp16xLX+eijjzBz5kyj9vXr18POzq68hyYiIjPIycnB8OHDkZ6eDkdHR3OXQ2Q25Q5QWq0W//znP/Ho0SMkJCSUul5JI1Cenp5IS0ur0h++03dPo9uqkkfJbGW2WNl6JcacG1PqdaDiR8fDr65fZZZo0dRqNWJiYhAaGgqFQmHuciwW+8k07CfTWGI/ZWRkoE6dOgxQVOOV+0KaEREROHfu3BPDEwAolUoolUqjdoVCUaUvCDK5rNRwVCRXm1vqOjK5zGJewMypqh+36or9ZBr2k2ksqZ8spQ4icytXgIqMjMSuXbsQHx+PBg0aVHRNRERERBZNUoASRRFvv/02tm/fjtjYWHh7e1dWXUREREQWS1KAioiIwPr167Fjxw6oVCrcuXMHAODk5ARb29LfwUZERET0LJF0Hahly5YhPT0dwcHB8PDw0H9t2rSpsuojIiIisjiST+FVVyprlVm3JyIiomdHud+FV9341PbBxciLyCzINFqm1Whx6+QtxI+Oh0xuPCinslbBp7ZPVZRJRERE1UCNCVAASg1BarUat3ALfnX9+BZdIiIiKpOkOVBERERExABFREREJBkDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBER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wpO5eNWxx7zBbYzmGxQpemfU4++QepwAYN7gNs/0LzwyDZ9LpnGwsUL7JqX/ci1699jj7yIrrn0Tx2c6PAHsJ6LqrMb81L3Ytj4AYMpm3YfBFp/LUhK5TIBcEDBvcBv99kR8LpnGs45uTk5isu4Dc00Z6hagezt++yaO+u2fdewnouqpxgQoQPeLz6+BM6ZuPYNjKQ8glwkl/vIrag9oVAufDXr2RwtIOj6XTONZxxa1HBRITM7A/Uw1BJQcEIraXVSKGjmiwn4iqn5q3E+fVx17fPdGZ5y7lY7NJ27g+NWHuJ6m+3gZhUxAEzdHdPCqhcEBns/sJF+qGHwumcbBxgrdWrngUbYa11JzcT9TjYxs3fWPBEF3/aLaKgUaudnW6InQ7Cei6qXGBagires76X+pFU2QPjW9V42eIE3lw+eSaZztFXD21vWJrp90V85mPxliPxFVD8/8daCIiIiIKhoDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRROUKUEuWLIGXlxdsbGzQqVMnHDt2rKLrIiIiIrJYkgPUpk2bMGnSJMyYMQOJiYnw8/NDWFgYUlNTK6M+IiIiIosjOUB98cUXGDduHEaPHg1fX198/fXXsLOzw8qVKyujPiIiIiKLYyVl5YKCApw8eRLTpk3Tt8lkMoSEhODIkSMlbpOfn4/8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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQnklEQVR4nO3dd3hUVeL/8ffMZNIbCYEECCmEFpoUG0hTXKLiCotKVVEsiIigrmV/a3cFYS2LBXCV5hdcFCwIKtKCAiogvSgt9EAgIUD6ZOb+/hgzMiSBBFLI8Hk9Tx7Mvefee+7JSD6ce865JsMwDERERESkxjNXdwVEREREpGIo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNhJtXjxxRcxmUxu22JjYxkyZEiV1mPatGmYTCb27t1bpdeVstHPR0SkfBTsLiEpKSmMGDGCJk2a4O/vj7+/P4mJiTzyyCNs2rSpuqt3Wdq7dy8mk6lMX6WFj9jYWEwmEz169Chx/3//+1/XOdauXVuJd3NhztcGY8eOre4qXlZmzZrF22+/Xd3VEJFLlFd1V0Cc5s+fT79+/fDy8mLQoEG0adMGs9nMb7/9xueff87EiRNJSUkhJiamuqtaaX7//XfM5kvr3xoRERF8/PHHbtveeOMNDh48yFtvvVWsbGl8fX1ZtmwZR44cITIy0m3fzJkz8fX1JS8vr+IqXgkGDBjAzTffXGx727ZtK+2ad911F/3798fHx6fSrlHTzJo1iy1btjBq1KjqroqIXIIU7C4Bu3fvpn///sTExLBkyRKioqLc9r/++uu8//77l1zoOVN2djYBAQEXdY5L8Zd3QEAAgwcPdtv2v//9jxMnThTbfi6dOnVizZo1zJ49m8cee8y1/eDBg/z444/06dOHuXPnVli9K0O7du3Kdc8VwWKxYLFYzlnGMAzy8vLw8/OrolqJiFy6Lt2kcBkZN24c2dnZTJ06tVioA/Dy8mLkyJFER0e7bf/tt9+4/fbbCQsLw9fXlw4dOjBv3jy3MkVjlFauXMnjjz9OREQEAQEB9OnTh2PHjhW71rfffkvnzp0JCAggKCiIW265ha1bt7qVGTJkCIGBgezevZubb76ZoKAgBg0aBMCPP/7IHXfcQcOGDfHx8SE6OprRo0eTm5t73nY4e4xdWR97lqUdALZu3cr111+Pn58fDRo04NVXX8XhcJy3XhXB19eXv/3tb8yaNctt+yeffEKtWrXo2bNnsWM2bdrEkCFDiI+Px9fXl8jISO677z7S09NdZc73mPRMv/zyC0lJSYSEhODv70/Xrl1ZuXJlhd5nbGwsvXr1YsWKFVx11VX4+voSHx/PjBkzXGXWrl2LyWRi+vTpxY5fuHAhJpOJ+fPnAyWPsSu6xsKFC+nQoQN+fn5MnjwZgD179nDHHXcQFhaGv78/11xzDQsWLHC7RnJyMiaTiU8//ZR//etfNGjQAF9fX2644QZ27drlVrZbt260bNmSTZs20bVrV/z9/UlISGDOnDkALF++nKuvvho/Pz+aNm3K4sWLi93ToUOHuO+++6hbty4+Pj60aNGCKVOmXFCdunXrxoIFC9i3b5/rZxwbG1uGn4yIXC7UY3cJmD9/PgkJCVx99dVlPmbr1q106tSJ+vXr88wzzxAQEMCnn35K7969mTt3Ln369HEr/+ijj1KrVi1eeOEF9u7dy9tvv82IESOYPXu2q8zHH3/MPffcQ8+ePXn99dfJyclh4sSJXHfddaxfv97tF0hhYSE9e/bkuuuu49///jf+/v4AfPbZZ+Tk5PDwww8THh7O6tWreeeddzh48CCfffZZudrl7EegAP/85z9JS0sjMDCwXO1w5MgRunfvTmFhoavcBx98UKW9PAMHDuQvf/kLu3fvplGjRoDzsdrtt9+O1WotVn7RokXs2bOHe++9l8jISLZu3coHH3zA1q1b+fnnnzGZTCU+KrbZbIwePRpvb2/XtqVLl3LTTTfRvn17XnjhBcxmM1OnTuX666/nxx9/5Kqrrjpv/XNycjh+/Hix7aGhoXh5/flXya5du7j99tsZOnQo99xzD1OmTGHIkCG0b9+eFi1a0KFDB+Lj4/n000+555573M41e/bsUoPumX7//XcGDBjAQw89xAMPPEDTpk05evQoHTt2JCcnh5EjRxIeHs706dP561//ypw5c4r9PzF27FjMZjNPPvkkJ0+eZNy4cQwaNIhffvnFrdyJEyfo1asX/fv354477mDixIn079+fmTNnMmrUKIYNG8bAgQMZP348t99+OwcOHCAoKAiAo0ePcs0112AymRgxYgQRERF8++23DB06lFOnThV7nHq+Ov2///f/OHnypNtQgKL/F0READCkWp08edIAjN69exfbd+LECePYsWOur5ycHNe+G264wWjVqpWRl5fn2uZwOIyOHTsajRs3dm2bOnWqARg9evQwHA6Ha/vo0aMNi8ViZGZmGoZhGKdPnzZCQ0ONBx54wK0OR44cMUJCQty233PPPQZgPPPMM8XqfGYdi4wZM8YwmUzGvn37XNteeOEF4+yPX0xMjHHPPfcUO77IuHHjDMCYMWNGudth1KhRBmD88ssvrm1paWlGSEiIARgpKSmlXvdst9xyixETE1Pm8jExMcYtt9xiFBYWGpGRkcYrr7xiGIZhbNu2zQCM5cuXu35Oa9ascR1XUlt+8sknBmD88MMPpV5v+PDhhsViMZYuXWoYhrM9GjdubPTs2dPtM5CTk2PExcUZN9544znrn5KSYgClfv30009u93p2/dLS0gwfHx/jiSeecG179tlnDavVamRkZLi25efnG6GhocZ9993n2lbULmf+fIqu8d1337nVs+hn/OOPP7q2nT592oiLizNiY2MNu91uGIZhLFu2zACM5s2bG/n5+a6y//nPfwzA2Lx5s2tb165dDcCYNWuWa9tvv/1mAIbZbDZ+/vln1/aFCxcagDF16lTXtqFDhxpRUVHG8ePH3erav39/IyQkxPUzLk+dyvv5E5HLix7FVrNTp04BJf+ru1u3bkRERLi+3nvvPQAyMjJYunQpd955J6dPn+b48eMcP36c9PR0evbsyc6dOzl06JDbuR588EG3R3OdO3fGbrezb98+wNk7lJmZyYABA1znO378OBaLhauvvpply5YVq9/DDz9cbNuZPWDZ2dkcP36cjh07YhgG69evv4AWclq2bBnPPvssjz76KHfddVe52+Gbb77hmmuuceuZioiIcD1CrgoWi4U777yTTz75BHBOmoiOjqZz584llj+zLfPy8jh+/DjXXHMNAOvWrSvxmBkzZvD+++8zbtw4unfvDsCGDRvYuXMnAwcOJD093dVO2dnZ3HDDDfzwww9leiT94IMPsmjRomJfiYmJbuUSExPd7ikiIoKmTZuyZ88e17Z+/fphs9n4/PPPXdu+//57MjMz6dev33nrEhcXV6xX75tvvuGqq67iuuuuc20LDAzkwQcfZO/evWzbts2t/L333uvWq1lU5zPrWXSO/v37u75v2rQpoaGhNG/e3K2Xvei/i443DIO5c+dy6623YhiG2/9XPXv25OTJk8V+jmWtk4hIafQotpoVPbLJysoqtm/y5MmcPn2ao0ePug1a37VrF4Zh8Nxzz/Hcc8+VeN60tDTq16/v+r5hw4Zu+2vVqgU4HzMB7Ny5E4Drr7++xPMFBwe7fe/l5UWDBg2Kldu/fz/PP/888+bNc527yMmTJ0s89/kcPHiQfv360alTJ958803X9vK0w759+0p81N20adMLqtPZTp486TaO0Nvbm7CwsGLlBg4cyIQJE9i4cSOzZs2if//+xcbCFcnIyOCll17if//7H2lpacWud7YNGzYwbNgwBgwYwOOPP+7aXvSzPfux59nnK/pMlKZx48alLtlyprM/a+D8vJ35eWjTpg3NmjVj9uzZDB06FHA+hq1du3apn8EzxcXFFdtW2s+4efPmrv0tW7YstZ5n/z9RpEGDBsV+RiEhIcXGvIaEhLgdf+zYMTIzM/nggw/44IMPSryPs3+uZa2TiEhpFOyqWUhICFFRUWzZsqXYvqJfUmevj1bUu/Lkk0+WOhYpISHB7fvSZhYahuF2zo8//rjYchyA2xgqcM5gPXuWrt1u58YbbyQjI4Onn36aZs2aERAQwKFDhxgyZMgFTVQoKCjg9ttvx8fHh08//dStHhfSDpXlsccec5sM0LVrV5KTk4uVu/rqq2nUqBGjRo0iJSWFgQMHlnrOO++8k1WrVvH3v/+dK664gsDAQBwOB0lJScXa8sSJE/Tt25cmTZrw4Ycfuu0rKjt+/HiuuOKKEq9VkeO0zvdZK9KvXz/+9a9/cfz4cYKCgpg3bx4DBgwo9lkrSUWMjSxrPUsrV9b/pwYPHlxqqG7duvUF1UlEpDQKdpeAW265hQ8//JDVq1eXaRB7fHw8AFartUw9KGVRNJi/Tp06F3zOzZs3s2PHDqZPn87dd9/t2r5o0aILrtfIkSPZsGEDP/zwA3Xr1nXbV552iImJcfVcnen333+/4Lqd6amnnnLrVT1X79eAAQN49dVXad68ealB68SJEyxZsoSXXnqJ559/3rW9pHtwOBwMGjSIzMxMFi9e7JrIUqToZxscHFxhn5eK0K9fP1566SXmzp1L3bp1OXXqlNsjz/KKiYkp8ef522+/ufZXpYiICIKCgrDb7RXa7qX18IqIgJY7uSQ89dRT+Pv7c99993H06NFi+8/+13qdOnXo1q0bkydPJjU1tVj5kpYxOZ+ePXsSHBzMa6+9hs1mu6BzFvU2nFlfwzD4z3/+U+76AEydOpXJkyfz3nvvlRh4y9MON998Mz///DOrV6922z9z5swLqtvZEhMT6dGjh+urffv2pZa9//77eeGFF3jjjTdKLVNSWwIlvnHgpZdeYuHChXzyySclPqJs3749jRo14t///neJj/wv5PNSEZo3b06rVq2YPXs2s2fPJioqii5dulzw+W6++WZWr17NTz/95NqWnZ3NBx98QGxsbLGxgJXNYrHQt29f5s6dW2KP/IW2e0BAwAUPaxARz6ceu0tA48aNmTVrFgMGDKBp06auN08YhkFKSgqzZs3CbDa7jWl77733uO6662jVqhUPPPAA8fHxHD16lJ9++omDBw+ycePGctUhODiYiRMnctddd9GuXTv69+9PREQE+/fvZ8GCBXTq1Il33333nOdo1qwZjRo14sknn+TQoUMEBwczd+7cCxofdPz4cYYPH05iYiI+Pj783//9n9v+Pn36EBAQUOZ2eOqpp/j4449JSkrisccecy13EhMTU+Wva4uJieHFF188Z5ng4GC6dOnCuHHjsNls1K9fn++//56UlBS3cps3b+aVV16hS5cupKWlFWunwYMHYzab+fDDD7npppto0aIF9957L/Xr1+fQoUMsW7aM4OBgvv766/PWe926dcXOD84ewWuvvfb8N16Cfv368fzzz+Pr68vQoUMvahHuZ555hk8++YSbbrqJkSNHEhYWxvTp00lJSWHu3LnVssD32LFjWbZsGVdffTUPPPAAiYmJZGRksG7dOhYvXkxGRka5z9m+fXtmz57N448/zpVXXklgYCC33nprJdReRGoiBbtLxG233cbmzZt54403+P7775kyZQomk4mYmBhuueUWhg0bRps2bVzlExMTWbt2LS+99BLTpk0jPT2dOnXq0LZtW7dHd+UxcOBA6tWrx9ixYxk/fjz5+fnUr1+fzp07c++99573eKvVytdff83IkSMZM2YMvr6+9OnThxEjRrjVvSyysrLIy8tj27ZtrlmwZ0pJSSEgIKDM7RAVFcWyZct49NFHGTt2LOHh4QwbNox69eq5Bu9fambNmsWjjz7Ke++9h2EY/OUvf+Hbb7+lXr16rjLp6ekYhsHy5ctZvnx5sXMUPR7u1q0bP/30E6+88grv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", "text/plain": [ "
" ] @@ -373,22 +297,12 @@ "output_type": "stream", "text": [ "Time t=8\n", - "[Array([[5]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[3]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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6emJlJQUi5oDFR0djdDQUIuZZ2Bp2EemYT+Zhv1kGkvsp7S0NNSqVati50ARmVGFzIECAGtra/2Fxvz9/XHy5EksXLgQUVFRRS6vVCr1Fxl7mkKhsJgXhAKWWJOlYR+Zhv1kGvaTaSypn0ypQ+Lf5UQWxdTj95mvA6XVag1GmIiIqHoqCFc8zUdVWcHxW9ofC5JGoKZOnYpevXqhfv36SE9Px7p16xATE4O9e/eWvVIiInouyOVyODs766+obWdnB0EQzFwVkWlEUURWVhaSk5Ph7OwMuVxe4vKSAlRycjKGDx+Ou3fvwsnJCa1atcLevXuNbq5IRETVk7u7OwCYdFsSIkvk7OysP45LIilALV++vMwFERHR808QBHh4eMDNzc2iLr9AZAqFQlHqyFOBMl8HioiIqDhyudzkX0REVRFvJkxEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUSSAtTs2bPRrl07qFQquLm5oV+/fvjjjz8qqjYiIiIiiyQpQMXGxiIiIgK//voroqOjoVar0aNHD2RmZlZUfUREREQWx0rKwnv27DH4etWqVXBzc8Pp06fRpUuXItfJzc1Fbm6u/uu0tDQAgFqthlqtllpvhSiow1LqsUTsI9Own0zDfjKNJfaTJdVCZE6CKIpiWVe+du0afHx8cOHCBbRs2bLIZT755BPMmDHDqH3dunWws7Mr666JiMgMsrKyMHToUKSmpsLR0dHc5RCZTZkDlFarxT//+U88efIEcXFxxS5X1AiUp6cnUlJSLOaHT61WIzo6GqGhoVAoFOYuxyKxj0zDfjIN+8k0lthPaWlpqFWrFgMUVXuSTuE9LSIiAhcvXiwxPAGAUqmEUqk0alcoFBbzglDAEmuyNOwj07CfTMN+Mo0l9ZOl1EFkbmUKUOPGjcPOnTtx+PBh1KtXr7xrIiIiIrJokgKUKIp49913sW3bNsTExMDb27ui6iIiIiKyWJICVEREBNatW4ft27dDpVLh3r17AAAnJyfY2tpWSIFERERElkbSdaCWLl2K1NRUBAcHw8PDQ/+xcePGiqqPiIiIyOJIPoVHREREVN3xXnhEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRFbmLsBcLt5JxaZTt3Ai6RFupaRjVgDQ5tN98KylQnsvFwwM8ETLuk7mLpOqAB5LpnmSqcaN5GykpKuRnpkDAcCuU8lQ2duglkqBBm62cLZXmLtMs2M/EVUN1S5AJaVkYsqW8ziR+AhymQCNVoRSLgIA1FoRv99Nx5X7GVh97Abae7tgzoBW8Kplb+aqyRLxWDJNRk4+ziSk4WG6GgIAEbp/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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQnklEQVR4nO3dd3hUVeL/8ffMZNIbCYEECCmEFpoUG0hTXKLiCotKVVEsiIigrmV/a3cFYS2LBXCV5hdcFCwIKtKCAiogvSgt9EAgIUD6ZOb+/hgzMiSBBFLI8Hk9Tx7Mvefee+7JSD6ce865JsMwDERERESkxjNXdwVEREREpGIo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNhJtXjxxRcxmUxu22JjYxkyZEiV1mPatGmYTCb27t1bpdeVstHPR0SkfBTsLiEpKSmMGDGCJk2a4O/vj7+/P4mJiTzyyCNs2rSpuqt3Wdq7dy8mk6lMX6WFj9jYWEwmEz169Chx/3//+1/XOdauXVuJd3NhztcGY8eOre4qXlZmzZrF22+/Xd3VEJFLlFd1V0Cc5s+fT79+/fDy8mLQoEG0adMGs9nMb7/9xueff87EiRNJSUkhJiamuqtaaX7//XfM5kvr3xoRERF8/PHHbtveeOMNDh48yFtvvVWsbGl8fX1ZtmwZR44cITIy0m3fzJkz8fX1JS8vr+IqXgkGDBjAzTffXGx727ZtK+2ad911F/3798fHx6fSrlHTzJo1iy1btjBq1KjqroqIXIIU7C4Bu3fvpn///sTExLBkyRKioqLc9r/++uu8//77l1zoOVN2djYBAQEXdY5L8Zd3QEAAgwcPdtv2v//9jxMnThTbfi6dOnVizZo1zJ49m8cee8y1/eDBg/z444/06dOHuXPnVli9K0O7du3Kdc8VwWKxYLFYzlnGMAzy8vLw8/OrolqJiFy6Lt2kcBkZN24c2dnZTJ06tVioA/Dy8mLkyJFER0e7bf/tt9+4/fbbCQsLw9fXlw4dOjBv3jy3MkVjlFauXMnjjz9OREQEAQEB9OnTh2PHjhW71rfffkvnzp0JCAggKCiIW265ha1bt7qVGTJkCIGBgezevZubb76ZoKAgBg0aBMCPP/7IHXfcQcOGDfHx8SE6OprRo0eTm5t73nY4e4xdWR97lqUdALZu3cr111+Pn58fDRo04NVXX8XhcJy3XhXB19eXv/3tb8yaNctt+yeffEKtWrXo2bNnsWM2bdrEkCFDiI+Px9fXl8jISO677z7S09NdZc73mPRMv/zyC0lJSYSEhODv70/Xrl1ZuXJlhd5nbGwsvXr1YsWKFVx11VX4+voSHx/PjBkzXGXWrl2LyWRi+vTpxY5fuHAhJpOJ+fPnAyWPsSu6xsKFC+nQoQN+fn5MnjwZgD179nDHHXcQFhaGv78/11xzDQsWLHC7RnJyMiaTiU8//ZR//etfNGjQAF9fX2644QZ27drlVrZbt260bNmSTZs20bVrV/z9/UlISGDOnDkALF++nKuvvho/Pz+aNm3K4sWLi93ToUOHuO+++6hbty4+Pj60aNGCKVOmXFCdunXrxoIFC9i3b5/rZxwbG1uGn4yIXC7UY3cJmD9/PgkJCVx99dVlPmbr1q106tSJ+vXr88wzzxAQEMCnn35K7969mTt3Ln369HEr/+ijj1KrVi1eeOEF9u7dy9tvv82IESOYPXu2q8zHH3/MPffcQ8+ePXn99dfJyclh4sSJXHfddaxfv97tF0hhYSE9e/bkuuuu49///jf+/v4AfPbZZ+Tk5PDwww8THh7O6tWreeeddzh48CCfffZZudrl7EegAP/85z9JS0sjMDCwXO1w5MgRunfvTmFhoavcBx98UKW9PAMHDuQvf/kLu3fvplGjRoDzsdrtt9+O1WotVn7RokXs2bOHe++9l8jISLZu3coHH3zA1q1b+fnnnzGZTCU+KrbZbIwePRpvb2/XtqVLl3LTTTfRvn17XnjhBcxmM1OnTuX666/nxx9/5Kqrrjpv/XNycjh+/Hix7aGhoXh5/flXya5du7j99tsZOnQo99xzD1OmTGHIkCG0b9+eFi1a0KFDB+Lj4/n000+555573M41e/bsUoPumX7//XcGDBjAQw89xAMPPEDTpk05evQoHTt2JCcnh5EjRxIeHs706dP561//ypw5c4r9PzF27FjMZjNPPvkkJ0+eZNy4cQwaNIhffvnFrdyJEyfo1asX/fv354477mDixIn079+fmTNnMmrUKIYNG8bAgQMZP348t99+OwcOHCAoKAiAo0ePcs0112AymRgxYgQRERF8++23DB06lFOnThV7nHq+Ov2///f/OHnypNtQgKL/F0READCkWp08edIAjN69exfbd+LECePYsWOur5ycHNe+G264wWjVqpWRl5fn2uZwOIyOHTsajRs3dm2bOnWqARg9evQwHA6Ha/vo0aMNi8ViZGZmGoZhGKdPnzZCQ0ONBx54wK0OR44cMUJCQty233PPPQZgPPPMM8XqfGYdi4wZM8YwmUzGvn37XNteeOEF4+yPX0xMjHHPPfcUO77IuHHjDMCYMWNGudth1KhRBmD88ssvrm1paWlGSEiIARgpKSmlXvdst9xyixETE1Pm8jExMcYtt9xiFBYWGpGRkcYrr7xiGIZhbNu2zQCM5cuXu35Oa9ascR1XUlt+8sknBmD88MMPpV5v+PDhhsViMZYuXWoYhrM9GjdubPTs2dPtM5CTk2PExcUZN9544znrn5KSYgClfv30009u93p2/dLS0gwfHx/jiSeecG179tlnDavVamRkZLi25efnG6GhocZ9993n2lbULmf+fIqu8d1337nVs+hn/OOPP7q2nT592oiLizNiY2MNu91uGIZhLFu2zACM5s2bG/n5+a6y//nPfwzA2Lx5s2tb165dDcCYNWuWa9tvv/1mAIbZbDZ+/vln1/aFCxcagDF16lTXtqFDhxpRUVHG8ePH3erav39/IyQkxPUzLk+dyvv5E5HLix7FVrNTp04BJf+ru1u3bkRERLi+3nvvPQAyMjJYunQpd955J6dPn+b48eMcP36c9PR0evbsyc6dOzl06JDbuR588EG3R3OdO3fGbrezb98+wNk7lJmZyYABA1znO378OBaLhauvvpply5YVq9/DDz9cbNuZPWDZ2dkcP36cjh07YhgG69evv4AWclq2bBnPPvssjz76KHfddVe52+Gbb77hmmuuceuZioiIcD1CrgoWi4U777yTTz75BHBOmoiOjqZz584llj+zLfPy8jh+/DjXXHMNAOvWrSvxmBkzZvD+++8zbtw4unfvDsCGDRvYuXMnAwcOJD093dVO2dnZ3HDDDfzwww9leiT94IMPsmjRomJfiYmJbuUSExPd7ikiIoKmTZuyZ88e17Z+/fphs9n4/PPPXdu+//57MjMz6dev33nrEhcXV6xX75tvvuGqq67iuuuuc20LDAzkwQcfZO/evWzbts2t/L333uvWq1lU5zPrWXSO/v37u75v2rQpoaGhNG/e3K2Xvei/i443DIO5c+dy6623YhiG2/9XPXv25OTJk8V+jmWtk4hIafQotpoVPbLJysoqtm/y5MmcPn2ao0ePug1a37VrF4Zh8Nxzz/Hcc8+VeN60tDTq16/v+r5hw4Zu+2vVqgU4HzMB7Ny5E4Drr7++xPMFBwe7fe/l5UWDBg2Kldu/fz/PP/888+bNc527yMmTJ0s89/kcPHiQfv360alTJ958803X9vK0w759+0p81N20adMLqtPZTp486TaO0Nvbm7CwsGLlBg4cyIQJE9i4cSOzZs2if//+xcbCFcnIyOCll17if//7H2lpacWud7YNGzYwbNgwBgwYwOOPP+7aXvSzPfux59nnK/pMlKZx48alLtlyprM/a+D8vJ35eWjTpg3NmjVj9uzZDB06FHA+hq1du3apn8EzxcXFFdtW2s+4efPmrv0tW7YstZ5n/z9RpEGDBsV+RiEhIcXGvIaEhLgdf+zYMTIzM/nggw/44IMPSryPs3+uZa2TiEhpFOyqWUhICFFRUWzZsqXYvqJfUmevj1bUu/Lkk0+WOhYpISHB7fvSZhYahuF2zo8//rjYchyA2xgqcM5gPXuWrt1u58YbbyQjI4Onn36aZs2aERAQwKFDhxgyZMgFTVQoKCjg9ttvx8fHh08//dStHhfSDpXlsccec5sM0LVrV5KTk4uVu/rqq2nUqBGjRo0iJSWFgQMHlnrOO++8k1WrVvH3v/+dK664gsDAQBwOB0lJScXa8sSJE/Tt25cmTZrw4Ycfuu0rKjt+/HiuuOKKEq9VkeO0zvdZK9KvXz/+9a9/cfz4cYKCgpg3bx4DBgwo9lkrSUWMjSxrPUsrV9b/pwYPHlxqqG7duvUF1UlEpDQKdpeAW265hQ8//JDVq1eXaRB7fHw8AFartUw9KGVRNJi/Tp06F3zOzZs3s2PHDqZPn87dd9/t2r5o0aILrtfIkSPZsGEDP/zwA3Xr1nXbV552iImJcfVcnen333+/4Lqd6amnnnLrVT1X79eAAQN49dVXad68ealB68SJEyxZsoSXXnqJ559/3rW9pHtwOBwMGjSIzMxMFi9e7JrIUqToZxscHFxhn5eK0K9fP1566SXmzp1L3bp1OXXqlNsjz/KKiYkp8ef522+/ufZXpYiICIKCgrDb7RXa7qX18IqIgJY7uSQ89dRT+Pv7c99993H06NFi+8/+13qdOnXo1q0bkydPJjU1tVj5kpYxOZ+ePXsSHBzMa6+9hs1mu6BzFvU2nFlfwzD4z3/+U+76AEydOpXJkyfz3nvvlRh4y9MON998Mz///DOrV6922z9z5swLqtvZEhMT6dGjh+urffv2pZa9//77eeGFF3jjjTdKLVNSWwIlvnHgpZdeYuHChXzyySclPqJs3749jRo14t///neJj/wv5PNSEZo3b06rVq2YPXs2s2fPJioqii5dulzw+W6++WZWr17NTz/95NqWnZ3NBx98QGxsbLGxgJXNYrHQt29f5s6dW2KP/IW2e0BAwAUPaxARz6ceu0tA48aNmTVrFgMGDKBp06auN08YhkFKSgqzZs3CbDa7jWl77733uO6662jVqhUPPPAA8fHxHD16lJ9++omDBw+ycePGctUhODiYiRMnctddd9GuXTv69+9PREQE+/fvZ8GCBXTq1Il33333nOdo1qwZjRo14sknn+TQoUMEBwczd+7cCxofdPz4cYYPH05iYiI+Pj783//9n9v+Pn36EBAQUOZ2eOqpp/j4449JSkrisccecy13EhMTU+Wva4uJieHFF188Z5ng4GC6dOnCuHHjsNls1K9fn++//56UlBS3cps3b+aVV16hS5cupKWlFWunwYMHYzab+fDDD7npppto0aIF9957L/Xr1+fQoUMsW7aM4OBgvv766/PWe926dcXOD84ewWuvvfb8N16Cfv368fzzz+Pr68vQoUMvahHuZ555hk8++YSbbrqJkSNHEhYWxvTp00lJSWHu3LnVssD32LFjWbZsGVdffTUPPPAAiYmJZGRksG7dOhYvXkxGRka5z9m+fXtmz57N448/zpVXXklgYCC33nprJdReRGoiBbtLxG233cbmzZt54403+P7775kyZQomk4mYmBhuueUWhg0bRps2bVzlExMTWbt2LS+99BLTpk0jPT2dOnXq0LZtW7dHd+UxcOBA6tWrx9ixYxk/fjz5+fnUr1+fzp07c++99573eKvVytdff83IkSMZM2YMvr6+9OnThxEjRrjVvSyysrLIy8tj27ZtrlmwZ0pJSSEgIKDM7RAVFcWyZct49NFHGTt2LOHh4QwbNox69eq5Bu9fambNmsWjjz7Ke++9h2EY/OUvf+Hbb7+lXr16rjLp6ekYhsHy5ctZvnx5sXMUPR7u1q0bP/30E6+88grv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", "text/plain": [ "
" ] @@ -401,22 +315,12 @@ "output_type": "stream", "text": [ "Time t=9\n", - "[Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[3]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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AOzfvx+3bt3Ctm3bquCeU3kwQBEREUF3+u61114DAPTq1QsZGRmIi4sDAERFRaFZs2aYP38+mjVrhiFDhiA8PNxg+7lz52L48OGYMGECfHx88OKLL+LLL7/EunXrkJ+fr1+vT58+GDduHJo0aYL3338fderUwaFDhwAArq6uAIDatWvD3d0dLi4uVXDPqTwYoIiIqMb7448/cOzYMQwdOhQAYGVlhcGDB2PlypX65e3btzfYpkOHDga3T58+jTVr1sDBwUH/FRYWpv+Im2KtW7fW/18QBLi7uyMtLa2y7hpVEl7GgIiIaryVK1eiqKgIdevW1beJogilUoklS5aYtI/s7Gy8+eabePfdd42WNWjQQP9/hUJhsEwQBGi12nJWTubCAEVERDVaUVER1q1bh88//xw9e/Y0WNa/f39s2LABzZo1w549ewyWHT9+3OB2u3bt8Ntvv6FJkyblrsXa2hoAoNFoyr0PqhoMUEREVKPt2rULDx48wJgxY+Dk5GSwbODAgVi5ciW+++47fPHFF3j//fcxZswYJCUl6d+lJwgCAOD999/HCy+8gPHjx+ONN96Avb09fvvtN8TExJg8iuXm5gZbW1v89NNPqF+/PmxsbIxqIsvAOVBERFSjrVy5EiEhIaUGlYEDB+LEiRPIysrCli1bsG3bNrRu3RrLly/XvwtPqVQC0M1tiouLw4ULFxAYGIi2bdti+vTpBqcFn8TKygpffvkloqKiULduXbz00ksVcyepwnEEioiIarSdO3eWuaxDhw76Sxm0bt0a//znP/XL5syZox8lKta+fXvs27evzP1duXLFqK3kVcffeOMNvPHGGyZWT+bCAEVERGSCZcuWoX379qhduzYOHz6M+fPnG13jiWoOBigiIiITXLx4EZ988gnu37+PBg0a4N///jemTZtm7rLITGpsgEq+mYHNJ67j2JX7uJ6ehTkBQNuP98GzjgodvFwwKMATrepx4h4RVa2HOWpcTctDepYaWTn5EADsPpEGlb0N6qgUaOhmC2d7xRP3U12orFVm3V6KhQsXYuHChVV2PLJsNS5AXUnPwdStZ3As9T7kMgEarQilXHd+W60V8futLFy4k421R66ig7cL5g1sDa869maumoieddn5RUhMycS9LDUEACJ0/wgARBHIzC1CVm4RLt/JQ22VAu0aO8LBpvq/hPvU9sGF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KE9PT6Snp1vUHKiYmBiEhoZazDwDS8M+Mg37yTTsJ9NYYj9lZmaiTp06lTsHisiMKmUOFABYW1vrLzTm7++P48ePY/HixYiKiip1faVSqb/I2KMUCoXFvCAUs8SaLA37yDTsJ9Own0xjSf1kSh0S/y4nsiimPn+f+jpQWq3WYISJiIhqpuJwxdN8VJ0VP3+f9MeCpBGoadOmoXfv3mjQoAGysrIQHR2N2NhY7N27t/yVEhHRM0Eul8PZ2Vl/RW07OzsIgmDmqohMI4oicnNzkZaWBmdnZ8jl8seuLylApaWlYcSIEbh16xacnJzQunVr7N271+jDFYmIqGZyd3cHAJM+loTIEjk7O+ufx48jKUCtXLmy3AUREdGzTxAEeHh4wM3NzaIuv0BkCoVC8cSRp2Llvg4UERFRWeRyucm/iIiqI36YMBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEkkKUHPnzkX79u2hUqng5uaG/v37448//qis2oiIiIgskqQAFRcXh4iICPz666+IiYmBWq1Gz549kZOTU1n1EREREVkcKykr//TTTwa316xZAzc3N5w8eRJdu3YtdZuCggIUFBTob2dmZgIA1Go11Gq11HorRXEdllKPJWIfmYb9ZBr2k2kssZ8sqRYicxJEURTLu/GlS5fg4+ODs2fPolWrVqWuM3PmTMyaNcuoPTo6GnZ2duU9NBERmUFubi6GDRuGjIwMODo6mrscIrMpd4DSarX45z//iYcPHyIhIaHM9UobgfL09ER6errF/PCp1WrExMQgNDQUCoXC3OVYJPaRadhPpmE/mcYS+ykzMxN16tRhgKIaT9IpvEdFREQgOTn5seEJAJRKJZRKpVG7QqGwmBeEYpZYk6VhH5mG/WQa9pNpLKmfLKUOInMrV4AaP348du3ahfj4eNSvX7+iayIiIiKyaJIClCiKeOedd7B9+3bExsbC29u7suoiIiIisliSAlRERASio6OxY8cOqFQq3L59GwDg5OQEW1vbSimQiIiIyNJIug7U8uXLkZGRgeDgYHh4eOi/Nm3aVFn1EREREVkcyafwiIiIiGo6fhYeERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJJGVuQswl+SbGdh84jqOXbmP6+lZmBMAtP14HzzrqNDBywWDAjzRqp6TucukaoDPJdM8zFHjaloe0rPUyMrJhwBg94k0qOxtUEelQEM3WzjbK8xdptmxn4iqhxoXoK6k52Dq1jM4lnofcpkAjVaEUi4CANRaEb/fysKFO9lYe+QqOni7YN7A1vCqY2/mqskS8blkmuz8IiSmZOJelhoCABG6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jAw4Ojqauxwis6n060BNmzYNkyZN0t/OzMyEp6cnevbsWaU/fKfvnEbX1V1LXWYrs8WqVqswOnl0mdeBih8VD7/n/CqzRIumVqsRExOD0NBQKBQKc5djsdhPpmE/mcYS+6n4LAJRTScpQNWpUwdyuRx37twxaL9z5w7c3d1L3UapVEKpVBq1KxSKKn1BkMllZYajYnnavDLXkcllFvMCZk5V/bhVV+wn07CfTGNJ/WQpdRCZm6RJ5NbW1vD398eBAwf0bVqtFgcOHDA4pUdERET0LJN8Cm/SpEkYOXIkAgIC0KFDByxatAg5OTkYNWpUZdRHREREZHEkB6jBgwfj7t27mD59Om7fvo02bdrgp59+wnPPPVcZ9RERERFZnHJNIh8/fjzGjx9f0bUQERERVQs15rPwVNYqs25PREREz45Kv4yBpfCp7YML4y8gqzDLaJlWo8XNkzcRPyoeMrlxplRZq+BT26cqyiQiIqJqoMYEKABlhiC1Wo2buAm/5/z4Fl0iIiJ6ohpzCo+IiIioojBAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQkEQMUERERkUQMUEREREQSMUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUlkVdUHFEURAJCZmVnVhy6TWq1Gbm4uMjMzoVAozF2ORWIfmYb9ZBr2k2kssZ+KX7uLX8uJaqoqD1BZWVkAAE9Pz6o+NBERVZCsrCw4OTmZuwwisxHEKv4zQqvV4s8//4RKpYIgCFV56DJlZmbC09MT169fh6Ojo7nLsUjsI9Own0zDfjKNJfaTKIrIyspC3bp1IZNxFgjVXFU+AiWTyVC/fv2qPqxJHB0dLeZFylKxj0zDfjIN+8k0ltZPHHki4iRyIiIiIskYoIiIiIgkYoACoFQqMWPGDCiVSnOXYrHYR6ZhP5mG/WQa9hOR5arySeRERERE1R1HoIiIiIgkYoAiIiIikogBioiIiEgiBigiIiIiiRigiIiIiCSq8QFq6dKl8PLygo2NDTp27Ihjx46ZuySLEx8fj379+qFu3boQBAHff/+9uUuyOHPnzkX79u2hUqng5uaG/v37448//jB3WRZn+fLlaN26tf7K2p06dcKPP/5o7rIsXmRkJARBwIQJE8xdChH9pUYHqE2bNmHSpEmYMWMGEhMT4efnh7CwMKSlpZm7NIuSk5MDPz8/LF261NylWKy4uDhERETg119/RUxMDNRqNXr27ImcnBxzl2ZR6tevj8jISJw8eRInTpxA9+7d8dJLL+HcuXPmLs1iHT9+HFFRUWjdurW5SyGiR9To60B17NgR7du3x5IlSwDoPujY09MT77zzDj744AMzV2eZBEHA9u3b0b9/f3OXYtHu3r0LNzc3xMXFoWvXruYux6K5uLhg/vz5GDNmjLlLsTjZ2dlo164dli1bhk8++QRt2rTBokWLzF0WEaEGj0AVFhbi5MmTCAkJ0bfJZDKEhITgyJEjZqyMngUZGRkAdOGASqfRaLBx40bk5OSgU6dO5i7HIkVERKBv374Gr1NEZBmszF2AuaSnp0Oj0eC5554zaH/uuedw/vx5M1VFzwKtVosJEyagc+fOaNWqlbnLsThnz55Fp06dkJ+fDwcHB2zfvh2+vr7mLsvibNy4EYmJiTh+/Li5SyGiUtTYAEVUWSIiIpCcnIyEhARzl2KRmjVrhqSkJGRkZGDLli0YOXIk4uLiGKIecf36dbz33nuIiYmBjY2NucsholLU2ABVp04dyOVy3Llzx6D9zp07cHd3N1NVVN2NHz8eu3btQnx8POrXr2/uciyStbU1mjRpAgDw9/fH8ePHsXjxYkRFRZm5Mstx8uRJpKWloV27dvo2jUaD+Ph4LFmyBAUFBZDL5WaskIhq7Bwoa2tr+Pv748CBA/o2rVaLAwcOcD4GSSaKIsaPH4/t27fj4MGD8Pb2NndJ1YZWq0VBQYG5y7AoPXr0wNmzZ5GUlKT/CggIwPDhw5GUlMTwRGQBauwIFABMmjQJI0eOREBAADp06IBFixYhJycHo0aNMndpFiU7OxuXLl3S305NTUVSUhJcXFzQoEEDM1ZmOSIiIhAdHY0dO3ZApVLh9u3bAAAnJyfY2tqauTrLMW3aNPTu3RsNGjRAVlYWoqOjERsbi71795q7NIuiUqmM5s/Z29ujdu3anFdHZCFqdIAaPHgw7t69i+nTp+P27dto06YNfvrpJ6OJ5TXdiRMn0K1bN/3tSZMmAQBGjhyJNWvWmKkqy7J8+XIAQHBwsEH76tWrER4eXvUFWai0tDSMGDECt27dgpOTE1q3bo29e/ciNDTU3KUREUlSo68DRURERFQeNXYOFBEREVF5MUARERERScQARURERCQRAxQRERGRRAxQRERERBIxQBERERFJxABFREREJBEDFBEREZFEDFBEREREEjFAEREREUnEAEVEREQk0f8DlOdb2qDcOqQAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQnklEQVR4nO3dd3hUVeL/8ffMZNIbCYEECCmEFpoUG0hTXKLiCotKVVEsiIigrmV/a3cFYS2LBXCV5hdcFCwIKtKCAiogvSgt9EAgIUD6ZOb+/hgzMiSBBFLI8Hk9Tx7Mvefee+7JSD6ce865JsMwDERERESkxjNXdwVEREREpGIo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNhJtXjxxRcxmUxu22JjYxkyZEiV1mPatGmYTCb27t1bpdeVstHPR0SkfBTsLiEpKSmMGDGCJk2a4O/vj7+/P4mJiTzyyCNs2rSpuqt3Wdq7dy8mk6lMX6WFj9jYWEwmEz169Chx/3//+1/XOdauXVuJd3NhztcGY8eOre4qXlZmzZrF22+/Xd3VEJFLlFd1V0Cc5s+fT79+/fDy8mLQoEG0adMGs9nMb7/9xueff87EiRNJSUkhJiamuqtaaX7//XfM5kvr3xoRERF8/PHHbtveeOMNDh48yFtvvVWsbGl8fX1ZtmwZR44cITIy0m3fzJkz8fX1JS8vr+IqXgkGDBjAzTffXGx727ZtK+2ad911F/3798fHx6fSrlHTzJo1iy1btjBq1KjqroqIXIIU7C4Bu3fvpn///sTExLBkyRKioqLc9r/++uu8//77l1zoOVN2djYBAQEXdY5L8Zd3QEAAgwcPdtv2v//9jxMnThTbfi6dOnVizZo1zJ49m8cee8y1/eDBg/z444/06dOHuXPnVli9K0O7du3Kdc8VwWKxYLFYzlnGMAzy8vLw8/OrolqJiFy6Lt2kcBkZN24c2dnZTJ06tVioA/Dy8mLkyJFER0e7bf/tt9+4/fbbCQsLw9fXlw4dOjBv3jy3MkVjlFauXMnjjz9OREQEAQEB9OnTh2PHjhW71rfffkvnzp0JCAggKCiIW265ha1bt7qVGTJkCIGBgezevZubb76ZoKAgBg0aBMCPP/7IHXfcQcOGDfHx8SE6OprRo0eTm5t73nY4e4xdWR97lqUdALZu3cr111+Pn58fDRo04NVXX8XhcJy3XhXB19eXv/3tb8yaNctt+yeffEKtWrXo2bNnsWM2bdrEkCFDiI+Px9fXl8jISO677z7S09NdZc73mPRMv/zyC0lJSYSEhODv70/Xrl1ZuXJlhd5nbGwsvXr1YsWKFVx11VX4+voSHx/PjBkzXGXWrl2LyWRi+vTpxY5fuHAhJpOJ+fPnAyWPsSu6xsKFC+nQoQN+fn5MnjwZgD179nDHHXcQFhaGv78/11xzDQsWLHC7RnJyMiaTiU8//ZR//etfNGjQAF9fX2644QZ27drlVrZbt260bNmSTZs20bVrV/z9/UlISGDOnDkALF++nKuvvho/Pz+aNm3K4sWLi93ToUOHuO+++6hbty4+Pj60aNGCKVOmXFCdunXrxoIFC9i3b5/rZxwbG1uGn4yIXC7UY3cJmD9/PgkJCVx99dVlPmbr1q106tSJ+vXr88wzzxAQEMCnn35K7969mTt3Ln369HEr/+ijj1KrVi1eeOEF9u7dy9tvv82IESOYPXu2q8zHH3/MPffcQ8+ePXn99dfJyclh4sSJXHfddaxfv97tF0hhYSE9e/bkuuuu49///jf+/v4AfPbZZ+Tk5PDwww8THh7O6tWreeeddzh48CCfffZZudrl7EegAP/85z9JS0sjMDCwXO1w5MgRunfvTmFhoavcBx98UKW9PAMHDuQvf/kLu3fvplGjRoDzsdrtt9+O1WotVn7RokXs2bOHe++9l8jISLZu3coHH3zA1q1b+fnnnzGZTCU+KrbZbIwePRpvb2/XtqVLl3LTTTfRvn17XnjhBcxmM1OnTuX666/nxx9/5Kqrrjpv/XNycjh+/Hix7aGhoXh5/flXya5du7j99tsZOnQo99xzD1OmTGHIkCG0b9+eFi1a0KFDB+Lj4/n000+555573M41e/bsUoPumX7//XcGDBjAQw89xAMPPEDTpk05evQoHTt2JCcnh5EjRxIeHs706dP561//ypw5c4r9PzF27FjMZjNPPvkkJ0+eZNy4cQwaNIhffvnFrdyJEyfo1asX/fv354477mDixIn079+fmTNnMmrUKIYNG8bAgQMZP348t99+OwcOHCAoKAiAo0ePcs0112AymRgxYgQRERF8++23DB06lFOnThV7nHq+Ov2///f/OHnypNtQgKL/F0READCkWp08edIAjN69exfbd+LECePYsWOur5ycHNe+G264wWjVqpWRl5fn2uZwOIyOHTsajRs3dm2bOnWqARg9evQwHA6Ha/vo0aMNi8ViZGZmGoZhGKdPnzZCQ0ONBx54wK0OR44cMUJCQty233PPPQZgPPPMM8XqfGYdi4wZM8YwmUzGvn37XNteeOEF4+yPX0xMjHHPPfcUO77IuHHjDMCYMWNGudth1KhRBmD88ssvrm1paWlGSEiIARgpKSmlXvdst9xyixETE1Pm8jExMcYtt9xiFBYWGpGRkcYrr7xiGIZhbNu2zQCM5cuXu35Oa9ascR1XUlt+8sknBmD88MMPpV5v+PDhhsViMZYuXWoYhrM9GjdubPTs2dPtM5CTk2PExcUZN9544znrn5KSYgClfv30009u93p2/dLS0gwfHx/jiSeecG179tlnDavVamRkZLi25efnG6GhocZ9993n2lbULmf+fIqu8d1337nVs+hn/OOPP7q2nT592oiLizNiY2MNu91uGIZhLFu2zACM5s2bG/n5+a6y//nPfwzA2Lx5s2tb165dDcCYNWuWa9tvv/1mAIbZbDZ+/vln1/aFCxcagDF16lTXtqFDhxpRUVHG8ePH3erav39/IyQkxPUzLk+dyvv5E5HLix7FVrNTp04BJf+ru1u3bkRERLi+3nvvPQAyMjJYunQpd955J6dPn+b48eMcP36c9PR0evbsyc6dOzl06JDbuR588EG3R3OdO3fGbrezb98+wNk7lJmZyYABA1znO378OBaLhauvvpply5YVq9/DDz9cbNuZPWDZ2dkcP36cjh07YhgG69evv4AWclq2bBnPPvssjz76KHfddVe52+Gbb77hmmuuceuZioiIcD1CrgoWi4U777yTTz75BHBOmoiOjqZz584llj+zLfPy8jh+/DjXXHMNAOvWrSvxmBkzZvD+++8zbtw4unfvDsCGDRvYuXMnAwcOJD093dVO2dnZ3HDDDfzwww9leiT94IMPsmjRomJfiYmJbuUSExPd7ikiIoKmTZuyZ88e17Z+/fphs9n4/PPPXdu+//57MjMz6dev33nrEhcXV6xX75tvvuGqq67iuuuuc20LDAzkwQcfZO/evWzbts2t/L333uvWq1lU5zPrWXSO/v37u75v2rQpoaGhNG/e3K2Xvei/i443DIO5c+dy6623YhiG2/9XPXv25OTJk8V+jmWtk4hIafQotpoVPbLJysoqtm/y5MmcPn2ao0ePug1a37VrF4Zh8Nxzz/Hcc8+VeN60tDTq16/v+r5hw4Zu+2vVqgU4HzMB7Ny5E4Drr7++xPMFBwe7fe/l5UWDBg2Kldu/fz/PP/888+bNc527yMmTJ0s89/kcPHiQfv360alTJ958803X9vK0w759+0p81N20adMLqtPZTp486TaO0Nvbm7CwsGLlBg4cyIQJE9i4cSOzZs2if//+xcbCFcnIyOCll17if//7H2lpacWud7YNGzYwbNgwBgwYwOOPP+7aXvSzPfux59nnK/pMlKZx48alLtlyprM/a+D8vJ35eWjTpg3NmjVj9uzZDB06FHA+hq1du3apn8EzxcXFFdtW2s+4efPmrv0tW7YstZ5n/z9RpEGDBsV+RiEhIcXGvIaEhLgdf+zYMTIzM/nggw/44IMPSryPs3+uZa2TiEhpFOyqWUhICFFRUWzZsqXYvqJfUmevj1bUu/Lkk0+WOhYpISHB7fvSZhYahuF2zo8//rjYchyA2xgqcM5gPXuWrt1u58YbbyQjI4Onn36aZs2aERAQwKFDhxgyZMgFTVQoKCjg9ttvx8fHh08//dStHhfSDpXlsccec5sM0LVrV5KTk4uVu/rqq2nUqBGjRo0iJSWFgQMHlnrOO++8k1WrVvH3v/+dK664gsDAQBwOB0lJScXa8sSJE/Tt25cmTZrw4Ycfuu0rKjt+/HiuuOKKEq9VkeO0zvdZK9KvXz/+9a9/cfz4cYKCgpg3bx4DBgwo9lkrSUWMjSxrPUsrV9b/pwYPHlxqqG7duvUF1UlEpDQKdpeAW265hQ8//JDVq1eXaRB7fHw8AFartUw9KGVRNJi/Tp06F3zOzZs3s2PHDqZPn87dd9/t2r5o0aILrtfIkSPZsGEDP/zwA3Xr1nXbV552iImJcfVcnen333+/4Lqd6amnnnLrVT1X79eAAQN49dVXad68ealB68SJEyxZsoSXXnqJ559/3rW9pHtwOBwMGjSIzMxMFi9e7JrIUqToZxscHFxhn5eK0K9fP1566SXmzp1L3bp1OXXqlNsjz/KKiYkp8ef522+/ufZXpYiICIKCgrDb7RXa7qX18IqIgJY7uSQ89dRT+Pv7c99993H06NFi+8/+13qdOnXo1q0bkydPJjU1tVj5kpYxOZ+ePXsSHBzMa6+9hs1mu6BzFvU2nFlfwzD4z3/+U+76AEydOpXJkyfz3nvvlRh4y9MON998Mz///DOrV6922z9z5swLqtvZEhMT6dGjh+urffv2pZa9//77eeGFF3jjjTdKLVNSWwIlvnHgpZdeYuHChXzyySclPqJs3749jRo14t///neJj/wv5PNSEZo3b06rVq2YPXs2s2fPJioqii5dulzw+W6++WZWr17NTz/95NqWnZ3NBx98QGxsbLGxgJXNYrHQt29f5s6dW2KP/IW2e0BAwAUPaxARz6ceu0tA48aNmTVrFgMGDKBp06auN08YhkFKSgqzZs3CbDa7jWl77733uO6662jVqhUPPPAA8fHxHD16lJ9++omDBw+ycePGctUhODiYiRMnctddd9GuXTv69+9PREQE+/fvZ8GCBXTq1Il33333nOdo1qwZjRo14sknn+TQoUMEBwczd+7cCxofdPz4cYYPH05iYiI+Pj783//9n9v+Pn36EBAQUOZ2eOqpp/j4449JSkrisccecy13EhMTU+Wva4uJieHFF188Z5ng4GC6dOnCuHHjsNls1K9fn++//56UlBS3cps3b+aVV16hS5cupKWlFWunwYMHYzab+fDDD7npppto0aIF9957L/Xr1+fQoUMsW7aM4OBgvv766/PWe926dcXOD84ewWuvvfb8N16Cfv368fzzz+Pr68vQoUMvahHuZ555hk8++YSbbrqJkSNHEhYWxvTp00lJSWHu3LnVssD32LFjWbZsGVdffTUPPPAAiYmJZGRksG7dOhYvXkxGRka5z9m+fXtmz57N448/zpVXXklgYCC33nprJdReRGoiBbtLxG233cbmzZt54403+P7775kyZQomk4mYmBhuueUWhg0bRps2bVzlExMTWbt2LS+99BLTpk0jPT2dOnXq0LZtW7dHd+UxcOBA6tWrx9ixYxk/fjz5+fnUr1+fzp07c++99573eKvVytdff83IkSMZM2YMvr6+9OnThxEjRrjVvSyysrLIy8tj27ZtrlmwZ0pJSSEgIKDM7RAVFcWyZct49NFHGTt2LOHh4QwbNox69eq5Bu9fambNmsWjjz7Ke++9h2EY/OUvf+Hbb7+lXr16rjLp6ekYhsHy5ctZvnx5sXMUPR7u1q0bP/30E6+88grv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", "text/plain": [ "
" ] @@ -435,19 +339,30 @@ "\n", " qpi = info['qpi'][:, t]\n", "\n", - " plt.figure(figsize=(3,3))\n", - " plt.bar(np.arange(qpi[0].shape[0]), qpi[0])\n", - " plt.show()\n", + " # plt.figure(figsize=(3,3))\n", + " # plt.bar(np.arange(qpi[0].shape[0]), qpi[0])\n", + " # plt.show()\n", "\n", " pos_idx = (obs[0][0][0])\n", "\n", - " p = env.index_to_position(pos_idx)\n", + " p = index_to_position(pos_idx, env_info['maze'].shape)\n", "\n", " #env_state = jtu.tree_map(lambda x: print(x.shape), info['env'])\n", " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", - " ims.append(env.render_env(env_state))\n", + " ims.append(render(env_info, env_state))\n", "ims = [np.array(i) for i in ims]" ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "import imageio as io\n", + "\n", + "io.mimsave('tmp_dir/gif.gif', ims, format=\"GIF\", duration=1)" + ] } ], "metadata": { diff --git a/pymdp/jax/envs/generalized_tmaze.py b/pymdp/jax/envs/generalized_tmaze.py index b85406cf..3d52e51e 100644 --- a/pymdp/jax/envs/generalized_tmaze.py +++ b/pymdp/jax/envs/generalized_tmaze.py @@ -4,350 +4,438 @@ import matplotlib.pyplot as plt import io import PIL.Image -from matplotlib.offsetbox import OffsetImage, AnnotationBbox import jax.numpy as jnp +from matplotlib.lines import Line2D -def add_icon(ax, coord, img_path, zoom=0.1): - """Helper function to add an icon at a specified coordinate.""" - image = plt.imread(img_path) - im = OffsetImage(image, zoom=zoom) - ab = AnnotationBbox( - im, (coord[1], coord[0]), frameon=False, box_alignment=(0.5, 0.5) - ) - ax.add_artist(ab) +def position_to_index(position, shape): + """ + Maps the position in the grid to a flat index + Parameters + ---------- + position + Tuple of position (row, col) + shape + The shape of the grid (n_rows, n_cols) + + Returns + ---------- + index + A flattened index of position + """ + return position[0] * shape[1] + position[1] -class GeneralizedTMaze: +def index_to_position(index, shape): + """ + Maps the flat index to a position coordinate in the grid + Parameters + ---------- + shape + The shape of the grid (n_rows, n_cols) + index + A flattened index of position + + Returns + ---------- + position + Tuple of position (row, col) + """ + return index // shape[1], index % shape[1] - def __init__(self, M): - # Maze representation based on input matrix M - self.maze = np.array(M) - self.rows, self.cols = self.maze.shape - self.num_cues = int((np.max(M) - 2) // 3) +def parse_maze(maze): + """ + Parameters + ---------- + maze + a matrix representation of the environment + where indices have particular meaning: + 0: Empty space + 1: The initial position of the agent + 2: Walls + 3 + i: Cue for reward i + 4 + i: Potential reward location i 1 + 4 + i: Potential reward location i 2 + Returns + ---------- + env_info + a dictionary containing the environment information needed for + constructing the agent/environment matrices and visualization + purposes + """ - self.cue_positions = [] - self.reward_1_positions = [] - self.reward_2_positions = [] - for i in range(self.num_cues): - self.cue_positions.append( - tuple(np.argwhere(self.maze == 3 + 3 * i)[0]) - ) - self.reward_1_positions.append( - tuple(np.argwhere(self.maze == 4 + 3 * i)[0]) - ) - self.reward_2_positions.append( - tuple(np.argwhere(self.maze == 5 + 3 * i)[0]) - ) + maze = np.array(maze) + rows, cols = maze.shape - # Initialize agent's starting position (can be customized if required) - self.initial_position = tuple(np.argwhere(self.maze == 1)[0]) - self.current_position = self.initial_position - - # Actions: up, down, left, right - self.actions = [(-1, 0), (1, 0), (0, -1), (0, 1)] - - # Set reward locations - self.reward_locations = np.random.choice([0, 1], size=self.num_cues) - self.reward_indices = [] - self.no_reward_indices = [] - - for i in range(self.num_cues): - if self.reward_locations[i] == 0: - self.reward_indices += [ - self.reward_1_positions[i][0] * self.cols - + self.reward_1_positions[i][1] - ] - self.no_reward_indices += [ - self.reward_2_positions[i][0] * self.cols - + self.reward_2_positions[i][1] - ] - else: - self.reward_indices += [ - self.reward_2_positions[i][0] * self.cols - + self.reward_2_positions[i][1] - ] - self.no_reward_indices += [ - self.reward_1_positions[i][0] * self.cols - + self.reward_1_positions[i][1] - ] - - def position_to_index(self, position): - return position[0] * self.cols + position[1] - - def index_to_position(self, index): - return index // self.cols, index % self.cols - - def compute_transition_matrix(self): - num_states = self.rows * self.cols - num_actions = 4 - - P = np.zeros((num_states, num_actions), dtype=int) - - for s in range(num_states): - row, col = divmod(s, self.cols) - - for a in range(num_actions): - ns_row, ns_col = ( - row + self.actions[a][0], - col + self.actions[a][1], - ) - - if ( - ns_row < 0 - or ns_row >= self.rows - or ns_col < 0 - or ns_col >= self.cols - or self.maze[ns_row, ns_col] == 1 - ): - P[s, a] = s - else: - P[s, a] = ns_row * self.cols + ns_col - - B = np.zeros((num_states, num_states, num_actions)) - for s in range(num_states): - for a in range(num_actions): - ns = P[s, a] - B[ns, s, a] = 1 - - assert np.all(np.logical_or(B == 0, B == 1)) - assert np.allclose(B.sum(axis=0), 1) - - reward_transitions = [] - for i in range(self.num_cues): - reward_transition = np.eye(2).reshape(2, 2, 1) - reward_transitions.append(reward_transition) - - combined_transition = np.empty(1 + self.num_cues, dtype=object) - combined_transition[0] = B - for i, reward_transition in enumerate(reward_transitions): - combined_transition[1 + i] = reward_transition - - return combined_transition - - def compute_observation_likelihood(self): - # Positional observation likelihood - - num_states = self.rows * self.cols - position_likelihood = np.zeros((num_states, num_states)) - for i in range(num_states): - # Agent can be certain about its position regardless of reward state - position_likelihood[i, i] = 1 - - cue_likelihoods = [] - for i in range(self.num_cues): - # Cue observation likelihood, cue_position = (11, 5) - # obs (nothing, left location, right location) - # state: (current position, reward i position) - cue_likelihood = np.zeros((3, num_states, 2)) - cue_likelihood[0, :, :] = 1 # Default: no info about reward - - cue_state_idx = self.position_to_index(self.cue_positions[i]) - reward_1_state_idx = self.position_to_index( - self.reward_1_positions[i] - ) - reward_2_state_idx = self.position_to_index( - self.reward_2_positions[i] - ) + num_cues = int((np.max(maze) - 2) // 3) - cue_likelihood[:, cue_state_idx, 0] = [0, 1, 0] # Reward in r1 - cue_likelihood[:, cue_state_idx, 1] = [0, 0, 1] # Reward in r2 - cue_likelihoods.append(cue_likelihood) + cue_positions = [] + reward_1_positions = [] + reward_2_positions = [] + for i in range(num_cues): + cue_positions.append(tuple(np.argwhere(maze == 3 + 3 * i)[0])) + reward_1_positions.append(tuple(np.argwhere(maze == 4 + 3 * i)[0])) + reward_2_positions.append(tuple(np.argwhere(maze == 5 + 3 * i)[0])) - # Reward observation likelihood, r1 = (4, 7), r2 = (8, 7) - reward_likelihoods = [] + # Initialize agent's starting position (can be customized if required) + initial_position = tuple(np.argwhere(maze == 1)[0]) - for i in range(self.num_cues): - # observation (nothing, no reward, reward) - reward_likelihood = np.zeros((3, num_states, 2)) - reward_likelihood[0, :, :] = 1 # Default: no reward + # Actions: up, down, left, right + actions = [(-1, 0), (1, 0), (0, -1), (0, 1)] - reward_1_state_idx = ( - self.reward_1_positions[i][0] * self.cols - + self.reward_1_positions[i][1] + # Set reward location randomly + reward_locations = np.random.choice([0, 1], size=num_cues) + reward_indices = [] + no_reward_indices = [] + + for i in range(num_cues): + if reward_locations[i] == 0: + reward_indices += position_to_index( + reward_1_positions[i], maze.shape + ) + no_reward_indices += position_to_index( + reward_2_positions[i], maze.shape ) - reward_2_state_idx = ( - self.reward_2_positions[i][0] * self.cols - + self.reward_2_positions[i][1] + else: + reward_indices += position_to_index( + reward_2_positions[i], maze.shape + ) + no_reward_indices += position_to_index( + reward_1_positions[i], maze.shape ) - # Reward in (8,4) if reward state is 0 - reward_likelihood[:, reward_1_state_idx, 0] = [0, 1, 0] - # Reward in (8,8) if reward state is 0 - reward_likelihood[:, reward_2_state_idx, 0] = [0, 0, 1] - # Reward in (8,4) if reward state is 0 - reward_likelihood[:, reward_1_state_idx, 1] = [0, 0, 1] - # Reward in (8,8) if reward state is 0 - reward_likelihood[:, reward_2_state_idx, 1] = [0, 1, 0] - reward_likelihoods.append(reward_likelihood) - - combined_likelihood = np.empty(1 + 2 * self.num_cues, dtype=object) - combined_likelihood[0] = position_likelihood - for j, cue_likelihood in enumerate(cue_likelihoods): - combined_likelihood[1 + j] = cue_likelihood - for j, reward_likelihood in enumerate(reward_likelihoods): - combined_likelihood[1 + self.num_cues + j] = reward_likelihood - - return combined_likelihood - - def compute_exact_D_vector(self): - """ - Computes the prior over state, expecting perfect knowledge - """ - D = [None for _ in range(1 + self.num_cues)] - - D[0] = np.zeros(self.cols * self.rows) - # Position of the agent when starting the environment - idx = self.position_to_index(self.initial_position) - D[0][idx] = 1 - - # Cue state i.e. where is the reward - for i in range(self.num_cues): - r1 = self.reward_locations[i] - D[1 + i] = np.zeros(2) - D[1 + i][r1] = 1 - - return D - - def get_special_states_indices(self): - """Return the indices of the cue state, reward_1 state, and reward_2 state from matrix M.""" - - cue_idx = np.argwhere(self.maze == 4)[0] - reward_1_idx = np.argwhere(self.maze == 2)[0] - reward_2_idx = np.argwhere(self.maze == 3)[0] - - rows, cols = self.maze.shape - cue_linear_idx = cue_idx[0] * cols + cue_idx[1] - reward_1_linear_idx = reward_1_idx[0] * cols + reward_1_idx[1] - reward_2_linear_idx = reward_2_idx[0] * cols + reward_2_idx[1] - - return cue_linear_idx, reward_1_linear_idx, reward_2_linear_idx - - def render_env(self, env_state): - """ - Render the environment provided that the env state from the PyMDP equivalent - is provided - """ - current_position = env_state.state[0] - current_position = self.index_to_position(current_position) - - # Create a copy of the maze for rendering - maze_copy = np.copy(self.maze) - - # Set all states not in [1] to be 0 (accessible state) - mask = np.isin(maze_copy, [2], invert=True) - maze_copy[mask] = 0 - - plt.imshow(maze_copy, cmap="gray_r", origin="lower") - plt.scatter( - current_position[1], - current_position[0], - color="green", - marker="s", - s=100, - label="Agent", + return { + "maze": maze, + "actions": actions, + "num_cues": num_cues, + "cue_positions": cue_positions, + "reward_indices": reward_indices, + "no_reward_indices": no_reward_indices, + "initial_position": initial_position, + "reward_1_positions": reward_1_positions, + "reward_2_positions": reward_2_positions, + "reward_locations": reward_locations, + } + + +def generate_A(maze_info): + """ + Parameters + ---------- + maze_info: + info dict returned from `parse_maze` which contains the information + about the reward locations, initial positions, etc. + Returns + ---------- + A matrix: + The likelihood mapping for the generalized T-maze. Maps the observations + of (position, *cue_i, *reward_i) to states (position, reward) + A dependencies: + The state dependencies that generate observation for modality i + """ + # Positional observation likelihood + maze = maze_info["maze"] + rows, cols = maze.shape + num_cues = maze_info["num_cues"] + cue_positions = maze_info["cue_positions"] + reward_1_positions = maze_info["reward_1_positions"] + reward_2_positions = maze_info["reward_2_positions"] + + num_states = rows * cols + position_likelihood = np.zeros((num_states, num_states)) + for i in range(num_states): + # Agent can be certain about its position regardless of reward state + position_likelihood[i, i] = 1 + + cue_likelihoods = [] + for i in range(num_cues): + # Cue observation likelihood, cue_position = (11, 5) + # obs (nothing, left location, right location) + # state: (current position, reward i position) + cue_likelihood = np.zeros((3, num_states, 2)) + cue_likelihood[0, :, :] = 1 # Default: no info about reward + + cue_state_idx = position_to_index(cue_positions[i], maze.shape) + reward_1_state_idx = position_to_index( + reward_1_positions[i], maze.shape + ) + reward_2_state_idx = position_to_index( + reward_2_positions[i], maze.shape ) - c = plt.get_cmap("tab20")(0) + cue_likelihood[:, cue_state_idx, 0] = [0, 1, 0] # Reward in r1 + cue_likelihood[:, cue_state_idx, 1] = [0, 0, 1] # Reward in r2 + cue_likelihoods.append(cue_likelihood) - plt.scatter( - self.cue_positions[0][1], - self.cue_positions[0][0], - color=c, - s=200, - label="Reward of Interest", - ) - plt.scatter( - self.cue_positions[0][1], - self.cue_positions[0][0], - marker="o", - color="blue", - s=50, - label="Cue", - ) - plt.scatter( - self.reward_1_positions[0][1], - self.reward_1_positions[0][0], - color=c, - s=200, - ) - plt.scatter( - self.reward_1_positions[0][1], - self.reward_1_positions[0][0], - marker="o", - color="red", - s=50, - label="Reward 1", + # Reward observation likelihood, r1 = (4, 7), r2 = (8, 7) + reward_likelihoods = [] + + for i in range(num_cues): + # observation (nothing, no reward, reward) + reward_likelihood = np.zeros((3, num_states, 2)) + reward_likelihood[0, :, :] = 1 # Default: no reward + + reward_1_state_idx = position_to_index( + reward_1_positions[i], maze.shape ) - plt.scatter( - self.reward_2_positions[0][1], - self.reward_2_positions[0][0], - color=c, - s=200, + + reward_2_state_idx = position_to_index( + reward_2_positions[i], maze.shape ) - plt.scatter( - self.reward_2_positions[0][1], - self.reward_2_positions[0][0], + + # Reward in (8,4) if reward state is 0 + reward_likelihood[:, reward_1_state_idx, 0] = [0, 1, 0] + # Reward in (8,8) if reward state is 0 + reward_likelihood[:, reward_2_state_idx, 0] = [0, 0, 1] + # Reward in (8,4) if reward state is 0 + reward_likelihood[:, reward_1_state_idx, 1] = [0, 0, 1] + # Reward in (8,8) if reward state is 0 + reward_likelihood[:, reward_2_state_idx, 1] = [0, 1, 0] + reward_likelihoods.append(reward_likelihood) + + combined_likelihood = np.empty(1 + 2 * num_cues, dtype=object) + combined_likelihood[0] = position_likelihood + for j, cue_likelihood in enumerate(cue_likelihoods): + combined_likelihood[1 + j] = cue_likelihood + for j, reward_likelihood in enumerate(reward_likelihoods): + combined_likelihood[1 + num_cues + j] = reward_likelihood + + likelihood_dependencies = ( + [[0]] + + [[0, 1 + i] for i in range(num_cues)] + + [[0, 1 + i] for i in range(num_cues)] + ) + + return combined_likelihood, likelihood_dependencies + + +def generate_B(maze_info): + """ + Parameters + ---------- + maze_info: + info dict returned from `parse_maze` which contains the information + about the reward locations, initial positions, etc. + Returns + ---------- + B matrix: + The transition matrix for the generalized T-maze. The position state + is transitioned according to the maze layout, for the other states + the transition matrix is the identity. + B dependencies: + The state dependencies that generate transition for state i + """ + + maze = maze_info["maze"] + actions = maze_info["actions"] + num_cues = maze_info["num_cues"] + + rows, cols = maze.shape + num_states = rows * cols + num_actions = len(actions) + + P = np.zeros((num_states, num_actions), dtype=int) + + for s in range(num_states): + row, col = divmod(s, cols) + + for a in range(num_actions): + ns_row, ns_col = row + actions[a][0], col + actions[a][1] + + if ( + ns_row < 0 + or ns_row >= rows + or ns_col < 0 + or ns_col >= cols + or maze[ns_row, ns_col] == 1 + ): + P[s, a] = s + else: + P[s, a] = position_to_index((ns_row, ns_col), maze.shape) + + B = np.zeros((num_states, num_states, num_actions)) + for s in range(num_states): + for a in range(num_actions): + ns = P[s, a] + B[ns, s, a] = 1 + + assert np.all(np.logical_or(B == 0, B == 1)) + assert np.allclose(B.sum(axis=0), 1) + + reward_transitions = [] + for i in range(num_cues): + reward_transition = np.eye(2).reshape(2, 2, 1) + reward_transitions.append(reward_transition) + + combined_transition = np.empty(1 + num_cues, dtype=object) + combined_transition[0] = B + for i, reward_transition in enumerate(reward_transitions): + combined_transition[1 + i] = reward_transition + + transition_dependencies = ([[0]] + [[i + 1] for i in range(num_cues)],) + + return combined_transition, transition_dependencies + + +def generate_D(maze_info): + """ + Parameters + ---------- + maze_info: + info dict returned from `parse_maze` which contains the information + about the reward locations, initial positions, etc. + Returns + ---------- + D vector: + The initial state for the environment, i.e. each state is a one hot + based on the environment initial conditions. + """ + maze = maze_info["maze"] + rows, cols = maze.shape + num_cues = maze_info["num_cues"] + reward_locations = maze_info["reward_locations"] + initial_position = maze_info["initial_position"] + + D = [None for _ in range(1 + num_cues)] + + D[0] = np.zeros(cols * rows) + # Position of the agent when starting the environment + D[0][position_to_index(initial_position, maze.shape)] = 1 + + # Cue state i.e. where is the reward + for i in range(num_cues): + r1 = reward_locations[i] + D[1 + i] = np.zeros(2) + D[1 + i][r1] = 1 + + return D + + +def render(maze_info, env_state): + """ + Plots and returns the rendered environment. + Parameters + ---------- + maze_info: + info dict returned from `parse_maze` which contains the information + about the reward locations, initial positions, etc. + env_state: + The environment state as a GeneralizedTMazeEnv instance + Returns + ---------- + image: + A render of the environment. + """ + maze = maze_info["maze"].copy() + num_cues = maze_info["num_cues"] + cue_positions = maze_info["cue_positions"] + reward_1_positions = maze_info["reward_1_positions"] + reward_2_positions = maze_info["reward_2_positions"] + + current_position = env_state.state[0] + current_position = index_to_position(current_position, maze.shape) + + # Set all states not in [1] to be 0 (accessible state) + mask = np.isin(maze, [2], invert=True) + maze[mask] = 0 + + plt.imshow(maze, cmap="gray_r", origin="lower") + + cmap = plt.get_cmap("tab10") + plt.scatter( + [ci[1] for ci in cue_positions], + [ci[0] for ci in cue_positions], + color=[cmap(i) for i in range(len(cue_positions))], + s=200, + alpha=0.5, + ) + plt.scatter( + [ci[1] for ci in cue_positions], + [ci[0] for ci in cue_positions], + color="black", + s=50, + label="Cue", + marker="x", + ) + + plt.scatter( + [ri[1] for ri in reward_1_positions], + [ri[0] for ri in reward_1_positions], + color=[cmap(i) for i in range(len(cue_positions))], + s=200, + alpha=0.5, + ) + plt.scatter( + [ri[1] for ri in reward_1_positions], + [ri[0] for ri in reward_1_positions], + marker="o", + color="red", + s=50, + label="Positive", + ) + plt.scatter( + [ri[1] for ri in reward_2_positions], + [ri[0] for ri in reward_2_positions], + color=[cmap(i) for i in range(len(cue_positions))], + s=200, + alpha=0.5, + ) + plt.scatter( + [ri[1] for ri in reward_2_positions], + [ri[0] for ri in reward_2_positions], + marker="o", + color="blue", + s=50, + label="Negative", + ) + + plt.scatter( + current_position[1], + current_position[0], + c="tab:green", + marker="s", + s=100, + label="Agent", + ) + + plt.title("Generalized T-Maze Environment") + + handles, labels = plt.gca().get_legend_handles_labels() + for i in range(num_cues): + if i == 0: + label = "Reward set" + else: + label = f"Distractor {i} set" + patch = Line2D( + [0], + [0], marker="o", - color="red", - s=50, - label="Reward 2", + markersize=10, + markerfacecolor=cmap(i), + markeredgecolor=cmap(i), + label=label, + alpha=0.5, + linestyle="", ) + handles.append(patch) - for i in range(1, self.num_cues): - c = plt.get_cmap("tab20")(i) - plt.scatter( - self.cue_positions[i][1], - self.cue_positions[i][0], - color=c, - s=200, - ) - plt.scatter( - self.cue_positions[i][1], - self.cue_positions[i][0], - color="blue", - s=50, - ) - plt.scatter( - self.reward_1_positions[i][1], - self.reward_1_positions[i][0], - color=c, - s=200, - ) - plt.scatter( - self.reward_1_positions[i][1], - self.reward_1_positions[i][0], - color="red", - s=50, - ) - plt.scatter( - self.reward_2_positions[i][1], - self.reward_2_positions[i][0], - color=c, - s=200, - ) - plt.scatter( - self.reward_2_positions[i][1], - self.reward_2_positions[i][0], - color="red", - s=50, - ) - - plt.title("Generalized T-Maze Environment") - plt.legend(loc="upper left", bbox_to_anchor=(1, 1)) + plt.legend( + handles=handles, loc="upper left", bbox_to_anchor=(1, 1), fancybox=True + ) + plt.axis("off") + plt.tight_layout() - # Capture the current figure as an image - buf = io.BytesIO() - plt.savefig(buf, format="png") - buf.seek(0) - image = PIL.Image.open(buf) + # Capture the current figure as an image + buf = io.BytesIO() + plt.savefig(buf, format="png") + buf.seek(0) + image = PIL.Image.open(buf) - plt.grid("on") - plt.show() + plt.show() - return image + return image class GeneralizedTMazeEnv(PyMDPEnv): @@ -356,41 +444,15 @@ class GeneralizedTMazeEnv(PyMDPEnv): similar to the original T-maze. """ - def __init__(self, environment_description): - """ - Parameters - ---------- - environment_description - The environment description is a matrix representation of the environment - where indices have particular meaning: - 0: Empty space - 1: The initial position of the agent - 2: Walls - 3 + i: Cue for reward i - 4 + i: Potential reward location i 1 - 4 + i: Potential reward location i 2 - """ - - env = GeneralizedTMaze(environment_description) - A = [ - jnp.expand_dims(jnp.array(a), 0) - for a in env.compute_observation_likelihood() - ] - B = [ - jnp.expand_dims(jnp.array(b), 0) - for b in env.compute_transition_matrix() - ] - D = [ - jnp.expand_dims(jnp.array(d), 0) - for d in env.compute_exact_D_vector() - ] - - params = {"A": A, "B": B, "D": D} - dependencies = { - "A": [[0]] - + [[0, 1 + i] for i in range(len(D) - 1)] - + [[0, 1 + i] for i in range(len(D) - 1)], - "B": [[0]] + [[i + 1] for i in range(len(D) - 1)], + def __init__(self, env_info): + A, A_dependencies = generate_A(env_info) + B, B_dependencies = generate_B(env_info) + D = generate_D(env_info) + params = { + "A": [jnp.expand_dims(jnp.array(x), 0) for x in A], + "B": [jnp.expand_dims(jnp.array(x), 0) for x in B], + "D": [jnp.expand_dims(jnp.array(x), 0) for x in D], } + dependencies = {"A": A_dependencies, "B": B_dependencies} PyMDPEnv.__init__(self, params, dependencies) From 8bd70d81c46c4589309466b8c676f839987ffcc2 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Wed, 12 Jun 2024 09:37:13 +0200 Subject: [PATCH 089/196] intermediate state --- examples/generalized_tmaze_demo.ipynb | 62 +++++++++++++++------------ pymdp/jax/envs/generalized_tmaze.py | 5 ++- 2 files changed, 38 insertions(+), 29 deletions(-) diff --git a/examples/generalized_tmaze_demo.ipynb b/examples/generalized_tmaze_demo.ipynb index 72740fdb..9b5377ec 100644 --- a/examples/generalized_tmaze_demo.ipynb +++ b/examples/generalized_tmaze_demo.ipynb @@ -58,9 +58,16 @@ "execution_count": 2, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0], [1], [2]]\n" + ] + }, { "data": { - "image/png": "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r7BazQjx6quvsmTJEqKjo2nbtm2J17Zarfzvf//j119/pWXLlowbN45Jkya5lfH29ubbb7+lVq1a3HLLLbRq1YoJEya46ta3b18SEhLo3r07ERERfPTRR1gsFhYsWECNGjXo0qULPXr0oGHDhsydO/eC2uiWW26hbdu2fPHFF6xYsYK2bdue832dq30sFgtfffUVXbp04e6776ZJkyYMGjSIffv2Ubt27RLf08WwGEY5LpAjIiLiwXJyckhKSjrnWmjnVNyzYq1e5kSJrDTAMHvq2t1pjssToWyfO92KFRERqSzhjaDrU+YTJfat+XOdOqvNnCgR09G8/VrOPXVy+VCwExERqUx2X6jXAeq2/3OdOpu3Ofu1gidKiOdTsBMREakKFssfT5So2MWH5fKiyRMiIiIiHkLBTkREpIw071AqU1k+bwp2IiIipWS32wHIysqq4prI5aTw81b4+TsXjbETEREpJZvNRmhoKCkpKQD4+/uX+IxVkYtlGAZZWVmkpKQQGhpa4lqDZ9I6diIiImVgGAZHjhwhPT29qqsil4nQ0FAiIyNL9Z8IBTsREZEL4HA4yM/Pr+pqiIez2+2l6qkrpGAnIiIi4iE0eUJERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4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", + "image/png": "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3bt3Z8qUKaSkpBQrX9I0JufSq1cvgoODefXVV7HZbBe0z6LWhtPraxgG//73v8tcH4Bp06YxZcoU3nvvvRIDb1muwy233MIvv/zCmjVr3NbPmjXrgup2pri4OHr27On6dOjQodSy9957L88//zxvvPFGqWVKupZAiW8cePHFF1m0aBGffPJJiY8oO3ToQOPGjfnXv/5V4iP/C7lfykOLFi1o3bo1c+bMYc6cOdSpU4euXbte8P5uueUW1qxZw88//+xalp2dzQcffEBMTEyxvoAVzWKx0K9fP+bNm1dii/yFXveAgIAL7tYgIp5PLXaXgCZNmjB79mwGDx5Ms2bNXG+eMAyD5ORkZs+ejdlsduvT9t5773HdddfRunVr7rvvPho1asTRo0f5+eefOXjwIBs3bixTHYKDg5k0aRJ33HEH7du3Z9CgQURERLB//36+/vprOnfuzLvvvnvWfTRv3pzGjRvz+OOPc+jQIYKDg5k3b94F9Q86fvw4Dz74IHFxcfj4+PDf//7XbX3fvn0JCAg47+vw5JNP8vHHHxMfH88jjzzimu4kOjq60l/XFh0dzQsvvHDWMsHBwXTt2pXXX38dm81GvXr1+P7770lOTnYrt3nzZl5++WW6du1Kampqses0bNgwzGYzH374ITfffDMtW7bk7rvvpl69ehw6dIhly5YRHBzMV199dc56r1+/vtj+wdkieO211577xEuQkJDAc889h6+vLyNGjLioSbiffvppPvnkE26++WZGjx5NWFgYM2bMIDk5mXnz5lXJBN/jx49n2bJlXH311dx3333ExcWRnp7O+vXrWbJkCenp6WXeZ4cOHZgzZw6PPvooV155JYGBgdx2220VUHsRqY4U7C4Rffr0YfPmzbzxxht8//33TJ06FZPJRHR0NLfeeisjR46kbdu2rvJxcXGsW7eOF198kenTp5OWlkatWrVo166d26O7shgyZAh169Zl/PjxTJgwgfz8fOrVq0eXLl24++67z7m91Wrlq6++YvTo0YwbNw5fX1/69u3LqFGj3Op+PrKyssjLyyMpKck1CvZ0ycnJBAQEnPd1qFOnDsuWLePhhx9m/PjxhIeHM3LkSOrWrevqvH+pmT17Ng8//DDvvfcehmFw00038e2331K3bl1XmbS0NAzDYMWKFaxYsaLYPooeD3fv3p2ff/6Zl19+mXfffZesrCwiIyO5+uqreeCBB86rPp988olrRO/p7rrrrosKdv/4xz/Iyck5r9GwZ1O7dm1Wr17NU089xTvvvENeXh5t2rThq6++4tZbb72ofV9MndasWcNLL73E559/zvvvv094eDgtW7bktddeu6B9PvjggyQmJjJt2jTeeustoqOjFexExMVkqFeuiIiIiEdQHzsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQXlVdARERkerIbrdjs9mquhri4axWKxaL5bzLK9iJiIiUgWEYHDlyhIyMjKquilwmQkNDiYyMxGQynbOsgp2IiEgZFIW6WrVq4e/vf14/bEUuhGEY5OTkkJqaCkCdOnXOuY2CnYiIyHmy2+2uUBceHl7V1ZHLgJ+fHwCpqanUqlXrnI9lNXhCRETkPBX1qfP396/imsjlpOh+O58+nQp2IiIiZaTHr1KZynK/KdiJiIiIeAgFOxEREREPoWAnIiJSiQoKCi5q/cU4cuQIDz/8MI0aNcLHx4eoqChuu+02fvjhhwo7plQuBTsREZFKMmfOHFq3bs2BAwdKXH/gwAFat27NnDlzyv3Ye/fupUOHDixdupQJEyawefNmvvvuO3r06MFDDz1U7seTqqFgJyIiUgkKCgp47rnn2LFjB927dy8W7g4cOED37t3ZsWMHzz33XLm33D344IOYTCbWrFlDv379aNq0KS1btuTRRx/ll19+Ye/evZhMJhITE13bZGRkYDKZWL58uWvZli1buPnmmwkMDKR27drccccdHD9+vFzrKhdOwU5ERKQSeHt7s2TJEho1asSePXvcwl1RqNuzZw+NGjViyZIleHt7l9ux09PT+e6773jooYcICAgotj40NPS89pORkcH1119Pu3btWLduHd999x1Hjx5l4MCB5VZXuTgKdiIiIpUkKiqK5cuXu4W71atXu4W65cuXExUVVa7H3bVrF4Zh0Lx584vaz7vvvku7du149dVXad68Oe3atWPq1KksW7aMHTt2lFNt5WLozRMiIiKVqCjcFYW5zp07A1RYqAPnq6nKw8aNG1m2bBmBgYHF1u3evZumTZuWy3HkwinYiYiIVLKoqCg+/vhj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+vbbb8dqtZKVlQXAwYMHMZlM7Nq1C4CPP/6Yjh07EhQURGRkJEOGDCE1NdW1/fLlyzGZTHz77bd06NABHx8fVq5cSXZ2NnfeeSeBgYHUqVOHN95445zntnHjRnr06EFQUBDBwcF06NCBdevWudavXLmSLl264OfnR1RUFKNHjyY72/m4u3v37uzbt4+xY8e6WjWrKwU7ERGRCpRnc7AvLZsa/tYybVfD38q+tGzybI4KqdeWLVtYvXo13t7ermXjxo1j5syZTJ48ma1btzJ27FiGDRvGihUrAOjWrRvLly8HnIH1p59+IjQ0lJUrVwKwYsUK6tWrR2xsLAA2m42XX36ZjRs38uWXX7J3716GDx9erC5PP/0048ePZ9u2bbRp04YnnniCFStWMH/+fL7//nuWL1/O+vXrz3o+Q4cOpX79+qxdu5bffvuNp59+GqvVec13795NfHw8/fr1Y9OmTcyZM4eVK1cyatQoAD7//HPq16/PSy+9REpKCikpKRd1bauSRsWKiIhUoAK7A7vDwNu7bFOYWMwmbH/Mc+dH+Ux/snDhQgIDAyksLCQ/Px+z2cy7774LQH5+Pq+++ipLlizh2muvBaBRo0asXLmSKVOm0K1bN7p3785HH32E3W5ny5YteHt7k5CQwPLly4mPj2f58uV069bNdbx77rnH9fdGjRoxceJErrzySrKysggMDHSte+mll7jxxhsByMrK4qOPPuK///0vN9xwAwAzZsygfv36Zz23/fv388QTT9C8eXMAmjRp4lo3btw4hg4d6hp80aRJEyZOnEi3bt2YNGkSYWFhWCwWV8tidaYWOxERkQrkbTFjMZsotJet5a1ofjtvS/n9qO7RoweJiYn8+uuv3HXXXdx9993069cPgF27dpGTk8ONN95IYGCg6zNz5kx2794NQJcuXTh16hQbNmxgxYoVrrBX1Iq3YsUKunfv7jreb7/9xm233UaDBg0ICgpyhb79+/e71atjx46uv+/evZuCggKuvvpq17KwsDCaNWt21nN79NFHuffee+nZsyfjx4931Rmcj2mnT5/udl69evXC4XCQnJxc9gt5CVOwExERqUC+VjPR4QGcyLGVabsTOTaiwwPwtZbfj+qAgABiY2Np27YtU6dO5ddff+Wjjz4CcPWT+/rrr0lMTHR9kpKSXP3sQkNDadu2LcuXL3eFuK5d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", "text/plain": [ "
" ] @@ -73,10 +80,10 @@ "M = np.zeros((3, 5))\n", "\n", "# Set the reward locations\n", - "M[0,0] = 4\n", - "M[0,1] = 5\n", - "M[0,3] = 7\n", - "M[0,4] = 8\n", + "M[0,1] = 4\n", + "M[1,1] = 5\n", + "M[1,3] = 7\n", + "M[0,3] = 8\n", "\n", "# Set the cue locations\n", "M[2,0] = 3\n", @@ -110,8 +117,9 @@ "A_dependencies = tmaze_env.dependencies[\"A\"]\n", "B_dependencies = tmaze_env.dependencies[\"B\"]\n", "\n", + "# [position], [cue], [reward]\n", "C = [jnp.zeros(a.shape[:2]) for a in A]\n", - "C[1] = C[1].at[1].set(1.0)\n", + "C[2] = C[2].at[1].set(1.0)\n", "\n", "D = [jnp.ones(b.shape[:2]) for b in B]\n", "\n", @@ -153,12 +161,12 @@ "output_type": "stream", "text": [ "Time t=0\n", - "[Array([[11]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[13]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "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r7BazQjx6quvsmTJEqKjo2nbtm2J17Zarfzvf//j119/pWXLlowbN45Jkya5lfH29ubbb7+lVq1a3HLLLbRq1YoJEya46ta3b18SEhLo3r07ERERfPTRR1gsFhYsWECNGjXo0qULPXr0oGHDhsydO/eC2uiWW26hbdu2fPHFF6xYsYK2bdue832dq30sFgtfffUVXbp04e6776ZJkyYMGjSIffv2Ubt27RLf08WwGEY5LpAjIiLiwXJyckhKSjrnWmjnVNyzYq1e5kSJrDTAMHvq2t1pjssToWyfO92KFRERqSzhjaDrU+YTJfat+XOdOqvNnCgR09G8/VrOPXVy+VCwExERqUx2X6jXAeq2/3OdOpu3Ofu1gidKiOdTsBMREakKFssfT5So2MWH5fKiyRMiIiIiHkLBTkREpIw071AqU1k+bwp2IiIipWS32wHIysqq4prI5aTw81b4+TsXjbETEREpJZvNRmhoKCkpKQD4+/uX+IxVkYtlGAZZWVmkpKQQGhpa4lqDZ9I6diIiImVgGAZHjhwhPT29qqsil4nQ0FAiIyNL9Z8IBTsREZEL4HA4yM/Pr+pqiIez2+2l6qkrpGAnIiIi4iE0eUJERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4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", + "image/png": "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3bt3Z8qUKaSkpBQrX9I0JufSq1cvgoODefXVV7HZbBe0z6LWhtPraxgG//73v8tcH4Bp06YxZcoU3nvvvRIDb1muwy233MIvv/zCmjVr3NbPmjXrgup2pri4OHr27On6dOjQodSy9957L88//zxvvPFGqWVKupZAiW8cePHFF1m0aBGffPJJiY8oO3ToQOPGjfnXv/5V4iP/C7lfykOLFi1o3bo1c+bMYc6cOdSpU4euXbte8P5uueUW1qxZw88//+xalp2dzQcffEBMTEyxvoAVzWKx0K9fP+bNm1dii/yFXveAgIAL7tYgIp5PLXaXgCZNmjB79mwGDx5Ms2bNXG+eMAyD5ORkZs+ejdlsduvT9t5773HdddfRunVr7rvvPho1asTRo0f5+eefOXjwIBs3bixTHYKDg5k0aRJ33HEH7du3Z9CgQURERLB//36+/vprOnfuzLvvvnvWfTRv3pzGjRvz+OOPc+jQIYKDg5k3b94F9Q86fvw4Dz74IHFxcfj4+PDf//7XbX3fvn0JCAg47+vw5JNP8vHHHxMfH88jjzzimu4kOjq60l/XFh0dzQsvvHDWMsHBwXTt2pXXX38dm81GvXr1+P7770lOTnYrt3nzZl5++WW6du1Kampqses0bNgwzGYzH374ITfffDMtW7bk7rvvpl69ehw6dIhly5YRHBzMV199dc56r1+/vtj+wdkieO211577xEuQkJDAc889h6+vLyNGjLioSbiffvppPvnkE26++WZGjx5NWFgYM2bMIDk5mXnz5lXJBN/jx49n2bJlXH311dx3333ExcWRnp7O+vXrWbJkCenp6WXeZ4cOHZgzZw6PPvooV155JYGBgdx2220VUHsRqY4U7C4Rffr0YfPmzbzxxht8//33TJ06FZPJRHR0NLfeeisjR46kbdu2rvJxcXGsW7eOF198kenTp5OWlkatWrVo166d26O7shgyZAh169Zl/PjxTJgwgfz8fOrVq0eXLl24++67z7m91Wrlq6++YvTo0YwbNw5fX1/69u3LqFGj3Op+PrKyssjLyyMpKck1CvZ0ycnJBAQEnPd1qFOnDsuWLePhhx9m/PjxhIeHM3LkSOrWrevqvH+pmT17Ng8//DDvvfcehmFw00038e2331K3bl1XmbS0NAzDYMWKFaxYsaLYPooeD3fv3p2ff/6Zl19+mXfffZesrCwiIyO5+uqreeCBB86rPp988olrRO/p7rrrrosKdv/4xz/Iyck5r9GwZ1O7dm1Wr17NU089xTvvvENeXh5t2rThq6++4tZbb72ofV9MndasWcNLL73E559/zvvvv094eDgtW7bktddeu6B9PvjggyQmJjJt2jTeeustoqOjFexExMVkqFeuiIiIiEdQHzsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQXlVdARERkerIbrdjs9mquhri4axWKxaL5bzLK9iJiIiUgWEYHDlyhIyMjKquilwmQkNDiYyMxGQynbOsgp2IiEgZFIW6WrVq4e/vf14/bEUuhGEY5OTkkJqaCkCdOnXOuY2CnYiIyHmy2+2uUBceHl7V1ZHLgJ+fHwCpqanUqlXrnI9lNXhCRETkPBX1qfP396/imsjlpOh+O58+nQp2IiIiZaTHr1KZynK/KdiJiIiIeAgFOxEREREPoWAnIiJSiQoKCi5q/cU4cuQIDz/8MI0aNcLHx4eoqChuu+02fvjhhwo7plQuBTsREZFKMmfOHFq3bs2BAwdKXH/gwAFat27NnDlzyv3Ye/fupUOHDixdupQJEyawefNmvvvuO3r06MFDDz1U7seTqqFgJyIiUgkKCgp47rnn2LFjB927dy8W7g4cOED37t3ZsWMHzz33XLm33D344IOYTCbWrFlDv379aNq0KS1btuTRRx/ll19+Ye/evZhMJhITE13bZGRkYDKZWL58uWvZli1buPnmmwkMDKR27drccccdHD9+vFzrKhdOwU5ERKQSeHt7s2TJEho1asSePXvcwl1RqNuzZw+NGjViyZIleHt7l9ux09PT+e6773jooYcICAgotj40NPS89pORkcH1119Pu3btWLduHd999x1Hjx5l4MCB5VZXuTgKdiIiIpUkKiqK5cuXu4W71atXu4W65cuXExUVVa7H3bVrF4Zh0Lx584vaz7vvvku7du149dVXad68Oe3atWPq1KksW7aMHTt2lFNt5WLozRMiIiKVqCjcFYW5zp07A1RYqAPnq6nKw8aNG1m2bBmBgYHF1u3evZumTZuWy3HkwinYiYiIVLKoqCg+/vhj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ESNGGPfff7/bdj/99JNhNpuN3NxcY9u2bQZgrF271rV+586dBmC89dZbpR77s88+M8LDw11fT5s2zQgJCSlWLjo62rUfm81m1KxZ05g5c6Zr/eDBg42EhATDMAwjLy/P8Pf3N1avXu22jxEjRhiDBw8++8WoZspy33nMqFgREZFLWW4uzJ//5+PX0hQWwhdfOMv7+VVMXV577TWuv/76Yi1lGzduZNOmTcyaNcu1zDAMHA4HycnJ7NixAy8vL9q3b+9aHxsbS40aNdz2s2TJEsaNG8f27ds5efIkhYWF5OXlkZOTc9596Ly8vBg4cCCzZs3ijjvuIDs7m/nz5/O///0PgF27dpGTk8ONN97otl1BQQHt2rUr0/XwJAp2IiIileDkyXOHuiIOh7N8RQW7rl270qtXL5555hmGDx/uWp6VlcUDDzzA6NGji23ToEEDduzYcc597927l969e/O3v/2Nf/7zn4SFhbFy5UpGjBhBQUFBmQZHDB06lG7dupGamsrixYvx8/MjPj7eVVeAr7/+mnr16rlt5+Pjc97H8DQKdiIiIpUgOBjM5vMLd2azs3xFGj9+PFdccQXNmjVzLWvfvj1JSUnExsaWuE2zZs0oLCxkw4YNdOjQAXC2nJ0+yva3337D4XDwxhtvYDY7u/J/+umnbvvx9vbGbrefs46dOnUiKiqKOXPm8O233zJgwACsVisAcXFx+Pj4sH//frp161a2k/dgCnYiIiKVwM8P+vRxjn49c+DE6by8nOUqqrWuSOvWrRk6dCgTJ050LXvqqae45pprGDVqFPfeey8BAQEkJSWxePFi3n33XZo3b07Pnj25//77mTRpElarlcceeww/Pz/XXHixsbHYbDbeeecdbrvtNlatWsXkM4b6xsTEkJWVxQ8//EDbtm3x9/cvtSVvyJAhTJ48mR07drBs2TLX8qCgIB5//HHGjh2Lw+HguuuuIzMzk1WrVhEcHMxdd91VAVft0qdRsSIiIpXk0UfhXA1VdjuMHVs59XnppZdwnNaE2KZNG1asWMGOHTvo0qUL7dq147nnnqNu3bquMjNnzqR27dp07dqVvn37ct999xEUFOR6h2nbtm158803ee2112jVqhWzZs0qNr1Kp06dGDlyJAkJCURERPD666+XWsehQ4eSlJREvXr16Ny5s9u6l19+mWeffZZx48bRokUL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", "text/plain": [ "
" ] @@ -171,12 +179,12 @@ "output_type": "stream", "text": [ "Time t=1\n", - "[Array([[10]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[14]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQhUlEQVR4nO3dd3hUZf7+8ffMpHcSAgkQUggtNCk2OopLVFxgEUJRQbGgIoK6q+5v7QXUtSwWwFWaX3BRUcGKIgQpKqDSUVrogZCEBNKTmfP745iRIQkESCHD/bquuSCnfuZkIHee8zzPsRiGYSAiIiIidZ61tgsQERERkaqhYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnteLJJ5/EYrG4LIuJiWH06NE1WsesWbOwWCzs2bOnRs8rlaPvj4jI2VGwu4CkpKQwbtw4WrRogZ+fH35+fiQkJHDvvfeycePG2i7vorRnzx4sFkulXhWFj5iYGCwWC3379i13/X//+1/nMdatW1eN7+bcnOkaTJ48ubZLvKjMmzeP1157rbbLEJELlEdtFyCmzz//nKSkJDw8PBg5ciQdOnTAarXy22+/8fHHHzN16lRSUlKIjo6u7VKrze+//47VemH9rhEeHs57773nsuzll1/mwIEDvPrqq2W2rYiPjw/Lli3j8OHDREREuKybO3cuPj4+FBQUVF3h1WD48OFcd911ZZZ37Nix2s558803M2zYMLy9vavtHHXNvHnz2Lx5MxMmTKjtUkTkAqRgdwHYtWsXw4YNIzo6mu+++47IyEiX9S+88AJvvfXWBRd6Tpabm4u/v/95HeNC/OHt7+/PTTfd5LLsf//7H8eOHSuz/HS6devG2rVrmT9/Pvfff79z+YEDB1ixYgWDBg1iwYIFVVZ3dejUqdNZveeqYLPZsNlsp93GMAwKCgrw9fWtoapERC5cF25SuIi8+OKL5ObmMnPmzDKhDsDDw4Px48cTFRXlsvy3337jxhtvJDQ0FB8fH7p06cKiRYtctinto7Rq1SoeeOABwsPD8ff3Z9CgQRw9erTMub766it69OiBv78/gYGBXH/99WzZssVlm9GjRxMQEMCuXbu47rrrCAwMZOTIkQCsWLGCIUOG0LRpU7y9vYmKimLixInk5+ef8Tqc2seusrc9K3MdALZs2cJVV12Fr68vTZo04dlnn8XhcJyxrqrg4+PD3/72N+bNm+ey/P3336devXr069evzD4bN25k9OjRxMXF4ePjQ0REBLfddhsZGRnObc50m/RkP/30E4mJiQQHB+Pn50evXr1YtWpVlb7PmJgY+vfvz8qVK7nsssvw8fEhLi6OOXPmOLdZt24dFouF2bNnl9l/8eLFWCwWPv/8c6D8Pnal51i8eDFdunTB19eX6dOnA7B7926GDBlCaGgofn5+XHHFFXzxxRcu50hOTsZisfDBBx/w3HPP0aRJE3x8fLj66qvZuXOny7a9e/embdu2bNy4kV69euHn50d8fDwfffQRAMuXL+fyyy/H19eXli1bsmTJkjLv6eDBg9x22200bNgQb29v2rRpw4wZM86ppt69e/PFF1+wd+9e5/c4JiamEt8ZEblYqMXuAvD5558THx/P5ZdfXul9tmzZQrdu3WjcuDGPPPII/v7+fPDBBwwcOJAFCxYwaNAgl+3vu+8+6tWrxxNPPMGePXt47bXXGDduHPPnz3du89577zFq1Cj69evHCy+8QF5eHlOnTqV79+78+uuvLj9ASkpK6NevH927d+ff//43fn5+AHz44Yfk5eVx9913ExYWxpo1a3j99dc5cOAAH3744Vldl1NvgQL861//Ii0tjYCAgLO6DocPH6ZPnz6UlJQ4t3v77bdrtJVnxIgR/OUvf2HXrl00a9YMMG+r3XjjjXh6epbZ/ttvv2X37t3ceuutREREsGXLFt5++222bNnCjz/+iMViKfdWcXFxMRMnTsTLy8u5bOnSpVx77bV07tyZJ554AqvVysyZM7nqqqtYsWIFl1122Rnrz8vLIz09vczykJAQPDz+/K9k586d3HjjjYwZM4ZRo0YxY8YMRo8eTefOnWnTpg1dunQhLi6ODz74gFGjRrkca/78+RUG3ZP9/vvvDB8+nLvuuos77riDli1bcuTIEbp27UpeXh7jx48nLCyM2bNn89e//pWPPvqozL+JyZMnY7Vaeeihh8jOzubFF19k5MiR/PTTTy7bHTt2jP79+zNs2DCGDBnC1KlTGTZsGHPnzmXChAmMHTuWESNG8NJLL3HjjTeyf/9+AgMDAThy5AhXXHEFFouFcePGER4ezldffcWYMWM4fvx4mdupZ6rp//2//0d2drZLV4DSfwsiIgAYUquys7MNwBg4cGCZdceOHTOOHj3qfOXl5TnXXX311Ua7du2MgoIC5zKHw2F07drVaN68uXPZzJkzDcDo27ev4XA4nMsnTpxo2Gw2IysryzAMwzhx4oQREhJi3HHHHS41HD582AgODnZZPmrUKAMwHnnkkTI1n1xjqUmTJhkWi8XYu3evc9kTTzxhnPrxi46ONkaNGlVm/1IvvviiARhz5sw56+swYcIEAzB++ukn57K0tDQjODjYAIyUlJQKz3uq66+/3oiOjq709tHR0cb1119vlJSUGBEREcYzzzxjGIZhbN261QCM5cuXO79Pa9eude5X3rV8//33DcD4/vvvKzzfPffcY9hsNmPp0qWGYZjXo3nz5ka/fv1cPgN5eXlGbGyscc0115y2/pSUFAOo8PXDDz+4vNdT60tLSzO8vb2NBx980Lns0UcfNTw9PY3MzEznssLCQiMkJMS47bbbnMtKr8vJ35/Sc3z99dcudZZ+j1esWOFcduLECSM2NtaIiYkx7Ha7YRiGsWzZMgMwWrdubRQWFjq3/c9//mMAxqZNm5zLevXqZQDGvHnznMt+++03AzCsVqvx448/OpcvXrzYAIyZM2c6l40ZM8aIjIw00tPTXWodNmyYERwc7Pwen01NZ/v5E5GLi27F1rLjx48D5f/W3bt3b8LDw52vN998E4DMzEyWLl3K0KFDOXHiBOnp6aSnp5ORkUG/fv3YsWMHBw8edDnWnXfe6XJrrkePHtjtdvbu3QuYrUNZWVkMHz7cebz09HRsNhuXX345y5YtK1Pf3XffXWbZyS1gubm5pKen07VrVwzD4Ndffz2HK2RatmwZjz76KPfddx8333zzWV+HL7/8kiuuuMKlZSo8PNx5C7km2Gw2hg4dyvvvvw+YgyaioqLo0aNHuduffC0LCgpIT0/niiuuAOCXX34pd585c+bw1ltv8eKLL9KnTx8A1q9fz44dOxgxYgQZGRnO65Sbm8vVV1/N999/X6lb0nfeeSfffvttmVdCQoLLdgkJCS7vKTw8nJYtW7J7927nsqSkJIqLi/n444+dy7755huysrJISko6Yy2xsbFlWvW+/PJLLrvsMrp37+5cFhAQwJ133smePXvYunWry/a33nqrS6tmac0n11l6jGHDhjm/btmyJSEhIbRu3dqllb3076X7G4bB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QU5ODhEREVx++eXcddddlarn/fffd47oPdmoUaPOK9j961//Ii8vr1KjYU+nYcOGrF69mocffpjXX3+dgoIC2rdvz2effcb1119/Xsc+n5rWrFnD008/zccff8xbb71FWFgYbdq04YUXXjinY95zzz2sX7+emTNn8uqrrxIdHa1gJyJOFkO9ckVERETcgvrYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm/Co7QJERETqIrvdTnFxcW2XIW7O09MTm81W6e0V7ERERM6CYRgcPnyYrKys2i5FLhIhISFERERgsVjOuK2CnYiIyFkoDXUNGjTAz8+vUj9sRc6FYRjk5eWRlpYGQGRk5Bn3UbATERGpJLvd7gx1YWFhtV2OXAR8fX0BSEtLo0GDBme8LavBEyIiIpVU2qfOz8+vliuRi0np560yfToV7ERERM6Sbr9KTTqbz5uCnYiIiIibULATERERcRMKdiIiIjWoqKjovNafj8OHD3PfffcRFxeHt7c3UVFR3HDDDXz33XfVdk6pWQp2IiIiNWT+/Pm0a9eO/fv3l7t+//79tGvXjvnz51f5uffs2UPnzp1ZunQpL730Eps2beLrr7+mT58+3HvvvVV+PqkdCnYiIiI1oKioiMcff5zt27fTu3fvMuFu//799O7dm+3bt/P4449XecvdPffcg8ViYc2aNQwePJgWLVrQpk0bHnjgAX788Uf27NmDxWJh/fr1zn2ysrKwWCwkJyc7l23evJlrr72WgIAAGjZsyM0330x6enqV1irnTsFORESkBnh5ebFkyRLi4uLYvXu3S7grDXW7d+8mLi6OJUuW4OXlVWXnzszM5Ouvv+bee+/F39+/zPqQkJBKHScrK4urrrqKjh07sm7dOr7++muOHDnC0KFDq6xWOT8KdiIiIjUkKiqK5ORkl3C3evVql1CXnJxMVFRUlZ53586dGIZBq1atzus4b7zxBh07duT555+nVatWdOzYkRkzZrBs2TK2b99eRdXK+dCTJ0RERGpQabgrDXPdunUDqLZQB+ajqarChg0bWLZsGQEBAWXW7dq1ixYtWlTJeeTcKdiJiIjUsKioKN577z1nqAN4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X7++Vs7v7hTsRERELiLvvvsu9913H99//z2HDh2q7XKkiinYiYiIXCRycnKYP38+d999N9dffz2zZs1yWb9o0SKaN2+Oj48Pffr0Yfbs2VgsFrKyspzbrFy5kh49euDr60tUVBTjx48nN/fPVsWYmBief/55brvtNgIDA2natClvv/22c31sbCwAHTt2xGKx0Lt37+p8yxcdBTsREZGLxAcffECrVq1o2bIlN910EzNmzMAwDABSUlK48cYbGThwIBs2bOCuu+7i//2//+ey/65du0hMTGTw4MFs3LiR+fPns3LlSsaNG+ey3csvv0yXLl349ddfueeee7j77rv5/fffAVizZg0AS5YsITU1lY8//rgG3vnFQ8FORETkIvHuu+9y0003AZCYmEh2djbLly8HYPr06bRs2ZKXXnqJli1bMmzYMEaPHu2y/6RJkxg5ciQTJkygefPmdO3alSlTpjBnzhwKCgqc21133XXcc889xMfH8/DDD1O/fn2WLVsGQHh4OABhYWFEREQQGhpaA+/84qFgJyIichH4/fffWbNmDcOHDwfAw8ODpKQk3n33Xef6Sy+91GWfyy67zOXrDRs2MGvWLAICApyvfv364XA4SElJcW7Xvn17598tFgsRERGkpaVV11uTk2i6ExERkYvAu+++S0lJCY0aNXIuMwwDb29v3njjjUodIycnh7vuuovx48eXWde0aVPn3z09PV3WWSwWHA7HOVYuZ0PBTkRExM2VlJQwZ84cXn75Zf7yl7+4rBs4cCDvv/8+LVu25Msvv3RZt3btWpevO3XqxNatW4mPjz/nWry8vACw2+3nfAypmIKdiIiIm/v88885duwYY8aMITg42GXd4MGDeffdd/nggw945ZVXePjhhxkzZgzr1693jpq1WCwAPPzww1xxxRWMGzeO22+/HX9/f7Zu3cq3335b6Va/Bg0a4Ovry9dff02TJk3w8fEpU5OcO/WxExERcXPvvvsuffv2LTdADR48mHXr1nHixAk++ugjPv74Y9q3b8/UqVOdo2K9vb0Bs+/c8uXL2b59Oz169KBjx448/vjjLrd3z8TDw4MpU6Ywffp0GjVqxIABA6rmTQoAFqN0nLOIiIicVkFBASkpKcTGxuLj41OpfbZmbCXp86RzPuf8/vNJCEs45/3Px3PPPce0adPYv39/rZxfTGfzudOt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6Oho/vvf/9KoUSMcDgdt27Z1Dmbw9a2+91pePVXhdNcnJyeHyMhIl1vCpUJCQqqlHgU7ERGR6mSxmE+UOPjzn48PO5OSQsCA6K7V/pixpUuXsmnTJiZOnFjhNkFBQSQlJZGUlMSNN95IYmIimZmZhIaG4unpid1uP+N5MjIy+P333/nvf/9Ljx49APNW5cnat2/PO++84zz2qby8vMqcq3Xr1s5+baWtdlu3biUrK4uEhIQz1lUVKro+nTp14vDhw3h4eDhbJ09V3ns6Hwp2IiIi1S2inflEiczd5jx1pwtrhgHHUsztG7at0jIKCws5fPgwdrudI0eO8PXXXzNp0iT69+/PLbfcUu4+r7zyCpGRkXTs2BGr1cqHH35IRESEs8UpJiaG7777jm7duuHt7U29evXKPU69evUICwvj7bffJjIykn379vHII4+4bDN8+HCef/55Bg4cyKRJk4iMjOTXX3+lUaNGXHnllcTExJCSksL69etp0qQJgYGB9O3bl3bt2jFy5Ehee+01SkpKuOeee+jVqxddunQ562u0detWioqKyMzM5MSJE6xfvx6gwrnmTnd9+vbty5VXXsnAgQN58cUXadGiBYcOHeKLL75g0KBBdOnSpdz3dD5TzaiPnYiISHXz9DEfExbQANJ//6NFrhwlheb6gAbQ6ZYqf2bs119/TWRkJDExMSQmJrJs2TKmTJnCwoULKxwpGhgYyIsvvkiXLl249NJL2bNnD19++SVWqxkhXn75Zb799luioqLo2LFjhee2Wq3873//4+eff6Zt27ZMnDiRl156yWUbLy8vvvnmGxo0aMB1111Hu3btmDx5srO2wYMHk5iYSJ8+fQgPD+f999/HYrGwcOFC6tWrR8+ePenbty9xcXHMnz//nK7RddddR8eOHfnss89ITk6mY8eOp31fp7s+FouFL7/8kp49e3LrrbfSokULhg0bxt69e2nYsGGF7+l8WAyjCifIERERcWMFBQWkpKScdi600yrvWbFWD3OgRF4mYJgtdZ1uMfvliXB2nzvdihUREakpYc2g1yPmEyX2rv5znjqrzRwoEd3VvP1axS11cvFQsBMREalJnj7QpAs07vznPHU2L3P0azUPlBD3p2AnIiJSGyyWP54oUb2TD8vFRYMnRERERNyEgp2IiMhZ0rhDqUln83lTsBMREakkT09PAPLy8mq5ErmYlH7eSj9/p6M+diIiIpVks9kICQkhLS0NAD8/vwqfsSpyvgzDIC8vj7S0NEJCQiqca/BkmsdORETkLBiGweHDh8nKyqrtUuQiERISQkRERKV+iVCwExEROQd2u53i4uLaLkPcnKenZ6Va6kop2ImIiIi4CQ2eEBEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEWwY7h8Og2O7A4TBquxS3pWssbsEwwF4MDnttV+K+dI1FapRHbRdQFQzD4MjxQrYcyiYlPZcDx/IosRvYrBYahfgSW9+fhEZBNA7xxWKx1Ha5dVbaiQK2HDxOSnou+zLzKLE7sFktRAb7ElPfn4TIIKJCdY3lApeXCanrIWM3ZO6GkgKwWCAwEkKbQcM2EBYPVrf8vbdm5GdB6gbI2Gle4+J8wAIBDSDsj2tcvwVYbbVdqYjbsRiGUaebXDJzi/h6cyq/7svieEExXjYrft4eeFgt2B0GeUV2CortBPl40D4qhGvbRhIe6F3bZdcp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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQu0lEQVR4nO3dd3gU1eLG8e/uZtMbCYFQQhIIvUmx0VG8RIGLXJRQLCgWVESwe3/XXkC5losF8KoULygKKsWCIgQFVEAILSAt9EAgDdKT3fn9sWZlSQIEUsjyfp5nn7AzZ2bOTJbkzZlzzpgMwzAQERERkRrPXN0VEBEREZGKoWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJ9Xiueeew2QyuSyLiopi5MiRVVqPGTNmYDKZ2Lt3b5UeV86Nvj8iIuWjYHcRSUpKYsyYMTRr1gxfX198fX1p1aoVDzzwAJs2baru6l2S9u7di8lkOqdXWeEjKioKk8lEnz59Sl3/3//+17mPdevWVeLZnJ+zXYOJEydWdxUvKXPmzOGtt96q7mqIyEXKo7orIA6LFy8mLi4ODw8PRowYQfv27TGbzWzfvp0vvviCKVOmkJSURGRkZHVXtdL88ccfmM0X198aYWFhfPzxxy7LXn/9dQ4ePMibb75ZomxZvL29Wb58OUeOHCE8PNxl3ezZs/H29iYvL6/iKl4Jhg0bxg033FBieYcOHSrtmLfeeitDhw7Fy8ur0o5R08yZM4ctW7Ywbty46q6KiFyEFOwuArt372bo0KFERkby448/Uq9ePZf1r776Ku+9995FF3pOlZ2djZ+f3wXt42L85e3n58ctt9zisuzTTz8lPT29xPIz6dq1K2vXrmXu3Lk89NBDzuUHDx7k559/ZtCgQcyfP7/C6l0ZOnbsWK5zrggWiwWLxXLGMoZhkJeXh4+PTxXVSkTk4nXxJoVLyGuvvUZ2djbTp08vEeoAPDw8GDt2LBERES7Lt2/fzk033URISAje3t507tyZhQsXupQp7qO0atUqHn74YcLCwvDz82PQoEEcO3asxLG+/fZbunfvjp+fHwEBAfTr14+tW7e6lBk5ciT+/v7s3r2bG264gYCAAEaMGAHAzz//zM0330yjRo3w8vIiIiKC8ePHk5ube9brcHofu3O97Xku1wFg69atXHPNNfj4+NCwYUNeeukl7Hb7WetVEby9vfnHP/7BnDlzXJZ/8skn1KpVi759+5bYZtOmTYwcOZLGjRvj7e1NeHg4d955J6mpqc4yZ7tNeqrffvuN2NhYgoKC8PX1pWfPnqxatapCzzMqKor+/fuzcuVKrrjiCry9vWncuDGzZs1yllm3bh0mk4mZM2eW2H7JkiWYTCYWL14MlN7HrvgYS5YsoXPnzvj4+DBt2jQA9uzZw80330xISAi+vr5cddVVfP311y7HiI+Px2Qy8dlnn/Hyyy/TsGFDvL29ufbaa9m1a5dL2V69etGmTRs2bdpEz5498fX1JSYmhnnz5gGwYsUKrrzySnx8fGjevDlLly4tcU6HDh3izjvvpG7dunh5edG6dWs++uij86pTr169+Prrr9m3b5/zexwVFXUO3xkRuVSoxe4isHjxYmJiYrjyyivPeZutW7fStWtXGjRowJNPPomfnx+fffYZN954I/Pnz2fQoEEu5R988EFq1arFs88+y969e3nrrbcYM2YMc+fOdZb5+OOPuf322+nbty+vvvoqOTk5TJkyhW7durFhwwaXXyBFRUX07duXbt268e9//xtfX18APv/8c3JycrjvvvsIDQ1lzZo1vP322xw8eJDPP/+8XNfl9FugAP/6179ISUnB39+/XNfhyJEj9O7dm6KiIme5999/v0pbeYYPH87f/vY3du/eTZMmTQDHbbWbbroJq9VaovwPP/zAnj17uOOOOwgPD2fr1q28//77bN26lV9//RWTyVTqreLCwkLGjx+Pp6enc9myZcu4/vrr6dSpE88++yxms5np06dzzTXX8PPPP3PFFVectf45OTkcP368xPLg4GA8PP76UbJr1y5uuukmRo0axe23385HH33EyJEj6dSpE61bt6Zz5840btyYzz77jNtvv91lX3Pnzi0z6J7qjz/+YNiwYdx7773cfffdNG/enKNHj9KlSxdycnIYO3YsoaGhzJw5k7///e/MmzevxP+JiRMnYjabefTRR8nMzOS1115jxIgR/Pbbby7l0tPT6d+/P0OHDuXmm29mypQpDB06lNmzZzNu3DhGjx7N8OHDmTRpEjfddBMHDhwgICAAgKNHj3LVVVdhMpkYM2YMYWFhfPvtt4waNYoTJ06UuJ16tjr93//9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L6ZNm0ZycnKJ8qVNY3I2ffv2JTAwkFdeeYXCwsLz2mdxa8Op9TUMg//85z/lrg/A9OnTmTZtGu+++26pgbc81+GGG27g119/Zc2aNS7rZ8+efV51O12rVq3o06eP89WpU6cyy9511108++yzvP7662WWKe1aAqU+ceD5559nyZIlfPLJJ6XeouzUqRNNmjTh3//+d6m3/M/n81IRWrZsSdu2bZk7dy5z586lXr169OjR47z3d8MNN7BmzRp++eUX57Ls7Gzef/99oqKiSvQFrGwWi4XBgwczf/78Ulvkz/e6+/n5nXe3BhFxf2qxuwg0bdqUOXPmMGzYMJo3b+588oRhGCQlJTFnzhzMZrNLn7Z3332Xbt260bZtW+6++24aN27M0aNH+eWXXzh48CAbN24sVx0CAwOZMmUKt956Kx07dmTo0KGEhYWxf/9+vv76a7p27co777xzxn20aNGCJk2a8Oijj3Lo0CECAwOZP3/+efUPOn78OPfffz+tWrXCy8uL//3vfy7rBw0ahJ+f3zlfh8cff5yPP/6Y2NhYHnroIed0J5GRkVX+uLbIyEiee+65M5YJDAykR48evPbaaxQWFtKgQQO+//57kpKSXMpt3ryZF198kR49epCSklLiOt1yyy2YzWY++OADrr/+elq3bs0dd9xBgwYNOHToEMuXLycwMJBFixadtd7r168vsX9wtAheffXVZz/xUsTFxfHMM8/g7e3NqFGjLmgS7ieffJJPPvmE66+/nrFjxxISEsLMmTNJSkpi/vz51TLB98SJE1m+fDlXXnkld999N61atSItLY3169ezdOlS0tLSyr3PTp06MXfuXB5++GEuv/xy/P39GTBgQCXUXkRqIgW7i8TAgQPZvHkzr7/+Ot9//z0fffQRJpOJyMhI+vXrx+jRo2nfvr2zfKtWrVi3bh3PP/88M2bMIDU1lTp16tChQweXW3flMXz4cOrXr8/EiROZNGkS+fn5NGjQgO7du3PHHXecdXur1cqiRYsYO3YsEyZMwNvbm0GDBjFmzBiXup+LrKws8vLySExMdI6CPVVSUhJ+fn7nfB3q1avH8uXLefDBB5k4cSKhoaGMHj2a+vXrOzvvX2zmzJnDgw8+yLvvvothGPztb3/j22+/pX79+s4yqampGIbBihUrWLFiRYl9FN8e7tWrF7/88gsvvvgi77zzDllZWYSHh3PllVdy7733nlN9PvnkE+eI3lPdfvvtFxTs/vWvf5GTk3NOo2HPpG7duqxevZonnniCt99+m7y8PNq1a8eiRYvo16/fBe37Quq0Zs0aXnjhBb744gvee+89QkNDad26Na+++up57fP+++8nISGB6dOn8+abbxIZGalgJyJOJkO9ckVERETcgvrYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm/Co7gqIiIjURDabjcLCwuquhrg5q9WKxWI55/IKdiIiIuVgGAZHjhwhIyOjuqsil4jg4GDCw8MxmUxnLatgJyIiUg7Foa5OnTr4+vqe0y9bkfNhGAY5OTmkpKQAUK9evbNuo2AnIiJyjmw2mzPUhYaGVnd15BLg4+MDQEpKCnXq1DnrbVkNnhARETlHxX3qfH19q7kmcikp/rydS59OBTsREZFy0u1XqUrl+bwp2ImIiIi4CQU7ERERETehYCciIlKFCgoKLmj9hThy5AgPPvggjRs3xsvLi4iICAYMGMCPP/5YaceUqqVgJyIiUkXmzp1L27ZtOXDgQKnrDxw4QNu2bZk7d26FH3vv3r106tSJZcuWMWnSJDZv3sx3331H7969eeCBByr8eFI9FOxERESqQEFBAc888ww7duygV69eJcLdgQMH6NWrFzt27OCZZ56p8Ja7+++/H5PJxJo1axg8eDDNmjWjdevWPPzww/z666/s3bsXk8lEQkKCc5uMjAxMJhPx8fHOZVu2bOH666/H39+funXrcuutt3L8+PEKraucPwU7ERGRKuDp6cnSpUtp3Lgxe/bscQl3xaFuz549NG7cmKVLl+Lp6Vlhx05LS+O7777jgQcewM/Pr8T64ODgc9pPRkYG11xzDR06dGDdunV89913HD16lCFDhlRYXeXCKNiJiIhUkYiICOLj413C3erVq11CXXx8PBERERV63F27dmEYBi1atLig/bzzzjt06NCBV155hRYtWtChQwc++ugjli9fzo4dOyqotnIh9OQJERGRKlQc7orDXNeuXQEqLdSB49FUFWHjxo0sX74cf3//Eut2795Ns2bNKuQ4cv4U7ERERKpYREQEH3/8sTPU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7duXp556ipEjRzqXZ2Vlce+99zJ27NgS2zRq1IgdO3acdd979+6lf//+3Hfffbz88suEhISwcuVKRo0aRUFBQbkGR4wYMYKePXuSkpLCDz/8gI+PD7Gxsc66Anz99dc0aNDAZTsvL69zPoa7UbATERGpAoGBYDafW7gzmx3lK9PEiRO57LLLaN78r+f0duzYkcTERGJiYkrdpnnz5hQVFbFhwwY6deoEOFrOTh1l+/vvv2O323n99dcxmx1d+T/77DOX/Xh6emKz2c5axy5duhAREcHcuXP59ttvufnmm7FarQC0atUKLy8v9u/fT8+ePct38m5MwU5ERKQK+PjAwIGO0a+nD5w4lYeHo1xltdYVa9u2LSNGjGDy5MnOZU888QRXXXUVY8aM4a677sLPz4/ExER++OEH3nnnHVq0aEGfPn245557mDJlClarlUceeQQfHx/nXHgxMTEUFhby9ttvM2DAAFatWsXU04b6RkVFkZWVxY8//kj79u3x9fUtsyVv+PDhTJ06lR07drB8+XLn8oCAAB599FHGjx+P3W6nW7duZGZmsmrVKgIDA7n99tsr4apd/DQqVkREpIo8/DCcraHKZoPx46umPi+88AL2U5oQ27Vrx4oVK9ixYwfdu3enQ4cOPPPMM9SvX99ZZtasWdStW5cePXowaNAg7r77bgICApzPMG3fvj1vvPEGr776Km3atGH27Nklplfp0qULo0ePJi4ujrCwMF577bUy6zhixAgSExNp0KABXbt2dVn34osv8vTTTzNhwgRatmxJbGwsX3/9NdHR0RVxeWokk2EYRnVXQkREpCYoz8PYyzJ1qmNKE4vFteXOw8MR6t57D0aPrqAKV4GDBw8SERHB0qVLufbaa6u7Om6pPJ87tdiJiIhUodGj4eefHbdb/+yChtnseP/zzxd/qFu2bBkLFy4kKSmJ1atXM3ToUKKioujRo0d1V01QHzsREZEq17Wr45Wb6xj9GhhY+X3qKkphYSH//Oc/2bNnDwEBAXTp0oXZs2c7BzVI9VKwExERqSY+PjUn0BXr27cvffv2re5qSBl0K1ZERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3IRGxYqIiFSyfSf2kV2YXe7t/Kx+RAZGVkKNxF0p2ImIiFSifSf20f/L/ue9/eJBixXu5JzpVqyIiEglOp+Wuorc/nS//PILFouFfv36Veh+z9XevXsxmUwkJCRUy/HdnYKdiIjIJeTDDz/kwQcf5KeffuLw4cPVXR2pYAp2IiIil4isrCzmzp3LfffdR79+/ZgxY4bL+oULF9K0aVO8vb3p3bs3M2fOxGQykZGR4SyzcuVKunfvjo+PDxEREYwdO5bs7L9aFaOionjllVe48847CQgIoFGjRrz//vvO9dHR0QB06NABk8lEr169KvOULzkKdiIiIpeIzz77jBYtWtC8eXNuueUWPvroIwzDACApKYmbbrqJG2+8kY0bN3Lvvffyf//3fy7b7969m9jYWAYPHsymTZuYO3cuK1euZMyYMS7lXn/9dTp37syGDRu4//77ue+++/jjjz8AWLNmDQBLly4lOTmZL774ogrO/NKhYCciInKJ+PDDD7nlllsAiI2NJTMzkxUrVgAwbdo0mjdvzqRJk2jevDlDhw5l5MiRLttPmDCBESNGMG7cOJo2bUqXLl2YPHkys2bNIi8vz1nuhhtu4P777ycmJoYnnniC2rVrs3z5cgDCwsIACA0NJTw8nJCQkCo480uHgp2IiMgl4I8//mDNmjUMGzYMAA8PD+Li4vjwww+d6y+//HKXba644gqX9xs3bmTGjBn4+/s7X3379sVut5OUlOQs165dO+e/TSYT4eHhpKSkVNapySk03YmIiMgl4MMPP6SoqIj69es7lxmGgZeXF++888457SMrK4t7772XsWPHlljXqFEj57+tVqvLOpPJhN1uP8+aS3ko2ImIiLi5oqIiZs2axeuvv87f/vY3l3U33ngjn3zyCc2bN+ebb75xWbd27VqX9x07diQxMZGYmJjzrounpycANpvtvPchZVOwExERcXOLFy8mPT2dUaNGERQU5LJu8ODBfPjhh3z22We88cYbPPHEE4waNYqEhATnqFmTyQTAE088wVVXXcWYMWO466678PPzIzExkR9++OGcW/3q1KmDj48P3333HQ0bNsTb27tEneT8qY+diIiIm/vwww/p06dPqQFq8ODBrFu3jpMnTzJv3jy++OIL2rVrx5QpU5yjYr28vABH37kVK1awY8cOunfvTocOHXjmmWdcbu+ejYeHB5MnT2batGnUr1+fgQMHVsxJCgAmo3ics4iIiJxRXl4eSUlJREdH4+3tfU7bJKYmErc47ryPObf/XFqF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", "text/plain": [ "
" ] @@ -189,12 +197,12 @@ "output_type": "stream", "text": [ "Time t=2\n", - "[Array([[5]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[13]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABR6klEQVR4nO3dd3hUVeL/8ffMZNIbCYEECEkgtNCWYgNpiktUXGVRQlNRLIiIoK5lf2vfFcS1LBbAVZpfcFFRQSwIQlBABaUTlBaqgUBCgPRk5v7+uGZkSAIJpJDh83qePCH3nnvvmZMh+eTcc861GIZhICIiIiJ1nrW2KyAiIiIiVUPBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5qxTPPPIPFYnHbFhsby4gRI2q0HjNnzsRisbBnz54ava5UjL4/IiKVo2B3AUlNTWXMmDG0bNkSf39//P39SUhI4P7772fTpk21Xb2L0p49e7BYLBX6KC98xMbGYrFY6Nu3b5n7//vf/7rO8dNPP1Xjqzk3Z2uDiRMn1nYVLypz587ltddeq+1qiMgFyqu2KyCmRYsWkZSUhJeXF8OGDaNjx45YrVZ++eUXPv74Y6ZMmUJqaioxMTG1XdVq8+uvv2K1Xlh/a0RERPDee++5bXv55Zc5cOAAr776aqmy5fH19WX58uUcOnSIyMhIt31z5szB19eX/Pz8qqt4NRgyZAjXXXddqe2dOnWqtmveeuutDB48GB8fn2q7Rl0zd+5ctmzZwrhx42q7KiJyAVKwuwDs2rWLwYMHExMTwzfffENUVJTb/hdffJG33nrrggs9p8rJySEgIOC8znEh/vIOCAhg+PDhbtv+97//cezYsVLbz6R79+6sXbuWefPm8eCDD7q2HzhwgO+++44BAwYwf/78Kqt3dejcuXOlXnNVsNls2Gy2M5YxDIP8/Hz8/PxqqFYiIheuCzcpXEQmTZpETk4OM2bMKBXqALy8vBg7dizR0dFu23/55RduvvlmwsLC8PX1pWvXrixcuNCtTMkYpVWrVvHQQw8RERFBQEAAAwYM4MiRI6Wu9eWXX9KjRw8CAgIICgri+uuvZ+vWrW5lRowYQWBgILt27eK6664jKCiIYcOGAfDdd99xyy230LRpU3x8fIiOjmb8+PHk5eWdtR1OH2NX0dueFWkHgK1bt3LVVVfh5+dHkyZN+Oc//4nT6TxrvaqCr68vf/3rX5k7d67b9vfff5969erRr1+/Usds2rSJESNG0KxZM3x9fYmMjOTOO+8kIyPDVeZst0lP9eOPP5KYmEhISAj+/v706tWLVatWVenrjI2NpX///qxcuZJLL70UX19fmjVrxuzZs11lfvrpJywWC7NmzSp1/OLFi7FYLCxatAgoe4xdyTUWL15M165d8fPzY9q0aQDs3r2bW265hbCwMPz9/bn88sv5/PPP3a6RnJyMxWLhgw8+4F//+hdNmjTB19eXq6++mp07d7qV7d27N+3atWPTpk306tULf39/4uPj+eijjwBYsWIFl112GX5+frRq1YqlS5eWek0HDx7kzjvvpGHDhvj4+NC2bVumT59+TnXq3bs3n3/+OXv37nV9j2NjYyvwnRGRi4V67C4AixYtIj4+nssuu6zCx2zdupXu3bvTuHFjHn/8cQICAvjggw+46aabmD9/PgMGDHAr/8ADD1CvXj2efvpp9uzZw2uvvcaYMWOYN2+eq8x7773H7bffTr9+/XjxxRfJzc1lypQpXHnllaxfv97tF0hxcTH9+vXjyiuv5N///jf+/v4AfPjhh+Tm5nLfffcRHh7OmjVreP311zlw4AAffvhhpdrl9FugAP/4xz9IT08nMDCwUu1w6NAh+vTpQ3Fxsavc22+/XaO9PEOHDuXPf/4zu3btonnz5oB5W+3mm2/GbreXKr9kyRJ2797NHXfcQWRkJFu3buXtt99m69at/PDDD1gsljJvFRcVFTF+/Hi8vb1d25YtW8a1115Lly5dePrpp7FarcyYMYOrrrqK7777jksvvfSs9c/NzeXo0aOltoeGhuLl9cePkp07d3LzzTczcuRIbr/9dqZPn86IESPo0qULbdu2pWvXrjRr1owPPviA22+/3e1c8+bNKzfonurXX39lyJAh3Hvvvdx99920atWKw4cP061bN3Jzcxk7dizh4eHMmjWLv/zlL3z00Uel/k9MnDgRq9XKI488wvHjx5k0aRLDhg3jxx9/dCt37Ngx+vfvz+DBg7nllluYMmUKgwcPZs6cOYwbN45Ro0YxdOhQXnrpJW6++Wb2799PUFAQAIcPH+byyy/HYrEwZswYIiIi+PLLLxk5ciQnTpwodTv1bHX6f//v/3H8+HG3oQAl/xdERAAwpFYdP37cAIybbrqp1L5jx44ZR44ccX3k5ua69l199dVG+/btjfz8fNc2p9NpdOvWzWjRooVr24wZMwzA6Nu3r+F0Ol3bx48fb9hsNiMrK8swDMM4efKkERoaatx9991udTh06JAREhLitv322283AOPxxx8vVedT61hiwoQJhsViMfbu3eva9vTTTxunv/1iYmKM22+/vdTxJSZNmmQAxuzZsyvdDuPGjTMA48cff3RtS09PN0JCQgzASE1NLfe6p7v++uuNmJiYCpePiYkxrr/+eqO4uNiIjIw0nn/+ecMwDCMlJcUAjBUrVri+T2vXrnUdV1Zbvv/++wZgfPvtt+Veb/To0YbNZjOWLVtmGIbZHi1atDD69evn9h7Izc014uLijGuuueaM9U9NTTWAcj++//57t9d6ev3S09MNHx8f4+GHH3Zte+KJJwy73W5kZma6thUUFBihoaHGnXfe6dpW0i6nfn9KrvHVV1+51bPke/zdd9+5tp08edKIi4szYmNjDYfDYRiGYSxfvtwAjDZt2hgFBQWusv/5z38MwNi8ebNrW69evQzAmDt3rmvbL7/8YgCG1Wo1fvjhB9f2xYsXG4AxY8YM17aRI0caUVFRxtGjR93qOnjwYCMkJMT1Pa5MnSr7/hORi4tuxdayEydOAGX/1d27d28iIiJcH2+++SYAmZmZLFu2jEGDBnHy5EmOHj3K0aNHycjIoF+/fuzYsYODBw+6neuee+5xuzXXo0cPHA4He/fuBczeoaysLIYMGeI639GjR7HZbFx22WUsX768VP3uu+++UttO7QHLycnh6NGjdOvWDcMwWL9+/Tm0kGn58uU88cQTPPDAA9x6662VbocvvviCyy+/3K1nKiIiwnULuSbYbDYGDRrE+++/D5iTJqKjo+nRo0eZ5U9ty/z8fI4ePcrll18OwLp168o8Zvbs2bz11ltMmjSJPn36ALBhwwZ27NjB0KFDycjIcLVTTk4OV199Nd9++22Fbknfc889LFmypNRHQkKCW7mEhAS31xQREUGrVq3YvXu3a1tSUhJFRUV8/PHHrm1ff/01WVlZJCUlnbUucXFxpXr1vvjiCy699FKuvPJK17bAwEDuuece9uzZQ0pKilv5O+64w61Xs6TOp9az5ByDBw92fd2qVStCQ0Np06aN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3/P888/zxhtvkJ2dTWRkJJdddhn33ntvherz/vvvu2b0nur2228/r2D3j3/8g9zc3ArNhj2Thg0bsnr1ah577DFef/118vPz6dChA5999hnXX3/9eZ37fOq0Zs0annvuOT7++GPeeustwsPDadu2LS+++OI5nXP06NFs2LCBGTNm8OqrrxITE6NgJyIuFkOjckVEREQ8gsbYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh/Cq7QqIiIjURQ6Hg6Kiotquhng4u92OzWarcHkFOxERkUowDINDhw6RlZVV21WRi0RoaCiRkZFYLJazllWwExERqYSSUNegQQP8/f0r9MtW5FwYhkFubi7p6ekAREVFnfUYBTsREZEKcjgcrlAXHh5e29WRi4Cfnx8A6enpNGjQ4Ky3ZTV5QkREpIJKxtT5+/vXck3kYlLyfqvImE4FOxERkUrS7VepSZV5vynYiYiIiHgIBTsRERERD6FgJyIiUoMKCwvPa//5OHToEA888ADNmjXDx8eH6OhobrjhBr755ptqu6bULAU7ERGRGjJv3jzat2/P/v37y9y/f/9+2rdvz7x586r82nv27KFLly4sW7aMl156ic2bN/PVV1/Rp08f7r///iq/ntQOBTsREZEaUFhYyFNPPcX27dvp3bt3qXC3f/9+evfuzfbt23nqqaeqvOdu9OjRWCwW1qxZw8CBA2nZsiVt27bloYce4ocffmDPnj1YLBY2bNjgOiYrKwuLxUJycrJr25YtW7j22msJDAykYcOG3HrrrRw9erRK6yrnTsFORESkBnh7e7N06VKaNWvG7t273cJdSajbvXs3zZo1Y+nSpXh7e1fZtTMzM/nqq6+4//77CQgIKLU/NDS0QufJysriqquuolOnTvz000989dVXHD58mEGDBlVZXeX8KNiJiIjUkOjoaJKTk93C3erVq91CXXJyMtHR0VV63Z07d2IYBq1btz6v87zxxht06tSJF154gdatW9OpUyemT5/O8uXL2b59exXVVs6HnjwhIiJSg0rCXUmY6969O0C1hTowH01VFTZu3Mjy5csJDAwstW/Xrl20bNmySq4j507BTkREpIZF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FsHBdXDwZwiLg063QrhnPZxeaobG2ImIiNSEjF3w41Qz1IU1g4hWEBABfqHm54hW5vbMVLNcxq5aq6rFYuHTTz+ttevLuVOwExERqW5F+WZPXXY61G9ljqkri83b3J+dbpYvyq+yKowYMQKLxYLFYsFut9OwYUOuueYapk+fjtPp/uzatLQ0rr322gqdtyZD4DPPPMOf/vSnajt/fn4+I0aMoH379nh5eXHTTTdV27VKVPVrUrATERGpboc2/9FTd7YJEhYL1Iszyx/eUqXVSExMJC0tjT179vDll1/Sp08fHnzwQfr3709xcbGrXGRkJD4+PlV23cLCwio7V1Uorz4OhwM/Pz/Gjh1L3759a7hWVUPBTkREpDoZhjlRAkv5PXWn8/Ixy+9dbR5fRXx8fIiMjKRx48Z07tyZv//97yxYsIAvv/ySmTNnusqd2gtXWFjImDFjiIqKwtfXl5iYGCZMmABAbGwsAAMGDMBisbi+LumFeuedd9weXP/VV19x5ZVXEhoaSnh4OP3792fXLvdbzgcOHGDIkCGEhYUREBBA165d+fHHH5k5cybPPvssGzdudPU8ltR537593HjjjQQGBhIcHMygQYM4fPiw65zl1ed0AQEBTJkyhbvvvpvIyMgKtemZ2gcgKyuLu+66i4iICIKDg7nqqqvYuHEjwBlf07nS5AkREZHqVJRnzn71D6vccf5h5nFFeeDtXz11A6666io6duzIxx9/zF133VVq/+TJk1m4cCEffPABTZs2Zf/+/ezfvx+AtWvX0qBBA2bMmEFiYiI22x+PR9u5cyfz58/n448/dm3PycnhoYceokOHDmRnZ/PUU08xYMAANmzYgNVqJTs7m169etG4cWMWLlxIZGQk69atw+l0kpSUxJYtW/jqq69YunQpACEhITidTleoW7FiBcXFxdx///0kJSWRnJx8xvpUhTO1D8Att9yCn58fX375JSEhIUybNo2rr76a7du3l/uazoeCnYiISHVyFJpLmtgreWvT6vXHOndUX7ADaN26NZs2bSpz3759+2jRogVXXnklFouFmJgY176IiAgAQkNDS/VwFRYWMnv2bFcZgIEDB7qVmT59OhEREaSkpNCuXTvmzp3LkSNHWLt2LWFhZhCOj493lQ8MDMTLy8vtWkuWLGHz5s2kpqYSHR0NwOzZs2nbti1r167lkksu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", + "image/png": "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3bt3Z8qUKaSkpBQrX9I0JufSq1cvgoODefXVV7HZbBe0z6LWhtPraxgG//73v8tcH4Bp06YxZcoU3nvvvRIDb1muwy233MIvv/zCmjVr3NbPmjXrgup2pri4OHr27On6dOjQodSy9957L88//zxvvPFGqWVKupZAiW8cePHFF1m0aBGffPJJiY8oO3ToQOPGjfnXv/5V4iP/C7lfykOLFi1o3bo1c+bMYc6cOdSpU4euXbte8P5uueUW1qxZw88//+xalp2dzQcffEBMTEyxvoAVzWKx0K9fP+bNm1dii/yFXveAgIAL7tYgIp5PLXaXgCZNmjB79mwGDx5Ms2bNXG+eMAyD5ORkZs+ejdlsduvT9t5773HdddfRunVr7rvvPho1asTRo0f5+eefOXjwIBs3bixTHYKDg5k0aRJ33HEH7du3Z9CgQURERLB//36+/vprOnfuzLvvvnvWfTRv3pzGjRvz+OOPc+jQIYKDg5k3b94F9Q86fvw4Dz74IHFxcfj4+PDf//7XbX3fvn0JCAg47+vw5JNP8vHHHxMfH88jjzzimu4kOjq60l/XFh0dzQsvvHDWMsHBwXTt2pXXX38dm81GvXr1+P7770lOTnYrt3nzZl5++WW6du1Kampqses0bNgwzGYzH374ITfffDMtW7bk7rvvpl69ehw6dIhly5YRHBzMV199dc56r1+/vtj+wdkieO211577xEuQkJDAc889h6+vLyNGjLioSbiffvppPvnkE26++WZGjx5NWFgYM2bMIDk5mXnz5lXJBN/jx49n2bJlXH311dx3333ExcWRnp7O+vXrWbJkCenp6WXeZ4cOHZgzZw6PPvooV155JYGBgdx2220VUHsRqY4U7C4Rffr0YfPmzbzxxht8//33TJ06FZPJRHR0NLfeeisjR46kbdu2rvJxcXGsW7eOF198kenTp5OWlkatWrVo166d26O7shgyZAh169Zl/PjxTJgwgfz8fOrVq0eXLl24++67z7m91Wrlq6++YvTo0YwbNw5fX1/69u3LqFGj3Op+PrKyssjLyyMpKck1CvZ0ycnJBAQEnPd1qFOnDsuWLePhhx9m/PjxhIeHM3LkSOrWrevqvH+pmT17Ng8//DDvvfcehmFw00038e2331K3bl1XmbS0NAzDYMWKFaxYsaLYPooeD3fv3p2ff/6Zl19+mXfffZesrCwiIyO5+uqreeCBB86rPp988olrRO/p7rrrrosKdv/4xz/Iyck5r9GwZ1O7dm1Wr17NU089xTvvvENeXh5t2rThq6++4tZbb72ofV9MndasWcNLL73E559/zvvvv094eDgtW7bktddeu6B9PvjggyQmJjJt2jTeeustoqOjFexExMVkqFeuiIiIiEdQHzsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQXlVdARERkerIbrdjs9mquhri4axWKxaL5bzLK9iJiIiUgWEYHDlyhIyMjKquilwmQkNDiYyMxGQynbOsgp2IiEgZFIW6WrVq4e/vf14/bEUuhGEY5OTkkJqaCkCdOnXOuY2CnYiIyHmy2+2uUBceHl7V1ZHLgJ+fHwCpqanUqlXrnI9lNXhCRETkPBX1qfP396/imsjlpOh+O58+nQp2IiIiZaTHr1KZynK/KdiJiIiIeAgFOxEREREPoWAnIiJSiQoKCi5q/cU4cuQIDz/8MI0aNcLHx4eoqChuu+02fvjhhwo7plQuBTsREZFKMmfOHFq3bs2BAwdKXH/gwAFat27NnDlzyv3Ye/fupUOHDixdupQJEyawefNmvvvuO3r06MFDDz1U7seTqqFgJyIiUgkKCgp47rnn2LFjB927dy8W7g4cOED37t3ZsWMHzz33XLm33D344IOYTCbWrFlDv379aNq0KS1btuTRRx/ll19+Ye/evZhMJhITE13bZGRkYDKZWL58uWvZli1buPnmmwkMDKR27drccccdHD9+vFzrKhdOwU5ERKQSeHt7s2TJEho1asSePXvcwl1RqNuzZw+NGjViyZIleHt7l9ux09PT+e6773jooYcICAgotj40NPS89pORkcH1119Pu3btWLduHd999x1Hjx5l4MCB5VZXuTgKdiIiIpUkKiqK5cuXu4W71atXu4W65cuXExUVVa7H3bVrF4Zh0Lx584vaz7vvvku7du149dVXad68Oe3atWPq1KksW7aMHTt2lFNt5WLozRMiIiKVqCjcFYW5zp07A1RYqAPnq6nKw8aNG1m2bBmBgYHF1u3evZumTZuWy3HkwinYiYiIVLKoqCg+/vhj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ESNGGPfff7/bdj/99JNhNpuN3NxcY9u2bQZgrF271rV+586dBmC89dZbpR77s88+M8LDw11fT5s2zQgJCSlWLjo62rUfm81m1KxZ05g5c6Zr/eDBg42EhATDMAwjLy/P8Pf3N1avXu22jxEjRhiDBw8++8WoZspy33nMqFgREZFLWW4uzJ//5+PX0hQWwhdfOMv7+VVMXV577TWuv/76Yi1lGzduZNOmTcyaNcu1zDAMHA4HycnJ7NixAy8vL9q3b+9aHxsbS40aNdz2s2TJEsaNG8f27ds5efIkhYWF5OXlkZOTc9596Ly8vBg4cCCzZs3ijjvuIDs7m/nz5/O///0PgF27dpGTk8ONN97otl1BQQHt2rUr0/XwJAp2IiIileDkyXOHuiIOh7N8RQW7rl270qtXL5555hmGDx/uWp6VlcUDDzzA6NGji23ToEEDduzYcc597927l969e/O3v/2Nf/7zn4SFhbFy5UpGjBhBQUFBmQZHDB06lG7dupGamsrixYvx8/MjPj7eVVeAr7/+mnr16rlt5+Pjc97H8DQKdiIiIpUgOBjM5vMLd2azs3xFGj9+PFdccQXNmjVzLWvfvj1JSUnExsaWuE2zZs0oLCxkw4YNdOjQAXC2nJ0+yva3337D4XDwxhtvYDY7u/J/+umnbvvx9vbGbrefs46dOnUiKiqKOXPm8O233zJgwACsVisAcXFx+Pj4sH//frp161a2k/dgCnYiIiKVwM8P+vRxjn49c+DE6by8nOUqqrWuSOvWrRk6dCgTJ050LXvqqae45pprGDVqFPfeey8BAQEkJSWxePFi3n33XZo3b07Pnj25//77mTRpElarlcceeww/Pz/XXHixsbHYbDbeeecdbrvtNlatWsXkM4b6xsTEkJWVxQ8//EDbtm3x9/cvtSVvyJAhTJ48mR07drBs2TLX8qCgIB5//HHGjh2Lw+HguuuuIzMzk1WrVhEcHMxdd91VAVft0qdRsSIiIpXk0UfhXA1VdjuMHVs59XnppZdwnNaE2KZNG1asWMGOHTvo0qUL7dq147nnnqNu3bquMjNnzqR27dp07dqVvn37ct999xEUFOR6h2nbtm158803ee2112jVqhWzZs0qNr1Kp06dGDlyJAkJCURERPD666+XWsehQ4eSlJREvXr16Ny5s9u6l19+mWeffZZx48bRokUL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", "text/plain": [ "
" ] @@ -207,12 +215,12 @@ "output_type": "stream", "text": [ "Time t=3\n", - "[Array([[6]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[12]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABR40lEQVR4nO3dd3hUVeL/8ffMZNIbCYEECEkgtNCWYgNpiktUXGVRQlNRLIiIoK5lf2vfFcS1LBbAVZpfcFFRQSwIQlBABaUTlBaqgUBCgPRk5v7+uGZkSAIJpJDh83qePCH3nnvvmZMh+eTcc861GIZhICIiIiJ1nrW2KyAiIiIiVUPBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5qxTPPPIPFYnHbFhsby4gRI2q0HjNnzsRisbBnz54ava5UjL4/IiKVo2B3AUlNTWXMmDG0bNkSf39//P39SUhI4P7772fTpk21Xb2L0p49e7BYLBX6KC98xMbGYrFY6Nu3b5n7//vf/7rO8dNPP1Xjqzk3Z2uDiRMn1nYVLypz587ltddeq+1qiMgFyqu2KyCmRYsWkZSUhJeXF8OGDaNjx45YrVZ++eUXPv74Y6ZMmUJqaioxMTG1XdVq8+uvv2K1Xlh/a0RERPDee++5bXv55Zc5cOAAr776aqmy5fH19WX58uUcOnSIyMhIt31z5szB19eX/Pz8qqt4NRgyZAjXXXddqe2dOnWqtmveeuutDB48GB8fn2q7Rl0zd+5ctmzZwrhx42q7KiJyAVKwuwDs2rWLwYMHExMTwzfffENUVJTb/hdffJG33nrrggs9p8rJySEgIOC8znEh/vIOCAhg+PDhbtv+97//cezYsVLbz6R79+6sXbuWefPm8eCDD7q2HzhwgO+++44BAwYwf/78Kqt3dejcuXOlXnNVsNls2Gy2M5YxDIP8/Hz8/PxqqFYiIheuCzcpXEQmTZpETk4OM2bMKBXqALy8vBg7dizR0dFu23/55RduvvlmwsLC8PX1pWvXrixcuNCtTMkYpVWrVvHQQw8RERFBQEAAAwYM4MiRI6Wu9eWXX9KjRw8CAgIICgri+uuvZ+vWrW5lRowYQWBgILt27eK6664jKCiIYcOGAfDdd99xyy230LRpU3x8fIiOjmb8+PHk5eWdtR1OH2NX0dueFWkHgK1bt3LVVVfh5+dHkyZN+Oc//4nT6TxrvaqCr68vf/3rX5k7d67b9vfff5969erRr1+/Usds2rSJESNG0KxZM3x9fYmMjOTOO+8kIyPDVeZst0lP9eOPP5KYmEhISAj+/v706tWLVatWVenrjI2NpX///qxcuZJLL70UX19fmjVrxuzZs11lfvrpJywWC7NmzSp1/OLFi7FYLCxatAgoe4xdyTUWL15M165d8fPzY9q0aQDs3r2bW265hbCwMPz9/bn88sv5/PPP3a6RnJyMxWLhgw8+4F//+hdNmjTB19eXq6++mp07d7qV7d27N+3atWPTpk306tULf39/4uPj+eijjwBYsWIFl112GX5+frRq1YqlS5eWek0HDx7kzjvvpGHDhvj4+NC2bVumT59+TnXq3bs3n3/+OXv37nV9j2NjYyvwnRGRi4V67C4AixYtIj4+nssuu6zCx2zdupXu3bvTuHFjHn/8cQICAvjggw+46aabmD9/PgMGDHAr/8ADD1CvXj2efvpp9uzZw2uvvcaYMWOYN2+eq8x7773H7bffTr9+/XjxxRfJzc1lypQpXHnllaxfv97tF0hxcTH9+vXjyiuv5N///jf+/v4AfPjhh+Tm5nLfffcRHh7OmjVreP311zlw4AAffvhhpdrl9FugAP/4xz9IT08nMDCwUu1w6NAh+vTpQ3Fxsavc22+/XaO9PEOHDuXPf/4zu3btonnz5oB5W+3mm2/GbreXKr9kyRJ2797NHXfcQWRkJFu3buXtt99m69at/PDDD1gsljJvFRcVFTF+/Hi8vb1d25YtW8a1115Lly5dePrpp7FarcyYMYOrrrqK7777jksvvfSs9c/NzeXo0aOltoeGhuLl9cePkp07d3LzzTczcuRIbr/9dqZPn86IESPo0qULbdu2pWvXrjRr1owPPviA22+/3e1c8+bNKzfonurXX39lyJAh3Hvvvdx99920atWKw4cP061bN3Jzcxk7dizh4eHMmjWLv/zlL3z00Uel/k9MnDgRq9XKI488wvHjx5k0aRLDhg3jxx9/dCt37Ngx+vfvz+DBg7nllluYMmUKgwcPZs6cOYwbN45Ro0YxdOhQXnrpJW6++Wb2799PUFAQAIcPH+byyy/HYrEwZswYIiIi+PLLLxk5ciQnTpwodTv1bHX6f//v/3H8+HG3oQAl/xdERAAwpFYdP37cAIybbrqp1L5jx44ZR44ccX3k5ua69l199dVG+/btjfz8fNc2p9NpdOvWzWjRooVr24wZMwzA6Nu3r+F0Ol3bx48fb9hsNiMrK8swDMM4efKkERoaatx9991udTh06JAREhLitv322283AOPxxx8vVedT61hiwoQJhsViMfbu3eva9vTTTxunv/1iYmKM22+/vdTxJSZNmmQAxuzZsyvdDuPGjTMA48cff3RtS09PN0JCQgzASE1NLfe6p7v++uuNmJiYCpePiYkxrr/+eqO4uNiIjIw0nn/+ecMwDCMlJcUAjBUrVri+T2vXrnUdV1Zbvv/++wZgfPvtt+Veb/To0YbNZjOWLVtmGIbZHi1atDD69evn9h7Izc014uLijGuuueaM9U9NTTWAcj++//57t9d6ev3S09MNHx8f4+GHH3Zte+KJJwy73W5kZma6thUUFBihoaHGnXfe6dpW0i6nfn9KrvHVV1+51bPke/zdd9+5tp08edKIi4szYmNjDYfDYRiGYSxfvtwAjDZt2hgFBQWusv/5z38MwNi8ebNrW69evQzAmDt3rmvbL7/8YgCG1Wo1fvjhB9f2xYsXG4AxY8YM17aRI0caUVFRxtGjR93qOnjwYCMkJMT1Pa5MnSr7/hORi4tuxdayEydOAGX/1d27d28iIiJcH2+++SYAmZmZLFu2jEGDBnHy5EmOHj3K0aNHycjIoF+/fuzYsYODBw+6neuee+5xuzXXo0cPHA4He/fuBczeoaysLIYMGeI639GjR7HZbFx22WUsX768VP3uu+++UttO7QHLycnh6NGjdOvWDcMwWL9+/Tm0kGn58uU88cQTPPDAA9x6662VbocvvviCyy+/3K1nKiIiwnULuSbYbDYGDRrE+++/D5iTJqKjo+nRo0eZ5U9ty/z8fI4ePcrll18OwLp168o8Zvbs2bz11ltMmjSJPn36ALBhwwZ27NjB0KFDycjIcLVTTk4OV199Nd9++22Fbknfc889LFmypNRHQkKCW7mEhAS31xQREUGrVq3YvXu3a1tSUhJFRUV8/PHHrm1ff/01WVlZJCUlnbUucXFxpXr1vvjiCy699FKuvPJK17bAwEDuuece9uzZQ0pKilv5O+64w61Xs6TOp9az5ByDBw92fd2qVStCQ0Np06aN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3/P888/zxhtvkJ2dTWRkJJdddhn33ntvherz/vvvu2b0nur2228/r2D3j3/8g9zc3ArNhj2Thg0bsnr1ah577DFef/118vPz6dChA5999hnXX3/9eZ37fOq0Zs0annvuOT7++GPeeustwsPDadu2LS+++OI5nXP06NFs2LCBGTNm8OqrrxITE6NgJyIuFkOjckVEREQ8gsbYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh/Cq7QqIiIjURQ6Hg6Kiotquhng4u92OzWarcHkFOxERkUowDINDhw6RlZVV21WRi0RoaCiRkZFYLJazllWwExERqYSSUNegQQP8/f0r9MtW5FwYhkFubi7p6ekAREVFnfUYBTsREZEKcjgcrlAXHh5e29WRi4Cfnx8A6enpNGjQ4Ky3ZTV5QkREpIJKxtT5+/vXck3kYlLyfqvImE4FOxERkUrS7VepSZV5vynYiYiIiHgIBTsRERERD6FgJyIiUoMKCwvPa//5OHToEA888ADNmjXDx8eH6OhobrjhBr755ptqu6bULAU7ERGRGjJv3jzat2/P/v37y9y/f/9+2rdvz7x586r82nv27KFLly4sW7aMl156ic2bN/PVV1/Rp08f7r///iq/ntQOBTsREZEaUFhYyFNPPcX27dvp3bt3qXC3f/9+evfuzfbt23nqqaeqvOdu9OjRWCwW1qxZw8CBA2nZsiVt27bloYce4ocffmDPnj1YLBY2bNjgOiYrKwuLxUJycrJr25YtW7j22msJDAykYcOG3HrrrRw9erRK6yrnTsFORESkBnh7e7N06VKaNWvG7t273cJdSajbvXs3zZo1Y+nSpXh7e1fZtTMzM/nqq6+4//77CQgIKLU/NDS0QufJysriqquuolOnTvz000989dVXHD58mEGDBlVZXeX8KNiJiIjUkOjoaJKTk93C3erVq91CXXJyMtHR0VV63Z07d2IYBq1btz6v87zxxht06tSJF154gdatW9OpUyemT5/O8uXL2b59exXVVs6HnjwhIiJSg0rCXUmY6969O0C1hTowH01VFTZu3Mjy5csJDAwstW/Xrl20bNmySq4j507BTkREpIZF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FsHBdXDwZwiLg063QrhnPZxeaobG2ImIiNSEjF3w41Qz1IU1g4hWEBABfqHm54hW5vbMVLNcxq5aq6rFYuHTTz+ttevLuVOwExERqW5F+WZPXXY61G9ljqkri83b3J+dbpYvyq+yKowYMQKLxYLFYsFut9OwYUOuueYapk+fjtPp/uzatLQ0rr322gqdtyZD4DPPPMOf/vSnajt/fn4+I0aMoH379nh5eXHTTTdV27VKVPVrUrATERGpboc2/9FTd7YJEhYL1Iszyx/eUqXVSExMJC0tjT179vDll1/Sp08fHnzwQfr3709xcbGrXGRkJD4+PlV23cLCwio7V1Uorz4OhwM/Pz/Gjh1L3759a7hWVUPBTkREpDoZhjlRAkv5PXWn8/Ixy+9dbR5fRXx8fIiMjKRx48Z07tyZv//97yxYsIAvv/ySmTNnusqd2gtXWFjImDFjiIqKwtfXl5iYGCZMmABAbGwsAAMGDMBisbi+LumFeuedd9weXP/VV19x5ZVXEhoaSnh4OP3792fXLvdbzgcOHGDIkCGEhYUREBBA165d+fHHH5k5cybPPvssGzdudPU8ltR537593HjjjQQGBhIcHMygQYM4fPiw65zl1ed0AQEBTJkyhbvvvpvIyMgKtemZ2gcgKyuLu+66i4iICIKDg7nqqqvYuHEjwBlf07nS5AkREZHqVJRnzn71D6vccf5h5nFFeeDtXz11A6666io6duzIxx9/zF133VVq/+TJk1m4cCEffPABTZs2Zf/+/ezfvx+AtWvX0qBBA2bMmEFiYiI22x+PR9u5cyfz58/n448/dm3PycnhoYceokOHDmRnZ/PUU08xYMAANmzYgNVqJTs7m169etG4cWMWLlxIZGQk69atw+l0kpSUxJYtW/jqq69YunQpACEhITidTleoW7FiBcXFxdx///0kJSWRnJx8xvpUhTO1D8Att9yCn58fX375JSEhIUybNo2rr76a7du3l/uazoeCnYiISHVyFJpLmtgreWvT6vXHOndUX7ADaN26NZs2bSpz3759+2jRogVXXnklFouFmJgY176IiAgAQkNDS/VwFRYWMnv2bFcZgIEDB7qVmT59OhEREaSkpNCuXTvmzp3LkSNHWLt2LWFhZhCOj493lQ8MDMTLy8vtWkuWLGHz5s2kpqYSHR0NwOzZs2nbti1r167lkksu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", + "image/png": "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3bt3Z8qUKaSkpBQrX9I0JufSq1cvgoODefXVV7HZbBe0z6LWhtPraxgG//73v8tcH4Bp06YxZcoU3nvvvRIDb1muwy233MIvv/zCmjVr3NbPmjXrgup2pri4OHr27On6dOjQodSy9957L88//zxvvPFGqWVKupZAiW8cePHFF1m0aBGffPJJiY8oO3ToQOPGjfnXv/5V4iP/C7lfykOLFi1o3bo1c+bMYc6cOdSpU4euXbte8P5uueUW1qxZw88//+xalp2dzQcffEBMTEyxvoAVzWKx0K9fP+bNm1dii/yFXveAgIAL7tYgIp5PLXaXgCZNmjB79mwGDx5Ms2bNXG+eMAyD5ORkZs+ejdlsduvT9t5773HdddfRunVr7rvvPho1asTRo0f5+eefOXjwIBs3bixTHYKDg5k0aRJ33HEH7du3Z9CgQURERLB//36+/vprOnfuzLvvvnvWfTRv3pzGjRvz+OOPc+jQIYKDg5k3b94F9Q86fvw4Dz74IHFxcfj4+PDf//7XbX3fvn0JCAg47+vw5JNP8vHHHxMfH88jjzzimu4kOjq60l/XFh0dzQsvvHDWMsHBwXTt2pXXX38dm81GvXr1+P7770lOTnYrt3nzZl5++WW6du1Kampqses0bNgwzGYzH374ITfffDMtW7bk7rvvpl69ehw6dIhly5YRHBzMV199dc56r1+/vtj+wdkieO211577xEuQkJDAc889h6+vLyNGjLioSbiffvppPvnkE26++WZGjx5NWFgYM2bMIDk5mXnz5lXJBN/jx49n2bJlXH311dx3333ExcWRnp7O+vXrWbJkCenp6WXeZ4cOHZgzZw6PPvooV155JYGBgdx2220VUHsRqY4U7C4Rffr0YfPmzbzxxht8//33TJ06FZPJRHR0NLfeeisjR46kbdu2rvJxcXGsW7eOF198kenTp5OWlkatWrVo166d26O7shgyZAh169Zl/PjxTJgwgfz8fOrVq0eXLl24++67z7m91Wrlq6++YvTo0YwbNw5fX1/69u3LqFGj3Op+PrKyssjLyyMpKck1CvZ0ycnJBAQEnPd1qFOnDsuWLePhhx9m/PjxhIeHM3LkSOrWrevqvH+pmT17Ng8//DDvvfcehmFw00038e2331K3bl1XmbS0NAzDYMWKFaxYsaLYPooeD3fv3p2ff/6Zl19+mXfffZesrCwiIyO5+uqreeCBB86rPp988olrRO/p7rrrrosKdv/4xz/Iyck5r9GwZ1O7dm1Wr17NU089xTvvvENeXh5t2rThq6++4tZbb72ofV9MndasWcNLL73E559/zvvvv094eDgtW7bktddeu6B9PvjggyQmJjJt2jTeeustoqOjFexExMVkqFeuiIiIiEdQHzsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQXlVdARERkerIbrdjs9mquhri4axWKxaL5bzLK9iJiIiUgWEYHDlyhIyMjKquilwmQkNDiYyMxGQynbOsgp2IiEgZFIW6WrVq4e/vf14/bEUuhGEY5OTkkJqaCkCdOnXOuY2CnYiIyHmy2+2uUBceHl7V1ZHLgJ+fHwCpqanUqlXrnI9lNXhCRETkPBX1qfP396/imsjlpOh+O58+nQp2IiIiZaTHr1KZynK/KdiJiIiIeAgFOxEREREPoWAnIiJSiQoKCi5q/cU4cuQIDz/8MI0aNcLHx4eoqChuu+02fvjhhwo7plQuBTsREZFKMmfOHFq3bs2BAwdKXH/gwAFat27NnDlzyv3Ye/fupUOHDixdupQJEyawefNmvvvuO3r06MFDDz1U7seTqqFgJyIiUgkKCgp47rnn2LFjB927dy8W7g4cOED37t3ZsWMHzz33XLm33D344IOYTCbWrFlDv379aNq0KS1btuTRRx/ll19+Ye/evZhMJhITE13bZGRkYDKZWL58uWvZli1buPnmmwkMDKR27drccccdHD9+vFzrKhdOwU5ERKQSeHt7s2TJEho1asSePXvcwl1RqNuzZw+NGjViyZIleHt7l9ux09PT+e6773jooYcICAgotj40NPS89pORkcH1119Pu3btWLduHd999x1Hjx5l4MCB5VZXuTgKdiIiIpUkKiqK5cuXu4W71atXu4W65cuXExUVVa7H3bVrF4Zh0Lx584vaz7vvvku7du149dVXad68Oe3atWPq1KksW7aMHTt2lFNt5WLozRMiIiKVqCjcFYW5zp07A1RYqAPnq6nKw8aNG1m2bBmBgYHF1u3evZumTZuWy3HkwinYiYiIVLKoqCg+/vhj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+vbbb8dqtZKVlQXAwYMHMZlM7Nq1C4CPP/6Yjh07EhQURGRkJEOGDCE1NdW1/fLlyzGZTHz77bd06NABHx8fVq5cSXZ2NnfeeSeBgYHUqVOHN95445zntnHjRnr06EFQUBDBwcF06NCBdevWudavXLmSLl264OfnR1RUFKNHjyY72/m4u3v37uzbt4+xY8e6WjWrKwU7ERGRCpRnc7AvLZsa/tYybVfD38q+tGzybI4KqdeWLVtYvXo13t7ermXjxo1j5syZTJ48ma1btzJ27FiGDRvGihUrAOjWrRvLly8HnIH1p59+IjQ0lJUrVwKwYsUK6tWrR2xsLAA2m42XX36ZjRs38uWXX7J3716GDx9erC5PP/0048ePZ9u2bbRp04YnnniCFStWMH/+fL7//nuWL1/O+vXrz3o+Q4cOpX79+qxdu5bffvuNp59+GqvVec13795NfHw8/fr1Y9OmTcyZM4eVK1cyatQoAD7//HPq16/PSy+9REpKCikpKRd1bauSRsWKiIhUoAK7A7vDwNu7bFOYWMwmbH/Mc+dH+Ux/snDhQgIDAyksLCQ/Px+z2cy7774LQH5+Pq+++ipLlizh2muvBaBRo0asXLmSKVOm0K1bN7p3785HH32E3W5ny5YteHt7k5CQwPLly4mPj2f58uV069bNdbx77rnH9fdGjRoxceJErrzySrKysggMDHSte+mll7jxxhsByMrK4qOPPuK///0vN9xwAwAzZsygfv36Zz23/fv388QTT9C8eXMAmjRp4lo3btw4hg4d6hp80aRJEyZOnEi3bt2YNGkSYWFhWCwWV8tidaYWOxERkQrkbTFjMZsotJet5a1ofjtvS/n9qO7RoweJiYn8+uuv3HXXXdx9993069cPgF27dpGTk8ONN95IYGCg6zNz5kx2794NQJcuXTh16hQbNmxgxYoVrrBX1Iq3YsUKunfv7jreb7/9xm233UaDBg0ICgpyhb79+/e71atjx46uv+/evZuCggKuvvpq17KwsDCaNWt21nN79NFHuffee+nZsyfjx4931Rmcj2mnT5/udl69evXC4XCQnJxc9gt5CVOwExERqUC+VjPR4QGcyLGVabsTOTaiwwPwtZbfj+qAgABiY2Np27YtU6dO5ddff+Wjjz4CcPWT+/rrr0lMTHR9kpKSXP3sQkNDadu2LcuXL3eFuK5d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", "text/plain": [ "
" ] @@ -225,12 +233,12 @@ "output_type": "stream", "text": [ "Time t=4\n", - "[Array([[7]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[11]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABR5ElEQVR4nO3dd3hUVeL/8ffMZNIbCYEECEkgtNCWYgNpiktUXGVRQlNRLIiIoK5lf2vfFcS1LBbAVZpfcFFRQSwIQlBABaUTlBaqgUBCgPRk5v7+uGZkSAIJpJDh83qePCH3nnvvmZMh+eTcc861GIZhICIiIiJ1nrW2KyAiIiIiVUPBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5qxTPPPIPFYnHbFhsby4gRI2q0HjNnzsRisbBnz54ava5UjL4/IiKVo2B3AUlNTWXMmDG0bNkSf39//P39SUhI4P7772fTpk21Xb2L0p49e7BYLBX6KC98xMbGYrFY6Nu3b5n7//vf/7rO8dNPP1Xjqzk3Z2uDiRMn1nYVLypz587ltddeq+1qiMgFyqu2KyCmRYsWkZSUhJeXF8OGDaNjx45YrVZ++eUXPv74Y6ZMmUJqaioxMTG1XdVq8+uvv2K1Xlh/a0RERPDee++5bXv55Zc5cOAAr776aqmy5fH19WX58uUcOnSIyMhIt31z5szB19eX/Pz8qqt4NRgyZAjXXXddqe2dOnWqtmveeuutDB48GB8fn2q7Rl0zd+5ctmzZwrhx42q7KiJyAVKwuwDs2rWLwYMHExMTwzfffENUVJTb/hdffJG33nrrggs9p8rJySEgIOC8znEh/vIOCAhg+PDhbtv+97//cezYsVLbz6R79+6sXbuWefPm8eCDD7q2HzhwgO+++44BAwYwf/78Kqt3dejcuXOlXnNVsNls2Gy2M5YxDIP8/Hz8/PxqqFYiIheuCzcpXEQmTZpETk4OM2bMKBXqALy8vBg7dizR0dFu23/55RduvvlmwsLC8PX1pWvXrixcuNCtTMkYpVWrVvHQQw8RERFBQEAAAwYM4MiRI6Wu9eWXX9KjRw8CAgIICgri+uuvZ+vWrW5lRowYQWBgILt27eK6664jKCiIYcOGAfDdd99xyy230LRpU3x8fIiOjmb8+PHk5eWdtR1OH2NX0dueFWkHgK1bt3LVVVfh5+dHkyZN+Oc//4nT6TxrvaqCr68vf/3rX5k7d67b9vfff5969erRr1+/Usds2rSJESNG0KxZM3x9fYmMjOTOO+8kIyPDVeZst0lP9eOPP5KYmEhISAj+/v706tWLVatWVenrjI2NpX///qxcuZJLL70UX19fmjVrxuzZs11lfvrpJywWC7NmzSp1/OLFi7FYLCxatAgoe4xdyTUWL15M165d8fPzY9q0aQDs3r2bW265hbCwMPz9/bn88sv5/PPP3a6RnJyMxWLhgw8+4F//+hdNmjTB19eXq6++mp07d7qV7d27N+3atWPTpk306tULf39/4uPj+eijjwBYsWIFl112GX5+frRq1YqlS5eWek0HDx7kzjvvpGHDhvj4+NC2bVumT59+TnXq3bs3n3/+OXv37nV9j2NjYyvwnRGRi4V67C4AixYtIj4+nssuu6zCx2zdupXu3bvTuHFjHn/8cQICAvjggw+46aabmD9/PgMGDHAr/8ADD1CvXj2efvpp9uzZw2uvvcaYMWOYN2+eq8x7773H7bffTr9+/XjxxRfJzc1lypQpXHnllaxfv97tF0hxcTH9+vXjyiuv5N///jf+/v4AfPjhh+Tm5nLfffcRHh7OmjVreP311zlw4AAffvhhpdrl9FugAP/4xz9IT08nMDCwUu1w6NAh+vTpQ3Fxsavc22+/XaO9PEOHDuXPf/4zu3btonnz5oB5W+3mm2/GbreXKr9kyRJ2797NHXfcQWRkJFu3buXtt99m69at/PDDD1gsljJvFRcVFTF+/Hi8vb1d25YtW8a1115Lly5dePrpp7FarcyYMYOrrrqK7777jksvvfSs9c/NzeXo0aOltoeGhuLl9cePkp07d3LzzTczcuRIbr/9dqZPn86IESPo0qULbdu2pWvXrjRr1owPPviA22+/3e1c8+bNKzfonurXX39lyJAh3Hvvvdx99920atWKw4cP061bN3Jzcxk7dizh4eHMmjWLv/zlL3z00Uel/k9MnDgRq9XKI488wvHjx5k0aRLDhg3jxx9/dCt37Ngx+vfvz+DBg7nllluYMmUKgwcPZs6cOYwbN45Ro0YxdOhQXnrpJW6++Wb2799PUFAQAIcPH+byyy/HYrEwZswYIiIi+PLLLxk5ciQnTpwodTv1bHX6f//v/3H8+HG3oQAl/xdERAAwpFYdP37cAIybbrqp1L5jx44ZR44ccX3k5ua69l199dVG+/btjfz8fNc2p9NpdOvWzWjRooVr24wZMwzA6Nu3r+F0Ol3bx48fb9hsNiMrK8swDMM4efKkERoaatx9991udTh06JAREhLitv322283AOPxxx8vVedT61hiwoQJhsViMfbu3eva9vTTTxunv/1iYmKM22+/vdTxJSZNmmQAxuzZsyvdDuPGjTMA48cff3RtS09PN0JCQgzASE1NLfe6p7v++uuNmJiYCpePiYkxrr/+eqO4uNiIjIw0nn/+ecMwDCMlJcUAjBUrVri+T2vXrnUdV1Zbvv/++wZgfPvtt+Veb/To0YbNZjOWLVtmGIbZHi1atDD69evn9h7Izc014uLijGuuueaM9U9NTTWAcj++//57t9d6ev3S09MNHx8f4+GHH3Zte+KJJwy73W5kZma6thUUFBihoaHGnXfe6dpW0i6nfn9KrvHVV1+51bPke/zdd9+5tp08edKIi4szYmNjDYfDYRiGYSxfvtwAjDZt2hgFBQWusv/5z38MwNi8ebNrW69evQzAmDt3rmvbL7/8YgCG1Wo1fvjhB9f2xYsXG4AxY8YM17aRI0caUVFRxtGjR93qOnjwYCMkJMT1Pa5MnSr7/hORi4tuxdayEydOAGX/1d27d28iIiJcH2+++SYAmZmZLFu2jEGDBnHy5EmOHj3K0aNHycjIoF+/fuzYsYODBw+6neuee+5xuzXXo0cPHA4He/fuBczeoaysLIYMGeI639GjR7HZbFx22WUsX768VP3uu+++UttO7QHLycnh6NGjdOvWDcMwWL9+/Tm0kGn58uU88cQTPPDAA9x6662VbocvvviCyy+/3K1nKiIiwnULuSbYbDYGDRrE+++/D5iTJqKjo+nRo0eZ5U9ty/z8fI4ePcrll18OwLp168o8Zvbs2bz11ltMmjSJPn36ALBhwwZ27NjB0KFDycjIcLVTTk4OV199Nd9++22Fbknfc889LFmypNRHQkKCW7mEhAS31xQREUGrVq3YvXu3a1tSUhJFRUV8/PHHrm1ff/01WVlZJCUlnbUucXFxpXr1vvjiCy699FKuvPJK17bAwEDuuece9uzZQ0pKilv5O+64w61Xs6TOp9az5ByDBw92fd2qVStCQ0Np06aN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3/P888/zxhtvkJ2dTWRkJJdddhn33ntvherz/vvvu2b0nur2228/r2D3j3/8g9zc3ArNhj2Thg0bsnr1ah577DFef/118vPz6dChA5999hnXX3/9eZ37fOq0Zs0annvuOT7++GPeeustwsPDadu2LS+++OI5nXP06NFs2LCBGTNm8OqrrxITE6NgJyIuFkOjckVEREQ8gsbYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh/Cq7QqIiIjURQ6Hg6Kiotquhng4u92OzWarcHkFOxERkUowDINDhw6RlZVV21WRi0RoaCiRkZFYLJazllWwExERqYSSUNegQQP8/f0r9MtW5FwYhkFubi7p6ekAREVFnfUYBTsREZEKcjgcrlAXHh5e29WRi4Cfnx8A6enpNGjQ4Ky3ZTV5QkREpIJKxtT5+/vXck3kYlLyfqvImE4FOxERkUrS7VepSZV5vynYiYiIiHgIBTsRERERD6FgJyIiUoMKCwvPa//5OHToEA888ADNmjXDx8eH6OhobrjhBr755ptqu6bULAU7ERGRGjJv3jzat2/P/v37y9y/f/9+2rdvz7x586r82nv27KFLly4sW7aMl156ic2bN/PVV1/Rp08f7r///iq/ntQOBTsREZEaUFhYyFNPPcX27dvp3bt3qXC3f/9+evfuzfbt23nqqaeqvOdu9OjRWCwW1qxZw8CBA2nZsiVt27bloYce4ocffmDPnj1YLBY2bNjgOiYrKwuLxUJycrJr25YtW7j22msJDAykYcOG3HrrrRw9erRK6yrnTsFORESkBnh7e7N06VKaNWvG7t273cJdSajbvXs3zZo1Y+nSpXh7e1fZtTMzM/nqq6+4//77CQgIKLU/NDS0QufJysriqquuolOnTvz000989dVXHD58mEGDBlVZXeX8KNiJiIjUkOjoaJKTk93C3erVq91CXXJyMtHR0VV63Z07d2IYBq1btz6v87zxxht06tSJF154gdatW9OpUyemT5/O8uXL2b59exXVVs6HnjwhIiJSg0rCXUmY6969O0C1hTowH01VFTZu3Mjy5csJDAwstW/Xrl20bNmySq4j507BTkREpIZF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FsHBdXDwZwiLg063QrhnPZxeaobG2ImIiNSEjF3w41Qz1IU1g4hWEBABfqHm54hW5vbMVLNcxq5aq6rFYuHTTz+ttevLuVOwExERqW5F+WZPXXY61G9ljqkri83b3J+dbpYvyq+yKowYMQKLxYLFYsFut9OwYUOuueYapk+fjtPp/uzatLQ0rr322gqdtyZD4DPPPMOf/vSnajt/fn4+I0aMoH379nh5eXHTTTdV27VKVPVrUrATERGpboc2/9FTd7YJEhYL1Iszyx/eUqXVSExMJC0tjT179vDll1/Sp08fHnzwQfr3709xcbGrXGRkJD4+PlV23cLCwio7V1Uorz4OhwM/Pz/Gjh1L3759a7hWVUPBTkREpDoZhjlRAkv5PXWn8/Ixy+9dbR5fRXx8fIiMjKRx48Z07tyZv//97yxYsIAvv/ySmTNnusqd2gtXWFjImDFjiIqKwtfXl5iYGCZMmABAbGwsAAMGDMBisbi+LumFeuedd9weXP/VV19x5ZVXEhoaSnh4OP3792fXLvdbzgcOHGDIkCGEhYUREBBA165d+fHHH5k5cybPPvssGzdudPU8ltR537593HjjjQQGBhIcHMygQYM4fPiw65zl1ed0AQEBTJkyhbvvvpvIyMgKtemZ2gcgKyuLu+66i4iICIKDg7nqqqvYuHEjwBlf07nS5AkREZHqVJRnzn71D6vccf5h5nFFeeDtXz11A6666io6duzIxx9/zF133VVq/+TJk1m4cCEffPABTZs2Zf/+/ezfvx+AtWvX0qBBA2bMmEFiYiI22x+PR9u5cyfz58/n448/dm3PycnhoYceokOHDmRnZ/PUU08xYMAANmzYgNVqJTs7m169etG4cWMWLlxIZGQk69atw+l0kpSUxJYtW/jqq69YunQpACEhITidTleoW7FiBcXFxdx///0kJSWRnJx8xvpUhTO1D8Att9yCn58fX375JSEhIUybNo2rr76a7du3l/uazoeCnYiISHVyFJpLmtgreWvT6vXHOndUX7ADaN26NZs2bSpz3759+2jRogVXXnklFouFmJgY176IiAgAQkNDS/VwFRYWMnv2bFcZgIEDB7qVmT59OhEREaSkpNCuXTvmzp3LkSNHWLt2LWFhZhCOj493lQ8MDMTLy8vtWkuWLGHz5s2kpqYSHR0NwOzZs2nbti1r167lkksu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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABR7UlEQVR4nO3dd3wUZeLH8c/uZtMbCYFQQgKEFpoUG0hTlKh4yNGLimLhFBHs3u/snqCc5bAAntI88FBQQSwIUhRQASG0gLTQA4GEBNI3u/P7Y83KkgQSSCHL9/167Qsy88zMM5OBfPPM8zxjMgzDQERERESqPXNVV0BEREREyoeCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp1UiRdeeAGTyeS2LCYmhhEjRlRqPWbMmIHJZGLfvn2VelwpHX1/RETKRsHuEpKUlMTo0aNp2rQp/v7++Pv7ExcXx0MPPcTmzZurunqXpX379mEymUr1KSl8xMTEYDKZ6NmzZ7Hr//Of/7j2sX79+go8mwtzvmswYcKEqq7iZWXOnDm8/fbbVV0NEblEeVV1BcRp0aJFDBo0CC8vL4YNG0bbtm0xm83s2LGDzz//nMmTJ5OUlER0dHRVV7XC/P7775jNl9bvGhEREXz88cduy9544w0OHTrEW2+9VaRsSXx9fVm+fDlHjx4lMjLSbd3s2bPx9fUlNze3/CpeAYYMGcItt9xSZHm7du0q7Jh33HEHgwcPxsfHp8KOUd3MmTOHrVu3Mnbs2KquiohcghTsLgF79uxh8ODBREdH88MPP1CnTh239a+99hrvv//+JRd6zpSVlUVAQMBF7eNS/OEdEBDA8OHD3Zb973//4+TJk0WWn0vnzp1Zt24dc+fO5ZFHHnEtP3ToED/99BN9+/Zl/vz55VbvitC+ffsynXN5sFgsWCyWc5YxDIPc3Fz8/PwqqVYiIpeuSzcpXEZef/11srKymD59epFQB+Dl5cWYMWOIiopyW75jxw769+9PWFgYvr6+dOzYkYULF7qVKeyjtHr1ah599FEiIiIICAigb9++HD9+vMixvv32W7p06UJAQABBQUHceuutbNu2za3MiBEjCAwMZM+ePdxyyy0EBQUxbNgwAH766ScGDBhAgwYN8PHxISoqinHjxpGTk3Pe63B2H7vSPvYszXUA2LZtG9dffz1+fn7Ur1+fV155BYfDcd56lQdfX1/++te/MmfOHLfln3zyCTVq1KBXr15Fttm8eTMjRoygUaNG+Pr6EhkZyT333ENqaqqrzPkek57p119/JT4+npCQEPz9/enWrRurV68u1/OMiYmhd+/erFq1iquuugpfX18aNWrErFmzXGXWr1+PyWRi5syZRbZfvHgxJpOJRYsWAcX3sSs8xuLFi+nYsSN+fn5MnToVgL179zJgwADCwsLw9/fnmmuu4euvv3Y7xooVKzCZTHz66af885//pH79+vj6+nLDDTewe/dut7Ldu3enVatWbN68mW7duuHv709sbCzz5s0DYOXKlVx99dX4+fnRrFkzli5dWuScDh8+zD333EPt2rXx8fGhZcuWTJs27YLq1L17d77++mv279/v+h7HxMSU4jsjIpcLtdhdAhYtWkRsbCxXX311qbfZtm0bnTt3pl69ejz99NMEBATw6aefcvvttzN//nz69u3rVv7hhx+mRo0aPP/88+zbt4+3336b0aNHM3fuXFeZjz/+mLvuuotevXrx2muvkZ2dzeTJk7nuuuvYuHGj2w+QgoICevXqxXXXXce//vUv/P39Afjss8/Izs7mb3/7G+Hh4axdu5Z33nmHQ4cO8dlnn5Xpupz9CBTgH//4BykpKQQGBpbpOhw9epQePXpQUFDgKvfBBx9UaivP0KFDuemmm9izZw+NGzcGnI/V+vfvj9VqLVJ+yZIl7N27l7vvvpvIyEi2bdvGBx98wLZt2/jll18wmUzFPiq22WyMGzcOb29v17Jly5Zx880306FDB55//nnMZjPTp0/n+uuv56effuKqq646b/2zs7M5ceJEkeWhoaF4ef35X8nu3bvp378/I0eO5K677mLatGmMGDGCDh060LJlSzp27EijRo349NNPueuuu9z2NXfu3BKD7pl+//13hgwZwgMPPMB9991Hs2bNOHbsGJ06dSI7O5sxY8YQHh7OzJkz+ctf/sK8efOK/JuYMGECZrOZxx9/nIyMDF5//XWGDRvGr7/+6lbu5MmT9O7dm8GDBzNgwAAmT57M4MGDmT17NmPHjmXUqFEMHTqUiRMn0r9/fw4ePEhQUBAAx44d45prrsFkMjF69GgiIiL49ttvGTlyJKdOnSryOPV8dfq///s/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7t27M3XqVJKTk4uUL24ak/Pp1asXwcHBvPrqq9hstgvaZ2Frw5n1NQyDf//732WuD8D06dOZOnUq7733XrGBtyzX4ZZbbuGXX35h7dq1butnz559QXU7W1xcHD179nR9OnToUGLZe++9l+eff5433nijxDLFXUug2DcOvPjiiyxevJhPPvmk2EeUHTp0oHHjxvzrX/8q9pH/hdwv5aFFixa0bt2auXPnMnfuXOrUqUPXrl0veH+33HILa9eu5eeff3Yty8rK4oMPPiAmJqZIX8CKZrFY6NevH/Pnzy+2Rf5Cr3tAQMAFd2sQEc+nFrtLQJMmTZgzZw5DhgyhWbNmrjdPGIZBUlISc+bMwWw2u/Vpe++997juuuto3bo19913H40aNeLYsWP8/PPPHDp0iE2bNpWpDsHBwUyePJk77riD9u3bM3jwYCIiIjhw4ABff/01nTt35t133z3nPpo3b07jxo15/PHHOXz4MMHBwcyfP/+C+gedOHGCBx98kLi4OHx8fPjvf//rtr5v374EBASU+jo8+eSTfPzxx8THx/PII4+4pjuJjo6u9Ne1RUdH88ILL5yzTHBwMF27duX111/HZrNRr149vv/+e5KSktzKbdmyhZdffpmuXbuSkpJS5DoNHz4cs9nMhx9+yM0330zLli25++67qVevHocPH2b58uUEBwfz1VdfnbfeGzZsKLJ/cLYIXnvttec/8WIMGjSI5557Dl9fX0aOHHlRk3A//fTTfPLJJ9x8882MGTOGsLAwZs6cSVJSEvPnz6+SCb4nTJjA8uXLufrqq7nvvvuIi4sjLS2NDRs2sHTpUtLS0sq8zw4dOjB37lweffRRrrzySgIDA7ntttsqoPYiUh0p2F0i+vTpw5YtW3jjjTf4/vvvmTZtGiaTiejoaG699VZGjRpF27ZtXeXj4uJYv349L774IjNmzCA1NZVatWrRrl07t0d3ZTF06FDq1q3LhAkTmDhxInl5edSrV48uXbpw9913n3d7q9XKV199xZgxYxg/fjy+vr707duX0aNHu9W9NDIzM8nNzSUxMdE1CvZMSUlJBAQElPo61KlTh+XLl/Pwww8zYcIEwsPDGTVqFHXr1nV13r/UzJkzh4cffpj33nsPwzC46aab+Pbbb6lbt66rTGpqKoZhsHLlSlauXFlkH4WPh7t3787PP//Myy+/zLvv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", "text/plain": [ "
" ] @@ -243,12 +251,12 @@ "output_type": "stream", "text": [ "Time t=5\n", - "[Array([[8]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[10]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABR4klEQVR4nO3dd3hUVeL/8ffMZNIbCYEECEkgtNCWYgNpiktUXGVRQlNRLIiIoK5lf2vfFcS1LBbAVZpfcFFRQSwIQlBABaUTlBaqgUBCgPRk5v7+uGZkSAIJpJDh83qePCH3nnvvmZMh+eTcc861GIZhICIiIiJ1nrW2KyAiIiIiVUPBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5qxTPPPIPFYnHbFhsby4gRI2q0HjNnzsRisbBnz54ava5UjL4/IiKVo2B3AUlNTWXMmDG0bNkSf39//P39SUhI4P7772fTpk21Xb2L0p49e7BYLBX6KC98xMbGYrFY6Nu3b5n7//vf/7rO8dNPP1Xjqzk3Z2uDiRMn1nYVLypz587ltddeq+1qiMgFyqu2KyCmRYsWkZSUhJeXF8OGDaNjx45YrVZ++eUXPv74Y6ZMmUJqaioxMTG1XdVq8+uvv2K1Xlh/a0RERPDee++5bXv55Zc5cOAAr776aqmy5fH19WX58uUcOnSIyMhIt31z5szB19eX/Pz8qqt4NRgyZAjXXXddqe2dOnWqtmveeuutDB48GB8fn2q7Rl0zd+5ctmzZwrhx42q7KiJyAVKwuwDs2rWLwYMHExMTwzfffENUVJTb/hdffJG33nrrggs9p8rJySEgIOC8znEh/vIOCAhg+PDhbtv+97//cezYsVLbz6R79+6sXbuWefPm8eCDD7q2HzhwgO+++44BAwYwf/78Kqt3dejcuXOlXnNVsNls2Gy2M5YxDIP8/Hz8/PxqqFYiIheuCzcpXEQmTZpETk4OM2bMKBXqALy8vBg7dizR0dFu23/55RduvvlmwsLC8PX1pWvXrixcuNCtTMkYpVWrVvHQQw8RERFBQEAAAwYM4MiRI6Wu9eWXX9KjRw8CAgIICgri+uuvZ+vWrW5lRowYQWBgILt27eK6664jKCiIYcOGAfDdd99xyy230LRpU3x8fIiOjmb8+PHk5eWdtR1OH2NX0dueFWkHgK1bt3LVVVfh5+dHkyZN+Oc//4nT6TxrvaqCr68vf/3rX5k7d67b9vfff5969erRr1+/Usds2rSJESNG0KxZM3x9fYmMjOTOO+8kIyPDVeZst0lP9eOPP5KYmEhISAj+/v706tWLVatWVenrjI2NpX///qxcuZJLL70UX19fmjVrxuzZs11lfvrpJywWC7NmzSp1/OLFi7FYLCxatAgoe4xdyTUWL15M165d8fPzY9q0aQDs3r2bW265hbCwMPz9/bn88sv5/PPP3a6RnJyMxWLhgw8+4F//+hdNmjTB19eXq6++mp07d7qV7d27N+3atWPTpk306tULf39/4uPj+eijjwBYsWIFl112GX5+frRq1YqlS5eWek0HDx7kzjvvpGHDhvj4+NC2bVumT59+TnXq3bs3n3/+OXv37nV9j2NjYyvwnRGRi4V67C4AixYtIj4+nssuu6zCx2zdupXu3bvTuHFjHn/8cQICAvjggw+46aabmD9/PgMGDHAr/8ADD1CvXj2efvpp9uzZw2uvvcaYMWOYN2+eq8x7773H7bffTr9+/XjxxRfJzc1lypQpXHnllaxfv97tF0hxcTH9+vXjyiuv5N///jf+/v4AfPjhh+Tm5nLfffcRHh7OmjVreP311zlw4AAffvhhpdrl9FugAP/4xz9IT08nMDCwUu1w6NAh+vTpQ3Fxsavc22+/XaO9PEOHDuXPf/4zu3btonnz5oB5W+3mm2/GbreXKr9kyRJ2797NHXfcQWRkJFu3buXtt99m69at/PDDD1gsljJvFRcVFTF+/Hi8vb1d25YtW8a1115Lly5dePrpp7FarcyYMYOrrrqK7777jksvvfSs9c/NzeXo0aOltoeGhuLl9cePkp07d3LzzTczcuRIbr/9dqZPn86IESPo0qULbdu2pWvXrjRr1owPPviA22+/3e1c8+bNKzfonurXX39lyJAh3Hvvvdx99920atWKw4cP061bN3Jzcxk7dizh4eHMmjWLv/zlL3z00Uel/k9MnDgRq9XKI488wvHjx5k0aRLDhg3jxx9/dCt37Ngx+vfvz+DBg7nllluYMmUKgwcPZs6cOYwbN45Ro0YxdOhQXnrpJW6++Wb2799PUFAQAIcPH+byyy/HYrEwZswYIiIi+PLLLxk5ciQnTpwodTv1bHX6f//v/3H8+HG3oQAl/xdERAAwpFYdP37cAIybbrqp1L5jx44ZR44ccX3k5ua69l199dVG+/btjfz8fNc2p9NpdOvWzWjRooVr24wZMwzA6Nu3r+F0Ol3bx48fb9hsNiMrK8swDMM4efKkERoaatx9991udTh06JAREhLitv322283AOPxxx8vVedT61hiwoQJhsViMfbu3eva9vTTTxunv/1iYmKM22+/vdTxJSZNmmQAxuzZsyvdDuPGjTMA48cff3RtS09PN0JCQgzASE1NLfe6p7v++uuNmJiYCpePiYkxrr/+eqO4uNiIjIw0nn/+ecMwDCMlJcUAjBUrVri+T2vXrnUdV1Zbvv/++wZgfPvtt+Veb/To0YbNZjOWLVtmGIbZHi1atDD69evn9h7Izc014uLijGuuueaM9U9NTTWAcj++//57t9d6ev3S09MNHx8f4+GHH3Zte+KJJwy73W5kZma6thUUFBihoaHGnXfe6dpW0i6nfn9KrvHVV1+51bPke/zdd9+5tp08edKIi4szYmNjDYfDYRiGYSxfvtwAjDZt2hgFBQWusv/5z38MwNi8ebNrW69evQzAmDt3rmvbL7/8YgCG1Wo1fvjhB9f2xYsXG4AxY8YM17aRI0caUVFRxtGjR93qOnjwYCMkJMT1Pa5MnSr7/hORi4tuxdayEydOAGX/1d27d28iIiJcH2+++SYAmZmZLFu2jEGDBnHy5EmOHj3K0aNHycjIoF+/fuzYsYODBw+6neuee+5xuzXXo0cPHA4He/fuBczeoaysLIYMGeI639GjR7HZbFx22WUsX768VP3uu+++UttO7QHLycnh6NGjdOvWDcMwWL9+/Tm0kGn58uU88cQTPPDAA9x6662VbocvvviCyy+/3K1nKiIiwnULuSbYbDYGDRrE+++/D5iTJqKjo+nRo0eZ5U9ty/z8fI4ePcrll18OwLp168o8Zvbs2bz11ltMmjSJPn36ALBhwwZ27NjB0KFDycjIcLVTTk4OV199Nd9++22Fbknfc889LFmypNRHQkKCW7mEhAS31xQREUGrVq3YvXu3a1tSUhJFRUV8/PHHrm1ff/01WVlZJCUlnbUucXFxpXr1vvjiCy699FKuvPJK17bAwEDuuece9uzZQ0pKilv5O+64w61Xs6TOp9az5ByDBw92fd2qVStCQ0Np06aN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3/P888/zxhtvkJ2dTWRkJJdddhn33ntvherz/vvvu2b0nur2228/r2D3j3/8g9zc3ArNhj2Thg0bsnr1ah577DFef/118vPz6dChA5999hnXX3/9eZ37fOq0Zs0annvuOT7++GPeeustwsPDadu2LS+++OI5nXP06NFs2LCBGTNm8OqrrxITE6NgJyIuFkOjckVEREQ8gsbYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh/Cq7QqIiIjURQ6Hg6Kiotquhng4u92OzWarcHkFOxERkUowDINDhw6RlZVV21WRi0RoaCiRkZFYLJazllWwExERqYSSUNegQQP8/f0r9MtW5FwYhkFubi7p6ekAREVFnfUYBTsREZEKcjgcrlAXHh5e29WRi4Cfnx8A6enpNGjQ4Ky3ZTV5QkREpIJKxtT5+/vXck3kYlLyfqvImE4FOxERkUrS7VepSZV5vynYiYiIiHgIBTsRERERD6FgJyIiUoMKCwvPa//5OHToEA888ADNmjXDx8eH6OhobrjhBr755ptqu6bULAU7ERGRGjJv3jzat2/P/v37y9y/f/9+2rdvz7x586r82nv27KFLly4sW7aMl156ic2bN/PVV1/Rp08f7r///iq/ntQOBTsREZEaUFhYyFNPPcX27dvp3bt3qXC3f/9+evfuzfbt23nqqaeqvOdu9OjRWCwW1qxZw8CBA2nZsiVt27bloYce4ocffmDPnj1YLBY2bNjgOiYrKwuLxUJycrJr25YtW7j22msJDAykYcOG3HrrrRw9erRK6yrnTsFORESkBnh7e7N06VKaNWvG7t273cJdSajbvXs3zZo1Y+nSpXh7e1fZtTMzM/nqq6+4//77CQgIKLU/NDS0QufJysriqquuolOnTvz000989dVXHD58mEGDBlVZXeX8KNiJiIjUkOjoaJKTk93C3erVq91CXXJyMtHR0VV63Z07d2IYBq1btz6v87zxxht06tSJF154gdatW9OpUyemT5/O8uXL2b59exXVVs6HnjwhIiJSg0rCXUmY6969O0C1hTowH01VFTZu3Mjy5csJDAwstW/Xrl20bNmySq4j507BTkREpIZF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FsHBdXDwZwiLg063QrhnPZxeaobG2ImIiNSEjF3w41Qz1IU1g4hWEBABfqHm54hW5vbMVLNcxq5aq6rFYuHTTz+ttevLuVOwExERqW5F+WZPXXY61G9ljqkri83b3J+dbpYvyq+yKowYMQKLxYLFYsFut9OwYUOuueYapk+fjtPp/uzatLQ0rr322gqdtyZD4DPPPMOf/vSnajt/fn4+I0aMoH379nh5eXHTTTdV27VKVPVrUrATERGpboc2/9FTd7YJEhYL1Iszyx/eUqXVSExMJC0tjT179vDll1/Sp08fHnzwQfr3709xcbGrXGRkJD4+PlV23cLCwio7V1Uorz4OhwM/Pz/Gjh1L3759a7hWVUPBTkREpDoZhjlRAkv5PXWn8/Ixy+9dbR5fRXx8fIiMjKRx48Z07tyZv//97yxYsIAvv/ySmTNnusqd2gtXWFjImDFjiIqKwtfXl5iYGCZMmABAbGwsAAMGDMBisbi+LumFeuedd9weXP/VV19x5ZVXEhoaSnh4OP3792fXLvdbzgcOHGDIkCGEhYUREBBA165d+fHHH5k5cybPPvssGzdudPU8ltR537593HjjjQQGBhIcHMygQYM4fPiw65zl1ed0AQEBTJkyhbvvvpvIyMgKtemZ2gcgKyuLu+66i4iICIKDg7nqqqvYuHEjwBlf07nS5AkREZHqVJRnzn71D6vccf5h5nFFeeDtXz11A6666io6duzIxx9/zF133VVq/+TJk1m4cCEffPABTZs2Zf/+/ezfvx+AtWvX0qBBA2bMmEFiYiI22x+PR9u5cyfz58/n448/dm3PycnhoYceokOHDmRnZ/PUU08xYMAANmzYgNVqJTs7m169etG4cWMWLlxIZGQk69atw+l0kpSUxJYtW/jqq69YunQpACEhITidTleoW7FiBcXFxdx///0kJSWRnJx8xvpUhTO1D8Att9yCn58fX375JSEhIUybNo2rr76a7du3l/uazoeCnYiISHVyFJpLmtgreWvT6vXHOndUX7ADaN26NZs2bSpz3759+2jRogVXXnklFouFmJgY176IiAgAQkNDS/VwFRYWMnv2bFcZgIEDB7qVmT59OhEREaSkpNCuXTvmzp3LkSNHWLt2LWFhZhCOj493lQ8MDMTLy8vtWkuWLGHz5s2kpqYSHR0NwOzZs2nbti1r167lkksuKbc+VeFM7bNy5UrWrFlDenq669b2v//9bz799FM++ugj7rnnnjJf0/nQrVgREZHqZPM216lzFlXuOGexeVxFb9+eB8MwsJQz9m/EiBFs2LCBVq1aMXbsWL7++usKnTMmJqZUiNqxYwdDhgyhWbNmBAcHu27d7tu3D4ANGzbQqVMnV6iriG3bthEdHe0KdQAJCQmEhoaybdu2M9anKpypfTZu3Eh2djbh4eEEBga6PlJTU0vdgq4q6rETkYvC3hN7ySnKqfRxAfYAYoJjzl5QpDx2P3PSxMF15rImFZWbCY07m8dXs23bthEXF1fmvs6dO5OamsqXX37J0qVLGTRoEH379uWjjz464zkDAgJKbbvhhhuIiYnhv//9L40aNcLpdNKuXTvXZAY/v+p7rWXVpyqcqX2ys7OJiopyuyVcIjQ0tFrqo2AnIh5v74m99P+k/zkfv2jAIoU7OXcWi/lEiYM///H4sLMpLgAMiOlW7Y8ZW7ZsGZs3b2b8+PHllgkODiYpKYmkpCRuvvlmEhMTyczMJCwsDLvdjsPhOOt1MjIy+PXXX/nvf/9Ljx49APNW5ak6dOjAO++84zr36by9vUtdq02bNq5xbSW9dikpKWRlZZGQkHDWelWF8tqnc+fOHDp0CC8vL1fv5OnKek3nQ8FORDzeufTUVeXxIkS2N58okbnbXKfuTGHNMOBYqlm+YbsqrUZBQQGHDh3C4XBw+PBhvvrqKyZMmED//v257bbbyjzmlVdeISoqik6dOmG1Wvnwww+JjIx09TjFxsbyzTff0L17d3x8fKhXr16Z56lXrx7h4eG8/fbbREVFsW/fPh5//HG3MkOGDOGFF17gpptuYsKECURFRbF+/XoaNWrEFVdcQWxsLKmpqWzYsIEmTZoQFBRE3759ad++PcOGDeO1116juLiY0aNH06tXL7p27VrpNkpJSaGwsJDMzExOnjzJhg0bAMpda+5M7dO3b1+uuOIKbrrpJiZNmkTLli357bff+PzzzxkwYABdu3Yt8zWdz1IzGmMnIiJS3ey+5mPCAhvA0V9/75ErQ3GBuT+wAXS+rcqfGfvVV18RFRVFbGwsiYmJLF++nMmTJ7NgwYJyZ4oGBQUxadIkunbtyiWXXMKePXv44osvsFrNCPHyyy+zZMkSoqOj6dSpU7nXtlqt/O9//+Pnn3+mXbt2jB8/npdeesmtjLe3N19//TUNGjTguuuuo3379kycONFVt4EDB5KYmEifPn2IiIjg/fffx2KxsGDBAurVq0fPnj3p27cvzZo1Y968eefURtdddx2dOnXis88+Izk5mU6dOp3xdZ2pfSwWC1988QU9e/bkjjvuoGXLlgwePJi9e/fSsGHDcl/T+bAYRhUukCMicgFKyUghaVHSOR8/r/88EsJr5paOXNjy8/NJTU0941poZ1TWs2KtXuZEidxMwDB76jrfZo7LE6Fy7zvdihUREakp4c2h1+PmEyX2rv5jnTqrzZwoEdPNvP1axT11cvFQsBMREalJdl9o0hUad/ljnTqbtzn7tZonSojnU7ATERGpDRbL70+UqN7Fh+XioskTIiIiIh5CwU5ERKSSNO9QalJl3m8KdiIiIhVkt9sByM3NreWayMWk5P1W8v47E42xExERqSCbzUZoaCjp6ekA+Pv7l/uMVZHzZRgGubm5pKenExoaWu5ag6dSsBMREamEyMhIAFe4E6luoaGhrvfd2SjYiYiIVILFYiEqKooGDRpQVFRU29URD2e32yvUU1dCwU5EROQc2Gy2Sv3CFakJmjwhIh4vwB5Qq8eLiNQUPStWRC4Ke0/sJacop9LHBdgDiAmOqYYaiYhUPQU7EREREQ+hW7EiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7ERE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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQn0lEQVR4nO3dd3wUZeLH8c/upncSAqGEJBB6O4qNjuIRBQ45hFBUUCyoyIF6p97vxHqCepbDAnhK88BDQQUrihCkqIBIDUgLPRBIg/Rkd35/jFlZkgCBFLJ836/XvsLOPDPzzGRDvnnmeZ6xGIZhICIiIiI1nrW6KyAiIiIiFUPBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU6qxdNPP43FYnFZFh0dzejRo6u0HrNnz8ZisbB///4qPa5cGH1/RETKR8HuMpKUlMS4ceNo1qwZfn5++Pn50apVKx588EG2bNlS3dW7Iu3fvx+LxXJBr7LCR3R0NBaLhT59+pS6/j//+Y9zHxs2bKjEs7k457sGU6ZMqe4qXlHmz5/P66+/Xt3VEJHLlEd1V0BMn3/+OfHx8Xh4eDBy5Ejat2+P1Wpl586dfPzxx0ybNo2kpCSioqKqu6qV5tdff8Vqvbz+1ggPD+f99993WfbKK69w+PBhXnvttRJly+Lj48OKFSs4duwYERERLuvmzZuHj48PeXl5FVfxSjB8+HBuvvnmEss7dOhQace8/fbbGTZsGN7e3pV2jJpm/vz5bNu2jQkTJlR3VUTkMqRgdxnYu3cvw4YNIyoqiu+++4569eq5rH/xxRd5++23L7vQc6bs7Gz8/f0vaR+X4y9vf39/brvtNpdl//vf/0hPTy+x/Fy6du3K+vXrWbBgAX/5y1+cyw8fPsyqVasYNGgQixYtqrB6V4aOHTuW65wrgs1mw2aznbOMYRjk5eXh6+tbRbUSEbl8Xb5J4Qry0ksvkZ2dzaxZs0qEOgAPDw/Gjx9PZGSky/KdO3dy6623Ehoaio+PD507d2bJkiUuZYr7KK1Zs4aHH36Y8PBw/P39GTRoECdOnChxrK+++oru3bvj7+9PYGAg/fr1Y/v27S5lRo8eTUBAAHv37uXmm28mMDCQkSNHArBq1SqGDBlCo0aN8Pb2JjIykokTJ5Kbm3ve63B2H7sLve15IdcBYPv27Vx//fX4+vrSsGFDnn/+eRwOx3nrVRF8fHz485//zPz5812Wf/DBB9SqVYu+ffuW2GbLli2MHj2axo0b4+PjQ0REBHfddRepqanOMue7TXqmn376ibi4OIKDg/Hz86Nnz56sWbOmQs8zOjqa/v37s3r1aq6++mp8fHxo3Lgxc+fOdZbZsGEDFouFOXPmlNh+6dKlWCwWPv/8c6D0PnbFx1i6dCmdO3fG19eXGTNmALBv3z6GDBlCaGgofn5+XHvttXzxxRcux0hISMBisfDhhx/yz3/+k4YNG+Lj48MNN9zAnj17XMr26tWLNm3asGXLFnr27Imfnx+xsbEsXLgQgJUrV3LNNdfg6+tL8+bNWbZsWYlzOnLkCHfddRd169bF29ub1q1bM3PmzIuqU69evfjiiy84cOCA83scHR19Ad8ZEblSqMXuMvD5558TGxvLNddcc8HbbN++na5du9KgQQMef/xx/P39+fDDD7nllltYtGgRgwYNcin/0EMPUatWLZ566in279/P66+/zrhx41iwYIGzzPvvv8+oUaPo27cvL774Ijk5OUybNo1u3brxyy+/uPwCKSoqom/fvnTr1o1//etf+Pn5AfDRRx+Rk5PD/fffT1hYGOvWreONN97g8OHDfPTRR+W6LmffAgX4xz/+QUpKCgEBAeW6DseOHaN3794UFRU5y73zzjtV2sozYsQI/vjHP7J3716aNGkCmLfVbr31Vjw9PUuU//bbb9m3bx933nknERERbN++nXfeeYft27fz448/YrFYSr1VXFhYyMSJE/Hy8nIuW758OTfddBOdOnXiqaeewmq1MmvWLK6//npWrVrF1Vdffd765+TkcPLkyRLLQ0JC8PD4/b+SPXv2cOuttzJmzBhGjRrFzJkzGT16NJ06daJ169Z07tyZxo0b8+GHHzJq1CiXfS1YsKDMoHumX3/9leHDh3Pfffdxzz330Lx5c44fP06XLl3Iyclh/PjxhIWFMWfOHP70pz+xcOHCEj8TU6ZMwWq18uijj5KZmclLL73EyJEj+emnn1zKpaen079/f4YNG8aQIUOYNm0aw4YNY968eUyYMIGxY8cyYsQIXn75ZW699VYOHTpEYGAgAMePH+faa6/FYrEwbtw4wsPD+eqrrxgzZgynTp0qcTv1fHX6v//7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Xr16MWPGDJKTk0uUL20ak/Pp27cvQUFBvPDCCxQWFl7UPotbG86sr2EY/Pvf/y53fQBmzZrFjBkzeOutt0oNvOW5DjfffDM//vgj69atc1k/b968i6rb2Vq1akWfPn2cr06dOpVZ9u677+app57ilVdeKbNMadcSKPWJA8888wxLly7lgw8+KPUWZadOnWjSpAn/+te/Sr3lfzGfl4rQsmVL2rZty4IFC1iwYAH16tWjR48eF72/m2++mXXr1vHDDz84l2VnZ/POO+8QHR1doi9gZbPZbAwePJhFixaV2iJ/sdfd39//ors1iIj7U4vdZaBp06bMnz+f4cOH07x5c+eTJwzDICkpifnz52O1Wl36tL311lt069aNtm3bcs8999C4cWOOHz/ODz/8wOHDh9m8eXO56hAUFMS0adO4/fbb6dixI8OGDSM8PJyDBw/yxRdf0LVrV958881z7qNFixY0adKERx99lCNHjhAUFMSiRYsuqn/QyZMneeCBB2jVqhXe3t7897//dVk/aNAg/P39L/g6/O1vf+P9998nLi6Ov/zlL87pTqKioqr8cW1RUVE8/fTT5ywTFBREjx49eOmllygsLKRBgwZ88803JCUluZTbunUrzz33HD169CAlJaXEdbrtttuwWq28++673HTTTbRu3Zo777yTBg0acOTIEVasWEFQUBCfffbZeeu9cePGEvsHs0XwuuuuO/+JlyI+Pp5Jkybh4+PDmDFjLmkS7scff5wPPviAm266ifHjxxMaGsqcOXNISkpi0aJF1TLB95QpU1ixYgXXXHMN99xzD61atSItLY2NGzeybNky0tLSyr3PTp06sWDBAh5++GGuuuoqAgICGDBgQCXUXkRqIgW7y8TAgQPZunUrr7zyCt988w0zZ87EYrEQFRVFv379GDt2LO3bt3eWb9WqFRs2bOCZZ55h9uzZpKamUqdOHTp06OBy6648RowYQf369ZkyZQovv/wy+fn5NGjQgO7du3PnnXeed3tPT08+++wzxo8fz+TJk/Hx8WHQoEGMGzfOpe4XIisri7y8PBITE52jYM+UlJSEv7//BV+HevXqsWLFCh566CGmTJlCWFgYY8eOpX79+s7O+5eb+fPn89BDD/HWW29hGAZ//OMf+eqrr6hfv76zTGpqKoZhsHLlSlauXFliH8W3h3v16sUPP/zAc889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ioiICABvv/02V111FWFhYaxZs4aXX365xBx1cnlTsBMREREAdu/ezfPPP09aWhqNGjXikUce4Yknnqjuakk5KNiJiIhUIn9P/2rdvjxee+01XnvttSo7nlQ8BTsREZFKFBUUxeeDPie7MPv8hc/i7+lPVFBUJdRK3JWCnYiISCVTOJOqoulORERERNyEWuxERESqgWEY5BU6KLA78LJZ8fG0OicCFrlYCnYiIiJVKK/QTmLyKdYnpXEgNRu7w8BmtRAV5s9VMaG0qheEj6etuqspNZSCnYiISBXZfzKbBRsOcSA1GwsWavl54uVlo8juYMvhTDYfziAqzJ/4zpFE16660bDiPtTHTkREpArsP5nNrDVJHDiZTVSoP7F1AggL8CbY15OwAG9i6wQQFerPgd/K7T9Z/lG07qxXr15MmDChuqtx2VOwExERqWR5hXYWbDjEidP5xNYJwMuj9F+/Xh5WYusEcOJ0Pgs2HCKv0F5hdRg9ejQWiwWLxYKnpycxMTH87W9/Iy8vr8KOUZNFR0fz+uuvV3c1LpmCnYiISCVLTD7FgdRsosL8zztAwmIx+9sdSM1mR/KpCq1HXFwcycnJ7Nu3j9dee40ZM2bw1FNPVegxLoVhGBQVFVV3NWo0BTsREZFKZBgG65PSsGAps6XubF4eVixYWJeUhmEYFVYXb29vIiIiiIyM5JZbbqFPnz58++23zvUOh4PJkycTExODr68v7du3Z+HChc71nTt35l//+pfz/S233IKnpydZWVkAHD58GIvFwp49ewB4//336dy5M4GBgURERDBixAhSUlKc2yckJGCxWPjqq6/o1KkT3t7erF69muzsbO644w4CAgKoV68er7zyynnPbfPmzfTu3ZvAwECCgoLo1KkTGzZscK5fvXo13bt3x9fXl8jISMaPH092tnm7u1evXhw4cICJEyc6WzVrKgU7ERGRSpRX6OBAaja1/DzLtV0tP08OpGaTV+iolHpt27aNtWvX4uXl5Vw2efJk5s6dy/Tp09m+fTsTJ07ktttuY+XKlQD07NmThIQEwAysq1atIiQkhNWrVwOwcuVKGjRoQGxsLACFhYU899xzbN68mU8//ZT9+/czevToEnV5/PHHmTJlCjt27KBdu3b89a9/ZeXKlSxevJhvvvmGhIQENm7ceM7zGTlyJA0bNmT9+vX8/PPPPP7443h6mtd87969xMXFMXjwYLZs2cKCBQtYvXo148aNA+Djjz+mYcOGPPvssyQnJ5OcnHxJ17Y6aVSsiIhIJSqwO7A7DLy8yjeFic1qofC3ee58qZjpTz7//HMCAgIoKioiPz8fq9XKm2++CUB+fj4vvPACy5Yt47rrrgOgcePGrF69mhkzZtCzZ0969erFe++9h91uZ9u2bXh5eREfH09CQgJxcXEkJCTQs2dP5/Huuusu578bN27M1KlTueqqq8jKyiIgIMC57tlnn+XGG28EICsri/fee4///ve/3HDDDQDMmTOHhg0bnvPcDh48yF//+ldatGgBQNOmTZ3rJk+ezMiRI52DL5o2bcrUqVPp2bMn06ZNIzQ0FJvN5mxZrMnUYiciIlKJvGxWbFYLRfbytbwVz2/nZau4X9W9e/dm06ZN/PTTT4waNYo777yTwYMHA7Bnzx5ycnK48cYbCQgIcL7mzp3L3r17AejevTunT5/ml19+YeXKlc6wV9yKt3LlSnr16uU83s8//8yAAQNo1KgRgYGBztB38OBBl3p17tzZ+e+9e/dSUFDANddc41wWGhpK8+bNz3luDz/8MHfffTd9+vRhypQpzjqDeZt29uzZLufVt29fHA4HSUlJ5b+QlzEFOxERkUrk42klKsyf9JzCcm2XnlNIVJg/Pp4V96va39+f2NhY2rdvz8yZM/npp5947733AJz95L744gs2bdrkfCUmJjr72YWEhNC+fXsSEhKcIa5Hjx788ssv7Nq1i927dzvDW3Z2Nn379iUoKIh58+axfv16PvnkEwAKCgpK1OtSPf3002zfvp1+/fqxfPlyWrVq5TxeVlYW9913n8t5bd68md27d9OkSZNLPvblRMFORESkElksFq6KCcXAoKDowlrtCoocGBhcHRNaaR35rVYrf//73/nHP/5Bbm4urVq1wtvbm4MHDxIbG+vyioyMdG7Xs2dPVqxYwffff0+vXr0IDQ2lZcuW/POf/6RevXo0a9YMgJ07d5KamsqUKVPo3r07LVq0cBk4UZYmTZrg6enJTz/95FyWnp7Orl27zrtts2bNmDhxIt988w1//vOfmTVrFgAdO3YkMTGxxHnFxsY6+xh6eXlht1fc9DLVRcFORESkkrWqF+ScwuR8o1wNw3BOjdKyXlCl1mvIkCHYbDbeeustAgMDefTRR5k4cSJz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3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchFsGO4fDoNDuwOEwqrsqbkvXWNyCYYC9EBz26q6JiEiF8KjuClQEwzA4fiqf7UczSTqZzeH0HIrsBjarhfohvsTU9qdV/SAahPhisViqu7o1VsrpPLYfOUXSyWwOpuVQZHdgs1qoF+xLdG1/WtULIjJU11guczlpkLwJUvdB2j4oygOLBQLrQWgTqNsawmLB6pZ/94qIm7MYhlGjm1zSsgv4elsyvxzM4FReIV42K37eHnhYLdgdBjkFdvIK7QT5eNAuMoSb2tQjPNC7uqtdo2TmFvLN9mOs359GZm4hnjYr/l4eeNh+v8b5hXb8fTxoUz+Im9vWJyLYp7qrLeKqIBt2fwv7VkD2SbB6glcA2DzBcEBhjvny9IPwFtD6FghrUt21FhEplxod7HYeO8VHGw5xKC2XiCAfQvw8S20tMgyDzNxCjp3Ko16wL3/u2IB2DUOqvsI10J6ULD7ccJD9J3OoE+hNqL9Xmdf4dF4RRzPzCA/0YlCHBnSKCq2GGouUIvMw/DwXUraDX23wDwerrfSy+VmQeRB8gqHV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", "text/plain": [ "
" ] @@ -261,12 +269,12 @@ "output_type": "stream", "text": [ "Time t=6\n", - "[Array([[3]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32)]\n" + "[Array([[5]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQnklEQVR4nO3dd3hUVeL/8ffMZNIbCYEECCmEFpoUG0hTXKLiCotKVVEsiIigrmV/a3cFYS2LBXCV5hdcFCwIKtKCAiogvSgt9EAgIUD6ZOb+/hgzMiSBBFLI8Hk9Tx7Mvefee+7JSD6ce865JsMwDERERESkxjNXdwVEREREpGIo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNhJtXjxxRcxmUxu22JjYxkyZEiV1mPatGmYTCb27t1bpdeVstHPR0SkfBTsLiEpKSmMGDGCJk2a4O/vj7+/P4mJiTzyyCNs2rSpuqt3Wdq7dy8mk6lMX6WFj9jYWEwmEz169Chx/3//+1/XOdauXVuJd3NhztcGY8eOre4qXlZmzZrF22+/Xd3VEJFLlFd1V0Cc5s+fT79+/fDy8mLQoEG0adMGs9nMb7/9xueff87EiRNJSUkhJiamuqtaaX7//XfM5kvr3xoRERF8/PHHbtveeOMNDh48yFtvvVWsbGl8fX1ZtmwZR44cITIy0m3fzJkz8fX1JS8vr+IqXgkGDBjAzTffXGx727ZtK+2ad911F/3798fHx6fSrlHTzJo1iy1btjBq1KjqroqIXIIU7C4Bu3fvpn///sTExLBkyRKioqLc9r/++uu8//77l1zoOVN2djYBAQEXdY5L8Zd3QEAAgwcPdtv2v//9jxMnThTbfi6dOnVizZo1zJ49m8cee8y1/eDBg/z444/06dOHuXPnVli9K0O7du3Kdc8VwWKxYLFYzlnGMAzy8vLw8/OrolqJiFy6Lt2kcBkZN24c2dnZTJ06tVioA/Dy8mLkyJFER0e7bf/tt9+4/fbbCQsLw9fXlw4dOjBv3jy3MkVjlFauXMnjjz9OREQEAQEB9OnTh2PHjhW71rfffkvnzp0JCAggKCiIW265ha1bt7qVGTJkCIGBgezevZubb76ZoKAgBg0aBMCPP/7IHXfcQcOGDfHx8SE6OprRo0eTm5t73nY4e4xdWR97lqUdALZu3cr111+Pn58fDRo04NVXX8XhcJy3XhXB19eXv/3tb8yaNctt+yeffEKtWrXo2bNnsWM2bdrEkCFDiI+Px9fXl8jISO677z7S09NdZc73mPRMv/zyC0lJSYSEhODv70/Xrl1ZuXJlhd5nbGwsvXr1YsWKFVx11VX4+voSHx/PjBkzXGXWrl2LyWRi+vTpxY5fuHAhJpOJ+fPnAyWPsSu6xsKFC+nQoQN+fn5MnjwZgD179nDHHXcQFhaGv78/11xzDQsWLHC7RnJyMiaTiU8//ZR//etfNGjQAF9fX2644QZ27drlVrZbt260bNmSTZs20bVrV/z9/UlISGDOnDkALF++nKuvvho/Pz+aNm3K4sWLi93ToUOHuO+++6hbty4+Pj60aNGCKVOmXFCdunXrxoIFC9i3b5/rZxwbG1uGn4yIXC7UY3cJmD9/PgkJCVx99dVlPmbr1q106tSJ+vXr88wzzxAQEMCnn35K7969mTt3Ln369HEr/+ijj1KrVi1eeOEF9u7dy9tvv82IESOYPXu2q8zHH3/MPffcQ8+ePXn99dfJyclh4sSJXHfddaxfv97tF0hhYSE9e/bkuuuu49///jf+/v4AfPbZZ+Tk5PDwww8THh7O6tWreeeddzh48CCfffZZudrl7EegAP/85z9JS0sjMDCwXO1w5MgRunfvTmFhoavcBx98UKW9PAMHDuQvf/kLu3fvplGjRoDzsdrtt9+O1WotVn7RokXs2bOHe++9l8jISLZu3coHH3zA1q1b+fnnnzGZTCU+KrbZbIwePRpvb2/XtqVLl3LTTTfRvn17XnjhBcxmM1OnTuX666/nxx9/5Kqrrjpv/XNycjh+/Hix7aGhoXh5/flXya5du7j99tsZOnQo99xzD1OmTGHIkCG0b9+eFi1a0KFDB+Lj4/n000+555573M41e/bsUoPumX7//XcGDBjAQw89xAMPPEDTpk05evQoHTt2JCcnh5EjRxIeHs706dP561//ypw5c4r9PzF27FjMZjNPPvkkJ0+eZNy4cQwaNIhffvnFrdyJEyfo1asX/fv354477mDixIn079+fmTNnMmrUKIYNG8bAgQMZP348t99+OwcOHCAoKAiAo0ePcs0112AymRgxYgQRERF8++23DB06lFOnThV7nHq+Ov2///f/OHnypNtQgKL/F0READCkWp08edIAjN69exfbd+LECePYsWOur5ycHNe+G264wWjVqpWRl5fn2uZwOIyOHTsajRs3dm2bOnWqARg9evQwHA6Ha/vo0aMNi8ViZGZmGoZhGKdPnzZCQ0ONBx54wK0OR44cMUJCQty233PPPQZgPPPMM8XqfGYdi4wZM8YwmUzGvn37XNteeOEF4+yPX0xMjHHPPfcUO77IuHHjDMCYMWNGudth1KhRBmD88ssvrm1paWlGSEiIARgpKSmlXvdst9xyixETE1Pm8jExMcYtt9xiFBYWGpGRkcYrr7xiGIZhbNu2zQCM5cuXu35Oa9ascR1XUlt+8sknBmD88MMPpV5v+PDhhsViMZYuXWoYhrM9GjdubPTs2dPtM5CTk2PExcUZN9544znrn5KSYgClfv30009u93p2/dLS0gwfHx/jiSeecG179tlnDavVamRkZLi25efnG6GhocZ9993n2lbULmf+fIqu8d1337nVs+hn/OOPP7q2nT592oiLizNiY2MNu91uGIZhLFu2zACM5s2bG/n5+a6y//nPfwzA2Lx5s2tb165dDcCYNWuWa9tvv/1mAIbZbDZ+/vln1/aFCxcagDF16lTXtqFDhxpRUVHG8ePH3erav39/IyQkxPUzLk+dyvv5E5HLix7FVrNTp04BJf+ru1u3bkRERLi+3nvvPQAyMjJYunQpd955J6dPn+b48eMcP36c9PR0evbsyc6dOzl06JDbuR588EG3R3OdO3fGbrezb98+wNk7lJmZyYABA1znO378OBaLhauvvpply5YVq9/DDz9cbNuZPWDZ2dkcP36cjh07YhgG69evv4AWclq2bBnPPvssjz76KHfddVe52+Gbb77hmmuuceuZioiIcD1CrgoWi4U777yTTz75BHBOmoiOjqZz584llj+zLfPy8jh+/DjXXHMNAOvWrSvxmBkzZvD+++8zbtw4unfvDsCGDRvYuXMnAwcOJD093dVO2dnZ3HDDDfzwww9leiT94IMPsmjRomJfiYmJbuUSExPd7ikiIoKmTZuyZ88e17Z+/fphs9n4/PPPXdu+//57MjMz6dev33nrEhcXV6xX75tvvuGqq67iuuuuc20LDAzkwQcfZO/evWzbts2t/L333uvWq1lU5zPrWXSO/v37u75v2rQpoaGhNG/e3K2Xvei/i443DIO5c+dy6623YhiG2/9XPXv25OTJk8V+jmWtk4hIafQotpoVPbLJysoqtm/y5MmcPn2ao0ePug1a37VrF4Zh8Nxzz/Hcc8+VeN60tDTq16/v+r5hw4Zu+2vVqgU4HzMB7Ny5E4Drr7++xPMFBwe7fe/l5UWDBg2Kldu/fz/PP/888+bNc527yMmTJ0s89/kcPHiQfv360alTJ958803X9vK0w759+0p81N20adMLqtPZTp486TaO0Nvbm7CwsGLlBg4cyIQJE9i4cSOzZs2if//+xcbCFcnIyOCll17if//7H2lpacWud7YNGzYwbNgwBgwYwOOPP+7aXvSzPfux59nnK/pMlKZx48alLtlyprM/a+D8vJ35eWjTpg3NmjVj9uzZDB06FHA+hq1du3apn8EzxcXFFdtW2s+4efPmrv0tW7YstZ5n/z9RpEGDBsV+RiEhIcXGvIaEhLgdf+zYMTIzM/nggw/44IMPSryPs3+uZa2TiEhpFOyqWUhICFFRUWzZsqXYvqJfUmevj1bUu/Lkk0+WOhYpISHB7fvSZhYahuF2zo8//rjYchyA2xgqcM5gPXuWrt1u58YbbyQjI4Onn36aZs2aERAQwKFDhxgyZMgFTVQoKCjg9ttvx8fHh08//dStHhfSDpXlsccec5sM0LVrV5KTk4uVu/rqq2nUqBGjRo0iJSWFgQMHlnrOO++8k1WrVvH3v/+dK664gsDAQBwOB0lJScXa8sSJE/Tt25cmTZrw4Ycfuu0rKjt+/HiuuOKKEq9VkeO0zvdZK9KvXz/+9a9/cfz4cYKCgpg3bx4DBgwo9lkrSUWMjSxrPUsrV9b/pwYPHlxqqG7duvUF1UlEpDQKdpeAW265hQ8//JDVq1eXaRB7fHw8AFartUw9KGVRNJi/Tp06F3zOzZs3s2PHDqZPn87dd9/t2r5o0aILrtfIkSPZsGEDP/zwA3Xr1nXbV552iImJcfVcnen333+/4Lqd6amnnnLrVT1X79eAAQN49dVXad68ealB68SJEyxZsoSXXnqJ559/3rW9pHtwOBwMGjSIzMxMFi9e7JrIUqToZxscHFxhn5eK0K9fP1566SXmzp1L3bp1OXXqlNsjz/KKiYkp8ef522+/ufZXpYiICIKCgrDb7RXa7qX18IqIgJY7uSQ89dRT+Pv7c99993H06NFi+8/+13qdOnXo1q0bkydPJjU1tVj5kpYxOZ+ePXsSHBzMa6+9hs1mu6BzFvU2nFlfwzD4z3/+U+76AEydOpXJkyfz3nvvlRh4y9MON998Mz///DOrV6922z9z5swLqtvZEhMT6dGjh+urffv2pZa9//77eeGFF3jjjTdKLVNSWwIlvnHgpZdeYuHChXzyySclPqJs3749jRo14t///neJj/wv5PNSEZo3b06rVq2YPXs2s2fPJioqii5dulzw+W6++WZWr17NTz/95NqWnZ3NBx98QGxsbLGxgJXNYrHQt29f5s6dW2KP/IW2e0BAwAUPaxARz6ceu0tA48aNmTVrFgMGDKBp06auN08YhkFKSgqzZs3CbDa7jWl77733uO6662jVqhUPPPAA8fHxHD16lJ9++omDBw+ycePGctUhODiYiRMnctddd9GuXTv69+9PREQE+/fvZ8GCBXTq1Il33333nOdo1qwZjRo14sknn+TQoUMEBwczd+7cCxofdPz4cYYPH05iYiI+Pj783//9n9v+Pn36EBAQUOZ2eOqpp/j4449JSkrisccecy13EhMTU+Wva4uJieHFF188Z5ng4GC6dOnCuHHjsNls1K9fn++//56UlBS3cps3b+aVV16hS5cupKWlFWunwYMHYzab+fDDD7npppto0aIF9957L/Xr1+fQoUMsW7aM4OBgvv766/PWe926dcXOD84ewWuvvfb8N16Cfv368fzzz+Pr68vQoUMvahHuZ555hk8++YSbbrqJkSNHEhYWxvTp00lJSWHu3LnVssD32LFjWbZsGVdffTUPPPAAiYmJZGRksG7dOhYvXkxGRka5z9m+fXtmz57N448/zpVXXklgYCC33nprJdReRGoiBbtLxG233cbmzZt54403+P7775kyZQomk4mYmBhuueUWhg0bRps2bVzlExMTWbt2LS+99BLTpk0jPT2dOnXq0LZtW7dHd+UxcOBA6tWrx9ixYxk/fjz5+fnUr1+fzp07c++99573eKvVytdff83IkSMZM2YMvr6+9OnThxEjRrjVvSyysrLIy8tj27ZtrlmwZ0pJSSEgIKDM7RAVFcWyZct49NFHGTt2LOHh4QwbNox69eq5Bu9fambNmsWjjz7Ke++9h2EY/OUvf+Hbb7+lXr16rjLp6ekYhsHy5ctZvnx5sXMUPR7u1q0bP/30E6+88grv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", + "image/png": "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3vzwww8899xzvPnmm+Tk5BAdHc2ll17KPffcc0b1+fDDD90jek902223nVOw+8c//kFeXt4ZjYY9lfr167Ny5UoeffRR3njjDQoKCujQoQOff/4511133Tnt+1zqtGrVKp599lk++eQT3n77bSIjI2nbti0vvvjiWe3zvvvuY/369UydOpXXXnuN2NhYBTsRcbMY6pUrIiIi4hXUx05ERETESyjYiYiIiHgJBTsRERERL6FgJyIiIuIlFOxEREREvISCnYiIiIiXULATERER8RIKdiIiIiJeQsFORERExEso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyET01XQEREpDZyOp04HI6aroZ4Obvdjs1mO+PyCnYiIiIVYBgGBw8eJCsrq6arIheI8PBwoqOjsVgspy2rYCciIlIBJaGuXr16BAYGntEvW5GzYRgGeXl5pKenA9CgQYPTbqNgJyIicoacTqc71EVGRtZ0deQCEBAQAEB6ejr16tU77W1ZDZ4QERE5QyV96gIDA2u4JnIhKfm8nUmfTgU7ERGRCtLtV6lOFfm8KdiJiIiIeAkFOxEREREvoWAnIiJSjYqKis5p/bk4ePAgDzzwAE2bNsXPz4+YmBiuv/56vv322yo7plQvBTsREZFqMnv2bNq3b8++ffvKXL9v3z7at2/P7NmzK/3Yu3fvpkuXLixZsoSXX36ZTZs28fXXX9OnTx/uv//+Sj+e1AwFOxERkWpQVFTEk08+ybZt2+jdu3epcLdv3z569+7Ntm3bePLJJyu95e6+++7DYrGwatUqBg0aRIsWLWjbti0PPvggP/74I7t378ZisbB+/Xr3NllZWVgsFpKTk93LNm/ezDXXXENwcDD169fnlltu4ciRI5VaVzl7CnYiIiLVwNfXl8WLF9O0aVN27drlEe5KQt2uXbto2rQpixcvxtfXt9KOnZmZyddff839999PUFBQqfXh4eFntJ+srCyuvPJKOnXqxJo1a/j66685dOgQN998c6XVVc6Ngp2IiEg1iYmJITk52SPcrVy50iPUJScnExMTU6nH3bFjB4Zh0KpVq3Paz5tvvkmnTp144YUXaNWqFZ06dWLKlCksXbqUbdu2VVJt5VzoyRMiIiLVqCTclYS57t27A1RZqAPz0VSVYcOGDSxdupTg4OBS63bu3EmLFi0q5Thy9hTs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+dypxU5ERKQajRoF339v3m79vQsaVqv5/vvvz/9Qt2TJEubPn09qaiorV65k8ODBxMXF0bNnz5qumqA+diIiItWue3fzlZ9vjn4NDa36PnWVxeFw8Pe//51du3YREhJCt27dmDlzpntQg9QsBTsREZEaEhBQewJdiX79+tGvX7+aroaUQ7diRURERLyEgp2IiIiIl1CwExEREfESCnYiIiIiXkLBTkRERMRLaFSsiIhIFdtzbA+5jtwKbxdkDyI2NLYKaiTeSsFORESkCu05tof+n/Y/6+0XDFygcCdnTLdiRUREqtDZtNRV5vYn++GHH7DZbFx33XWVut8ztXv3biwWC+vXr6+R43s7BTsREZELyPvvv88DDzzAd999x2+//VbT1ZFKpmAnIiJygcjJyWH27Nnce++9XHfddUybNs1j/fz582nevDn+/v706dOH6dOnY7FYyMrKcpdZvnw5PXr0ICAggJiYGMaMGUNu7h+tinFxcbzwwgvccccdhISE0KRJE9599133+vj4eAA6deqExWKhd+/eVXnKFxwFOxERkQvERx99RKtWrWjZsiXDhw9nypQpGIYBQGpqKjfeeCM33HADGzZs4J577uH//u//PLbfuXMniYmJDBo0iI0bNzJ79myWL1/O6NGjPcq98sordO3alXXr1nHfffdx77338uuvvwKwatUqABYvXkxaWhqffPJJNZz5hUPBTkRE5ALx/vvvM3z4cAASExPJzs5m2bJlALzzzju0bNmSl19+mZYtWzJ48GBGjBjhsf348eMZNmwYY8eOpXnz5nTr1o2JEycyY8YMCgoK3OWuvfZa7rvvPhISEnj00UepW7cuS5cuBSAqKgqAyMhIoqOjiYiIqIYzv3Ao2ImIiFwAfv31V1atWsWQIUMA8PHxISkpiffff9+9/uKLL/bY5pJLLvF4v2HDBqZNm0ZwcLD71a9fP1wuF6mpqe5yHTp0cP/bYrEQHR1Nenp6VZ2anEDTnYiIiFwA3n//fYqLi2nYsKF7mWEY+Pn58eabb57RPnJycrjnnnsYM2ZMqXVNmjRx/9tut3uss1gsuFyus6y5VISCnYiIiJcrLi5mxowZvPLKK/zpT3/yWHfDDTfw4Ycf0rJlS7788kuPdatXr/Z437lzZ1JSUkhISDjruvj6+gLgdDrPeh9SPgU7ERERL7dgwQKOHj3K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gDvciVS18PBw9+fudBTsRMQ72Xwg4SrzObGFOeAX/Me6P19qzlP38XJz9KvLMPvUdWttttSVhDrDgKO7oUFH8zmzIoDFYqFBgwbUq1cPh8Nx+g1EzoHdbj+jlroSCnYi4r1iLoW0DbB7OdRt4TmnXbtY81XoMEe/Bvn/0aeuRNZeCKgD7W80g6LICWw2W4V+4YpUh1r9P1WQPahGtxeR85zVBh2SID/LnOm/Tjz4nvRz72cvHegMl9lSZ/WBjoPNW7oiIrVArX5WLMCeY3vIdeRWeLsgexCxobFVUCMROe/kZcK6/8KBn8HHH0IagE8ZU5cYhjkJcc5BCG0E7W+CmIurv74iImep1gc7EZEz4iyG3d/Djm8he585x53N37w9a7igOA9cLvMpAA07Q+v+EFyvpmstIlIhCnYicmFxFED6FsjaZz6AvTDH7D8X2hjCG0O9thBSv6ZrKSJyVhTsRERERLyEnjwhIiIi4iUU7ERERES8hIKdiIiIiJdQsBMRERHxEgp2IiIiIl5CwU5ERETESyjYiYiIiHgJBTsRERERL6FgJyIiIuIlFOxEREREvISCnYiIiIiXULATERER8RIKdiIiIiJeQsFORERExEso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyEgp2IiIiIl1CwExEREfESCnYiIiIiXkLBTkRERMRLKNiJiIiIeAkFOxEREREvoWAnIiIi4iUU7ERERES8hIKdiIiIiJdQsBMRERHxEgp2IiIiIl5CwU5ERETESyjYiYiIiHgJBTsRERERL6FgJyIiIuIlFOxEREREvISCnYiIiIiXULATERER8RIKdiIiIiJeQsFORERExEso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyEgp2IiIiIl1CwExEREfESCnYiIiIiXkLBTkRERMRLKNiJiIiIeAkFOxEREREvoWAnIiIi4iUU7ERERES8hIKdiIiIiJdQsBMRERHxEgp2IiIiIl5CwU5ERETESyjYiYiIiHgJBTsRERERL6FgJyIiIuIlFOxEREREvISCnYiIiIiXULATERER8RIKdiIiIiJeQsFORERExEso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyEVwY7l8vA4XThchk1XRWvpWssXsEwwOkAl7OmayIiUil8aroClcEw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Irb8ls2+zDz2ZuZRVOzC18dKTJ1AGkcE0qZBKFEhChvnIjvPwZbfstn7+zUucDix26w0rhPgvsb1detVzneFOXBwI2TuhsxdUJRjTj4c1hjqxJmDJMKbqJVORGolrwl2IiIiIhe6Wjl4QkRERERKU7ATERER8RIKdiIiIiJeQsFORERExEso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyEgp2IiIiIl1CwExEREfESCnYiIiIiXkLBTkRERMRLKNiJiIiIeAkFOxEREREvoWAnIiIi4iUU7ERERES8hIKdiIiIiJdQsBMRERHxEgp2IiIiIl5CwU5ERETESyjYiYiIiHgJBTsRERERL6FgJyIiIuIlFOxEREREvISCnYiIiIiXULATERER8RIKdiIiIiJeQsFORERExEso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyEgp2IiIiIl1CwExEREfESCnYiIiIiXkLBTkRERMRLKNiJiIiIeAkFOxEREREvoWAnIiIi4iUU7ERERES8hIKdiIiIiJdQsBMRERHxEgp2IiIiIl7i/wEkYmBVQICVPgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -279,12 +287,12 @@ "output_type": "stream", "text": [ "Time t=7\n", - "[Array([[3]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32)]\n" + "[Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQnklEQVR4nO3dd3hUVeL/8ffMZNIbCYEECCmEFpoUG0hTXKLiCotKVVEsiIigrmV/a3cFYS2LBXCV5hdcFCwIKtKCAiogvSgt9EAgIUD6ZOb+/hgzMiSBBFLI8Hk9Tx7Mvefee+7JSD6ce865JsMwDERERESkxjNXdwVEREREpGIo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNhJtXjxxRcxmUxu22JjYxkyZEiV1mPatGmYTCb27t1bpdeVstHPR0SkfBTsLiEpKSmMGDGCJk2a4O/vj7+/P4mJiTzyyCNs2rSpuqt3Wdq7dy8mk6lMX6WFj9jYWEwmEz169Chx/3//+1/XOdauXVuJd3NhztcGY8eOre4qXlZmzZrF22+/Xd3VEJFLlFd1V0Cc5s+fT79+/fDy8mLQoEG0adMGs9nMb7/9xueff87EiRNJSUkhJiamuqtaaX7//XfM5kvr3xoRERF8/PHHbtveeOMNDh48yFtvvVWsbGl8fX1ZtmwZR44cITIy0m3fzJkz8fX1JS8vr+IqXgkGDBjAzTffXGx727ZtK+2ad911F/3798fHx6fSrlHTzJo1iy1btjBq1KjqroqIXIIU7C4Bu3fvpn///sTExLBkyRKioqLc9r/++uu8//77l1zoOVN2djYBAQEXdY5L8Zd3QEAAgwcPdtv2v//9jxMnThTbfi6dOnVizZo1zJ49m8cee8y1/eDBg/z444/06dOHuXPnVli9K0O7du3Kdc8VwWKxYLFYzlnGMAzy8vLw8/OrolqJiFy6Lt2kcBkZN24c2dnZTJ06tVioA/Dy8mLkyJFER0e7bf/tt9+4/fbbCQsLw9fXlw4dOjBv3jy3MkVjlFauXMnjjz9OREQEAQEB9OnTh2PHjhW71rfffkvnzp0JCAggKCiIW265ha1bt7qVGTJkCIGBgezevZubb76ZoKAgBg0aBMCPP/7IHXfcQcOGDfHx8SE6OprRo0eTm5t73nY4e4xdWR97lqUdALZu3cr111+Pn58fDRo04NVXX8XhcJy3XhXB19eXv/3tb8yaNctt+yeffEKtWrXo2bNnsWM2bdrEkCFDiI+Px9fXl8jISO677z7S09NdZc73mPRMv/zyC0lJSYSEhODv70/Xrl1ZuXJlhd5nbGwsvXr1YsWKFVx11VX4+voSHx/PjBkzXGXWrl2LyWRi+vTpxY5fuHAhJpOJ+fPnAyWPsSu6xsKFC+nQoQN+fn5MnjwZgD179nDHHXcQFhaGv78/11xzDQsWLHC7RnJyMiaTiU8//ZR//etfNGjQAF9fX2644QZ27drlVrZbt260bNmSTZs20bVrV/z9/UlISGDOnDkALF++nKuvvho/Pz+aNm3K4sWLi93ToUOHuO+++6hbty4+Pj60aNGCKVOmXFCdunXrxoIFC9i3b5/rZxwbG1uGn4yIXC7UY3cJmD9/PgkJCVx99dVlPmbr1q106tSJ+vXr88wzzxAQEMCnn35K7969mTt3Ln369HEr/+ijj1KrVi1eeOEF9u7dy9tvv82IESOYPXu2q8zHH3/MPffcQ8+ePXn99dfJyclh4sSJXHfddaxfv97tF0hhYSE9e/bkuuuu49///jf+/v4AfPbZZ+Tk5PDwww8THh7O6tWreeeddzh48CCfffZZudrl7EegAP/85z9JS0sjMDCwXO1w5MgRunfvTmFhoavcBx98UKW9PAMHDuQvf/kLu3fvplGjRoDzsdrtt9+O1WotVn7RokXs2bOHe++9l8jISLZu3coHH3zA1q1b+fnnnzGZTCU+KrbZbIwePRpvb2/XtqVLl3LTTTfRvn17XnjhBcxmM1OnTuX666/nxx9/5Kqrrjpv/XNycjh+/Hix7aGhoXh5/flXya5du7j99tsZOnQo99xzD1OmTGHIkCG0b9+eFi1a0KFDB+Lj4/n000+555573M41e/bsUoPumX7//XcGDBjAQw89xAMPPEDTpk05evQoHTt2JCcnh5EjRxIeHs706dP561//ypw5c4r9PzF27FjMZjNPPvkkJ0+eZNy4cQwaNIhffvnFrdyJEyfo1asX/fv354477mDixIn079+fmTNnMmrUKIYNG8bAgQMZP348t99+OwcOHCAoKAiAo0ePcs0112AymRgxYgQRERF8++23DB06lFOnThV7nHq+Ov2///f/OHnypNtQgKL/F0READCkWp08edIAjN69exfbd+LECePYsWOur5ycHNe+G264wWjVqpWRl5fn2uZwOIyOHTsajRs3dm2bOnWqARg9evQwHA6Ha/vo0aMNi8ViZGZmGoZhGKdPnzZCQ0ONBx54wK0OR44cMUJCQty233PPPQZgPPPMM8XqfGYdi4wZM8YwmUzGvn37XNteeOEF4+yPX0xMjHHPPfcUO77IuHHjDMCYMWNGudth1KhRBmD88ssvrm1paWlGSEiIARgpKSmlXvdst9xyixETE1Pm8jExMcYtt9xiFBYWGpGRkcYrr7xiGIZhbNu2zQCM5cuXu35Oa9ascR1XUlt+8sknBmD88MMPpV5v+PDhhsViMZYuXWoYhrM9GjdubPTs2dPtM5CTk2PExcUZN9544znrn5KSYgClfv30009u93p2/dLS0gwfHx/jiSeecG179tlnDavVamRkZLi25efnG6GhocZ9993n2lbULmf+fIqu8d1337nVs+hn/OOPP7q2nT592oiLizNiY2MNu91uGIZhLFu2zACM5s2bG/n5+a6y//nPfwzA2Lx5s2tb165dDcCYNWuWa9tvv/1mAIbZbDZ+/vln1/aFCxcagDF16lTXtqFDhxpRUVHG8ePH3erav39/IyQkxPUzLk+dyvv5E5HLix7FVrNTp04BJf+ru1u3bkRERLi+3nvvPQAyMjJYunQpd955J6dPn+b48eMcP36c9PR0evbsyc6dOzl06JDbuR588EG3R3OdO3fGbrezb98+wNk7lJmZyYABA1znO378OBaLhauvvpply5YVq9/DDz9cbNuZPWDZ2dkcP36cjh07YhgG69evv4AWclq2bBnPPvssjz76KHfddVe52+Gbb77hmmuuceuZioiIcD1CrgoWi4U777yTTz75BHBOmoiOjqZz584llj+zLfPy8jh+/DjXXHMNAOvWrSvxmBkzZvD+++8zbtw4unfvDsCGDRvYuXMnAwcOJD093dVO2dnZ3HDDDfzwww9leiT94IMPsmjRomJfiYmJbuUSExPd7ikiIoKmTZuyZ88e17Z+/fphs9n4/PPPXdu+//57MjMz6dev33nrEhcXV6xX75tvvuGqq67iuuuuc20LDAzkwQcfZO/evWzbts2t/L333uvWq1lU5zPrWXSO/v37u75v2rQpoaGhNG/e3K2Xvei/i443DIO5c+dy6623YhiG2/9XPXv25OTJk8V+jmWtk4hIafQotpoVPbLJysoqtm/y5MmcPn2ao0ePug1a37VrF4Zh8Nxzz/Hcc8+VeN60tDTq16/v+r5hw4Zu+2vVqgU4HzMB7Ny5E4Drr7++xPMFBwe7fe/l5UWDBg2Kldu/fz/PP/888+bNc527yMmTJ0s89/kcPHiQfv360alTJ958803X9vK0w759+0p81N20adMLqtPZTp486TaO0Nvbm7CwsGLlBg4cyIQJE9i4cSOzZs2if//+xcbCFcnIyOCll17if//7H2lpacWud7YNGzYwbNgwBgwYwOOPP+7aXvSzPfux59nnK/pMlKZx48alLtlyprM/a+D8vJ35eWjTpg3NmjVj9uzZDB06FHA+hq1du3apn8EzxcXFFdtW2s+4efPmrv0tW7YstZ5n/z9RpEGDBsV+RiEhIcXGvIaEhLgdf+zYMTIzM/nggw/44IMPSryPs3+uZa2TiEhpFOyqWUhICFFRUWzZsqXYvqJfUmevj1bUu/Lkk0+WOhYpISHB7fvSZhYahuF2zo8//rjYchyA2xgqcM5gPXuWrt1u58YbbyQjI4Onn36aZs2aERAQwKFDhxgyZMgFTVQoKCjg9ttvx8fHh08//dStHhfSDpXlsccec5sM0LVrV5KTk4uVu/rqq2nUqBGjRo0iJSWFgQMHlnrOO++8k1WrVvH3v/+dK664gsDAQBwOB0lJScXa8sSJE/Tt25cmTZrw4Ycfuu0rKjt+/HiuuOKKEq9VkeO0zvdZK9KvXz/+9a9/cfz4cYKCgpg3bx4DBgwo9lkrSUWMjSxrPUsrV9b/pwYPHlxqqG7duvUF1UlEpDQKdpeAW265hQ8//JDVq1eXaRB7fHw8AFartUw9KGVRNJi/Tp06F3zOzZs3s2PHDqZPn87dd9/t2r5o0aILrtfIkSPZsGEDP/zwA3Xr1nXbV552iImJcfVcnen333+/4Lqd6amnnnLrVT1X79eAAQN49dVXad68ealB68SJEyxZsoSXXnqJ559/3rW9pHtwOBwMGjSIzMxMFi9e7JrIUqToZxscHFxhn5eK0K9fP1566SXmzp1L3bp1OXXqlNsjz/KKiYkp8ef522+/ufZXpYiICIKCgrDb7RXa7qX18IqIgJY7uSQ89dRT+Pv7c99993H06NFi+8/+13qdOnXo1q0bkydPJjU1tVj5kpYxOZ+ePXsSHBzMa6+9hs1mu6BzFvU2nFlfwzD4z3/+U+76AEydOpXJkyfz3nvvlRh4y9MON998Mz///DOrV6922z9z5swLqtvZEhMT6dGjh+urffv2pZa9//77eeGFF3jjjTdKLVNSWwIlvnHgpZdeYuHChXzyySclPqJs3749jRo14t///neJj/wv5PNSEZo3b06rVq2YPXs2s2fPJioqii5dulzw+W6++WZWr17NTz/95NqWnZ3NBx98QGxsbLGxgJXNYrHQt29f5s6dW2KP/IW2e0BAwAUPaxARz6ceu0tA48aNmTVrFgMGDKBp06auN08YhkFKSgqzZs3CbDa7jWl77733uO6662jVqhUPPPAA8fHxHD16lJ9++omDBw+ycePGctUhODiYiRMnctddd9GuXTv69+9PREQE+/fvZ8GCBXTq1Il33333nOdo1qwZjRo14sknn+TQoUMEBwczd+7cCxofdPz4cYYPH05iYiI+Pj783//9n9v+Pn36EBAQUOZ2eOqpp/j4449JSkrisccecy13EhMTU+Wva4uJieHFF188Z5ng4GC6dOnCuHHjsNls1K9fn++//56UlBS3cps3b+aVV16hS5cupKWlFWunwYMHYzab+fDDD7npppto0aIF9957L/Xr1+fQoUMsW7aM4OBgvv766/PWe926dcXOD84ewWuvvfb8N16Cfv368fzzz+Pr68vQoUMvahHuZ555hk8++YSbbrqJkSNHEhYWxvTp00lJSWHu3LnVssD32LFjWbZsGVdffTUPPPAAiYmJZGRksG7dOhYvXkxGRka5z9m+fXtmz57N448/zpVXXklgYCC33nprJdReRGoiBbtLxG233cbmzZt54403+P7775kyZQomk4mYmBhuueUWhg0bRps2bVzlExMTWbt2LS+99BLTpk0jPT2dOnXq0LZtW7dHd+UxcOBA6tWrx9ixYxk/fjz5+fnUr1+fzp07c++99573eKvVytdff83IkSMZM2YMvr6+9OnThxEjRrjVvSyysrLIy8tj27ZtrlmwZ0pJSSEgIKDM7RAVFcWyZct49NFHGTt2LOHh4QwbNox69eq5Bu9fambNmsWjjz7Ke++9h2EY/OUvf+Hbb7+lXr16rjLp6ekYhsHy5ctZvnx5sXMUPR7u1q0bP/30E6+88grv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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQWUlEQVR4nO3dd3hUVeLG8e/MpHcSAqGEJBBaaFJsIE1xiQKLLGJoKooFFRHUtexv7QWUtSwWwFWaCy4KKogFQQhSVEA6AWkJzUAgIYH0ycz9/TFmZEgCBFLI8H6eZ54w955777k3E/Lm3HPONRmGYSAiIiIiNZ65uisgIiIiIhVDwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFOqsXzzz+PyWRyWRYdHc2IESOqtB4zZszAZDKRkpJSpceV86Pvj4hI+SjYXUKSk5MZPXo0zZo1w8/PDz8/P+Li4njooYfYsmVLdVfvspSSkoLJZDqvV1nhIzo6GpPJRK9evUpd/5///Me5j/Xr11fi2VyYc12DCRMmVHcVLytz5szh7bffru5qiMglyqO6KyAOixYtIiEhAQ8PD4YNG0a7du0wm83s3LmTzz//nMmTJ5OcnExUVFR1V7XS/Pbbb5jNl9bfGuHh4Xz88ccuy9544w0OHTrEW2+9VaJsWXx8fFi+fDlHjhwhIiLCZd3s2bPx8fEhPz+/4ipeCYYMGcLNN99cYnn79u0r7Zi33347gwcPxtvbu9KOUdPMmTOHbdu2MXbs2OquiohcghTsLgF79+5l8ODBREVF8cMPP1CvXj2X9a+99hrvv//+JRd6TpeTk4O/v/9F7eNS/OXt7+/P8OHDXZb973//48SJEyWWn02XLl1Yt24dc+fO5ZFHHnEuP3ToECtXrmTAgAHMnz+/wupdGTp06FCuc64IFosFi8Vy1jKGYZCfn4+vr28V1UpE5NJ16SaFy8jrr79OTk4O06dPLxHqADw8PBgzZgyRkZEuy3fu3Mmtt95KaGgoPj4+dOrUiYULF7qUKe6jtHr1ah599FHCw8Px9/dnwIABHDt2rMSxvv32W7p27Yq/vz+BgYH06dOH7du3u5QZMWIEAQEB7N27l5tvvpnAwECGDRsGwMqVKxk0aBCNGjXC29ubyMhIxo0bR15e3jmvw5l97M73tuf5XAeA7du3c/311+Pr60vDhg15+eWXsdvt56xXRfDx8eFvf/sbc+bMcVn+ySefUKtWLXr37l1imy1btjBixAgaN26Mj48PERER3H333aSnpzvLnOs26el++eUX4uPjCQ4Oxs/Pj+7du7N69eoKPc/o6Gj69u3LqlWruOqqq/Dx8aFx48bMmjXLWWb9+vWYTCZmzpxZYvvFixdjMplYtGgRUHofu+JjLF68mE6dOuHr68vUqVMB2LdvH4MGDSI0NBQ/Pz+uueYavv76a5djJCYmYjKZ+PTTT3nllVdo2LAhPj4+3HDDDezZs8elbI8ePWjdujVbtmyhe/fu+Pn5ERsby7x58wBYsWIFV199Nb6+vjRv3pylS5eWOKfDhw9z9913U7duXby9vWnVqhXTpk27oDr16NGDr7/+mv379zu/x9HR0efxnRGRy4Va7C4BixYtIjY2lquvvvq8t9m+fTtdunShQYMGPPXUU/j7+/Ppp59yyy23MH/+fAYMGOBS/uGHH6ZWrVo899xzpKSk8PbbbzN69Gjmzp3rLPPxxx9z55130rt3b1577TVyc3OZPHky1113HRs3bnT5BVJUVETv3r257rrr+Ne//oWfnx8An332Gbm5uTzwwAOEhYWxdu1a3nnnHQ4dOsRnn31Wruty5i1QgH/+85+kpaUREBBQrutw5MgRevbsSVFRkbPcBx98UKWtPEOHDuUvf/kLe/fupUmTJoDjttqtt96Kp6dnifJLlixh37593HXXXURERLB9+3Y++OADtm/fzs8//4zJZCr1VrHVamXcuHF4eXk5ly1btoybbrqJjh078txzz2E2m5k+fTrXX389K1eu5Kqrrjpn/XNzczl+/HiJ5SEhIXh4/PlfyZ49e7j11lsZOXIkd955J9OmTWPEiBF07NiRVq1a0alTJxo3bsynn37KnXfe6bKvuXPnlhl0T/fbb78xZMgQ7r//fu69916aN2/O0aNH6dy5M7m5uYwZM4awsDBmzpzJX//6V+bNm1fiZ2LChAmYzWYef/xxsrKyeP311xk2bBi//PKLS7kTJ07Qt29fBg8ezKBBg5g8eTKDBw9m9uzZjB07llGjRjF06FAmTpzIrbfeysGDBwkMDATg6NGjXHPNNZhMJkaPHk14eDjffvstI0eO5OTJkyVup56rTv/3f/9H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2dnZREREcPXVV3P//fefV30++eQT54je0915550XFez++c9/kpube16jYc+mbt26rFmzhieffJJ33nmH/Px82rZty1dffUWfPn0uat8XU6e1a9fy4osv8vnnn/P+++8TFhZGq1ateO211y5onw8++CCbNm1i+vTpvPXWW0RFRSnYiYiTyVCvXBERERG3oD52IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJjyquwIiIiI1kc1mw2q1Vnc1xM15enpisVjOu7yCnYiISDkYhsGRI0fIzMys7qrIZSIkJISIiAhMJtM5yyrYiYiIlENxqKtTpw5+fn7n9ctW5EIYhkFubi5paWkA1KtX75zbKNiJiIicJ5vN5gx1YWFh1V0duQz4+voCkJaWRp06dc55W1aDJ0RERM5TcZ86Pz+/aq6JXE6KP2/n06dTwU5ERKScdPtVqlJ5Pm8KdiIiIiJuQsFORERExE0o2ImIiFShwsLCi1p/MY4cOcLDDz9M48aN8fb2JjIykn79+vHDDz9U2jGlainYiYiIVJG5c+fSpk0bDh48WOr6gwcP0qZNG+bOnVvhx05JSaFjx44sW7aMiRMnsnXrVr777jt69uzJQw89VOHHk+qhYCciIlIFCgsLefbZZ9m1axc9evQoEe4OHjxIjx492LVrF88++2yFt9w9+OCDmEwm1q5dy8CBA2nWrBmtWrXi0Ucf5eeffyYlJQWTycSmTZuc22RmZmIymUhMTHQu27ZtGzfddBMBAQHUrVuX22+/nePHj1doXeXCKdiJiIhUAS8vL5YuXUrjxo3Zt2+fS7grDnX79u2jcePGLF26FC8vrwo7dkZGBt999x0PPfQQ/v7+JdaHhISc134yMzO5/vrrad++PevXr+e7777j6NGj3HbbbRVWV7k4CnYiIiJVJDIyksTERJdwt2bNGpdQl5iYSGRkZIUed8+ePRiGQYsWLS5qP++++y7t27fn1VdfpUWLFrRv355p06axfPlydu3aVUG1lYuhJ0+IiIhUoeJwVxzmunTpAlBpoQ4cj6aqCJs3b2b58uUEBASUWLd3716aNWtWIceRC6dgJyIiUsUiIyP5+OOPnaEO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", "text/plain": [ "
" ] @@ -297,12 +305,12 @@ "output_type": "stream", "text": [ "Time t=8\n", - "[Array([[3]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32)]\n" + "[Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQnklEQVR4nO3dd3hUVeL/8ffMZNIbCYEECCmEFpoUG0hTXKLiCotKVVEsiIigrmV/a3cFYS2LBXCV5hdcFCwIKtKCAiogvSgt9EAgIUD6ZOb+/hgzMiSBBFLI8Hk9Tx7Mvefee+7JSD6ce865JsMwDERERESkxjNXdwVEREREpGIo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNhJtXjxxRcxmUxu22JjYxkyZEiV1mPatGmYTCb27t1bpdeVstHPR0SkfBTsLiEpKSmMGDGCJk2a4O/vj7+/P4mJiTzyyCNs2rSpuqt3Wdq7dy8mk6lMX6WFj9jYWEwmEz169Chx/3//+1/XOdauXVuJd3NhztcGY8eOre4qXlZmzZrF22+/Xd3VEJFLlFd1V0Cc5s+fT79+/fDy8mLQoEG0adMGs9nMb7/9xueff87EiRNJSUkhJiamuqtaaX7//XfM5kvr3xoRERF8/PHHbtveeOMNDh48yFtvvVWsbGl8fX1ZtmwZR44cITIy0m3fzJkz8fX1JS8vr+IqXgkGDBjAzTffXGx727ZtK+2ad911F/3798fHx6fSrlHTzJo1iy1btjBq1KjqroqIXIIU7C4Bu3fvpn///sTExLBkyRKioqLc9r/++uu8//77l1zoOVN2djYBAQEXdY5L8Zd3QEAAgwcPdtv2v//9jxMnThTbfi6dOnVizZo1zJ49m8cee8y1/eDBg/z444/06dOHuXPnVli9K0O7du3Kdc8VwWKxYLFYzlnGMAzy8vLw8/OrolqJiFy6Lt2kcBkZN24c2dnZTJ06tVioA/Dy8mLkyJFER0e7bf/tt9+4/fbbCQsLw9fXlw4dOjBv3jy3MkVjlFauXMnjjz9OREQEAQEB9OnTh2PHjhW71rfffkvnzp0JCAggKCiIW265ha1bt7qVGTJkCIGBgezevZubb76ZoKAgBg0aBMCPP/7IHXfcQcOGDfHx8SE6OprRo0eTm5t73nY4e4xdWR97lqUdALZu3cr111+Pn58fDRo04NVXX8XhcJy3XhXB19eXv/3tb8yaNctt+yeffEKtWrXo2bNnsWM2bdrEkCFDiI+Px9fXl8jISO677z7S09NdZc73mPRMv/zyC0lJSYSEhODv70/Xrl1ZuXJlhd5nbGwsvXr1YsWKFVx11VX4+voSHx/PjBkzXGXWrl2LyWRi+vTpxY5fuHAhJpOJ+fPnAyWPsSu6xsKFC+nQoQN+fn5MnjwZgD179nDHHXcQFhaGv78/11xzDQsWLHC7RnJyMiaTiU8//ZR//etfNGjQAF9fX2644QZ27drlVrZbt260bNmSTZs20bVrV/z9/UlISGDOnDkALF++nKuvvho/Pz+aNm3K4sWLi93ToUOHuO+++6hbty4+Pj60aNGCKVOmXFCdunXrxoIFC9i3b5/rZxwbG1uGn4yIXC7UY3cJmD9/PgkJCVx99dVlPmbr1q106tSJ+vXr88wzzxAQEMCnn35K7969mTt3Ln369HEr/+ijj1KrVi1eeOEF9u7dy9tvv82IESOYPXu2q8zHH3/MPffcQ8+ePXn99dfJyclh4sSJXHfddaxfv97tF0hhYSE9e/bkuuuu49///jf+/v4AfPbZZ+Tk5PDwww8THh7O6tWreeeddzh48CCfffZZudrl7EegAP/85z9JS0sjMDCwXO1w5MgRunfvTmFhoavcBx98UKW9PAMHDuQvf/kLu3fvplGjRoDzsdrtt9+O1WotVn7RokXs2bOHe++9l8jISLZu3coHH3zA1q1b+fnnnzGZTCU+KrbZbIwePRpvb2/XtqVLl3LTTTfRvn17XnjhBcxmM1OnTuX666/nxx9/5Kqrrjpv/XNycjh+/Hix7aGhoXh5/flXya5du7j99tsZOnQo99xzD1OmTGHIkCG0b9+eFi1a0KFDB+Lj4/n000+555573M41e/bsUoPumX7//XcGDBjAQw89xAMPPEDTpk05evQoHTt2JCcnh5EjRxIeHs706dP561//ypw5c4r9PzF27FjMZjNPPvkkJ0+eZNy4cQwaNIhffvnFrdyJEyfo1asX/fv354477mDixIn079+fmTNnMmrUKIYNG8bAgQMZP348t99+OwcOHCAoKAiAo0ePcs0112AymRgxYgQRERF8++23DB06lFOnThV7nHq+Ov2///f/OHnypNtQgKL/F0READCkWp08edIAjN69exfbd+LECePYsWOur5ycHNe+G264wWjVqpWRl5fn2uZwOIyOHTsajRs3dm2bOnWqARg9evQwHA6Ha/vo0aMNi8ViZGZmGoZhGKdPnzZCQ0ONBx54wK0OR44cMUJCQty233PPPQZgPPPMM8XqfGYdi4wZM8YwmUzGvn37XNteeOEF4+yPX0xMjHHPPfcUO77IuHHjDMCYMWNGudth1KhRBmD88ssvrm1paWlGSEiIARgpKSmlXvdst9xyixETE1Pm8jExMcYtt9xiFBYWGpGRkcYrr7xiGIZhbNu2zQCM5cuXu35Oa9ascR1XUlt+8sknBmD88MMPpV5v+PDhhsViMZYuXWoYhrM9GjdubPTs2dPtM5CTk2PExcUZN9544znrn5KSYgClfv30009u93p2/dLS0gwfHx/jiSeecG179tlnDavVamRkZLi25efnG6GhocZ9993n2lbULmf+fIqu8d1337nVs+hn/OOPP7q2nT592oiLizNiY2MNu91uGIZhLFu2zACM5s2bG/n5+a6y//nPfwzA2Lx5s2tb165dDcCYNWuWa9tvv/1mAIbZbDZ+/vln1/aFCxcagDF16lTXtqFDhxpRUVHG8ePH3erav39/IyQkxPUzLk+dyvv5E5HLix7FVrNTp04BJf+ru1u3bkRERLi+3nvvPQAyMjJYunQpd955J6dPn+b48eMcP36c9PR0evbsyc6dOzl06JDbuR588EG3R3OdO3fGbrezb98+wNk7lJmZyYABA1znO378OBaLhauvvpply5YVq9/DDz9cbNuZPWDZ2dkcP36cjh07YhgG69evv4AWclq2bBnPPvssjz76KHfddVe52+Gbb77hmmuuceuZioiIcD1CrgoWi4U777yTTz75BHBOmoiOjqZz584llj+zLfPy8jh+/DjXXHMNAOvWrSvxmBkzZvD+++8zbtw4unfvDsCGDRvYuXMnAwcOJD093dVO2dnZ3HDDDfzwww9leiT94IMPsmjRomJfiYmJbuUSExPd7ikiIoKmTZuyZ88e17Z+/fphs9n4/PPPXdu+//57MjMz6dev33nrEhcXV6xX75tvvuGqq67iuuuuc20LDAzkwQcfZO/evWzbts2t/L333uvWq1lU5zPrWXSO/v37u75v2rQpoaGhNG/e3K2Xvei/i443DIO5c+dy6623YhiG2/9XPXv25OTJk8V+jmWtk4hIafQotpoVPbLJysoqtm/y5MmcPn2ao0ePug1a37VrF4Zh8Nxzz/Hcc8+VeN60tDTq16/v+r5hw4Zu+2vVqgU4HzMB7Ny5E4Drr7++xPMFBwe7fe/l5UWDBg2Kldu/fz/PP/888+bNc527yMmTJ0s89/kcPHiQfv360alTJ958803X9vK0w759+0p81N20adMLqtPZTp486TaO0Nvbm7CwsGLlBg4cyIQJE9i4cSOzZs2if//+xcbCFcnIyOCll17if//7H2lpacWud7YNGzYwbNgwBgwYwOOPP+7aXvSzPfux59nnK/pMlKZx48alLtlyprM/a+D8vJ35eWjTpg3NmjVj9uzZDB06FHA+hq1du3apn8EzxcXFFdtW2s+4efPmrv0tW7YstZ5n/z9RpEGDBsV+RiEhIcXGvIaEhLgdf+zYMTIzM/nggw/44IMPSryPs3+uZa2TiEhpFOyqWUhICFFRUWzZsqXYvqJfUmevj1bUu/Lkk0+WOhYpISHB7fvSZhYahuF2zo8//rjYchyA2xgqcM5gPXuWrt1u58YbbyQjI4Onn36aZs2aERAQwKFDhxgyZMgFTVQoKCjg9ttvx8fHh08//dStHhfSDpXlsccec5sM0LVrV5KTk4uVu/rqq2nUqBGjRo0iJSWFgQMHlnrOO++8k1WrVvH3v/+dK664gsDAQBwOB0lJScXa8sSJE/Tt25cmTZrw4Ycfuu0rKjt+/HiuuOKKEq9VkeO0zvdZK9KvXz/+9a9/cfz4cYKCgpg3bx4DBgwo9lkrSUWMjSxrPUsrV9b/pwYPHlxqqG7duvUF1UlEpDQKdpeAW265hQ8//JDVq1eXaRB7fHw8AFartUw9KGVRNJi/Tp06F3zOzZs3s2PHDqZPn87dd9/t2r5o0aILrtfIkSPZsGEDP/zwA3Xr1nXbV552iImJcfVcnen333+/4Lqd6amnnnLrVT1X79eAAQN49dVXad68ealB68SJEyxZsoSXXnqJ559/3rW9pHtwOBwMGjSIzMxMFi9e7JrIUqToZxscHFxhn5eK0K9fP1566SXmzp1L3bp1OXXqlNsjz/KKiYkp8ef522+/ufZXpYiICIKCgrDb7RXa7qX18IqIgJY7uSQ89dRT+Pv7c99993H06NFi+8/+13qdOnXo1q0bkydPJjU1tVj5kpYxOZ+ePXsSHBzMa6+9hs1mu6BzFvU2nFlfwzD4z3/+U+76AEydOpXJkyfz3nvvlRh4y9MON998Mz///DOrV6922z9z5swLqtvZEhMT6dGjh+urffv2pZa9//77eeGFF3jjjTdKLVNSWwIlvnHgpZdeYuHChXzyySclPqJs3749jRo14t///neJj/wv5PNSEZo3b06rVq2YPXs2s2fPJioqii5dulzw+W6++WZWr17NTz/95NqWnZ3NBx98QGxsbLGxgJXNYrHQt29f5s6dW2KP/IW2e0BAwAUPaxARz6ceu0tA48aNmTVrFgMGDKBp06auN08YhkFKSgqzZs3CbDa7jWl77733uO6662jVqhUPPPAA8fHxHD16lJ9++omDBw+ycePGctUhODiYiRMnctddd9GuXTv69+9PREQE+/fvZ8GCBXTq1Il33333nOdo1qwZjRo14sknn+TQoUMEBwczd+7cCxofdPz4cYYPH05iYiI+Pj783//9n9v+Pn36EBAQUOZ2eOqpp/j4449JSkrisccecy13EhMTU+Wva4uJieHFF188Z5ng4GC6dOnCuHHjsNls1K9fn++//56UlBS3cps3b+aVV16hS5cupKWlFWunwYMHYzab+fDDD7npppto0aIF9957L/Xr1+fQoUMsW7aM4OBgvv766/PWe926dcXOD84ewWuvvfb8N16Cfv368fzzz+Pr68vQoUMvahHuZ555hk8++YSbbrqJkSNHEhYWxvTp00lJSWHu3LnVssD32LFjWbZsGVdffTUPPPAAiYmJZGRksG7dOhYvXkxGRka5z9m+fXtmz57N448/zpVXXklgYCC33nprJdReRGoiBbtLxG233cbmzZt54403+P7775kyZQomk4mYmBhuueUWhg0bRps2bVzlExMTWbt2LS+99BLTpk0jPT2dOnXq0LZtW7dHd+UxcOBA6tWrx9ixYxk/fjz5+fnUr1+fzp07c++99573eKvVytdff83IkSMZM2YMvr6+9OnThxEjRrjVvSyysrLIy8tj27ZtrlmwZ0pJSSEgIKDM7RAVFcWyZct49NFHGTt2LOHh4QwbNox69eq5Bu9fambNmsWjjz7Ke++9h2EY/OUvf+Hbb7+lXr16rjLp6ekYhsHy5ctZvnx5sXMUPR7u1q0bP/30E6+88grv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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQWUlEQVR4nO3dd3hUVeLG8e/MpHcSAqGEJBBaaFJsIE1xiQKLLGJoKooFFRHUtexv7QWUtSwWwFWaCy4KKogFQQhSVEA6AWkJzUAgIYH0ycz9/TFmZEgCBFLI8H6eZ54w955777k3E/Lm3HPONRmGYSAiIiIiNZ65uisgIiIiIhVDwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFOqsXzzz+PyWRyWRYdHc2IESOqtB4zZszAZDKRkpJSpceV86Pvj4hI+SjYXUKSk5MZPXo0zZo1w8/PDz8/P+Li4njooYfYsmVLdVfvspSSkoLJZDqvV1nhIzo6GpPJRK9evUpd/5///Me5j/Xr11fi2VyYc12DCRMmVHcVLytz5szh7bffru5qiMglyqO6KyAOixYtIiEhAQ8PD4YNG0a7du0wm83s3LmTzz//nMmTJ5OcnExUVFR1V7XS/Pbbb5jNl9bfGuHh4Xz88ccuy9544w0OHTrEW2+9VaJsWXx8fFi+fDlHjhwhIiLCZd3s2bPx8fEhPz+/4ipeCYYMGcLNN99cYnn79u0r7Zi33347gwcPxtvbu9KOUdPMmTOHbdu2MXbs2OquiohcghTsLgF79+5l8ODBREVF8cMPP1CvXj2X9a+99hrvv//+JRd6TpeTk4O/v/9F7eNS/OXt7+/P8OHDXZb973//48SJEyWWn02XLl1Yt24dc+fO5ZFHHnEuP3ToECtXrmTAgAHMnz+/wupdGTp06FCuc64IFosFi8Vy1jKGYZCfn4+vr28V1UpE5NJ16SaFy8jrr79OTk4O06dPLxHqADw8PBgzZgyRkZEuy3fu3Mmtt95KaGgoPj4+dOrUiYULF7qUKe6jtHr1ah599FHCw8Px9/dnwIABHDt2rMSxvv32W7p27Yq/vz+BgYH06dOH7du3u5QZMWIEAQEB7N27l5tvvpnAwECGDRsGwMqVKxk0aBCNGjXC29ubyMhIxo0bR15e3jmvw5l97M73tuf5XAeA7du3c/311+Pr60vDhg15+eWXsdvt56xXRfDx8eFvf/sbc+bMcVn+ySefUKtWLXr37l1imy1btjBixAgaN26Mj48PERER3H333aSnpzvLnOs26el++eUX4uPjCQ4Oxs/Pj+7du7N69eoKPc/o6Gj69u3LqlWruOqqq/Dx8aFx48bMmjXLWWb9+vWYTCZmzpxZYvvFixdjMplYtGgRUHofu+JjLF68mE6dOuHr68vUqVMB2LdvH4MGDSI0NBQ/Pz+uueYavv76a5djJCYmYjKZ+PTTT3nllVdo2LAhPj4+3HDDDezZs8elbI8ePWjdujVbtmyhe/fu+Pn5ERsby7x58wBYsWIFV199Nb6+vjRv3pylS5eWOKfDhw9z9913U7duXby9vWnVqhXTpk27oDr16NGDr7/+mv379zu/x9HR0efxnRGRy4Va7C4BixYtIjY2lquvvvq8t9m+fTtdunShQYMGPPXUU/j7+/Ppp59yyy23MH/+fAYMGOBS/uGHH6ZWrVo899xzpKSk8PbbbzN69Gjmzp3rLPPxxx9z55130rt3b1577TVyc3OZPHky1113HRs3bnT5BVJUVETv3r257rrr+Ne//oWfnx8An332Gbm5uTzwwAOEhYWxdu1a3nnnHQ4dOsRnn31Wruty5i1QgH/+85+kpaUREBBQrutw5MgRevbsSVFRkbPcBx98UKWtPEOHDuUvf/kLe/fupUmTJoDjttqtt96Kp6dnifJLlixh37593HXXXURERLB9+3Y++OADtm/fzs8//4zJZCr1VrHVamXcuHF4eXk5ly1btoybbrqJjh078txzz2E2m5k+fTrXX389K1eu5Kqrrjpn/XNzczl+/HiJ5SEhIXh4/PlfyZ49e7j11lsZOXIkd955J9OmTWPEiBF07NiRVq1a0alTJxo3bsynn37KnXfe6bKvuXPnlhl0T/fbb78xZMgQ7r//fu69916aN2/O0aNH6dy5M7m5uYwZM4awsDBmzpzJX//6V+bNm1fiZ2LChAmYzWYef/xxsrKyeP311xk2bBi//PKLS7kTJ07Qt29fBg8ezKBBg5g8eTKDBw9m9uzZjB07llGjRjF06FAmTpzIrbfeysGDBwkMDATg6NGjXHPNNZhMJkaPHk14eDjffvstI0eO5OTJkyVup56rTv/3f/9H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2dnZREREcPXVV3P//fefV30++eQT54je0915550XFez++c9/kpube16jYc+mbt26rFmzhieffJJ33nmH/Px82rZty1dffUWfPn0uat8XU6e1a9fy4osv8vnnn/P+++8TFhZGq1ateO211y5onw8++CCbNm1i+vTpvPXWW0RFRSnYiYiTyVCvXBERERG3oD52IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJjyquwIiIiI1kc1mw2q1Vnc1xM15enpisVjOu7yCnYiISDkYhsGRI0fIzMys7qrIZSIkJISIiAhMJtM5yyrYiYiIlENxqKtTpw5+fn7n9ctW5EIYhkFubi5paWkA1KtX75zbKNiJiIicJ5vN5gx1YWFh1V0duQz4+voCkJaWRp06dc55W1aDJ0RERM5TcZ86Pz+/aq6JXE6KP2/n06dTwU5ERKScdPtVqlJ5Pm8KdiIiIiJuQsFORERExE0o2ImIiFShwsLCi1p/MY4cOcLDDz9M48aN8fb2JjIykn79+vHDDz9U2jGlainYiYiIVJG5c+fSpk0bDh48WOr6gwcP0qZNG+bOnVvhx05JSaFjx44sW7aMiRMnsnXrVr777jt69uzJQw89VOHHk+qhYCciIlIFCgsLefbZZ9m1axc9evQoEe4OHjxIjx492LVrF88++2yFt9w9+OCDmEwm1q5dy8CBA2nWrBmtWrXi0Ucf5eeffyYlJQWTycSmTZuc22RmZmIymUhMTHQu27ZtGzfddBMBAQHUrVuX22+/nePHj1doXeXCKdiJiIhUAS8vL5YuXUrjxo3Zt2+fS7grDnX79u2jcePGLF26FC8vrwo7dkZGBt999x0PPfQQ/v7+JdaHhISc134yMzO5/vrrad++PevXr+e7777j6NGj3HbbbRVWV7k4CnYiIiJVJDIyksTERJdwt2bNGpdQl5iYSGRkZIUed8+ePRiGQYsWLS5qP++++y7t27fn1VdfpUWLFrRv355p06axfPlydu3aVUG1lYuhJ0+IiIhUoeJwVxzmunTpAlBpoQ4cj6aqCJs3b2b58uUEBASUWLd3716aNWtWIceRC6dgJyIiUsUiIyP5+OOPnaEO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", "text/plain": [ "
" ] @@ -315,12 +323,12 @@ "output_type": "stream", "text": [ "Time t=9\n", - "[Array([[3]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32)]\n" + "[Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32)]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQnklEQVR4nO3dd3hUVeL/8ffMZNIbCYEECCmEFpoUG0hTXKLiCotKVVEsiIigrmV/a3cFYS2LBXCV5hdcFCwIKtKCAiogvSgt9EAgIUD6ZOb+/hgzMiSBBFLI8Hk9Tx7Mvefee+7JSD6ce865JsMwDERERESkxjNXdwVEREREpGIo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNhJtXjxxRcxmUxu22JjYxkyZEiV1mPatGmYTCb27t1bpdeVstHPR0SkfBTsLiEpKSmMGDGCJk2a4O/vj7+/P4mJiTzyyCNs2rSpuqt3Wdq7dy8mk6lMX6WFj9jYWEwmEz169Chx/3//+1/XOdauXVuJd3NhztcGY8eOre4qXlZmzZrF22+/Xd3VEJFLlFd1V0Cc5s+fT79+/fDy8mLQoEG0adMGs9nMb7/9xueff87EiRNJSUkhJiamuqtaaX7//XfM5kvr3xoRERF8/PHHbtveeOMNDh48yFtvvVWsbGl8fX1ZtmwZR44cITIy0m3fzJkz8fX1JS8vr+IqXgkGDBjAzTffXGx727ZtK+2ad911F/3798fHx6fSrlHTzJo1iy1btjBq1KjqroqIXIIU7C4Bu3fvpn///sTExLBkyRKioqLc9r/++uu8//77l1zoOVN2djYBAQEXdY5L8Zd3QEAAgwcPdtv2v//9jxMnThTbfi6dOnVizZo1zJ49m8cee8y1/eDBg/z444/06dOHuXPnVli9K0O7du3Kdc8VwWKxYLFYzlnGMAzy8vLw8/OrolqJiFy6Lt2kcBkZN24c2dnZTJ06tVioA/Dy8mLkyJFER0e7bf/tt9+4/fbbCQsLw9fXlw4dOjBv3jy3MkVjlFauXMnjjz9OREQEAQEB9OnTh2PHjhW71rfffkvnzp0JCAggKCiIW265ha1bt7qVGTJkCIGBgezevZubb76ZoKAgBg0aBMCPP/7IHXfcQcOGDfHx8SE6OprRo0eTm5t73nY4e4xdWR97lqUdALZu3cr111+Pn58fDRo04NVXX8XhcJy3XhXB19eXv/3tb8yaNctt+yeffEKtWrXo2bNnsWM2bdrEkCFDiI+Px9fXl8jISO677z7S09NdZc73mPRMv/zyC0lJSYSEhODv70/Xrl1ZuXJlhd5nbGwsvXr1YsWKFVx11VX4+voSHx/PjBkzXGXWrl2LyWRi+vTpxY5fuHAhJpOJ+fPnAyWPsSu6xsKFC+nQoQN+fn5MnjwZgD179nDHHXcQFhaGv78/11xzDQsWLHC7RnJyMiaTiU8//ZR//etfNGjQAF9fX2644QZ27drlVrZbt260bNmSTZs20bVrV/z9/UlISGDOnDkALF++nKuvvho/Pz+aNm3K4sWLi93ToUOHuO+++6hbty4+Pj60aNGCKVOmXFCdunXrxoIFC9i3b5/rZxwbG1uGn4yIXC7UY3cJmD9/PgkJCVx99dVlPmbr1q106tSJ+vXr88wzzxAQEMCnn35K7969mTt3Ln369HEr/+ijj1KrVi1eeOEF9u7dy9tvv82IESOYPXu2q8zHH3/MPffcQ8+ePXn99dfJyclh4sSJXHfddaxfv97tF0hhYSE9e/bkuuuu49///jf+/v4AfPbZZ+Tk5PDwww8THh7O6tWreeeddzh48CCfffZZudrl7EegAP/85z9JS0sjMDCwXO1w5MgRunfvTmFhoavcBx98UKW9PAMHDuQvf/kLu3fvplGjRoDzsdrtt9+O1WotVn7RokXs2bOHe++9l8jISLZu3coHH3zA1q1b+fnnnzGZTCU+KrbZbIwePRpvb2/XtqVLl3LTTTfRvn17XnjhBcxmM1OnTuX666/nxx9/5Kqrrjpv/XNycjh+/Hix7aGhoXh5/flXya5du7j99tsZOnQo99xzD1OmTGHIkCG0b9+eFi1a0KFDB+Lj4/n000+555573M41e/bsUoPumX7//XcGDBjAQw89xAMPPEDTpk05evQoHTt2JCcnh5EjRxIeHs706dP561//ypw5c4r9PzF27FjMZjNPPvkkJ0+eZNy4cQwaNIhffvnFrdyJEyfo1asX/fv354477mDixIn079+fmTNnMmrUKIYNG8bAgQMZP348t99+OwcOHCAoKAiAo0ePcs0112AymRgxYgQRERF8++23DB06lFOnThV7nHq+Ov2///f/OHnypNtQgKL/F0READCkWp08edIAjN69exfbd+LECePYsWOur5ycHNe+G264wWjVqpWRl5fn2uZwOIyOHTsajRs3dm2bOnWqARg9evQwHA6Ha/vo0aMNi8ViZGZmGoZhGKdPnzZCQ0ONBx54wK0OR44cMUJCQty233PPPQZgPPPMM8XqfGYdi4wZM8YwmUzGvn37XNteeOEF4+yPX0xMjHHPPfcUO77IuHHjDMCYMWNGudth1KhRBmD88ssvrm1paWlGSEiIARgpKSmlXvdst9xyixETE1Pm8jExMcYtt9xiFBYWGpGRkcYrr7xiGIZhbNu2zQCM5cuXu35Oa9ascR1XUlt+8sknBmD88MMPpV5v+PDhhsViMZYuXWoYhrM9GjdubPTs2dPtM5CTk2PExcUZN9544znrn5KSYgClfv30009u93p2/dLS0gwfHx/jiSeecG179tlnDavVamRkZLi25efnG6GhocZ9993n2lbULmf+fIqu8d1337nVs+hn/OOPP7q2nT592oiLizNiY2MNu91uGIZhLFu2zACM5s2bG/n5+a6y//nPfwzA2Lx5s2tb165dDcCYNWuWa9tvv/1mAIbZbDZ+/vln1/aFCxcagDF16lTXtqFDhxpRUVHG8ePH3erav39/IyQkxPUzLk+dyvv5E5HLix7FVrNTp04BJf+ru1u3bkRERLi+3nvvPQAyMjJYunQpd955J6dPn+b48eMcP36c9PR0evbsyc6dOzl06JDbuR588EG3R3OdO3fGbrezb98+wNk7lJmZyYABA1znO378OBaLhauvvpply5YVq9/DDz9cbNuZPWDZ2dkcP36cjh07YhgG69evv4AWclq2bBnPPvssjz76KHfddVe52+Gbb77hmmuuceuZioiIcD1CrgoWi4U777yTTz75BHBOmoiOjqZz584llj+zLfPy8jh+/DjXXHMNAOvWrSvxmBkzZvD+++8zbtw4unfvDsCGDRvYuXMnAwcOJD093dVO2dnZ3HDDDfzwww9leiT94IMPsmjRomJfiYmJbuUSExPd7ikiIoKmTZuyZ88e17Z+/fphs9n4/PPPXdu+//57MjMz6dev33nrEhcXV6xX75tvvuGqq67iuuuuc20LDAzkwQcfZO/evWzbts2t/L333uvWq1lU5zPrWXSO/v37u75v2rQpoaGhNG/e3K2Xvei/i443DIO5c+dy6623YhiG2/9XPXv25OTJk8V+jmWtk4hIafQotpoVPbLJysoqtm/y5MmcPn2ao0ePug1a37VrF4Zh8Nxzz/Hcc8+VeN60tDTq16/v+r5hw4Zu+2vVqgU4HzMB7Ny5E4Drr7++xPMFBwe7fe/l5UWDBg2Kldu/fz/PP/888+bNc527yMmTJ0s89/kcPHiQfv360alTJ958803X9vK0w759+0p81N20adMLqtPZTp486TaO0Nvbm7CwsGLlBg4cyIQJE9i4cSOzZs2if//+xcbCFcnIyOCll17if//7H2lpacWud7YNGzYwbNgwBgwYwOOPP+7aXvSzPfux59nnK/pMlKZx48alLtlyprM/a+D8vJ35eWjTpg3NmjVj9uzZDB06FHA+hq1du3apn8EzxcXFFdtW2s+4efPmrv0tW7YstZ5n/z9RpEGDBsV+RiEhIcXGvIaEhLgdf+zYMTIzM/nggw/44IMPSryPs3+uZa2TiEhpFOyqWUhICFFRUWzZsqXYvqJfUmevj1bUu/Lkk0+WOhYpISHB7fvSZhYahuF2zo8//rjYchyA2xgqcM5gPXuWrt1u58YbbyQjI4Onn36aZs2aERAQwKFDhxgyZMgFTVQoKCjg9ttvx8fHh08//dStHhfSDpXlsccec5sM0LVrV5KTk4uVu/rqq2nUqBGjRo0iJSWFgQMHlnrOO++8k1WrVvH3v/+dK664gsDAQBwOB0lJScXa8sSJE/Tt25cmTZrw4Ycfuu0rKjt+/HiuuOKKEq9VkeO0zvdZK9KvXz/+9a9/cfz4cYKCgpg3bx4DBgwo9lkrSUWMjSxrPUsrV9b/pwYPHlxqqG7duvUF1UlEpDQKdpeAW265hQ8//JDVq1eXaRB7fHw8AFartUw9KGVRNJi/Tp06F3zOzZs3s2PHDqZPn87dd9/t2r5o0aILrtfIkSPZsGEDP/zwA3Xr1nXbV552iImJcfVcnen333+/4Lqd6amnnnLrVT1X79eAAQN49dVXad68ealB68SJEyxZsoSXXnqJ559/3rW9pHtwOBwMGjSIzMxMFi9e7JrIUqToZxscHFxhn5eK0K9fP1566SXmzp1L3bp1OXXqlNsjz/KKiYkp8ef522+/ufZXpYiICIKCgrDb7RXa7qX18IqIgJY7uSQ89dRT+Pv7c99993H06NFi+8/+13qdOnXo1q0bkydPJjU1tVj5kpYxOZ+ePXsSHBzMa6+9hs1mu6BzFvU2nFlfwzD4z3/+U+76AEydOpXJkyfz3nvvlRh4y9MON998Mz///DOrV6922z9z5swLqtvZEhMT6dGjh+urffv2pZa9//77eeGFF3jjjTdKLVNSWwIlvnHgpZdeYuHChXzyySclPqJs3749jRo14t///neJj/wv5PNSEZo3b06rVq2YPXs2s2fPJioqii5dulzw+W6++WZWr17NTz/95NqWnZ3NBx98QGxsbLGxgJXNYrHQt29f5s6dW2KP/IW2e0BAwAUPaxARz6ceu0tA48aNmTVrFgMGDKBp06auN08YhkFKSgqzZs3CbDa7jWl77733uO6662jVqhUPPPAA8fHxHD16lJ9++omDBw+ycePGctUhODiYiRMnctddd9GuXTv69+9PREQE+/fvZ8GCBXTq1Il33333nOdo1qwZjRo14sknn+TQoUMEBwczd+7cCxofdPz4cYYPH05iYiI+Pj783//9n9v+Pn36EBAQUOZ2eOqpp/j4449JSkrisccecy13EhMTU+Wva4uJieHFF188Z5ng4GC6dOnCuHHjsNls1K9fn++//56UlBS3cps3b+aVV16hS5cupKWlFWunwYMHYzab+fDDD7npppto0aIF9957L/Xr1+fQoUMsW7aM4OBgvv766/PWe926dcXOD84ewWuvvfb8N16Cfv368fzzz+Pr68vQoUMvahHuZ555hk8++YSbbrqJkSNHEhYWxvTp00lJSWHu3LnVssD32LFjWbZsGVdffTUPPPAAiYmJZGRksG7dOhYvXkxGRka5z9m+fXtmz57N448/zpVXXklgYCC33nprJdReRGoiBbtLxG233cbmzZt54403+P7775kyZQomk4mYmBhuueUWhg0bRps2bVzlExMTWbt2LS+99BLTpk0jPT2dOnXq0LZtW7dHd+UxcOBA6tWrx9ixYxk/fjz5+fnUr1+fzp07c++99573eKvVytdff83IkSMZM2YMvr6+9OnThxEjRrjVvSyysrLIy8tj27ZtrlmwZ0pJSSEgIKDM7RAVFcWyZct49NFHGTt2LOHh4QwbNox69eq5Bu9fambNmsWjjz7Ke++9h2EY/OUvf+Hbb7+lXr16rjLp6ekYhsHy5ctZvnx5sXMUPR7u1q0bP/30E6+88grv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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQWUlEQVR4nO3dd3hUVeLG8e/MpHcSAqGEJBBaaFJsIE1xiQKLLGJoKooFFRHUtexv7QWUtSwWwFWaCy4KKogFQQhSVEA6AWkJzUAgIYH0ycz9/TFmZEgCBFLI8H6eZ54w955777k3E/Lm3HPONRmGYSAiIiIiNZ65uisgIiIiIhVDwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFOqsXzzz+PyWRyWRYdHc2IESOqtB4zZszAZDKRkpJSpceV86Pvj4hI+SjYXUKSk5MZPXo0zZo1w8/PDz8/P+Li4njooYfYsmVLdVfvspSSkoLJZDqvV1nhIzo6GpPJRK9evUpd/5///Me5j/Xr11fi2VyYc12DCRMmVHcVLytz5szh7bffru5qiMglyqO6KyAOixYtIiEhAQ8PD4YNG0a7du0wm83s3LmTzz//nMmTJ5OcnExUVFR1V7XS/Pbbb5jNl9bfGuHh4Xz88ccuy9544w0OHTrEW2+9VaJsWXx8fFi+fDlHjhwhIiLCZd3s2bPx8fEhPz+/4ipeCYYMGcLNN99cYnn79u0r7Zi33347gwcPxtvbu9KOUdPMmTOHbdu2MXbs2OquiohcghTsLgF79+5l8ODBREVF8cMPP1CvXj2X9a+99hrvv//+JRd6TpeTk4O/v/9F7eNS/OXt7+/P8OHDXZb973//48SJEyWWn02XLl1Yt24dc+fO5ZFHHnEuP3ToECtXrmTAgAHMnz+/wupdGTp06FCuc64IFosFi8Vy1jKGYZCfn4+vr28V1UpE5NJ16SaFy8jrr79OTk4O06dPLxHqADw8PBgzZgyRkZEuy3fu3Mmtt95KaGgoPj4+dOrUiYULF7qUKe6jtHr1ah599FHCw8Px9/dnwIABHDt2rMSxvv32W7p27Yq/vz+BgYH06dOH7du3u5QZMWIEAQEB7N27l5tvvpnAwECGDRsGwMqVKxk0aBCNGjXC29ubyMhIxo0bR15e3jmvw5l97M73tuf5XAeA7du3c/311+Pr60vDhg15+eWXsdvt56xXRfDx8eFvf/sbc+bMcVn+ySefUKtWLXr37l1imy1btjBixAgaN26Mj48PERER3H333aSnpzvLnOs26el++eUX4uPjCQ4Oxs/Pj+7du7N69eoKPc/o6Gj69u3LqlWruOqqq/Dx8aFx48bMmjXLWWb9+vWYTCZmzpxZYvvFixdjMplYtGgRUHofu+JjLF68mE6dOuHr68vUqVMB2LdvH4MGDSI0NBQ/Pz+uueYavv76a5djJCYmYjKZ+PTTT3nllVdo2LAhPj4+3HDDDezZs8elbI8ePWjdujVbtmyhe/fu+Pn5ERsby7x58wBYsWIFV199Nb6+vjRv3pylS5eWOKfDhw9z9913U7duXby9vWnVqhXTpk27oDr16NGDr7/+mv379zu/x9HR0efxnRGRy4Va7C4BixYtIjY2lquvvvq8t9m+fTtdunShQYMGPPXUU/j7+/Ppp59yyy23MH/+fAYMGOBS/uGHH6ZWrVo899xzpKSk8PbbbzN69Gjmzp3rLPPxxx9z55130rt3b1577TVyc3OZPHky1113HRs3bnT5BVJUVETv3r257rrr+Ne//oWfnx8An332Gbm5uTzwwAOEhYWxdu1a3nnnHQ4dOsRnn31Wruty5i1QgH/+85+kpaUREBBQrutw5MgRevbsSVFRkbPcBx98UKWtPEOHDuUvf/kLe/fupUmTJoDjttqtt96Kp6dnifJLlixh37593HXXXURERLB9+3Y++OADtm/fzs8//4zJZCr1VrHVamXcuHF4eXk5ly1btoybbrqJjh078txzz2E2m5k+fTrXX389K1eu5Kqrrjpn/XNzczl+/HiJ5SEhIXh4/PlfyZ49e7j11lsZOXIkd955J9OmTWPEiBF07NiRVq1a0alTJxo3bsynn37KnXfe6bKvuXPnlhl0T/fbb78xZMgQ7r//fu69916aN2/O0aNH6dy5M7m5uYwZM4awsDBmzpzJX//6V+bNm1fiZ2LChAmYzWYef/xxsrKyeP311xk2bBi//PKLS7kTJ07Qt29fBg8ezKBBg5g8eTKDBw9m9uzZjB07llGjRjF06FAmTpzIrbfeysGDBwkMDATg6NGjXHPNNZhMJkaPHk14eDjffvstI0eO5OTJkyVup56rTv/3f/9H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2dnZREREcPXVV3P//fefV30++eQT54je0915550XFez++c9/kpube16jYc+mbt26rFmzhieffJJ33nmH/Px82rZty1dffUWfPn0uat8XU6e1a9fy4osv8vnnn/P+++8TFhZGq1ateO211y5onw8++CCbNm1i+vTpvPXWW0RFRSnYiYiTyVCvXBERERG3oD52IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJjyquwIiIiI1kc1mw2q1Vnc1xM15enpisVjOu7yCnYiISDkYhsGRI0fIzMys7qrIZSIkJISIiAhMJtM5yyrYiYiIlENxqKtTpw5+fn7n9ctW5EIYhkFubi5paWkA1KtX75zbKNiJiIicJ5vN5gx1YWFh1V0duQz4+voCkJaWRp06dc55W1aDJ0RERM5TcZ86Pz+/aq6JXE6KP2/n06dTwU5ERKScdPtVqlJ5Pm8KdiIiIiJuQsFORERExE0o2ImIiFShwsLCi1p/MY4cOcLDDz9M48aN8fb2JjIykn79+vHDDz9U2jGlainYiYiIVJG5c+fSpk0bDh48WOr6gwcP0qZNG+bOnVvhx05JSaFjx44sW7aMiRMnsnXrVr777jt69uzJQw89VOHHk+qhYCciIlIFCgsLefbZZ9m1axc9evQoEe4OHjxIjx492LVrF88++2yFt9w9+OCDmEwm1q5dy8CBA2nWrBmtWrXi0Ucf5eeffyYlJQWTycSmTZuc22RmZmIymUhMTHQu27ZtGzfddBMBAQHUrVuX22+/nePHj1doXeXCKdiJiIhUAS8vL5YuXUrjxo3Zt2+fS7grDnX79u2jcePGLF26FC8vrwo7dkZGBt999x0PPfQQ/v7+JdaHhISc134yMzO5/vrrad++PevXr+e7777j6NGj3HbbbRVWV7k4CnYiIiJVJDIyksTERJdwt2bNGpdQl5iYSGRkZIUed8+ePRiGQYsWLS5qP++++y7t27fn1VdfpUWLFrRv355p06axfPlydu3aVUG1lYuhJ0+IiIhUoeJwVxzmunTpAlBpoQ4cj6aqCJs3b2b58uUEBASUWLd3716aNWtWIceRC6dgJyIiUsUiIyP5+OOPnaEO4OOPP66UUAfQtGlTTCYTO3fuLLOM2ey4iXd6CDzzSQfZ2dn069eP1157rcT25/McU6l8uhUrIiJSxQ4ePMjtt9/usuz2228vc7TsxQoNDaV3796899575OTklFifmZlJeHg4AKmpqc7lpw+kAOjQoQPbt28nOjqa2NhYl1dpffek6inYiYiIVKEzB0qsXr261AEVFe29997DZrNx1VVXMX/+fHbv3s2OHTuYNGkS1157Lb6+vlxzzTVMmDCBHTt2sGLFCv75z3+67OOhhx4iIyODIUOGsG7dOvbu3cvixYu56667sNlslVJvKR8FOxERkSpyZqhLTEykc+fOJQZUVEa4a9y4MRs2bKBnz5489thjtG7dmhtvvJEffviByZMnAzBt2jSKioro2LEjY8eO5eWXX3bZR/369Vm9ejU2m42//OUvtGnThrFjxxISEuK8lSvVy2RUVI9KERERN5efn09ycjIxMTH4+PiUa9vCwkLatGnDrl27Sh0ocXroa9asGVu3bq3QKU+k5irP507xWkREpAp4eXnx4osv0qxZs1JHvxaPlm3WrBkvvviiQp1cELXYiYiInKeLabErVlhYeNbQdq71cvlRi52IiMgl6lyhTaFOLoaCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CY/qrkBFMwyDUwVFWIvseFjMBPl4YDKZqrtaIiKXp8IcsOaByQzeQWBxu187IpcUt/gJs9kN9h7LZsuhTPakZZOZa8VmNzCbTYT4etI4PIC2DYNpWicAD4saKUVEKo1hQNYh+H0DHE2C7KNgs4LJBF7+UCsG6l8BEW3By6+6aysVIDExkZ49e3LixAlCQkLKLBcdHc3YsWMZO3ZsldXtclTjJyg+mJHLoi2/syP1JIVFBgHeHvh5W7CYTdjtBjmFNnIKivAwm2hWN5B+7eoTXdu/uqstIuJ+8jJhxyI4sAbys8ArwPGyeDoCnzUXCk6BYYeQSIjrDw06QQ16xmhFTFDsIi8PTp6EoCDw9b34/Z3FiBEjmDlzJgCenp40atSIO+64g3/84x94eFx4O09hYSEZGRnUrVsXk8nEjBkzGDt2LJmZmS7ljh07hr+/P35+CvTlVZ7PXY1usVuXksHnGw5xIsdKw1q++HuXPJ2QPz4/eYU2klJPcuhELn+9ogGdm4TpFq2ISEXJ2Ae/zoD0vRBYD4IaOlrpTucb4vhqs0LmAfhlCjS5AdoMAo/LbFLeVavgzTdhwQKw2x3htn9/eOwx6NKl0g4bHx/P9OnTKSgo4JtvvuGhhx7C09OTp59++oL36eXlRURExDnLhYeHX/Ax5PzVnD+TzvDr/hP8b+0BCqx2mtUNKDXUnc7Xy0LTOgHYDfhs/UF+2pdeRTUVEXFzmQdh7X8gIwXCW4BfWMlQdzqLJ4Q1Ab/asOtb2PKpI9xcLiZPhm7d4Kuv/jxvu93xvmtXmDKl0g7t7e1NREQEUVFRPPDAA/Tq1YuFCxdy4sQJ7rjjDmrVqoWfnx833XQTu3fvdm63f/9++vXrR61atfD396dVq1Z88803gONWrMlkIjMzk8TERO666y6ysrIwmUyYTCaef/55wHEr9u233wZg6NChJCQkuNTNarVSu3ZtZs2a9cclsTN+/HhiYmLw9fWlXbt2zJs3r9KujbuokcEu7WQ+CzYdxmY3iAz1c7a8FVkLz7qdrchK/RBfPMxmFm1O5dCJ3KqoroiI+yoqgM3/c4S78OZgdvyRXWgtOutmhdYi8K0FQQ1g71I4+HNV1Lb6rVoFDz3kuDVddMY1KipyLH/wQVi9ukqq4+vrS2FhISNGjGD9+vUsXLiQn376CcMwuPnmm7FarQA89NBDFBQU8OOPP7J161Zee+01AgICSuyvc+fOvP322wQFBZGamkpqaiqPP/54iXLDhg3jq6++Ijs727ls8eLF5ObmMmDAAADGjx/PrFmzmDJlCtu3b2fcuHEMHz6cFStWVNLVcA81LtgZhsG3245w9GQ+kaF/3qffmPgNE+/vx4m01FK3O5GWysT7+7Ex8Rvqh/iQkVPI11tSqeFdDEVEqlfKKjiyxdECZ3L8Spm7fAttRk7iYFpmqZscTMukzchJzF2+BXxCwOINSQscffTc3ZtvgsVy9jIWC7z1VqVWwzAMli5dyuLFi2nUqBELFy7kww8/pGvXrrRr147Zs2dz+PBhvvzySwAOHDhAly5daNOmDY0bN6Zv375069atxH69vLwIDg7GZDIRERFBREREqQGwd+/e+Pv788UXXziXzZkzh7/+9a8EBgZSUFDAq6++yrRp0+jduzeNGzdmxIgRDB8+nKlTp1badXEHNS7YpWbls/VwFhFBPphPa6n7bta/OXYohff/fnuJcHciLZX3/347xw6l8N2sf//RcufDziOnSElXq52IyAUpKoR9K8DTDzwcHboLrUU8O30puw4dp8e4D0uEu4NpmfQY9yG7Dh3n2elLHS13wZGQdRh+31gNJ1GF8vIcferObKk7U1ERfPGFo3wFW7RoEQEBAfj4+HDTTTeRkJDAiBEj8PDw4Oqrr3aWCwsLo3nz5uzYsQOAMWPG8PLLL9OlSxeee+45tmzZclH18PDw4LbbbmP27NkA5OTksGDBAoYNGwbAnj17yM3N5cYbbyQgIMD5mjVrFnv37r2oY7u7Ghfsdh45yal8K8G+ns5lHp5ejJowg7B6kaSnHnQJd8WhLj31IGH1Ihk1YQYenl4EeHuQW1DEjtSs6joVEZGaLX0PZB2EwD87znt5erD0X3fTuF4o+1IzXMJdcajbl5pB43qhLP3X3Xh5eoDZ4giGB9dW04lUkZMnz78vod3uKF/BevbsyaZNm9i9ezd5eXnMnDnzvAYS3nPPPezbt4/bb7+drVu30qlTJ955552LqsuwYcP44YcfSEtL48svv8TX15f4+HgA5y3ar7/+mk2bNjlfSUlJ6md3DjUu2B3IyMXTYi7xQaxVpx4PTvzYJdwlb9/gEuoenPgxterUA8BkMuHjaWG/WuxERC7Mqd/BVuRsrSsWWSeExLfucQl3a7btdwl1iW/dQ2SdkD838gmGk787pkNxV0FB5z+1i9nsKF/B/P39iY2NpVGjRs4pTlq2bElRURG//PKLs1x6ejq//fYbcXFxzmWRkZGMGjWKzz//nMcee4z//Oc/pR7Dy8sLm812zrp07tyZyMhI5s6dy+zZsxk0aBCeno5Gm7i4OLy9vTlw4ACxsbEur8jIyIu5BG6vxgW7wyfy8PUsvX/CmeHunXFDSg11xfy8LPyemY/drn52IiLllnMcymjsOTPcdRkztexQB47Ji625kOvGMxb4+jqmNDnXnHEeHjBgQKXPa1esadOm9O/fn3vvvZdVq1axefNmhg8fToMGDejfvz8AY8eOZfHixSQnJ7NhwwaWL19Oy5YtS91fdHQ02dnZ/PDDDxw/fpzc3LIbUIYOHcqUKVNYsmSJ8zYsQGBgII8//jjjxo1j5syZ7N27lw0bNvDOO+845+KT0tW4YFdkczxRoiy16tRj6BOvuywb+sTrJUIdOFrtDMPApgEUIiLlZytyDpgoTWSdED5+epDLso+fHlQy1IFjP4Yd7Odu6anRHn0UztWaZbPBuHFVU58/TJ8+nY4dO9K3b1+uvfZaDMPgm2++cbag2Ww2HnroIVq2bEl8fDzNmjXj/fffL3VfnTt3ZtSoUSQkJBAeHs7rr79eajlw3I5NSkqiQYMGdDlj/r6XXnqJZ555hvHjxzuP+/XXXxMTE1NxJ+6GatyTJyYu/o0jWXk0rFX6zNWn96krVlaLXWpWHgHeHjzTN06TFYuIlNfW+ZD0BdRpVerq0/vUFSuzxa4w29ECeMMzENywEit9cSrkyRNTpjimNLFYXAdSeHg4Qt3778OoURVTYXEL5fnc1bgWu6gwP/IKS/9r58yBEg+/9UmpAyqK5RTYiArzU6gTEbkQgXUdX0tpHzhzoMTqSfeXOqDCqSAbvAPBv07l17u6jRoFK1c6bssW97krfvLEypUKdXJRalywi6zlhx2wndEv7sxQ9+DEj4lp1aHEgIricGe3GxTZ7UTXLjm/joiInIfgSMezYAtcR2+eGeoS37qHzq2jSgyocAl3+ZkQFnv5PFqsSxeYNw+ys+HIEcfXefMq9XFicnmoccGuVYMgwgO8OXaqwLmsyFrIlKdGlDpQ4swBFVOeGkGRtZD0nEJq+XnRun7FjzoSEbkshDRyPELs1J93QwqtRfR6fFqpAyXOHFDR6/FpjnnsrPmOR5BFXlVNJ1KNfH2hbt0qGygh7q/GBbsgH0+6xIaRmVdIYZFjPiAPTy/i73iE8IbRpfalKw534Q2jib/jEQyzB+k5BVzTOIywAO/qOA0RkZrPZIImPcHiBXknAMc8di/e1YtmDWuX2peuONw1a1ibF+/qhZeHBU7sgzpxULd1NZyEiHupcYMnAPKtNiYn7uW3I6eIrROAxfznEyg8PMtuxi+yFmK2eLLnWDaNw/15oEcsAd7nGHYuIiJlMwzYNAd++wZCm4Cno+Wp0FrkmHy4DM71mfvB4gldxjoeS3aJq5DBEyLl5NaDJwB8PC0MviqSRmG+7E47RYHVMZjibKEOwGaysDvtFPWCfUjo1EihTkTkYplM0OoWiLwaMvY6+srBWUMdgJfFBOl7ARO0G1IjQp1ITVBjk029YF/u7tKYeb8eYtvhLPy9LdQJ9MHLo2RWtdrsHDtVwMl8Ky0igri1Y0MiQ0ufLkVERMrJyx863Q3eQZCyErKPQVB9x/IzGXbHtCY5aY5pTdoMgoadqr7OIm6qxgY7gIhgH+7tFsOaPcdZvSed/Rk52A3wNJuwmE3YDAOrzcAM1A3y4ca4unRrFo5PGU+uEBGRC+QdAB3vhIjWsHuJ4zmytkIwWRx98DCgKN/x1TcUmsVD85vAv3Z111zErdToYAfg7WGhZ4u6XNukNr8dOUVqVj6HT+SSX2THy8NMwxBfIoJ9aB4RiJ9XjT9dEZFLl8nkaH2r3x6O73b0n8s84Hj+q8nsaMULqg/hLcE/rLprK+KW3Cbp+HhaaBcZQjs9G1hEpHqZLVCnheMlUg7R0dGMHTuWsWPHVndVaqwaOXhCRETEHeTlwdGjjq+VbcSIEZhMJiZMmOCy/Msvv6zyJzDNmDGDkJCQEsvXrVvHfffdV6V1cTcKdiIiIlVs1Sr4298gIAAiIhxf//Y3WL26co/r4+PDa6+9xokTJyr3QBcoPDwcPz8NbrwYCnYiIiJVaPJk6NYNvvoK7I559rHbHe+7doUpUyrv2L169SIiIoLx48eXWWbVqlV07doVX19fIiMjGTNmDDk5Oc71qamp9OnTB19fX2JiYpgzZw7R0dG8/fbbzjJvvvkmbdq0wd/fn8jISB588EGys7MBSExM5K677iIrKwuTyYTJZOL5558HcNnP0KFDSUhIcKmb1Wqldu3azJo1CwC73c748eOJiYnB19eXdu3aMW/evAq4UjWXgp2IiEgVWbUKHnrIMa9zUZHruqIix/IHH6y8ljuLxcKrr77KO++8w6FDh0qs37t3L/Hx8QwcOJAtW7Ywd+5cVq1axejRo51l7rjjDn7//XcSExOZP38+H3zwAWlpaS77MZvNTJo0ie3btzNz5kyWLVvGE088AUDnzp15++23CQoKIjU1ldTUVB5//PESdRk2bBhfffWVMxACLF68mNzcXAYMGADA+PHjmTVrFlOmTGH79u2MGzeO4cOHs2LFigq5XjWSISIiIuclLy/PSEpKMvLy8i5o+wEDDMPDwzAcEa70l4eHYQwcWMEVNwzjzjvvNPr3728YhmFcc801xt13320YhmF88cUXRnEcGDlypHHfffe5bLdy5UrDbDYbeXl5xo4dOwzAWLdunXP97t27DcB46623yjz2Z599ZoSFhTnfT58+3QgODi5RLioqyrkfq9Vq1K5d25g1a5Zz/ZAhQ4yEhATDMAwjPz/f8PPzM9asWeOyj5EjRxpDhgw5+8WoYcrzuXObUbEiIiKXsrw8WLDgz9uvZSkqgi++cJT39a2curz22mtcf/31JVrKNm/ezJYtW5g9e7ZzmWEY2O12kpOT2bVrFx4eHnTo0MG5PjY2llq1arnsZ+nSpYwfP56dO3dy8uRJioqKyM/PJzc397z70Hl4eHDbbbcxe/Zsbr/9dnJycliwYAH/+9//ANizZw+5ubnceOONLtsVFhbSvn37cl0Pd6JgJyIiUgVOnjx3qCtmtzvKV1aw69atG7179+bpp59mxIgRzuXZ2dncf//9jBkzpsQ2jRo1YteuXefcd0pKCn379uWBBx7glVdeITQ0lFWrVjFy5EgKCwvLNThi2LBhdO/enbS0NJYsWYKvry/x8fHOugJ8/fXXNGjQwGU7b2/v8z6Gu1GwExERqQJBQWA2n1+4M5sd5SvThAkTuOKKK2jevLlzWYcOHUhKSiI2NrbUbZo3b05RUREbN26kY8eOgKPl7PRRtr/++it2u5033ngDs9nRlf/TTz912Y+Xlxc2m+2cdezcuTORkZHMnTuXb7/9lkGDBuHp6QlAXFwc3t7eHDhwgO7du5fv5N2Ygp2IiEgV8PWF/v0do1/PHDhxOg8PR7nKaq0r1qZNG4YNG8akSZOcy5588kmuueYaRo8ezT333IO/vz9JSUksWbKEd999lxYtWtCrVy/uu+8+Jk+ejKenJ4899hi+vr7OufBiY2OxWq2888479OvXj9WrVzPljKG+0dHRZGdn88MPP9CuXTv8/PzKbMkbOnQoU6ZMYdeuXSxfvty5PDAwkMcff5xx48Zht9u57rrryMrKYvXq1QQFBXHnnXdWwlW79GlUrIiISBV59FE4V0OVzQbjxlVNfV588UXspzUhtm3blhUrVrBr1y66du1K+/btefbZZ6lfv76zzKxZs6hbty7dunVjwIAB3HvvvQQGBuLj4wNAu3btePPNN3nttddo3bo1s2fPLjG9SufOnRk1ahQJCQmEh4fz+uuvl1nHYcOGkZSURIMGDejSpYvLupdeeolnnnmG8ePH07JlS+Lj4/n666+JiYmpiMtTI5kMwzCquxIiIiI1QX5+PsnJycTExDiDTHlNmeKY0sRicW258/BwhLr334dRoyqowlXg0KFDREZGsnTpUm644Ybqro5bKs/nTi12IiIiVWjUKFi50nG79Y8uaJjNjvcrV176oW7ZsmUsXLiQ5ORk1qxZw+DBg4mOjqZbt27VXTVBfexERESqXJcujldenmP0a1BQ5fepqyhWq5V//OMf7Nu3j8DAQDp37szs2bOdgxqkeinYiYiIVBNf35oT6Ir17t2b3r17V3c1pAy6FSsiIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkKjYkVERCrZ/pP7ybHmlHs7f09/ooKiKqFG4q4U7ERERCrR/pP76ftF3wveftGARQp3ct50K1ZERKQSXUhLXUVuf6affvoJi8VCnz59KnS/5yslJQWTycSmTZuq5fjuTsFORETkMvLRRx/x8MMP8+OPP/L7779Xd3WkginYiYiIXCays7OZO3cuDzzwAH369GHGjBku6xcuXEjTpk3x8fGhZ8+ezJw5E5PJRGZmprPMqlWr6Nq1K76+vkRGRjJmzBhycv5sVYyOjubVV1/l7rvvJjAwkEaNGvHBBx8418fExADQvn17TCYTPXr0qMxTvuwo2ImIiFwmPv30U1q0aEHz5s0ZPnw406ZNwzAMAJKTk7n11lu55ZZb2Lx5M/fffz//93//57L93r17iY+PZ+DAgWzZsoW5c+eyatUqRo8e7VLujTfeoFOnTmzcuJEHH3yQBx54gN9++w2AtWvXArB06VJSU1P5/PPPq+DMLx8KdiIiIpeJjz76iOHDhwMQHx9PVlYWK1asAGDq1Kk0b96ciRMn0rx5cwYPHsyIESNcth8/fjzDhg1j7NixNG3alM6dOzNp0iRmzZpFfn6+s9zNN9/Mgw8+SGxsLE8++SS1a9dm+fLlAISHhwMQFhZGREQEoaGhVXDmlw8FOxERkcvAb7/9xtq1axkyZAgAHh4eJCQk8NFHHznXX3nllS7bXHXVVS7vN2/ezIwZMwgICHC+evfujd1uJzk52Vmubdu2zn+bTCYiIiJIS0urrFOT02i6ExERkcvARx99RFFREfXr13cuMwwDb29v3n333fPaR3Z2Nvfffz9jxowpsa5Ro0bOf3t6erqsM5lM2O32C6y5lIeCnYiIiJsrKipi1qxZvPHGG/zlL39xWXfLLbfwySef0Lx5c7755huXdevWrXN536FDB5KSkoiNjb3gunh5eQFgs9kueB9SNgU7ERERN7do0SJOnDjByJEjCQ4Odlk3cOBAPvroIz799FPefPNNnnzySUaOHMmmTZuco2ZNJhMATz75JNdccw2jR4/mnnvuwd/fn6SkJJYsWXLerX516tTB19eX7777joYNG+Lj41OiTnLh1MdORETEzX300Uf06tWr1AA1cOBA1q9fz6lTp5g3bx6ff/45bdu2ZfLkyc5Rsd7e3oCj79yKFSvYtWsXXbt2pX379jz77LMut3fPxcPDg0mTJjF16lTq169P//79K+YkBQCTUTzOWURERM4qPz+f5ORkYmJi8PHxOa9tktKTSFiUcMHHnNt3LnFhcRe8/cV45ZVXmDJlCgcPHqyW44tDeT53uhUrIiIiALz//vtceeWVhIWFsXr1aiZOnFhijjq5tCnYiYiICAC7d+/m5ZdfJiMjg0aNGvHYY4/x9NNPV3e1pBwU7ERERCqRv6d/tW5fHm+99RZvvfVWlR1PKp6CnYiISCWKCopi0YBF5Fhzzl34DP6e/kQFRVVCrcRdKdiJiIhUMoUzqSqa7kRERETETajFTkREpBoYhkG+1U6hzY6XxYyPp9k5EbDIhVKwExERqUL5VhtJqSdZl5zB/vQcbHYDi9lEVJg/V8aEElcvCB9PS3VXU2ooBTsREZEqknI8h7nrD7I/PQcTJmr5eeLlZaHIZmfLoSw2H8okKsyfhE6RRNeuutGw4j7Ux05ERKQKpBzPYfrqZPYfzyEq1J/YOgGEBXgT7OtJWIA3sXUCiAr1Z/8f5VKOl38UrTvr0aMHY8eOre5qXPIU7ERERCpZvtXG3PUHOXaqgNg6AXh5lP7r18vDTGydAI6dKmDu+oPkW20VVocRI0ZgMpkwmUx4enoSExPDE088QX5+foUdoyaLjo7m7bffru5qXDQFOxERkUqWlHqS/ek5RIX5n3OAhMnk6G+3Pz2HHaknK7Qe8fHxpKamsm/fPt566y2mTp3Kc889V6HHuBiGYVBUVFTd1ajRFOxEREQqkWEYrEvOwISpzJa6M3l5mDFhYm1yBoZhVFhdvL29iYiIIDIykltuuYVevXqxZMkS53q73c748eOJiYnB19eXdu3aMW/ePOf6Tp068a9//cv5/pZbbsHT05Ps7GwADh06hMlkYs+ePQB8/PHHdOrUicDAQCIiIhg6dChpaWnO7RMTEzGZTHz77bd07NgRb29vVq1aRU5ODnfccQcBAQHUq1ePN95445zntnnzZnr27ElgYCBBQUF07NiR9evXO9evWrWKrl274uvrS2RkJGPGjCEnx3G7u0ePHuzfv59x48Y5WzVrKgU7ERGRSpRvtbM/PYdafp7l2q6Wnyf703PIt9orpV7btm1jzZo1eHl5OZeNHz+eWbNmMWXKFLZv3864ceMYPnw4K1asAKB79+4kJiYCjsC6cuVKQkJCWLVqFQArVqygQYMGxMbGAmC1WnnppZfYvHkzX375JSkpKYwYMaJEXZ566ikmTJjAjh07aNu2LX//+99ZsWIFCxYs4PvvvycxMZENGzac9XyGDRtGw4YNWbduHb/++itPPfUUnp6Oa753717i4+MZOHAgW7ZsYe7cuaxatYrRo0cD8Pnnn9OwYUNefPFFUlNTSU1NvahrW500KlZERKQSFdrs2OwGXl7lm8LEYjZh/WOeO18qZvqTRYsWERAQQFFREQUFBZjNZt59910ACgoKePXVV1m6dCnXXnstAI0bN2bVqlVMnTqV7t2706NHDz766CNsNhvbtm3Dy8uLhIQEEhMTiY+PJzExke7duzuPd/fddzv/3bhxYyZNmsSVV15JdnY2AQEBznUvvvgiN954IwDZ2dl89NFH/Pe//+WGG24AYObMmTRs2PCs53bgwAH+/ve/06JFCwCaNm3qXDd+/HiGDRvmHHzRtGlTJk2aRPfu3Zk8eTKhoaFYLBZny2JNphY7ERGRSuRlMWMxmyiyla/lrXh+Oy9Lxf2q7tmzJ5s2beKXX37hzjvv5K677mLgwIEA7Nmzh9zcXG688UYCAgKcr1mzZrF3714AunbtyqlTp9i4cSMrVqxwhr3iVrwVK1bQo0cP5/F+/fVX+vXrR6NGjQgMDHSGvgMHDrjUq1OnTs5/7927l8LCQq6++mrnstDQUJo3b37Wc3v00Ue555576NWrFxMmTHDWGRy3aWfMmOFyXr1798Zut5OcnFz+C3kJU7ATERGpRD6eZqLC/DmRay3XdidyrUSF+ePjWXG/qv39/YmNjaVdu3ZMmzaNX375hY8++gjA2U/u66+/ZtOmTc5XUlKSs59dSEgI7dq1IzEx0RniunXrxsaNG9m1axe7d+92hrecnBx69+5NUFAQs2fPZt26dXzxxRcAFBYWlqjXxXr++efZvn07ffr0YdmyZcTFxTmPl52dzf333+9yXps3b2b37t00adLkoo99KVGwExERqUQmk4krY0IxMCgsOr9Wu8IiOwYGV8WEVlpHfrPZzD/+8Q/++c9/kpeXR1xcHN7e3hw4cIDY2FiXV2RkpHO77t27s3z5cn788Ud69OhBaGgoLVu25JVXXqFevXo0a9YMgJ07d5Kens6ECRPo2rUrLVq0cBk4UZYmTZrg6enJL7/84lx24sQJdu3adc5tmzVrxrhx4/j+++/529/+xvTp0wHo0KEDSUlJJc4rNjbW2cfQy8sLm63ippepLgp2IiIilSyuXpBzCpNzjXI1DMM5NUrLekGVWq9BgwZhsVh47733CAwM5PHHH2fcuHHMnDmTvXv3smHDBt555x1mzpzp3KZHjx4sXrwYDw8PZ3+2Hj16MHv2bJf+dY0aNcLLy4t33nmHffv2sXDhQl566aVz1ikgIICRI0fy97//nWXLlrFt2zZGjBiB2Vx2ZMnLy2P06NEkJiayf/9+Vq9ezbp162jZsiUATz75JGvWrGH06NFs2rSJ3bt3s2DBAufgCXDMY/fjjz9y+PBhjh8/Xu5realQsBMREalkPp4WEjpFEh7ozZ607DJb7gqL7OxJyyY80JvBV0ZW+jNjPTw8GD16NK+//jo5OTm89NJLPPPMM4wfP56WLVsSHx/P119/TUxMjHObrl27YrfbXUJcjx49sNlsLv3rwsPDmTFjBp999hlxcXFMmDDBZaqUs5k4cSJdu3alX79+9OrVi+uuu46OHTuWWd5isZCens4dd9xBs2bNuO2227jpppt44YUXAGjbti0rVqxg165ddO3alfbt2/Pss89Sv3595z5efPFFUlJSaNKkCeHh4ed7CS85JqMiJ8gRERFxY/n5+SQnJxMTE4OPj0+5ty/tWbEWswmb3eBErhUDg6gwfwZfGUlUmJ4VKw7l+dxpuhMREZEqEl3bn0duaMqO1JOsTc5gf3oOVqsdi9lE24bBXBUTSst6QZXeUifuS8FORESkCvl4WmjfqBZXRIaQ/8c8dV4WMz6e5hr9xAO5NCjYiYiIVAOTyYSvl6XCJh8WAQ2eEBEREXEbCnYiIiIibkLBTkRERMRNqI+diIhIdTAMsOaBrRAsXuDpCxo8IRdJwU5ERKQqWfPhyFY48BNk7AO7DcwWCG0Mja6FiDbgWf458kRAwU5ERKTqpO+FjR9DRjJgAr9Q8PQGuxUOb4DDv0JoDLS/HcLc6+H0UjXUx05ERKQqpO+FX6Y4Ql1oYwhvDv7h4Bvi+Bre3LE8I9lRLn1vtVXVZDLx5ZdfVtvx5cIp2ImIiFQ2a76jpS47DWo3d/SpK43Fy7E+O81R3ppfYVUYMWIEJpMJk8mEp6cndevW5cYbb2TatGnY7a7Prk1NTeWmm246r/1WZQh8/vnnueKKKypt//n5+YwYMYI2bdrg4eHBLbfcUmnHKlbR56RgJyIiUtmObP2zpe5cAyRMJqgV4yh/dFuFViM+Pp7U1FRSUlL49ttv6dmzJ4888gh9+/alqKjIWS4iIgJvb+8KO25hYWGF7asilFUfm82Gr68vY8aMoVevXlVcq4qhYCciIlKZDMMxUAJT2S11Z/LwdpTfv8axfQXx9vYmIiKCBg0a0KFDB/7xj3+wYMECvv32W2bMmOEsd3orXGFhIaNHj6ZevXr4+PgQFRXF+PHjAYiOjgZgwIABmEwm5/viVqgPP/zQ5cH13333Hddddx0hISGEhYXRt29f9u51veV86NAhhgwZQmhoKP7+/nTq1IlffvmFGTNm8MILL7B582Zny2NxnQ8cOED//v0JCAggKCiI2267jaNHjzr3WVZ9zuTv78/kyZO59957iYiIOK9rerbrA5CZmck999xDeHg4QUFBXH/99WzevBngrOd0oTR4QkQuX0WFYCsAk0VTTUjlseY5Rr/6hZZvO79Qx3bWPPDyq5y6Addffz3t2rXj888/55577imxftKkSSxcuJBPP/2URo0acfDgQQ4ePAjAunXrqFOnDtOnTyc+Ph6L5c/Ho+3Zs4f58+fz+eefO5fn5OTw6KOP0rZtW7Kzs3n22WcZMGAAmzZtwmw2k52dTffu3WnQoAELFy4kIiKCDRs2YLfbSUhIYNu2bXz33XcsXboUgODgYOx2uzPUrVixgqKiIh566CESEhJITEw8a30qwtmuD8CgQYPw9fXl22+/JTg4mKlTp3LDDTewa9euMs/pYijYicjl5dQR+H0jHPsNsg455hAzmcA3FMJiHVNN1GkJFs/qrqm4C1uhY0oTz3Le2jR7/DnPHZUX7ABatGjBli1bSl134MABmjZtynXXXYfJZCIqKsq5Ljw8HICQkJASLVyFhYXMmjXLWQZg4MCBLmWmTZtGeHg4SUlJtG7dmjlz5nDs2DHWrVtHaKgjCMfGxjrLBwQE4OHh4XKsJUuWsHXrVpKTk4mMjARg1qxZtGrVinXr1nHllVeWWZ+KcLbrs2rVKtauXUtaWprz1va//vUvvvzyS+bNm8d9991X6jldDN2KFZHLQ34WbJoDy16Gjf+FI9vAZgWLN5g8HIFv13ew6i1YMRHSdlR3jcVdWLwc89TZreXbzl7k2O58b99eBMMwMJXRYj1ixAg2bdpE8+bNGTNmDN9///157TMqKqpEiNq9ezdDhgyhcePGBAUFOW/dHjhwAIBNmzbRvn17Z6g7Hzt27CAyMtIZ6gDi4uIICQlhx44/f45Lq09FONv12bx5M9nZ2YSFhREQEOB8JScnl7gFXVHUYici7i8jGX6dAem7ISAC6rQq+7arNQ/Sd8Hqf0OLvtD8ZjDrb2C5CJ6+jkEThzc4pjU5X7kZ0KCDY/tKtmPHDmJiYkpd16FDB5KTk/n2229ZunQpt912G7169WLevHln3ae/v3+JZf369SMqKor//Oc/1K9fH7vdTuvWrZ2DGXx9K+9cS6tPRTjb9cnOzqZevXout4SLhYSEVEp9FOxExL1lHoC1H0DWYQhv6bi9dTaevn9MN3EUts0Dww4t+6n/nVw4k8nxRInDv/75+LBzKSoADIjqXOmfvWXLlrF161bGjRtXZpmgoCASEhJISEjg1ltvJT4+noyMDEJDQ/H09MRms53zOOnp6fz222/85z//oWvXroDjVuXp2rZty4cffujc95m8vLxKHKtly5bOfm3FrXZJSUlkZmYSFxd3znpVhLKuT4cOHThy5AgeHh7O1skzlXZOF0N/hoqI+7Lmw6ZPIOugY/LX0kJdgRUyTjm+ni6gLvjUgp2LHFNViFyMiDaOJ0pk7Dv3KFfDgBPJjvJ1W1doNQoKCjhy5AiHDx9mw4YNvPrqq/Tv35++fftyxx13lLrNm2++ySeffMLOnTvZtWsXn332GREREc4Wp+joaH744QeOHDnCiRMnyjx2rVq1CAsL44MPPmDPnj0sW7aMRx991KXMkCFDiIiI4JZbbmH16tXs27eP+fPn89NPPzmPlZyczKZNmzh+/DgFBQX06tWLNm3aMGzYMDZs2MDatWu544476N69O506dSr3NUpKSmLTpk1kZGSQlZXFpk2b2LRpU5nlz3Z9evXqxbXXXsstt9zC999/T0pKCmvWrOH//u//WL9+fZnndDEU7ETEfSWvgKNbIbQJmM74725rCjz7X+jzPNw63vH12f/Ctv1/lgmoA7Yi2P6F4xatyIXy9HE8JiygDhz/7Y8WuVIUFTjWB9SBDndU+DNjv/vuO+rVq0d0dDTx8fEsX76cSZMmsWDBgjJHigYGBvL666/TqVMnrrzySlJSUvjmm28w/9FF4Y033mDJkiVERkbSvn37Mo9tNpv53//+x6+//krr1q0ZN24cEydOdCnj5eXF999/T506dbj55ptp06YNEyZMcNZt4MCBxMfH07NnT8LDw/nkk08wmUwsWLCAWrVq0a1bN3r16kXjxo2ZO3fuBV2jm2++mfbt2/PVV1+RmJhI+/btz3peZ7s+JpOJb775hm7dunHXXXfRrFkzBg8ezP79+6lbt26Z53QxTIZRgRPkiIhcKqz5sOxFyD0BIY1c1y34Gf69ECxmsJ02437x+7H94a9XO5bZCh2tLNc+BJFXVV395ZKUn59PcnLyWedCO6vSnhVr9nAMlMjNAAxHS12HOxz98kQo3+dOfexExD0d2+noV3fmL8etKY5QB66h7vT3by+AxhHQOuqP/lAmOLRewU4uXlgT6P6U44kS+9f8OU+d2eIYKBHV2XH7tYJb6uTyoWAnIu7pVKpj4MOZHdU/W1Wype5MFrOjXOs/5qPyCXa0sNismt9OLp6nDzTsBA06/jlPncVLk2RLhVAfOxFxTydTHU+UOF2BFdbsOHuoA8f61Ul/Dqjw8oPCbMhNr5y6yuXJZHJ8tnxDHF8V6qQCKNiJiHuyFZQcMJGTD/bz7FZsNxzlwREQDbujH5SIyCVMwU5E3JOnPxhnzA3l7wPm82wVMZsc5eG0JwCU85FQ4rY07lCqUnk+bwp2IuKeguo7WtlO5+0JnVs6+tCdjcUMXeIc5cFxG9YnuPwPcRe34+np+Ezk5uZWc03kclL8eSv+/J2NBk+IiHsKbuDokG7NBc/THqA+6DpYlXT2bW12R7li+VmOju7m0uf5ksuHxWIhJCSEtLQ0APz8/Mp8xqrIxTIMg9zcXNLS0ggJCSlzrsHTKdiJiHsKawq1ouHEfscUE8XaRDvmqXt7wdnnsSseEWvNdcwz1rD8M9iLe4qIiABwhjuRyhYSEuL83J2LJigWEfe1f43jObGBDcA7wHXdtv2OKU1WJzkGSphNjtuvg677M9QZBhzbAfXaQZexYNHfwvInm82G1Wo9d0GRi+Dp6XleLXXFFOxExH3ZbY5gl7IKajcr/eHrBVbH6Fd/nz/71BU7sR88vKDro47WPxGRS5z+/BQR92W2QNsEyMt0zPRfKwa8/F3LeHuWDHSGHU6kOG7BthusUCciNYZa7ETE/eVmwMb/wuFfwcMHAuuBRylTlxiGYxLi7CMQ1ADaDILIK6u+viIiF0jBTkQuD7YiSFkJe36ArIOOOe4sPo7bs4YdinLBbnc8BaB+B2jZFwLqVHetRUTKRcFORC4v1nxI2w6ZBx0PYC/IdgyKCGoIIQ2hTisIrFvdtRQRuSAKdiIiIiJuQk+eEBEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuwi2Dnd1uYLXZsduN6q6K29I1FrdgGGCzgt1W3TUREakQHtVdgYpgGAZHTxaw/fcsko/ncOhELkU2A4vZRP0QX2Jq+xNXP4gGIb6YTKbqrm6NlXYqn+2HT5J8PIcDGbkU2exYzCbqBfsSXdufuHpBRIbqGsslLjcDUjdB+j7I2AdF+WAyQWA9CG0CdVtBWCyY3fLvXhFxcybDMGp0k0tGTiHfbUtl44FMTuZb8bKY8fP2wMNswmY3yC20kW+1EeTjQdvIEG5qXY/wQO/qrnaNkpVn5fvtR1iXkkFWnhVPixl/Lw88LH9e4wKrDX8fD1rXD+LmNvWJCPap7mqLuCrMgd1LYN9yyDkOZk/wCgCLJxh2sOY6Xp5+EN4CWt0CYU2qu9YiIuVSo4PdziMnmfbLWg5lZlI7wJsAHw9MlGwtMjDIzi8iPaeA2gE+XN8inCsaRhAVFFUNta5Z9qRl8+n6A6Qcz6VOoDeh/l6ltsgZhsGp/CJ+z8onPNCLAe0b0DEqtBpqLFKKrEPw6yxI2w5+tcE/HMyW0ssWZEPWAfAJhrj+ENvL0aInIlID1Nhgt/PISd5f9TPLcx674H0sGrBI4e4s9h3LZsaaFNKzC4mu7YfHedyashsGh07kYTbBkKsa0Sla4U6q2cnf4efJkJEMtZuCxevc2xgGnEoFaw60uQ2ax1d+PUVEKkCN7ESSmVvI/F8PkVWQfVH7OZSZWTEVckPZBUXM+/UQx7MLaBLuX2qoKywwceqEhcKCP1szzCYTjUL9sBvwxcbD/J6ZV5XVFnFVVAib/+foSxfeotRQl1fgwdEMP/IKTutybDJBUH3wCoSkBZC2oworLSJy4Wrk4InF24+yPz2X+qG+bEi/8P2s2XuMzpGGOvuXYtmONPYcy6ZpeECJ67Nvmw8r5tdi208BGHYTJrNB62uz6XHrCWJa5QMQWcuX346eYtGW37nnusaYzbrGUg1SVsLvGx2DIs649bpqa0Pe/OwqFqxpit1uxmy207/zbh677Re6tD7sKBRQF9J3wdb50P3v4KH+uSJyaatxLXbHThWw4cAJ6gR6Y77IQLb7aDa/Z+VXUM3cR1aelV+S0wn188LD4voRWf1VMO8+Gsn2nx2hDsCwm9j+cwDvjItkzaJgAEwmEw1CfEn6/SQp6TlVfg4iFBXAvhWOwRCevi6rJi9oT7dHhvPVT7HY7Y7PuN1u5qufYuk65namLGzvKGgyQUg0ZOyBI9uq+ARERMqvxgW7pNSTZOZaqeV/Hv1kziGnsIik309WQK3cy47Uk6TnFFI7wLV1Yt82H+a/UwcwYbe5hmrHexPzJtUhebtjRGyAtwd5VhvbD+saSzU4vssxCCIwwmXxqq0NeejfvTEwUWRzbcUrslkwMPHg271Zva2BY6GHNxjA4fVVVHERkQtX44LdwYxcLGYuurUOwNNiJvn4xfXTc0e/Z+ZhAixn3D5dMb9WmQMJi5ktjnLgaLXz8/Jgr66xVIeTvzsmHvZwnXrnzc+uwmKxn3VTi8XOW59d9ecC7yBI3wu2osqoqYhIhamRwc7Pq2K6Bvp6Wjh8Ik9PTzjDwYxcfDxdE1xhgYltPwWUaKk7k91mYuuaAOeACj8vC8dOFZBv1cz+UsVOpoLJ9b+4vAIPFqxpWqKl7kxFNgtfrG7254AKL38oOAW5F9GpV0SkCtS4YFdYZC/RknShTCbHBLu2mjnjS6UpKLJjOaNFtCDX7OxTdy6G3URBruOjZfljougihWepakV5YHb9I/BkjpezT9252O1mTub80eXDbHFMYmy3VnQtRUQqVI0Ldt6eZmy2igkJdsPAw2IuEWIudz6eForsrreqvP3smMznd91NZgNvP8f2Nrvj0W6eFl1jqWKefmB3vXUa5F+I2Xz227DFzGY7Qf6Fjjf2Ike4O5858EREqlGNC3aNQv3ItVZMP5d8q43IWr6aiuMMjUL9KLC6/vLz8nZMaWK2nD3cmS0GbTpn4+XtKJdTUEREkA/eHufonCdS0QLrOVrZTuPrXUT/zrvxsJy9a4CHxcaALrvw9f7j/5rCHEc/O19NuC0il7YaF+wiQ/2w26mQfnFWm53o2v4VUCv3Uj/EF0yUaLXrPvAE9nN0lbPbHOXA8ZixPKuNxuG6xlINghs4bsVaXac0enTQWmy2s//XZ7OZGTdo7Z8LCk5CWCxYauTUnyJyGalxwa5V/WBq+XmSnlN40fsK8PagVf3gCqiVe2lZL5DwQG+On3K9xo1b53PrmDTAKNFy53hvcOuYNOckxafyi/D38qB1A11jqQa1m0FIlOPRYKe5rs0h3h+7GBNGiZY7D4sNEwbvj1385yTF1nzHfHYNO1VVzUVELliNC3ah/l5cFRPK8ewCbPbz6ytTluYRgUQE+5y74GUm0MeTaxuHkZlXSGGR6zXu3DeLh986SOtrs5197oqfPPHwWwfp3DcLcPRf/D0zj9YNg2kU6lfl5yCCxROa9ARbgeNW6mlG/XUjKyd9TP/Ou5197oqfPLFy0seM+utGR0HDgBPJEN4S6sRV9RmIiJRbjbyvcENcXX47eoqk9It7DmnnJrUrqEbup3vzcHaknmR3Wjax4QEu/RBjWuUT0yqVwgLH6FdvP7uzTx04bsHuT8+lbrAPfdvU0yPbpPpEdYHUzXDwZ0c4O22UbJfWh+nS+gvyCjw4meNFkH/hn33qip08DD5B0HogeGjghIhc+mpcix1AkI8ngzpFUtsv6KL2Uy8opGIq5Ib8vDwY1CmSesE+7DmWjdVWsnXUy9sgsJbNJdTZ7AYp6Tn4eJq5tWND6gSpRVSqkcUD2g2B2i3g2E4oKvkIQV/vIuqG5rqGOsOAzANgK3SEutqxVVhpEZELZzKMmjuJ295j2Xz081pSMjII8fMixNez1NYhA4OTeVYycgqpF+JDr5YRxEWEExUUVQ21rlkOpOfy6a8H2X30FLX8vKgd4F3qPIKGYXAi18rRk/k0CPHlbx0a0qah+tbJJeLUUdg4C1K3OEa3BkaUmOMOcAS6/CxHS51/OLQZ6Gj1U6uziNQQNTrYAZzMt/JD0lHWJmdwIteK2Qx+nh6OiXENg7zCIorsEOLnScdGtfhLq7qE+OmWSnnkFBSxbGcaP+9LJ+OPQSv+Xo5rbDcMcgttFNntBPt60q5hCPGtIwg74zmzItWuqAD2LnO8Th1xhDUPP0dfPMMAa46jhc47ECLaQFx/CG5Y3bUWESmXGh/simXkFLL99ywOZuRyICOXwiI7Xh5mImv50TDUj7h6QYQHKmxcjKxcK9t/z+LAH9c432rD02KmYS1f5zWuq1uvcqkryIYjWyAjBTL2QWG2Y/Lh4IZQK9oxSCKkkVrpRKRGcptgJyIiInK5q5GDJ0RERESkJAU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuIm/h8epqkxe7kb4gAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -355,7 +363,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ diff --git a/pymdp/jax/envs/generalized_tmaze.py b/pymdp/jax/envs/generalized_tmaze.py index 3d52e51e..0f212fc7 100644 --- a/pymdp/jax/envs/generalized_tmaze.py +++ b/pymdp/jax/envs/generalized_tmaze.py @@ -249,7 +249,7 @@ def generate_B(maze_info): or ns_row >= rows or ns_col < 0 or ns_col >= cols - or maze[ns_row, ns_col] == 1 + or maze[ns_row, ns_col] == 2 ): P[s, a] = s else: @@ -274,7 +274,7 @@ def generate_B(maze_info): for i, reward_transition in enumerate(reward_transitions): combined_transition[1 + i] = reward_transition - transition_dependencies = ([[0]] + [[i + 1] for i in range(num_cues)],) + transition_dependencies = [[0]] + [[i + 1] for i in range(num_cues)] return combined_transition, transition_dependencies @@ -447,6 +447,7 @@ class GeneralizedTMazeEnv(PyMDPEnv): def __init__(self, env_info): A, A_dependencies = generate_A(env_info) B, B_dependencies = generate_B(env_info) + print(B_dependencies) D = generate_D(env_info) params = { "A": [jnp.expand_dims(jnp.array(x), 0) for x in A], From f96b00b0b757e4b590e984ab081ced8984b289b1 Mon Sep 17 00:00:00 2001 From: Tommaso Salvatori Date: Wed, 12 Jun 2024 11:05:06 +0200 Subject: [PATCH 090/196] bug resolved demo --- examples/generalized_tmaze_demo.ipynb | 292 +++++++++++++++++++++++--- examples/tmp_dir/gif.gif | Bin 0 -> 34054 bytes pymdp/jax/envs/generalized_tmaze.py | 2 +- 3 files changed, 261 insertions(+), 33 deletions(-) create mode 100644 examples/tmp_dir/gif.gif diff --git a/examples/generalized_tmaze_demo.ipynb b/examples/generalized_tmaze_demo.ipynb index 9b5377ec..ecb8a2b7 100644 --- a/examples/generalized_tmaze_demo.ipynb +++ b/examples/generalized_tmaze_demo.ipynb @@ -9,9 +9,18 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", @@ -55,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -67,7 +76,7 @@ }, { "data": { - "image/png": "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3bt3Z8qUKaSkpBQrX9I0JufSq1cvgoODefXVV7HZbBe0z6LWhtPraxgG//73v8tcH4Bp06YxZcoU3nvvvRIDb1muwy233MIvv/zCmjVr3NbPmjXrgup2pri4OHr27On6dOjQodSy9957L88//zxvvPFGqWVKupZAiW8cePHFF1m0aBGffPJJiY8oO3ToQOPGjfnXv/5V4iP/C7lfykOLFi1o3bo1c+bMYc6cOdSpU4euXbte8P5uueUW1qxZw88//+xalp2dzQcffEBMTEyxvoAVzWKx0K9fP+bNm1dii/yFXveAgIAL7tYgIp5PLXaXgCZNmjB79mwGDx5Ms2bNXG+eMAyD5ORkZs+ejdlsduvT9t5773HdddfRunVr7rvvPho1asTRo0f5+eefOXjwIBs3bixTHYKDg5k0aRJ33HEH7du3Z9CgQURERLB//36+/vprOnfuzLvvvnvWfTRv3pzGjRvz+OOPc+jQIYKDg5k3b94F9Q86fvw4Dz74IHFxcfj4+PDf//7XbX3fvn0JCAg47+vw5JNP8vHHHxMfH88jjzzimu4kOjq60l/XFh0dzQsvvHDWMsHBwXTt2pXXX38dm81GvXr1+P7770lOTnYrt3nzZl5++WW6du1Kampqses0bNgwzGYzH374ITfffDMtW7bk7rvvpl69ehw6dIhly5YRHBzMV199dc56r1+/vtj+wdkieO211577xEuQkJDAc889h6+vLyNGjLioSbiffvppPvnkE26++WZGjx5NWFgYM2bMIDk5mXnz5lXJBN/jx49n2bJlXH311dx3333ExcWRnp7O+vXrWbJkCenp6WXeZ4cOHZgzZw6PPvooV155JYGBgdx2220VUHsRqY4U7C4Rffr0YfPmzbzxxht8//33TJ06FZPJRHR0NLfeeisjR46kbdu2rvJxcXGsW7eOF198kenTp5OWlkatWrVo166d26O7shgyZAh169Zl/PjxTJgwgfz8fOrVq0eXLl24++67z7m91Wrlq6++YvTo0YwbNw5fX1/69u3LqFGj3Op+PrKyssjLyyMpKck1CvZ0ycnJBAQEnPd1qFOnDsuWLePhhx9m/PjxhIeHM3LkSOrWrevqvH+pmT17Ng8//DDvvfcehmFw00038e2331K3bl1XmbS0NAzDYMWKFaxYsaLYPooeD3fv3p2ff/6Zl19+mXfffZesrCwiIyO5+uqreeCBB86rPp988olrRO/p7rrrrosKdv/4xz/Iyck5r9GwZ1O7dm1Wr17NU089xTvvvENeXh5t2rThq6++4tZbb72ofV9MndasWcNLL73E559/zvvvv094eDgtW7bktddeu6B9PvjggyQmJjJt2jTeeustoqOjFexExMVkqFeuiIiIiEdQHzsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQXlVdARERkerIbrdjs9mquhri4axWKxaL5bzLK9iJiIiUgWEYHDlyhIyMjKquilwmQkNDiYyMxGQynbOsgp2IiEgZFIW6WrVq4e/vf14/bEUuhGEY5OTkkJqaCkCdOnXOuY2CnYiIyHmy2+2uUBceHl7V1ZHLgJ+fHwCpqanUqlXrnI9lNXhCRETkPBX1qfP396/imsjlpOh+O58+nQp2IiIiZaTHr1KZynK/KdiJiIiIeAgFOxEREREPoWAnIiJSiQoKCi5q/cU4cuQIDz/8MI0aNcLHx4eoqChuu+02fvjhhwo7plQuBTsREZFKMmfOHFq3bs2BAwdKXH/gwAFat27NnDlzyv3Ye/fupUOHDixdupQJEyawefNmvvvuO3r06MFDDz1U7seTqqFgJyIiUgkKCgp47rnn2LFjB927dy8W7g4cOED37t3ZsWMHzz33XLm33D344IOYTCbWrFlDv379aNq0KS1btuTRRx/ll19+Ye/evZhMJhITE13bZGRkYDKZWL58uWvZli1buPnmmwkMDKR27drccccdHD9+vFzrKhdOwU5ERKQSeHt7s2TJEho1asSePXvcwl1RqNuzZw+NGjViyZIleHt7l9ux09PT+e6773jooYcICAgotj40NPS89pORkcH1119Pu3btWLduHd999x1Hjx5l4MCB5VZXuTgKdiIiIpUkKiqK5cuXu4W71atXu4W65cuXExUVVa7H3bVrF4Zh0Lx584vaz7vvvku7du149dVXad68Oe3atWPq1KksW7aMHTt2lFNt5WLozRMiIiKVqCjcFYW5zp07A1RYqAPnq6nKw8aNG1m2bBmBgYHF1u3evZumTZuWy3HkwinYiYiIVLKoqCg+/vhj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+vbbb8dqtZKVlQXAwYMHMZlM7Nq1C4CPP/6Yjh07EhQURGRkJEOGDCE1NdW1/fLlyzGZTHz77bd06NABHx8fVq5cSXZ2NnfeeSeBgYHUqVOHN95445zntnHjRnr06EFQUBDBwcF06NCBdevWudavXLmSLl264OfnR1RUFKNHjyY72/m4u3v37uzbt4+xY8e6WjWrKwU7ERGRCpRnc7AvLZsa/tYybVfD38q+tGzybI4KqdeWLVtYvXo13t7ermXjxo1j5syZTJ48ma1btzJ27FiGDRvGihUrAOjWrRvLly8HnIH1p59+IjQ0lJUrVwKwYsUK6tWrR2xsLAA2m42XX36ZjRs38uWXX7J3716GDx9erC5PP/0048ePZ9u2bbRp04YnnniCFStWMH/+fL7//nuWL1/O+vXrz3o+Q4cOpX79+qxdu5bffvuNp59+GqvVec13795NfHw8/fr1Y9OmTcyZM4eVK1cyatQoAD7//HPq16/PSy+9REpKCikpKRd1bauSRsWKiIhUoAK7A7vDwNu7bFOYWMwmbH/Mc+dH+Ux/snDhQgIDAyksLCQ/Px+z2cy7774LQH5+Pq+++ipLlizh2muvBaBRo0asXLmSKVOm0K1bN7p3785HH32E3W5ny5YteHt7k5CQwPLly4mPj2f58uV069bNdbx77rnH9fdGjRoxceJErrzySrKysggMDHSte+mll7jxxhsByMrK4qOPPuK///0vN9xwAwAzZsygfv36Zz23/fv388QTT9C8eXMAmjRp4lo3btw4hg4d6hp80aRJEyZOnEi3bt2YNGkSYWFhWCwWV8tidaYWOxERkQrkbTFjMZsotJet5a1ofjtvS/n9qO7RoweJiYn8+uuv3HXXXdx9993069cPgF27dpGTk8ONN95IYGCg6zNz5kx2794NQJcuXTh16hQbNmxgxYoVrrBX1Iq3YsUKunfv7jreb7/9xm233UaDBg0ICgpyhb79+/e71atjx46uv+/evZuCggKuvvpq17KwsDCaNWt21nN79NFHuffee+nZsyfjx4931Rmcj2mnT5/udl69evXC4XCQnJxc9gt5CVOwExERqUC+VjPR4QGcyLGVabsTOTaiwwPwtZbfj+qAgABiY2Np27YtU6dO5ddff+Wjjz4CcPWT+/rrr0lMTHR9kpKSXP3sQkNDadu2LcuXL3eFuK5d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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAEzCAYAAAC8KU67AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABkh0lEQVR4nO3deVxU9frA8c+ZAYZ1QJBNRUBxw33L1FQsCsy86bXCpRQzy9JMbfX+urbYDdMsW0ztlltXy8pMs9LcwFxyx30X11hEBGSHmfP7Y2J0BBSUYZme9+t1XjLnfM85zzmMzDPf7SiqqqoIIYQQQohaT1PdAQghhBBCiMohiZ0QQgghhI2QxE4IIYQQwkZIYieEEEIIYSMksRNCCCGEsBGS2AkhhBBC2AhJ7IQQQgghbIQkdkIIIYQQNkISOyGEEEIIGyGJnbAZb775JoqiWKwLCgoiOjq6SuNYsGABiqJw5syZKj2vKB/5/QghbJkkdjYuISGBsWPH0rRpU5ydnXF2diY0NJQxY8awf//+6g7vb+nMmTMoilKupazkIygoCEVRCA8PL3X7f//7X/Mxdu3aZcWruT23ugdTp06t7hD/VpYsWcLMmTOrOwwhRCWwq+4AhPWsWrWKqKgo7OzsGDp0KG3btkWj0XD06FF++OEHZs+eTUJCAoGBgdUdqtUcO3YMjaZmfX/x9vbmq6++slg3Y8YMLly4wIcffliibFkcHR3ZuHEjSUlJ+Pn5WWxbvHgxjo6O5OXlVV7gVjB48GAefPDBEuvbt29vtXM+8cQTDBo0CJ1OZ7Vz1DZLlizh4MGDjB8/vrpDEULcIUnsbNSpU6cYNGgQgYGBrF+/Hn9/f4vt7733Hp999lmNS3qul52djYuLyx0doyZ+eLu4uPD4449brPvmm2+4cuVKifU30717d3bu3MnSpUt54YUXzOsvXLjA77//zoABA1i2bFmlxW0NHTp0qNA1VwatVotWq71pGVVVycvLw8nJqYqiEkKIylFzP9XFHZk2bRrZ2dnMnz+/RFIHYGdnx7hx4wgICLBYf/ToUR555BE8PT1xdHSkU6dOrFy50qJMcR+lLVu2MHHiRLy9vXFxcWHAgAFcunSpxLl+/fVXevTogYuLC25ubvTt25dDhw5ZlImOjsbV1ZVTp07x4IMP4ubmxtChQwH4/fffefTRR2nYsCE6nY6AgAAmTJhAbm7uLe/DjX3sytvsWZ77AHDo0CHuvfdenJycaNCgAe+88w5Go/GWcVUGR0dH/vnPf7JkyRKL9V9//TV16tQhIiKixD779+8nOjqaRo0a4ejoiJ+fH08++SSXL182l7lVM+n1tm/fTmRkJO7u7jg7O9OrVy+2bNlSqdcZFBTEQw89xObNm7nrrrtwdHSkUaNGLFq0yFxm165dKIrCwoULS+y/Zs0aFEVh1apVQOl97IrPsWbNGjp16oSTkxNz584F4PTp0zz66KN4enri7OzM3Xffzc8//2xxjtjYWBRF4dtvv+U///kPDRo0wNHRkfvuu4+TJ09alA0LC6NVq1bs37+fXr164ezsTEhICN9//z0AcXFxdOnSBScnJ5o1a8a6detKXNPFixd58skn8fX1RafT0bJlS+bNm3dbMYWFhfHzzz9z9uxZ8+84KCioHL8ZIURNJDV2NmrVqlWEhITQpUuXcu9z6NAhunfvTv369XnttddwcXHh22+/pX///ixbtowBAwZYlH/++eepU6cOb7zxBmfOnGHmzJmMHTuWpUuXmst89dVXDB8+nIiICN577z1ycnKYPXs299xzD3v37rX4ACkqKiIiIoJ77rmH999/H2dnZwC+++47cnJyePbZZ/Hy8mLHjh188sknXLhwge+++65C9+XGJlCA119/nZSUFFxdXSt0H5KSkujduzdFRUXmcp9//nmV1vIMGTKEBx54gFOnTtG4cWPA1Kz2yCOPYG9vX6L82rVrOX36NCNGjMDPz49Dhw7x+eefc+jQIf744w8URSm1qbiwsJAJEybg4OBgXrdhwwb69OlDx44deeONN9BoNMyfP597772X33//nbvuuuuW8efk5JCamlpivYeHB3Z21/48nTx5kkceeYSRI0cyfPhw5s2bR3R0NB07dqRly5Z06tSJRo0a8e233zJ8+HCLYy1durTMRPd6x44dY/DgwTzzzDOMGjWKZs2akZycTLdu3cjJyWHcuHF4eXmxcOFC/vGPf/D999+X+D8xdepUNBoNL730EhkZGUybNo2hQ4eyfft2i3JXrlzhoYceYtCgQTz66KPMnj2bQYMGsXjxYsaPH8/o0aMZMmQI06dP55FHHuH8+fO4ubkBkJyczN13342iKIwdOxZvb29+/fVXRo4cSWZmZonm1FvF9H//939kZGRYdAUo/r8ghKiFVGFzMjIyVEDt379/iW1XrlxRL126ZF5ycnLM2+677z61devWal5ennmd0WhUu3XrpjZp0sS8bv78+SqghoeHq0aj0bx+woQJqlarVdPT01VVVdWrV6+qHh4e6qhRoyxiSEpKUt3d3S3WDx8+XAXU1157rUTM18dYLCYmRlUURT179qx53RtvvKHe+JYODAxUhw8fXmL/YtOmTVMBddGiRRW+D+PHj1cBdfv27eZ1KSkpqru7uwqoCQkJZZ73Rn379lUDAwPLXT4wMFDt27evWlRUpPr5+alTpkxRVVVVDx8+rAJqXFyc+fe0c+dO836l3cuvv/5aBdRNmzaVeb7nnntO1Wq16oYNG1RVNd2PJk2aqBERERbvgZycHDU4OFi9//77bxp/QkKCCpS5bNu2zeJab4wvJSVF1el06osvvmheN2nSJNXe3l5NS0szr8vPz1c9PDzUJ5980ryu+L5c//spPsfq1ast4iz+Hf/+++/mdVevXlWDg4PVoKAg1WAwqKqqqhs3blQBtUWLFmp+fr657EcffaQC6oEDB8zrevXqpQLqkiVLzOuOHj2qAqpGo1H/+OMP8/o1a9aogDp//nzzupEjR6r+/v5qamqqRayDBg1S3d3dzb/jisRU0fefEKLmkqZYG5SZmQmU/q07LCwMb29v8zJr1iwA0tLS2LBhA4899hhXr14lNTWV1NRULl++TEREBCdOnODixYsWx3r66actmuZ69OiBwWDg7NmzgKl2KD09ncGDB5uPl5qailarpUuXLmzcuLFEfM8++2yJddfXgGVnZ5Oamkq3bt1QVZW9e/fexh0y2bhxI5MmTeL555/niSeeqPB9+OWXX7j77rstaqa8vb3NTchVQavV8thjj/H1118DpkETAQEB9OjRo9Ty19/LvLw8UlNTufvuuwHYs2dPqfssWrSIzz77jGnTptG7d28A4uPjOXHiBEOGDOHy5cvm+5Sdnc19993Hpk2bytUk/fTTT7N27doSS2hoqEW50NBQi2vy9vamWbNmnD592rwuKiqKwsJCfvjhB/O63377jfT0dKKiom4ZS3BwcIlavV9++YW77rqLe+65x7zO1dWVp59+mjNnznD48GGL8iNGjLCo1SyO+fo4i48xaNAg8+tmzZrh4eFBixYtLGrZi38u3l9VVZYtW0a/fv1QVdXi/1VERAQZ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", "text/plain": [ "
" ] @@ -90,6 +99,53 @@ "M[2,4] = 6\n", "\n", "# Set the initial position\n", + "M[2,3] = 1\n", + "\n", + "env_info = parse_maze(M)\n", + "tmaze_env = GeneralizedTMazeEnv(env_info)\n", + "_ = render(env_info, tmaze_env)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0], [1], [2], [3]]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB220lEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zYU79nJMxc89znvMcwzRNExERERHxCkt1FyAiIiJyKVH4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4Eq/55z//iWEYHtPi4uIYNWqUV+uYOXMmhmGwb98+r+5Xzo1+PyJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7f8dxcXHn8JsRkYuVWr6qyfz582nWrBlXXHHFOa+zdetWrrrqKho2bMjjjz9OYGAgn3zyCYMHD2bu3LkMGTLEY/k//elPhIeH8+STT7Jv3z5eeeUVxo0bx5w5c9zLvP/++4wcOZJ+/frx3HPPkZuby7Rp07j66qv59ddfPf7IFxcX069fP66++mr+85//EBAQAMCnn35Kbm4uDz74IJGRkaxZs4ZXX32VgwcP8umnn1bovJx+uQ/g73//OykpKQQFBVXoPBw5coRrrrmG4uJi93JvvfWWV1tL7rjjDm644Qb27NlD06ZNAdclpFtuuQUfH59Syy9evJi9e/cyevRooqOj2bp1K2+99RZbt27l559/xjCMMi+LFhUVMWHCBHx9fd3Tli5dyo033kjXrl158sknsVgszJgxg2uvvZYffviByy+//Kz15+bmcvz48VLTw8LCsNlO/vnYvXs3t9xyC2PGjGHkyJG8++67jBo1iq5du9K2bVu6detGkyZN+OSTTxg5cqTHtubMmVNuGD3Vb7/9xvDhw/njH//IfffdR8uWLTl69Cg9evQgNzeX8ePHExkZyXvvvcf//d//8dlnn5X6f2LKlClYLBYeffRRMjIyeP755xkxYgS//PKLx3JpaWncfPPN3H777dx6661MmzaN22+/nQ8//JBHHnmEBx54gDvuuIMXXniBW265haSkJIKDgwE4evQoV155JYZhMG7cOKKioliwYAFjxowhMzOz1KXDs9X0//7f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9datW5c+ffowffp0kpOTSy1f1hASZ9OvXz9CQkJ49tlnKSoqOq9tlnxrP7Ve0zT573//W+F6AGbMmMH06dN5/fXXywylFTkPN910Ez///DNr1qzxmP/hhx+eV22na9OmDX379nW/unbtWu6y9957L08++SQvvvhiucuUdS6BMkc2f+qpp1i0aBEfffRRmZfjunbtStOmTfnPf/5T5uXt83m/VIbWrVvTvn175syZw5w5c6hfvz69evU67+3ddNNNrFmzhp9++sk9LScnh7feeou4uLhSfdOqmtVqZejQocydO7fMlu3zPe+BgYHnfQlfRC4+avmqJs2bN2f27NkMHz6cli1buke4N02TxMREZs+ejcVi8ehj9frrr3P11VfTvn177rvvPpo0acLRo0f56aefOHjwIBs3bqxQDSEhIUybNo277rqLLl26cPvttxMVFcWBAwf45ptvuOqqq3jttdfOuI1WrVrRtGlTHn30UQ4dOkRISAhz5849r/4qx48f56GHHqJNmzbY7XY++OADj/lDhgwhMDDwnM/DX//6V95//3369+/Pww8/7B5qIjY21uuPboqNjeWf//znGZcJCQmhV69ePP/88xQVFdGwYUO+++47EhMTPZbbvHkzzzzzDL169SIlJaXUebrzzjuxWCz873//48Ybb6Rt27aMHj2ahg0bcujQIZYtW0ZISAhff/31WevesGFDqe2Dq2Wte/fuZz/wMgwbNownnngCPz8/xowZc0EDCT/++ON89NFH3HjjjYwfP56IiAjee+89EhMTmTt3brUMUjxlyhSWLVvGFVdcwX333UebNm1ITU1lw4YNLFmyhNTU1Apvs2vXrsyZM4eJEydy2WWXERQUxMCBA6ugehHxBoWvajRo0CA2b97Miy++yHfffce7776LYRjExsYyYMAAHnjgATp27Ohevk2bNqxbt46nnnqKmTNncuLECerWrUvnzp09LlNVxB133EGDBg2YMmUKL7zwAgUFBTRs2JCePXsyevTos67v4+PD119/zfjx45k8eTJ+fn4MGTKEcePGedR+LrKzs8nPz2fbtm3uuxtPlZiYSGBg4Dmfh/r167Ns2TL+9Kc/MWXKFCIjI3nggQdo0KCBu8P3xWb27Nn86U9/4vXXX8c0TW644QYWLFhAgwYN3MucOHEC0zRZsWIFK1asKLWNkkuhffr04aeffuKZZ57htddeIzs7m+joaK644gr++Mc/nlM9H330kftOzVONHDnygsLX3//+d3Jzc8/pLsczqVevHj/++COPPfYYr776Kvn5+XTo0IGvv/6aAQMGXNC2L6SmNWvW8PTTT/P555/zxhtvEBkZSdu2bXnuuefOa5sPPfQQCQkJzJgxg5dffpnY2FiFL5EazDDVq1NERETEa9TnS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvMjr43w5nU4OHz5McHCwHpkhIiLnzTRNsrKyaNCgQbUMqCtyvrwevg4fPkxMTIy3dysiIrVUUlKSx9NARC52Xg9fwcHBgOt/lpCQEG/vXkREaonMzExiYmLcnysiNYXXw1fJpcaQkBCFLxERuWDqwiI1jS6Si4iIiHiRwpeIiIiIFyl8iYiIiHiR1/t8iYiIeIvD4aCoqKi6y5BazsfHB6vVes7LK3yJiEitY5omR44cIT09vbpLkUtEWFgY0dHR53QDiMKXiIjUOiXBq27dugQEBOiOSKkypmmSm5tLSkoKAPXr1z/rOgpfIiJSqzgcDnfwioyMrO5y5BLg7+8PQEpKCnXr1j3rJUh1uBcRkVqlpI9XQEBANVcil5KS99u59DFU+BIRkVpJlxrFmyryflP4EhEREfEihS8RERERL1L4EhEROU1hYeEFzb9QR44c4U9/+hNNmjTBbrcTExPDwIED+f7776t0v+IdCl8iIiKnmDNnDu3btycpKanM+UlJSbRv3545c+ZUyf737dtH165dWbp0KS+88AKbN29m4cKFXHPNNYwdO7ZK9inepfAlIiLyu8LCQp544gl27txJnz59SgWwpKQk+vTpw86dO3niiSeqpAXsoYcewjAM1qxZw9ChQ2nRogVt27Zl4sSJ/Pzzz+zbtw/DMEhISHCvk56ejmEYLF++3D1ty5Yt3HjjjQQFBVGvXj3uuusujh8/Xun1SsUpfImIiPzO19eXJUuW0KRJE/bu3esRwEqC1969e2nSpAlLlizB19e3UvefmprKwoULGTt2LIGBgaXmh4WFndN20tPTufbaa+ncuTPr1q1j4cKFHD16lNtuu61S65Xzo/AlIiJyipiYGJYvX+4RwH788UeP4LV8+XJiYmIqfd+7d+/GNE1atWp1Qdt57bXX6Ny5M88++yytWrWi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cCCxsbG8/fbbNGjQAKfTSbt27dwd4P39S980VFnKqqcynOn8ZGdnU79+fY/LnyXCwsKqpJ4KtXylpKRw991307JlS6677jrWrl3LokWLuP7666ukOJHaJtQeStd6XUnNT3V3lC8uKmbqA1PL7Fx/eif8qQ9MpbCwkOScZFpHtqZRUKPqPByR2sPH39XRPje1YuvlprrW86m6QAKwdOlSNm/eXOqS4KlCQkIYNmwYb7/9NnPmzGHu3LmkprqOx8fHB4ej/P6mJU6cOMFvv/3G3//+d6677jpat25NWprn2IMdOnQgISHBve3T+fr6ltpX69atS/Wz2rZtG+np6We8aa8ylXd+unTpwpEjR7DZbDRr1szjVadOnXKP6UJUqOXrnXfeqbQdi1yq+sT0YXf6bvZn7nc929HHxs0P3sz8afMZ/+b4Un27SgLY1AemMuCBARzJP0KUfxT94vqVewlCRCrIMKBxdzi03nUJ8VxasooLABNie1RqZ/uCggKOHDmCw+Hg6NGjLFy4kMmTJ3PzzTdz9913l7nOSy+9RP369encuTMWi4VPP/2U6Ohod8tNXFwc33//PVdddRV2u53w8NI38QCEh4cTGRnJW2+9Rf369Tlw4ACPP/64xzLDhw/n2WefZfDgwUyePJn69evz66+/0qBBA7p3705cXByJiYkkJCTQqFEjgoOD6du3L+3bt2fEiBG88sorFBcX89BDD9G7d2+6detW4XO0bds2CgsLSU1NJSsri4SEBIByx+I60/np27cv3bt3Z/DgwTz//PO0aNGCw4cP88033zBkyBC6detW5jFdyDAferajiJcF+QYxqNkgIvwi2JuxF4fTQdd+Xfl/n/6/Mu9qBFcAm/TJJOr2qIuP1YeBTQdSN6CulysXqeWi20NEvKsD/dme4WiakJboWr5eu0otY+HChdSvX5+4uDj69+/PsmXLmDp1KvPmzSv3DsDg4GCef/55unXrxmWXXca+ffv49ttvsVhcH/MvvvgiixcvJiYmhs6dO5e7b4vFwscff8z69etp164dEyZM4IUXXvBYxtfXl++++466dety00030b59e6ZMmeKubejQofTv359rrrmGqKgoPvroIwzDYN68eYSHh9OrVy/69u1LkyZNmDNnznmdo5tuuonOnTvz9ddfs3z5cjp37nzG4zrT+TEMg2+//ZZevXox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Jit3HmPh1iOk5xZRN8ROmL8Pxu+P2ihhmibpuUUczconIsCX/u3r07NZHSwWo5wti1TM/sz95BRV/PFcgT6BxIbEVkFFckkxTTi4FrbMdQWqwCjX6/QxwEzT1dqVlQw+/tCsL7T+P7Cd+YtrVbsYPk9EzsclGb5KJKXmsnRHClsPZ5CZX4wB+FgtmJgUF5uYQIi/jXYNQ7m2VV0ahQdUa70iIlUi+xjs+g6S1rjuYATXWGCGAY4iwHQNTxHVGlrcAHVbV2u5JS6mzxORirikw1eJIxn5JB7P4UhGHqk5hWBAZKCdeiF+NIkKpF6IhpQQkUtAbioc+83VwpV91DUavl8YhDSA8DjXy7h4Wv4vxs8TkXNx5gv8l4joUD+iQxWwROQSFxABsd2ruwqRWu+S63AvIiIiUp0UvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yFbdBUjtYJom6blFHMsuIK/QgcUwCAvwISrYjp+PtbrLk0uFowiyj0LOcTAdYLVDUD0IiASLvmuKyMVB4UsuSF6hg00H01mTmEpSWi45BQ4cphMw8LNZCPHzoUNMKF0ahxNfJxDDMKq7ZKmNMg5C0lpI+gXy0qAo1zXdsIBvEARHQ9xV0LAr+IVWb60icskzTNM0vbnDzMxMQkNDycjIICQk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auXKTQVHPkQ0hbZDXH29dLOHiFQTXXaUC5Jf5GDLoQzWJKZyIDWXnIJiihxODMPA38dKsJ+NTo3D6dI4jNjIwLNvUOR8ZB6Gg+vgwM+uuxiLclwtYRab65JkSEOI7QENu5R6NJHUXPo8kZpK4UsqhWmaZBUUk5JZQH6RA8OAsABfooLs+Np0dVu8xFEMOccg97irX5jN7hpE1T9cLV21kD5PpKbS9R+pFIZhEOLnoxHrpXpZbRBS3/USEblIqUlCRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts3t6haZoAZGZmenvXIiJSi5R8jpR8rojUFF4PX1lZWQDExMR4e9ciIlILZWVlERoaWt1liJwzw/TyVwan08nhw4cJDg7GMAxv7vqcZGZmEhMTQ1JSEiEhIdVdTo2kc3jhdA4vjM7fhasJ59A0TbKysmjQoAEWi3rRSM3h9ZYvi8VCo0aNvL3bCgsJCblo/+DUFDqHF07n8MLo/F24i/0cqsVLaiJ9VRARERHxIoUvERERES9S+DqN3W7nySefxG63V3cpNZbO4YXTObwwOn8XTudQpOp4vcO9iIiIyKVMLV8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl+neP3114mLi8PPz48rrriCNWvWVHdJNcrKlSsZOHAgDRo0wDAMvvzyy+ouqUaZPHkyl112GcHBwdStW5fBgwfz22+/VXdZNcq0adPo0KGDe2DQ7t27s2DBguouq8aaMmUKhmHwyCOPVHcpIrWKwtfv5syZw8SJE3nyySfZsGEDHTt2pF+/fqSkpFR3aTVGTk4OHTt25PXXX6/uUmqkFStWMHbsWH7++WcWL15MUVERN9xwAzk5OdVdWo3RqFEjpkyZwvr161m3bh3XXnstgwYNYuvWrdVdWo2zdu1apk+fTocOHaq7FJFaR0NN/O6KK67gsssu47XXXgNcz6CMiYnhT3/6E48//ng1V1fzGIbBF198weDBg6u7lBrr2LFj1K1blxUrVtCrV6/qLqfGioiI4IUXXmDMmDHVXUqNkZ2dTZcuXXjjjTf417/+RadOnXjllVequyyRWkMtX0BhYSHr16+nb9++7mkWi4W+ffvy008/VWNlcinLyMgAXOFBKs7hcPDxxx+Tk5ND9+7dq7ucGmXs2LEMGDDA42+iiFQerz9Y+2J0/PhxHA4H9erV85her149duzYUU1VyaXM6XTyyCOPcNVVV9GuXbvqLqdG2bx5M927dyc/P5+goCC++OIL2rRpU91l1Rgff/wxGzZsYO3atdVdikitpfAlchEaO3YsW7ZsYdWqVdVdSo3TsmVLEhISyMjI4LPPPmPkyJGsWLFCAewcJCUl8fDDD7N48WL8/PyquxyRWkvhC6hTpw5Wq5WjR496TD969CjR0dHVVJVcqsaNG8f8+fNZuXIljRo1qu5yahxfX1+aNWsGQNeuXVm7di3//e9/mT59ejVXdvFbv349KSkpdOnSxT3N4XCwcuVKXnvtNQoKCrBardVYoUjtoD5fuP5Yd+3ale+//949zel08v3336uviHiNaZqMGzeOL774gqVLlxIfH1/dJdUKTqeTgoKC6i6jRrjuuuvYvHkzCQkJ7le3bt0YMWIECQkJCl4ilUQtX7+bOHEiI0eOpFu3blx++eW88sor5OTkMHr06OourcbIzs5m9+7d7p8TExNJSEggIiKCxo0bV2NlNcPYsWOZPXs28+bNIzg4mCNHjgAQGhqKv79/NVdXM0yaNIkbb7yRxo0bk5WVxezZs1m+fDmLFi2q7tJqhODg4FJ9DAMDA4mMjFTfQ5FKpPD1u2HDhnHs2DGeeOIJjhw5QqdOnVi4cGGpTvhSvnXr1nHNNde4f544cSIAI0eOZObMmdVUVc0xbdo0APr06eMxfcaMGYwaNcr7BdVAKSkp3H333SQnJxMaGkqHDh1YtGgR119/fXWXJiLipnG+RERERLxIfb5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSL/j+ISD+Fp1HZzAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "M = np.zeros((5, 5))\n", + "\n", + "# Set the reward locations\n", + "M[0,1] = 4\n", + "M[1,1] = 5\n", + "M[1,3] = 7\n", + "M[0,3] = 8\n", + "M[4,1] = 10\n", + "M[4,3] = 11\n", + "\n", + "# Set the cue locations\n", + "M[2,0] = 3\n", + "M[2,4] = 6\n", + "M[3,2] = 9\n", + "\n", + "# Set the initial position\n", "M[2,2] = 1\n", "\n", "env_info = parse_maze(M)\n", @@ -108,7 +164,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 49, "metadata": {}, "outputs": [], "source": [ @@ -119,19 +175,32 @@ "\n", "# [position], [cue], [reward]\n", "C = [jnp.zeros(a.shape[:2]) for a in A]\n", - "C[2] = C[2].at[1].set(1.0)\n", + "\n", + "rewarding_modality = 2 + env_info[\"num_cues\"]\n", + "#rewarding_modality = -1\n", + "\n", + "C[rewarding_modality] = C[rewarding_modality].at[:,1].set(2.0)\n", + "C[rewarding_modality] = C[rewarding_modality].at[:,2].set(-3.0)\n", + "\n", "\n", "D = [jnp.ones(b.shape[:2]) for b in B]\n", "\n", "agent = Agent(\n", " A, B, C, D, \n", " None, None, None, \n", - " policy_len=4,\n", + " policy_len=7,\n", " A_dependencies=A_dependencies, \n", " B_dependencies=B_dependencies\n", ")" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -143,17 +212,17 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "key = jr.PRNGKey(0)\n", - "_, info, _ = rollout(agent, tmaze_env, num_timesteps=10, batch_size=1, rng_key=key)" + "_, info, _ = rollout(agent, tmaze_env, num_timesteps=15, batch_size=1, rng_key=key)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 56, "metadata": {}, "outputs": [ { @@ -161,12 +230,14 @@ "output_type": "stream", "text": [ "Time t=0\n", - "[Array([[13]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[11]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", + "[0.0454467 0.0454467 0.0454467 0.0454467 0.0454467]\n", + "[[2 0 0 0]]\n" ] }, { "data": { - "image/png": "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3bt3Z8qUKaSkpBQrX9I0JufSq1cvgoODefXVV7HZbBe0z6LWhtPraxgG//73v8tcH4Bp06YxZcoU3nvvvRIDb1muwy233MIvv/zCmjVr3NbPmjXrgup2pri4OHr27On6dOjQodSy9957L88//zxvvPFGqWVKupZAiW8cePHFF1m0aBGffPJJiY8oO3ToQOPGjfnXv/5V4iP/C7lfykOLFi1o3bo1c+bMYc6cOdSpU4euXbte8P5uueUW1qxZw88//+xalp2dzQcffEBMTEyxvoAVzWKx0K9fP+bNm1dii/yFXveAgIAL7tYgIp5PLXaXgCZNmjB79mwGDx5Ms2bNXG+eMAyD5ORkZs+ejdlsduvT9t5773HdddfRunVr7rvvPho1asTRo0f5+eefOXjwIBs3bixTHYKDg5k0aRJ33HEH7du3Z9CgQURERLB//36+/vprOnfuzLvvvnvWfTRv3pzGjRvz+OOPc+jQIYKDg5k3b94F9Q86fvw4Dz74IHFxcfj4+PDf//7XbX3fvn0JCAg47+vw5JNP8vHHHxMfH88jjzzimu4kOjq60l/XFh0dzQsvvHDWMsHBwXTt2pXXX38dm81GvXr1+P7770lOTnYrt3nzZl5++WW6du1Kampqses0bNgwzGYzH374ITfffDMtW7bk7rvvpl69ehw6dIhly5YRHBzMV199dc56r1+/vtj+wdkieO211577xEuQkJDAc889h6+vLyNGjLioSbiffvppPvnkE26++WZGjx5NWFgYM2bMIDk5mXnz5lXJBN/jx49n2bJlXH311dx3333ExcWRnp7O+vXrWbJkCenp6WXeZ4cOHZgzZw6PPvooV155JYGBgdx2220VUHsRqY4U7C4Rffr0YfPmzbzxxht8//33TJ06FZPJRHR0NLfeeisjR46kbdu2rvJxcXGsW7eOF198kenTp5OWlkatWrVo166d26O7shgyZAh169Zl/PjxTJgwgfz8fOrVq0eXLl24++67z7m91Wrlq6++YvTo0YwbNw5fX1/69u3LqFGj3Op+PrKyssjLyyMpKck1CvZ0ycnJBAQEnPd1qFOnDsuWLePhhx9m/PjxhIeHM3LkSOrWrevqvH+pmT17Ng8//DDvvfcehmFw00038e2331K3bl1XmbS0NAzDYMWKFaxYsaLYPooeD3fv3p2ff/6Zl19+mXfffZesrCwiIyO5+uqreeCBB86rPp988olrRO/p7rrrrosKdv/4xz/Iyck5r9GwZ1O7dm1Wr17NU089xTvvvENeXh5t2rThq6++4tZbb72ofV9MndasWcNLL73E559/zvvvv094eDgtW7bktddeu6B9PvjggyQmJjJt2jTeeustoqOjFexExMVkqFeuiIiIiEdQHzsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQXlVdARERkerIbrdjs9mquhri4axWKxaL5bzLK9iJiIiUgWEYHDlyhIyMjKquilwmQkNDiYyMxGQynbOsgp2IiEgZFIW6WrVq4e/vf14/bEUuhGEY5OTkkJqaCkCdOnXOuY2CnYiIyHmy2+2uUBceHl7V1ZHLgJ+fHwCpqanUqlXrnI9lNXhCRETkPBX1qfP396/imsjlpOh+O58+nQp2IiIiZaTHr1KZynK/KdiJiIiIeAgFOxEREREPoWAnIiJSiQoKCi5q/cU4cuQIDz/8MI0aNcLHx4eoqChuu+02fvjhhwo7plQuBTsREZFKMmfOHFq3bs2BAwdKXH/gwAFat27NnDlzyv3Ye/fupUOHDixdupQJEyawefNmvvvuO3r06MFDDz1U7seTqqFgJyIiUgkKCgp47rnn2LFjB927dy8W7g4cOED37t3ZsWMHzz33XLm33D344IOYTCbWrFlDv379aNq0KS1btuTRRx/ll19+Ye/evZhMJhITE13bZGRkYDKZWL58uWvZli1buPnmmwkMDKR27drccccdHD9+vFzrKhdOwU5ERKQSeHt7s2TJEho1asSePXvcwl1RqNuzZw+NGjViyZIleHt7l9ux09PT+e6773jooYcICAgotj40NPS89pORkcH1119Pu3btWLduHd999x1Hjx5l4MCB5VZXuTgKdiIiIpUkKiqK5cuXu4W71atXu4W65cuXExUVVa7H3bVrF4Zh0Lx584vaz7vvvku7du149dVXad68Oe3atWPq1KksW7aMHTt2lFNt5WLozRMiIiKVqCjcFYW5zp07A1RYqAPnq6nKw8aNG1m2bBmBgYHF1u3evZumTZuWy3HkwinYiYiIVLKoqCg+/vhj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ESNGGPfff7/bdj/99JNhNpuN3NxcY9u2bQZgrF271rV+586dBmC89dZbpR77s88+M8LDw11fT5s2zQgJCSlWLjo62rUfm81m1KxZ05g5c6Zr/eDBg42EhATDMAwjLy/P8Pf3N1avXu22jxEjRhiDBw8++8WoZspy33nMqFgREZFLWW4uzJ//5+PX0hQWwhdfOMv7+VVMXV577TWuv/76Yi1lGzduZNOmTcyaNcu1zDAMHA4HycnJ7NixAy8vL9q3b+9aHxsbS40aNdz2s2TJEsaNG8f27ds5efIkhYWF5OXlkZOTc9596Ly8vBg4cCCzZs3ijjvuIDs7m/nz5/O///0PgF27dpGTk8ONN97otl1BQQHt2rUr0/XwJAp2IiIileDkyXOHuiIOh7N8RQW7rl270qtXL5555hmGDx/uWp6VlcUDDzzA6NGji23ToEEDduzYcc597927l969e/O3v/2Nf/7zn4SFhbFy5UpGjBhBQUFBmQZHDB06lG7dupGamsrixYvx8/MjPj7eVVeAr7/+mnr16rlt5+Pjc97H8DQKdiIiIpUgOBjM5vMLd2azs3xFGj9+PFdccQXNmjVzLWvfvj1JSUnExsaWuE2zZs0oLCxkw4YNdOjQAXC2nJ0+yva3337D4XDwxhtvYDY7u/J/+umnbvvx9vbGbrefs46dOnUiKiqKOXPm8O233zJgwACsVisAcXFx+Pj4sH//frp161a2k/dgCnYiIiKVwM8P+vRxjn49c+DE6by8nOUqqrWuSOvWrRk6dCgTJ050LXvqqae45pprGDVqFPfeey8BAQEkJSWxePFi3n33XZo3b07Pnj25//77mTRpElarlcceeww/Pz/XXHixsbHYbDbeeecdbrvtNlatWsXkM4b6xsTEkJWVxQ8//EDbtm3x9/cvtSVvyJAhTJ48mR07drBs2TLX8qCgIB5//HHGjh2Lw+HguuuuIzMzk1WrVhEcHMxdd91VAVft0qdRsSIiIpXk0UfhXA1VdjuMHVs59XnppZdwnNaE2KZNG1asWMGOHTvo0qUL7dq147nnnqNu3bquMjNnzqR27dp07dqVvn37ct999xEUFOR6h2nbtm158803ee2112jVqhWzZs0qNr1Kp06dGDlyJAkJCURERPD666+XWsehQ4eSlJREvXr16Ny5s9u6l19+mWeffZZx48bRokUL4uPj+frrr2nYsGF5XJ5qyWQYhlHVlRAREakOyvIy9tJMnuyc0sRicW+58/Jyhrr334eRI8upwpXg4MGDREVFsWTJEm644Yaqro5HKst9pxY7ERGRSjRyJPz0k/Nx6x9d0DCbnV//9NOlH+qWLl3KggULSE5OZvXq1QwaNIiYmBi6du1a1VUT1MdORESk0nXu7Pzk5jpHvwYHV3yfuvJis9n4+9//zp49ewgKCqJTp07MmjXLNahBqpaCnYiISBXx86s+ga5Ir1696NWrV1VXQ0qhR7EiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iE0KlZERKSC7Tu5j2xbdpm3C7AGEB0cXQE1Ek+lYCciIlKB9p3cR+8vel/w9gv7LlS4k/OmR7EiIiIV6EJa6spz+zP9/PPPWCwWbr311nLd7/nau3cvJpOJxMTEKjm+p1OwExERuYx89NFHPPzww/z4448cPny4qqsj5UzBTkRE5DKRlZXFnDlz+Nvf/satt97K9OnT3dYvWLCAJk2a4OvrS48ePZgxYwYmk4mMjAxXmZUrV9KlSxf8/PyIiopi9OjRZGf/2aoYExPDq6++yj333ENQUBANGjTggw8+cK1v2LAhAO3atcNkMtG9e/eKPOXLjoKdiIjIZeLTTz+lefPmNGvWjGHDhjF16lQMwwAgOTmZ/v37c/vtt7Nx40YeeOAB/u///s9t+927dxMfH0+/fv3YtGkTc+bMYeXKlYwaNcqt3BtvvEHHjh3ZsGEDDz74IH/729/4/fffAVizZg0AS5YsISUlhc8//7wSzvzyoWAnIiJymfjoo48YNmwYAPHx8WRmZrJixQoApkyZQrNmzZgwYQLNmjVj0KBBDB8+3G37cePGMXToUMaMGUOTJk3o1KkTEydOZObMmeTl5bnK3XLLLTz44IPExsby1FNPUbNmTZYtWwZAREQEAOHh4URGRhIWFlYJZ375ULATERG5DPz++++sWbOGwYMHA+Dl5UVCQgIfffSRa/2VV17pts1VV13l9vXGjRuZPn06gYGBrk+vXr1wOBwkJye7yrVp08b1d5PJRGRkJKmpqRV1anIaTXciIiJyGfjoo48oLCykbt26rmWGYeDj48O77757XvvIysrigQceYPTo0cXWNWjQwPV3q9Xqts5kMuFwOC6w5lIWCnYiIiIerrCwkJkzZ/LGG29w0003ua27/fbb+eSTT2jWrBnffPON27q1a9e6fd2+fXuSkpKIjY294Lp4e3sDYLfbL3gfUjoFOxEREQ+3cOFCTpw4wYgRIwgJCXFb169fPz766CM+/fRT3nzzTZ566ilGjBhBYmKia9SsyWQC4KmnnuKaa65h1KhR3HvvvQQEBJCUlMTixYvPu9WvVq1a+Pn58d1331G/fn18fX2L1UkunPrYiYiIeLiPPvqInj17lhig+vXrx7p16zh16hRz587l888/p02bNkyaNMk1KtbHxwdw9p1bsWIFO3bsoEuXLrRr147nnnvO7fHuuXh5eTFx4kSmTJlC3bp16dOnT/mcpABgMorGOYuIiMhZ5eXlkZycTMOGDfH19T2vbZLSkkhYmHDBx5zTew5x4XEXvP3F+Oc//8nkyZM5cOBAlRxfnMpy3+lRrIiIiADw/vvvc+WVVxIeHs6qVauYMGFCsTnq5NKmYCciIiIA7Ny5k1deeYX09HQaNGjAY489xjPPPFPV1ZIyULATERGpQAHWgCrdvizeeust3nrrrUo7npQ/BTsREZEKFB0czcK+C8m2ZZ+78BkCrAFEB0dXQK3EUynYiYiIVDCFM6ksmu5ERERExEOoxU5ERKQKGIZBns1Bgd2Bt8WMr9XsmghY5EIp2ImIiFSiPJudpJSTrE1OZ19aNnaHgcVsIjo8gCsbhhFXJxhfq6WqqynVlIKdiIhIJdl7PJs56w6wLy0bEyZq+Fvx9rZQaHew6WAmGw9mEB0eQELHKGJqVt5oWPEc6mMnIiJSCfYez2baqmT2Hc8mOiyA2FqBhAf6EOJnJTzQh9hagUSHBbDvj3J7j5d9FK0n6969O2PGjKnqalzyFOxEREQqWJ7Nzpx1Bzh2Kp/YWoF4e5X849fby0xsrUCOncpnzroD5Nns5VaH4cOHYzKZMJlMWK1WGjZsyJNPPkleXl65HaM6i4mJ4e23367qalw0BTsREZEKlpRykn1p2USHB5xzgITJ5Oxvty8tm20pJ8u1HvHx8aSkpLBnzx7eeustpkyZwvPPP1+ux7gYhmFQWFhY1dWo1hTsREREKpBhGKxNTseEqdSWujN5e5kxYWJNcjqGYZRbXXx8fIiMjCQqKorbb7+dnj17snjxYtd6h8PBuHHjaNiwIX5+frRt25a5c+e61nfs2JF//etfrq9vv/12rFYrWVlZABw8eBCTycSuXbsA+Pjjj+nYsSNBQUFERkYyZMgQUlNTXdsvX74ck8nEt99+S4cOHfDx8WHlypVkZ2dz5513EhgYSJ06dXjjjTfOeW4bN26kR48eBAUFERwcTIcOHVi3bp1r/cqVK+nSpQt+fn5ERUUxevRosrOdj7u7d+/Ovn37GDt2rKtVs7pSsBMREalAeTYH+9KyqeFvLdN2Nfyt7EvLJs/mqJB6bdmyhdWrV+Pt7e1aNm7cOGbOnMnkyZPZunUrY8eOZdiwYaxYsQKAbt26sXz5csAZWH/66SdCQ0NZuXIlACtWrKBevXrExsYCYLPZePnll9m4cSNffvkle/fuZfjw4cXq8vTTTzN+/Hi2bdtGmzZteOKJJ1ixYgXz58/n+++/Z/ny5axfv/6s5zN06FDq16/P2rVr+e2333j66aexWp3XfPfu3cTHx9OvXz82bdrEnDlzWLlyJaNGjQLg888/p379+rz00kukpKSQkpJyUde2KmlUrIiISAUqsDuwOwy8vcs2hYnFbML2xzx3fpTP9CcLFy4kMDCQwsJC8vPzMZvNvPvuuwDk5+fz6quvsmTJEq699loAGjVqxMqVK5kyZQrdunWje/fufPTRR9jtdrZs2YK3tzcJCQksX76c+Ph4li9fTrdu3VzHu+eee1x/b9SoERMnTuTKK68kKyuLwMBA17qXXnqJG2+8EYCsrCw++ugj/vvf/3LDDTcAMGPGDOrXr3/Wc9u/fz9PPPEEzZs3B6BJkyaudePGjWPo0KGuwRdNmjRh4sSJdOvWjUmTJhEWFobFYnG1LFZnarETERGpQN4WMxaziUJ72Vreiua387aU34/qHj16kJiYyK+//spdd93F3XffTb9+/QDYtWsXOTk53HjjjQQGBro+M2fOZPfu3QB06dKFU6dOsWHDBlasWOEKe0WteCtWrKB79+6u4/3222/cdtttNGjQgKCgIFfo279/v1u9Onbs6Pr77t27KSgo4Oqrr3YtCwsLo1mzZmc9t0cffZR7772Xnj17Mn78eFedwfmYdvr06W7n1atXLxwOB8nJyWW/kJcwBTsREZEK5Gs1Ex0ewIkcW5m2O5FjIzo8AF9r+f2oDggIIDY2lrZt2zJ16lR+/fVXPvroIwBXP7mvv/6axMRE1ycpKcnVzy40NJS2bduyfPlyV4jr2rUrGzZsYMeOHezcudMV3rKzs+nVqxfBwcHMmjWLtWvX8sUXXwBQUFBQrF4X64UXXmDr1q3ceuutLF26lLi4ONfxsrKyeOCBB9zOa+PGjezcuZPGjRtf9LEvJQp2IiIiFchkMnFlwzAMDAoKz6/VrqDQgYHBVQ3DKqwjv9ls5u9//zv/+Mc/yM3NJS4uDh8fH/bv309sbKzbJyoqyrVdt27dWLZsGT/++CPdu3cnLCyMFi1a8M9//pM6derQtGlTALZv305aWhrjx4+nS5cuNG/e3G3gRGkaN26M1Wrl119/dS07ceIEO3bsOOe2TZs2ZezYsXz//ff89a9/Zdq0aQC0b9+epKSkYucVGxvr6mPo7e2N3V5+08tUFQU7ERGRChZXJ9g1hcm5RrkahuGaGqVFneAKrdeAAQOwWCy89957BAUF8fjjjzN27FhmzJjB7t27Wb9+Pe+88w4zZsxwbdO9e3cWLVqEl5eXqz9b9+7dmTVrllv/ugYNGuDt7c0777zDnj17WLBgAS+//PI56xQYGMiIESN44oknWLp0KVu2bGH48OGYzaVHltzcXEaNGsXy5cvZt28fq1atYu3atbRo0QKAp556itWrVzNq1CgSExPZuXMn8+fPdw2eAOc8dj/++COHDh3i+PHjZb6WlwoFOxERkQrma7WQ0DGKiCAfdqVmldpyV1DoYFdqFhFBPgy6MqrC3xnr5eXFqFGjeP3118nOzubll1/m2WefZdy4cbRo0YL4+Hi+/vprGjZs6NqmS5cuOBwOtxDXvXt37Ha7W/+6iIgIpk+fzmeffUZcXBzjx493myrlbCZMmECXLl247bbb6NmzJ9dddx0dOnQotbzFYiEtLY0777yTpk2bMnDgQG6++WZefPFFANq0acOKFSvYsWMHXbp0oV27djz33HPUrVvXtY+XXnqJvXv30rhxYyIiIs73El5yTEZ5TpAjIiLiwfLy8khOTqZhw4b4+vqWefuS3hVrMZuwOwxO5NgwMIgOD2DQlVFEh+tdseJUlvtO052IiIhUkpiaATxyQxO2pZxkTXI6+9KysdkcWMwm2tQP4aqGYbSoE1zhLXXiuRTsREREKpGv1UK7BjW4IiqUvD/mqfO2mPG1mqv1Gw/k0qBgJyIiUgVMJhN+3pZym3xYBDR4QkRERMRjKNiJiIiIeAgFOxEREREPoT52IiIiVcEwwJYL9gKweIPVDzR4Qi6Sgp2IiEhlsuXBkc2w/2dI3wMOO5gtENYIGlwLka3BWvY58kRAwU5ERKTypO2GDR9DejJgAv8wsPqAwwaH1sOh3yCsIbS7A8I96+X0UjnUx05ERKQypO2GXyc7Q11YI4hoBgER4Bfq/DOimXN5erKzXNruKquqyWTiyy+/rLLjy4VTsBMREalotjxnS11WKtRs5uxTVxKLt3N9VqqzvC2v3KowfPhwTCYTJpMJq9VK7dq1ufHGG5k6dSoOh/u7a1NSUrj55pvPa7+VGQJfeOEFrrjiigrbf15eHsOHD6d169Z4eXlx++23V9ixipT3OSnYiYiIVLQjm/9sqTvXAAmTCWo0dJY/uqVcqxEfH09KSgp79+7l22+/pUePHjzyyCP07t2bwsJCV7nIyEh8fHzK7bgFBQXltq/yUFp97HY7fn5+jB49mp49e1ZyrcqHgp2IiEhFMgznQAlMpbfUncnLx1l+32rn9uXEx8eHyMhI6tWrR/v27fn73//O/Pnz+fbbb5k+fbqr3OmtcAUFBYwaNYo6derg6+tLdHQ048aNAyAmJgaAvn37YjKZXF8XtUJ9+OGHbi+u/+6777juuusIDQ0lPDyc3r17s3u3+yPngwcPMnjwYMLCwggICKBjx478+uuvTJ8+nRdffJGNGze6Wh6L6rx//3769OlDYGAgwcHBDBw4kKNHj7r2WVp9zhQQEMCkSZO47777iIyMPK9rerbrA5CRkcG9995LREQEwcHBXH/99WzcuBHgrOd0oTR4QkQuX4UFYM8Hk0VTTUjFseU6R7/6h5VtO/8w53a2XPD2r5i6Addffz1t27bl888/59577y22fuLEiSxYsIBPP/2UBg0acODAAQ4cOADA2rVrqVWrFtOmTSM+Ph6L5c/Xo+3atYt58+bx+eefu5ZnZ2fz6KOP0qZNG7Kysnjuuefo27cviYmJmM1msrKy6NatG/Xq1WPBggVERkayfv16HA4HCQkJbNmyhe+++44lS5YAEBISgsPhcIW6FStWUFhYyEMPPURCQgLLly8/a33Kw9muD8CAAQPw8/Pj22+/JSQkhClTpnDDDTewY8eOUs/pYijYicjl5dQROLwBjv0OmQedc4iZTOAXBuGxzqkmarUAi7Wqayqewl7gnNLEWsZHm2avP+e5o+KCHUDz5s3ZtGlTiev2799PkyZNuO666zCZTERHR7vWRUREABAaGlqshaugoICZM2e6ygD069fPrczUqVOJiIggKSmJVq1aMXv2bI4dO8batWsJC3MG4djYWFf5wMBAvLy83I61ePFiNm/eTHJyMlFRUQDMnDmTli1bsnbtWq688spS61MeznZ9Vq5cyZo1a0hNTXU92v7Xv/7Fl19+ydy5c7n//vtLPKeLoUexInJ5yMuExNmw9BXY8F84sgXsNrD4gMnLGfh2fAcr34IVEyB1W1XXWDyFxds5T53DVrbtHIXO7c738e1FMAwDUykt1sOHDycxMZFmzZoxevRovv/++/PaZ3R0dLEQtXPnTgYPHkyjRo0IDg52Pbrdv38/AImJibRr184V6s7Htm3biIqKcoU6gLi4OEJDQ9m27c9/xyXVpzyc7fps3LiRrKwswsPDCQwMdH2Sk5OLPYIuL2qxExHPl54Mv02HtJ0QGAm1Wpb+2NWWC2k7YNW/oXlvaHYLmPU7sFwEq59z0MSh9c5pTc5XTjrUa+/cvoJt27aNhg0blriuffv2JCcn8+2337JkyRIGDhxIz549mTt37ln3GRAQUGzZbbfdRnR0NP/5z3+oW7cuDoeDVq1auQYz+PlV3LmWVJ/ycLbrk5WVRZ06ddweCRcJDQ2tkPoo2ImIZ8vYD2s+gMxDENHC+XjrbKx+f0w3cRS2zAXDAS1uU/87uXAmk/ONEod++/P1YedSmA8YEN2pwu+9pUuXsnnzZsaOHVtqmeDgYBISEkhISKB///7Ex8eTnp5OWFgYVqsVu91+zuOkpaXx+++/85///IcuXboAzkeVp2vTpg0ffviha99n8vb2LnasFi1auPq1FbXaJSUlkZGRQVxc3DnrVR5Kuz7t27fnyJEjeHl5uVonz1TSOV0M/RoqIp7LlgeJn0DmAefkryWFunwbpJ9y/nm6wNrgWwO2L3ROVSFyMSJbO98okb7n3KNcDQNOJDvL125VrtXIz8/nyJEjHDp0iPXr1/Pqq6/Sp08fevfuzZ133lniNm+++SaffPIJ27dvZ8eOHXz22WdERka6WpxiYmL44YcfOHLkCCdOnCj12DVq1CA8PJwPPviAXbt2sXTpUh599FG3MoMHDyYyMpLbb7+dVatWsWfPHubNm8fPP//sOlZycjKJiYkcP36c/Px8evbsSevWrRk6dCjr169nzZo13HnnnXTr1o2OHTuW+RolJSWRmJhIeno6mZmZJCYmkpiYWGr5s12fnj17cu2113L77bfz/fffs3fvXlavXs3//d//sW7dulLP6WIo2ImI50peAUc3Q1hjMJ3x393mvfDcf+HWF6D/OOefz/0Xtuz7s0xgLbAXwtYvnI9oRS6U1df5mrDAWnD89z9a5EpQmO9cH1gL2t9Z7u+M/e6776hTpw4xMTHEx8ezbNkyJk6cyPz580sdKRoUFMTrr79Ox44dufLKK9m7dy/ffPMN5j+6KLzxxhssXryYqKgo2rVrV+qxzWYz//vf//jtt99o1aoVY8eOZcKECW5lvL29+f7776lVqxa33HILrVu3Zvz48a669evXj/j4eHr06EFERASffPIJJpOJ+fPnU6NGDbp27UrPnj1p1KgRc+bMuaBrdMstt9CuXTu++uorli9fTrt27c56Xme7PiaTiW+++YauXbty991307RpUwYNGsS+ffuoXbt2qed0MUyGUY4T5IiIXCpsebD0Jcg5AaEN3NfN/wX+vQAsZrCfNuN+0ddj+sBfrnYusxc4W1mufQiirqq8+sslKS8vj+Tk5LPOhXZWJb0r1uzlHCiRkw4Yzpa69nc6++WJULb7Tn3sRMQzHdvu7Fd35g/HzXudoQ7cQ93pX789HxpFQqvoP/pDmeDgOgU7uXjhjaHb0843Suxb/ec8dWaLc6BEdCfn49dybqmTy4eCnYh4plMpzoEPZ3ZU/2xl8Za6M1nMznKt/piPyjfE2cJit2l+O7l4Vl+o3xHqdfhznjqLtybJlnKhPnYi4plOpjjfKHG6fBus3nb2UAfO9auS/hxQ4e0PBVmQk1YxdZXLk8nkvLf8Qp1/KtRJOVCwExHPZM8vPmAiOw8c59mt2GE4y4MzIBoOZz8oEZFLmIKdiHgmawAYZ8wNFeAL5vNsFTGbnOXhtDcAlPGVUOKxNO5QKlNZ7jcFOxHxTMF1na1sp/OxQqcWzj50Z2MxQ+c4Z3lwPob1DSn7S9zF41itznsiJyenimsil5Oi+63o/jsbDZ4QEc8UUs/ZId2WA9bTXqA+4DpYmXT2be0OZ7kieZnOju7mkuf5ksuHxWIhNDSU1NRUAPz9/Ut9x6rIxTIMg5ycHFJTUwkNDS11rsHTKdiJiGcKbwI1YuDEPucUE0VaxzjnqXt7/tnnsSsaEWvLcc4zVr/sM9iLZ4qMjARwhTuRihYaGuq6785FExSLiOfat9r5ntigeuAT6L5uyz7nlCarkpwDJcwm5+PXAdf9GeoMA45tgzptofMYsOh3YfmT3W7HZrOdu6DIRbBarefVUldEwU5EPJfD7gx2e1dCzaYlv3w93+Yc/Rrg+2efuiIn9oGXN3R51Nn6JyJyidOvnyLiucwWaJMAuRnOmf5rNATvAPcyPtbigc5wwIm9zkewbQcp1IlItaEWOxHxfDnpsOG/cOg38PKFoDrgVcLUJYbhnIQ46wgE14PWAyDqysqvr4jIBVKwE5HLg70Q9v4Eu36AzAPOOe4svs7Hs4YDCnPA4XC+BaBue2jRGwJrVXWtRUTKRMFORC4vtjxI3QoZB5wvYM/Pcg6KCK4PofWhVksIql3VtRQRuSAKdiIiIiIeQm+eEBEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIewiODncNhYLM7cDiMqq6Kx9I1Fo9gGGC3gcNe1TURESkXXlVdgfJgGAZHT+az9XAmycezOXgih0K7gcVsom6oHw1rBhBXN5h6oX6YTKaqrm61lXoqj62HTpJ8PJv96TkU2h1YzCbqhPgRUzOAuDrBRIXpGsslLicdUhIhbQ+k74HCPDCZIKgOhDWG2i0hPBbMHvl7r4h4OJNhGNW6ySU9u4DvtqSwYX8GJ/NseFvM+Pt44WU2YXcY5BTYybPZCfb1ok1UKDe3qkNEkE9VV7taycy18f3WI6zdm05mrg2rxUyAtxdelj+vcb7NToCvF63qBnNL67pEhvhWdbVF3BVkw87FsGcZZB8HsxW8A8FiBcMBthznx+oPEc2h5e0Q3riqay0iUibVOthtP3KSz9Yd4EB6LpHBvoT6W0tsLTIMg8xcG0dO5lEnxI+/tq9Hm/qhlV/hamhXahafrtvP3uM51AryISzAu9RrfCqvkMOZeUQEedO3XT06RIdVQY1FSpB5EH6bCalbwb8mBESA2VJy2fwsyNwPviEQ1wdiezpb9EREqoFqG+y2HznJzNX7OJlnIyY8AIv53P/xOhwG+9Jz8LWaGXZNtMLdOew5lsX01XtJyyogpqY/XufxaMphGBw8kYvZBIOvakDHGIU7qWInD8MvkyA9GWo2AYv3ubcxDDiVArZsaD0QmsVXfD1FRMpBtexEkpFTwLzfDnIyz0ajmiWHOkt+Hv4njmPJz3MtM5tNxIT7k2dz8Pn6Qxw7lV+Z1a5WsvILmfvbQY5n5dM4IqDEUFeQb+LUCQsF+X9ef7PJRIMwfxwGfLHhEIczciuz2iLuCgtg4/+cfekimpcY6nLzvTia7k9u/mldjk0mCK4L3kGQNB9St1VipUVELly1HDyxaOtR9qXl0LR2ULHHgnW3rKP9vOk0/vkHzA4HDrOZ3dfewPr+d3O4ZQdMJhPRYf7sSD3Ft1tSuOOaaHX2L8HSbansOpZFk4jAYtdnzxZfVsyrwZafAzEcJkxmg1bXZtG9/wkatnQG6agafvx+9BQLNx3m3usaYT6PFlWRcrf3Jzi8wTko4oxHrys31+fNz65i/uomOBxmzGYHfTrt5LGBv9K51SFnocDakLYDNs+Dbk+Al/rnisilrdq12B07lc/6/SeoFeRTrKWuzVezGfjoMBr9shSzwwGA2eGg0S9LGTh2KG0WfuJcZjYRGezLpgMZHM7MK3aMy11mro1fk9MI8/fGy+J+i6z6KoR3H41i6y/OUAdgOExs/SWQd8ZGsXphCAAmk4l6oX4kHT7J3rTsSj8HEQrzYc8K52AIq5/bqknz29H1kWF89XMsDofzHnc4zHz1cyxdRt/B5AXtnAVNJgiNgfRdcGRLJZ+AiEjZVbtgl5RykowcGzUC3B+p1N2yjuvfeQkTBha7+5xUFrsdEwbXT3yRult/AyDEz8qp/EKSDp+stLpXF9tSTpKWXUDNQPfWiT1bfJn3Ti3AhMPuHqqdX5uYO7EWyVudI2IDfbzItdnZekjXWKrA8R3OQRBBkW6LV26uz0P/7oWBiUK7eyteod2CgYkH3+7Fqi31nAu9fMAADq2rpIqLiFy4ahfsDqTnYDE7+3Kdrv286TgsZz8dh8VMu3nTAWeLkreXmeTjWRVV1WrrcEYuJijWIrpiXo1SBxIWMVuc5cB5jf29vditayxV4eRh58TDXu5T77z52VVYLI6zbmqxOHjrs6v+XOATDGm7wV5YETUVESk31TLY+Xu7dw205OfR+OcfirXUnclitxO7eolrQEWAtxeHTuTq7QlnOJCeg6/VPcEV5JvY8nNgsZa6MznsJjavDnQNqPD3tnDsVD55Ns3sL5XsZAqY3P+Ly833Yv7qJsVa6s5UaLfwxaqmfw6o8A6A/FOQk1ZRtRURKRfVLtgVFDqKtST55GS5+tSdi9nhwCfH2YJkNjkn2LVXzxlfKkx+oQPLGS2i+TlmV5+6czEcJvJznLeW5Y+JogsVnqWyFeaC2f2XwJPZ3q4+deficJg5mf1Hlw+zxTmJscNW3rUUESlX1S7Y+VjN2O3uISHfPxDHeb7+x2E2k+8fCIDdMPCymIuFmMudr9VC4RlB2cffgcl8fuHMZDbw8Xdub3c4X+1mtegaSyWz+oPD/dFpcEABZvN5/hJodhAcUOD8wlHoDHfnMweeiEgVqnbBrkGYPzk29/+s7T6+7L72BuyWsz9esVss7OrUE7uPs89NTn4hUTX8NBXHGRqE+ZNvc//h5+3jnNLEbDl7uDNbDFp3ysLbx1kuO7+QyGBffLzO0TlPpLwF1XG2sp3Gz6eQPp124mU5e9cAL4udvp134Ofzx/81BdnOfnZ+mnBbRC5t1S7YRYX543BQrF/c+n7DMdvP/pu42e5gQ7/hgPMVWAV2BzE1AyqqqtVW3VA/MFGs1a5bvxM4ztFVzmF3lgPnNc612WkUoWssVSCknvNRrM19SqNHB6zBbj/7f312u5mxA9b8uSD/JITHgqVaTv0pIpeRahfsWtYNoYa/lbTsArflh1t1ZOno5zEwFWu5s1ucUxgsHf08h1t2ACAjx0aIn5WWdUMqre7VRYs6QUQE+XD8lPs1btQqj/6jUwGjWMud82uD/qNTXZMUn8orJMDbi1b1dI2lCtRsCqHRzleDnea61gd5f8wiTBjFWu68LM6pkd4fs+jPSYptec757Op3rKyai4hcsGoX7MICvLmqYRjHs/IpPKOFblPvwXz61ix2X3uDq89d0ZsnPn1rFpt6Dwac/b6OnMzjiqhQIkN8ix3jchfka+XaRuFk5BZQUOh+jTv1zuThtw7Q6tosV5+7ojdPPPzWATr1zgSc74w9nJFLq/ohNAjzr/RzEMFihcY9wJ7vfJR6mpF/2cBPEz+mT6edrj53RW+e+Gnix4z8ywZnQcOAE8kQ0QJqxVX2GYiIlJnJMKrfkNCTeTbeX7aL/ek5xJbwyitwToHik5NFvn+gq08dOB8P7jmeTe1gH0b1aFJsomNxyikoZPLy3exMzSI2IrDEfogF+c7Rrz7+DlefOnBe471pOYT6WxnVI5ZawQrPUkXshfDL+3DgF2c4Mxd/lJqb78XJbG+CAwr+7FNXJPOgs7Wu8xioGVs5dRYRuQjVrsUOINjXyoCOUdQM9GH3sexiLXfgHFCRU6OmW6izO5yhrmh7hbrS+Xt7MaBjFHVCfNl1LAtbCdfY28cgqIbdLdTZHQZ707LxtZrp36G+Qp1ULYsXtB0MNZvDse1QWPwVgn4+hdQOy3EPdYYBGfvBXgCt+inUiUi1US1b7IrsPpbFZ+sOsOdYNjUDfQgP8C6xZclhGJzILiD1VD7R4f707xBFs8igKqhx9bM/LYdPfzvAzqOnqOHvTc3A4u/oBWcr3YkcG0dP5lEv1I+/tq9P6/rqWyeXiFNHYcNMSNnkHN0aFFli6x2GAXmZcPIQBERA634Q3dnZaiciUg1U62AHzseyPyQdZU1yOidybJjN4G/1ck6MaxjkFhRS6IBQfysdGtTgppa1CfVXS11ZZOcXsnR7Kr/sSSP9j0ErAd7Oa+wwDHIK7BQ6HIT4WWlbP5T4VpGEn/GeWZEqV5gPu5c6P6eOOMOal7+zL55hgC3b2ULnEwSRrSGuD4TUr+pai4iUSbUPdkXSswvYejiTA+k57E/PoaDQgbeXmaga/tQP8yeuTjARQQobFyMzx8bWw5ns/+Ma59nsWC1m6tfwc13j2nr0Kpe6/Cw4sgnS90L6HijIck4+HFIfasQ4B0mENlArnYhUSx4T7EREREQud9Vy8ISIiIiIFKdgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8hIKdiIiIiIdQsBMRERHxEAp2IiIiIh5CwU5ERETEQyjYiYiIiHgIBTsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQCnYiIiIiHkLBTkRERMRDKNiJiIiIeAgFOxEREREPoWAnIiIi4iEU7EREREQ8xP8DKA2hZegc6G8AAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB23ElEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zQU79nMOQuec5z3mOYZqmiYiIiIh4haW6CxARERG5lCh8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8idf885//xDAMj2lxcXGMGjXKq3XMnDkTwzDYt2+fV/cr50b/PiJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7/43j4uLO4V9GRC5WavmqJvPnz6dZs2ZcccUV57zO1q1bueqqq2jYsCGPP/44gYGBfPLJJwwePJi5c+cyZMgQj+X/9Kc/ER4ezpNPPsm+fft45ZVXGDduHHPmzHEv8/777zNy5Ej69evHc889R25uLtOmTePqq6/m119/9fglX1xcTL9+/bj66qv5z3/+Q0BAAACffvopubm5PPjgg0RGRrJmzRpeffVVDh48yKefflqh83L65T6Av//976SkpBAUFFSh83DkyBGuueYaiouL3cu99dZbXm0tueOOO7jhhhvYs2cPTZs2BVyXkG655RZ8fHxKLb948WL27t3L6NGjiY6OZuvWrbz11lts3bqVn3/+GcMwyrwsWlRUxIQJE/D19XVPW7p0KTfeeCNdu3blySefxGKxMGPGDK699lp++OEHLr/88rPWn5uby/Hjx0tNDwsLw2Y7+etj9+7d3HLLLYwZM4aRI0fy7rvvMmrUKLp27Urbtm3p1q0bTZo04ZNPPmHkyJEe25ozZ065YfRUv/32G8OHD+ePf/wj9913Hy1btuTo0aP06NGD3Nxcxo8fT2RkJO+99x7/93//x2effVbq/8SUKVOwWCw8+uijZGRk8PzzzzNixAh++eUXj+XS0tK4+eabuf3227n11luZNm0at99+Ox9++CGPPPIIDzzwAHfccQcvvPACt9xyC0lJSQQHBwNw9OhRrrzySgzDYNy4cURFRbFgwQLGjBlDZmZmqUuHZ6vp//2//0dGRobHZe+S/wsiUkOZ4nUZGRkmYA4ePLjUvLS0NPPYsWPuV25urnveddddZ7Zv397Mz893T3M6nWaPHj3M5s2bu6fNmDHDBMy+ffuaTqfTPX3ChAmm1Wo109PTTdM0zaysLDMsLMy87777PGo4cuSIGRoa6jF95MiRJmA+/vjjpWo+tcYSkydPNg3DMPfv3++e9uSTT5qnv+ViY2PNkSNHllq/xPPPP28C5qxZsyp8Hh555BETMH/55Rf3tJSUFDM0NNQEzMTExHL3e7oBAwaYsbGx57x8bGysOWDAALO4uNiMjo42n3nmGdM0TXPbtm0mYK5YscL977R27Vr3emWdy48++sgEzJUrV5a7v4ceesi0Wq3m0qVLTdN0nY/mzZub/fr183gP5ObmmvHx8eb1119/xvoTExNNoNzXTz/95HGsp9eXkpJi2u12889//rN72qRJk0wfHx8zNTXVPa2goMAMCwsz77nnHve0kvNy6r9PyT4WLlzoUWfJv/EPP/zgnpaVlWXGx8ebcXFxpsPhME3TNJctW2YCZuvWrc2CggL3sv/9739NwNy8ebN7Wu/evU3AnD17tnvajh07TMC0WCzmzz//7J6+aNEiEzBnzJjhnjZmzBizfv365vHjxz1qvf32283Q0FD3v3FFaqro+09ELm667FgNMjMzgbK/vfbp04eoqCj36/XXXwcgNTWVpUuXctttt5GVlcXx48c5fvw4J06coF+/fuzatYtDhw55bOv+++/3uAzVs2dPHA4H+/fvB1ytLOnp6QwfPty9vePHj2O1WrniiitYtmxZqfoefPDBUtNObUnKycnh+PHj9OjRA9M0+fXXX8/jDLksW7aMSZMm8ac//Ym77rqrwufh22+/5corr/Ro4YmKinJfLvUGq9XKbbfdxkcffQS4OtrHxMTQs2fPMpc/9Vzm5+dz/PhxrrzySgA2bNhQ5jqzZs3ijTfe4Pnnn+eaa64BICEhgV27dnHHHXdw4sQJ93nKycnhuuuuY+XKled0+fX+++9n8eLFpV5t2rTxWK5NmzYexxQVFUXLli3Zu3eve9qwYcMoKiri888/d0/77rvvSE9PZ9iwYWetJT4+vlTr2Lfffsvll1/O1Vdf7Z4WFBTE/fffz759+9i2bZvH8qNHj/ZoHSyp+dQ6S7Zx++23u39u2bIlYWFhtG7d2qO1uuTvJeubpsncuXMZOHAgpml6/L/q168fGRkZpf4dz7UmEak9dNmxGpRcnsjOzi41b/r06WRlZXH06FGPjs67d+/GNE3+8Y9/8I9//KPM7aakpNCwYUP3z40bN/aYHx4eDrguqQDs2rULgGuvvbbM7YWEhHj8bLPZaNSoUanlDhw4wBNPPMFXX33l3naJjIyMMrd9NgcPHmTYsGFcddVVvPTSS+7pFTkP+/fvL/OybsuWLc+rptNlZGR49Gvz9fUlIiKi1HJ33HEHU6dOZePGjcyePZvbb7+9VN+sEqmpqTz11FN8/PHHpKSklNrf6RISEnjggQcYPnw4EydOdE8v+bc9/RLf6dsreU+Up3nz5uUOl3Gq099r4Hq/nfp+6NixI61atWLOnDmMGTMGcF1yrFOnTrnvwVPFx8eXmlbev3Hr1q3d89u1a1dunaf/nyjRqFGjUv9GoaGhpfpghoaGeqx/7Ngx0tPTeeutt3jrrbfKPI7T/13PtSYRqT0UvqpBaGgo9evXZ8uWLaXmlXyQnD5+VEkrxaOPPlpu35hmzZp5/FzeHWOmaXps8/333y81FALg0acHXHcmnn73pcPh4Prrryc1NZXHHnuMVq1aERgYyKFDhxg1atR5dW4vLCzklltuwW6388knn3jUcT7noao8/PDDHh3Ie/fuzfLly0std8UVV9C0aVMeeeQREhMTueOOO8rd5m233caPP/7IX/7yFzp16kRQUBBOp5P+/fuXOpdpaWkMHTqUFi1a8L///c9jXsmyL7zwAp06dSpzX5XZb+hs77USw4YN49///jfHjx8nODiYr776iuHDh5d6r5WlMvrqnWud5S13rv+n7rzzznKDb4cOHc6rJhGpPRS+qsmAAQP43//+x5o1a86p43OTJk0A8PHxOaeWiHNR0gG8bt26573NzZs3s3PnTt577z3uvvtu9/TFixefd13jx48nISGBlStXUq9ePY95FTkPsbGx7hagU/3222/nXdup/vrXv3q0Tp6pFWn48OH861//onXr1uWGobS0NL7//nueeuopnnjiCff0so7B6XQyYsQI0tPTWbJkifvmhxIl/7YhISGV9n6pDMOGDeOpp55i7ty51KtXj8zMTI/LexUVGxtb5r/njh073PO9KSoqiuDgYBwOR6We9/JaSkWkZlKfr2ry17/+lYCAAO655x6OHj1aav7p33rr1q1Lnz59mD59OsnJyaWWL2sIibPp168fISEhPPvssxQVFZ3XNku+tZ9ar2ma/Pe//61wPQAzZsxg+vTpvP7662WG0oqch5tuuomff/6ZNWvWeMz/8MMPz6u207Vp04a+ffu6X127di132XvvvZcnn3ySF198sdxlyjqXQJkjmz/11FMsWrSIjz76qMzLcV27dqVp06b85z//KfPy9vm8XypD69atad++PXPmzGHOnDnUr1+fXr16nff2brrpJtasWcNPP/3knpaTk8Nbb71FXFxcqb5pVc1qtTJ06FDmzp1bZsv2+Z73wMDA876ELyIXH7V8VZPmzZsze/Zshg8fTsuWLd0j3JumSWJiIrNnz8ZisXj0sXr99de5+uqrad++Pffddx9NmjTh6NGj/PTTTxw8eJCNGzdWqIaQkBCmTZvGXXfdRZcuXbj99tuJioriwIEDfPPNN1x11VW89tprZ9xGq1ataNq0KY8++iiHDh0iJCSEuXPnnld/lePHj/PQQw/Rpk0b7HY7H3zwgcf8IUOGEBgYeM7n4a9//Svvv/8+/fv35+GHH3YPNREbG+v1RzfFxsbyz3/+84zLhISE0KtXL55//nmKiopo2LAh3333HYmJiR7Lbd68mWeeeYZevXqRkpJS6jzdeeedWCwW/ve//3HjjTfStm1bRo8eTcOGDTl06BDLli0jJCSEr7/++qx1b9iwodT2wdWy1r1797MfeBmGDRvGE088gZ+fH2PGjLmggYQff/xxPvroI2688UbGjx9PREQE7733HomJicydO7daBimeMmUKy5Yt44orruC+++6jTZs2pKamsmHDBpYsWUJqamqFt9m1a1fmzJnDxIkTueyyywgKCmLgwIFVUL2IeIPCVzUaNGgQmzdv5sUXX+S7777j3XffxTAMYmNjGTBgAA888AAdO3Z0L9+mTRvWrVvHU089xcyZMzlx4gR169alc+fOHpepKuKOO+6gQYMGTJkyhRdeeIGCggIaNmxIz549GT169FnX9/Hx4euvv2b8+PFMnjwZPz8/hgwZwrhx4zxqPxfZ2dnk5+ezbds2992Np0pMTCQwMPCcz0P9+vVZtmwZf/rTn5gyZQqRkZE88MADNGjQwN3h+2Ize/Zs/vSnP/H6669jmiY33HADCxYsoEGDBu5lTpw4gWmarFixghUrVpTaRsml0D59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NGrUiKeffprk5GSSk5Mv6NxWJ3W4FxGRS15+kZP9J3IID/Cp0HrhAT7sP5FDfpETf9/Kuftx/vz5BAUFUVxcTEFBARaLhddeew2AgoICnn32WZYsWUL37t0BaNKkCatWrWL69On07t2bPn368M477+BwONiyZQu+vr4MGzaM5cuX079/f5YvX07v3r3d+7vnnnvcf2/SpAlTp07lsssuIzs7m6CgIPe8p59+muuvvx6A7Oxs3nnnHT744AOuu+46AN577z0aNWp0xmM7cOAAf/nLX2jVqhUAzZs3d8+bPHkyI0aM4JFHHnHPmzp1Kr1792batGlERERgtVrdLXQ1mVq+RETkklfocOJwmtisFftYtFoMHE6TQoez0mq55pprSEhI4JdffmHkyJGMHj2aoUOHArB7925yc3O5/vrrCQoKcr9mzZrFnj17AOjZsydZWVn8+uuvrFixwh3ISlrDVqxYQZ8+fdz7W79+PQMHDqRx48YEBwe7g9mBAwc86urWrZv773v27KGwsJArrrjCPS0iIoKWLVue8dgmTpzIvffeS9++fZkyZYq7ZnBdkpw5c6bHcfXr1w+n00liYmLFT+RFTC1fIiJyyfO1WrBaDIorGKJKxv/yrWBoO5PAwED3JcF3332Xjh078s477zBmzBh3v61vvvmGhg0beqxnt9sBCAsLo2PHjixfvpyffvqJ66+/nl69ejFs2DB27tzJrl273AErJyeHfv360a9fPz788EOioqI4cOAA/fr1o7CwsFRdF+qf//wnd9xxB9988w0LFizgySef5OOPP2bIkCFkZ2fzxz/+kfHjx5dar3Hjxhe874uJWr5EROSS5+djITYykLTcogqtl5ZbRGxkIH4+VfNxarFY+Nvf/sbf//538vLyaNOmDXa7nQMHDtCsWTOPV0xMjHu93r17s2zZMlauXEmfPn2IiIigdevW/Pvf/6Z+/fq0aNECgB07dnDixAmmTJlCz549adWqlUdn+/I0bdoUHx8ffvnlF/e0tLQ0du7cedZ1W7RowYQJE/juu+/4wx/+wIwZMwDo0qUL27ZtK3VczZo1c/d58/X1xeGo3LtLq4PCl4iIXPIMw+Cy+AhMTAqLz631q7DYiYnJ5fERVXrn3a233orVauX1118nODiYRx99lAkTJvDee++xZ88eNmzYwKuvvsp7773nXqdPnz4s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4EBiY2N5++23adCgAU6nk3bt2rk7wPv7l75pqLKUVU9lONP5yc7Opn79+h6XP0uEhYVVST0VavlKSUnh7rvvpmXLllx33XWsXbuWRYsWcf3111dJcSK1Tag9lK71upKan+ruKF9cVMzUB6aW2bn+9E74Ux+YSmFhIck5ybSObE2joEbVeTgitYePv6ujfW5qxdbLTXWt51N1gQRg6dKlbN68udQlwVOFhIQwbNgw3n77bebMmcPcuXNJTXUdj4+PDw5H+f1NS5w4cYLffvuNv//971x33XW0bt2atDTPsQc7dOhAQkKCe9un8/X1LbWv1q1bl+pntW3bNtLT0894015lKu/8dOnShSNHjmCz2WjWrJnHq06dOuUe04WoUMvXO++8U2k7FrlU9Ynpw+703ezP3O96tqOPjZsfvJn50+Yz/s3xpfp2lQSwqQ9MZcADAziSf4Qo/yj6xfUr9xKEiFSQYUDj7nBovesS4rm0ZBUXACbE9qjUzvYFBQUcOXIEh8PB0aNHWbhwIZMnT+bmm2/m7rvvLnOdl156ifr169O5c2csFguffvop0dHR7pabuLg4vv/+e6666irsdjvh4aVv4gEIDw8nMjKSt956i/r163PgwAEef/xxj2WGDx/Os88+y+DBg5k8eTL169fn119/pUGDBnTv3p24uDgSExNJSEigUaNGBAcH07dvX9q3b8+IESN45ZVXKC4u5qGHHqJ3795069atwudo27ZtFBYWkpqaSlZWFgkJCQDljsV1pvPTt29funfvzuDBg3n++edp0aIFhw8f5ptvvmHIkCF069atzGO6kGE+9GxHES8L8g1iULNBRPhFsDdjLw6ng679uvL/Pv1/Zd7VCK4ANumTSdTtURcfqw8Dmw6kbkBdL1cuUstFt4eIeFcH+rM9w9E0IS3RtXy9dpVaxsKFC6lfvz5xcXH079+fZcuWMXXqVObNm1fuHYDBwcE8//zzdOvWjcsuu4x9+/bx7bffYrG4PuZffPFFFi9eTExMDJ07dy533xaLhY8//pj169fTrl07JkyYwAsvvOCxjK+vL9999x1169blpptuon379kyZMsVd29ChQ+nfvz/XXHMNUVFRfPTRRxiGwbx58wgPD6dXr1707duXJk2aMGfOnPM6RzfddBOdO3fm66+/Zvny5XTu3PmMx3Wm82MYBt9++y29evVi9OjRtGjRgttvv539+/dTr169co/pQhiml5/Mm5mZSWhoKBkZGep8L5e0vRl7+XLXl+zP2k+UfxRh9jCPB22XME2TzMJMjuYepW5AXQY2GUj7qPbVULHIxaW8z5P8/HwSExPPOFZUuUpGuM9OcY3jZSujdaO4wBW8gurClQ+6LjvKJa8i7zsNECRSTZqENuHeDvey9MBSfj36K7vTd+Nj8cHf5o/NYsNpOsktyqXAUUCwbzCXR1/ODXE3UMe/TnWXLlJ7RTaFKx5wjVyfmggYruEkLDZX5/rcVMB0tXh1uVvBS86LwpdINQrxDWFws8Fc3fBqtp/YzoGsAxzMOkiRswhfqy9NQpsQExxDq4hWRAdGq4+XiDdENoXej7tGrt//48lxvCxWaNjF1cerXjvwqWCrmsjvFL5ELgJ1/OvQs1FPwHWZ0Wk6sRgWhS2R6uLjB426uUauL8o72Qnfx79KR7KXS4PCl8hFxjCMcp//KCJeZhi/j1xftaPXy6VFdzuKiIiIeJHCl4iIiIgXKXyJiIiIeJH6fImIiJTDNE3yHfkUOYvwsfjgZ/XTjTBywRS+RERETlPgKGBH6g42HN1AUlYSDqcDq8VKTHAMXep1oVVEK+zW83+8jFzaFL5EREROcSDzAJ/v+pykrCQMwyDMHoavzZdis5itJ7ay5fgWYoJj+EPzP9A4pHG11WkYBl988QWDBw+uthrk/KjPl4iIyO8OZB7gg+0fcCDrAI2DG9MktAkRfhGE2EOI8IugSWgTGgc35kDW78tlHqjU/Y8aNQrDMDAMAx8fH+rVq8f111/Pu+++i9Pp9Fg2OTmZG2+88Zy2axgGX375ZaXWWp5//vOf5T7gujIsX76cQYMGUb9+fQIDA+nUqRMffvhhle0PXP8ulRlyFb5ERERwXWr8fNfnHM87TtPQpvhYfcpczsfqQ9PQphzPO87nuz6nwFFQqXX079+f5ORk9u3bx4IFC7jmmmt4+OGHufnmmykuLnYvFx0djd1eeZc+CwsLK21blaG8en788Uc6dOjA3Llz2bRpE6NHj+buu+9m/vz5Xq7w/Cl8iYiIADtSd5CUlURscOxZO9UbhkHj4MYkZSXxW+pvlVqH3W4nOjqahg0b0qVLF/72t78xb948FixYwMyZMz1qKGnNKiwsZNy4cdSvXx8/Pz9iY2OZPHkyAHFxcQAMGTIEwzDcP5e0UP3vf//zeBj0woULufrqqwkLCyMyMpKbb76ZPXv2eNR48OBBhg8fTkREBIGBgXTr1o1ffvmFmTNn8tRTT7Fx40Z3C15JzQcOHGDQoEEEBQUREhLCbbfdxtGjR93bLK+e0/3tb3/jmWeeoUePHjRt2pSHH36Y/v378/nnn5d7TtPS0hgxYgRRUVH4+/vTvHlzZsyY4Z6flJTEbbfdRlhYGBEREQwaNIh9+/a563rvvfeYN2+e+5iWL19+pn/Cs1KfLxERueSZpsmGoxtcl/vKafE6na/VFwxYf3Q97eu0r9K7IK+99lo6duzI559/zr333ltq/tSpU/nqq6/45JNPaNy4MUlJSSQlJQGwdu1a6taty4wZM+jfvz9W68knaOzevZu5c+fy+eefu6fn5OQwceJEOnToQHZ2Nk888QRDhgwhISEBi8VCdnY2vXv3pmHDhnz11VdER0ezYcMGnE4nw4YNY8uWLSxcuJAlS5YAEBoaitPpdAevFStWUFxczNixYxk2bJhHkCmrnnORkZFB69aty53/j3/8g23btrFgwQLq1KnD7t27ycvLA6CoqIh+/frRvXt3fvjhB2w2G//617/o378/mzZt4tFHH2X79u1kZma6A1tERMQ511YWhS8REbnk5TvyScpKIsweVqH1wu3hJGUlke/Ix9/mXzXF/a5Vq1Zs2rSpzHkHDhygefPmXH311RiGQWxsrHteVFQUAGFhYURHR3usV1hYyKxZs9zLAAwdOtRjmXfffZeoqCi2bdtGu3btmD17NseOHWPt2rXuENKsWTP38kFBQdhsNo99LV68mM2bN5OYmEhMTAwAs2bNom3btqxdu5bLLrus3HrO5pNPPmHt2rVMnz693GUOHDhA586d6datG3CyNRBgzpw5OJ1O/ve//7kD9IwZMwgLC2P58uXccMMN+Pv7U1BQUOr8nS9ddhQRkUtekbMIh9OBzahYm4TVsOJwOihyFlVRZSeZpllu69qoUaNISEigZcuWjB8/nu++++6cthkbG1sq6OzatYvhw4fTpEkTQkJC3EHlwAHXzQUJCQl07ty5Qq0/27dvJyYmxh28ANq0aUNYWBjbt28/Yz1nsmzZMkaPHs3bb79N27Zty13uwQcf5OOPP6ZTp0789a9/5ccff3TP27hxI7t37yY4OJigoCCCgoKIiIggPz+/1OXWyqKWLxERueT5WHywWqwUm8VnX/gUDtM1/peP5dwuVV6I7du3Ex8fX+a8Ll26kJiYyIIFC1iyZAm33XYbffv25bPPPjvjNgMDA0tNGzhwILGxsbz99ts0aNAAp9NJu3bt3B3g/f2rroWvrHrKs2LFCgYOHMjLL7/M3XfffcZlb7zxRvbv38+3337L4sWLue666xg7diz/+c9/yM7OpmvXrmXeMVmRIFgRavkSEZFLnp/Vj5jgGNIL0iu0XlpBGjHBMfhZy+4cXlmWLl3K5s2bS10SPFVISAjDhg3j7bffZs6cOcydO5fU1FQAfHx8cDgcZ93PiRMn+O233/j73//OddddR+vWrUlLS/NYpkOHDiQkJLi3fTpfX99S+2rdurVHPzSAbdu2kZ6eTps2bc5a1+mWL1/OgAEDeO6557j//vvPaZ2oqChGjhzJBx98wCuvvMJbb70FuILrrl27qFu3Ls2aNfN4hYaGlntMF0LhS0RELnmGYdClXhdM06TIcW6XEAsdhWBC13pdK7WzfUFBAUeOHOHQoUNs2LCBZ599lkGDBnHzzTeX28Lz0ksv8dFHH7Fjxw527tzJp59+SnR0NGFhYYCrj9P333/PkSNHSoWpU4WHhxMZGclbb73F7t27Wbp0KRMnTvRYZvjw4URHRzN48GBWr17N3r17mTt3Lj/99JN7X4mJiSQkJHD8+HEKCgro27cv7du3Z8SIEWzYsIE1a9Zw991307t3b3c/rHO1bNkyBgwYwPjx4xk6dChHjhzhyJEj5YZBgCeeeIJ58+axe/dutm7dyvz5890d9EeMGEGdOnUYNGgQP/zwA4mJiSxfvpzx48dz8OBB9zFt2rSJ3377jePHj1NUdGGXmRW+REREgFYRrYgJjmF/1n5M0zzjsqZpciDrADHBMbSMaFmpdSxcuJD69esTFxdH//79WbZsGVOnTmXevHnl3gEYHBzM888/T7du3bjsssvYt28f3377LRaL62P+xRdfZPHixcTExNC5c+dy922xWPj4449Zv3497dq1Y8KECbzwwgsey/j6+vLdd99Rt25dbrrpJtq3b8+UKVPctQ0dOpT+/ftzzTXXEBUVxUcffYRhGMybN4/w8HB69epF3759adKkCXPmzKnw+XnvvffIzc1l8uTJ1K9f3/36wx/+UO46vr6+TJo0iQ4dOtCrVy+sVisff/wxAAEBAaxcuZLGjRvzhz/8gdatWzNmzBjy8/MJCQkB4L777qNly5Z069aNqKgoVq9eXeG6T2WYZ3uHVbLMzExCQ0PJyMhwH5SIiEhFlfd5kp+fT2Ji4hnHiipPyQj3x/OO0zi4sWs4idMUOgo5kHWAOv51uKv1XcSExJSxJbnUVOR9pw73IiIiv2sc0pg7W9/pfrYjhms4CathxWE6SCtIAxMaBzdmaPOhCl5yXhS+RERETtE4pDEPdnqQ31J/Y/3R9SRlJVHkKMJqsdIush1d63WlZURL7NbKe7SPXFoUvkRERE5jt9rpENWB9nXak+/Ip8hZhI/FBz+rX5WOZC+XBoUvERGRchiGgb/NH3+qdvR6ubTobkcREamVvHw/mVziKvJ+U/gSEZFaxcfHNdp8bm5uNVcil5KS91vJ++9MdNlRRERqFavVSlhYGCkpKYBrHCf105KqYpomubm5pKSkEBYWVu5YbKdS+BIRkVonOjoawB3ARKpaWFiY+313NgpfIiJS6xiGQf369albt+4FPwpG5Gx8fHzOqcWrhMKXiIjUWlartUIfiiLeoA73IiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRbbqLuBiklNQTHZBMQYQ5GcjwFenR0QuQUX5kJ8Opgm+AWAPAcOo7qpEao1LPl2kZOWzKSmDLYczOJqZT2GxEwBfm4V6IX60bxhKh0ZhRAXbq7lSEZEqlJcGh391vTIOugIYJlh9IbAO1GsPjbpCaIyCmMgFMkzTNL25w8zMTEJDQ8nIyCAkJMSbu/aQX+Rg2Y4UVuw8RmpOIQG+VoLsNuw+VgAKihxkFxSTV+QgPMCXa1pG0btlXfx+ny8iUis4imHfStjxDWQdBZvd1dLl4w8Y4CiAgmwozHJNj7saWt8MfqHVXflF83kiUlGXZMvXiewCZv9ygC2HM4gI9KVVdDDGad/kguw2IoPsOE2T41kFfPHrIXal5DDiisaEB/pWU+UXl/2Z+8kpyqnweoE+gcSGxFZBRSJSIYU5sOF9OPAT+ARCVCuwnP4FMwgCIl2XIPNS4bdv4cQu6DoawvX/WOR8XHLhKzO/iFk/7Wd7ciZNogKx287ckmUxDOqG+BEa4MOmg+k4nE7uuTqeYD8fL1V8cdqfuZ+bv7j5vNefP2S+AphIdSouhPXvwf7VEB4HvkFnXt4wXCHMLxSO74Q1b0H3cRBS3yvlitQml9TdjqZpsmBzMtuTM2lWN8gdvIqLCs+4XnFRIXablaZRQWw9nMmirUfw8tXai875tHhV5voicoH2LHW1eIXHu4NXYVHxGVcpLCoGiw3qtIS0fbD5U3AUeaFYkdrlkgpfO45k8dOeE9QP9cPH6jr0X5d/ywt/HEhaSnKZ66SlJPPCHwfy6/Jv8bVZiA71Y/Xu4+xKyfZm6SIilScz2XX50C8MfAMBmLNsE+3HTCUpJb3MVZJS0mk/Zipzlm1yXZoMbwKH1kPSL96rW6SWqFD4mjx5MpdddhnBwcHUrVuXwYMH89tvv1VVbZVu3b5UCoqdhAW4+mwVFxWycNZ/OXZwH2/85a5SASwtJZk3/nIXxw7uY+Gs/1JcVEh4gC/5RU7W7kutjkMQEblwh9ZB7gkIdl0yLCwq5okZS9h58Dh9JvyvVABLSkmnz4T/sfPgcZ6YscTVAuYb4GoF27cKnI5qOAiRmqtC4WvFihWMHTuWn3/+mcWLF1NUVMQNN9xATs7FfwkpPbeQrYcziTyls7zNx5cHpswksn4MJ5KTPAJYSfA6kZxEZP0YHpgyE5uPa92IQF+2HMogM1/N7SJSwzgdcOBnj7G7fH1sLPnPPTSpH8He5FSPAFYSvPYmp9KkfgRL/nMPvj6/dxcOjoYTeyB9fzUdjEjNVKHwtXDhQkaNGkXbtm3p2LEjM2fO5MCBA6xfv76q6qs0RzMLyMovJsTfs6N8eN36PPTC+x4BLHHrBo/g9dAL7xNe92Sn0hA/H7Lzi0nJzPf2YYiIXJic464xvU4bKiKmbhjLX77XI4D9uGW/R/Ba/vK9xNQNO7mSTyAU50HWEe8eg0gNd0F9vjIyMgCIiIgod5mCggIyMzM9XtUhNacQp2m6+3qd6vQA9uqE4eUGL3ANwFrsNEnNUcuXiNQwuSegMNfd1+tUpwewq8ZPLz94we8tZ4ZrmyJyzs47fDmdTh555BGuuuoq2rVrV+5ykydPJjQ01P2KiYk5311ekLPdnRhetz53/PV5j2l3/PX5UsHrVA7npX3Ho4jUQKYTcIJR9q//mLphvD/pVo9p70+6tXTwOrlB9fkSqaDzDl9jx45ly5YtfPzxx2dcbtKkSWRkZLhfSUlJ57vLC2L3sWCa5YewtJRkZj//V49ps5//a5l3QZZsw+5zSd0sKiK1gc0PLD7gKHuInaSUdO6a/KnHtLsmf1ruXZBguLYpIufsvNLDuHHjmD9/PsuWLaNRo0ZnXNZutxMSEuLxqg5RQX74+VjIL3KWmnd65/o/vfxRmZ3wS+QWOvDzsVJXz3sUkZomqK7rkmNh6RulTu9cv3rqH8vshO/mdLguPQbX807tIrVEhcKXaZqMGzeOL774gqVLlxIfH19VdVW6uiF2IgJ9Sc31/LZ3evB66IX3iW/bpVQn/FMDWFpuIXWCfKkbrG97IlLD2INdjwXK9Rwu5/Tgtfzle+nRLrZUJ3yPAJaX6uq4H1o93UlEaqoKha+xY8fywQcfMHv2bIKDgzly5AhHjhwhLy+vquqrNH4+Vq6IjyAzrwjn7321iosKefPxUWV2rj+9E/6bj4+iuKgQh9Mku6CYK+Ij8bXpsqOI1DCGAY17gFnsvvRYWFRM30ffLbNz/emd8Ps++q5rnC/ThOwUaNAVAutU4wGJ1DwVSg/Tpk0jIyODPn36UL9+ffdrzpw5VVVfpeoaF0GDMH8OprvCos3Hl/53P0xUo7gy72osCWBRjeLof/fD2Hx8OZiWS8Mwf7rEhlfHIYiIXLgGnVyPCEpNBNPE18fG06P70qJRnTLvaiwJYC0a1eHp0X1d43xlHwX/MIjvWR1HIFKjGaaXH1KYmZlJaGgoGRkZ1dL/65e9J/jg5/2EBfgSEXhypPuSAVTLUjL/RHYBmfnF3NU9lsviyh9e41Kw7cQ2hs0fdt7rz7l5Dm0i21RiRSJSISk74MdXXX8PdfXdLSwqPjmAahnc8wsyIeMgdLgNWg/0RrVlqu7PE5HzdcldN7ssLoJ+baNJzSnkSEY+pmmeMXgBWG0+JGfkkZ5XRP+20XRTqxeBPqXHCPLm+iJygeq2coUnZ/HvLWDOMwYvcI2ET84xV/Bqei007+elYkVql0uu5QvA6TRZufMYC7ceIT23iLohdsL8fTB+f9RGCdM0Sc8t4mhWPhEBvvRvX5+ezepgsRjlbPnSsj9zPzlFFX+0VKBPILEhsVVQkYhUiGnCwbWwZa4rUAVGuV6njwFmmq7Wrqxk8PGHZn2h9f+B7cxfXKvaxfB5InI+LsnwVSIpNZelO1LYejiDzPxiDMDHasHEpLjYxARC/G20axjKta3q0ig8oFrrFRGpEtnHYNd3kLTGdQcjuMYCMwxwFAGma3iKqNbQ4gao27payy1xMX2eiFTEJR2+ShzJyCfxeA5HMvJIzSkEAyID7dQL8aNJVCD1QjSkhIhcAnJT4dhvrhau7KOu0fD9wiCkAYTHuV7GxdPyfzF+noicizNf4L9ERIf6ER2qgCUil7iACIjtXt1ViNR6l1yHexEREZHqpPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kW26i5AagfTNEnPLeJYdgF5hQ4shkFYgA9RwXb8fKzVXZ5cKhxFkH0Uco6D6QCrHYLqQUAkWPRdU0QuDgpfckHyCh1sOpjOmsRUktJyySlw4DCdgIGfzUKInw8dYkLp0jic+DqBGIZR3SVLbZRxEJLWQtIvkJcGRbmu6YYFfIMgOBriroKGXcEvtHprFZFLnmGapunNHWZmZhIaGkpGRgYhISHe3LVUst0pWXyVcJhdKdnYrAYRAb4E2m34WC2YpklekYOs/GLScosIslu5unkU17epR5BdmV8qSXEB7F4Cvy2EvFTwCwf/UPAJcAUvZzEUZkNuKhTnQVgctBsCDbqAvgjUePo8kZpK4UvOyy97TzB3w0GyC4qJjQjE13bmSzqpOYWkZOXTtkEod14ZS0Sgr5cqlVqrMAfWvwcHfgT/CAiKPnOgchZD2j5XKGs7GFrepABWw+nzRGoqdYKQCtt0MJ1P1iXhcJo0iwo6a/ACiAj0pUmdILYcyuDDn/eTV+jwQqVSazmK4dcPYP9qCIuH4PpnD1IWG0Q2c12G3PwZ7F3mnVpFRE6j8CUVkp5byFcJhylyOGkUHlBmH67CAoOsNCuFBZ7zfG0WmkQFsuVwJkt3HPVWyVIb7V8N+390XUb0DSg9v6AIUrNcf54uqK7rsuS2ryD9QJWXKiJyOnW+kQpZtes4B1JzaVEvuNS8vVv8WDE3nC0/BWE6DQyLSbvu2fS5JY34tvkA2G1WIgN9WbHzGJ0bh9MgzN/bhyA1XX4m7JgPPv5gD/Kct3kffLoKftwOThMsBvRoDbf1hHaxJ5cLaQjHtsGOb+GKP+ryo4h4VYVbvlauXMnAgQNp0KABhmHw5ZdfVkFZcjHKLihmzb5UwgN8sVo8P6xWfx3KaxNj2PqzK3gBmE6DrT8H8eqEGH6cf/IOszpBvqTnFrExKd2b5UttkZwAWcmuAHWqeT/Dw2/BTztcwQtcf/60A8ZPh69+ObmsYUBQfTiyCTIPe610ERE4j/CVk5NDx44def3116uiHrmIJR7L4VhWAXWCPDvL793ix9xX6wIGTodnKHP9bPDZ1LokbvUDwDAMgv1sJCSl4+X7PaQ2OLIZLD6uPlwlNu+D/37l+rvD6bl8yc+vzIMt+09O9w+H/Aw4vrNKyxUROV2FLzveeOON3HjjjVVRi1zkUrLyMU0Tm9Uzs6+YG47FCs4z9KG3WF3LxbdNBiDYz4e03ELScot056OcO0cRpO0H+2mXvT9dBVZL6eB1KqvFtVzJ5UfDAMMKGYeqrl4RkTJUeZ+vgoICCgoK3D9nZmZW9S6liqTnFpXqYF9YYLj7eJ2J02Gw+ccgCgsMfO0mfj4W0nKcZOYpfEkFFGS5BlD1CTxlWtHJPl5n4nDC6m2u5e0+rmk2P9eI+CIiXlTldztOnjyZ0NBQ9ysmJqaqdylVpKyPtoJcy1mDl3t9p0FB7sm3nFnmFkXOwalvuZz8swevEk7Ttbx7OwZlv7NFRKpOlYevSZMmkZGR4X4lJSVV9S6ligTZbaU+puwBTgzLuX14GRYTe4DrslBhsRNfq4UAXz33USrAJwCsvq6R7UsE+rnuajwXFsO1fInifFffLxERL6ry8GW32wkJCfF4Sc1UN8SOAThPaWXwtbuGk7BYzxzALFaT9j2y8bW7lssuKCbE34fIIHtVliy1jY8fhDaEguyT0+w+ruEkrGf5dWa1wFVtTl5yNE1wOiGscdXVKyJSBg2yKucsNiKAUH8fUnMLPab3Hpp2xs724OqM33tomvvnjLxi2jQIKTVkhchZ1Wvvek6jeUrn+luvPnNne3DNv/Xqkz8XZrvCXHh81dQpIlKOCoev7OxsEhISSEhIACAxMZGEhAQOHNBI0bVdZJCdTjFhHMsu8Bgiokm7fG4ZnwKYpVrAXD+b3DI+xT3QamZeEQG+Fjo31uUeOQ8NOkNAJGSnnJzWPg4eGeT6++ktYCU/PzLIc6DVzEMQ1RIimlRpuSIip6vw3Y7r1q3jmmuucf88ceJEAEaOHMnMmTMrrTC5OPVsEcWmgxkkZ+R7jE7f4+YM6scXsGJuOJt/9BzhvvfQkyPcO5wmh9Lz6NUiivjIwPJ2I1K+oChoeh1s/sTVX8v2+6Xr/7sCmkS7hpNYvc1zhPtbr/YMXjnHXXc6tugPFl0AEBHvMkwvj3Kpp9DXfCt3HuOTdUmEB/iWOUxEYYHrrkZ7gNPdxwtcfcX2HMumYbg/D/VpRriGmJDzVZgLP77qGqG+Tkuw+njOLyhy3dUY6Heyj5d7XiZkJEGbQdDuFj1aqAbT54nUVPrKJxV2dbM69GsbTXpuIQfTcnGelt997SbB4Q6P4JVX6GBnShb1w/y488pYBS+5ML4B0G00RLWG47+5nvd4KrsPRAR7Bi/TdD2WKOOQq+Ws9SAFLxGpFnqwtlSYxWIwoH19IoN8WbD5CL8dyXK3gvnaThnHyzTJKXCQkp2Pw2nSuXE4gzs1JDrU7wxbFzlHQXWh+0Ow5XM48KMrWAXVA78QME75XukogrxUyDkG/hHQ8XZo1hds+gIgItVDlx3lgqRk5vPL3lTW7k8lNaeQYqfpMf6lv4+VuDqBXBEfQZfYcHzONhyASEU5nZD8K+xbDcd2/D4MRcmvNcPVuuUfBo0uh7irIDyu+mqVSqXPE6mpFL6kUuQUFHM4PY+UrALyCh1YLBDq70u9EDsNQv2xaEgJqWollxWzkiHnBJgO14CsQfVcY4NpMNVaR58nUlPpsqNUikC7jeb1gmleL/jsC4tUBcOAkAaul4jIRUzXgERERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts1V2A1A5Z+UUcTMvjWFYBeUUOLIZBWIAP9YL9aBjuj9ViVHeJUtuZJmQegsxkyD0OTgfY7BBUF0JjICCiuisUEQEUvuQCHcnI56e9J1i/P5W0nEIcpmu6AZiAv4+FxhGBXNEkgm6xEfja1NgqlczpgEMbYN8PcHwnFOZ4zjcM8AuDhl0h7mqIbFotZYqIlFD4kvPidJr8uOcEC7YkcyyrgIhAX+IiA7FZT4Yr0zTJLXSQeDyHXSlZJCSlM6hTQxqG+Vdj5VKr5JyALZ/BgZ9dPwfVg9DGrsBVwumAvFTYvRiS1kDL/tC8H9h8q6dmEbnkKXxJhTmcJvM3HWbxtqP42ay0ig7GMEpfVjQMg0C7jXi7jfwiB5uSMjiWVcDd3eOIrxNYDZVLrZJ1BH55C47tgPA4sAeXvZzFCoFREFAHso/Cpk8g6yh0uct1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", "text/plain": [ "
" ] @@ -179,12 +250,14 @@ "output_type": "stream", "text": [ "Time t=1\n", - "[Array([[14]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[6]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[2]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", + "[0.0714183 0.0714183 0.0714183 0.0714183 0.0714183]\n", + "[[0 0 0 0]]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQu0lEQVR4nO3dd3gU1eLG8e/uZtMbCYFQQhIIvUmx0VG8RIGLXJRQLCgWVESwe3/XXkC5losF8KoULygKKsWCIgQFVEAILSAt9EAgDdKT3fn9sWZlSQIEUsjyfp5nn7AzZ2bOTJbkzZlzzpgMwzAQERERkRrPXN0VEBEREZGKoWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJ9Xiueeew2QyuSyLiopi5MiRVVqPGTNmYDKZ2Lt3b5UeV86Nvj8iIuWjYHcRSUpKYsyYMTRr1gxfX198fX1p1aoVDzzwAJs2baru6l2S9u7di8lkOqdXWeEjKioKk8lEnz59Sl3/3//+17mPdevWVeLZnJ+zXYOJEydWdxUvKXPmzOGtt96q7mqIyEXKo7orIA6LFy8mLi4ODw8PRowYQfv27TGbzWzfvp0vvviCKVOmkJSURGRkZHVXtdL88ccfmM0X198aYWFhfPzxxy7LXn/9dQ4ePMibb75ZomxZvL29Wb58OUeOHCE8PNxl3ezZs/H29iYvL6/iKl4Jhg0bxg033FBieYcOHSrtmLfeeitDhw7Fy8ur0o5R08yZM4ctW7Ywbty46q6KiFyEFOwuArt372bo0KFERkby448/Uq9ePZf1r776Ku+9995FF3pOlZ2djZ+f3wXt42L85e3n58ctt9zisuzTTz8lPT29xPIz6dq1K2vXrmXu3Lk89NBDzuUHDx7k559/ZtCgQcyfP7/C6l0ZOnbsWK5zrggWiwWLxXLGMoZhkJeXh4+PTxXVSkTk4nXxJoVLyGuvvUZ2djbTp08vEeoAPDw8GDt2LBERES7Lt2/fzk033URISAje3t507tyZhQsXupQp7qO0atUqHn74YcLCwvDz82PQoEEcO3asxLG+/fZbunfvjp+fHwEBAfTr14+tW7e6lBk5ciT+/v7s3r2bG264gYCAAEaMGAHAzz//zM0330yjRo3w8vIiIiKC8ePHk5ube9brcHofu3O97Xku1wFg69atXHPNNfj4+NCwYUNeeukl7Hb7WetVEby9vfnHP/7BnDlzXJZ/8skn1KpVi759+5bYZtOmTYwcOZLGjRvj7e1NeHg4d955J6mpqc4yZ7tNeqrffvuN2NhYgoKC8PX1pWfPnqxatapCzzMqKor+/fuzcuVKrrjiCry9vWncuDGzZs1yllm3bh0mk4mZM2eW2H7JkiWYTCYWL14MlN7HrvgYS5YsoXPnzvj4+DBt2jQA9uzZw80330xISAi+vr5cddVVfP311y7HiI+Px2Qy8dlnn/Hyyy/TsGFDvL29ufbaa9m1a5dL2V69etGmTRs2bdpEz5498fX1JSYmhnnz5gGwYsUKrrzySnx8fGjevDlLly4tcU6HDh3izjvvpG7dunh5edG6dWs++uij86pTr169+Prrr9m3b5/zexwVFXUO3xkRuVSoxe4isHjxYmJiYrjyyivPeZutW7fStWtXGjRowJNPPomfnx+fffYZN954I/Pnz2fQoEEu5R988EFq1arFs88+y969e3nrrbcYM2YMc+fOdZb5+OOPuf322+nbty+vvvoqOTk5TJkyhW7durFhwwaXXyBFRUX07duXbt268e9//xtfX18APv/8c3JycrjvvvsIDQ1lzZo1vP322xw8eJDPP/+8XNfl9FugAP/6179ISUnB39+/XNfhyJEj9O7dm6KiIme5999/v0pbeYYPH87f/vY3du/eTZMmTQDHbbWbbroJq9VaovwPP/zAnj17uOOOOwgPD2fr1q28//77bN26lV9//RWTyVTqreLCwkLGjx+Pp6enc9myZcu4/vrr6dSpE88++yxms5np06dzzTXX8PPPP3PFFVectf45OTkcP368xPLg4GA8PP76UbJr1y5uuukmRo0axe23385HH33EyJEj6dSpE61bt6Zz5840btyYzz77jNtvv91lX3Pnzi0z6J7qjz/+YNiwYdx7773cfffdNG/enKNHj9KlSxdycnIYO3YsoaGhzJw5k7///e/MmzevxP+JiRMnYjabefTRR8nMzOS1115jxIgR/Pbbby7l0tPT6d+/P0OHDuXmm29mypQpDB06lNmzZzNu3DhGjx7N8OHDmTRpEjfddBMHDhwgICAAgKNHj3LVVVdhMpkYM2YMYWFhfPvtt4waNYoTJ06UuJ16tjr93//9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L6ZNm0ZycnKJ8qVNY3I2ffv2JTAwkFdeeYXCwsLz2mdxa8Op9TUMg//85z/lrg/A9OnTmTZtGu+++26pgbc81+GGG27g119/Zc2aNS7rZ8+efV51O12rVq3o06eP89WpU6cyy9511108++yzvP7662WWKe1aAqU+ceD5559nyZIlfPLJJ6XeouzUqRNNmjTh3//+d6m3/M/n81IRWrZsSdu2bZk7dy5z586lXr169OjR47z3d8MNN7BmzRp++eUX57Ls7Gzef/99oqKiSvQFrGwWi4XBgwczf/78Ulvkz/e6+/n5nXe3BhFxf2qxuwg0bdqUOXPmMGzYMJo3b+588oRhGCQlJTFnzhzMZrNLn7Z3332Xbt260bZtW+6++24aN27M0aNH+eWXXzh48CAbN24sVx0CAwOZMmUKt956Kx07dmTo0KGEhYWxf/9+vv76a7p27co777xzxn20aNGCJk2a8Oijj3Lo0CECAwOZP3/+efUPOn78OPfffz+tWrXCy8uL//3vfy7rBw0ahJ+f3zlfh8cff5yPP/6Y2NhYHnroIed0J5GRkVX+uLbIyEiee+65M5YJDAykR48evPbaaxQWFtKgQQO+//57kpKSXMpt3ryZF198kR49epCSklLiOt1yyy2YzWY++OADrr/+elq3bs0dd9xBgwYNOHToEMuXLycwMJBFixadtd7r168vsX9wtAheffXVZz/xUsTFxfHMM8/g7e3NqFGjLmgS7ieffJJPPvmE66+/nrFjxxISEsLMmTNJSkpi/vz51TLB98SJE1m+fDlXXnkld999N61atSItLY3169ezdOlS0tLSyr3PTp06MXfuXB5++GEuv/xy/P39GTBgQCXUXkRqIgW7i8TAgQPZvHkzr7/+Ot9//z0fffQRJpOJyMhI+vXrx+jRo2nfvr2zfKtWrVi3bh3PP/88M2bMIDU1lTp16tChQweXW3flMXz4cOrXr8/EiROZNGkS+fn5NGjQgO7du3PHHXecdXur1cqiRYsYO3YsEyZMwNvbm0GDBjFmzBiXup+LrKws8vLySExMdI6CPVVSUhJ+fn7nfB3q1avH8uXLefDBB5k4cSKhoaGMHj2a+vXrOzvvX2zmzJnDgw8+yLvvvothGPztb3/j22+/pX79+s4yqampGIbBihUrWLFiRYl9FN8e7tWrF7/88gsvvvgi77zzDllZWYSHh3PllVdy7733nlN9PvnkE+eI3lPdfvvtFxTs/vWvf5GTk3NOo2HPpG7duqxevZonnniCt99+m7y8PNq1a8eiRYvo16/fBe37Quq0Zs0aXnjhBb744gvee+89QkNDad26Na+++up57fP+++8nISGB6dOn8+abbxIZGalgJyJOJkO9ckVERETcgvrYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm/Co7gqIiIjURDabjcLCwuquhrg5q9WKxWI55/IKdiIiIuVgGAZHjhwhIyOjuqsil4jg4GDCw8MxmUxnLatgJyIiUg7Foa5OnTr4+vqe0y9bkfNhGAY5OTmkpKQAUK9evbNuo2AnIiJyjmw2mzPUhYaGVnd15BLg4+MDQEpKCnXq1DnrbVkNnhARETlHxX3qfH19q7kmcikp/rydS59OBTsREZFy0u1XqUrl+bwp2ImIiIi4CQU7ERERETehYCciIlKFCgoKLmj9hThy5AgPPvggjRs3xsvLi4iICAYMGMCPP/5YaceUqqVgJyIiUkXmzp1L27ZtOXDgQKnrDxw4QNu2bZk7d26FH3vv3r106tSJZcuWMWnSJDZv3sx3331H7969eeCBByr8eFI9FOxERESqQEFBAc888ww7duygV69eJcLdgQMH6NWrFzt27OCZZ56p8Ja7+++/H5PJxJo1axg8eDDNmjWjdevWPPzww/z666/s3bsXk8lEQkKCc5uMjAxMJhPx8fHOZVu2bOH666/H39+funXrcuutt3L8+PEKraucPwU7ERGRKuDp6cnSpUtp3Lgxe/bscQl3xaFuz549NG7cmKVLl+Lp6Vlhx05LS+O7777jgQcewM/Pr8T64ODgc9pPRkYG11xzDR06dGDdunV89913HD16lCFDhlRYXeXCKNiJiIhUkYiICOLj413C3erVq11CXXx8PBERERV63F27dmEYBi1atLig/bzzzjt06NCBV155hRYtWtChQwc++ugjli9fzo4dOyqotnIh9OQJERGRKlQc7orDXNeuXQEqLdSB49FUFWHjxo0sX74cf3//Eut2795Ns2bNKuQ4cv4U7ERERKpYREQEH3/8sTPU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7duXp556ipEjRzqXZ2Vlce+99zJ27NgS2zRq1IgdO3acdd979+6lf//+3Hfffbz88suEhISwcuVKRo0aRUFBQbkGR4wYMYKePXuSkpLCDz/8gI+PD7Gxsc66Anz99dc0aNDAZTsvL69zPoa7UbATERGpAoGBYDafW7gzmx3lK9PEiRO57LLLaN78r+f0duzYkcTERGJiYkrdpnnz5hQVFbFhwwY6deoEOFrOTh1l+/vvv2O323n99dcxmx1d+T/77DOX/Xh6emKz2c5axy5duhAREcHcuXP59ttvufnmm7FarQC0atUKLy8v9u/fT8+ePct38m5MwU5ERKQK+PjAwIGO0a+nD5w4lYeHo1xltdYVa9u2LSNGjGDy5MnOZU888QRXXXUVY8aM4a677sLPz4/ExER++OEH3nnnHVq0aEGfPn245557mDJlClarlUceeQQfHx/nXHgxMTEUFhby9ttvM2DAAFatWsXU04b6RkVFkZWVxY8//kj79u3x9fUtsyVv+PDhTJ06lR07drB8+XLn8oCAAB599FHGjx+P3W6nW7duZGZmsmrVKgIDA7n99tsr4apd/DQqVkREpIo8/DCcraHKZoPx46umPi+88AL2U5oQ27Vrx4oVK9ixYwfdu3enQ4cOPPPMM9SvX99ZZtasWdStW5cePXowaNAg7r77bgICApzPMG3fvj1vvPEGr776Km3atGH27Nklplfp0qULo0ePJi4ujrCwMF577bUy6zhixAgSExNp0KABXbt2dVn34osv8vTTTzNhwgRatmxJbGwsX3/9NdHR0RVxeWokk2EYRnVXQkREpCYoz8PYyzJ1qmNKE4vFteXOw8MR6t57D0aPrqAKV4GDBw8SERHB0qVLufbaa6u7Om6pPJ87tdiJiIhUodGj4eefHbdb/+yChtnseP/zzxd/qFu2bBkLFy4kKSmJ1atXM3ToUKKioujRo0d1V01QHzsREZEq17Wr45Wb6xj9GhhY+X3qKkphYSH//Oc/2bNnDwEBAXTp0oXZs2c7BzVI9VKwExERqSY+PjUn0BXr27cvffv2re5qSBl0K1ZERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3IRGxYqIiFSyfSf2kV2YXe7t/Kx+RAZGVkKNxF0p2ImIiFSifSf20f/L/ue9/eJBixXu5JzpVqyIiEglOp+Wuorc/nS//PILFouFfv36Veh+z9XevXsxmUwkJCRUy/HdnYKdiIjIJeTDDz/kwQcf5KeffuLw4cPVXR2pYAp2IiIil4isrCzmzp3LfffdR79+/ZgxY4bL+oULF9K0aVO8vb3p3bs3M2fOxGQykZGR4SyzcuVKunfvjo+PDxEREYwdO5bs7L9aFaOionjllVe48847CQgIoFGjRrz//vvO9dHR0QB06NABk8lEr169KvOULzkKdiIiIpeIzz77jBYtWtC8eXNuueUWPvroIwzDACApKYmbbrqJG2+8kY0bN3Lvvffyf//3fy7b7969m9jYWAYPHsymTZuYO3cuK1euZMyYMS7lXn/9dTp37syGDRu4//77ue+++/jjjz8AWLNmDQBLly4lOTmZL774ogrO/NKhYCciInKJ+PDDD7nlllsAiI2NJTMzkxUrVgAwbdo0mjdvzqRJk2jevDlDhw5l5MiRLttPmDCBESNGMG7cOJo2bUqXLl2YPHkys2bNIi8vz1nuhhtu4P777ycmJoYnnniC2rVrs3z5cgDCwsIACA0NJTw8nJCQkCo480uHgp2IiMgl4I8//mDNmjUMGzYMAA8PD+Li4vjwww+d6y+//HKXba644gqX9xs3bmTGjBn4+/s7X3379sVut5OUlOQs165dO+e/TSYT4eHhpKSkVNapySk03YmIiMgl4MMPP6SoqIj69es7lxmGgZeXF++888457SMrK4t7772XsWPHlljXqFEj57+tVqvLOpPJhN1uP8+aS3ko2ImIiLi5oqIiZs2axeuvv87f/vY3l3U33ngjn3zyCc2bN+ebb75xWbd27VqX9x07diQxMZGYmJjzrounpycANpvtvPchZVOwExERcXOLFy8mPT2dUaNGERQU5LJu8ODBfPjhh3z22We88cYbPPHEE4waNYqEhATnqFmTyQTAE088wVVXXcWYMWO466678PPzIzExkR9++OGcW/3q1KmDj48P3333HQ0bNsTb27tEneT8qY+diIiIm/vwww/p06dPqQFq8ODBrFu3jpMnTzJv3jy++OIL2rVrx5QpU5yjYr28vABH37kVK1awY8cOunfvTocOHXjmmWdcbu+ejYeHB5MnT2batGnUr1+fgQMHVsxJCgAmo3ics4iIiJxRXl4eSUlJREdH4+3tfU7bJKYmErc47ryPObf/XFqF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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1UUlEQVR4nO3dd3hUZf7+8feZmfRKQkIoIQm9dwsoRUUBkS+wrCKiAqKuCovCuqvsb1dX3RXUtSwWxEZREVRUEAUEaYKFZuhICxBqCOk9mTm/P8YMDEmAQDIh4X5d11yQUz/nMGTuec5znmOYpmkiIiIiIh5hqeoCRERERK4kCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNmzMAwDA4cOODR/cqF0b+PiNR0Cl9VLCEhgbFjx9KsWTP8/f3x9/enVatWjBkzhi1btlR1eVekAwcOYBjGBb3KCgixsbEYhkHv3r1Lnf/uu++6trFhw4ZKPJqLc75zMHny5Kou8Yoye/ZsXnvttaouQ0QqiK2qC7iSLVy4kKFDh2Kz2Rg+fDjt27fHYrGwa9cuvvjiC6ZOnUpCQgIxMTFVXWql+e2337BYLq/vABEREXz44Ydu015++WUOHz7Mq6++WmLZsvj6+rJixQqOHz9OVFSU27yPP/4YX19f8vLyKq7wSjBs2DBuvfXWEtM7duxYafu85557uPPOO/Hx8am0fVQ3s2fPZtu2bTz22GNVXYqIVACFryqyb98+7rzzTmJiYvj++++pW7eu2/wXXniBt95667ILJmfKzs4mICDgkrZxOX7ABgQEcPfdd7tNmzNnDqmpqSWmn8t1113H+vXrmTt3Lo8++qhr+uHDh/nhhx8YPHgw8+bNq7C6K0OnTp3KdcwVwWq1YrVaz7mMaZrk5eXh5+fnoapERCrO5fvJXsO9+OKLZGdnM3369BLBC8BmszFu3Diio6Pdpu/atYs//vGPhIWF4evrS5cuXViwYIHbMsV9ZtauXcuECROIiIggICCAwYMHc/LkyRL7WrRoEd27dycgIICgoCD69+/P9u3b3ZYZOXIkgYGB7Nu3j1tvvZWgoCCGDx8OwA8//MDtt99Ow4YN8fHxITo6mvHjx5Obm3ve83B2n68LvcR3IecBYPv27dx44434+fnRoEED/v3vf+NwOM5bV0Xw9fXlD3/4A7Nnz3ab/sknn1CrVi369OlTYp0tW7YwcuRIGjVqhK+vL1FRUdx3332cOnXKtcz5Lgme6ZdffqFv376EhITg7+9Pz549Wbt2bYUeZ2xsLLfddhtr1qzh6quvxtfXl0aNGjFr1izXMhs2bMAwDGbOnFli/SVLlmAYBgsXLgRK7/NVvI8lS5bQpUsX/Pz8mDZtGgD79+/n9ttvJywsDH9/f6699lq++eYbt32sXLkSwzD49NNP+c9//kODBg3w9fXlpptuYu/evW7L9urVizZt2rBlyxZ69uyJv78/TZo04fPPPwdg1apVXHPNNfj5+dG8eXOWLVtW4piOHDnCfffdR506dfDx8aF169Z88MEHF1VTr169+Oabbzh48KDr3zg2NvYC/mVE5HKllq8qsnDhQpo0acI111xzwets376d6667jvr16/Pkk08SEBDAp59+yqBBg5g3bx6DBw92W/7Pf/4ztWrV4umnn+bAgQO89tprjB07lrlz57qW+fDDDxkxYgR9+vThhRdeICcnh6lTp3L99dfz66+/uv2SLyoqok+fPlx//fX897//xd/fH4DPPvuMnJwcHn74YcLDw1m3bh2vv/46hw8f5rPPPivXeTn7ch/AP/7xD5KSkggMDCzXeTh+/Dg33HADRUVFruXeeecdj7aW3HXXXdxyyy3s27ePxo0bA85LSH/84x/x8vIqsfzSpUvZv38/o0aNIioqiu3bt/POO++wfft2fv75ZwzDKPWyaGFhIePHj8fb29s1bfny5fTr14/OnTvz9NNPY7FYmD59OjfeeCM//PADV1999Xnrz8nJITk5ucT00NBQbLbTvz727t3LH//4R0aPHs2IESP44IMPGDlyJJ07d6Z169Z06dKFRo0a8emnnzJixAi3bc2dO7fMMHqm3377jWHDhvGnP/2JBx54gObNm3PixAm6detGTk4O48aNIzw8nJkzZ/J///d/fP755yX+T0yePBmLxcLjjz9Oeno6L774IsOHD+eXX35xWy41NZXbbruNO++8k9tvv52pU6dy55138vHHH/PYY4/x0EMPcdddd/HSSy/xxz/+kcTERIKCggA4ceIE1157LYZhMHbsWCIiIli0aBGjR48mIyOjxKXD89X0//7f/yM9Pd3tsnfx/wURqaZM8bj09HQTMAcNGlRiXmpqqnny5EnXKycnxzXvpptuMtu2bWvm5eW5pjkcDrNbt25m06ZNXdOmT59uAmbv3r1Nh8Phmj5+/HjTarWaaWlppmmaZmZmphkaGmo+8MADbjUcP37cDAkJcZs+YsQIEzCffPLJEjWfWWOxSZMmmYZhmAcPHnRNe/rpp82z33IxMTHmiBEjSqxf7MUXXzQBc9asWeU+D4899pgJmL/88otrWlJSkhkSEmICZkJCQpn7PVv//v3NmJiYC14+JibG7N+/v1lUVGRGRUWZzz33nGmaprljxw4TMFetWuX6d1q/fr1rvdLO5SeffGIC5urVq8vc3yOPPGJarVZz+fLlpmk6z0fTpk3NPn36uL0HcnJyzLi4OPPmm28+Z/0JCQkmUObrp59+cjvWs+tLSkoyfXx8zL/85S+uaRMnTjS9vLzMlJQU17T8/HwzNDTUvO+++1zTis/Lmf8+xftYvHixW53F/8Y//PCDa1pmZqYZFxdnxsbGmna73TRN01yxYoUJmC1btjTz8/Ndy/7vf/8zAXPr1q2uaT179jQBc/bs2a5pu3btMgHTYrGYP//8s2v6kiVLTMCcPn26a9ro0aPNunXrmsnJyW613nnnnWZISIjr37g8NZX3/ScilzdddqwCGRkZQOnfXnv16kVERITr9eabbwKQkpLC8uXLueOOO8jMzCQ5OZnk5GROnTpFnz592LNnD0eOHHHb1oMPPuh2Gap79+7Y7XYOHjwIOFtZ0tLSGDZsmGt7ycnJWK1WrrnmGlasWFGivocffrjEtDNbkrKzs0lOTqZbt26Ypsmvv/56EWfIacWKFUycOJE///nP3HPPPeU+D99++y3XXnutWwtPRESE63KpJ1itVu644w4++eQTwNnRPjo6mu7du5e6/JnnMi8vj+TkZK699loANm3aVOo6s2bN4q233uLFF1/khhtuACA+Pp49e/Zw1113cerUKdd5ys7O5qabbmL16tUXdPn1wQcfZOnSpSVerVq1cluuVatWbscUERFB8+bN2b9/v2va0KFDKSws5IsvvnBN++6770hLS2Po0KHnrSUuLq5E69i3337L1VdfzfXXX++aFhgYyIMPPsiBAwfYsWOH2/KjRo1yax0srvnMOou3ceedd7p+bt68OaGhobRs2dKttbr478Xrm6bJvHnzGDBgAKZpuv2/6tOnD+np6SX+HS+0JhGpOXTZsQoUX57IysoqMW/atGlkZmZy4sQJt47Oe/fuxTRN/vnPf/LPf/6z1O0mJSVRv359188NGzZ0m1+rVi3AeUkFYM+ePQDceOONpW4vODjY7WebzUaDBg1KLHfo0CGeeuopFixY4Np2sfT09FK3fT6HDx9m6NChXHfddbzyyiuu6eU5DwcPHiz1sm7z5s0vqqazpaenu/Vr8/b2JiwsrMRyd911F1OmTGHz5s3Mnj2bO++8s0TfrGIpKSk888wzzJkzh6SkpBL7O1t8fDwPPfQQw4YNY8KECa7pxf+2Z1/iO3t7xe+JsjRt2rTM4TLOdPZ7DZzvtzPfD+3bt6dFixbMnTuX0aNHA85LjrVr1y7zPXimuLi4EtPK+jdu2bKla36bNm3KrPPs/xPFGjRoUOLfKCQkpEQfzJCQELf1T548SVpaGu+88w7vvPNOqcdx9r/rhdYkIjWHwlcVCAkJoW7dumzbtq3EvOIPkrPHjypupXj88cfL7BvTpEkTt5/LumPMNE23bX744YclhkIA3Pr0gPPOxLPvvrTb7dx8882kpKTwxBNP0KJFCwICAjhy5AgjR468qM7tBQUF/PGPf8THx4dPP/3UrY6LOQ+V5dFHH3XrQN6zZ09WrlxZYrlrrrmGxo0b89hjj5GQkMBdd91V5jbvuOMOfvzxR/7617/SoUMHAgMDcTgc9O3bt8S5TE1NZciQITRr1oz33nvPbV7xsi+99BIdOnQodV8V2W/ofO+1YkOHDuU///kPycnJBAUFsWDBAoYNG1bivVaaiuird6F1lrXchf6fuvvuu8sMvu3atbuomkSk5lD4qiL9+/fnvffeY926dRfU8blRo0YAeHl5XVBLxIUo7gAeGRl50dvcunUru3fvZubMmdx7772u6UuXLr3ousaNG0d8fDyrV6+mTp06bvPKcx5iYmJcLUBn+u233y66tjP97W9/c2udPFcr0rBhw/j3v/9Ny5YtywxDqampfP/99zzzzDM89dRTrumlHYPD4WD48OGkpaWxbNky180PxYr/bYODgyvs/VIRhg4dyjPPPMO8efOoU6cOGRkZbpf3yismJqbUf89du3a55ntSREQEQUFB2O32Cj3vZbWUikj1pD5fVeRvf/sb/v7+3HfffZw4caLE/LO/9UZGRtKrVy+mTZvGsWPHSixf2hAS59OnTx+Cg4N5/vnnKSwsvKhtFn9rP7Ne0zT53//+V+56AKZPn860adN48803Sw2l5TkPt956Kz///DPr1q1zm//xxx9fVG1na9WqFb1793a9OnfuXOay999/P08//TQvv/xymcuUdi6BUkc2f+aZZ1iyZAmffPJJqZfjOnfuTOPGjfnvf/9b6uXti3m/VISWLVvStm1b5s6dy9y5c6lbty49evS46O3deuutrFu3jp9++sk1LTs7m3feeYfY2NgSfdMqm9VqZciQIcybN6/Ulu2LPe8BAQEXfQlfRC4/avmqIk2bNmX27NkMGzaM5s2bu0a4N02ThIQEZs+ejcVicetj9eabb3L99dfTtm1bHnjgARo1asSJEyf46aefOHz4MJs3by5XDcHBwUydOpV77rmHTp06ceeddxIREcGhQ4f45ptvuO6663jjjTfOuY0WLVrQuHFjHn/8cY4cOUJwcDDz5s27qP4qycnJPPLII7Rq1QofHx8++ugjt/mDBw8mICDggs/D3/72Nz788EP69u3Lo48+6hpqIiYmxuOPboqJieFf//rXOZcJDg6mR48evPjiixQWFlK/fn2+++47EhIS3JbbunUrzz33HD169CApKanEebr77ruxWCy899579OvXj9atWzNq1Cjq16/PkSNHWLFiBcHBwXz99dfnrXvTpk0ltg/OlrWuXbue/8BLMXToUJ566il8fX0ZPXr0JQ0k/OSTT/LJJ5/Qr18/xo0bR1hYGDNnziQhIYF58+ZVySDFkydPZsWKFVxzzTU88MADtGrVipSUFDZt2sSyZctISUkp9zY7d+7M3LlzmTBhAldddRWBgYEMGDCgEqoXEU9Q+KpCAwcOZOvWrbz88st89913fPDBBxiGQUxMDP379+ehhx6iffv2ruVbtWrFhg0beOaZZ5gxYwanTp0iMjKSjh07ul2mKo+77rqLevXqMXnyZF566SXy8/OpX78+3bt3Z9SoUedd38vLi6+//ppx48YxadIkfH19GTx4MGPHjnWr/UJkZWWRl5fHjh07XHc3nikhIYGAgIALPg9169ZlxYoV/PnPf2by5MmEh4fz0EMPUa9ePVeH78vN7Nmz+fOf/8ybb76JaZrccsstLFq0iHr16rmWOXXqFKZpsmrVKlatWlViG8WXQnv16sVPP/3E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iIiUYs0a+MMfIDAQoqKcf/7hD7B2beXu19fXlxdeeIHU1NTK3dFFioiIwN/fv6rLqNYUvkRERM4ydSr06AFff+18rCM4//z6a+je3fnc7crSu3dvoqKimDRpUpnLrFmzhu7du+Pn50d0dDTjxo0jOzvbNf/YsWP0798fPz8/4uLimD17donLha+88gpt27YlICCA6OhoHnnkEbKysgDnc5tHjRpFeno6hmFgGAb/+te/APfLjnfddRdDhw51q62wsJDatWsza9YsABwOB5MmTSIuLg4/Pz/at2/P559/XgFnqvpS+BIRETnDmjUwZgyYJhQVuc8rKnJOf+SRymsBs1qtPP/887z++uscPny4xPx9+/bRt29fhgwZwpYtW5g7dy5r1qxh7NixrmXuvfdejh49ysqVK5k3bx7vvPMOSUlJbtuxWCxMmTKF7du3M3PmTJYvX87f/vY3ALp168Zrr71GcHAwx44d49ixYzz++OMlahk+fDhff/21K7QBLFmyhJycHAYPHgzApEmTmDVrFm+//Tbbt29n/Pjx3H333axatapCzle1ZHpYenq6CZjp6eme3rWIiNQgZX2e5Obmmjt27DBzc3MvaruDB5umzWaazphV+stmM80hQyriKNyNGDHCHDhwoGmapnnttdea9913n2mapvnll1+axR/Zo0ePNh988EG39X744QfTYrGYubm55s6dO03AXL9+vWv+nj17TMB89dVXy9z3Z599ZoaHh7t+nj59uhkSElJiuZiYGNd2CgsLzdq1a5uzZs1yzR82bJg5dOhQ0zRNMy8vz/T39zd//PFHt22MHj3aHDZs2LlPRjVTnvedBlkVERH5XW4uzJ9/+lJjWYqK4MsvnctX1vO2X3jhBW688cYSLU6bN29my5YtfPzxx65ppmnicDhISEhg9+7d2Gw2OnXq5JrfpEkTatWq5badZcuWMWnSJHbt2kVGRgZFRUXk5eWRk5NzwX26bDYbd9xxBx9//DH33HMP2dnZzJ8/nzlz5gCwd+9ecnJyuPnmm93WKygooGPHjuU6HzWJwpeIiMjvMjLOH7yKORzO5SsrfPXo0YM+ffowceJERo4c6ZqelZXFn/70J8aNG1dinYYNG7J79+7zbvvAgQPcdtttPPzww/znP/8hLCyMNWvWMHr0aAoKCsrVoX748OH07NmTpKQkli5dip+fH3379nXVCvDNN99Qv359t/V8fHwueB81jcKXiIjI74KDwWK5sABmsTiXr0yTJ0+mQ4cONG/e3DWtU6dO7NixgyZNmpS6TvPmzSkqKuLXX3+lc+fOgLMF6sy7Jzdu3IjD4eDll1/GYnF2//7000/dtuPt7Y3dbj9vjd26dSM6Opq5c+eyaNEibr/9dry8vABo1aoVPj4+HDp0iJ49e5bv4GswhS8REZHf+fnBwIHOuxrP7mx/JpvNuVxltXoVa9u2LcOHD2fKlCmuaU888QTXXnstY8eO5f777ycgIIAdO3awdOlS3njjDVq0aEHv3r158MEHmTp1Kl5eXvzlL3/Bz8/PNVZYkyZNKCws5PXXX2fAgAGsXbuWt8+6hTM2NpasrCy+//572rdvj7+/f5ktYnfddRdvv/02u3fvZsWKFa7pQUFBPP7444wfPx6Hw8H1119Peno6a9euJTg4mBEjRlTCWbv86W5HERGRM0yYAOdr8LHbYfx4z9Tz7LPP4jijKa5du3asWrWK3bt30717dzp27MhTTz1FvXr1XMvMmjWLOnXq0KNHDwYPHswDDzxAUFAQvr6+ALRv355XXnmFF154gTZt2vDxxx+XGNqiW7duPPTQQwwdOpSIiAhefPHFMmscPnw4O3bsoH79+lx33XVu85577jn++c9/MmnSJFq2bEnfvn355ptviIuLq4jTUy0ZpmmantxhRkYGISEhpKenE1zZ7bUiIlJjlfV5kpeXR0JCAnFxca6wUV5vv+0cTsJqdW8Bs9mcweutt+Chhy71CDzn8OHDREdHs2zZMm666aaqLqdGKs/7Ti1fIiIiZ3noIfjhB+elxd+7RGGxOH/+4YfLP3gtX76cBQsWkJCQwI8//sidd95JbGwsPXr0qOrSBPX5EhERKdV11zlfubnOuxqDgyu/j1dFKSws5O9//zv79+8nKCiIbt268fHHH7s6wkvVUvgSERE5Bz+/6hO6ivXp04c+ffpUdRlSBl12FBEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEg3e0oIiICHMw4SHZhdrnXC/AKICY4phIqkppK4UtERK54BzMOctuXt130+gsHL1QAkwumy44iInLFu5gWr4pc/2w//fQTVquV/v37V+h2L9SBAwcwDIP4+Pgq2X9Np/AlIiJymXn//ff585//zOrVqzl69GhVlyMVTOFLRETkMpKVlcXcuXN5+OGH6d+/PzNmzHCbv2DBApo2bYqvry833HADM2fOxDAM0tLSXMusWbOG7t274+fnR3R0NOPGjSM7+3TrXGxsLM8//zz33XcfQUFBNGzYkHfeecc1Py4uDoCOHTtiGAa9evWqzEO+4ih8iYiIXEY+/fRTWrRoQfPmzbn77rv54IMPME0TgISEBP74xz8yaNAgNm/ezJ/+9Cf+3//7f27r79u3j759+zJkyBC2bNnC3LlzWbNmDWPHjnVb7uWXX6ZLly78+uuvPPLIIzz88MP89ttvAKxbtw6AZcuWcezYMb744gsPHPmVQ+FLRETkMvL+++9z9913A9C3b1/S09NZtWoVANOmTaN58+a89NJLNG/enDvvvJORI0e6rT9p0iSGDx/OY489RtOmTenWrRtTpkxh1qxZ5OXluZa79dZbeeSRR2jSpAlPPPEEtWvXZsWKFQBEREQAEB4eTlRUFGFhYR448iuHwpeIiMhl4rfffmPdunUMGzYMAJvNxtChQ3n//fdd86+66iq3da6++mq3nzdv3syMGTMIDAx0vfr06YPD4SAhIcG1XLt27Vx/NwyDqKgokpKSKuvQ5AwaakJEROQy8f7771NUVES9evVc00zTxMfHhzfeeOOCtpGVlcWf/vQnxo0bV2Jew4YNXX/38vJym2cYBg6H4yIrl/JQ+BIREbkMFBUVMWvWLF5++WVuueUWt3mDBg3ik08+oXnz5nz77bdu89avX+/2c6dOndixYwdNmjS56Fq8vb0BsNvtF70NKZvCl4iIyGVg4cKFpKamMnr0aEJCQtzmDRkyhPfff59PP/2UV155hSeeeILRo0cTHx/vuhvSMAwAnnjiCa699lrGjh3L/fffT0BAADt27GDp0qUX3HoWGRmJn58fixcvpkGDBvj6+paoSS6e+nyJiIhcBt5//3169+5dasgZMmQIGzZsIDMzk88//5wvvviCdu3aMXXqVNfdjj4+PoCzL9eqVavYvXs33bt3p2PHjjz11FNulzLPx2azMWXKFKZNm0a9evUYOHBgxRykAGCYxfevekhGRgYhISGkp6cTHBzsyV2LiEgNUtbnSV5eHgkJCcTFxeHr63tB29pxagdDFw696Frm3jaXVuGtLnr9S/Gf//yHt99+m8TExCrZvziV532ny44iIiLV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RETkiudl8cJqsVJkFp1/4TPYTef4X16WC7tUeSl27txJXFxcqfM6depEQkICixYtYtmyZdxxxx307t2bzz///JzbDAgIKDFtwIABxMTE8O6771KvXj0cDgdt2rRxdYD386u8Fr7S6inLqlWrGDBgAK+++ir33nvvOZft168fBw8e5Ntvv2Xp0qXcdNNNjBkzhv/+979kZWXRuXPnUu+YLE8QLA+1fImIyBXP1+pLdFA0aflp5VovNT+V6KBofK2ldw6vKMuXL2fr1q0lLgmeKTg4mKFDh/Luu+8yd+5c5s2bR0pKCgBeXl7Y7fbz7ufUqVP89ttv/OMf/+Cmm26iZcuWpKamui3Trl074uPjXds+m7e3d4l9tWzZ0q0fGsCOHTtIS0ujVatW563rbCtXrqR///688MILPPjggxe0TkREBCNGjOCjjz7itdde45133gGcwXXPnj1ERkbSpEkTt1dISEiZx3QpFL5EROSKZxgGnep0wjRNCu0XdgmxwF4AJnSu07lCO9vn5+dz/Phxjhw5wqZNm3j++ecZOHAgt912W5ktPK+88gqffPIJu3btYvfu3Xz22WdERUURGhoKOPs4ff/99xw/frxEmDpTrVq1CA8P55133mHv3r0sX76cCRMmuC0zbNgwoqKiGDRoEGvXrmX//v3MmzePn376ybWvhIQE4uPjSU5OJj8/n969e9O2bVuGDx/Opk2bWLduHffeey89e/Z09cO6UCtWrKB///6MGzeOIUOGcPz4cY4fP15mGAR46qmnmD9/Pnv37mX79u0sXLjQ1UF/+PDh1K5dm4EDB/LDDz+QkJDAypUrGTduHIcPH3Yd05YtW/jtt99ITk6msPDSLjMrfImIiAAtwloQHRTNwcyDmKZ5zmVN0+RQ5iGig6JpHta8QutYvHgxdevWJTY2lr59+7JixQqmTJnC/Pnzy7wDMCgoiBdffJEuXbpw1VVXceDAAb799lssFufH/Msvv8zSpUuJjo6mY8eOZe7bYrEwZ84cNm7cSJs2bRg/fjwvvfSS2zLe3t589913REZGcuutt9K2bVsmT57sqm3IkCH07duXG264gYiICD755BMMw2D+/PnUqlWLHj160Lt3bxo1asTcuXPLfX5mzpxJTk4OkyZNom7duq7XH/7whzLX8fb2ZuLEibRr144ePXpgtVqZM2cOAP7+/qxe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XK24yqlTRKQM5Q5fWVlZxMfHEx8fD0BCQgLx8fEcOqSRomu68EAfOkSHcjIr/5L7a/l6WejYUJd75CLU6wj+4c7HBBVrGwuPDXT+/ewWsOKfHxvoPtBqxhGIaA5hesyViHhWue923LBhAzfccIPr5wkTJgAwYsQIZsyYUWGFyeWpe7MIthxOJzkr//wLn0PLusHEhQecf0GRswVGQOObYOunzv5att8vXf/fNdAoyjmcxNod7iPc3369e/DKTnbe6disL1h0AUBEPKvc4atXr14aGPMKVj/Uj75tonh//Z5L2s71TWpj0SVHuVhNb4aTu5wj1NduDtbf+3G1iXG+8guddzUG+J7u41UsPwOyT0CrgVCntedrF5Ernr7ySbld36Q2vZpe2pAhdYNDK6YYuTJ5+0OXURDREpJ/cz7v8Uw+XhAW5B68TNP5WKL0I86Ws5YD9UxHEakShunhZqyMjAxCQkJIT0/XnY/VmMNhMn/HZpb/lsiprHyCfb0I9vPC64z+NiYmeQV2UnIKcJgmTSOD6NU8koa1ahETHHOOrYtcoJwU2PYFHPrReediYB3wDQbjjO+V9kLITYHsk+AXBs37QZPeYNPgvtWdPk+kulL4kkuSlJHHL/tTWH8whZTsAoocptv4l35eVmJrB3BNXBidYmq5hTORCuFwwLFf4cBa56XI/CxOD5xqOFu3/EKhwdUQex3Uiq26WqVC6fNEqiuFL6kQ2flFHE3LJSkzn9wCOxYLhPh5UyfYh3ohfurfJZWv+LJi5jHIPgWm3Tkga2Ad59hgGky1xtHniVRXlf5sR7kyBPjYaFoniKZ1gs6/sEhlMAwIrud8iYhcxnQNSERERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPMhW1QVIzZCZV8jh1FxOZuaTW2jHYhiE+ntRJ8iX+rX8sFqMqi5RajrThIwjkHEMcpLBYQebDwRGQkg0+IdVdYUiIoDCl1yi4+l5/LT/FBsPppCaXYDddE43ABPw87LQMCyAaxqF0SUmDG+bGlulgjnscGQTHPgBkndDQbb7fMMA31Co3xlir4fwxlVSpohIMYUvuSgOh8mP+06xaNsxTmbmExbgTWx4ADbr6XBlmiY5BXYSkrPZk5RJfGIaAzvUp36oXxVWLjVK9inY9jkc+tn5c2AdCGnoDFzFHHbITYG9SyFxHTTvC037gM27amoWkSuewpeUm91hsnDLUZbuOIGvzUqLqCAMo+RlRcMwCPCxEedjI6/QzpbEdE5m5nNv11jiagdUQeVSo2Qeh1/egZO7oFYs+ASVvpzFCgER4F8bsk7Alk8h8wR0usd5WVJExMN0DUjK7Yc9J/lu+wnCArypX8uv1OB1Nl8vK00jAzmRnsfsXw5yKivfA5VKjVWQAxumw6ndENmy7OB1JsOAoChn/6/9K2Hbl85+YiIiHqbwJeVyODWHJduOE+BjpZZ/6ZdtrPl5+KcmY83Pc5tusRg0igjk0Kkcvt16DIdDH3xykXYvgRPbILwpWEo24Ofm2ziR4k9ufimN+z5BzhC2fzkc3+qBYkVE3F3UZcc333yTl156iePHj9O+fXtef/11rr766oquTS5Dq3ef5FR2AS2iSrY01Nu2gU7zZtD4p++xOBw4LBb2db2JTX8cxdHWnQGwWgzq1fJj48FUujauTZPIQE8fglR3WUnO4BQQAVb3LwBrtjbglc+uZv6PTXE4LFgsDgZ228Nf7viF69ocOb2gfzhkJztDXJ02YNH3UBHxnHL/xpk7dy4TJkzg6aefZtOmTbRv354+ffqQlJRUGfXJZSQ5K58th9OJDPIpcamx3dezuWPC3TT6eTkWhwMAi8NBo5+Xc8f44bRb+Ilr2WBfL3IL7fx6KNWj9UsNcfRXyElxhq8zTJ3fkR6P3s3XPzXB4XD+anM4LHz9UxO6j7uHtxd0dN9OcD3n3ZEp+zxVuYgIcBHh65VXXuGBBx5g1KhRtGrVirfffht/f38++OCDyqhPLiOHUnJIzy2kVoB7a0O9bRu48fVnMTCx2u1u86x2OwYmN055hnrbN7qmh/p5s+NYBnZdepTyOrENbH5gnP71tWZrA8b8rw8mBkV2q9viRXYrJgaPvNaHtdvqn57hEwRFuZB6wEOFi4g4lSt8FRQUsHHjRnr37n16AxYLvXv35qeffqrw4uTykpTh7CRvOavVq9O8GTis534rOawWOs6b4fo5wMdKZm6hOt5L+RTmQfrhEh3sX/nsaqxWxzlXtVodvPrZWd0jDCukHaroKkVEzqlcfb6Sk5Ox2+3UqVPHbXqdOnXYtWtXqevk5+eTn3/6AzYjI+MiypTLQVZ+UYlp1vw8Vx+vc7Ha7TT5cRnW/DzsPr542ywU2B1kF9jPuZ6Im8IcsBeC9+mhSnLzba4+XudSZLfy5dpm5Obb8PP5/b1s83WOASYi4kGV3st00qRJhISEuF7R0dGVvUupJKUNKOGTk3Xe4FXM4nDgk5Pl/MEEAwM9dUguyhlXqzOyvc8bvIo5HBYyss+4bG6aztYvEREPKlf4ql27NlarlRMnTrhNP3HiBFFRUaWuM3HiRNLT012vxMTEi69WqlSovxfmWeMi5fsH4rjAO8UcFgv5/s67G3ML7fh4WQj29arwOqUG8wkGL39nX63fBQcUYLFc4BcAi4PggILTE4rynKPii4h4ULnCl7e3N507d+b77793TXM4HHz//fd07dq11HV8fHwIDg52e0n1VCfYF4vFoMh++oPO7uPLvq43Ybeeu/XAbrWyt1tv7D6+gPMSZq0Ab0L9Fb6kHKw252j2+ae7L/j5FDGw2x5s1nNfwrZZ7Qy+bvfpS46mCabDedejiIgHlfuy44QJE3j33XeZOXMmO3fu5OGHHyY7O5tRo0ZVRn1yGYmtHUBEoA8nz+okv2nISCz2c7c8WOwOfh0yEnA+8zErr4iO0aEXNDq+iJuots7nNTpO90GccPs67PZz/zqz2y2Mv33d6Qm5qeAbAhHNK6tSEZFSlTt8DR06lP/+97889dRTdOjQgfj4eBYvXlyiE77UPIE+Nq6KDSMtp5CiM/p5HW3TheXjnsbEKNECZrc6b/NfPu5p10CryVkFhPp70T461JPlS01Rr4OztSr9sGvS9W0P89ZjSzAwS7SA2azO4U7eemzJ6YFWTRMyj0Ld9mr5EhGPM8yzO/FUsoyMDEJCQkhPT9clyGooPaeQN1bs4XhGHnHhAW4tV/W2b6TjvBk0+XGZa4T7vd168+uQka7glV9k50ByNgM71Kdf27pVdRhS3SX8ABveh6B6bsNOrN1Wn1c/u5ov1zZzjXA/+LrdjL99nfsI92mJzodq9/gLhDSoggOQiqDPE6muFL6k3LYdSWfmjwewO0walPJgbWt+Hj45WeT7B7r6eIEzeO0/mU37BqGM7h6Hr5fuMpOL5LDDhg+cD8iuFec29AQ4h5/IyPYmOKDgdB+vYpnHoSALOt0DjXp5rGSpePo8kepKDzSTcmtTP4ShV0XjZbOwNymL/CL3yzx2H19yatV2BS/TNDmVlU9CcjbtGoQy/NqGCl5yaSxW6DAcYrtD2kHIOOq8lPg7P58i6oTluAcvRxGc2uO8U7LtHyGuZxUULiJykQ/WFukSG0ZYgDcLNh9l94lMLIZBmL83AT42vKwGpukcTiIzr4i0nAKCfG30b1uP3q0i8ffW204qgLc/dLkPwuJg1zeQtN3Zgd43BLwCnI8fchQ5W7lyUsCeB2GNofVgZ18v3ewhIlVElx3lkuQV2tl2JJ11CSkcSskhO7+IQrsDwzDw87IS5GujQ8NadGoYSkx4wPk3KHIxMo7C4Q1w6GfnXYyF2c6WMIvNeUkyuD7EdIP6nUo8mkiqL32eSHWl8CUVwjRNMvOLSMrIJ6/QjmFAqL83EYE+eNt0dVs8xF4E2SchJ9nZL8zm4xxE1a+WWrpqIH2eSHWl6z9SIQzDINjXSyPWS9Wy2iC4rvMlInKZUpOEiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAfZPL1D0zQByMjI8PSuRUSkBin+HCn+XBGpLjwevjIzMwGIjo729K5FRKQGyszMJCQkpKrLELlghunhrwwOh4OjR48SFBSEYRie3PUFycjIIDo6msTERIKDg6u6nGpJ5/DS6RxeGp2/S1cdzqFpmmRmZlKvXj0sFvWikerD4y1fFouFBg0aeHq35RYcHHzZ/sKpLnQOL53O4aXR+bt0l/s5VIuXVEf6qiAiIiLiQQpfIiIiIh6k8HUWHx8fnn76aXx8fKq6lGpL5/DS6RxeGp2/S6dzKFJ5PN7hXkRERORKppYvEREREQ9S+BIRERHxIIUvEREREQ9S+BIRERHxIIWvM7z55pvExsbi6+vLNddcw7p166q6pGpl9erVDBgwgHr16mEYBl999VVVl1StTJo0iauuuoqgoCAiIyMZNGgQv/32W1WXVa1MnTqVdu3auQYG7dq1K4sWLarqsqqtyZMnYxgGjz32WFWXIlKjKHz9bu7cuUyYMIGnn36aTZs20b59e/r06UNSUlJVl1ZtZGdn0759e958882qLqVaWrVqFWPGjOHnn39m6dKlFBYWcsstt5CdnV3VpVUbDRo0YPLkyWzcuJENGzZw4403MnDgQLZv317VpVU769evZ9q0abRr166qSxGpcTTUxO+uueYarrrqKt544w3A+QzK6Oho/vznP/Pkk09WcXXVj2EYfPnllwwaNKiqS6m2Tp48SWRkJKtWraJHjx5VXU61FRYWxksvvcTo0aOrupRqIysri06dOvHWW2/x73//mw4dOvDaa69VdVkiNYZavoCCggI2btxI7969XdMsFgu9e/fmp59+qsLK5EqWnp4OOMODlJ/dbmfOnDlkZ2fTtWvXqi6nWhkzZgz9+/d3+50oIhXH4w/WvhwlJydjt9upU6eO2/Q6deqwa9euKqpKrmQOh4PHHnuM6667jjZt2lR1OdXK1q1b6dq1K3l5eQQGBvLll1/SqlWrqi6r2pgzZw6bNm1i/fr1VV2KSI2l8CVyGRozZgzbtm1jzZo1VV1KtdO8eXPi4+NJT0/n888/Z8SIEaxatUoB7AIkJiby6KOPsnTpUnx9fau6HJEaS+ELqF27NlarlRMnTrhNP3HiBFFRUVVUlVypxo4dy8KFC1m9ejUNGjSo6nKqHW9vb5o0aQJA586dWb9+Pf/73/+YNm1aFVd2+du4cSNJSUl06tTJNc1ut7N69WreeOMN8vPzsVqtVVihSM2gPl84f1l37tyZ77//3jXN4XDw/fffq6+IeIxpmowdO5Yvv/yS5cuXExcXV9Ul1QgOh4P8/PyqLqNauOmmm9i6dSvx8fGuV5cuXRg+fDjx8fEKXiIVRC1fv5swYQIjRoygS5cuXH311bz22mtkZ2czatSoqi6t2sjKymLv3r2unxMSEoiPjycsLIyGDRtWYWXVw5gxY5g9ezbz588nKCiI48ePAxASEoKfn18VV1c9TJw4kX79+tGwYUMyMzOZPXs2K1euZMmSJVVdWrUQFBRUoo9hQEAA4eHh6nsoUoEUvn43dOhQTp48yVNPPcXx48fp0KEDixcvLtEJX8q2YcMGbrjhBtfPEyZMAGDEiBHMmDGjiqqqPqZOnQpAr1693KZPnz6dkSNHer6gaigpKYl7772XY8eOERISQrt27ViyZAk333xzVZcmIuKicb5EREREPEh9vkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIP+PwnZevpuNAioAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -197,12 +270,14 @@ "output_type": "stream", "text": [ "Time t=2\n", - "[Array([[13]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[11]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", + "[1.5241351e-05 1.5241351e-05 3.3507927e-04 3.3507927e-04 9.9885726e-01]\n", + "[[1 0 0 0]]\n" ] }, { "data": { - "image/png": "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3bt3Z8qUKaSkpBQrX9I0JufSq1cvgoODefXVV7HZbBe0z6LWhtPraxgG//73v8tcH4Bp06YxZcoU3nvvvRIDb1muwy233MIvv/zCmjVr3NbPmjXrgup2pri4OHr27On6dOjQodSy9957L88//zxvvPFGqWVKupZAiW8cePHFF1m0aBGffPJJiY8oO3ToQOPGjfnXv/5V4iP/C7lfykOLFi1o3bo1c+bMYc6cOdSpU4euXbte8P5uueUW1qxZw88//+xalp2dzQcffEBMTEyxvoAVzWKx0K9fP+bNm1dii/yFXveAgIAL7tYgIp5PLXaXgCZNmjB79mwGDx5Ms2bNXG+eMAyD5ORkZs+ejdlsduvT9t5773HdddfRunVr7rvvPho1asTRo0f5+eefOXjwIBs3bixTHYKDg5k0aRJ33HEH7du3Z9CgQURERLB//36+/vprOnfuzLvvvnvWfTRv3pzGjRvz+OOPc+jQIYKDg5k3b94F9Q86fvw4Dz74IHFxcfj4+PDf//7XbX3fvn0JCAg47+vw5JNP8vHHHxMfH88jjzzimu4kOjq60l/XFh0dzQsvvHDWMsHBwXTt2pXXX38dm81GvXr1+P7770lOTnYrt3nzZl5++WW6du1Kampqses0bNgwzGYzH374ITfffDMtW7bk7rvvpl69ehw6dIhly5YRHBzMV199dc56r1+/vtj+wdkieO211577xEuQkJDAc889h6+vLyNGjLioSbiffvppPvnkE26++WZGjx5NWFgYM2bMIDk5mXnz5lXJBN/jx49n2bJlXH311dx3333ExcWRnp7O+vXrWbJkCenp6WXeZ4cOHZgzZw6PPvooV155JYGBgdx2220VUHsRqY4U7C4Rffr0YfPmzbzxxht8//33TJ06FZPJRHR0NLfeeisjR46kbdu2rvJxcXGsW7eOF198kenTp5OWlkatWrVo166d26O7shgyZAh169Zl/PjxTJgwgfz8fOrVq0eXLl24++67z7m91Wrlq6++YvTo0YwbNw5fX1/69u3LqFGj3Op+PrKyssjLyyMpKck1CvZ0ycnJBAQEnPd1qFOnDsuWLePhhx9m/PjxhIeHM3LkSOrWrevqvH+pmT17Ng8//DDvvfcehmFw00038e2331K3bl1XmbS0NAzDYMWKFaxYsaLYPooeD3fv3p2ff/6Zl19+mXfffZesrCwiIyO5+uqreeCBB86rPp988olrRO/p7rrrrosKdv/4xz/Iyck5r9GwZ1O7dm1Wr17NU089xTvvvENeXh5t2rThq6++4tZbb72ofV9MndasWcNLL73E559/zvvvv094eDgtW7bktddeu6B9PvjggyQmJjJt2jTeeustoqOjFexExMVkqFeuiIiIiEdQHzsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQXlVdARERkerIbrdjs9mquhri4axWKxaL5bzLK9iJiIiUgWEYHDlyhIyMjKquilwmQkNDiYyMxGQynbOsgp2IiEgZFIW6WrVq4e/vf14/bEUuhGEY5OTkkJqaCkCdOnXOuY2CnYiIyHmy2+2uUBceHl7V1ZHLgJ+fHwCpqanUqlXrnI9lNXhCRETkPBX1qfP396/imsjlpOh+O58+nQp2IiIiZaTHr1KZynK/KdiJiIiIeAgFOxEREREPoWAnIiJSiQoKCi5q/cU4cuQIDz/8MI0aNcLHx4eoqChuu+02fvjhhwo7plQuBTsREZFKMmfOHFq3bs2BAwdKXH/gwAFat27NnDlzyv3Ye/fupUOHDixdupQJEyawefNmvvvuO3r06MFDDz1U7seTqqFgJyIiUgkKCgp47rnn2LFjB927dy8W7g4cOED37t3ZsWMHzz33XLm33D344IOYTCbWrFlDv379aNq0KS1btuTRRx/ll19+Ye/evZhMJhITE13bZGRkYDKZWL58uWvZli1buPnmmwkMDKR27drccccdHD9+vFzrKhdOwU5ERKQSeHt7s2TJEho1asSePXvcwl1RqNuzZw+NGjViyZIleHt7l9ux09PT+e6773jooYcICAgotj40NPS89pORkcH1119Pu3btWLduHd999x1Hjx5l4MCB5VZXuTgKdiIiIpUkKiqK5cuXu4W71atXu4W65cuXExUVVa7H3bVrF4Zh0Lx584vaz7vvvku7du149dVXad68Oe3atWPq1KksW7aMHTt2lFNt5WLozRMiIiKVqCjcFYW5zp07A1RYqAPnq6nKw8aNG1m2bBmBgYHF1u3evZumTZuWy3HkwinYiYiIVLKoqCg+/vhj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ESNGGPfff7/bdj/99JNhNpuN3NxcY9u2bQZgrF271rV+586dBmC89dZbpR77s88+M8LDw11fT5s2zQgJCSlWLjo62rUfm81m1KxZ05g5c6Zr/eDBg42EhATDMAwjLy/P8Pf3N1avXu22jxEjRhiDBw8++8WoZspy33nMqFgREZFLWW4uzJ//5+PX0hQWwhdfOMv7+VVMXV577TWuv/76Yi1lGzduZNOmTcyaNcu1zDAMHA4HycnJ7NixAy8vL9q3b+9aHxsbS40aNdz2s2TJEsaNG8f27ds5efIkhYWF5OXlkZOTc9596Ly8vBg4cCCzZs3ijjvuIDs7m/nz5/O///0PgF27dpGTk8ONN97otl1BQQHt2rUr0/XwJAp2IiIileDkyXOHuiIOh7N8RQW7rl270qtXL5555hmGDx/uWp6VlcUDDzzA6NGji23ToEEDduzYcc597927l969e/O3v/2Nf/7zn4SFhbFy5UpGjBhBQUFBmQZHDB06lG7dupGamsrixYvx8/MjPj7eVVeAr7/+mnr16rlt5+Pjc97H8DQKdiIiIpUgOBjM5vMLd2azs3xFGj9+PFdccQXNmjVzLWvfvj1JSUnExsaWuE2zZs0oLCxkw4YNdOjQAXC2nJ0+yva3337D4XDwxhtvYDY7u/J/+umnbvvx9vbGbrefs46dOnUiKiqKOXPm8O233zJgwACsVisAcXFx+Pj4sH//frp161a2k/dgCnYiIiKVwM8P+vRxjn49c+DE6by8nOUqqrWuSOvWrRk6dCgTJ050LXvqqae45pprGDVqFPfeey8BAQEkJSWxePFi3n33XZo3b07Pnj25//77mTRpElarlcceeww/Pz/XXHixsbHYbDbeeecdbrvtNlatWsXkM4b6xsTEkJWVxQ8//EDbtm3x9/cvtSVvyJAhTJ48mR07drBs2TLX8qCgIB5//HHGjh2Lw+HguuuuIzMzk1WrVhEcHMxdd91VAVft0qdRsSIiIpXk0UfhXA1VdjuMHVs59XnppZdwnNaE2KZNG1asWMGOHTvo0qUL7dq147nnnqNu3bquMjNnzqR27dp07dqVvn37ct999xEUFOR6h2nbtm158803ee2112jVqhWzZs0qNr1Kp06dGDlyJAkJCURERPD666+XWsehQ4eSlJREvXr16Ny5s9u6l19+mWeffZZx48bRokUL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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB23ElEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zQU79nMOQuec5z3mOYZqmiYiIiIh4haW6CxARERG5lCh8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8idf885//xDAMj2lxcXGMGjXKq3XMnDkTwzDYt2+fV/cr50b/PiJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7/43j4uLO4V9GRC5WavmqJvPnz6dZs2ZcccUV57zO1q1bueqqq2jYsCGPP/44gYGBfPLJJwwePJi5c+cyZMgQj+X/9Kc/ER4ezpNPPsm+fft45ZVXGDduHHPmzHEv8/777zNy5Ej69evHc889R25uLtOmTePqq6/m119/9fglX1xcTL9+/bj66qv5z3/+Q0BAAACffvopubm5PPjgg0RGRrJmzRpeffVVDh48yKefflqh83L65T6Av//976SkpBAUFFSh83DkyBGuueYaiouL3cu99dZbXm0tueOOO7jhhhvYs2cPTZs2BVyXkG655RZ8fHxKLb948WL27t3L6NGjiY6OZuvWrbz11lts3bqVn3/+GcMwyrwsWlRUxIQJE/D19XVPW7p0KTfeeCNdu3blySefxGKxMGPGDK699lp++OEHLr/88rPWn5uby/Hjx0tNDwsLw2Y7+etj9+7d3HLLLYwZM4aRI0fy7rvvMmrUKLp27Urbtm3p1q0bTZo04ZNPPmHkyJEe25ozZ065YfRUv/32G8OHD+ePf/wj9913Hy1btuTo0aP06NGD3Nxcxo8fT2RkJO+99x7/93//x2effVbq/8SUKVOwWCw8+uijZGRk8PzzzzNixAh++eUXj+XS0tK4+eabuf3227n11luZNm0at99+Ox9++CGPPPIIDzzwAHfccQcvvPACt9xyC0lJSQQHBwNw9OhRrrzySgzDYNy4cURFRbFgwQLGjBlDZmZmqUuHZ6vp//2//0dGRobHZe+S/wsiUkOZ4nUZGRkmYA4ePLjUvLS0NPPYsWPuV25urnveddddZ7Zv397Mz893T3M6nWaPHj3M5s2bu6fNmDHDBMy+ffuaTqfTPX3ChAmm1Wo109PTTdM0zaysLDMsLMy87777PGo4cuSIGRoa6jF95MiRJmA+/vjjpWo+tcYSkydPNg3DMPfv3++e9uSTT5qnv+ViY2PNkSNHllq/xPPPP28C5qxZsyp8Hh555BETMH/55Rf3tJSUFDM0NNQEzMTExHL3e7oBAwaYsbGx57x8bGysOWDAALO4uNiMjo42n3nmGdM0TXPbtm0mYK5YscL977R27Vr3emWdy48++sgEzJUrV5a7v4ceesi0Wq3m0qVLTdN0nY/mzZub/fr183gP5ObmmvHx8eb1119/xvoTExNNoNzXTz/95HGsp9eXkpJi2u12889//rN72qRJk0wfHx8zNTXVPa2goMAMCwsz77nnHve0kvNy6r9PyT4WLlzoUWfJv/EPP/zgnpaVlWXGx8ebcXFxpsPhME3TNJctW2YCZuvWrc2CggL3sv/9739NwNy8ebN7Wu/evU3AnD17tnvajh07TMC0WCzmzz//7J6+aNEiEzBnzJjhnjZmzBizfv365vHjxz1qvf32283Q0FD3v3FFaqro+09ELm667FgNMjMzgbK/vfbp04eoqCj36/XXXwcgNTWVpUuXctttt5GVlcXx48c5fvw4J06coF+/fuzatYtDhw55bOv+++/3uAzVs2dPHA4H+/fvB1ytLOnp6QwfPty9vePHj2O1WrniiitYtmxZqfoefPDBUtNObUnKycnh+PHj9OjRA9M0+fXXX8/jDLksW7aMSZMm8ac//Ym77rqrwufh22+/5corr/Ro4YmKinJfLvUGq9XKbbfdxkcffQS4OtrHxMTQs2fPMpc/9Vzm5+dz/PhxrrzySgA2bNhQ5jqzZs3ijTfe4Pnnn+eaa64BICEhgV27dnHHHXdw4sQJ93nKycnhuuuuY+XKled0+fX+++9n8eLFpV5t2rTxWK5NmzYexxQVFUXLli3Zu3eve9qwYcMoKiri888/d0/77rvvSE9PZ9iwYWetJT4+vlTr2Lfffsvll1/O1Vdf7Z4WFBTE/fffz759+9i2bZvH8qNHj/ZoHSyp+dQ6S7Zx++23u39u2bIlYWFhtG7d2qO1uuTvJeubpsncuXMZOHAgpml6/L/q168fGRkZpf4dz7UmEak9dNmxGpRcnsjOzi41b/r06WRlZXH06FGPjs67d+/GNE3+8Y9/8I9//KPM7aakpNCwYUP3z40bN/aYHx4eDrguqQDs2rULgGuvvbbM7YWEhHj8bLPZaNSoUanlDhw4wBNPPMFXX33l3naJjIyMMrd9NgcPHmTYsGFcddVVvPTSS+7pFTkP+/fvL/OybsuWLc+rptNlZGR49Gvz9fUlIiKi1HJ33HEHU6dOZePGjcyePZvbb7+9VN+sEqmpqTz11FN8/PHHpKSklNrf6RISEnjggQcYPnw4EydOdE8v+bc9/RLf6dsreU+Up3nz5uUOl3Gq099r4Hq/nfp+6NixI61atWLOnDmMGTMGcF1yrFOnTrnvwVPFx8eXmlbev3Hr1q3d89u1a1dunaf/nyjRqFGjUv9GoaGhpfpghoaGeqx/7Ngx0tPTeeutt3jrrbfKPI7T/13PtSYRqT0UvqpBaGgo9evXZ8uWLaXmlXyQnD5+VEkrxaOPPlpu35hmzZp5/FzeHWOmaXps8/333y81FALg0acHXHcmnn73pcPh4Prrryc1NZXHHnuMVq1aERgYyKFDhxg1atR5dW4vLCzklltuwW6388knn3jUcT7noao8/PDDHh3Ie/fuzfLly0std8UVV9C0aVMeeeQREhMTueOOO8rd5m233caPP/7IX/7yFzp16kRQUBBOp5P+/fuXOpdpaWkMHTqUFi1a8L///c9jXsmyL7zwAp06dSpzX5XZb+hs77USw4YN49///jfHjx8nODiYr776iuHDh5d6r5WlMvrqnWud5S13rv+n7rzzznKDb4cOHc6rJhGpPRS+qsmAAQP43//+x5o1a86p43OTJk0A8PHxOaeWiHNR0gG8bt26573NzZs3s3PnTt577z3uvvtu9/TFixefd13jx48nISGBlStXUq9ePY95FTkPsbGx7hagU/3222/nXdup/vrXv3q0Tp6pFWn48OH861//onXr1uWGobS0NL7//nueeuopnnjiCff0so7B6XQyYsQI0tPTWbJkifvmhxIl/7YhISGV9n6pDMOGDeOpp55i7ty51KtXj8zMTI/LexUVGxtb5r/njh073PO9KSoqiuDgYBwOR6We9/JaSkWkZlKfr2ry17/+lYCAAO655x6OHj1aav7p33rr1q1Lnz59mD59OsnJyaWWL2sIibPp168fISEhPPvssxQVFZ3XNku+tZ9ar2ma/Pe//61wPQAzZsxg+vTpvP7662WG0oqch5tuuomff/6ZNWvWeMz/8MMPz6u207Vp04a+ffu6X127di132XvvvZcnn3ySF198sdxlyjqXQJkjmz/11FMsWrSIjz76qMzLcV27dqVp06b85z//KfPy9vm8XypD69atad++PXPmzGHOnDnUr1+fXr16nff2brrpJtasWcNPP/3knpaTk8Nbb71FXFxcqb5pVc1qtTJ06FDmzp1bZsv2+Z73wMDA876ELyIXH7V8VZPmzZsze/Zshg8fTsuWLd0j3JumSWJiIrNnz8ZisXj0sXr99de5+uqrad++Pffddx9NmjTh6NGj/PTTTxw8eJCNGzdWqIaQkBCmTZvGXXfdRZcuXbj99tuJioriwIEDfPPNN1x11VW89tprZ9xGq1ataNq0KY8++iiHDh0iJCSEuXPnnld/lePHj/PQQw/Rpk0b7HY7H3zwgcf8IUOGEBgYeM7n4a9//Svvv/8+/fv35+GHH3YPNREbG+v1RzfFxsbyz3/+84zLhISE0KtXL55//nmKiopo2LAh3333HYmJiR7Lbd68mWeeeYZevXqRkpJS6jzdeeedWCwW/ve//3HjjTfStm1bRo8eTcOGDTl06BDLli0jJCSEr7/++qx1b9iwodT2wdWy1r1797MfeBmGDRvGE088gZ+fH2PGjLmggYQff/xxPvroI2688UbGjx9PREQE7733HomJicydO7daBimeMmUKy5Yt44orruC+++6jTZs2pKamsmHDBpYsWUJqamqFt9m1a1fmzJnDxIkTueyyywgKCmLgwIFVUL2IeIPCVzUaNGgQmzdv5sUXX+S7777j3XffxTAMYmNjGTBgAA888AAdO3Z0L9+mTRvWrVvHU089xcyZMzlx4gR169alc+fOHpepKuKOO+6gQYMGTJkyhRdeeIGCggIaNmxIz549GT169FnX9/Hx4euvv2b8+PFMnjwZPz8/hgwZwrhx4zxqPxfZ2dnk5+ezbds2992Np0pMTCQwMPCcz0P9+vVZtmwZf/rTn5gyZQqRkZE88MADNGjQwN3h+2Ize/Zs/vSnP/H6669jmiY33HADCxYsoEGDBu5lTpw4gWmarFixghUrVpTaRsml0D59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NGrUiKeffprk5GSSk5Mv6NxWJ3W4FxGRS15+kZP9J3IID/Cp0HrhAT7sP5FDfpETf9/Kuftx/vz5BAUFUVxcTEFBARaLhddeew2AgoICnn32WZYsWUL37t0BaNKkCatWrWL69On07t2bPn368M477+BwONiyZQu+vr4MGzaM5cuX079/f5YvX07v3r3d+7vnnnvcf2/SpAlTp07lsssuIzs7m6CgIPe8p59+muuvvx6A7Oxs3nnnHT744AOuu+46AN577z0aNWp0xmM7cOAAf/nLX2jVqhUAzZs3d8+bPHkyI0aM4JFHHnHPmzp1Kr1792batGlERERgtVrdLXQ1mVq+RETkklfocOJwmtisFftYtFoMHE6TQoez0mq55pprSEhI4JdffmHkyJGMHj2aoUOHArB7925yc3O5/vrrCQoKcr9mzZrFnj17AOjZsydZWVn8+uuvrFixwh3ISlrDVqxYQZ8+fdz7W79+PQMHDqRx48YEBwe7g9mBAwc86urWrZv773v27KGwsJArrrjCPS0iIoKWLVue8dgmTpzIvffeS9++fZkyZYq7ZnBdkpw5c6bHcfXr1w+n00liYmLFT+RFTC1fIiJyyfO1WrBaDIorGKJKxv/yrWBoO5PAwED3JcF3332Xjh078s477zBmzBh3v61vvvmGhg0beqxnt9sBCAsLo2PHjixfvpyffvqJ66+/nl69ejFs2DB27tzJrl273AErJyeHfv360a9fPz788EOioqI4cOAA/fr1o7CwsFRdF+qf//wnd9xxB9988w0LFizgySef5OOPP2bIkCFkZ2fzxz/+kfHjx5dar3Hjxhe874uJWr5EROSS5+djITYykLTcogqtl5ZbRGxkIH4+VfNxarFY+Nvf/sbf//538vLyaNOmDXa7nQMHDtCsWTOPV0xMjHu93r17s2zZMlauXEmfPn2IiIigdevW/Pvf/6Z+/fq0aNECgB07dnDixAmmTJlCz549adWqlUdn+/I0bdoUHx8ffvnlF/e0tLQ0du7cedZ1W7RowYQJE/juu+/4wx/+wIwZMwDo0qUL27ZtK3VczZo1c/d58/X1xeGo3LtLq4PCl4iIXPIMw+Cy+AhMTAqLz631q7DYiYnJ5fERVXrn3a233orVauX1118nODiYRx99lAkTJvDee++xZ88eNmzYwKuvvsp7773nXqdPnz4s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4EBiY2N5++23adCgAU6nk3bt2rk7wPv7l75pqLKUVU9lONP5yc7Opn79+h6XP0uEhYVVST0VavlKSUnh7rvvpmXLllx33XWsXbuWRYsWcf3111dJcSK1Tag9lK71upKan+ruKF9cVMzUB6aW2bn+9E74Ux+YSmFhIck5ybSObE2joEbVeTgitYePv6ujfW5qxdbLTXWt51N1gQRg6dKlbN68udQlwVOFhIQwbNgw3n77bebMmcPcuXNJTXUdj4+PDw5H+f1NS5w4cYLffvuNv//971x33XW0bt2atDTPsQc7dOhAQkKCe9un8/X1LbWv1q1bl+pntW3bNtLT0894015lKu/8dOnShSNHjmCz2WjWrJnHq06dOuUe04WoUMvXO++8U2k7FrlU9Ynpw+703ezP3O96tqOPjZsfvJn50+Yz/s3xpfp2lQSwqQ9MZcADAziSf4Qo/yj6xfUr9xKEiFSQYUDj7nBovesS4rm0ZBUXACbE9qjUzvYFBQUcOXIEh8PB0aNHWbhwIZMnT+bmm2/m7rvvLnOdl156ifr169O5c2csFguffvop0dHR7pabuLg4vv/+e6666irsdjvh4aVv4gEIDw8nMjKSt956i/r163PgwAEef/xxj2WGDx/Os88+y+DBg5k8eTL169fn119/pUGDBnTv3p24uDgSExNJSEigUaNGBAcH07dvX9q3b8+IESN45ZVXKC4u5qGHHqJ3795069atwudo27ZtFBYWkpqaSlZWFgkJCQDljsV1pvPTt29funfvzuDBg3n++edp0aIFhw8f5ptvvmHIkCF069atzGO6kGE+9GxHES8L8g1iULNBRPhFsDdjLw6ng679uvL/Pv1/Zd7VCK4ANumTSdTtURcfqw8Dmw6kbkBdL1cuUstFt4eIeFcH+rM9w9E0IS3RtXy9dpVaxsKFC6lfvz5xcXH079+fZcuWMXXqVObNm1fuHYDBwcE8//zzdOvWjcsuu4x9+/bx7bffYrG4PuZffPFFFi9eTExMDJ07dy533xaLhY8//pj169fTrl07JkyYwAsvvOCxjK+vL9999x1169blpptuon379kyZMsVd29ChQ+nfvz/XXHMNUVFRfPTRRxiGwbx58wgPD6dXr1707duXJk2aMGfOnPM6RzfddBOdO3fm66+/Zvny5XTu3PmMx3Wm82MYBt9++y29evVi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SEU5nZD8K+xbDcd2/D4MRcmvNcPVuuUfBo0uh7irIDyu+mqVSqXPE6mpFL6kUuQUFHM4PY+UrALyCh1YLBDq70u9EDsNQv2xaEgJqWollxWzkiHnBJgO14CsQfVcY4NpMNVaR58nUlPpsqNUikC7jeb1gmleL/jsC4tUBcOAkAaul4jIRUzXgERERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts1V2A1A5Z+UUcTMvjWFYBeUUOLIZBWIAP9YL9aBjuj9ViVHeJUtuZJmQegsxkyD0OTgfY7BBUF0JjICCiuisUEQEUvuQCHcnI56e9J1i/P5W0nEIcpmu6AZiAv4+FxhGBXNEkgm6xEfja1NgqlczpgEMbYN8PcHwnFOZ4zjcM8AuDhl0h7mqIbFotZYqIlFD4kvPidJr8uOcEC7YkcyyrgIhAX+IiA7FZT4Yr0zTJLXSQeDyHXSlZJCSlM6hTQxqG+Vdj5VKr5JyALZ/BgZ9dPwfVg9DGrsBVwumAvFTYvRiS1kDL/tC8H9h8q6dmEbnkKXxJhTmcJvM3HWbxtqP42ay0ig7GMEpfVjQMg0C7jXi7jfwiB5uSMjiWVcDd3eOIrxNYDZVLrZJ1BH55C47tgPA4sAeXvZzFCoFREFAHso/Cpk8g6yh0uct1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", "text/plain": [ "
" ] @@ -215,12 +290,14 @@ "output_type": "stream", "text": [ "Time t=3\n", - "[Array([[12]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[16]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", + "[1.5251807e-05 1.5251807e-05 1.5251807e-05 1.5251807e-05 9.9954247e-01]\n", + "[[1 0 0 0]]\n" ] }, { "data": { - "image/png": "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3bt3Z8qUKaSkpBQrX9I0JufSq1cvgoODefXVV7HZbBe0z6LWhtPraxgG//73v8tcH4Bp06YxZcoU3nvvvRIDb1muwy233MIvv/zCmjVr3NbPmjXrgup2pri4OHr27On6dOjQodSy9957L88//zxvvPFGqWVKupZAiW8cePHFF1m0aBGffPJJiY8oO3ToQOPGjfnXv/5V4iP/C7lfykOLFi1o3bo1c+bMYc6cOdSpU4euXbte8P5uueUW1qxZw88//+xalp2dzQcffEBMTEyxvoAVzWKx0K9fP+bNm1dii/yFXveAgIAL7tYgIp5PLXaXgCZNmjB79mwGDx5Ms2bNXG+eMAyD5ORkZs+ejdlsduvT9t5773HdddfRunVr7rvvPho1asTRo0f5+eefOXjwIBs3bixTHYKDg5k0aRJ33HEH7du3Z9CgQURERLB//36+/vprOnfuzLvvvnvWfTRv3pzGjRvz+OOPc+jQIYKDg5k3b94F9Q86fvw4Dz74IHFxcfj4+PDf//7XbX3fvn0JCAg47+vw5JNP8vHHHxMfH88jjzzimu4kOjq60l/XFh0dzQsvvHDWMsHBwXTt2pXXX38dm81GvXr1+P7770lOTnYrt3nzZl5++WW6du1Kampqses0bNgwzGYzH374ITfffDMtW7bk7rvvpl69ehw6dIhly5YRHBzMV199dc56r1+/vtj+wdkieO211577xEuQkJDAc889h6+vLyNGjLioSbiffvppPvnkE26++WZGjx5NWFgYM2bMIDk5mXnz5lXJBN/jx49n2bJlXH311dx3333ExcWRnp7O+vXrWbJkCenp6WXeZ4cOHZgzZw6PPvooV155JYGBgdx2220VUHsRqY4U7C4Rffr0YfPmzbzxxht8//33TJ06FZPJRHR0NLfeeisjR46kbdu2rvJxcXGsW7eOF198kenTp5OWlkatWrVo166d26O7shgyZAh169Zl/PjxTJgwgfz8fOrVq0eXLl24++67z7m91Wrlq6++YvTo0YwbNw5fX1/69u3LqFGj3Op+PrKyssjLyyMpKck1CvZ0ycnJBAQEnPd1qFOnDsuWLePhhx9m/PjxhIeHM3LkSOrWrevqvH+pmT17Ng8//DDvvfcehmFw00038e2331K3bl1XmbS0NAzDYMWKFaxYsaLYPooeD3fv3p2ff/6Zl19+mXfffZesrCwiIyO5+uqreeCBB86rPp988olrRO/p7rrrrosKdv/4xz/Iyck5r9GwZ1O7dm1Wr17NU089xTvvvENeXh5t2rThq6++4tZbb72ofV9MndasWcNLL73E559/zvvvv094eDgtW7bktddeu6B9PvjggyQmJjJt2jTeeustoqOjFexExMVkqFeuiIiIiEdQHzsRERERD6FgJyIiIuIhFOxEREREPISCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp2IiIiIh1CwExEREfEQXlVdARERkerIbrdjs9mquhri4axWKxaL5bzLK9iJiIiUgWEYHDlyhIyMjKquilwmQkNDiYyMxGQynbOsgp2IiEgZFIW6WrVq4e/vf14/bEUuhGEY5OTkkJqaCkCdOnXOuY2CnYiIyHmy2+2uUBceHl7V1ZHLgJ+fHwCpqanUqlXrnI9lNXhCRETkPBX1qfP396/imsjlpOh+O58+nQp2IiIiZaTHr1KZynK/KdiJiIiIeAgFOxEREREPoWAnIiJSiQoKCi5q/cU4cuQIDz/8MI0aNcLHx4eoqChuu+02fvjhhwo7plQuBTsREZFKMmfOHFq3bs2BAwdKXH/gwAFat27NnDlzyv3Ye/fupUOHDixdupQJEyawefNmvvvuO3r06MFDDz1U7seTqqFgJyIiUgkKCgp47rnn2LFjB927dy8W7g4cOED37t3ZsWMHzz33XLm33D344IOYTCbWrFlDv379aNq0KS1btuTRRx/ll19+Ye/evZhMJhITE13bZGRkYDKZWL58uWvZli1buPnmmwkMDKR27drccccdHD9+vFzrKhdOwU5ERKQSeHt7s2TJEho1asSePXvcwl1RqNuzZw+NGjViyZIleHt7l9ux09PT+e6773jooYcICAgotj40NPS89pORkcH1119Pu3btWLduHd999x1Hjx5l4MCB5VZXuTgKdiIiIpUkKiqK5cuXu4W71atXu4W65cuXExUVVa7H3bVrF4Zh0Lx584vaz7vvvku7du149dVXad68Oe3atWPq1KksW7aMHTt2lFNt5WLozRMiIiKVqCjcFYW5zp07A1RYqAPnq6nKw8aNG1m2bBmBgYHF1u3evZumTZuWy3HkwinYiYiIVLKoqCg+/vhj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+vbbb8dqtZKVlQXAwYMHMZlM7Nq1C4CPP/6Yjh07EhQURGRkJEOGDCE1NdW1/fLlyzGZTHz77bd06NABHx8fVq5cSXZ2NnfeeSeBgYHUqVOHN95445zntnHjRnr06EFQUBDBwcF06NCBdevWudavXLmSLl264OfnR1RUFKNHjyY72/m4u3v37uzbt4+xY8e6WjWrKwU7ERGRCpRnc7AvLZsa/tYybVfD38q+tGzybI4KqdeWLVtYvXo13t7ermXjxo1j5syZTJ48ma1btzJ27FiGDRvGihUrAOjWrRvLly8HnIH1p59+IjQ0lJUrVwKwYsUK6tWrR2xsLAA2m42XX36ZjRs38uWXX7J3716GDx9erC5PP/0048ePZ9u2bbRp04YnnniCFStWMH/+fL7//nuWL1/O+vXrz3o+Q4cOpX79+qxdu5bffvuNp59+GqvVec13795NfHw8/fr1Y9OmTcyZM4eVK1cyatQoAD7//HPq16/PSy+9REpKCikpKRd1bauSRsWKiIhUoAK7A7vDwNu7bFOYWMwmbH/Mc+dH+Ux/snDhQgIDAyksLCQ/Px+z2cy7774LQH5+Pq+++ipLlizh2muvBaBRo0asXLmSKVOm0K1bN7p3785HH32E3W5ny5YteHt7k5CQwPLly4mPj2f58uV069bNdbx77rnH9fdGjRoxceJErrzySrKysggMDHSte+mll7jxxhsByMrK4qOPPuK///0vN9xwAwAzZsygfv36Zz23/fv388QTT9C8eXMAmjRp4lo3btw4hg4d6hp80aRJEyZOnEi3bt2YNGkSYWFhWCwWV8tidaYWOxERkQrkbTFjMZsotJet5a1ofjtvS/n9qO7RoweJiYn8+uuv3HXXXdx9993069cPgF27dpGTk8ONN95IYGCg6zNz5kx2794NQJcuXTh16hQbNmxgxYoVrrBX1Iq3YsUKunfv7jreb7/9xm233UaDBg0ICgpyhb79+/e71atjx46uv+/evZuCggKuvvpq17KwsDCaNWt21nN79NFHuffee+nZsyfjx4931Rmcj2mnT5/udl69evXC4XCQnJxc9gt5CVOwExERqUC+VjPR4QGcyLGVabsTOTaiwwPwtZbfj+qAgABiY2Np27YtU6dO5ddff+Wjjz4CcPWT+/rrr0lMTHR9kpKSXP3sQkNDadu2LcuXL3eFuK5d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", + "image/png": "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Wd80TebMmcOAAQMwTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAEOHDuWqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrvjjjuYMmUKGzZsYNasWdx+++2l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMCwYcOYMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz2b06NGA65JjnTp1yn0PniohIaHUtPL+jVu1auWe37Zt23LrPP3/RImGDRuW+jcKDQ0t1QczNDTUY/1jx46Rnp7OW2+9xVtvvVXmcZz+73quNYlI7aHwVQ1CQ0OpV68emzdvLjWv5IPk9PGjSlopHn300XL7xjRt2tTj5/LuGDNN02Ob77//fqmhEACPPj3gujPx9LsvHQ4H119/PampqTz22GO0bNmSwMBADh48yMiRI8+rc3thYSG33HILdrudTz75xKOO8zkPVeXhhx/26EDeq1cvli1bVmq5K664giZNmvDII4+QlJTEHXfcUe42b7vtNn788Uf+8pe/0LFjR4KCgnA6nfTr16/UuUxLS2PIkCE0b96c//3vfx7zSpZ94YUX6NixY5n7qsx+Q2d7r5UYOnQo//73vzl+/DjBwcF89dVXDBs2rNR7rSyV0VfvXOssb7lz/T915513lht827dvf141iUjtofBVTfr378///vc/Vq9efU4dnxs3bgyAj4/PObVEnIuSDuDR0dHnvc1NmzaxY8cO3nvvPe6++2739EWLFp13XePGjSMxMZEVK1ZQt25dj3kVOQ9xcXHuFqBT/fbbb+dd26n++te/erROnqkVadiwYfzrX/+iVatW5YahtLQ0vv/+e5566imeeOIJ9/SyjsHpdDJ8+HDS09NZvHix++aHEiX/tiEhIZX2fqkMQ4cO5amnnmLOnDnUrVuXzMxMj8t7FRUXF1fmv+f27dvd870pKiqK4OBgHA5HpZ738lpKRaRmUp+vavLXv/6VgIAA7rnnHo4ePVpq/unfeqOjo+nduzfTpk3j8OHDpZYvawiJs+nbty8hISE8++yzFBUVndc2S761n1qvaZr897//rXA9ANOnT2fatGm8/vrrZYbSipyHm266iZ9//pnVq1d7zP/www/Pq7bTtW7dmj59+rhfXbp0KXfZe++9lyeffJIXX3yx3GXKOpdAmSObP/XUUyxcuJCPPvqozMtxXbp0oUmTJvznP/8p8/L2+bxfKkOrVq1o164ds2fPZvbs2dSrV4+ePXue9/ZuuukmVq9ezU8//eSelpOTw1tvvUV8fHypvmlVzWq1MmTIEObMmVNmy/b5nvfAwMDzvoQvIhcftXxVk2bNmjFr1iyGDRtGixYt3CPcm6ZJUlISs2bNwmKxePSxev3117n66qtp164d9913H40bN+bo0aP89NNPHDhwgA0bNlSohpCQEKZOncpdd91F586duf3224mKimL//v188803XHXVVbz22mtn3EbLli1p0qQJjz76KAcPHiQkJIQ5c+acV3+V48eP89BDD9G6dWvsdjsffPCBx/zBgwcTGBh4zufhr3/9K++//z79+vXj4Ycfdg81ERcX5/VHN8XFxfHPf/7zjMuEhITQs2dPnn/+eYqKimjQoAHfffcdSUlJHstt2rSJZ555hp49e5KSklLqPN15551YLBb+97//ceONN9KmTRtGjRpFgwYNOHjwIEuXLiUkJISvv/76rHWvX7++1PbB1bLWrVu3sx94GYYOHcoTTzyBn58fo0ePvqCBhB9//HE++ugjbrzxRsaNG0dERATvvfceSUlJzJkzp1oGKZ48eTJLly7liiuu4L777qN169akpqayfv16Fi9eTGpqaoW32aVLF2bPns2ECRO47LLLCAoKYsCAAVVQvYh4g8JXNRo4cCCbNm3ixRdf5LvvvuPdd9/FMAzi4uLo378/DzzwAB06dHAv37p1a9auXctTTz3FjBkzOHHiBNHR0XTq1MnjMlVF3HHHHdSvX5/JkyfzwgsvUFBQQIMGDejRowejRo066/o+Pj58/fXXjBs3jkmTJuHn58fgwYMZO3asR+3nIjs7m/z8fLZu3eq+u/FUSUlJBAYGnvN5qFevHkuXLuVPf/oTkydPJjIykgceeID69eu7O3xfbGbNmsWf/vQnXn/9dUzT5IYbbmD+/PnUr1/fvcyJEycwTZPly5ezfPnyUtsouRTau3dv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ahuFLxERkTKsXAl/+AMEBUFMjOvPP/wBVq2q2v36+fnx3HPPkZaWVrU7Ok9RUVEEBARUdxk1msKXiIjIaaZOhZ494euvXY91BNefX38NPXq4nrtdVfr06UNMTAyTJk0qd5mVK1fSo0cP/P39iY2NZdy4ceTk5LjnHz58mP79++Pv709CQgKzZs0qdbnwpZdeol27dgQGBhIbG8tDDz1EdnY24Hpu86hRo8jIyMAwDAzD4J///CfgednxjjvuYOjQoR61FRUVUadOHWbOnAmA0+lk0qRJJCQk4O/vT4cOHfjss88q4UzVXApfIiIip1i5EsaMAdOE4mLPecXFrukPPVR1LWBWq5Vnn32WV199lQMHDpSav3v3bvr168eQIUPYuHEjs2fPZuXKlYwdO9a9zN13382hQ4dYtmwZc+bM4a233iIlJcVjOxaLhSlTprBlyxbee+89lixZwl//+lcAunfvziuvvEJISAiHDx/m8OHDPProo6VqGT58OF9//bU7tAEsXLiQ3NxcBg8eDMCkSZOYOXMmb775Jlu2bGH8+PHceeedLF++vFLOV41kellGRoYJmBkZGd7etYiI1CLlfZ7k5eWZW7duNfPy8s5ru4MHm6bNZpqumFX2y2YzzSFDKuMoPI0YMcIcOHCgaZqmeeWVV5r33HOPaZqm+cUXX5glH9mjR48277//fo/1fvjhB9NisZh5eXnmtm3bTMBcs2aNe/7OnTtNwHz55ZfL3fenn35qRkZGun+ePn26GRoaWmq5uLg493aKiorMOnXqmDNnznTPHzZsmDl06FDTNE0zPz/fDAgIMH/88UePbYwePdocNmzYmU9GDVOR950GWRUREfldXh7MnXvyUmN5iovhiy9cy1fV87afe+45rr322lItThs2bGDjxo18+OGH7mmmaeJ0OklKSmLHjh3YbDY6d+7snt+0aVPCw8M9trN48WImTZrE9u3byczMpLi4mPz8fHJzc8+5T5fNZuO2227jww8/5K677iInJ4e5c+fy8ccfA7Br1y5yc3O5/vrrPdYrLCykU6dOFToftYnCl4iIyO8yM88evEo4na7lqyp89ezZk759+zJx4kRGjhzpnp6dnc0f//hHxo0bV2qdRo0asWPHjrNue+/evdx88808+OCD/Pvf/yYiIoKVK1cyevRoCgsLK9Shfvjw4fTq1YuUlBQW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n9OwYUOefvppDh8+zOHDhy/o3FYndbgXEZFLXn6Rk30ncggP8KnQeuEBPuw7kUN+kRN/38q5+3HevHkEBQVRXFxMQUEBFouF1157DYCCggKeffZZFi9eTLdu3QBo3LgxK1euZNq0afTq1YvevXvzzjvv4HA42Lx5M76+vgwdOpRly5bRr18/li1bRq9evdz7u+eee9x/b9y4MVOmTOGyyy4jOzuboKAg97ynn36a66+/HoDs7GzeeecdPvjgA6677joA3nvvPRo2bHjGY9u/fz9/+ctfaNmyJQDNmjVzz5s0aRLDhw/nkUcecc+bMmUKvXr1YurUqURERGC1Wt0tdDWZWr5EROSSV+hw4nCa2KwV+1i0WgwcTpNCh7PSarnmmmtITEzkl19+YcSIEYwaNYohQ4YAsGvXLnJzc7n++usJCgpyv2bOnMnu3bsB6NGjB1lZWfz6668sX77cHchKWsOWL19O79693ftbt24dAwYMoFGjRgQHB7uD2f79+z3q6tq1q/vvu3fvprCwkCuuuMI9LSIighYtWpzx2CZMmMC9995Lnz59mDx5srtmcF2SnDFjhsdx9e3bF6fTSVJSUsVP5EVMLV8iInLJ87VasFoMiisYokrG//KtYGg7k8DAQPclwXfffZcOHTrwzjvvMHr0aHe/rW+++YYGDRp4rGe32wEICwujQ4cOLFu2jJ9++onrr7+enj17MnToUHbs2MHOnTvdASsnJ4e+ffvSt29fPvzwQ6Kioti/fz99+/alsLCwVF0X6p///Cd33HEH33zzDfPnz+fJJ5/k448/ZvDgwWRnZ/PHP/6RcePGlVqvUaNGF7zvi4lavkRE5JLn52MhLjKQtNyiCq2XlltEXGQgfj5V83FqsVj429/+xt///nfy8vJo3bo1drud/fv307RpU49XbGyse71evXqxdOlSVqxYQe/evYmIiKBVq1b8+9//pl69ejRv3hyA7du3c+LECSZPnkyPHj1o2bKlR2f78jRp0gQfHx9++eUX97S0tDR27Nhx1nWbN2/O+PHj+e677/jDH/7A9OnTAejcuTNbt24tdVxNmzZ193nz9fXF4ajcu0urg8KXiIhc8gzD4LKECExMCovPrfWrsNiJicnlCRFVeufdrbfeitVq5fXXXyc4OJhHH32U8ePH895777F7927Wr1/Pq6++ynvvvedep3fv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lyovwLZt20hISChzXufOnUlKSmL+/PksXryY2267jT59+vDZZ5+dcZuBgYGlpg0YMIC4uDjefvtt6tevj9PppG3btu4O8P7+pW8aqixl1VMZznR+srOzqVevnsflzxJhYWFVUk+FWr5SUlK4++67adGiBddddx1r1qxh4cKFXH/99VVSnEhtE2oPpUvdLqTmp7o7yhcXFTPlgSlldq4/vRP+lAemUFhYyOGcw7SKbEXDoIbVeTgitYePv6ujfW5qxdbLTXWt51N1gQRgyZIlbNq0qdQlwVOFhIQwdOhQ3n77bWbPns2cOXNITXUdj4+PDw5H+f1NS5w4cYLffvuNv//971x33XW0atWKtDTPsQfbt29PYmKie9un8/X1LbWvVq1alepntXXrVtLT0894015lKu/8dO7cmSNHjmCz2WjatKnHq06dOuUe04WoUMvXO++8U2k7FrlU9Y7tza70XezL3Od6qLaPjZsfvJl5U+cx7s1xpfp2lQSwKQ9Mof8D/TmSf4Qo/yj6xvct9xKEiFSQYUCjbnBwnesS4rm0ZBUXACbEda/UzvYFBQUcOXIEh8PB0aNHWbBgAZMmTeLmm2/m7rvvLnOdl156iXr16tGpUycsFguffvopMTEx7pab+Ph4vv/+e6666irsdjvh4aVv4gEIDw8nMjKSt956i3r16rF//34ef/xxj2WGDRvGs88+y6BBg5g0aRL16tXj119/pX79+nTr1o34+HiSkpJITEykYcOGBAcH06dPH9q1a8fw4cN55ZVXKC4u5qGHHqJXr1507dq1wudo69atFBYWkpqaSlZWFomJiQDljsV1pvPTp08funXrxqBBg3j++edp3rw5hw4d4ptvvmHw4MF07dq1zGO6kGE+9GxHES8L8g1iYNOBRPhFsCdjDw6ngy59u/D/Pv1/Zd7VCK4ANvGTiUR3j8bH6sOAJgOIDoj2cuUitVxMO4hIcHWgP9szHE0T0pJcy9dtW6llLFiwgHr16hEfH0+/fv1YunQpU6ZMYe7cueXeARgcHMzzzz9P165dueyyy9i7dy/ffvstFovrY/7FF19k0aJFxMbG0qlTp3L3bbFY+Pjjj1m3bh1t27Zl/PjxvPDCCx7L+Pr68t133xEdHc1NN91Eu3btmDx5sru2IUOG0K9fP6655hqioqL46KOPMAyDuXPnEh4eTs+ePenT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NmTIEPr168c111xDVFQUH330EYZhMHfuXMLDw+nZsyd9+vShcePGzJ49u8Ln57333iM3N5dJkyZRr1499+sPf/hDuev4+voyceJE2rdvT8+ePbFarXz88ccABAQEsGLFCho1asQf/vAHWrVqxejRo8nPzyckJASA++67jxYtWtC1a1eioqJYtWpVhes+lWGe7R1WyTIzMwkNDSUjI8N9UCIiIhVV3udJfn4+SUlJZxwrqjwlI9wfzztOo+BGruEkTlPoKGR/1n7q+NfhrlZ3ERsSW8aW5FJTkfedOtyLiIj8rlFII+5sdaf72Y4YruEkrIYVh+kgrSANTGgU3IghzYYoeMl5UfgSERE5RaOQRjzY8UF+S/2NdUfXkZyVTJGjCKvFStvItnSp24UWES2wWyvv0T5yaVH4EhEROY3daqd9VHva1WlHviOfImcRPhYf/Kx+VTqSvVwaFL5ERETKYRgG/jZ//Kna0evl0qK7HUVEpFby8v1kcomryPtN4UtERGoVHx/XaPO5ubnVXIlcSkrebyXvvzPRZUcREalVrFYrYWFhpKSkAK5xnNRPS6qKaZrk5uaSkpJCWFhYuWOxnUrhS0REap2YmBgAdwATqWphYWHu993ZKHyJiEitYxgG9erVIzo6+oIfBSNyNj4+PufU4lVC4UtERGotq9VaoQ9FEW9Qh3sRERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEiW3UXcDHJKSgmu6AYAwjysxHgq9MjIpegonzITwfTBN8AsIeAYVR3VSK1xiWfLlKy8tmYnMHmQxkczcynsNgJgK/NQt0QP9o1CKV9wzCigu3VXKmISBXKS4NDv7peGQdcAQwTrL4QWAfqtoOGXSA0VkFM5AIZpmma3txhZmYmoaGhZGRkEBIS4s1de8gvcrB0ewrLdxwjNaeQAF8rQXYb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RDSBNoNdfb10s4eIVBNddpQLkl/kYPPBDFYnpbI/NZecgmKKHE4Mw8Dfx0qwn42OjcLp3CiMuMjAs29Q5HxkHoIDa2H/z667GItyXC1hFpvrkmRIA4jrDg06l3o0kdRc+jyRmkrhSyqFaZpkFRSTkllAfpEDw4CwAF+iguz42nR1W7zEUQw5xyD3uKtfmM3uGkTVP1wtXbWQPk+kptL1H6kUhmEQ4uejEeulelltEFLP9RIRuUipSUJERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2ze3qFpmgBkZmZ6e9ciIlKLlHyOlHyuiNQUXg9fWVlZAMTGxnp71yIiUgtlZWURGhpa3WWInDPD9PJXBqfTyaFDhwgODsYwDG/u+pxkZmYSGxtLcnIyISEh1V1OjaRzeOF0Di+Mzt+Fqwnn0DRNsrKyqF+/PhaLetFIzeH1li+LxULDhg29vdsKCwkJuWh/4dQUOocXTufwwuj8XbiL/RyqxUtqIn1VEBEREfEihS8RERERL1L4Oo3dbufJJ5/EbrdXdyk1ls7hhdM5vDA6fxdO51Ck6ni9w72IiIjIpUwtXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKX6d4/fXXiY+Px8/PjyuuuILVq1dXd0k1yooVKxgwYAD169fHMAy+/PLL6i6pRpk0aRKXXXYZwcHBREdHM2jQIH777bfqLqtGmTp1Ku3bt3cPDNqtWzfmz59f3WXVWJMnT8YwDB555JHqLkWkVlH4+t3s2bOZMGECTz75JOvXr6dDhw707duXlJSU6i6txsjJyaFDhw68/vrr1V1KjbR8+XLGjBnDzz//zKJFiygqKuKGG24gJyenukurMRo2bMjkyZNZt24da9eu5dprr2XgwIFs2bKlukurcdasWcO0adNo3759dZciUutoqInfXXHFFVx22WW89tprgOsZlLGxsfzpT3/i8ccfr+bqah7DMPjiiy8YNGhQdZdSYx07dozo6GiWL19Oz549q7ucGisiIoIXXniB0aNHV3cpNUZ2djadO3fmjTfe4F//+hcdO3bklVdeqe6yRGoNtXwBhYWFrFu3jj59+rinWSwW+vTpw08//VSNlcmlLCMjA3CFB6k4h8PBxx9/TE5ODt26davucmqUMWPG0L9/f4/fiSJSebz+YO2L0fHjx3E4HNStW9djet26ddm+fXs1VSWXMqfTySOPPMJVV11F27Ztq7ucGmXTpk1069aN/Px8goKC+OKLL2jdunV1l1VjfPzxx6xfv541a9ZUdykitZbCl8hFaMyYMWzevJmVK1dWdyk1TosWLUhMTCQjI4PPPvuMESNGsHz5cgWwc5CcnMzDDz/MokWL8PPzq+5yRGothS+gTp06WK1Wjh496jH96NGjxMTEVFNVcqkaO3Ys8+bNY8WKFTRs2LC6y6lxfH19adq0KQBdunRhzZo1/Pe//2XatGnVXNnFb926daSkpNC5c2f3NIfDwYoVK3jttdcoKCjAarVWY4UitYP6fOH6Zd2lSxe+//579zSn08n333+vviLiNaZpMnbsWL744guWLFlCQkJCdZdUKzidTgoKCqq7jBrhuuuuY9OmTSQmJrpfXbt2Zfjw4SQmJip4iVQStXz9bsKECYwYMYKuXbty+eWX88orr5CTk8OoUaOqu7QaIzs7m127drl/TkpKIjExkYiICBo1alSNldUMY8aMYdasWcydO5fg4GCOHDkCQGhoKP7+/tVcXc0wceJEbrzxRho1akRWVhazZs1i2bJlLFy4sLpLqxGCg4NL9TEMDAwkMjJSfQ9FKpHC1++GDh3KsWPHeOKJJzhy5AgdO3ZkwYIFpTrhS/nWrl3LNddc4/55woQJAIwYMYIZM2ZUU1U1x9SpUwHo3bu3x/Tp06czcuRI7xdUA6WkpHD33Xdz+PBhQkNDad++PQsXLuT666+v7tJERNw0zpeIiIiIF6nPl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeNH/B2k+JUs07naKAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -233,12 +310,14 @@ "output_type": "stream", "text": [ "Time t=4\n", - "[Array([[11]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[21]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32)]\n", + "[1.5252098e-05 1.5252098e-05 1.5252098e-05 1.5252098e-05 9.9955767e-01]\n", + "[[1 0 0 0]]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABR7UlEQVR4nO3dd3wUZeLH8c/uZtMbCYFQQgKEFpoUG0hTlKh4yNGLimLhFBHs3u/snqCc5bAAntI88FBQQSwIUhRQASG0gLTQA4GEBNI3u/P7Y83KkgQSSCHL9/167Qsy88zMM5OBfPPM8zxjMgzDQERERESqPXNVV0BEREREyoeCnYiIiIiHULATERER8RAKdiIiIiIeQsFORERExEMo2ImIiIh4CAU7EREREQ+hYCciIiLiIRTsRERERDyEgp1UiRdeeAGTyeS2LCYmhhEjRlRqPWbMmIHJZGLfvn2VelwpHX1/RETKRsHuEpKUlMTo0aNp2rQp/v7++Pv7ExcXx0MPPcTmzZurunqXpX379mEymUr1KSl8xMTEYDKZ6NmzZ7Hr//Of/7j2sX79+go8mwtzvmswYcKEqq7iZWXOnDm8/fbbVV0NEblEeVV1BcRp0aJFDBo0CC8vL4YNG0bbtm0xm83s2LGDzz//nMmTJ5OUlER0dHRVV7XC/P7775jNl9bvGhEREXz88cduy9544w0OHTrEW2+9VaRsSXx9fVm+fDlHjx4lMjLSbd3s2bPx9fUlNze3/CpeAYYMGcItt9xSZHm7du0q7Jh33HEHgwcPxsfHp8KOUd3MmTOHrVu3Mnbs2KquiohcghTsLgF79uxh8ODBREdH88MPP1CnTh239a+99hrvv//+JRd6zpSVlUVAQMBF7eNS/OEdEBDA8OHD3Zb973//4+TJk0WWn0vnzp1Zt24dc+fO5ZFHHnEtP3ToED/99BN9+/Zl/vz55VbvitC+ffsynXN5sFgsWCyWc5YxDIPc3Fz8/PwqqVYiIpeuSzcpXEZef/11srKymD59epFQB+Dl5cWYMWOIiopyW75jxw769+9PWFgYvr6+dOzYkYULF7qVKeyjtHr1ah599FEiIiIICAigb9++HD9+vMixvv32W7p06UJAQABBQUHceuutbNu2za3MiBEjCAwMZM+ePdxyyy0EBQUxbNgwAH766ScGDBhAgwYN8PHxISoqinHjxpGTk3Pe63B2H7vSPvYszXUA2LZtG9dffz1+fn7Ur1+fV155BYfDcd56lQdfX1/++te/MmfOHLfln3zyCTVq1KBXr15Fttm8eTMjRoygUaNG+Pr6EhkZyT333ENqaqqrzPkek57p119/JT4+npCQEPz9/enWrRurV68u1/OMiYmhd+/erFq1iquuugpfX18aNWrErFmzXGXWr1+PyWRi5syZRbZfvHgxJpOJRYsWAcX3sSs8xuLFi+nYsSN+fn5MnToVgL179zJgwADCwsLw9/fnmmuu4euvv3Y7xooVKzCZTHz66af885//pH79+vj6+nLDDTewe/dut7Ldu3enVatWbN68mW7duuHv709sbCzz5s0DYOXKlVx99dX4+fnRrFkzli5dWuScDh8+zD333EPt2rXx8fGhZcuWTJs27YLq1L17d77++mv279/v+h7HxMSU4jsjIpcLtdhdAhYtWkRsbCxXX311qbfZtm0bnTt3pl69ejz99NMEBATw6aefcvvttzN//nz69u3rVv7hhx+mRo0aPP/88+zbt4+3336b0aNHM3fuXFeZjz/+mLvuuotevXrx2muvkZ2dzeTJk7nuuuvYuHGj2w+QgoICevXqxXXXXce//vUv/P39Afjss8/Izs7mb3/7G+Hh4axdu5Z33nmHQ4cO8dlnn5Xpupz9CBTgH//4BykpKQQGBpbpOhw9epQePXpQUFDgKvfBBx9UaivP0KFDuemmm9izZw+NGzcGnI/V+vfvj9VqLVJ+yZIl7N27l7vvvpvIyEi2bdvGBx98wLZt2/jll18wmUzFPiq22WyMGzcOb29v17Jly5Zx880306FDB55//nnMZjPTp0/n+uuv56effuKqq646b/2zs7M5ceJEkeWhoaF4ef35X8nu3bvp378/I0eO5K677mLatGmMGDGCDh060LJlSzp27EijRo349NNPueuuu9z2NXfu3BKD7pl+//13hgwZwgMPPMB9991Hs2bNOHbsGJ06dSI7O5sxY8YQHh7OzJkz+ctf/sK8efOK/JuYMGECZrOZxx9/nIyMDF5//XWGDRvGr7/+6lbu5MmT9O7dm8GDBzNgwAAmT57M4MGDmT17NmPHjmXUqFEMHTqUiRMn0r9/fw4ePEhQUBAAx44d45prrsFkMjF69GgiIiL49ttvGTlyJKdOnSryOPV8dfq///s/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7t27M3XqVJKTk4uUL24ak/Pp1asXwcHBvPrqq9hstgvaZ2Frw5n1NQyDf//732WuD8D06dOZOnUq7733XrGBtyzX4ZZbbuGXX35h7dq1butnz559QXU7W1xcHD179nR9OnToUGLZe++9l+eff5433nijxDLFXUug2DcOvPjiiyxevJhPPvmk2EeUHTp0oHHjxvzrX/8q9pH/hdwv5aFFixa0bt2auXPnMnfuXOrUqUPXrl0veH+33HILa9eu5eeff3Yty8rK4oMPPiAmJqZIX8CKZrFY6NevH/Pnzy+2Rf5Cr3tAQMAFd2sQEc+nFrtLQJMmTZgzZw5DhgyhWbNmrjdPGIZBUlISc+bMwWw2u/Vpe++997juuuto3bo19913H40aNeLYsWP8/PPPHDp0iE2bNpWpDsHBwUyePJk77riD9u3bM3jwYCIiIjhw4ABff/01nTt35t133z3nPpo3b07jxo15/PHHOXz4MMHBwcyfP/+C+gedOHGCBx98kLi4OHx8fPjvf//rtr5v374EBASU+jo8+eSTfPzxx8THx/PII4+4pjuJjo6u9Ne1RUdH88ILL5yzTHBwMF27duX111/HZrNRr149vv/+e5KSktzKbdmyhZdffpmuXbuSkpJS5DoNHz4cs9nMhx9+yM0330zLli25++67qVevHocPH2b58uUEBwfz1VdfnbfeGzZsKLJ/cLYIXnvttec/8WIMGjSI5557Dl9fX0aOHHlRk3A//fTTfPLJJ9x8882MGTOGsLAwZs6cSVJSEvPnz6+SCb4nTJjA8uXLufrqq7nvvvuIi4sjLS2NDRs2sHTpUtLS0sq8zw4dOjB37lweffRRrrzySgIDA7ntttsqoPYiUh0p2F0i+vTpw5YtW3jjjTf4/vvvmTZtGiaTiejoaG699VZGjRpF27ZtXeXj4uJYv349L774IjNmzCA1NZVatWrRrl07t0d3ZTF06FDq1q3LhAkTmDhxInl5edSrV48uXbpw9913n3d7q9XKV199xZgxYxg/fjy+vr707duX0aNHu9W9NDIzM8nNzSUxMdE1CvZMSUlJBAQElPo61KlTh+XLl/Pwww8zYcIEwsPDGTVqFHXr1nV13r/UzJkzh4cffpj33nsPwzC46aab+Pbbb6lbt66rTGpqKoZhsHLlSlauXFlkH4WPh7t3787PP//Myy+/zLvv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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1C0lEQVR4nO3dd3hUZf7+8feZmWTSGwRCCUmQXqVYAGmKAiJfQFREVEDUVWER0F11f2vfFdS1LBbEQnNFUVFBFBCkKEWlGOnSAgQEAqT3ZOb8/hgzMCQBAsmEhPt1XXNBTv3MYcjc8zzPecYwTdNERERERLzCUtkFiIiIiFxKFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL7Ea5555hkMw/BYFhsby4gRI7xax4wZMzAMg3379nn1vHJu9O8jItWdwlclS0hIYMyYMTRp0oSAgAACAgJo0aIFo0ePZtOmTZVd3iVp3759GIZxTo/SAkJsbCyGYdCrV68S17/33nvuY6xfv74Cn835Ods1mDRpUmWXeEmZPXs2r7/+emWXISLlxFbZBVzKFixYwJAhQ7DZbAwbNoy2bdtisVjYsWMHX3zxBVOmTCEhIYGYmJjKLrXC/P7771gsF9dngMjISD788EOPZa+88goHDx7ktddeK7Ztafz8/Fi+fDlHjhwhKirKY91HH32En58fubm55Vd4BRg6dCg33nhjseXt2rWrsHPedddd3H777djt9go7R1Uze/ZstmzZwrhx4yq7FBEpBwpflWTPnj3cfvvtxMTE8P3331OnTh2P9S+++CJvv/32RRdMTpWVlUVgYOAFHeNifIMNDAzkzjvv9Fj2ySefkJKSUmz5mXTp0oV169YxZ84cHn74YffygwcP8uOPPzJo0CDmzp1bbnVXhPbt25fpOZcHq9WK1Wo94zamaZKbm4u/v7+XqhIRKT8X7zt7NffSSy+RlZXF9OnTiwUvAJvNxtixY4mOjvZYvmPHDm655RYiIiLw8/OjY8eOzJ8/32ObojEzq1evZsKECURGRhIYGMigQYM4duxYsXMtXLiQrl27EhgYSHBwMP369WPr1q0e24wYMYKgoCD27NnDjTfeSHBwMMOGDQPgxx9/5NZbb6VBgwbY7Xaio6MZP348OTk5Z70Op4/5OtcuvnO5DgBbt27l2muvxd/fn/r16/Ovf/0Lp9N51rrKg5+fHzfffDOzZ8/2WP7xxx8THh5O7969i+2zadMmRowYQcOGDfHz8yMqKop77rmHEydOuLc5W5fgqX7++Wf69OlDaGgoAQEBdO/endWrV5fr84yNjeWmm25i1apVXHnllfj5+dGwYUNmzZrl3mb9+vUYhsHMmTOL7b948WIMw2DBggVAyWO+is6xePFiOnbsiL+/P1OnTgVg79693HrrrURERBAQEMDVV1/NN99843GOFStWYBgGn376Kf/+97+pX78+fn5+XHfddezevdtj2x49etCqVSs2bdpE9+7dCQgIoFGjRnz++ecArFy5kquuugp/f3+aNm3K0qVLiz2nQ4cOcc8991C7dm3sdjstW7Zk2rRp51VTjx49+Oabb9i/f7/73zg2NvYc/mVE5GKllq9KsmDBAho1asRVV111zvts3bqVLl26UK9ePR5//HECAwP59NNPGThwIHPnzmXQoEEe2//1r38lPDycp59+mn379vH6668zZswY5syZ497mww8/ZPjw4fTu3ZsXX3yR7OxspkyZwjXXXMOvv/7q8Uu+sLCQ3r17c8011/Cf//yHgIAAAD777DOys7N58MEHqVGjBr/88gtvvPEGBw8e5LPPPivTdTm9uw/gn//8J0lJSQQFBZXpOhw5coSePXtSWFjo3u7dd9/1amvJHXfcwQ033MCePXu47LLLAFcX0i233IKPj0+x7ZcsWcLevXsZOXIkUVFRbN26lXfffZetW7fy008/YRhGid2iBQUFjB8/Hl9fX/eyZcuW0bdvXzp06MDTTz+NxWJh+vTpXHvttfz4449ceeWVZ60/Ozub48ePF1seFhaGzXby18fu3bu55ZZbGDVqFMOHD2fatGmMGDGCDh060LJlSzp27EjDhg359NNPGT58uMex5syZU2oYPdXvv//O0KFD+ctf/sJ9991H06ZNOXr0KJ07dyY7O5uxY8dSo0YNZs6cyf/93//x+eefF/s/MWnSJCwWC48++ihpaWm89NJLDBs2jJ9//tlju5SUFG666SZuv/12br31VqZMmcLtt9/ORx99xLhx43jggQe44447ePnll7nllltITEwkODgYgKNHj3L11VdjGAZjxowhMjKShQsXMmrUKNLT04t1HZ6tpv/3//4faWlp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Rw+mTp3K4cOHi21f0hQSZ9O7d29CQkJ44YUXKCgoOK9jFn1qP7Ve0zT573//W+Z6AKZPn87UqVN56623SgylZbkON954Iz/99BO//PKLx/qPPvrovGo7XYsWLejVq5f70aFDh1K3vffee3n66ad55ZVXSt2mpGsJlDiz+bPPPsvixYv5+OOPS+yO69ChA5dddhn/+c9/SuzePp/XS3lo3rw5rVu3Zs6cOcyZM4c6derQrVu38z7ejTfeyC+//MLatWvdy7Kysnj33XeJjY0tNjatolmtVgYPHszcuXNLbNk+3+seGBh43l34InLxUctXJWncuDGzZ89m6NChNG3a1D3DvWmaJCQkMHv2bCwWi8cYq7feeotrrrmG1q1bc99999GwYUOOHj3K2rVrOXjwIL/99luZaggJCWHKlCncddddtG/fnttvv53IyEgOHDjAN998Q5cuXXjzzTfPeIxmzZpx2WWX8eijj3Lo0CFCQkKYO3fueY1XOX78OA899BAtWrTAbrfzv//9z2P9oEGDCAwMPOfr8Pe//50PP/yQPn368PDDD7unmoiJifH6VzfFxMTwzDPPnHGbkJAQunXrxksvvURBQQH16tXju+++IyEhwWO7zZs38/zzz9OtWzeSkpKKXac777wTi8XC+++/T9++fWnZsiUjR46kXr16HDp0iOXLlxMSEsLXX3991ro3btxY7Pjgalnr1KnT2Z94CYYMGcJTTz2Fn58fo0aNuqCJhB9//HE+/vhj+vbty9ixY4mIiGDmzJkkJCQwd+7cSpmkeNKkSSxfvpyrrrqK++67jxYtWpCcnMzGjRtZunQpycnJZT5mhw4dmDNnDhMmTOCKK64gKCiI/v37V0D1IuINCl+VaMCAAWzevJlXXnmF7777jmnTpmEYBjExMfTr148HHniAtm3burdv0aIF69ev59lnn2XGjBmcOHGCWrVq0a5dO49uqrK44447qFu3LpMmTeLll18mLy+PevXq0bVrV0aOHHnW/X18fPj6668ZO3YsEydOxM/Pj0GDBjFmzBiP2s9FZmYmubm5bNu2zX1346kSEhIIDAw85+tQp04dli9fzl//+lcmTZpEjRo1eOCBB6hbt657wPfFZvbs2fz1r3/lrbfewjRNbrjhBhYuXEjdunXd25w4cQLTNFm5ciUrV64sdoyirtAePXqwdu1ann/+ed58800yMzOJioriqquu4i9/+cs51fPxxx+779Q81fDhwy8ofP3zn/8kOzv7nO5yPJPatWuzZs0aHnvsMd544w1yc3Np06YNX3/9Nf369bugY19ITb/88gvPPfccX3zxBW+//TY1atSgZcuWvPjii+d1zIceeoj4+HimT5/Oa6+9RkxMjMKXSBVmmBrVKSIiIuI1GvMlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJe5PV5vpxOJ3/88QfBwcH6ygwRETlvpmmSkZFB3bp1K2VCXZHz5fXw9ccffxAdHe3t04qISDWVmJjo8W0gIhc7r4ev4OBgwPWfJSQkxNunFxGRaiI9PZ3o6Gj3+4pIVeH18FXU1RgSEqLwJSIiF0xDWKSqUSe5iIiIiBcpfImIiIh4kcKXiIiIiBd5fcyXiIiItzgcDgoKCiq7DKnmfHx8sFqt57y9wpeIiFQ7pmly5MgRUlNTK7sUuUSEhYURFRV1TjeAKHyJiEi1UxS8atWqRUBAgO6IlApjmibZ2dkkJSUBUKdOnbPuo/AlIiLVisPhcAevGjVqVHY5cgnw9/cHICkpiVq1ap21C1ID7kVEpFopGuMVEBBQyZXIpaTo9XYuYwwVvkREpFpSV6N4U1lebwpfIiIiIl6k8CUiIiLiRQpfIiIip8nPz7+g9RfqyJEj/PWvf6Vhw4bY7Xaio6Pp378/33//fYWeV7xD4UtEROQUc+bMoXXr1iQmJpa4PjExkdatWzNnzpwKOf++ffvo0KEDy5Yt4+WXX2bz5s0sWrSInj17Mnr06Ao5p3iXwpeIiMif8vPzeeqpp9i5cyc9evQoFsASExPp0aMHO3fu5KmnnqqQFrCHHnoIwzD45ZdfGDx4ME2aNKFly5ZMmDCBn376iX379mEYBvHx8e59UlNTMQyDFStWuJdt2bKFvn37EhQURO3atbnrrrs4fvx4udcrZafwJSIi8idfX1+WLl1Kw4YN2bt3r0cAKwpee/fupWHDhixduhRfX99yPX9ycjKLFi1i9OjRBAYGFlsfFhZ2TsdJTU3l2muvpV27dqxfv55FixZx9OhRbrvttnKtV86PwpeIiMgpoqOjWbFihUcAW7NmjUfwWrFiBdHR0eV+7t27d2OaJs2aNbug47z55pu0a9eOF154gWbNmtGuXTumTZvG8uXL2blzZzlVK+dLM9yLiIicpiiAFQWuLl26AFRo8ALXV9WUh99++43ly5cTFBRUbN2ePXto0qRJuZxHzo/Cl4iISAmio6P58MMP3cEL4MMPP6yw4AXQuHFjDMNgx44dpW5jsbg6rU4NaqfPqp6ZmUn//v158cUXi+1/Lt89KBVL3Y4iIiIlSExM5K677vJYdtddd5V6F2R5iIiIoHfv3rz11ltkZWUVW5+amkpkZCQAhw8fdi8/dfA9QPv27dm6dSuxsbE0atTI41HSWDLxLoUvERGR05w+uH716tUlDsKvCG+99RYOh4Mrr7ySuXPnsmvXLrZv387kyZPp1KkT/v7+XH311UyaNInt27ezcuVK/vnPf3ocY/To0SQnJzN06FDWrVvHnj17WLx4MSNHjsThcFRY7XJuFL5EREROcXrwWrFiBZ07dy42CL+iAljDhg3ZuHEjPXv25JFHHqFVq1Zcf/31fP/990yZMgWAadOmUVhYSIcOHRg3bhz/+te/PI5Rt25dVq9ejcPh4IYbbqB169aMGzeOsLAwd7elVB7DLK/RfecoPT2d0NBQ0tLSCAkJ8eapRUSkGint/SQ3N5eEhATi4uLw8/Mr0zHz8/Np3bo1O3fuLHFw/anBrEmTJmzevLncp5uQqqksrzvFXxERkT/5+vry3HPP0aRJkxLvaiy6C7JJkyY899xzCl5yXnS3o4iIyCmGDBnCoEGDSg1W0dHRavGSC6KWLxERkdOcLVgpeMmFUPgSERER8SKFLxEREREv0pgvuWCmaXIo8xCHMg+RlJ1EZn4mVouVGv41qOVfi4ZhDQn00aR+UrFyC3NJSEsgKTuJYznHKHAU4O/jT62AWtQJrENMSAwWQ583RaTyKXzJeTNNk12pu1h9aDW7U3aTVZiFgYHNYsM0TRymA8MwqOlfkw61O9C5bmeCfYMru2ypZnILc/np8E+sO7KOI1lHcJgOrIYVi2HBYTowTRO71U5saCyd6naidc3WCmEiUqkUvuS85DnyWLpvKav/WE2uI5faAbWpG1QXwzA8tit0FnIi9wTf7v2Wrce30q9hP5pGNK2kqqW6ScxI5Os9X7MzZSdBPkE0CG6Aj9Wn2HbZBdnsSd3D3tS9dIzqyI1xNxLkW/wLh0VEvEHhS8osz5HH3J1zWZG4gmDfYEJ9Q8ktzCW3MLfE7S1YCLWHsiN5B/vS9tG/UX+uj7neu0VLtbMvbR8f7/iYpOwkYkNi8bWWfvdZgE8AcaFxZORnsPqP1aTlpXF7s9vVEisilULhS8rENE2+3/89KxJXsPbw2vM6xvKDy5l2wzSuqHNF+RYnl4y0vDQ+3/U5x3OOc1nYZefcjRjsG0ysNZYtx7fw9Z6vub3Z7eqClEvCihUr6NmzJykpKYSFhZW6XWxsLOPGjWPcuHFeq+1SpN86UiZ7Uvew+o/VF9xls/TAUgqcBeVUlVxKTNNk6f6lJKYnEhsSW2J4ys+1kn7Cn/xca7F1dqudesH1+DXpV+KT4r1QsVR5OTlw9Kjrzwo2YsQIDMPAMAx8fX1p1KgRzz33HIWFhRd03M6dO3P48GFCQ0MBmDFjRokhbN26ddx///0XdC45uwsKX5MmTcIwDCXkS4Rpmqw9vJbsgmxCfUMv6FgJaQnsSd1TTpXJpeRw1mF+TfqV2oG1sVo8w9XuX6N495HeTOhyH0/0GsmELvfx7iO92RMf5bFdkE8QFsPCj4d+1IcAKd2qVXDzzRAUBFFRrj9vvhlWr67Q0/bp04fDhw+za9cuHnnkEZ555hlefvnlCzqmr68vUVFRxcblni4yMpKAgIALOpec3XmHr3Xr1jF16lTatGlTnvXIRexo9lF+T/6dWgG1LvhYTtOpVgc5L1uObyGjIKPYB4AfPm3Ja6MGsXllHKbT9avNdFrYvDKOV+8ZxI+ftfTYvnZAbQ5mHGRv6l6v1S5VyJQp0K0bfP01OJ2uZU6n6+euXeGddyrs1Ha7naioKGJiYnjwwQfp1asX8+fPJyUlhbvvvpvw8HACAgLo27cvu3btcu+3f/9++vfvT3h4OIGBgbRs2ZJvv/0WcHU7GoZBamoqK1asYOTIkaSlpblb2Z555hnA1e34+uuvA3DHHXcwZMgQj9oKCgqoWbMms2bN+vOSOJk4cSJxcXH4+/vTtm1bPv/88wq7NtXFeYWvzMxMhg0bxnvvvUd4eHh51yQXqT8y/yCrIIsQ35ALPlaQTxB7U/eq1UHKbHfqbgJtgR6f4Hf/GsWcSd3ANHA6PH+tOR0WMA0+mdjNowXMz+ZHobOQw1mHvVa7VBGrVsHo0WCacHp3X2Gha/lDD1V4C1gRf39/8vPzGTFiBOvXr2f+/PmsXbsW0zS58cYbKShw/R4dPXo0eXl5/PDDD2zevJkXX3yRoKDiQ0Q6d+7M66+/TkhICIcPH+bw4cM8+uijxbYbNmwYX3/9NZmZme5lixcvJjs7m0GDBgEwceJEZs2axTvvvMPWrVsZP348d955JytXrqygq1E9nFf4Gj16NP369aNXr17lXY9cxI7lHAM4a7P1ufCz+ZFZkMmJnBMXfCy5dGQXZHM85zgBPp7dIsv+1xaLxTzjvhaLybL/tfVYZrPYOJR5qNzrlCru1VfBWny8oAerFV57rULLME2TpUuXsnjxYho0aMD8+fN5//336dq1K23btuWjjz7i0KFDfPXVVwAcOHCALl260Lp1axo2bMhNN91Et27dih3X19eX0NBQDMMgKiqKqKioEkNa7969CQwM5Msvv3Qvmz17Nv/3f/9HcHAweXl5vPDCC0ybNo3evXvTsGFDRowYwZ133snUqVMr7LpUB2W+2/GTTz5h48aNrFu37py2z8vLIy8vz/1zenp6WU8pF4mcwpxyCV7getPLd+ST58g7+8Yif8p35FPoLPT4xoT8XCubVpzsaiyN02Hht+Vx5Oda8fVzAOBj8SEzP/OM+8klJicH5s072dVYmsJC+PJL1/b+/uVawoIFCwgKCqKgoACn08kdd9zBzTffzIIFC7jqqqvc29WoUYOmTZuyfft2AMaOHcuDDz7Id999R69evRg8ePAFDQ2y2WzcdtttfPTRR9x1111kZWUxb948PvnkEwB2795NdnY211/vOXVQfn4+7dq1O+/zXgrK1PKVmJjIww8/zEcffYSfn9857TNx4kRCQ0Pdj+jo6PMqVCqf1bDCmRsXzplpmhiGodv8pUwMw8DAwGmefGPMzfI9a/AqYjot5GadnA/MaTqxWTTjjpwiPf3swauI0+navpz17NmT+Ph4du3aRU5ODjNnzjynD7733nsve/fu5a677mLz5s107NiRN95444JqGTZsGN9//z1JSUl89dVX+Pv706dPHwB3d+Q333xDfHy8+7Ft2zaN+zqLMr3zbdiwgaSkJNq3b4/NZsNms7Fy5UomT56MzWbD4XAU2+eJJ54gLS3N/UhMTCy34sW7wv3CMcspfeU6cvG3+RNmDyuX48mlIdg3mECfQHIKT97y7xeYj2E5tzdLw+LELzDf/XOeI4+owKgz7CGXnJAQsJzjW6PF4tq+nAUGBtKoUSMaNGiAzeb6cNC8eXMKCwv5+eef3dudOHGC33//nRYtWriXRUdH88ADD/DFF1/wyCOP8N5775V4Dl9f3xLfs0/XuXNnoqOjmTNnDh999BG33norPj6ub5Fo0aIFdrudAwcO0KhRI4+HGlrOrEwf+a677jo2b97ssWzkyJE0a9aMxx57DGsJfeR2ux273X5hVcpFIdI/EqthJd+Rf/aNzyKnMIe40DiCfPQVL3LuLIaFBiEN+OXIL+5lvn4O2vRIYPPKuGKD7T32tTpp0yPB3eVY1HpWHnfvSjXi7w8DBrjuajzT3Fo2m2u7cu5yLE3jxo0ZMGAA9913H1OnTiU4OJjHH3+cevXqMWDAAADGjRtH3759adKkCSkpKSxfvpzmzZuXeLzY2FgyMzP5/vvvadu2LQEBAaVOMXHHHXfwzjvvsHPnTpYvX+5eHhwczKOPPsr48eNxOp1cc801pKWlsXr1akJCQhg+fHj5X4hqokwtX8HBwbRq1crjERgYSI0aNWjVqlVF1SgXidjQWKICo9wD7y9EriOXtpFty20MmVw6WtRogYHh8SHg2jt/w+k882vJ6TS49s7f3D+n5KYQZg+jcVjjCqtVqqgJE+BsrUIOB4wf7516/jR9+nQ6dOjATTfdRKdOnTBNk2+//dbdEuVwOBg9ejTNmzenT58+NGnShLfffrvEY3Xu3JkHHniAIUOGEBkZyUsvvVTqeYcNG8a2bduoV68eXbp08Vj3/PPP8+STTzJx4kT3eb/55hvi4uLK74lXQ4ZpmhfUj9SjRw8uv/xy97wgZ5Oenk5oaChpaWmEVEBzrVSsHw7+wBe7viDIJ4h5e+ad93Guj7meJ69+knA/TVUiZZPnyOPt+Lc5nHmY2NBY9/IfP2vJJxO7YbGYHi1gFqsTp9Pg9id+oOutWwFwmA52p+ymZ4OeDGw00MvPQMpLae8nubm5JCQkEBcXd87jk4t55x3XdBJWq2cLmM3mCl5vvw0PPHCBz0Cqk7K87i54tPOKFSvOOXhJ1XdF1BU0CW/CkawjF3ScK6OuVPCS82K32rkh9gYshoWU3BT38q63bmXCtC9p0yPBPQbMsLi6GidM+9IdvEzTJDEjkXpB9ehRv0dlPAWpCh54AH780dW1WDQGzGJx/fzjjwpeckF0m4+Uib/Nn5sa3nTBXw3UskbLs28kUooWES3oVr8bS/YvwTAM940bl11+hMsuP0J+rpXcLF/8AvPdY7zAFbwOZh7EbrXT77J+hPmFVc4TkKqhSxfXIyfHdVdjSIjXxnhJ9ab7/KXMGoQ0uOCumhC7upzl/BmGwQ2xN9CrQS/S8tLYn76fQufJriFfPwchNXI8gldOYQ67U3fjb/Pnlia36AOAnDt/f6hdW8FLyo1avuS8dK3flf/1/R/fH/ie3Sm7yXXmEmgLxN/mj81iwzRN8hx5ZBdmk+/MJ8IvgiujrqR5RHNC7CHEhMRU9lOQKs5msXFjwxuJDonmu/3fsS99H1bDSrBvMP42fyyGhUJnIdkF2aTnp2Oz2GhVsxV94/pSN6huZZcvIpcwhS85b21rtaV1ZGv2p+9n07FN7EzZSUZ+BgXOAldXkF8YTQOa0jqyNS1rtCTUHnr2g4qUgWEYtIlsQ6OwRmxP3s6mY5s4lHGI1NxUnDixGTaCfINoFdmKNjXbcFnYZZpUVUQqnX4LyQWxGBbiQuOIC43DaTpJzUslrzAPwzAItYfib1MzvVS8AJ8AOtTuQIfaHchz5LnCl+nEx+pDuD0cq+Us39MnIuJFCl9SbiyGhQi/iMouQy5xdqud2oG1K7sMEZFSacC9iIiIiBcpfImIiIh4kcKXiIiInLPY2FhNrn6BFL5ERETOICcHjh51/VnRRowYgWEYTJo0yWP5V1995fXvwp0xYwZhYWHFlq9bt47777/fq7VUNwpfIiIiJVi1Cm6+GYKCICrK9efNN8Pq1RV7Xj8/P1588UVSUlLOvnEliIyMJCAgoLLLqNIUvkRERE4zZQp06wZffw1O11eF4nS6fu7a1fW92xWlV69eREVFMXHixFK3WbVqFV27dsXf35/o6GjGjh1LVlaWe/3hw4fp168f/v7+xMXFMXv27GLdha+++iqtW7cmMDCQ6OhoHnroITIzMwHX9zaPHDmStLQ0DMPAMAyeeeYZwLPb8Y477mDIkCEetRUUFFCzZk1mzZoFgNPpZOLEicTFxeHv70/btm35/PPPy+FKVV0KXyIiIqdYtQpGjwbThMJCz3WFha7lDz1UcS1gVquVF154gTfeeIODBw8WW79nzx769OnD4MGD2bRpE3PmzGHVqlWMGTPGvc3dd9/NH3/8wYoVK5g7dy7vvvsuSUlJHsexWCxMnjyZrVu3MnPmTJYtW8bf//53ADp37szrr79OSEgIhw8f5vDhwzz66KPFahk2bBhff/21O7QBLF68mOzsbAYNGgTAxIkTmTVrFu+88w5bt25l/Pjx3HnnnaxcubJcrleVZHpZWlqaCZhpaWnePrWIiFQjpb2f5OTkmNu2bTNzcnLO67iDBpmmzWaarphV8sNmM83Bg8vjWXgaPny4OWDAANM0TfPqq68277nnHtM0TfPLL780i96yR40aZd5///0e+/3444+mxWIxc3JyzO3bt5uAuW7dOvf6Xbt2mYD52muvlXruzz77zKxRo4b75+nTp5uhoaHFtouJiXEfp6CgwKxZs6Y5a9Ys9/qhQ4eaQ4YMMU3TNHNzc82AgABzzZo1HscYNWqUOXTo0DNfjCqmLK87TbIqIiLyp5wcmDfvZFdjaQoL4csvXdtX1Pdtv/jii1x77bXFWpx+++03Nm3axEcffeReZpomTqeThIQEdu7cic1mo3379u71jRo1Ijw83OM4S5cuZeLEiezYsYP09HQKCwvJzc0lOzv7nMd02Ww2brvtNj766CPuuususrKymDdvHp988gkAu3fvJjs7m+uvv95jv/z8fNq1a1em61GdKHyJiIj8KT397MGriNPp2r6iwle3bt3o3bs3TzzxBCNGjHAvz8zM5C9/+Qtjx44ttk+DBg3YuXPnWY+9b98+brrpJh588EH+/e9/ExERwapVqxg1ahT5+fllGlA/bNgwunfvTlJSEkuWLMHf358+ffq4awX45ptvqFevnsd+drv9nM9R3Sh8iYiI/CkkBCyWcwtgFotr+4o0adIkLr/8cpo2bepe1r59e7Zt20ajRo1K3Kdp06YUFhby66+/0qFDB8DVAnXq3ZMbNmzA6XTyyiuvYLG4hn9/+umnHsfx9fXF4XCctcbOnTsTHR3NnDlzWLhwIbfeeis+Pj4AtGjRArvdzoEDB+jevXvZnnw1pvAlIiLyJ39/GDDAdVfj6YPtT2WzubarqFavIq1bt2bYsGFMnjzZveyxxx7j6quvZsyYMdx7770EBgaybds2lixZwptvvkmzZs3o1asX999/P1OmTMHHx4dHHnkEf39/91xhjRo1oqCggDfeeIP+/fuzevVq3jntFs7Y2FgyMzP5/vvvadu2LQEBAaW2iN1xxx2888477Ny5k+XLl7uXBwcH8+ijjzJ+/HicTifXXHMNaWlprF69mpCQEIYPH14BV+3ip7sdRURETjFhApytwcfh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Z66v2Nnr5dKiux1FREREvEjhS0RERMSLFL5EREREvEhjvkREREphmia5jlwKnAX4WHzws/rpRhi5YApfIiIip8lz5LEjeQcbj24kMSMRh9OB1WIlOjia9rXb0yyiGXbr+X+9jFzaFL5EREROcSD9AF/s+oLEjEQMwyDMHoavzZdCs5CtJ7ay5fgWooOjubnxzTQIaVBpdRqGwZdffsnAgQMrrQY5PxrzJSIi8qcD6Qf43/b/cSDjAA2CG9AwtCERfhGE2EOI8IugYWhDGgQ34EDGn9ulHyjX848YMQLDMDAMAx8fH2rXrs3111/PtGnTcDqdHtsePnyYvn37ntNxDcPgq6++KtdaS/PMM8+U+gXX5WHFihUMGDCAOnXqEBgYyOWXX85HH31UYecD179LeYZchS8RERFcXY1f7PqC4znHuSz0MnysPiVu52P14bLQyziec5wvdn1BniOvXOvo06cPhw8fZt++fSxcuJCePXvy8MMPc9NNN1FYWOjeLioqCru9/Lo+8/Pzy+1Y5aG0etasWUObNm2YO3cumzZtYuTIkdx9990sWLDAyxWeP4UvERERYEfyDhIzEokJjjnroHrDMGgQ3IDEjER+T/69XOuw2+1ERUVRr1492rdvzz/+8Q/mzZvHwoULmTFjhkcNRa1Z+fn5jBkzhjp16uDn50dMTAwTJ04EIDY2FoBBgwZhGIb756IWqvfff9/jy6AXLVrENddcQ1hYGDVq1OCmm25iz549HjUePHiQoUOHEhERQWBgIB07duTnn39mxowZPPvss/z222/uFryimg8cOMCAAQMICgoiJCSE2267jaNHj7qPWVo9p/vHP/7B888/T+fOnbnssst4+OGH6dOnD1988UWp1zQlJYVhw4YRGRmJv78/jRs3Zvr06e71iYmJ3HbbbYSFhREREcGAAQPYt2+fu66ZM2cyb94893NasWLFmf4Jz0pjvkRE5JJnmiYbj250dfeV0uJ1Ol+rLxiw4egGWtdsXaF3QV577bW0bduWL774gnvvvbfY+smTJzN//nw+/fRTGjRoQGJiIomJiQCsW7eOWrVqMX36dPr06YPVevIbNHbv3s3cuXP54osv3MuzsrKYMGECbdq0ITMzk6eeeopBgwYRHx+PxWIhMzOT7t27U69ePebPn09UVBQbN27E6XQyZMgQtmzZwqJFi1i6dCkAoaGhOJ1Od/BauXIlhYWFjB49miFDhngEmZLqORdpaWk0b9681PVPPvkk27ZtY+HChdSsWZPdu3eTk5MDQEFBAb1796ZTp078+OOP2Gw2/vWvf9GnTx82bdrEo48+yvbt20lPT3cHtoiIiHOurSQKXyIicsnLdeSSmJFImD2sTPuF28NJzEgk15GLv82/Yor7U7Nmzdi0aVOJ6w4cOEDjxo255pprMAyDmJgY97rIyEgAwsLCiIqK8tgvPz+fWbNmubcBGDx4sMc206ZNIzIykm3bttGqVStmz57NsWPHWLdunTuENGrUyL19UFAQNpvN41xLlixh8+bNJCQkEB0dDcCsWbNo2bIl69at44orrii1nrP59NNPWbduHVOnTi11mwMHDtCuXTs6duwInGwNBJgzZw5Op5P333/fHaCnT59OWFgYK1as4IYbbsDf35+8vLxi1+98qdtRREQueQXOAhxOBzajbG0SVsOKw+mgwFlQQZWdZJpmqa1rI0aMID4+nqZNmzJ27Fi+++67czpmTExMsaCza9cuhg4dSsOGDQkJCXEHlQMHXDcXxMfH065duzK1/mzfvp3o6Gh38AJo0aIFYWFhbN++/Yz1nMny5csZOXIk7733Hi1btix1uwcffJBPPvmEyy+/nL///e+sWbPGve63335j9+7dBAcHExQURFBQEBEREeTm5hbrbi0vavkSEZFLno/FB6vFSqFZePaNT+EwXfN/+VjOravyQmzfvp24uLgS17Vv356EhAQWLlzI0qVLue222+jVqxeff/75GY8ZGBhYbFn//v2JiYnhvffeo27dujidTlq1auUeAO/vX3EtfCXVU5qVK1fSv39/XnvtNe6+++4zbtu3b1/279/Pt99+y5IlS7juuusYPXo0//nPf8jMzKRDhw4l3jFZliBYFmr5EhGRS56f1Y/o4GhS81LLtF9KXgrRwdH4WUseHF5eli1bxubNm4t1CZ4qJCSEIUOG8N577zFnzhzmzp1LcnIyAD4+PjgcjrOe58SJE/z+++/885//5LrrrqN58+akpKR4bNOmTRvi4+Pdxz6dr69vsXM1b97cYxwawLZt20hNTaVFixZnret0K1asoF+/frz44ovcf//957RPZGQkw4cP53//+x+vv/467777LuAKrrt27aJWrVo0atTI4xEaGlrqc7oQCl8iInLJMwyD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ERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIltlFyDVg2mapGYXcCwzj5x8BxbDICzAh8hgO34+1souTy4VjgLIPApZx8F0gNUOQbUhoAZY9FlTRC4OCl9yQXLyHWw6mMovCckkpmSTlefAYToBAz+bhRA/H9pEh9K+QThxNQMxDKOyS5bqKO0gJK6DxJ8hJwUKsl3LDQv4BkFwFMR2gXodwC+0cmsVkUueYZqm6c0TpqenExoaSlpaGiEhId48tZSz3UkZzI//g11JmdisBhEBvgTabfhYLZimSU6Bg4zcQlKyCwiyW7mmcSTXt6hNkF2ZX8pJYR7sXgq/L4KcZPALB/9Q8AlwBS9nIeRnQnYyFOZAWCy0GgR124M+CFR5ej+RqkrhS87Lz3tPMHfjQTLzComJCMTXduYuneSsfJIycmlZN5Q7r44hItDXS5VKtZWfBRtmwoE14B8BQVFnDlTOQkjZ5wplLQdC0xsVwKo4vZ9IVaVBEFJmmw6m8un6RBxOk0aRQWcNXgARgb40rBnElkNpfPTTfnLyHV6oVKotRyH8+j/YvxrC4iC4ztmDlMUGNRq5uiE3fw57l3unVhGR0yh8SZmkZuczP/4PChxO6ocHlDiGKz/PICPFSn6e5zpfm4WGkYFs+SOdZTuOeqtkqY72r4b9a1zdiL4BxdfnFUByhuvP0wXVcnVLbpsPqQcqvFQRkdNp8I2UyapdxzmQnE2T2sHF1u3d4sfKueFsWRuE6TQwLCatOmXS45YU4lrmAmC3WakR6MvKncdo1yCcumH+3n4KUtXlpsOOBeDjD/Ygz3Wb98Fnq2DNdnCaYDGgc3O4rSu0ijm5XUg9OLYNdnwLV/1F3Y8i4lVl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", "text/plain": [ "
" ] @@ -251,12 +330,14 @@ "output_type": "stream", "text": [ "Time t=5\n", - "[Array([[10]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[22]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", + "[0.09998703 0.09998703 0.09998703 0.09998703 0.09998703]\n", + "[[3 0 0 0]]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQn0lEQVR4nO3dd3wUZeLH8c/upncSAqGEJBB6O4qNjuIRBQ45hFBUUCyoyIF6p97vxHqCepbDAnhK88BDQQUrihCkqIBIDUgLPRBIg/Rkd35/jFlZkgCBFLJ836/XvsLOPDPzzGRDvnnmeZ6xGIZhICIiIiI1nrW6KyAiIiIiFUPBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU6qxdNPP43FYnFZFh0dzejRo6u0HrNnz8ZisbB///4qPa5cGH1/RETKR8HuMpKUlMS4ceNo1qwZfn5++Pn50apVKx588EG2bNlS3dW7Iu3fvx+LxXJBr7LCR3R0NBaLhT59+pS6/j//+Y9zHxs2bKjEs7k457sGU6ZMqe4qXlHmz5/P66+/Xt3VEJHLlEd1V0BMn3/+OfHx8Xh4eDBy5Ejat2+P1Wpl586dfPzxx0ybNo2kpCSioqKqu6qV5tdff8Vqvbz+1ggPD+f99993WfbKK69w+PBhXnvttRJly+Lj48OKFSs4duwYERERLuvmzZuHj48PeXl5FVfxSjB8+HBuvvnmEss7dOhQace8/fbbGTZsGN7e3pV2jJpm/vz5bNu2jQkTJlR3VUTkMqRgdxnYu3cvw4YNIyoqiu+++4569eq5rH/xxRd5++23L7vQc6bs7Gz8/f0vaR+X4y9vf39/brvtNpdl//vf/0hPTy+x/Fy6du3K+vXrWbBgAX/5y1+cyw8fPsyqVasYNGgQixYtqrB6V4aOHTuW65wrgs1mw2aznbOMYRjk5eXh6+tbRbUSEbl8Xb5J4Qry0ksvkZ2dzaxZs0qEOgAPDw/Gjx9PZGSky/KdO3dy6623Ehoaio+PD507d2bJkiUuZYr7KK1Zs4aHH36Y8PBw/P39GTRoECdOnChxrK+++oru3bvj7+9PYGAg/fr1Y/v27S5lRo8eTUBAAHv37uXmm28mMDCQkSNHArBq1SqGDBlCo0aN8Pb2JjIykokTJ5Kbm3ve63B2H7sLve15IdcBYPv27Vx//fX4+vrSsGFDnn/+eRwOx3nrVRF8fHz485//zPz5812Wf/DBB9SqVYu+ffuW2GbLli2MHj2axo0b4+PjQ0REBHfddRepqanOMue7TXqmn376ibi4OIKDg/Hz86Nnz56sWbOmQs8zOjqa/v37s3r1aq6++mp8fHxo3Lgxc+fOdZbZsGEDFouFOXPmlNh+6dKlWCwWPv/8c6D0PnbFx1i6dCmdO3fG19eXGTNmALBv3z6GDBlCaGgofn5+XHvttXzxxRcux0hISMBisfDhhx/yz3/+k4YNG+Lj48MNN9zAnj17XMr26tWLNm3asGXLFnr27Imfnx+xsbEsXLgQgJUrV3LNNdfg6+tL8+bNWbZsWYlzOnLkCHfddRd169bF29ub1q1bM3PmzIuqU69evfjiiy84cOCA83scHR19Ad8ZEblSqMXuMvD5558TGxvLNddcc8HbbN++na5du9KgQQMef/xx/P39+fDDD7nllltYtGgRgwYNcin/0EMPUatWLZ566in279/P66+/zrhx41iwYIGzzPvvv8+oUaPo27cvL774Ijk5OUybNo1u3brxyy+/uPwCKSoqom/fvnTr1o1//etf+Pn5AfDRRx+Rk5PD/fffT1hYGOvWreONN97g8OHDfPTRR+W6LmffAgX4xz/+QUpKCgEBAeW6DseOHaN3794UFRU5y73zzjtV2sozYsQI/vjHP7J3716aNGkCmLfVbr31Vjw9PUuU//bbb9m3bx933nknERERbN++nXfeeYft27fz448/YrFYSr1VXFhYyMSJE/Hy8nIuW758OTfddBOdOnXiqaeewmq1MmvWLK6//npWrVrF1Vdffd765+TkcPLkyRLLQ0JC8PD4/b+SPXv2cOuttzJmzBhGjRrFzJkzGT16NJ06daJ169Z07tyZxo0b8+GHHzJq1CiXfS1YsKDMoHumX3/9leHDh3Pfffdxzz330Lx5c44fP06XLl3Iyclh/PjxhIWFMWfOHP70pz+xcOHCEj8TU6ZMwWq18uijj5KZmclLL73EyJEj+emnn1zKpaen079/f4YNG8aQIUOYNm0aw4YNY968eUyYMIGxY8cyYsQIXn75ZW699VYOHTpEYGAgAMePH+faa6/FYrEwbtw4wsPD+eqrrxgzZgynTp0qcTv1fHX6v//7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Xr16MWPGDJKTk0uUL20ak/Pp27cvQUFBvPDCCxQWFl7UPotbG86sr2EY/Pvf/y53fQBmzZrFjBkzeOutt0oNvOW5DjfffDM//vgj69atc1k/b968i6rb2Vq1akWfPn2cr06dOpVZ9u677+app57ilVdeKbNMadcSKPWJA8888wxLly7lgw8+KPUWZadOnWjSpAn/+te/Sr3lfzGfl4rQsmVL2rZty4IFC1iwYAH16tWjR48eF72/m2++mXXr1vHDDz84l2VnZ/POO+8QHR1doi9gZbPZbAwePJhFixaV2iJ/sdfd39//ors1iIj7U4vdZaBp06bMnz+f4cOH07x5c+eTJwzDICkpifnz52O1Wl36tL311lt069aNtm3bcs8999C4cWOOHz/ODz/8wOHDh9m8eXO56hAUFMS0adO4/fbb6dixI8OGDSM8PJyDBw/yxRdf0LVrV958881z7qNFixY0adKERx99lCNHjhAUFMSiRYsuqn/QyZMneeCBB2jVqhXe3t7897//dVk/aNAg/P39L/g6/O1vf+P9998nLi6Ov/zlL87pTqKioqr8cW1RUVE8/fTT5ywTFBREjx49eOmllygsLKRBgwZ88803JCUluZTbunUrzz33HD169CAlJaXEdbrtttuwWq28++673HTTTbRu3Zo777yTBg0acOTIEVasWEFQUBCfffbZeeu9cePGEvsHs0XwuuuuO/+JlyI+Pp5Jkybh4+PDmDFjLmkS7scff5wPPviAm266ifHjxxMaGsqcOXNISkpi0aJF1TLB95QpU1ixYgXXXHMN99xzD61atSItLY2NGzeybNky0tLSyr3PTp06sWDBAh5++GGuuuoqAgICGDBgQCXUXkRqIgW7y8TAgQPZunUrr7zyCt988w0zZ87EYrEQFRVFv379GDt2LO3bt3eWb9WqFRs2bOCZZ55h9uzZpKamUqdOHTp06OBy6648RowYQf369ZkyZQovv/wy+fn5NGjQgO7du3PnnXeed3tPT08+++wzxo8fz+TJk/Hx8WHQoEGMGzfOpe4XIisri7y8PBITE52jYM+UlJSEv7//BV+HevXqsWLFCh566CGmTJlCWFgYY8eOpX79+s7O+5eb+fPn89BDD/HWW29hGAZ//OMf+eqrr6hfv76zTGpqKoZhsHLlSlauXFliH8W3h3v16sUPP/zAc889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ioiICABvv/02V111FWFhYaxZs4aXX365xBx1cnlTsBMREREAdu/ezfPPP09aWhqNGjXikUce4Yknnqjuakk5KNiJiIhUIn9P/2rdvjxee+01XnvttSo7nlQ8BTsREZFKFBUUxeeDPie7MPv8hc/i7+lPVFBUJdRK3JWCnYiISCVTOJOqoulORERERNyEWuxERESqgWEY5BU6KLA78LJZ8fG0OicCFrlYCnYiIiJVKK/QTmLyKdYnpXEgNRu7w8BmtRAV5s9VMaG0qheEj6etuqspNZSCnYiISBXZfzKbBRsOcSA1GwsWavl54uVlo8juYMvhTDYfziAqzJ/4zpFE16660bDiPtTHTkREpArsP5nNrDVJHDiZTVSoP7F1AggL8CbY15OwAG9i6wQQFerPgd/K7T9Z/lG07qxXr15MmDChuqtx2VOwExERqWR5hXYWbDjEidP5xNYJwMuj9F+/Xh5WYusEcOJ0Pgs2HCKv0F5hdRg9ejQWiwWLxYKnpycxMTH87W9/Iy8vr8KOUZNFR0fz+uuvV3c1LpmCnYiISCVLTD7FgdRsosL8zztAwmIx+9sdSM1mR/KpCq1HXFwcycnJ7Nu3j9dee40ZM2bw1FNPVegxLoVhGBQVFVV3NWo0BTsREZFKZBgG65PSsGAps6XubF4eVixYWJeUhmEYFVYXb29vIiIiiIyM5JZbbqFPnz58++23zvUOh4PJkycTExODr68v7du3Z+HChc71nTt35l//+pfz/S233IKnpydZWVkAHD58GIvFwp49ewB4//336dy5M4GBgURERDBixAhSUlKc2yckJGCxWPjqq6/o1KkT3t7erF69muzsbO644w4CAgKoV68er7zyynnPbfPmzfTu3ZvAwECCgoLo1KkTGzZscK5fvXo13bt3x9fXl8jISMaPH092tnm7u1evXhw4cICJEyc6WzVrKgU7ERGRSpRX6OBAaja1/DzLtV0tP08OpGaTV+iolHpt27aNtWvX4uXl5Vw2efJk5s6dy/Tp09m+fTsTJ07ktttuY+XKlQD07NmThIQEwAysq1atIiQkhNWrVwOwcuVKGjRoQGxsLACFhYU899xzbN68mU8//ZT9+/czevToEnV5/PHHmTJlCjt27KBdu3b89a9/ZeXKlSxevJhvvvmGhIQENm7ceM7zGTlyJA0bNmT9+vX8/PPPPP7443h6mtd87969xMXFMXjwYLZs2cKCBQtYvXo148aNA+Djjz+mYcOGPPvssyQnJ5OcnHxJ17Y6aVSsiIhIJSqwO7A7DLy8yjeFic1qofC3ee58qZjpTz7//HMCAgIoKioiPz8fq9XKm2++CUB+fj4vvPACy5Yt47rrrgOgcePGrF69mhkzZtCzZ0969erFe++9h91uZ9u2bXh5eREfH09CQgJxcXEkJCTQs2dP5/Huuusu578bN27M1KlTueqqq8jKyiIgIMC57tlnn+XGG28EICsri/fee4///ve/3HDDDQDMmTOHhg0bnvPcDh48yF//+ldatGgBQNOmTZ3rJk+ezMiRI52DL5o2bcrUqVPp2bMn06ZNIzQ0FJvN5mxZrMnUYiciIlKJvGxWbFYLRfbytbwVz2/nZau4X9W9e/dm06ZN/PTTT4waNYo777yTwYMHA7Bnzx5ycnK48cYbCQgIcL7mzp3L3r17AejevTunT5/ml19+YeXKlc6wV9yKt3LlSnr16uU83s8//8yAAQNo1KgRgYGBztB38OBBl3p17tzZ+e+9e/dSUFDANddc41wWGhpK8+bNz3luDz/8MHfffTd9+vRhypQpzjqDeZt29uzZLufVt29fHA4HSUlJ5b+QlzEFOxERkUrk42klKsyf9JzCcm2XnlNIVJg/Pp4V96va39+f2NhY2rdvz8yZM/npp5947733AJz95L744gs2bdrkfCUmJjr72YWEhNC+fXsSEhKcIa5Hjx788ssv7Nq1i927dzvDW3Z2Nn379iUoKIh58+axfv16PvnkEwAKCgpK1OtSPf3002zfvp1+/fqxfPlyWrVq5TxeVlYW9913n8t5bd68md27d9OkSZNLPvblRMFORESkElksFq6KCcXAoKDowlrtCoocGBhcHRNaaR35rVYrf//73/nHP/5Bbm4urVq1wtvbm4MHDxIbG+vyioyMdG7Xs2dPVqxYwffff0+vXr0IDQ2lZcuW/POf/6RevXo0a9YMgJ07d5KamsqUKVPo3r07LVq0cBk4UZYmTZrg6enJTz/95FyWnp7Orl27zrtts2bNmDhxIt988w1//vOfmTVrFgAdO3YkMTGxxHnFxsY6+xh6eXlht1fc9DLVRcFORESkkrWqF+ScwuR8o1wNw3BOjdKyXlCl1mvIkCHYbDbeeustAgMDefTRR5k4cSJz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3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchIKdiIiIiJtQsBMRERFxEwp2IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJhTsRERERNyEgp2IiIiIm1CwExEREXETCnYiIiIibkLBTkRERMRNKNiJiIiIuAkFOxERERE3oWAnIiIi4iYU7ERERETchFsGO4fDoNDuwOEwqrsqbkvXWNyCYYC9EBz26q6JiEiF8KjuClQEwzA4fiqf7UczSTqZzeH0HIrsBjarhfohvsTU9qdV/SAahPhisViqu7o1VsrpPLYfOUXSyWwOpuVQZHdgs1qoF+xLdG1/WtULIjJU11guczlpkLwJUvdB2j4oygOLBQLrQWgTqNsawmLB6pZ/94qIm7MYhlGjm1zSsgv4elsyvxzM4FReIV42K37eHnhYLdgdBjkFdvIK7QT5eNAuMoSb2tQjPNC7uqtdo2TmFvLN9mOs359GZm4hnjYr/l4eeNh+v8b5hXb8fTxoUz+Im9vWJyLYp7qrLeKqIBt2fwv7VkD2SbB6glcA2DzBcEBhjvny9IPwFtD6FghrUt21FhEplxod7HYeO8VHGw5xKC2XiCAfQvw8S20tMgyDzNxCjp3Ko16wL3/u2IB2DUOqvsI10J6ULD7ccJD9J3OoE+hNqL9Xmdf4dF4RRzPzCA/0YlCHBnSKCq2GGouUIvMw/DwXUraDX23wDwerrfSy+VmQeRB8gqHV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", + "image/png": "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msybN48BAwZgmqbH/6u+ffuSnp5e4t/xfGsSkZpDlx2rQPHliaysrBLzpk+fTmZmJseOHfPo6Lxnzx5M0+Qf//gH//jHP0rdbnJyMvXr13f/3LBhQ4/54eHhgOuSCsDu3bsBuO6660rdXkhIiMfPNpuNBg0alFju4MGDPPHEE3z55ZfubRdLT08vddvncujQIYYOHco111zDSy+95J5envNw4MCBUi/rNm/e/IJqOlN6erpHvzZfX18iIiJKLHfnnXcydepUNm3axJw5c7jjjjtK9M0qlpKSwlNPPcVHH31EcnJyif2dKSEhgQcffJBhw4YxceJE9/Tif9szL/Gdub3i90RZmjZtWuZwGac7870Grvfb6e+H9u3b06JFC+bOncvo0aMB1yXHWrVqlfkePF18fHyJaWX9G7ds2dI9v02bNmXWeeb/iWINGjQo8W8UGhpaog9maGiox/rHjx8nLS2Nt956i7feeqvU4zjz3/V8axKRmkPhqwqEhoZSt25dtm7dWmJe8QfJmeNHFbdSPProo2X2jWnSpInHz2XdMWaapsc233///RJDIQAefXrAdWfimXdfOhwObrjhBlJSUnjsscdo0aIFgYGBHD58mJEjR15Q5/aCggJuvfVW7HY7H3/8sUcdF3IeKssjjzzi0YG8Z8+erFixosRyV111FY0bN2b8+PEkJiZy5513lrnN22+/nR9++IG//OUvdOjQgaCgIJxOJ/369StxLlNTUxkyZAjNmjXjnXfe8ZhXvOwLL7xAhw4dSt1XRfYbOtd7rdjQoUP597//zYkTJwgODubLL79k2LBhJd5rpamIvnrnW2dZy53v/6m77rqrzODbrl27C6pJRGoOha8q0r9/f9555x3Wrl17Xh2fGzVqBICPj895tUScj+IO4LVr177gbW7ZsoVdu3Yxa9Ys7rnnHvf0JUuWXHBd48aNIyEhgVWrVlGnTh2PeeU5D7Gxse4WoNP9+uuvF1zb6f761796tE6erRVp2LBh/Otf/6Jly5ZlhqHU1FS+++47nnrqKZ544gn39NKOwel0Mnz4cNLS0li6dKn75odixf+2ISEhFfZ+qQhDhw7lqaeeYt68edSpU4eMjAyPy3vlFRsbW+q/586dO93zvSkqKorg4GAcDkeFnveyWkpFpHpSn68q8te//pWAgADuvfdejh07VmL+md96a9euTa9evZg+fTpHjhwpsXxpQ0icS9++fQkJCeHZZ5+lsLDwgrZZ/K399HpN0+S///1vuesBmDFjBtOnT+f1118vNZSW5zzcfPPN/PTTT6xdu9Zj/gcffHBBtZ2pVatW9OnTx/3q3Llzmcved999PPnkk7z44otlLlPauQRKHdn8qaeeYvHixXz44YelXo7r3LkzjRs35j//+U+pl7cv5P1SEVq2bEnbtm2ZO3cuc+fOpW7duvTo0eOCt3fzzTezdu1afvzxR/e07Oxs3nrrLeLi4kr0TatsVquVIUOGMG/evFJbti/0vAcGBl7wJXwRufSo5auKNG3alDlz5jBs2DCaN2/uHuHeNE0SExOZM2cOFovFo4/V66+/zrXXXkvbtm25//77adSoEceOHePHH3/k0KFDbNq0qVw1hISEMG3aNO6++246derEHXfcQVRUFAcPHuTrr7/mmmuu4bXXXjvrNlq0aEHjxo159NFHOXz4MCEhIcybN++C+qucOHGChx9+mFatWmG32/nf//7nMX/w4MEEBgae93n461//yvvvv0+/fv145JFH3ENNxMbGev3RTbGxsfzzn/886zIhISH06NGD559/nsLCQurXr8+3335LYmKix3JbtmzhmWeeoUePHiQnJ5c4T3fddRcWi4V33nmHm266idatWzNq1Cjq16/P4cOHWb58OSEhIXz11VfnrHvjxo0ltg+ulrWuXbue+8BLMXToUJ544gn8/PwYPXr0RQ0k/Pjjj/Phhx9y0003MW7cOCIiIpg1axaJiYnMmzevSgYpnjJlCsuXL+eqq67i/vvvp1WrVqSkpLBx40aWLl1KSkpKubfZuXNn5s6dy8SJE7niiisICgpiwIABlVC9iHiDwlcVGjhwIFu2bOHFF1/k22+/5b333sMwDGJjY+nfvz8PPvgg7du3dy/fqlUr1q9fz1NPPcXMmTM5efIktWvXpmPHjh6XqcrjzjvvpF69ekyZMoUXXniB/Px86tevT/fu3Rk1atQ51/fx8eGrr75i3LhxTJ48GT8/PwYPHszYsWM9aj8fWVlZ5OXlsX37dvfdjadLTEwkMDDwvM9D3bp1Wb58OX/605+YMmUKkZGRPPjgg9SrV8/d4ftSM2fOHP70pz/x+uuvY5omN954IwsXLqRevXruZU6ePIlpmqxcuZKVK1eW2EbxpdBevXrx448/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7Fiu81GTKHyJiIj8LiPj3MGrmNPpWr6ywlePHj3o27cvkyZNYuTIke7pWVlZ/PGPf2TcuHEl1mnYsCG7du0657b379/PLbfcwkMPPcS///1vIiIiWL16NaNHj6agoKBcHeqHDx9Oz549SU5OZsmSJfj7+9OvXz93rQBff/019evX91jPbref9z5qGoUvERGR34WEgMVyfgHMYnEtX5mmTJlChw4daN68uXtap06d2L59O02aNCl1nebNm1NUVMQvv/xC586dAVcL1Ol3T27YsAGn08mLL76IxeLq/v3xxx97bMfX1xeHw3HOGrt160ZMTAxz585l4cKF3Hbbbfj4+ADQqlUr7HY7Bw8epGfPnuU7+BpM4UtEROR3/v4wcKDrrsYzO9ufzmZzLVdZrV7F2rZty/Dhw5k6dap72mOPPcbVV1/N2LFjue+++wgMDGT79u0sWbKE1157jRYtWtCnTx8eeOABpk2bho+PD3/+85/x9/d3jxXWpEkTCgsLefXVVxkwYABr1qzhzTNu4YyLiyMrK4vvvvuO9u3bExAQUGaL2J133smbb77Jrl27WL58uXt6cHAwjz76KBMmTMDpdHLttdeSnp7OmjVrCAkJYcSIEZVw1i59uttRRETkNBMnwrkafBwOmDDBO/U8/fTTOE9rimvXrh0rV65k165ddO/enY4dO/LEE09Qr1499zKzZ8+mTp069OjRg8GDB3P//fcTHByMn58fAO3bt+ell17iueeeo02bNnzwwQclhrbo1q0bDz74IEOHDiUqKornn3++zBqHDx/O9u3bqV+/Ptdcc43HvGeeeYZ//OMfTJ48mZYtW9KvXz++/vpr4uPjK+L0VEuGaZqmN3eYkZFBaGgo6enphFR2e62IiNRYZX2e5OXlkZiYSHx8vDtslNebb7qGk7BaPVvAbDZX8HrjDXjwwYs9Au85dOgQMTExLF26lOuvv76qy6mRyvO+U8uXiIjIGR58EL7/3nVp8fcuUVgsrp+///7SD17Lli3jyy+/JDExkR9++IE77riDuLg4evToUdWlCerzJSIiUqprrnG9cnNddzWGhFR+H6+KUlhYyN/+9jf27dtHcHAw3bp144MPPnB3hJeqpfAlIiJyFv7+1Sd0Fevbty99+/at6jKkDLrsKCIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIi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9ttvqV27NjfffDNt27ZlypQp7tqGDBlCv3796N27N1FRUXz44YcYhsH8+fMJDw+nR48e9OnTh0aNGjF37txyn59Zs2aRk5PD5MmTqVu3rvv1hz/8ocx1fH19mTRpEu3ataNHjx5YrVY++ugjAAICAli1ahUNGzbkD3/4Ay1btmT06NHk5eUREhICwP3330/z5s3p0qULUVFRrFmzptx1n84wz/UOq2AZGRmEhoaSnp7uPigREZHyKuvzJC8vj8TExLOOFVWW4hHuT+SeoGFwQ9dwEmcocBRwMPMgtfxrcXfLu4kJiSllS3K5Kc/7Th3uRUREftcwpCF3tbzL/WxHDNdwElbDisN0kJqfCiY0DG7IkKZDFLzkgih8iYiInKZhSEMe6vAQv6b8yoZjG0jKTKLQUYjVYqVNZBs61+lM84jm2K0V92gfubwofImIiJzBbrXTLqodbWu1Jc+RR6GzEB+LD35Wv0odyV4uDwpfIiIiZTAMA3+bP/5U7uj1cnnR3Y4iIlIjefl+MrnMlef9pvAlIiI1io+Pa7T5nJycKq5ELifF77fi99/Z6LKjiIjUKFarlbCwMJKTkwHXOE7qpyWVxTRNcnJySE5OJiwsrMyx2E6n8CUiIjVOdHQ0gDuAiVS2sLAw9/vuXBS+RESkxjEMg7p161K7du2LfhSMyLn4+PicV4tXMYUvERGpsaxWa7k+FEW8QR3uRURERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2xVXcClJDu/iKz8IgwgyM9GgK9Oj4hchgrzIC8NTBN8A8AeAoZR1VWJ1BiXfbpIzsxjc1I6W39L51hGHgVFTgB8bRbqhPjRtn4o7RqEERVsr+JKRUQqUW4q/PaL65V+yBXAMMHqC4G1oE5baNAZQmMUxEQukmGapunNHWZkZBAaGkp6ejohISHe3LWH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VyuQq+Ij6BQbjs+5hgMQKS+nE478AvvXwPGdvw9DUfxrzXC1bvmHQYMrIe4aCI+rulqlQunzRKorhS+pENn5RfyWlktyZj65BQ4sFgj196VOiJ16of5YNKSEVLbiy4qZRyD7JJgO14CsQXVcY4NpMNUaR58nUl3psqNUiEC7jaZ1gmlaJ/jcC4tUBsOAkHqul4jIJUzXgERERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExItsVV2A1AyZeYUcSs3leGY+uYUOLIZBWIAPdYL9qB/uj9ViVHWJUtOZJmQchowjkHMCnA6w2SGoNoTGQEBEVVcoIgIofMlFOpqex4/7TrLhQAqp2QU4TNd0AzABfx8LDSMCuapRBF1iI/C1qbFVKpjTAYc3wv7v4cQuKMj2nG8Y4BcG9TtD3LUQ2bhKyhQRKabwJRfE6TT5Ye9JFm49wvHMfCICfYmLDMRmPRWuTNMkp8BB4olsdidnkpCUxsAO9akf5l+FlUuNkn0Stn4KB39y/RxUB0IbugJXMacDclNgzxJIWgvN+0HTvmDzrZqaReSyp/Al5eZwmizY/BtLth/Dz2alRXQwhlHysqJhGATabcTbbeQVOticlM7xzHzu6RpHfK3AKqhcapTMo/DzW3B8J4THgT249OUsVgiMgoBakHUMNn8Mmceg092uy5IiIl6ma0BSbt/vPs63244REehL/XD/UoPXmfx8rDStHcSx9Dzm/HyAk1n5XqhUaqyCHFg/A07ugtotyw5epzMMCI529f/atwK2fu7qJyYi4mUKX1Iuh1JzWLz1KIF2K+EBpV+2sebnEZB6Amt+nsd0i8WgUVQQB0/m8M2WIzid+uCTC7RrMRzbCpFNwVKyAT8338axlABy80tp3LcHu0LYvmVwdIsXihUR8XRBlx1ff/11XnjhBY4ePUr79u159dVXufLKKyu6NrkErdp1nJPZBbSILtnSUG/rejrNm0njH7/D4nTitFjY2/V6Nt46it9adwbAajGoF+7PhgOpdG1ciya1g7x9CFLdZSW7glNgFFg9vwCs3tKAlz65kvk/NMXptGCxOBnYbTd/vv1nrmlz+NSCAZGQfcIV4uq0AYu+h4qI95T7N87cuXOZOHEiTz75JBs3bqR9+/b07duX5OTkyqhPLiEnsvLZfCid2sH2Epca2301h9sn3kWjn5ZhcToBsDidNPppGbdPGE67BR+6lw3x8yG30MEvB1O9Wr/UEL/9AjkprvB1mmnzO9Ljkbv46scmOJ2uX21Op4WvfmxC93F38+aXHT23E1LPdXdkyl5vVS4iAlxA+HrppZe4//77GTVqFK1ateLNN98kICCA9957rzLqk0vIwZQc0nMLCQ/0bG2ot3U91736NAYmVofDY57V4cDA5LqpT1Fv2wb39DB/X7YfycChS49SXse2gs0fjFO/vlZvacCY//bFxKDIYfVYvMhhxcTg4Vf6smZr/VMz7MFQlAup+71UuIiIS7nCV0FBARs2bKBPnz6nNmCx0KdPH3788ccKL04uLckZrk7yljNavTrNm4nTeva3ktNqoeO8me6fA+1WMnML1fFeyqcwD9IPlehg/9InV2K1Os+6qtXq5OVPzugeYVgh7WBFVykiclbl6vN14sQJHA4HderU8Zhep04ddu7cWeo6+fn55Oef+oDNyMi4gDLlUpCVX1RimjU/z93H62ysDgdNfliKNT8Ph90PX5uFAoeT7ALHWdcT8VCYA45C8D01VEluvs3dx+tsihxWPl/TjNx8G/7239/LNj/XGGAiIl5U6b1MJ0+eTGhoqPsVExNT2buUSlLagBL2nKxzBq9iFqcTe06W6wcTDAz01CG5IKddrc7I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", "text/plain": [ "
" ] @@ -269,12 +350,14 @@ "output_type": "stream", "text": [ "Time t=6\n", - "[Array([[5]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[23]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[2]], dtype=int32)]\n", + "[0.16663785 0.16663785 0.16663785 0.16663785 0.16663785]\n", + "[[3 0 0 0]]\n" ] }, { "data": { - "image/png": "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3vzwww8899xzvPnmm+Tk5BAdHc2ll17KPffcc0b1+fDDD90jek902223nVOw+8c//kFeXt4ZjYY9lfr167Ny5UoeffRR3njjDQoKCujQoQOff/4511133Tnt+1zqtGrVKp599lk++eQT3n77bSIjI2nbti0vvvjiWe3zvvvuY/369UydOpXXXnuN2NhYBTsRcbMY6pUrIiIi4hXUx05ERETESyjYiYiIiHgJBTsRERERL6FgJyIiIuIlFOxEREREvISCnYiIiIiXULATERER8RIKdiIiIiJeQsFORERExEso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyET01XQEREpDZyOp04HI6aroZ4Obvdjs1mO+PyCnYiIiIVYBgGBw8eJCsrq6arIheI8PBwoqOjsVgspy2rYCciIlIBJaGuXr16BAYGntEvW5GzYRgGeXl5pKenA9CgQYPTbqNgJyIicoacTqc71EVGRtZ0deQCEBAQAEB6ejr16tU77W1ZDZ4QERE5QyV96gIDA2u4JnIhKfm8nUmfTgU7ERGRCtLtV6lOFfm8KdiJiIiIeAkFOxEREREvoWAnIiJSjYqKis5p/bk4ePAgDzzwAE2bNsXPz4+YmBiuv/56vv322yo7plQvBTsREZFqMnv2bNq3b8++ffvKXL9v3z7at2/P7NmzK/3Yu3fvpkuXLixZsoSXX36ZTZs28fXXX9OnTx/uv//+Sj+e1AwFOxERkWpQVFTEk08+ybZt2+jdu3epcLdv3z569+7Ntm3bePLJJyu95e6+++7DYrGwatUqBg0aRIsWLWjbti0PPvggP/74I7t378ZisbB+/Xr3NllZWVgsFpKTk93LNm/ezDXXXENwcDD169fnlltu4ciRI5VaVzl7CnYiIiLVwNfXl8WLF9O0aVN27drlEe5KQt2uXbto2rQpixcvxtfXt9KOnZmZyddff839999PUFBQqfXh4eFntJ+srCyuvPJKOnXqxJo1a/j66685dOgQN998c6XVVc6Ngp2IiEg1iYmJITk52SPcrVy50iPUJScnExMTU6nH3bFjB4Zh0KpVq3Paz5tvvkmnTp144YUXaNWqFZ06dWLKlCksXbqUbdu2VVJt5VzoyRMiIiLVqCTclYS57t27A1RZqAPz0VSVYcOGDSxdupTg4OBS63bu3EmLFi0q5Thy9hTs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+dypxU5ERKQajRoF339v3m79vQsaVqv5/vvvz/9Qt2TJEubPn09qaiorV65k8ODBxMXF0bNnz5qumqA+diIiItWue3fzlZ9vjn4NDa36PnWVxeFw8Pe//51du3YREhJCt27dmDlzpntQg9QsBTsREZEaEhBQewJdiX79+tGvX7+aroaUQ7diRURERLyEgp2IiIiIl1CwExEREfESCnYiIiIiXkLBTkRERMRLaFSsiIhIFdtzbA+5jtwKbxdkDyI2NLYKaiTeSsFORESkCu05tof+n/Y/6+0XDFygcCdnTLdiRUREqtDZtNRV5vYn++GHH7DZbFx33XWVut8ztXv3biwWC+vXr6+R43s7BTsREZELyPvvv88DDzzAd999x2+//VbT1ZFKpmAnIiJygcjJyWH27Nnce++9XHfddUybNs1j/fz582nevDn+/v706dOH6dOnY7FYyMrKcpdZvnw5PXr0ICAggJiYGMaMGUNu7h+tinFxcbzwwgvccccdhISE0KRJE9599133+vj4eAA6deqExWKhd+/eVXnKFxwFOxERkQvERx99RKtWrWjZsiXDhw9nypQpGIYBQGpqKjfeeCM33HADGzZs4J577uH//u//PLbfuXMniYmJDBo0iI0bNzJ79myWL1/O6NGjPcq98sordO3alXXr1nHfffdx77338uuvvwKwatUqABYvXkxaWhqffPJJNZz5hUPBTkRE5ALx/vvvM3z4cAASExPJzs5m2bJlALzzzju0bNmSl19+mZYtWzJ48GBGjBjhsf348eMZNmwYY8eOpXnz5nTr1o2JEycyY8YMCgoK3OWuvfZa7rvvPhISEnj00UepW7cuS5cuBSAqKgqAyMhIoqOjiYiIqIYzv3Ao2ImIiFwAfv31V1atWsWQIUMA8PHxISkpiffff9+9/uKLL/bY5pJLLvF4v2HDBqZNm0ZwcLD71a9fP1wuF6mpqe5yHTp0cP/bYrEQHR1Nenp6VZ2anEDTnYiIiFwA3n//fYqLi2nYsKF7mWEY+Pn58eabb57RPnJycrjnnnsYM2ZMqXVNmjRx/9tut3uss1gsuFyus6y5VISCnYiIiJcrLi5mxowZvPLKK/zpT3/yWHfDDTfw4Ycf0rJlS7788kuPdatXr/Z437lzZ1JSUkhISDjruvj6+gLgdDrPeh9SPgU7ERERL7dgwQKOHj3K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gDvciVS18PBw9+fudBTsRMQ72Xwg4SrzObGFOeAX/Me6P19qzlP38XJz9KvLMPvUdWttttSVhDrDgKO7oUFH8zmzIoDFYqFBgwbUq1cPh8Nx+g1EzoHdbj+jlroSCnYi4r1iLoW0DbB7OdRt4TmnXbtY81XoMEe/Bvn/0aeuRNZeCKgD7W80g6LICWw2W4V+4YpUh1r9P1WQPahGtxeR85zVBh2SID/LnOm/Tjz4nvRz72cvHegMl9lSZ/WBjoPNW7oiIrVArX5WLMCeY3vIdeRWeLsgexCxobFVUCMROe/kZcK6/8KBn8HHH0IagE8ZU5cYhjkJcc5BCG0E7W+CmIurv74iImep1gc7EZEz4iyG3d/Djm8he585x53N37w9a7igOA9cLvMpAA07Q+v+EFyvpmstIlIhCnYicmFxFED6FsjaZz6AvTDH7D8X2hjCG0O9thBSv6ZrKSJyVhTsRERERLyEnjwhIiIi4iUU7ERERES8hIKdiIiIiJdQsBMRERHxEgp2IiIiIl5CwU5ERETESyjYiYiIiHgJBTsRERERL6FgJyIiIuIlFOxEREREvISCnYiIiIiXULATERER8RIKdiIiIiJeQsFORERExEso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyEgp2IiIiIl1CwExEREfESCnYiIiIiXkLBTkRERMRLKNiJiIiIeAkFOxEREREvoWAnIiIi4iUU7ERERES8hIKdiIiIiJdQsBMRERHxEgp2IiIiIl5CwU5ERETESyjYiYiIiHgJBTsRERERL6FgJyIiIuIlFOxEREREvISCnYiIiIiXULATERER8RIKdiIiIiJeQsFORERExEso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyEgp2IiIiIl1CwExEREfESCnYiIiIiXkLBTkRERMRLKNiJiIiIeAkFOxEREREvoWAnIiIi4iUU7ERERES8hIKdiIiIiJdQsBMRERHxEgp2IiIiIl5CwU5ERETESyjYiYiIiHgJBTsRERERL6FgJyIiIuIlFOxEREREvISCnYiIiIiXULATERER8RIKdiIiIiJeQsFORERExEso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyEVwY7l8vA4XThchk1XRWvpWssXsEwwOkAl7OmayIiUil8aroClcEw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Irb8ls2+zDz2ZuZRVOzC18dKTJ1AGkcE0qZBKFEhChvnIjvPwZbfstn7+zUucDix26w0rhPgvsb1detVzneFOXBwI2TuhsxdUJRjTj4c1hjqxJmDJMKbqJVORGolrwl2IiIiIhe6Wjl4QkRERERKU7ATERER8RIKdiIiIiJeQsFORERExEso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyEgp2IiIiIl1CwExEREfESCnYiIiIiXkLBTkRERMRLKNiJiIiIeAkFOxEREREvoWAnIiIi4iUU7ERERES8hIKdiIiIiJdQsBMRERHxEgp2IiIiIl5CwU5ERETESyjYiYiIiHgJBTsRERERL6FgJyIiIuIlFOxEREREvISCnYiIiIiXULATERER8RIKdiIiIiJeQsFORERExEso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyEgp2IiIiIl1CwExEREfESCnYiIiIiXkLBTkRERMRLKNiJiIiIeAkFOxEREREvoWAnIiIi4iUU7ERERES8hIKdiIiIiJdQsBMRERHxEgp2IiIiIl7i/wEkYmBVQICVPgAAAABJRU5ErkJggg==", + "image/png": "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IyPD7bJ3yf8FEblEmeJxGRkZJmAOGjSo1Ly0tDTz2LFjrldubq5r3nXXXWe2bt3azM/Pd01zOBxm165dzSZNmrimTZ8+3QTMPn36mA6HwzV9woQJptVqNdPT003TNM2srCwzNDTUvP/++91qOHLkiBkSEuI2fcSIESZgPvHEE6VqPrXGEpMmTTINwzAPHDjgmvb000+bp7/lYmNjzREjRpRav8RLL71kAuasWbMqfB7Gjx9vAuYvv/zimpaSkmKGhISYgJmYmFjufk/Xv39/MzY29pyXj42NNfv3728WFxeb0dHR5vPPP2+apmlu377dBMyVK1e6/p3WrVvnWq+sc/nxxx+bgPnDDz+Uu7+HH37YtFqt5rJly0zTdJ6PJk2amH379nV7D+Tm5prx8fHm9ddff8b6ExMTTaDc108//eR2rKfXl5KSYtpsNvPRRx91TXvyySdNb29vMzU11TWtoKDADA0NNe+9917XtJLzcuq/T8k+Fi1a5FZnyb/xjz/+6JqWlZVlxsfHm3FxcabdbjdN0zSXL19uAmaLFi3MgoIC17L/+c9/TMDcsmWLa1rPnj1NwJw9e7Zr2s6dO03AtFgs5s8//+yavnjxYhMwp0+f7po2evRos06dOubx48fdar3jjjvMkJAQ179xRWqq6PtPRC5uuuxYDTIzM4Gyv7326tWLyMhI1+utt94CIDU1lWXLlnH77beTlZXF8ePHOX78OCdOnKBv377s3r2bw4cPu23rgQcecLsM1b17d+x2OwcOHACcrSzp6ekMGzbMtb3jx49jtVq56qqrWL58ean6HnrooVLTTm1JysnJ4fjx43Tt2hXTNPn111/P4ww5LV++nCeffJI///nP3H333RU+D99++y1XX321WwtPZGSk63KpJ1itVm6//XY+/vhjwNnRPiYmhu7du5e5/KnnMj8/n+PHj3P11VcDsHHjxjLXmTVrFm+//TYvvfQSvXv3BiAhIYHdu3dz5513cuLECdd5ysnJ4brrruOHH344p8uvDzzwAEuWLCn1atmypdtyLVu2dDumyMhImjVrxr59+1zThg4dSlFREV988YVr2nfffUd6ejpDhw49ay3x8fGlWse+/fZbrrzySq655hrXtMDAQB544AH279/P9u3b3ZYfNWqUW+tgSc2n1lmyjTvuuMP1c7NmzQgNDaVFixZurdUlfy9Z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4vnnn+fNN98kOzub6OhorrrqKv70pz+dUz0ff/yx607NU40YMeKCwtff//53cnNzz+kuxzOpXbs2a9as4fHHH+eNN94gPz+fNm3a8PXXX9O/f/8L2vaF1LR27Vqee+45vvjiC95++20iIiK44oorePHFF89rmw8//DAJCQlMnz6d1157jdjYWIUvkUuYYapXp4iIiIjHqM+XiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMfH+XI4HPz+++8EBQXpkRkiInLeTNMkKyuLunXrVsuAuiLny+Ph6/fffycmJsbTuxURkRoqKSnJ7WkgIhc7j4evoKAgwPmfJTg42NO7FxGRGiIzM5OYmBjX54rIpcLj4avkUmNwcLDCl4iIXDB1YZFLjS6Si4iIiHiQwpeIiIiIByl8iYiIiHiQx/t8iYiIeIrdbqeoqKi6y5AaztvbG6vVes7LK3yJiEiNY5omR44cIT09vbpLkctEaGgo0dHR53QDiMKXiIjUOCXBKyoqCn9/f90RKVXGNE1yc3NJSUkBoE6dOmddR+FLRERqFLvd7gpeERER1V2OXAb8/PwASElJISoq6qyXINXhXkREapSSPl7+/v7VXIlcTkreb+fSx1DhS0REaiRdahRPqsj7TeFLRERExIMUvkREREQ8SOFLRETkNIWFhRc0/0IdOXKEP//5zzRs2BCbzUZMTAwDBgzg+++/r9L9imcofImIiJxizpw5tG7dmqSkpDLnJyUl0bp1a+bMmVMl+9+/fz8dO3Zk2bJlvPzyy2zZsoVFixbRu3dvxowZUyX7FM9S+BIREflDYWEhTz31FLt27aJXr16lAlhSUhK9evVi165dPPXUU1XSAvbwww9jGAZr165lyJAhNG3alCuuuIKJEyfy888/s3//fgzDICEhwbVOeno6hmGwYsUK17StW7dy4403EhgYSO3atbn77rs5fvx4pdcrFafwJSIi8gcfHx+WLl1Kw4YN2bdvn1sAKwle+/bto2HDhixduhQfH59K3X9qaiqLFi1izJgxBAQElJofGhp6TttJT0/n2muvpX379qxfv55FixZx9OhRbr/99kqtV86PwpeIiMgpYmJiWLFihVsAW7NmjVvwWrFiBTExMZW+7z179mCaJs2bN7+g7bz55pu0b9+eF154gebNm9O+fXs+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U9i2bRszZ85k2bJl/PWvfwWga9euvP766wQHB5OcnExycjKPPfZYqVqGDx/O119/7QptAIsXLyY3N5fBgwcDMGnSJGbNmsU777zDtm3bmDBhAnfddRcrV66slPN1STI9LCMjwwTMjIwMT+9aRERqkPI+T/Ly8szt27ebeXl557XdwYNN08vLNJ0xq+yXl5dpDhlSGUfhbsSIEebAgQNN0zTNq6++2rz33ntN0zTNL7/80iz5yB49erT5wAMPuK33448/mhaLxczLyzN37NhhAua6detc83fv3m0C5muvvVbuvj/77DMzIiLC9fP06dPNkJCQUsvFxsa6tlNUVGTWqlXLnDVrlmv+sGHDzKFDh5qmaZr5+fmmv7+/uWbNGrdtjB492hw2bNiZT8YlpiLvOw2yKiIi8oe8PJg37+SlxvIUF8OXXzqXr6rnbb/44otce+21pVqcNm3axObNm/noo49c00zTxOFwkJiYyK5du/Dy8qJDhw6u+Y0bNyYsLMxtO0uXLmXSpEns3LmTzMxMiouLyc/PJzc395z7dHl5eXH77bfz0Ucfcffdd5OTk8O8efP45JNPANizZw+5ublcf/31busVFhbSvn37Cp2PmkThS0RE5A+ZmWcPXiUcDufyVRW+evToQd++fXnyyScZOXKka3p2djZ/+tOfGDduXKl1GjRowK5du8667f3793PzzTfz0EMP8a9//Yvw8HBWrVrF6NGjKSwsrFCH+uHDh9OzZ09SUlJYsmQJfn5+9OvXz1UrwDfffEO9evXc1rPZbOe8j5pG4UtEROQPwcFgsZxbALNYnMtXpcmTJ9OuXTuaNWvmmtahQwe2b99O48aNy1ynWbNmFBcX8+uvv9KxY0fA2QJ16t2TGzZswOFw8Morr2CxOLt/f/rpp27b8fHxwW63n7XGrl27EhMTw5w5c1i4cCG33XYb3t7eALRs2RKbzcbBgwfp2bNnxQ6+BlP4EhER+YOfHwwc6Lyr8fTO9qfy8nIuV1WtXiVat27N8OHDmTJlimva448/ztVXX83YsWO57777CAgIYPv27SxZsoQ333yT5s2b06dPHx544AGmTp2Kt7c3jz76KH5+fq6xwho3bkxRURFvvPEGAwYMYPXq1bxz2i2ccXFxZGdn8/3339O2bVv8/f3LbRG78847eeedd9i1axfLly93TQ8KCuKxxx5jwoQJOBwOrrnmGjIyMli9ejXBwcGMGDGiCs7axU93O4qIiJxi4kQ4W4OP3Q4TJnimnueeew7HKU1xbdq0YeXKlezatYvu3bvTvn17nnrqKerWretaZtasWdSuXZsePXowePBg7r//foKCgvD19QWgbdu2vPrqq7z44ou0atWKjz76qNTQFl27duXBBx9k6NChREZG8tJLL5Vb4/Dhw9m+fTv16tWjW7dubvOef/55/vGPfzBp0iRatGhBv379+Oabb4iPj6+M03NJMkzTND25w8zMTEJCQsjIyCC4qttrRUSkxirv8yQ/P5/ExETi4+NdYaOi3nnHOZyE1ereAubl5Qxeb78NDz54oUfgOYcOHSImJoalS5dy3XXXVXc5NVJF3ndq+RIRETnNgw/Cjz86Ly3+0SUKi8X5848/XvzBa9myZcyfP5/ExETWrFnDHXfcQVxcHD169Kju0gT1+RIRESlTt27OV16e867G4OCq7+NVWYqKivjb3/7Gvn37CAoKomvXrnz00UeujvBSvRS+REREzsDP79IJXSX69u1L3759q7sMKYcuO4qIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kO52FBERAQ5kHiCnKKfC6wV4BxAbHFsFFUlNpfAlIiKXvQOZB7j5y5vPe/0FgxcogMk502VHERG57J1Pi1dlrn+6n376CavVSv/+/St1u+dq//79GIZBQkJCtey/plP4EhERuci8//77/PnPf+aHH37g999/r+5ypJIpfImIiFxEsrOzmTNnDg899BD9+/dnxowZbvPnz59PkyZN8PX1pXfv3sycORPDMEhPT3cts2rVKrp3746fnx8xMTGMGzeOnJyTrXNxcXG88MIL3HvvvQQFBdGgQQPeffdd1/z4+HgA2rdvj2EY9OrVqyoP+bKj8CUiInIR+fTTT2nevDnNmjXjrrvu4oMPPsA0TQASExO59dZbGTRoEJs2beJPf/oT/+///T+39ffu3Uu/fv0YMmQImzdvZs6cOaxatYqxY8e6LffKK6/QqVMnfv31Vx5++GEeeughfvvtNwDWrl0LwNKlS0lOTuaLL77wwJFfPhS+RERELiLvv/8+d911FwD9+vUjIyODlStXAjBt2jSaNWvGyy+/TLNmzbjjjjsYOXKk2/qTJk1i+PDhjB8/niZNmtC1a1emTJnCrFmzyM/Pdy1300038fDDD9O4cWMef/xxatWqxfLlywGIjIwEICIigujoaMLDwz1w5JcPhS8REZGLxG+//cbatWsZNmwYAF5eXgwdOpT333/fNb9z585u61x55ZVuP2/atIkZM2YQGBjoevXt2xeHw0FiYqJruTZt2rj+bhgG0dHRpKSkVNWhySk01ISIiMhF4v3336e4uJi6deu6ppmmic1m48033zynbWRnZ/OnP/2JcePGlZrXoEED19+9vb3d5hmGgcPhOM/KpSIUvkRERC4CxcXFzJo1i1deeYUbbrjBbd6gQYP4+OOPadasGd9++63bvHXr1rn93KFDB7Zv307jxo3PuxYfHx8A7Hb7eW9DyqfwJSIichFYsGABaWlpjB49mpCQELd5Q4YM4f333+fTTz/l1Vdf5fHHH2f06NEkJCS47oY0DAOAxx9/nKuvvpqxY8dy3333ERAQwPbt21myZMk5t55FRUXh5+fHokWLqF+/Pr6+vqVqkvOnPl8iIiIXgffff58+ffqUGXKGDBnC+vXrycrK4vPPP+eLL76gTZs2TJ061XW3o81mA5x9uVauXMmuXbvo3r077du356mnnnK7lHk2Xl5eTJkyhWnTplG3bl0GDhxYOQcpABhmyf2rHpKZmUlISAgZGRkEBwd7ctciIlKDlPd5kp+fT2JiIvHx8fj6+p7Ttraf2M7QBUPPu5Y5N8+hZUTL817/QvzrX//inXfeISkpqVr2L04Ved/psqOIiMgl5O2336Zz585ERESwevVqXn755VJjeMnFTeFLRETkErJ7927++c9/kpqaSoMGDXj00Ud58sknq7ssqQCFLxERuewFeAdU6/oV8dprr/Haa695bH9S+RS+RETkshcbHMuCwQvIKco5+8KnCfAOIDY4tgqqkppK4UtERAQUoMRjNNSEiIiIiAcpfImIiIh4kC47ioiIlMM0TfKLHBTaHfhYLfh6W1wjyYucL4UvERGR0+QX2dmenMm6xFQOnMjB7jCxWgxiIwLoHB9OyzrB+Hpbq7tMuUQpfImIiJxi//Ec5qxP4sCJHAwMwvy98fGxUmx3sPlQBpsOpRMbEcDQTjHE1fLcEBOXgl69etGuXTtef/316i7loqY+XyIiIn/YfzyH6asTOXA8h9jwABpHBRIRaCPEz5uIQBuNowKJDQ/gwB/L7T9e8aEpzmTkyJEYhoFhGHh7exMfH89f//pX8vPzK3U/l6q4uLgaEewUvkRERHBeapyzPoljWQU0jgrEx6vsj0gfLwuNowI5llXAnPVJ5BfZK7WOfv36kZyczL59+3jttdeYNm0aTz/9dKXu40KYpklxcXF1l3FJU/gSEREBtidncuBEDrERAWftVG8Yzv5fB07ksCM5s1LrsNlsREdHExMTw6BBg+jTpw9LlixxzXc4HEyaNIn4+Hj8/Pxo27Ytn3/+uWt+p06d+Pe//+36edCgQXh7e5OdnQ3AoUOHMAyDPXv2APDhhx/SqVMngoKCiI6O5s477yQlJcW1/ooVKzAMg4ULF9KxY0dsNhurVq0iJyeHe+65h8DAQOrUqcMrr7xy1mPbtGkTvXv3JigoiODgYDp27Mj69etd81etWkX37t3x8/MjJiaGcePGkZPjbF3s1asXBw4cYMKECa7WwUuVwpeIiFz2TNNkXWIqBka5LV6n8/GyYGCwNjEV0zSrpK6tW7eyZs0afHx8XNMmTZrErFmzeOedd9i2bRsTJkzgrrvuYuXKlQD07NmTFStWAM7j+vHHHwkNDWXVqlUArFy5knr16tG4cWMAioqKeP7559m0aRNfffUV+/fvZ+TIkaVqeeKJJ5g8eTI7duygTZs2/OUvf2HlypXMmzeP7777jhUrVrBx48YzHs/w4cOpX78+69atY8OGDTzxxBN4e3sDsHfvXvr168eQIUPYvHkzc+bMYdWqVa6Hhn/xxRfUr1+f5557juTkZJKTky/o3FYndbgXEZHLXn6RgwMncgjz967QemH+3hw4kUN+kQM/n8q5+3HBggUEBgZSXFxMQUEBFouFN998E4CCggJeeOEFli5dSpcuXQBo2LAhq1atYtq0afTs2ZNevXrx/vvvY7fb2bp1Kz4+PgwdOpQVK1bQr18/VqxYQc+ePV37u/fee11/b9iwIVOmTKFz585kZ2cTGBjomvfcc89x/fXXA5Cdnc3777/P//73P6677joAZs6cSf369c94bAcPHuQvf/kLzZs3B6BJkyaueZMmTWL48OGMHz/eNW/KlCn07NmTqVOnEh4ejtVqdbXQXcrU8iUiIpe9QrsDu8PEy1qxj0WrxcDuMCm0Oyqtlt69e5OQkMAvv/zCiBEjGDVqFEOGDAFgz5495Obmcv311xMYGOh6zZo1i7179wLQvXt3srKy+PXXX1m5cqUrkJW0hq1cuZJevXq59rdhwwYGDBhAgwYNCAoKcgWzgwcPutXVqVMn19/37t1LYWEhV111lWtaeHg4zZo1O+OxTZw4kfvuu48+ffowefJkV83gvCQ5Y8YMt+Pq27cvDoeDxMTEip/Ii5havkRE5LLnY7VgtRgUVzBElYz/5VPB0HYmAQEBrkuCH3zwAW3btuX9999n9OjRrn5b33zzDfXq1XNbz2azARAaGkrbtm1ZsWIFP/30E9dffz09evRg6NCh7Nq1i927d7sCVk5ODn379qVv37589NFHREZGcvDgQfr27UthYWGpui7UM888w5133sk333zDwoULefrpp/nkk08YPHgw2dnZ/OlPf2LcuHGl1mvQoMEF7/tiopYvERG57Pl6W4iNCCAtt6hC66XlFhEbEYCvd9V8nFosFv72t7/x97//nby8PFq2bInNZuPgwYM0btzY7RUTE+Nar2fPnixfvpwffviBXr16ER4eTosWLfjXv/5FnTp1aNq0KQA7d+7kxIkTTJ48me7du9O8eXO3zvbladSoEd7e3vzyyy+uaWlpaezateus6zZt2pQJEybw3XffccsttzB9+nQAOnTowPbt20sdV+PGjV193nx8fLDbK/fu0uqg8CUiIpc9wzDoHB+OiUlh8bm1fhUWOzAxuTI+vErvvLvtttuwWq289dZbBAUF8dhjjzFhwgRmzpzJ3r172bhxI2+88QYzZ850rdOrVy8WL16Ml5eXq39Vr169+Oijj9z6ezVo0AAfHx/eeOMN9u3bx/z583n++efPWlNgYCCjR4/mL3/5C8uWLWPr1q2MHDkSi6X8WJGXl8fYsWNZsWIFBw4cYPXq1axbt44WLVoA8Pjjj7NmzRrGjh1LQkICu3fvZt68ea4O9+Ac5+uHH37g8OHDHD9+vMLn8mKh8CUiIgK0rBPsGj7ibHcvmqbpGpaiRZ3gKq3Ly8uLsWPH8tJLL5GTk8Pzzz/PP/7xDyZNmkSLFi3o168f33zzDfHx8a51unfvjsPhcAtavXr1wm63u/X3ioyMZMaMGXz22We0bNmSyZMnuw1TcSYvv/wy3bt3Z8CAAfTp04drrrmGjh07lru81WrlxIkT3HPPPTRt2pTbb7+dG2+8kWeffRaANm3asHLlSnbt2kX37t1p3749Tz31FHXr1nVt47nnnmP//v00atSIyMjIcz2FFx3DrKr7Y8uRmZlJSEgIGRkZBAdX7RtWRERqrvI+T/Lz80lMTCQ+Ph5fX98KbbNkhPtjWQXERgSUOexEYbHzzsjIIBv3XhNPbIQeMSQVe9+pw72IiMgf4moFMKpbfKlnO5bc1ZiWW4SJSWytAO7oHKPgJedF4UtEROQUcbUCeOS6JuxIzmRtYioHTuRQVOTAajFoUz+EK+PDaVEnGF/vyhnXSy4/Cl8iF4G0/DR2pO7gUNYhDmUdosBegJfFi7qBdYkJiqFZWDNqB9Su7jJFLhu+3lbaNwijXUwo+UUOCu0OfKwWfL0tl/RjbeTioPAlUo2yC7NZkbSC9UfXk16QjpfhhZ+XH1aLlbziPH5N+ZV1R9YR7BNMq1qt6BPbh3Df8OouW+SyYRgGfj5W/FArl1QehS+RanIg8wBf7v6S/Zn7CfcNp3FoYyxG6c69pmmSXpDO6t9Xk5iRyIBGA2gZ0bIaKhYRkcqgoSZEqsHBzIPM3jGbg1kHaRjSkFp+tcoMXuD85h3mG0bj0Mak5qcyZ+cctp3Y5uGKRUSksih8iXhYTlEOX+75kmN5x2gY0hAvy7k1QFsNKw2CGpBvz2fennkcz7t0BxgUEbmcKXyJeNgPh35gX/o+YoNj3Vq7iouKz7hecVExhmEQExTD0ZyjfLf/u7MOBCkiF8g0oTAX8tKdf+r/nFSCCoWvqVOn0qZNG4KDgwkODqZLly4sXLiwqmoTqXEyCjJYf2Q94b7heFu8XdM3LN7Av277F2lH0spcL+1IGv+67V9sWLwBi2GhTkAdtp3YxuHsw54qXeTyUpQPSetgzRuw+G/w3T+cf655wzm9KL+6K5RLWIXCV/369Zk8eTIbNmxg/fr1XHvttQwcOJBt29T/RORc7ErbRWp+KuF+J+9YLC4qZsHUBaQcSOH1+18vFcDSjqTx+v2vk3IghQVTF1BcVEyQTxA5RTnsOLHD04cgUvOd2AsrJ8NPb8LhjWBYwNvf+efhjc7pKyc7l6tGhmHw1VdfVWsNcn4qFL4GDBjATTfdRJMmTWjatCn/+te/CAwM5Oeff66q+kRqlMPZhzEMA6tx8rZ1L28vxr0zjlr1a3H80HG3AFYSvI4fOk6t+rUY9844vLy9MAwDX6svBzIPVNehiNRMJ/bCL+9AaiKEN4TIZhAQCX6hzj8jmzmnpyY6l6vkADZy5EgMw8AwDLy9valduzbXX389H3zwAQ6H+wO/k5OTufHGG89pu54Mas888wzt2rWrsu3n5+czcuRIWrdujZeXF4MGDaqyfZWo7GM67z5fdrudTz75hJycHLp06VJpBYnUZIezDuPn5Vdqelh0GOPfG+8WwPYl7HMLXuPfG09YdJhrHX9vf47kHKHIUeTJQxCpuYry4dcPITsFajUDq0/Zy1l9nPOzU5zLV/IlyH79+pGcnMz+/ftZuHAhvXv35pFHHuHmm2+muPhk39Do6GhsNlul7bewsLDStlUZyqvHbrfj5+fHuHHj6NOnj4erqhwVDl9btmwhMDAQm83Ggw8+yJdffknLluWPOVRQUEBmZqbbS+RyVWAvcGv1OtXpAeyVUa+UG7zAefej3bRT7DhzR30ROUdHtpxs8TrbKPaGAWHxzuWPbq3UMmw2G9HR0dSrV48OHTrwt7/9jXnz5rFw4UJmzJhxSgknW7MKCwsZO3YsderUwdfXl9jYWCZNmgRAXFwcAIMHD8YwDNfPJa05//3vf90eBr1o0SKuueYaQkNDiYiI4Oabb2bvXvcWvkOHDjFs2DDCw8MJCAigU6dO/PLLL8yYMYNnn32WTZs2uVrwSmo+ePAgAwcOJDAwkODgYG6//XaOHj3q2mZ59ZwuICCAqVOncv/99xMdHX1O5/RM5wcgPT2d++67j8jISIKDg7n22mvZtGkTwBmP6XxVeJDVZs2akZCQQEZGBp9//jkjRoxg5cqV5QawSZMm8eyzz15QkSI1hc1qw27ay50fFh3GiOdH8MqoV1zTRjw/olTwArCbdqyG9ZyHqhCRMzBNOPgTYJTf4nU6L5tz+QNroF7Hswe2C3DttdfStm1bvvjiC+67775S86dMmcL8+fP59NNPadCgAUlJSSQlJQGwbt06oqKimD59Ov369cNqPfkFcM+ePcydO5cvvvjCNT0nJ4eJEyfSpk0bsrOzeeqppxg8eDAJCQlYLBays7Pp2bMn9erVY/78+URHR7Nx40YcDgdDhw5l69atLFq0iKVLlwIQEhKCw+FwBa+VK1dSXFzMmDFjGDp0KCtWrDhjPZXhTOcH4LbbbsPPz4+FCxcSEhLCtGnTuO6669i1a1e5x3QhKvxb28fHh8aNGwPQsWNH1q1bx3/+8x+mTZtW5vJPPvkkEydOdP2cmZlJTEzMeZYrcmmrF1SPvRnl9xFJO5LGzH/MdJs28x8zy2z5yi3KpWFoQ7e7JkXkPBXlQeo+8K/g47v8w53rFeWBj3/V1PaH5s2bs3nz5jLnHTx4kCZNmnDNNddgGAaxsbGueZGRkQCEhoaWaikqLCxk1qxZrmUAhgwZ4rbMBx98QGRkJNu3b6dVq1bMnj2bY8eOsW7dOsLDneerJBcABAYG4uXl5bavJUuWsGXLFhITE10ZYNasWVxxxRWsW7eOzp07l1tPZTjT+Vm1ahVr164lJSXFdRn33//+N1999RWff/45DzzwQJnHdCEueJwvh8NBQUFBufNtNptraIqSl8jlqk5AHUzTLLP16/TO9Y9Of7TMTvjgfORQfnE+ccFxHqxepAazF4LDDhX9MmPxcq5nr/r+UqZplvtQ75EjR5KQkECzZs0YN24c33333TltMzY2tlTQ2b17N8OGDaNhw4YEBwe7LlMePHgQgISEBNq3b+8KXudix44dxMTEuDW+tGzZktDQUHbsOHnXdln1VIYznZ9NmzaRnZ1NREQEgYGBrldiYmKpy62VpUItX08++SQ33ngjDRo0ICsri9mzZ7NixQoWL15cJcWJ1DTNw5sTagslNS+VSP+Tv2BOD14lLV3j3xvvmv76/a+7pmcXZePv7U+LiBbVeDQiNYjVByxWqOgNLI5i53rneqnyAuzYsYP4+Pgy53Xo0IHExEQWLlzI0qVLuf322+nTpw+ff/75GbcZEBBQatqAAQOIjY3lvffeo27dujgcDlq1auXqAO/nV/qmocpSVj2V4UznJzs7mzp16rhd/iwRGhpaJfVUqOUrJSWFe+65h2bNmnHdddexbt06Fi9ezPXXX18lxYnUNCG2EDrW7khqfqqro3xxUTFTHpxSZuf60zvhT3lwCoWFhSTnJNMiogX1A+tX5+GI1Bzefs6O9rmpFVsvN9W5nnfVBRKAZcuWsWXLllKXBE8VHBzM0KFDee+995gzZw5z584lNdV5PN7e3tjt5fc3LXHixAl+++03/v73v3PdddfRokUL0tLcxx5s06YNCQkJrm2fzsfHp9S+WrRoUaqf1fbt20lPTz/jTXuVqbzz06FDB44cOYKXlxeNGzd2e9WqVavcY7oQFWr5ev/99yttxyKXq14xvdiTvocDmQecz3b09uLmh25mwdQFjHtnXKm+XSUBbMqDU+j/YH+O5B8h0i+SvnF9y70EISIVZBjQoAsc3uC8hHguLVnFBYAJsV0rtbN9QUEBR44cwW63c/ToURYtWsSkSZO4+eabueeee8pc59VXX6VOnTq0b98ei8XCZ599RnR0tKvlJi4uju+//55u3bphs9kICyt9Ew9AWFgYERERvPvuu9SpU4eDBw/yxBNPuC0zbNgwXnjhBQYNGsSkSZOoU6cOv/76K3Xr1qVLly7ExcWRmJhIQkIC9evXJygoiD59+tC6dWuGDx/O66+/TnFxMQ8//DA9e/akU6dOFT5H27dvp7CwkNTUVLKyskhISAAodyyuM52fPn360KVLFwYNGsRLL71E06ZN+f333/nmm28YPHgwnTp1KvOYLmSYDz3bUcTDAn0CGdh4IOG+4ezL2IfdYadj3478v8/+X5l3NYIzgD356ZNEdY3C2+rNgEYDiPKP8nDlIjVcdGsIj3d2oD/bMxxNE9ISncvXblWpZSxatIg6deoQFxdHv379WL58OVOmTGHevHnl3gEYFBTESy+9RKdOnejcuTP79+/n22+/xWJxfsy/8sorLFmyhJiYGNq3b1/uvi0WC5988gkbNmygVatWTJgwgZdfftltGR8fH7777juioqK46aabaN26NZMnT3bVNmTIEPr160fv3r2JjIzk448/xjAM5s2bR1hYGD169KBPnz40bNiQOXPmnNc5uummm2jfvj1ff/01K1asoH379mc8rjOdH8Mw+Pbbb+nRowejRo2iadOm3HHHHRw4cIDatWuXe0wXwjA9/GTezMxMQkJCyMjIUOd7uazty9jHV7u/4kDWASL9Igm1hbo9aLuEaZpkFmZyNPcoUf5RDGg4gNaRrauhYpGLS3mfJ/n5+SQmJp5xrKhylYxwn53iHMfLq4zWjeICZ/AKjIKrH3JedpTLXkXedxogSKSaNAxpyH1t7mPZwWX8evRX9qTvwdvijZ+XH14WLxymg9yiXArsBQT5BHFl9JXcEHcDtfxqVXfpIjVXRCO46kHnyPWpiYDhHE7C4uXsXJ+bCpjOFq8O9yh4yXlR+BKpRsE+wQxqPIhr6l3DjhM7OJh1kENZhyhyFOFj9aFhSENigmJoHt6c6IBo9fES8YSIRtDzCefI9QfWnBzHy2KFeh2cfbxqtwLvCraqifxB4UvkIlDLrxbd63cHnJcZHaYDi2FR2BKpLt6+UL+Tc+T6oryTnfC9/ap0JHu5PCh8iVxkDMMo9/mPIuJhhvHHyPVVO3q9XF50t6OIiIiIByl8iYiIiHiQwpeIiIiIB6nPl4iISDlM0yTfnk+Rowhvize+Vl/dCCMXTOFLRETkNAX2Anam7mTj0Y0kZSVhd9ixWqzEBMXQoXYHmoc3x2Y9/8fLyOVN4UtEROQUBzMP8sXuL0jKSsIwDEJtofh4+VBsFrPtxDa2Ht9KTFAMtzS5hQbBDaqtTsMw+PLLLxk0aFC11SDnR32+RERE/nAw8yD/2/E/DmYdpEFQAxqGNCTcN5xgWzDhvuE0DGlIg6AGHMz6Y7nMg5W6/5EjR2IYBoZh4O3tTe3atbn++uv54IMPcDgcbssmJydz4403ntN2DcPgq6++qtRay/PMM8+U+4DryrBixQoGDhxInTp1CAgIoF27dnz00UdVtj9w/rtUZshV+BIREcF5qfGL3V9wPO84jUIa4W31LnM5b6s3jUIacTzvOF/s/oICe0Gl1tGvXz+Sk5PZv38/CxcupHfv3jzyyCPcfPPNFBcXu5aLjo7GZqu8S5+FhYWVtq3KUF49a9asoU2bNsydO5fNmzczatQo7rnnHhYsWODhCs+fwpeIiAiwM3UnSVlJxAbFnrVTvWEYNAhqQFJWEr+l/lapddhsNqKjo6lXrx4dOnTgb3/7G/PmzWPhwoXMmDHDrYaS1qzCwkLGjh1LnTp18PX1JTY2lkmTJgEQFxcHwODBgzEMw/VzSQvVf//7X7eHQS9atIhrrrmG0NBQIiIiuPnmm9m7d69bjYcOHWLYsGGEh4cTEBBAp06d+OWXX5gxYwbPPvssmzZtcrXgldR88OBBBg4cSGBgIMHBwdx+++0cPXrUtc3y6jnd3/72N55//nm6du1Ko0aNeOSRR+jXrx9ffPFFuec0LS2N4cOHExkZiZ+fH02aNGH69Omu+UlJSdx+++2EhoYSHh7OwIED2b9/v6uumTNnMm/ePNcxrVix4kz/hGelPl8iInLZM02TjUc3Oi/3ldPidTofqw8YsOHoBlrXal2ld0Fee+21tG3bli+++IL77ruv1PwpU6Ywf/58Pv30Uxo0aEBSUhJJSUkArFu3jqioKKZPn06/fv2wWk8+QWPPnj3MnTuXL774wjU9JyeHiRMn0qZNG7Kzs3nqqacYPHgwCQkJWCwWsrOz6dmzJ/Xq1WP+/PlER0ezceNGHA4HQ4cOZevWrSxatIilS5cCEBISgsPhcAWvlStXUlxczJgxYxg6dKhbkCmrnnORkZFBixYtyp3/j3/8g+3bt7Nw4UJq1arFnj17yMvLA6CoqIi+ffvSpUsXfvzxR7y8vPjnP/9Jv3792Lx5M4899hg7duwgMzPTFdjCw8PPubayKHyJiMhlL9+eT1JWEqG20AqtF2YLIykriXx7Pn5eflVT3B+aN2/O5s2by5x38OBBmjRpwjXXXINhGMTGxrrmRUZGAhAaGkp0dLTbeoWFhcyaNcu1DMCQIUPclvnggw+IjIxk+/bttGrVitmzZ3Ps2DHWrVvnCiGNGzd2LR8YGIiXl5fbvpYsWcKWLVtITEwkJiYGgFmzZnHFFVewbt06OnfuXG49Z/Ppp5+ybt06pk2bVu4yBw8epH379nTq1Ak42RoIMGfOHBwOB//9739dAXr69OmEhoayYsUKbrjhBvz8/CgoKCh1/s6XLjuKiMhlr8hRhN1hx8uoWJuE1bBid9gpchRVUWUnmaZZbuvayJEjSUhIoFmzZowbN47vvvvunLYZGxtbKujs3r2bYcOG0bBhQ4KDg11B5eBB580FCQkJtG/fvkKtPzt27CAmJsYVvABatmxJaGgoO3bsOGM9Z7J8+XJGjRrFe++9xxVXXFHucg899BCffPIJ7dq1469//Str1qxxzdu0aRN79uwhKCiIwMBAAgMDCQ8PJz8/v9Tl1sqili8REbnseVu8sVqsFJvFZ1/4FHbTOf6Xt+XcLlVeiB07dhAfH1/mvA4dOpCYmMjChQtZunQpt99+O3369OHzzz8/4zYDAgJKTRswYACxsbG899571K1bF4fDQatWrVwd4P38qq6Fr6x6yrNy5UoGDBjAa6+9xj333HPGZW+88UYOHDjAt99+y5IlS7juuusYM2YM//73v8nOzqZjx45l3jFZkSBYEWr5EhGRy56v1ZeYoBjSC9IrtF5aQRoxQTH4WsvuHF5Zli1bxpYtW0pdEjxVcHAwQ4cO5b333mPOnDnMnTuX1NRUALy9vbHb7Wfdz4kTJ/jtt9/4+9//znXXXUeLFi1IS0tzW6ZNmzYkJCS4tn06Hx+fUvtq0aKFWz80gO3bt5Oenk7Lli3PWtfpVqxYQf/+/XnxxRd54IEHzmmdyMhIRowYwf/+9z9ef/113n33XcAZXHfv3k1UVBSNGzd2e4WEhJR7TBdC4UtERC57hmHQoXYHTNOkyH5ulxAL7YVgQsfaHSu1s31BQQFHjhzh8OHDbNy4kRdeeIGBAwdy8803l9vC8+qrr/Lxxx+zc+dOdu3axWeffUZ0dDShoaGAs4/T999/z5EjR0qFqVOFhYURERHBu+++y549e1i2bBkTJ050W2bYsGFER0czaNAgVq9ezb59+5g7dy4//fSTa1+JiYkkJCRw/PhxCgoK6NOnD61bt2b48OFs3LiRtWvXcs8999CzZ09XP6xztXz5cvr378+4ceMYMmQIR44c4ciRI+WGQYCnnnqKefPmsWfPHrZt28aCBQtcHfSHDx9OrVq1GDhwID/++COJiYmsWLGCcePGcejQIdcxbd68md9++43jx49TVHRhl5kVvkRERIDm4c2JCYrhQNYBTNM847KmaXIw6yAxQTE0C29WqXUsWrSIOnXqEBcXR79+/Vi+fDlTpkxh3rx55d4BGBQUxEsvvUSnTp3o3Lkz+/fv59tvv8VicX7Mv/LKKyxZsoSYmBjat29f7r4tFguffPIJGzZsoFWrVkyYMIGXX37ZbRkfHx++++47oqKiuOmmm2jdujWTJ0921TZkyBD69etH7969iYyM5OOPP8YwDObNm0dYWBg9evSgT58+NGzYkDlz5lT4/MycOZPc3FwmTZpEnTp1XK9bbrml3HV8fHx48sknadOmDT169MBqtfLJJ58A4O/vzw8//ECDBg245ZZbaNGiBaNHjyY/P5/g4GAA7r//fpo1a0anTp2IjIxk9erVFa77VIZ5tndYJcvMzCQkJISMjAzXQYmIiFRUeZ8n+fn5JCYmnnGsqPKUjHB/PO84DYIaOIeTOE2hvZCDWQep5VeLu1vcTUxwTBlbkstNRd536nAvIiLyhwbBDbirxV2uZztiOIeTsBpW7KadtII0MKFBUAOGNBmi4CXnReFLRETkFA2CG/BQu4f4LfU3NhzdQFJWEkX2IqwWK60iWtGxdkeahTfDZq28R/vI5UXhS0RE5DQ2q402kW1oXas1+fZ8ihxFeFu88bX6VulI9nJ5UPgSEREph2EY+Hn54UfVjl4vlxfd7SgiIjWSh+8nk8tcRd5vCl8iIlKjeHs7R5vPzc2t5krkclLyfit5/52JLjuKiEiNYrVaCQ0NJSUlBXCO46R+WlJVTNMkNzeXlJQUQkNDyx2L7VQKXyIiUuNER0cDuAKYSFULDQ11ve/ORuFLRERqHMMwqFOnDlFRURf8KBiRs/H29j6nFq8SCl8iIlJjWa3WCn0oiniCOtyLiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHKXyJiIiIeJDCl4iIiIgHeVV3AReTnIJisguKMYBAXy/8fXR6ROQyVJQP+elgmuDjD7ZgMIzqrkqkxrjs00VKVj6bkzLY+nsGRzPzKSx2AODjZaF2sC+t64XQpn4okUG2aq5URKQK5aXB7786XxmHnAEME6w+EFALareG+h0hJEZBTOQCGaZpmp7cYWZmJiEhIWRkZBAcHOzJXbvJL7KzfGcKK3cdIzWnEH8fK4E2L2zeVgAKiuxkFxSTV2QnzN+H3s0i6dksCt8/5ouI1Aj2Ytj/A+z8BrKOgpfN2dLl7QcYYC+AgmwozHJOj7sGWtwMviHVXflF83kiUlGXZcvXiewCZv9ykK2/ZxAe4EPz6CCM077JBdq8iAi04TBNjmcV8OWvh9mdksPwqxoQFuBTTZWLiFSiwhzY+CEc/Am8AyCyOVhO/4IZCP4RzkuQeanw27dwYjd0HAVhsdVStsil7rLrcJ+ZX8Ssnw6w5XAG8bUCiAryLRW8TmUxDKKCfYmrFcDmQ+nM+mk/WflFHqxYRKQKFBfChpmw/0cIqQ+hMWUEr1MYhjOERTaHE3th7buQmey5ekVqkMsqfJmmycItyexIzqRxVCA2L+cvmuKiwjOuV1xUiM3LSqPIQLb9nsnibUfw8NVaEZHKtXeZs8UrLB58AgEoLCo+4yqFRcVg8YJazSBtP2z5DOz6MipSUZdV+Np5JIuf9p6gTogv3lbnof+64lte/tMA0lLK/gaXlpLMy38awK8rvsXHy0J0iC+r9xxnd0q2J0sXEak8mcnOy4e+oeATAMCc5ZtpPXoKSSnpZa6SlJJO69FTmLN8s7OFLKwhHN4ASb94rm6RGqJC4WvSpEl07tyZoKAgoqKiGDRoEL/99ltV1Vbp1u9PpaDYQai/s89WcVEhi2b9h2OH9vP2X+4uFcDSUpJ5+y93c+zQfhbN+g/FRYWE+fuQX+Rg3f7U6jgEEZELd3g95J6AoDqAs0XrqelL2XXoOL0m/LdUAEtKSafXhP+y69Bxnpq+1NkC5uPvbAXbvwoc9mo4CJFLV4XC18qVKxkzZgw///wzS5YsoaioiBtuuIGcnJyqqq/SpOcWsu33TCJO6Szv5e3Dg5NnEFEnhhPJSW4BrCR4nUhOIqJODA9OnoGXt3Pd8AAfth7OIFN9v0TkUuOww8Gf3cbu8vH2Yum/76VhnXD2Jae6BbCS4LUvOZWGdcJZ+u978fH+416toGhn/6/0A9V0MCKXpgqFr0WLFjFy5EiuuOIK2rZty4wZMzh48CAbNmyoqvoqzdHMArLyiwn283abHhZVh4df/tAtgCVu2+gWvB5++UPCouq41gn29SY7v5iUzHxPH4aIyIXJOe4c0+u0oSJiokJZ8dp9bgFszdYDbsFrxWv3ERMVenIl7wAozoOsI549BpFL3AX1+crIyAAgPDy83GUKCgrIzMx0e1WH1JxCHKbp6ut1qtMD2BsThpUbvMA5AGuxwyQ1Ry1fInKJyT0Bhbmuvl6nOj2AdRs3rfzgBX+0nBnObYrIOTvv8OVwOBg/fjzdunWjVatW5S43adIkQkJCXK+YmJjz3eUFOdvdiWFRdbjzry+5Tbvzry+VCl6nsjt0x6OIXGJMB+AAo+xf/zFRoXz45G1u0z588rbSwevkBtXnS6SCzjt8jRkzhq1bt/LJJ5+ccbknn3ySjIwM1yspKel8d3lBbN4WTLP8EJaWkszsl/7qNm32S38t8y7Ikm3YvC+rm0VFpCbw8gWLN9jLHmInKSWduyd95jbt7kmflXsXJBjObYrIOTuv9DB27FgWLFjA8uXLqV+//hmXtdlsBAcHu72qQ2SgL77eFvKLHKXmnd65/s+vfVxmJ/wSuYV2fL2tROl5jyJyqQmMcl5yLCx9o9TpnetXT/lTmZ3wXRx256XHoNqeqV2khqhQ+DJNk7Fjx/Lll1+ybNky4uPjq6quShcVbCM8wIfUXPdve6cHr4df/pD4KzqU6oR/agBLyy2kVqAPUUH6ticilxhbkPOxQLnuw+WcHrxWvHYfXVvFluqE7xbA8lKdHfdDqqc7icilqkLha8yYMfzvf/9j9uzZBAUFceTIEY4cOUJeXl5V1VdpfL2tXBUfTmZeEY4/+moVFxXyzhMjy+xcf3on/HeeGElxUSF2h0l2QTFXxUfg46XLjiJyiTEMaNAVzGLXpcfComL6PPZBmZ3rT++E3+exD5zjfJkmZKdA3Y4QUKsaD0jk0lOh9DB16lQyMjLo1asXderUcb3mzJlTVfVVqo5x4dQN9eNQujMsenn70O+eR4isH1fmXY0lASyyfhz97nkEL28fDqXlUi/Ujw6xYdVxCCIiF65uO+cjglITwTTx8fbiuVF9aFq/Vpl3NZYEsKb1a/HcqD7Ocb6yj4JfKMR3r44jELmkGaaHH1KYmZlJSEgIGRkZ1dL/65d9J/jfzwcI9fchPODkSPclA6iWpWT+iewCMvOLubtLLJ3jyh9eQ0TkopeyE9a84fx7iLPvbmFR8ckBVMvgml+QCRmHoM3t0GKAJ6otU3V/noicr8vuulnnuHD6XhFNak4hRzLyMU3zjMELwOrlTXJGHul5RfS7IppOavUSkUtdVHNneHIU/9EC5jhj8ALnSPjkHHMGr0bXQpO+HipWpGY58/+0GshiMbipdR0CbV4s2naEXUeziQq2EernjfHHozZKmKZJem4RR7PyCff34bZOMXRvXKvUciIil6T4HuDtB1vnQsp2CIh0vk4fA8w0na1dWcnO5VsOhBb/B15n/uIqImW77C47niopNZdlO1PY9nsGmfnFGIC31YKJSXGxiQkE+3nRql4I1zaPon6Yf7XWKyJSJbKPwe7vIGmt8w5GcI4FZhhgLwJM5/AUkS2g6Q0Q1aJayy1xMX2eiFTEZR2+ShzJyCfxeA5HMvJIzSkEAyICbNQO9qVhZAC1gzWkhIhcBnJT4dhvzhau7KPO0fB9QyG4LoTFOV8XUcv/xfh5InIuLrvLjmWJDvElOkQBS0Quc/7hENuluqsQqfEuuw73IiIiItVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg7yquwCpGUzTJD23iGPZBeQV2rEYBqH+3kQG2fD1tlZ3eXK5sBdB9lHIOQ6mHaw2CKwN/hFg0XdNEbk4KHzJBckrtLP5UDprE1NJSsslp8CO3XQABr5eFoJ9vWkTE0KHBmHE1wrAMIzqLllqooxDkLQOkn6BvDQoynVONyzgEwhB0RDXDep1BN+Q6q1VRC57hmmapid3mJmZSUhICBkZGQQHB3ty11LJ9qRkMT/hd3anZONlNQj39yHA5oW31YJpmuQV2cnKLyYtt4hAm5VrmkRyfcvaBNqU+aWSFBfAnqXw2yLISwXfMPALAW9/Z/ByFENhNuSmQnEehMZBq8FQtwPoi8AlT58ncqlS+JLz8su+E8zdeIjsgmJiwwPw8TrzJZ3UnEJSsvK5om4Id10dS3iAj4cqlRqrMAc2zISDa8AvHAKjzxyoHMWQtt8Zyq4YBM1uUgC7xOnzRC5V6gQhFbb5UDqfrk/C7jBpHBl41uAFEB7gQ8NagWw9nMFHPx8gr9DugUqlxrIXw6//gwOrITQeguqcPUhZvCCisfMy5JbPYd9yz9QqInIahS+pkPTcQuYn/E6R3UH9MP8y+3AVFhhkpVkpLHCf5+NloWFkAFt/z2TZzqOeKllqogOr4cAa52VEH//S8wuKIDXL+efpAqOclyW3z4f0g1VeqojI6dT5Ripk1e7jHEzNpWntoFLz9m31ZeXcMLb+FIjpMDAsJq26ZNPr1jTir8gHwOZlJSLAh5W7jtG+QRh1Q/08fQhyqcvPhJ0LwNsPbIHu87bsh89W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", "text/plain": [ "
" ] @@ -287,12 +370,14 @@ "output_type": "stream", "text": [ "Time t=7\n", - "[Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[18]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", + "[5.0851504e-06 5.0851504e-06 3.3326045e-01 3.3326045e-01 3.3326045e-01]\n", + "[[0 0 0 0]]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQWUlEQVR4nO3dd3hUVeLG8e/MpHcSAqGEJBBaaFJsIE1xiQKLLGJoKooFFRHUtexv7QWUtSwWwFWaCy4KKogFQQhSVEA6AWkJzUAgIYH0ycz9/TFmZEgCBFLI8H6eZ54w955777k3E/Lm3HPONRmGYSAiIiIiNZ65uisgIiIiIhVDwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFOqsXzzz+PyWRyWRYdHc2IESOqtB4zZszAZDKRkpJSpceV86Pvj4hI+SjYXUKSk5MZPXo0zZo1w8/PDz8/P+Li4njooYfYsmVLdVfvspSSkoLJZDqvV1nhIzo6GpPJRK9evUpd/5///Me5j/Xr11fi2VyYc12DCRMmVHcVLytz5szh7bffru5qiMglyqO6KyAOixYtIiEhAQ8PD4YNG0a7du0wm83s3LmTzz//nMmTJ5OcnExUVFR1V7XS/Pbbb5jNl9bfGuHh4Xz88ccuy9544w0OHTrEW2+9VaJsWXx8fFi+fDlHjhwhIiLCZd3s2bPx8fEhPz+/4ipeCYYMGcLNN99cYnn79u0r7Zi33347gwcPxtvbu9KOUdPMmTOHbdu2MXbs2OquiohcghTsLgF79+5l8ODBREVF8cMPP1CvXj2X9a+99hrvv//+JRd6TpeTk4O/v/9F7eNS/OXt7+/P8OHDXZb973//48SJEyWWn02XLl1Yt24dc+fO5ZFHHnEuP3ToECtXrmTAgAHMnz+/wupdGTp06FCuc64IFosFi8Vy1jKGYZCfn4+vr28V1UpE5NJ16SaFy8jrr79OTk4O06dPLxHqADw8PBgzZgyRkZEuy3fu3Mmtt95KaGgoPj4+dOrUiYULF7qUKe6jtHr1ah599FHCw8Px9/dnwIABHDt2rMSxvv32W7p27Yq/vz+BgYH06dOH7du3u5QZMWIEAQEB7N27l5tvvpnAwECGDRsGwMqVKxk0aBCNGjXC29ubyMhIxo0bR15e3jmvw5l97M73tuf5XAeA7du3c/311+Pr60vDhg15+eWXsdvt56xXRfDx8eFvf/sbc+bMcVn+ySefUKtWLXr37l1imy1btjBixAgaN26Mj48PERER3H333aSnpzvLnOs26el++eUX4uPjCQ4Oxs/Pj+7du7N69eoKPc/o6Gj69u3LqlWruOqqq/Dx8aFx48bMmjXLWWb9+vWYTCZmzpxZYvvFixdjMplYtGgRUHofu+JjLF68mE6dOuHr68vUqVMB2LdvH4MGDSI0NBQ/Pz+uueYavv76a5djJCYmYjKZ+PTTT3nllVdo2LAhPj4+3HDDDezZs8elbI8ePWjdujVbtmyhe/fu+Pn5ERsby7x58wBYsWIFV199Nb6+vjRv3pylS5eWOKfDhw9z9913U7duXby9vWnVqhXTpk27oDr16NGDr7/+mv379zu/x9HR0efxnRGRy4Va7C4BixYtIjY2lquvvvq8t9m+fTtdunShQYMGPPXUU/j7+/Ppp59yyy23MH/+fAYMGOBS/uGHH6ZWrVo899xzpKSk8PbbbzN69Gjmzp3rLPPxxx9z55130rt3b1577TVyc3OZPHky1113HRs3bnT5BVJUVETv3r257rrr+Ne//oWfnx8An332Gbm5uTzwwAOEhYWxdu1a3nnnHQ4dOsRnn31Wruty5i1QgH/+85+kpaUREBBQrutw5MgRevbsSVFRkbPcBx98UKWtPEOHDuUvf/kLe/fupUmTJoDjttqtt96Kp6dnifJLlixh37593HXXXURERLB9+3Y++OADtm/fzs8//4zJZCr1VrHVamXcuHF4eXk5ly1btoybbrqJjh078txzz2E2m5k+fTrXX389K1eu5Kqrrjpn/XNzczl+/HiJ5SEhIXh4/PlfyZ49e7j11lsZOXIkd955J9OmTWPEiBF07NiRVq1a0alTJxo3bsynn37KnXfe6bKvuXPnlhl0T/fbb78xZMgQ7r//fu69916aN2/O0aNH6dy5M7m5uYwZM4awsDBmzpzJX//6V+bNm1fiZ2LChAmYzWYef/xxsrKyeP311xk2bBi//PKLS7kTJ07Qt29fBg8ezKBBg5g8eTKDBw9m9uzZjB07llGjRjF06FAmTpzIrbfeysGDBwkMDATg6NGjXHPNNZhMJkaPHk14eDjffvstI0eO5OTJkyVup56rTv/3f/9H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2dnZREREcPXVV3P//fefV30++eQT54je0915550XFez++c9/kpube16jYc+mbt26rFmzhieffJJ33nmH/Px82rZty1dffUWfPn0uat8XU6e1a9fy4osv8vnnn/P+++8TFhZGq1ateO211y5onw8++CCbNm1i+vTpvPXWW0RFRSnYiYiTyVCvXBERERG3oD52IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJjyquwIiIiI1kc1mw2q1Vnc1xM15enpisVjOu7yCnYiISDkYhsGRI0fIzMys7qrIZSIkJISIiAhMJtM5yyrYiYiIlENxqKtTpw5+fn7n9ctW5EIYhkFubi5paWkA1KtX75zbKNiJiIicJ5vN5gx1YWFh1V0duQz4+voCkJaWRp06dc55W1aDJ0RERM5TcZ86Pz+/aq6JXE6KP2/n06dTwU5ERKScdPtVqlJ5Pm8KdiIiIiJuQsFORERExE0o2ImIiFShwsLCi1p/MY4cOcLDDz9M48aN8fb2JjIykn79+vHDDz9U2jGlainYiYiIVJG5c+fSpk0bDh48WOr6gwcP0qZNG+bOnVvhx05JSaFjx44sW7aMiRMnsnXrVr777jt69uzJQw89VOHHk+qhYCciIlIFCgsLefbZZ9m1axc9evQoEe4OHjxIjx492LVrF88++2yFt9w9+OCDmEwm1q5dy8CBA2nWrBmtWrXi0Ucf5eeffyYlJQWTycSmTZuc22RmZmIymUhMTHQu27ZtGzfddBMBAQHUrVuX22+/nePHj1doXeXCKdiJiIhUAS8vL5YuXUrjxo3Zt2+fS7grDnX79u2jcePGLF26FC8vrwo7dkZGBt999x0PPfQQ/v7+JdaHhISc134yMzO5/vrrad++PevXr+e7777j6NGj3HbbbRVWV7k4CnYiIiJVJDIyksTERJdwt2bNGpdQl5iYSGRkZIUed8+ePRiGQYsWLS5qP++++y7t27fn1VdfpUWLFrRv355p06axfPlydu3aVUG1lYuhJ0+IiIhUoeJwVxzmunTpAlBpoQ4cj6aqCJs3b2b58uUEBASUWLd3716aNWtWIceRC6dgJyIiUsUiIyP5+OOPnaEO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", + "image/png": "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Wd80TebMmcOAAQMwTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAEOHDuWqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrvjjjuYMmUKGzZsYNasWdx+++2l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMCwYcOYMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz2b06NGA65JjnTp1yn0PniohIaHUtPL+jVu1auWe37Zt23LrPP3/RImGDRuW+jcKDQ0t1QczNDTUY/1jx46Rnp7OW2+9xVtvvVXmcZz+73quNYlI7aHwVQ1CQ0OpV68emzdvLjWv5IPk9PGjSlopHn300XL7xjRt2tTj5/LuGDNN02Ob77//fqmhEACPPj3gujPx9LsvHQ4H119/PampqTz22GO0bNmSwMBADh48yMiRI8+rc3thYSG33HILdrudTz75xKOO8zkPVeXhhx/26EDeq1cvli1bVmq5K664giZNmvDII4+QlJTEHXfcUe42b7vtNn788Uf+8pe/0LFjR4KCgnA6nfTr16/UuUxLS2PIkCE0b96c//3vfx7zSpZ94YUX6NixY5n7qsx+Q2d7r5UYOnQo//73vzl+/DjBwcF89dVXDBs2rNR7rSyV0VfvXOssb7lz/T915513lht827dvf141iUjtofBVTfr378///vc/Vq9efU4dnxs3bgyAj4/PObVEnIuSDuDR0dHnvc1NmzaxY8cO3nvvPe6++2739EWLFp13XePGjSMxMZEVK1ZQt25dj3kVOQ9xcXHuFqBT/fbbb+dd26n++te/erROnqkVadiwYfzrX/+iVatW5YahtLQ0vv/+e5566imeeOIJ9/SyjsHpdDJ8+HDS09NZvHix++aHEiX/tiEhIZX2fqkMQ4cO5amnnmLOnDnUrVuXzMxMj8t7FRUXF1fmv+f27dvd870pKiqK4OBgHA5HpZ738lpKRaRmUp+vavLXv/6VgIAA7rnnHo4ePVpq/unfeqOjo+nduzfTpk3j8OHDpZYvawiJs+nbty8hISE8++yzFBUVndc2S761n1qvaZr897//rXA9ANOnT2fatGm8/vrrZYbSipyHm266iZ9//pnVq1d7zP/www/Pq7bTtW7dmj59+rhfXbp0KXfZe++9lyeffJIXX3yx3GXKOpdAmSObP/XUUyxcuJCPPvqozMtxXbp0oUmTJvznP/8p8/L2+bxfKkOrVq1o164ds2fPZvbs2dSrV4+ePXue9/ZuuukmVq9ezU8//eSelpOTw1tvvUV8fHypvmlVzWq1MmTIEObMmVNmy/b5nvfAwMDzvoQvIhcftXxVk2bNmjFr1iyGDRtGixYt3CPcm6ZJUlISs2bNwmKxePSxev3117n66qtp164d9913H40bN+bo0aP89NNPHDhwgA0bNlSohpCQEKZOncpdd91F586duf3224mKimL//v188803XHXVVbz22mtn3EbLli1p0qQJjz76KAcPHiQkJIQ5c+acV3+V48eP89BDD9G6dWvsdjsffPCBx/zBgwcTGBh4zufhr3/9K++//z79+vXj4Ycfdg81ERcX5/VHN8XFxfHPf/7zjMuEhITQs2dPnn/+eYqKimjQoAHfffcdSUlJHstt2rSJZ555hp49e5KSklLqPN15551YLBb+97//ceONN9KmTRtGjRpFgwYNOHjwIEuXLiUkJISvv/76rHWvX7++1PbB1bLWrVu3sx94GYYOHcoTTzyBn58fo0ePvqCBhB9//HE++ugjbrzxRsaNG0dERATvvfceSUlJzJkzp1oGKZ48eTJLly7liiuu4L777qN169akpqayfv16Fi9eTGpqaoW32aVLF2bPns2ECRO47LLLCAoKYsCAAVVQvYh4g8JXNRo4cCCbNm3ixRdf5LvvvuPdd9/FMAzi4uLo378/DzzwAB06dHAv37p1a9auXctTTz3FjBkzOHHiBNHR0XTq1MnjMlVF3HHHHdSvX5/JkyfzwgsvUFBQQIMGDejRowejRo066/o+Pj58/fXXjBs3jkmTJuHn58fgwYMZO3asR+3nIjs7m/z8fLZu3eq+u/FUSUlJBAYGnvN5qFevHkuXLuVPf/oTkydPJjIykgceeID69eu7O3xfbGbNmsWf/vQnXn/9dUzT5IYbbmD+/PnUr1/fvcyJEycwTZPly5ezfPnyUtsouRTau3dvfvrpJ5555hlee+01srOziYmJ4YorruCPf/zjOdXz0Ucfue/UPNWIESMuKHz9/e9/Jzc395zucjyTunXr8uOPP/LYY4/x6quvkp+fT/v27fn666/p37//BW37QmpavXo1Tz/9NJ9//jlvvPEGkZGRtGnThueee+68tvnQQw+RmJjI9OnTefnll4mLi1P4EqnBDFO9OkVERES8Rn2+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi7w+zpfT6eTQoUMEBwfrkRkiInLeTNMkKyuL+vXrV8uAuiLny+vh69ChQ8TGxnp7tyIiUkslJyd7PA1E5GLn9fAVHBwMuP6zhISEeHv3IiJSS2RmZhIbG+v+XBGpKbwevkouNYaEhCh8iYjIBVMXFqlpdJFcRERExIsUvkRERES8SOFLRERExIu83udLRETEWxwOB0VFRdVdhtRyPj4+WK3Wc15e4UtERGod0zQ5cuQI6enp1V2KXCLCwsKIiYk5pxtAFL5ERKTWKQle0dHRBAQE6I5IqTKmaZKbm0tKSgoA9erVO+s6Cl8iIlKrOBwOd/CKjIys7nLkEuDv7w9ASkoK0dHRZ70EqQ73IiJSq5T08QoICKjmSuRSUvJ+O5c+hgpfIiJSK+lSo3hTRd5vCl8iIiIiXqTwJSIiIuJFCl8iIiKnKSwsvKD5F+rIkSP86U9/onHjxtjtdmJjYxkwYADff/99le5XvEPhS0RE5BSzZ8+mXbt2JCcnlzk/OTmZdu3aMXv27CrZ/969e+nSpQtLlizhhRdeYNOmTSxYsIBrrrmGMWPGVMk+xbsUvkRERH5XWFjIE088wY4dO+jdu3epAJacnEzv3r3ZsWMHTzzxRJW0gD300EMYhsHq1asZMmQIzZs3p02bNkyYMIGff/6ZvXv3YhgGiYmJ7nXS09MxDINly5a5p23evJkbb7yRoKAg6taty1133cXx48crvV6pOIUvERGR3/n6+rJ48WIaN27Mnj17PAJYSfDas2cPjRs3ZvHixfj6+lbq/lNTU1mwYAFjxowhMDCw1PywsLBz2k56ejrXXnstnTp1Yu3atSxYsICjR49y2223VWq9cn4UvkRERE4RGxvLsmXLPALYjz/+6BG8li1bRmxsbKXve9euXZimScuWLS9oO6+99hqdOnXi2WefpWXLlnTq1Il3332XpUuXsmPHjkqqVs6XRrgXERE5TUkAKwlcV111FUCVBi9wPaqmMmzYsIGlS5cSFBRUat7u3btp3rx5pexHzo/Cl4iISBliY2N5//333cEL4P3336+y4AXQrFkzDMNg+/bt5S5jsbguWp0a1E4fVT07O5sBAwbw3HPPlVr/XJ49KFVLlx1FRETKkJyczF133eUx7a677ir3LsjKEBERQd++fXn99dfJyckpNT89PZ2oqCgADh8+7J5+aud7gM6dO7Nlyxbi4+Np2rSpx6usvmTiXQpfIiIipzm9c/2qVavK7IRfFV5//XUcDgeXX345c+bMYefOnWzbto0pU6bQrVs3/P39ufLKK5k8eTLbtm1j+fLl/P3vf/fYxpgxY0hNTWXYsGGsWbOG3bt3s3DhQkaNGoXD4aiy2uXcKHyJiIic4vTgtWzZMrp3716qE35VBbDGjRuzfv16rrnmGv785z/Ttm1brr/+er7//numTp0KwLvvvktxcTFdunThkUce4V//+pfHNurXr8+qVatwOBzccMMNtGvXjkceeYSwsDD3ZUupPoZZWb37zlFmZiahoaFkZGQQEhLizV2LiEgtUt7nSX5+PklJSSQkJODn51ehbRYWFtKuXTt27NhRZuf6U4NZ8+bN2bRpU6UPNyE1U0Xed4q/IiIiv/P19eXpp5+mefPmZd7VWHIXZPPmzXn66acVvOS86G5HERGRUwwdOpTBgweXG6xiY2PV4iUXRC1fIiIipzlbsFLwkguh8CUiIiLiRQpfIiIiIl6kPl9ywUzT5GD2QQ5mHyQlN4XswmysFiuR/pFE+0fTOKwxgT4a1E+qVn5xPkkZSaTkpnAs7xhFjiL8ffyJDoimXmA94kLisBj6viki1U/hS86baZrsTN/JqoOr2JW2i5ziHAwMbBYbpmniMB0YhkEd/zp0qduF7vW7E+wbXN1lSy2TX5zPz4d/Zs2RNRzJOYLDdGA1rFgMCw7TgWma2K124kPj6Va/G+3qtFMIE5FqpfAl56XAUcDivYtZdWgV+Y586gbUpX5QfQzD8Fiu2FnMifwTfLvnW7Yc30L/xv1pEdGimqqW2iY5K5mvd3/NjrQdBPkE0Si4ET5Wn1LL5Rblsjt9N3vS99A1pis3JdxEkG/pBw6LiHiDvv5JhRU4CpizYw6L9i8i0CeQpmFNCfYNLhW8AGwWG3UD6tIkrAmHcw4za9ssNh/fXA1VS22zN2MvH2z9gJ1pO4kPiad+UP0ygxdAgE8ACaEJRPpHsurQKj7a/hFZhVlerlhExEXhSyrENE2+3/c9q4+spmFQQ8L9ws9pPZvFRnxIPAWOAr7Y+QWHsg9VcaVSm2UUZPDZzs84nnecJmFN8LWe223/wb7BxIfEs/n4Zr7e/TVO01nFlYpcHJYtW4ZhGKSnp59xufj4eF555RWv1HQpU/iSCtmdvptVh1ZRx78OAT4BZS5jzS/E/0Qm1vxCj+mGYRAbHEtqfirzk+ZT5CzyRslSy5imyeJ9i0nOTCY+JL7M/luF+VYyT/hTmG8tNc9utdMguAG/pvxKYkqiFyqWGi8vD44edf1ZxUaOHIlhGBiGga+vL02bNuXpp5+muLj4grbbvXt3Dh8+TGhoKAAzZswgLCys1HJr1qzh/vvvv6B9ydldUJ+vyZMnM3HiRB5++GEl5UuAaZr8dPgncotyaRDUoNT8mF930eGDJSQs24jFaeK0GCT1bs+Gu67jSMcmgCuANQxuyLbUbexO303LiJbePgyp4Q7nHObXlF+pG1gXq8UzXO36NYYlH3Rg47IETKcFw+Kkfe8krrtrA006HnEvF+QTxAnjBD8c/IF2Ue3wsZR9uVIucStXwksvwdy54HSCxQIDB8Kf/wxXXVVlu+3Xrx/Tp0+noKCAb7/9ljFjxuDj48PEiRPPe5u+vr7ExMScdbmoqKjz3oecu/Nu+VqzZg3Tpk2jffv2lVmPXMSO5h7lt9TfiA6ILjWvzScrGDz6ZRKWb8LidD2r3eI0SVi+icH3vESbT39wL+tv88dpOtXqIOdl8/HNZBVlEeob6jF9xSdteHn0YDYtdwUvANNpYdPyBF66ZzA/fNrGY/m6AXU5kHWAPel7vFa71CBTp0LPnvD1167gBa4/v/4aevSAN9+ssl3b7XZiYmKIi4vjwQcfpE+fPnz11VekpaVx9913Ex4eTkBAADfeeCM7d+50r7dv3z4GDBhAeHg4gYGBtGnThm+//RbwvOy4bNkyRo0aRUZGhruV7Z///CfgednxjjvuYOjQoR61FRUVUadOHWbOnPn7KXEyadIkEhIS8Pf3p0OHDnz22WdVdm5qi/MKX9nZ2QwfPpy3336b8PBz6/MjNd+h7EPkFOUQ4hviMT3m1130nDwbwwSLw7MPjcXhxDCh56SPiUnc7Z4e6hvKnvQ9uvQoFbYrfReBtkCPGzx2/RrD7Mk9wTRwOjx/rTkdFjANPp7Uk92JJ7/5+9n8KHYWczjnsNdqlxpi5UoYMwZME06/3Fdc7Jr+0EOwapVXyvH396ewsJCRI0eydu1avvrqK3766SdM0+Smm26iqMj1e3TMmDEUFBSwYsUKNm3axHPPPUdQUOm7ert3784rr7xCSEgIhw8f5vDhwzz66KOllhs+fDhff/012dnZ7mkLFy4kNzeXwYMHAzBp0iRmzpzJm2++yZYtWxg/fjx33nkny5cvr6KzUTucV/gaM2YM/fv3p0+fPpVdj1zEjuUdAyh1V2OHD5ZgWs78VjItFjp8sMT9c4BPANlF2ZzIO1H5hUqtlVuUy/G846X6Gy75oAMWi3nGdS0WkyUfdPCYZrPYOJh9sNLrlBrupZfAWrq/oAerFV5+uUrLME2TxYsXs3DhQho1asRXX33F//73P3r06EGHDh348MMPOXjwIF9++SUA+/fv56qrrqJdu3Y0btyYm2++mZ49e5barq+vL6GhoRiGQUxMDDExMWWGtL59+xIYGMgXX3zhnjZr1iz+7//+j+DgYAoKCnj22Wd599136du3L40bN2bkyJHceeedTJs2rcrOS21Q4T5fH3/8MevXr2fNmjXntHxBQQEFBQXunzMzMyu6S7lI5BXnlQpe1vxCdx+vM7E4nCQs3YA1vxCHny8+Fh+KncUUOArOuJ7IqQodhRQ7iz2emFCYb3X38ToTp8PChqUJFOZb8fVzAOBj8SG7MPuM68klJi/vZB+vMykuhi++cC3v71+pJcybN4+goCCKiopwOp3ccccd/OEPf2DevHlcccUV7uUiIyNp0aIF27ZtA2DcuHE8+OCDfPfdd/Tp04chQ4ZcUNcgm83Gbbfdxocffshdd91FTk4Oc+fO5eOPPwZg165d5Obmcv3113usV1hYSKdOnc57v5eCCrV8JScn8/DDD/Phhx/i5+d3TutMmjSJ0NBQ9ys2Nva8CpXqZzWscFrG8s3JP2vwKmFxmvjm5AOub3SGYWikcakQwzAwMDyGiMjP8T1r8CphOi3k55wclsJpOrFZNNa0nCIz8+zBq4TT6Vq+kl1zzTUkJiayc+dO8vLyeO+998ocR/F09957L3v27OGuu+5i06ZNdO3alVdfffWCahk+fDjff/89KSkpfPnll/j7+9OvXz8A9+XIb775hsTERPdr69at6vd1FhX65Fu3bh0pKSl07twZm82GzWZj+fLlTJkyBZvNhsPhKLXOxIkTycjIcL+Sk5MrrXjxrnC/cMzT0ldhoB9Oy9l/KQA4LQaFga7Qnluci7/NnzB7WGWXKbVYsG8wgT6B5BWfvOXfL7AQw3JuH5aGxYlf4MkhUAocBcQEnv0OMLmEhIS47mo8FxaLa/lKFhgYSNOmTWnUqBE2m+vLQatWrSguLuaXX35xL3fixAl+++03Wrdu7Z4WGxvLAw88wOeff86f//xn3n777TL34evrW+Zn9um6d+9ObGwss2fP5sMPP+TWW2/Fx8d1d3Dr1q2x2+3s37+fpk2berzU0HJmFfrKd91117Fp0yaPaaNGjaJly5Y89thjWMu4Rm6327Hb7RdWpVwUovyjsBpWCh2F7kEtHX6+JPVu77rL0VH+B6DTaiGpd3scfq71souyaRDUgCAfPeJFzp3FsNAopBGrj6x2T/P1c9C+dxKblieU6mzvsa7VNexEySXHktazsu7elUuYv79rOImvvy7d2f5UNptruUq+5FieZs2aMXDgQO677z6mTZtGcHAwjz/+OA0aNGDgwIEAPPLII9x44400b96ctLQ0li5dSqtWrcrcXnx8PNnZ2Xz//fd06NCBgIAAAgLKHrvxjjvu4M0332THjh0sXbrUPT04OJhHH32U8ePH43Q6ufrqq8nIyGDVqlWEhIQwYsSIyj8RtUSFWr6Cg4Np27atxyswMJDIyEjatm1bVTXKRSI+NJ6YwBh3x/sSG+68FuMszfSG08mGO68FXB96ecV5dIjqcE5N6SKnah3ZGgODQsfJFqxr79yA03nm95LTaXDtnRvcP6flpxFmD6NZWLMqq1VqqAkT4GytQg4HjB/vnXp+N336dLp06cLNN99Mt27dME2Tb7/91t0S5XA4GDNmDK1ataJfv340b96cN954o8xtde/enQceeIChQ4cSFRXF888/X+5+hw8fztatW2nQoAFXnTa+2TPPPMM//vEPJk2a5N7vN998Q0JCQuUdeC1kmKZ5bh12ytG7d286dux4zoOsZmZmEhoaSkZGBiFV0FwrVWvFgRV8vvNz4kPiPR7p0ubTH+g56WNMi8WjBcxptWA4nayYeDtbbu0BuIas8LP5MabjmHN+PJFIiQJHAW8kvsHh7MPEh8a7p//waRs+ntQTi8X0aAGzWJ04nQa3T1xBj1u3AOAwHexK28U1ja5hUNNBXj4CqSzlfZ7k5+eTlJREQkLCOfdPLuXNN13DSVitni1gNpsreL3xBjzwwAUegdQmFXnfXXBP02XLll3oJqQGuSzmMjYf38yutF00CWvibrnacmsPTjSr7xrhfukGzxHu77zWPcJ9TlEOucW59G/cX8FLzovdaueG+Bt4f8v7pOWnud9HPW7dQv1mJ1jyQQc2LPUc4f7aO0+OcG+aJslZyTQIakDvhr2r8UjkovbAA9CunWs4iS++8Bzhfvz4Kh3hXmo/3eYjFeJv8+fmxjfz/tb3ScpM8ni23pGOTTjSsQnW/EJ8c/IpDPRz9/ECV/A6mH2QK+tdyWUxl1XXIUgt0DqiNT0b9mTRvkUYhuG+caNJxyM06XiEwnwr+Tm++AUWuvt4gSt4Hcg+gN1qp3+T/oT5hVXPAUjNcNVVrldenuuuxpAQr/XxktpN9/lLhTUKacTtLW8nyj+KXem7yCrM8pjv8PMlLzLEHbwcpoND2Yc4knOEbvW6MajpIN3eLxfEMAxuiL+BPo36kFGQwb7MfRQ7T14a8vVzEBKZ5xG88orz2JW+C3+bP7c0v4U2kW3K2rRIaf7+ULeugpdUGn0CynlpEtaEe9vdy8K9C9l0bBOHcw67hgGwBeJj9cE0TfKK88guyqbAUUB0QDQDmgygS90uCl5SKWwWGzc1vonYkFi+2/cdezP3YjWsBPsG42/zx2JYKHYWk1uUS2ZhJjaLjbZ12nJjwo3UD6pf3eWLyCVMn4Jy3iL9I7m95e10q9+Njcc2siNtB1mFWRQVFmFg4Gfzo3FoY9pFtaNNZBtC7aFn36hIBRiGQfuo9jQNa8q21G1sPLaRg1kHSc9Px4kTm2EjyDeItlFtaV+nPU3Cmij8i0i1028huSAWw0JCaAIJoQk4TSfpBekUFBdgGAah9lD8bWqml6oX4BNAl7pd6FK3CwWOAlf4Mp34WH0It4djtZzlOX0iIl6k8CWVxmJYiPCLqO4y5BJnt9qpG1i3ussQESmXOtyLiIiIeJHCl4iIiIgXKXyJiIjIOYuPjz/np9pI2RS+REREziAvD44edf1Z1UaOHIlhGEyePNlj+pdffun1Z+HOmDGDsLCwUtPXrFnD/fff79VaahuFLxERkTKsXAl/+AMEBUFMjOvPP/wBVq2q2v36+fnx3HPPkZaWVrU7Ok9RUVEEBARUdxk1msKXiIjIaaZOhZ494euvXY91BNefX38NPXq4nrtdVfr06UNMTAyTJk0qd5mVK1fSo0cP/P39iY2NZdy4ceTk5LjnHz58mP79++Pv709CQgKzZs0qdbnwpZdeol27dgQGBhIbG8tDDz1EdnY24Hpu86hRo8jIyMAwDAzD4J///CfgednxjjvuYOjQoR61FRUVUadOHWbOnAmA0+lk0qRJJCQk4O/vT4cOHfjss88q4UzVXApfIiIip1i5EsaMAdOE4mLPecXFrukPPVR1LWBWq5Vnn32WV199lQMHDpSav3v3bvr168eQIUPYuHEjs2fPZuXKlYwdO9a9zN13382hQ4dYtmwZc+bM4a233iIlJcVjOxaLhSlTprBlyxbee+89lixZwl//+lcAunfvziuvvEJISAiHDx/m8OHDPProo6VqGT58OF9//bU7tAEsXLiQ3NxcBg8eDMCkSZOYOXMmb775Jlu2bGH8+PHceeedLF++vFLOV41kellGRoYJmBkZGd7etYiI1CLlfZ7k5eWZW7duNfPy8s5ru4MHm6bNZpqumFX2y2YzzSFDKuMoPI0YMcIcOHCgaZqmeeWVV5r33HOPaZqm+cUXX5glH9mjR48277//fo/1fvjhB9NisZh5eXnmtm3bTMBcs2aNe/7OnTtNwHz55ZfL3fenn35qRkZGun+ePn26GRoaWmq5uLg493aKiorMOnXqmDNnznTPHzZsmDl06FDTNE0zPz/fDAgIMH/88UePbYwePdocNmzYmU9GDVOR950GWRUREfldXh7MnXvyUmN5iovhiy9cy1fV87afe+45rr322lItThs2bGDjxo18+OGH7mmmaeJ0OklKSmLHjh3YbDY6d+7snt+0aVPCw8M9trN48WImTZrE9u3byczMpLi4mPz8fHJzc8+5T5fNZuO2227jww8/5K677iInJ4e5c+fy8ccfA7Br1y5yc3O5/vrrPdYrLCykU6dOFToftYnCl4iIyO8yM88evEo4na7lqyp89ezZk759+zJx4kRGjhzpnp6dnc0f//hHxo0bV2qdRo0asWPHjrNue+/evdx88808+OCD/Pvf/yYiIoKVK1cyevRoCgsLK9Shfvjw4fTq1YuUlBQW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n9OwYUOefvppDh8+zOHDhy/o3FYndbgXEZFLXn6Rk30ncggP8KnQeuEBPuw7kUN+kRN/38q5+3HevHkEBQVRXFxMQUEBFouF1157DYCCggKeffZZFi9eTLdu3QBo3LgxK1euZNq0afTq1YvevXvzzjvv4HA42Lx5M76+vgwdOpRly5bRr18/li1bRq9evdz7u+eee9x/b9y4MVOmTOGyyy4jOzuboKAg97ynn36a66+/HoDs7GzeeecdPvjgA6677joA3nvvPRo2bHjGY9u/fz9/+ctfaNmyJQDNmjVzz5s0aRLDhw/nkUcecc+bMmUKvXr1YurUqURERGC1Wt0tdDWZWr5EROSSV+hw4nCa2KwV+1i0WgwcTpNCh7PSarnmmmtITEzkl19+YcSIEYwaNYohQ4YAsGvXLnJzc7n++usJCgpyv2bOnMnu3bsB6NGjB1lZWfz6668sX77cHchKWsOWL19O79693ftbt24dAwYMoFGjRgQHB7uD2f79+z3q6tq1q/vvu3fvprCwkCuuuMI9LSIighYtWpzx2CZMmMC9995Lnz59mDx5srtmcF2SnDFjhsdx9e3bF6fTSVJSUsVP5EVMLV8iInLJ87VasFoMiisYokrG//KtYGg7k8DAQPclwXfffZcOHTrwzjvvMHr0aHe/rW+++YYGDRp4rGe32wEICwujQ4cOLFu2jJ9++onrr7+enj17MnToUHbs2MHOnTvdASsnJ4e+ffvSt29fPvzwQ6Kioti/fz99+/alsLCwVF0X6p///Cd33HEH33zzDfPnz+fJJ5/k448/ZvDgwWRnZ/PHP/6RcePGlVqvUaNGF7zvi4lavkRE5JLn52MhLjKQtNyiCq2XlltEXGQgfj5V83FqsVj429/+xt///nfy8vJo3bo1drud/fv307RpU49XbGyse71evXqxdOlSVqxYQe/evYmIiKBVq1b8+9//pl69ejRv3hyA7du3c+LECSZPnkyPHj1o2bKlR2f78jRp0gQfHx9++eUX97S0tDR27Nhx1nWbN2/O+PHj+e677/jDH/7A9OnTAejcuTNbt24tdVxNmzZ193nz9fXF4ajcu0urg8KXiIhc8gzD4LKECExMCovPrfWrsNiJicnlCRFVeufdrbfeitVq5fXXXyc4OJhHH32U8ePH895777F7927Wr1/Pq6++ynvvvedep3fv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rybXQrO+XipWpHY58/+0WshiMbipXT2C7DYWbDnCjqPZRIfYCfP3wfj9URslTNMkPbeIo1n5RAT4cmvXWHo0rVNqORGRGimhJ/j4w+Y5kLIVAqNcr9PHADNNV2tX1mHX8q0HQqv/A9uZv7iKSNkuucuOp0pOzWXJ9hS2HMogM78YA/CxWjAxKS42MYEQfxttG4RybctoGoYHVGu9IiJVIvsY7PwOkle77mAE11hghgGOIsB0DU8R1Qqa3wDRraq13BIX0+eJSEVc0uGrxJGMfJKO53AkI4/UnEIwIDLQTt0QPxpHBVI3RENKiMglIDcVjv3mauHKPuoaDd8vDELqQ3i863URtfxfjJ8nIufikrvsWJaYUD9iQhWwROQSFxABcd2quwqRWu+S63AvIiIiUp0UvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yFbdBUjtYJom6blFHMsuIK/QgcUwCAvwISrYjp+PtbrLk0uFowiyj0LOcTAdYLVDUF0IiASLvmuKyMVB4UsuSF6hg40H0lmdlEpyWi45BQ4cphMw8LNZCPHzoX1sKJ0bhZNQJxDDMKq7ZKmNMg5A8hpI/gXy0qAo1zXdsIBvEATHQPxV0KAL+IVWb60icskzTNM0vbnDzMxMQkNDycjIICQkxJu7lkq2KyWLrxIPsTMlG5vVICLAl0C7DR+rBdM0yStykJVfTFpuEUF2K1c3i+L61nUJsivzSyUpLoBdi+G3BZCXCn7h4B8KPgGu4OUshsJsyE2F4jwIi4e2g6F+Z9AXgRpPnydSUyl8yXn5Zc8J5qw/QHZBMXERgfjaznxJJzWnkJSsfNrUD+XOK+OICPT1UqVSaxXmwLr3YP+P4B8BQTFnDlTOYkjb6wplbQZBi5sUwGo4fZ5ITaVOEFJhGw+k88naZBxOk6ZRQWcNXgARgb40rhPE5oMZfPjzPvIKHV6oVGotRzH8+gHsWwVhCRBc7+xBymKDyKauy5CbPoM9S71Tq4jIaRS+pELScwv5KvEQRQ4nDcMDyuzDVVhgkJVmpbDAc56vzULjqEA2H8pkyfaj3ipZaqN9q2Dfj67LiL4BpecXFEFqluvP0wVFuy5Lbv0K0vdXeakiIqdT5xupkJU7j7M/NZfmdYNLzduz2Y/lc8LZ/FMQptPAsJi07ZZN71vSSGiTD4DdZiUy0JflO47RqVE49cP8vX0IUtPlZ8L2eeDjD/Ygz3mb9sKnK+HHbeA0wWJA91ZwWw9oG3dyuZAGcGwrbP8WrvijLj+KiFdVuOVrxYoVDBgwgPr162MYBl9++WUVlCUXo+yCYlbvTSU8wBerxfPDatXXobw2IZYtP7uCF4DpNNjycxCvjo/lx3kn7zCrE+RLem4RG5LTvVm+1BaHEyHrsCtAnWruz/DwW/DTdlfwAtefP22HcdPgq19OLmsYEFQPjmyEzENeK11EBM4jfOXk5NChQwdef/31qqhHLmJJx3I4llVAnSDPzvJ7Nvsx59VowMDp8Axlrp8NPpsSTdIWPwAMwyDYz0Zicjpevt9DaoMjm8Di4+rDVWLTXvjvV66/O5yey5f8/Mpc2Lzv5HT/cMjPgOM7qrRcEZHTVfiy44033siNN95YFbXIRS4lKx/TNLFZPTP78jnhWKzgPEMfeovVtVxCm8MABPv5kJZbSFpuke58lHPnKIK0fWA/7bL3pyvBaikdvE5ltbiWK7n8aBhgWCHjYNXVKyJShirv81VQUEBBQYH758zMzKrepVSR9NyiUh3sCwsMdx+vM3E6DDb9GERhgYGv3cTPx0JajpPMPIUvqYCCLNcAqj6Bp0wrOtnH60wcTli11bW83cc1zebnGhFfRMSLqvxux0mTJhEaGup+xcbGVvUupYqU9dFWkGs5a/Byr+80KMg9+ZYzy9yiyDk49S2Xk3/24FXCabqWd2/HoOx3tohI1any8DVx4kQyMjLcr+Tk5KrepVSRILut1MeUPcCJYTm3Dy/DYmIPcF0WKix24mu1EOCr5z5KBfgEgNXXNbJ9iUA/112N58JiuJYvUZzv6vslIuJFVR6+7HY7ISEhHi+pmaJD7BiA85RWBl+7azgJi/XMAcxiNWnXPRtfu2u57IJiQvx9iAyyV2XJUtv4+EFoAyjIPjnN7uMaTsJ6ll9nVgtc1frkJUfTBKcTwhpVXb0iImXQIKtyzuIiAgj19yE1t9Bjeq8haWfsbA+uzvi9hqS5f87IK6Z1/ZBSQ1aInFXddq7nNJqndK6/9eozd7YH1/xbrz75c2G2K8yFJ1RNnSIi5ahw+MrOziYxMZHExEQAkpKSSExMZP9+jRRd20UG2ekYG8ax7AKPISIat83nlnEpgFmqBcz1s8kt41LcA61m5hUR4GuhUyNd7pHzUL8TBERCdsrJae3i4ZGBrr+f3gJW8vMjAz0HWs08CFEtIKJxlZYrInK6Ct/tuHbtWq655hr3zxMmTABgxIgRzJgxo9IKk4tTj+ZRbDyQweGMfI/R6bvfnEG9hAKWzwln04+eI9z3GnJyhHuH0+Rgeh49m0eREBlY3m5EyhcUBU2ug02fuPpr2X6/dP1/V0DjGNdwEqu2eo5wf+vVnsEr57jrTsfm/cCiCwAi4l2G6eVRLvUU+ppvxY5jfLI2mfAA3zKHiSgscN3VaA9wuvt4gauv2O5j2TQI9+eh3k0J1xATcr4Kc+HHV10j1NdpAVYfz/kFRa67GgP9Tvbxcs/LhIxkaD0Q2t6iRwvVYPo8kZpKX/mkwq5uWoe+bWJIzy3kQFouztPyu6/dJDjc4RG88god7EjJol6YH3deGafgJRfGNwC6joKoVnD8N9fzHk9l94GIYM/gZZquxxJlHHS1nLUaqOAlItVCD9aWCrNYDPq3q0dkkC/zNx3htyNZ7lYwX9sp43iZJjkFDlKy83E4TTo1CmdQxwbEhPqdYesi5ygoGro9BJs/h/0/uoJVUF3wCwHjlO+VjiLIS4WcY+AfAR1uh6Z9wKYvACJSPXTZUS5ISmY+v+xJZc2+VFJzCil2mh7jX/r7WImvE8gVCRF0jgvH52zDAYhUlNMJh3+Fvavg2Pbfh6Eo+bVmuFq3/MOg4eUQfxWEx1dfrVKp9HkiNZXCl1SKnIJiDqXnkZJVQF6hA4sFQv19qRtip36oPxYNKSFVreSyYtZhyDkBpsM1IGtQXdfYYBpMtdbR54nUVLrsKJUi0G6jWd1gmtUNPvvCIlXBMCCkvuslInIR0zUgERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIlt1FyC1Q1Z+EQfS8jiWVUBekQOLYRAW4EPdYD8ahPtjtRjVXaLUdqYJmQch8zDkHgenA2x2CIqG0FgIiKjuCkVEAIUvuUBHMvL5ac8J1u1LJS2nEIfpmm4AJuDvY6FRRCBXNI6ga1wEvjY1tkolczrg4HrY+wMc3wGFOZ7zDQP8wqBBF4i/GiKbVEuZIiIlFL7kvDidJj/uPsH8zYc5llVARKAv8ZGB2Kwnw5VpmuQWOkg6nsPOlCwSk9MZ2LEBDcL8q7FyqVVyTsDmz2D/z66fg+pCaCNX4CrhdEBeKuxaBMmroUU/aNYXbL7VU7OIXPIUvqTCHE6TeRsPsWjrUfxsVlrGBGMYpS8rGoZBoN1Ggt1GfpGDjckZHMsq4O5u8STUCayGyqVWyToCv7wFx7ZDeDzYg8tezmKFwCgIqAPZR2HjJ5B1FDrf5bosKSLiZboG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", "text/plain": [ "
" ] @@ -305,12 +390,14 @@ "output_type": "stream", "text": [ "Time t=8\n", - "[Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[19]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", + "[7.6275901e-06 7.6275901e-06 7.6275901e-06 4.9988177e-01 4.9988177e-01]\n", + "[[3 0 0 0]]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQWUlEQVR4nO3dd3hUVeLG8e/MpHcSAqGEJBBaaFJsIE1xiQKLLGJoKooFFRHUtexv7QWUtSwWwFWaCy4KKogFQQhSVEA6AWkJzUAgIYH0ycz9/TFmZEgCBFLI8H6eZ54w955777k3E/Lm3HPONRmGYSAiIiIiNZ65uisgIiIiIhVDwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFOqsXzzz+PyWRyWRYdHc2IESOqtB4zZszAZDKRkpJSpceV86Pvj4hI+SjYXUKSk5MZPXo0zZo1w8/PDz8/P+Li4njooYfYsmVLdVfvspSSkoLJZDqvV1nhIzo6GpPJRK9evUpd/5///Me5j/Xr11fi2VyYc12DCRMmVHcVLytz5szh7bffru5qiMglyqO6KyAOixYtIiEhAQ8PD4YNG0a7du0wm83s3LmTzz//nMmTJ5OcnExUVFR1V7XS/Pbbb5jNl9bfGuHh4Xz88ccuy9544w0OHTrEW2+9VaJsWXx8fFi+fDlHjhwhIiLCZd3s2bPx8fEhPz+/4ipeCYYMGcLNN99cYnn79u0r7Zi33347gwcPxtvbu9KOUdPMmTOHbdu2MXbs2OquiohcghTsLgF79+5l8ODBREVF8cMPP1CvXj2X9a+99hrvv//+JRd6TpeTk4O/v/9F7eNS/OXt7+/P8OHDXZb973//48SJEyWWn02XLl1Yt24dc+fO5ZFHHnEuP3ToECtXrmTAgAHMnz+/wupdGTp06FCuc64IFosFi8Vy1jKGYZCfn4+vr28V1UpE5NJ16SaFy8jrr79OTk4O06dPLxHqADw8PBgzZgyRkZEuy3fu3Mmtt95KaGgoPj4+dOrUiYULF7qUKe6jtHr1ah599FHCw8Px9/dnwIABHDt2rMSxvv32W7p27Yq/vz+BgYH06dOH7du3u5QZMWIEAQEB7N27l5tvvpnAwECGDRsGwMqVKxk0aBCNGjXC29ubyMhIxo0bR15e3jmvw5l97M73tuf5XAeA7du3c/311+Pr60vDhg15+eWXsdvt56xXRfDx8eFvf/sbc+bMcVn+ySefUKtWLXr37l1imy1btjBixAgaN26Mj48PERER3H333aSnpzvLnOs26el++eUX4uPjCQ4Oxs/Pj+7du7N69eoKPc/o6Gj69u3LqlWruOqqq/Dx8aFx48bMmjXLWWb9+vWYTCZmzpxZYvvFixdjMplYtGgRUHofu+JjLF68mE6dOuHr68vUqVMB2LdvH4MGDSI0NBQ/Pz+uueYavv76a5djJCYmYjKZ+PTTT3nllVdo2LAhPj4+3HDDDezZs8elbI8ePWjdujVbtmyhe/fu+Pn5ERsby7x58wBYsWIFV199Nb6+vjRv3pylS5eWOKfDhw9z9913U7duXby9vWnVqhXTpk27oDr16NGDr7/+mv379zu/x9HR0efxnRGRy4Va7C4BixYtIjY2lquvvvq8t9m+fTtdunShQYMGPPXUU/j7+/Ppp59yyy23MH/+fAYMGOBS/uGHH6ZWrVo899xzpKSk8PbbbzN69Gjmzp3rLPPxxx9z55130rt3b1577TVyc3OZPHky1113HRs3bnT5BVJUVETv3r257rrr+Ne//oWfnx8An332Gbm5uTzwwAOEhYWxdu1a3nnnHQ4dOsRnn31Wruty5i1QgH/+85+kpaUREBBQrutw5MgRevbsSVFRkbPcBx98UKWtPEOHDuUvf/kLe/fupUmTJoDjttqtt96Kp6dnifJLlixh37593HXXXURERLB9+3Y++OADtm/fzs8//4zJZCr1VrHVamXcuHF4eXk5ly1btoybbrqJjh078txzz2E2m5k+fTrXX389K1eu5Kqrrjpn/XNzczl+/HiJ5SEhIXh4/PlfyZ49e7j11lsZOXIkd955J9OmTWPEiBF07NiRVq1a0alTJxo3bsynn37KnXfe6bKvuXPnlhl0T/fbb78xZMgQ7r//fu69916aN2/O0aNH6dy5M7m5uYwZM4awsDBmzpzJX//6V+bNm1fiZ2LChAmYzWYef/xxsrKyeP311xk2bBi//PKLS7kTJ07Qt29fBg8ezKBBg5g8eTKDBw9m9uzZjB07llGjRjF06FAmTpzIrbfeysGDBwkMDATg6NGjXHPNNZhMJkaPHk14eDjffvstI0eO5OTJkyVup56rTv/3f/9H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2dnZREREcPXVV3P//fefV30++eQT54je0915550XFez++c9/kpube16jYc+mbt26rFmzhieffJJ33nmH/Px82rZty1dffUWfPn0uat8XU6e1a9fy4osv8vnnn/P+++8TFhZGq1ateO211y5onw8++CCbNm1i+vTpvPXWW0RFRSnYiYiTyVCvXBERERG3oD52IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJjyquwIiIiI1kc1mw2q1Vnc1xM15enpisVjOu7yCnYiISDkYhsGRI0fIzMys7qrIZSIkJISIiAhMJtM5yyrYiYiIlENxqKtTpw5+fn7n9ctW5EIYhkFubi5paWkA1KtX75zbKNiJiIicJ5vN5gx1YWFh1V0duQz4+voCkJaWRp06dc55W1aDJ0RERM5TcZ86Pz+/aq6JXE6KP2/n06dTwU5ERKScdPtVqlJ5Pm8KdiIiIiJuQsFORERExE0o2ImIiFShwsLCi1p/MY4cOcLDDz9M48aN8fb2JjIykn79+vHDDz9U2jGlainYiYiIVJG5c+fSpk0bDh48WOr6gwcP0qZNG+bOnVvhx05JSaFjx44sW7aMiRMnsnXrVr777jt69uzJQw89VOHHk+qhYCciIlIFCgsLefbZZ9m1axc9evQoEe4OHjxIjx492LVrF88++2yFt9w9+OCDmEwm1q5dy8CBA2nWrBmtWrXi0Ucf5eeffyYlJQWTycSmTZuc22RmZmIymUhMTHQu27ZtGzfddBMBAQHUrVuX22+/nePHj1doXeXCKdiJiIhUAS8vL5YuXUrjxo3Zt2+fS7grDnX79u2jcePGLF26FC8vrwo7dkZGBt999x0PPfQQ/v7+JdaHhISc134yMzO5/vrrad++PevXr+e7777j6NGj3HbbbRVWV7k4CnYiIiJVJDIyksTERJdwt2bNGpdQl5iYSGRkZIUed8+ePRiGQYsWLS5qP++++y7t27fn1VdfpUWLFrRv355p06axfPlydu3aVUG1lYuhJ0+IiIhUoeJwVxzmunTpAlBpoQ4cj6aqCJs3b2b58uUEBASUWLd3716aNWtWIceRC6dgJyIiUsUiIyP5+OOPnaEO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", + "image/png": "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Wd80TebMmcOAAQMwTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAEOHDuWqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrvjjjuYMmUKGzZsYNasWdx+++2l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMCwYcOYMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz2b06NGA65JjnTp1yn0PniohIaHUtPL+jVu1auWe37Zt23LrPP3/RImGDRuW+jcKDQ0t1QczNDTUY/1jx46Rnp7OW2+9xVtvvVXmcZz+73quNYlI7aHwVQ1CQ0OpV68emzdvLjWv5IPk9PGjSlopHn300XL7xjRt2tTj5/LuGDNN02Ob77//fqmhEACPPj3gujPx9LsvHQ4H119/PampqTz22GO0bNmSwMBADh48yMiRI8+rc3thYSG33HILdrudTz75xKOO8zkPVeXhhx/26EDeq1cvli1bVmq5K664giZNmvDII4+QlJTEHXfcUe42b7vtNn788Uf+8pe/0LFjR4KCgnA6nfTr16/UuUxLS2PIkCE0b96c//3vfx7zSpZ94YUX6NixY5n7qsx+Q2d7r5UYOnQo//73vzl+/DjBwcF89dVXDBs2rNR7rSyV0VfvXOssb7lz/T915513lht827dvf141iUjtofBVTfr378///vc/Vq9efU4dnxs3bgyAj4/PObVEnIuSDuDR0dHnvc1NmzaxY8cO3nvvPe6++2739EWLFp13XePGjSMxMZEVK1ZQt25dj3kVOQ9xcXHuFqBT/fbbb+dd26n++te/erROnqkVadiwYfzrX/+iVatW5YahtLQ0vv/+e5566imeeOIJ9/SyjsHpdDJ8+HDS09NZvHix++aHEiX/tiEhIZX2fqkMQ4cO5amnnmLOnDnUrVuXzMxMj8t7FRUXF1fmv+f27dvd870pKiqK4OBgHA5HpZ738lpKRaRmUp+vavLXv/6VgIAA7rnnHo4ePVpq/unfeqOjo+nduzfTpk3j8OHDpZYvawiJs+nbty8hISE8++yzFBUVndc2S761n1qvaZr897//rXA9ANOnT2fatGm8/vrrZYbSipyHm266iZ9//pnVq1d7zP/www/Pq7bTtW7dmj59+rhfXbp0KXfZe++9lyeffJIXX3yx3GXKOpdAmSObP/XUUyxcuJCPPvqozMtxXbp0oUmTJvznP/8p8/L2+bxfKkOrVq1o164ds2fPZvbs2dSrV4+ePXue9/ZuuukmVq9ezU8//eSelpOTw1tvvUV8fHypvmlVzWq1MmTIEObMmVNmy/b5nvfAwMDzvoQvIhcftXxVk2bNmjFr1iyGDRtGixYt3CPcm6ZJUlISs2bNwmKxePSxev3117n66qtp164d9913H40bN+bo0aP89NNPHDhwgA0bNlSohpCQEKZOncpdd91F586duf3224mKimL//v188803XHXVVbz22mtn3EbLli1p0qQJjz76KAcPHiQkJIQ5c+acV3+V48eP89BDD9G6dWvsdjsffPCBx/zBgwcTGBh4zufhr3/9K++//z79+vXj4Ycfdg81ERcX5/VHN8XFxfHPf/7zjMuEhITQs2dPnn/+eYqKimjQoAHfffcdSUlJHstt2rSJZ555hp49e5KSklLqPN15551YLBb+97//ceONN9KmTRtGjRpFgwYNOHjwIEuXLiUkJISvv/76rHWvX7++1PbB1bLWrVu3sx94GYYOHcoTTzyBn58fo0ePvqCBhB9//HE++ugjbrzxRsaNG0dERATvvfceSUlJzJkzp1oGKZ48eTJLly7liiuu4L777qN169akpqayfv16Fi9eTGpqaoW32aVLF2bPns2ECRO47LLLCAoKYsCAAVVQvYh4g8JXNRo4cCCbNm3ixRdf5LvvvuPdd9/FMAzi4uLo378/DzzwAB06dHAv37p1a9auXctTTz3FjBkzOHHiBNHR0XTq1MnjMlVF3HHHHdSvX5/JkyfzwgsvUFBQQIMGDejRowejRo066/o+Pj58/fXXjBs3jkmTJuHn58fgwYMZO3asR+3nIjs7m/z8fLZu3eq+u/FUSUlJBAYGnvN5qFevHkuXLuVPf/oTkydPJjIykgceeID69eu7O3xfbGbNmsWf/vQnXn/9dUzT5IYbbmD+/PnUr1/fvcyJEycwTZPly5ezfPnyUtsouRTau3dv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ahuFLxERkTKsXAl/+AMEBUFMjOvPP/wBVq2q2v36+fnx3HPPkZaWVrU7Ok9RUVEEBARUdxk1msKXiIjIaaZOhZ494euvXY91BNefX38NPXq4nrtdVfr06UNMTAyTJk0qd5mVK1fSo0cP/P39iY2NZdy4ceTk5LjnHz58mP79++Pv709CQgKzZs0qdbnwpZdeol27dgQGBhIbG8tDDz1EdnY24Hpu86hRo8jIyMAwDAzD4J///CfgednxjjvuYOjQoR61FRUVUadOHWbOnAmA0+lk0qRJJCQk4O/vT4cOHfjss88q4UzVXApfIiIip1i5EsaMAdOE4mLPecXFrukPPVR1LWBWq5Vnn32WV199lQMHDpSav3v3bvr168eQIUPYuHEjs2fPZuXKlYwdO9a9zN13382hQ4dYtmwZc+bM4a233iIlJcVjOxaLhSlTprBlyxbee+89lixZwl//+lcAunfvziuvvEJISAiHDx/m8OHDPProo6VqGT58OF9//bU7tAEsXLiQ3NxcBg8eDMCkSZOYOXMmb775Jlu2bGH8+PHceeedLF++vFLOV41kellGRoYJmBkZGd7etYiI1CLlfZ7k5eWZW7duNfPy8s5ru4MHm6bNZpqumFX2y2YzzSFDKuMoPI0YMcIcOHCgaZqmeeWVV5r33HOPaZqm+cUXX5glH9mjR48277//fo/1fvjhB9NisZh5eXnmtm3bTMBcs2aNe/7OnTtNwHz55ZfL3fenn35qRkZGun+ePn26GRoaWmq5uLg493aKiorMOnXqmDNnznTPHzZsmDl06FDTNE0zPz/fDAgIMH/88UePbYwePdocNmzYmU9GDVOR950GWRUREfldXh7MnXvyUmN5iovhiy9cy1fV87afe+45rr322lItThs2bGDjxo18+OGH7mmmaeJ0OklKSmLHjh3YbDY6d+7snt+0aVPCw8M9trN48WImTZrE9u3byczMpLi4mPz8fHJzc8+5T5fNZuO2227jww8/5K677iInJ4e5c+fy8ccfA7Br1y5yc3O5/vrrPdYrLCykU6dOFToftYnCl4iIyO8yM88evEo4na7lqyp89ezZk759+zJx4kRGjhzpnp6dnc0f//hHxo0bV2qdRo0asWPHjrNue+/evdx88808+OCD/Pvf/yYiIoKVK1cyevRoCgsLK9Shfvjw4fTq1YuUlBQW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n9OwYUOefvppDh8+zOHDhy/o3FYndbgXEZFLXn6Rk30ncggP8KnQeuEBPuw7kUN+kRN/38q5+3HevHkEBQVRXFxMQUEBFouF1157DYCCggKeffZZFi9eTLdu3QBo3LgxK1euZNq0afTq1YvevXvzzjvv4HA42Lx5M76+vgwdOpRly5bRr18/li1bRq9evdz7u+eee9x/b9y4MVOmTOGyyy4jOzuboKAg97ynn36a66+/HoDs7GzeeecdPvjgA6677joA3nvvPRo2bHjGY9u/fz9/+ctfaNmyJQDNmjVzz5s0aRLDhw/nkUcecc+bMmUKvXr1YurUqURERGC1Wt0tdDWZWr5EROSSV+hw4nCa2KwV+1i0WgwcTpNCh7PSarnmmmtITEzkl19+YcSIEYwaNYohQ4YAsGvXLnJzc7n++usJCgpyv2bOnMnu3bsB6NGjB1lZWfz6668sX77cHchKWsOWL19O79693ftbt24dAwYMoFGjRgQHB7uD2f79+z3q6tq1q/vvu3fvprCwkCuuuMI9LSIighYtWpzx2CZMmMC9995Lnz59mDx5srtmcF2SnDFjhsdx9e3bF6fTSVJSUsVP5EVMLV8iInLJ87VasFoMiisYokrG//KtYGg7k8DAQPclwXfffZcOHTrwzjvvMHr0aHe/rW+++YYGDRp4rGe32wEICwujQ4cOLFu2jJ9++onrr7+enj17MnToUHbs2MHOnTvdASsnJ4e+ffvSt29fPvzwQ6Kioti/fz99+/alsLCwVF0X6p///Cd33HEH33zzDfPnz+fJJ5/k448/ZvDgwWRnZ/PHP/6RcePGlVqvUaNGF7zvi4lavkRE5JLn52MhLjKQtNyiCq2XlltEXGQgfj5V83FqsVj429/+xt///nfy8vJo3bo1drud/fv307RpU49XbGyse71evXqxdOlSVqxYQe/evYmIiKBVq1b8+9//pl69ejRv3hyA7du3c+LECSZPnkyPHj1o2bKlR2f78jRp0gQfHx9++eUX97S0tDR27Nhx1nWbN2/O+PHj+e677/jDH/7A9OnTAejcuTNbt24tdVxNmzZ193nz9fXF4ajcu0urg8KXiIhc8gzD4LKECExMCovPrfWrsNiJicnlCRFVeufdrbfeitVq5fXXXyc4OJhHH32U8ePH895777F7927Wr1/Pq6++ynvvvedep3fv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XduQIUPo168f11xzDVFRUXz00UcYhsHcuXMJDw+nZ8+e9OnTh8aNGzN79uwKn5/33nuP3NxcJk2aRL169dyvP/zhD+Wu4+vry8SJE2nfvj09e/bEarXy8ccfAxAQEMCKFSto1KgRf/jDH2jVqhWjR48mPz+fkJAQAO677z5atGhB165diYqKYtWqVRWu+1SGebZ3WCXLzMwkNDSUjIwM90GJiIhUVHmfJ/n5+SQlJZ1xrKjylIxwfzzvOI2CG7mGkzhNoaOQ/Vn7qeNfh7ta3UVsSGwZW5JLTUXed+pwLyIi8rtGIY24s9Wd7mc7YriGk7AaVhymg7SCNDChUXAjhjQbouAl50XhS0RE5BSNQhrxYMcH+S31N9YdXUdyVjJFjiKsFittI9vSpW4XWkS0wG6tvEf7yKVF4UtEROQ0dqud9lHtaVenHfmOfIqcRfhYfPCz+lXpSPZyaVD4EhERKYdhGPjb/PGnakevl0uL7nYUEZFaycv3k8klriLvN4UvERGpVXx8XKPN5+bmVnMlcikpeb+VvP/ORJcdRUSkVrFarYSFhZGSkgK4xnFSPy2pKqZpkpubS0pKCmFhYeWOxXYqhS8REal1YmJiANwBTKSqhYWFud93Z6PwJSIitY5hGNSrV4/o6OgLfhSMyNn4+PicU4tXCYUvERGptaxWa4U+FEW8QR3uRURERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2zVXcDFJKegmOyCYgwgyM9GgK9Oj4hcgoryIT8dTBN8A8AeAoZR3VWJ1BqXfLpIycpnY3IGmw9lcDQzn8JiJwC+Ngt1Q/xo1yCU9g3DiAq2V3OlIiJVKC8NDv3qemUccAUwTLD6QmAdqNsOGnaB0FgFMZELZJimaXpzh5mZmYSGhpKRkUFISIg3d+0hv8jB0u0pLN9xjNScQgJ8rQTZ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+RDRBNoMdvX10s0eIlJNdNlRLkh+kYPNBzNYnZTK/tRccgqKKXI4MQwDfx8rwX42OjYKp3OjMOIiA8++QZHzkXkIDqyF/T+77mIsynG1hFlsrkuSIQ0grjs06Fzq0URSc+nzRGoqhS+pFKZpklVQTEpmAflFDgwDwgJ8iQqy42vT1W3xEkcx5ByD3OOufmE2u2sQVf9wtXTVQvo8kZpK13+kUhiGQYifj0asl+pltUFIPddLROQipSYJERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES+yeXuHpmkCkJmZ6e1di4hILVLyOVLyuSJSU3g9fGVlZQEQGxvr7V2LiEgtlJWVRWhoaHWXIXLODNPLXxmcTieHDh0iODgYwzC8uetzkpmZSWxsLMnJyYSEhFR3OTWSzuGF0zm8MDp/F64mnEPTNMnKyqJ+/fpYLOpFIzWH11u+LBYLDRs29PZuKywkJOSi/YVTU+gcXjidwwuj83fhLvZzqBYvqYn0VUFERETEixS+RERERLxI4es0drudJ598ErvdXt2l1Fg6hxdO5/DC6PxdOJ1Dkarj9Q73IiIiIpcytXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyd4vXXXyc+Ph4/Pz+uuOIKVq9eXd0l1SgrVqxgwIAB1K9fH8Mw+PLLL6u7pBpl0qRJXHbZZQQHBxMdHc2gQYP47bffqrusGmXq1Km0b9/ePTBot27dmD9/fnWXVWNNnjwZwzB45JFHqrsUkVpF4et3s2fPZsKECTz55JOsX7+eDh060LdvX1JSUqq7tBojJyeHDh068Prrr1d3KTXS8uXLGTNmDD///DOLFi2iqKiIG264gZycnOourcZo2LAhkydPZt26daxdu5Zrr72WgQMHsmXLluourcZZs2YN06ZNo3379tVdikito6EmfnfFFVdw2WWX8dprrwGuZ1DGxsbypz/9iccff7yaq6t5DMPgiy++YNCgQdVdSo117NgxoqOjWb58OT179qzucmqsiIgIXnjhBUaPHl3dpdQY2dnZdO7cmTfeeIN//etfdOzYkVdeeaW6yxKpNdTyBRQWFrJu3Tr69OnjnmaxWOjTpw8//fRTNVYml7KMjAzAFR6k4hwOBx9//DE5OTl069atusupUcaMGUP//v09fieKSOXx+oO1L0bHjx/H4XBQt25dj+l169Zl+/bt1VSVXMqcTiePPPIIV111FW3btq3ucmqUTZs20a1bN/Lz8wkKCuKLL76gdevW1V1WjfHxxx+zfv161qxZU92liNRaCl8iF6ExY8awefNmVq5cWd2l1DgtWrQgMTGRjIwMPvvsM0aMGMHy5csVwM5BcnIyDz/8MIsWLcLPz6+6yxGptRS+gDp16mC1Wjl69KjH9KNHjxITE1NNVcmlauzYscybN48VK1bQsGHD6i6nxvH19aVp06YAdOnShTVr1vDf//6XadOmVXNlF79169aRkpJC586d3dMcDgcrVqzgtddeo6CgAKvVWo0VitQO6vOF65d1ly5d+P77793TnE4n33//vfqKiNeYpsnYsWP54osvWLJkCQkJCdVdUq3gdDopKCio7jJqhOuuu45NmzaRmJjofnXt2pXhw4eTmJio4CVSSdTy9bsJEyYwYsQIunbtyuWXX84rr7xCTk4Oo0aNqu7Saozs7Gx27drl/jkpKYnExEQiIiJo1KhRNVZWM4wZM4ZZs2Yxd+5cgoODOXLkCAChoaH4+/tXc3U1w8SJE7nxxhtp1KgRWVlZzJo1i2XLlrFw4cLqLq1GCA4OLtXHMDAwkMjISPU9FKlECl+/Gzp0KMeOHeOJJ57gyJEjdOzYkQULFpTqhC/lW7t2Lddcc4375wkTJgAwYsQIZsyYUU1V1RxTp04FoHfv3h7Tp0+fzsiRI71fUA2UkpLC3XffzeHDhwkNDaV9+/YsXLiQ66+/vrpLExFx0zhfIiIiIl6kPl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJF/x81RSVLOylUpwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -323,12 +410,114 @@ "output_type": "stream", "text": [ "Time t=9\n", - "[Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32)]\n" + "[Array([[14]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", + "[1.5254424e-05 1.5254424e-05 1.5254424e-05 1.5254424e-05 9.9971014e-01]\n", + "[[0 0 0 0]]\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAE1CAYAAABqcK2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQWUlEQVR4nO3dd3hUVeLG8e/MpHcSAqGEJBBaaFJsIE1xiQKLLGJoKooFFRHUtexv7QWUtSwWwFWaCy4KKogFQQhSVEA6AWkJzUAgIYH0ycz9/TFmZEgCBFLI8H6eZ54w955777k3E/Lm3HPONRmGYSAiIiIiNZ65uisgIiIiIhVDwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFOqsXzzz+PyWRyWRYdHc2IESOqtB4zZszAZDKRkpJSpceV86Pvj4hI+SjYXUKSk5MZPXo0zZo1w8/PDz8/P+Li4njooYfYsmVLdVfvspSSkoLJZDqvV1nhIzo6GpPJRK9evUpd/5///Me5j/Xr11fi2VyYc12DCRMmVHcVLytz5szh7bffru5qiMglyqO6KyAOixYtIiEhAQ8PD4YNG0a7du0wm83s3LmTzz//nMmTJ5OcnExUVFR1V7XS/Pbbb5jNl9bfGuHh4Xz88ccuy9544w0OHTrEW2+9VaJsWXx8fFi+fDlHjhwhIiLCZd3s2bPx8fEhPz+/4ipeCYYMGcLNN99cYnn79u0r7Zi33347gwcPxtvbu9KOUdPMmTOHbdu2MXbs2OquiohcghTsLgF79+5l8ODBREVF8cMPP1CvXj2X9a+99hrvv//+JRd6TpeTk4O/v/9F7eNS/OXt7+/P8OHDXZb973//48SJEyWWn02XLl1Yt24dc+fO5ZFHHnEuP3ToECtXrmTAgAHMnz+/wupdGTp06FCuc64IFosFi8Vy1jKGYZCfn4+vr28V1UpE5NJ16SaFy8jrr79OTk4O06dPLxHqADw8PBgzZgyRkZEuy3fu3Mmtt95KaGgoPj4+dOrUiYULF7qUKe6jtHr1ah599FHCw8Px9/dnwIABHDt2rMSxvv32W7p27Yq/vz+BgYH06dOH7du3u5QZMWIEAQEB7N27l5tvvpnAwECGDRsGwMqVKxk0aBCNGjXC29ubyMhIxo0bR15e3jmvw5l97M73tuf5XAeA7du3c/311+Pr60vDhg15+eWXsdvt56xXRfDx8eFvf/sbc+bMcVn+ySefUKtWLXr37l1imy1btjBixAgaN26Mj48PERER3H333aSnpzvLnOs26el++eUX4uPjCQ4Oxs/Pj+7du7N69eoKPc/o6Gj69u3LqlWruOqqq/Dx8aFx48bMmjXLWWb9+vWYTCZmzpxZYvvFixdjMplYtGgRUHofu+JjLF68mE6dOuHr68vUqVMB2LdvH4MGDSI0NBQ/Pz+uueYavv76a5djJCYmYjKZ+PTTT3nllVdo2LAhPj4+3HDDDezZs8elbI8ePWjdujVbtmyhe/fu+Pn5ERsby7x58wBYsWIFV199Nb6+vjRv3pylS5eWOKfDhw9z9913U7duXby9vWnVqhXTpk27oDr16NGDr7/+mv379zu/x9HR0efxnRGRy4Va7C4BixYtIjY2lquvvvq8t9m+fTtdunShQYMGPPXUU/j7+/Ppp59yyy23MH/+fAYMGOBS/uGHH6ZWrVo899xzpKSk8PbbbzN69Gjmzp3rLPPxxx9z55130rt3b1577TVyc3OZPHky1113HRs3bnT5BVJUVETv3r257rrr+Ne//oWfnx8An332Gbm5uTzwwAOEhYWxdu1a3nnnHQ4dOsRnn31Wruty5i1QgH/+85+kpaUREBBQrutw5MgRevbsSVFRkbPcBx98UKWtPEOHDuUvf/kLe/fupUmTJoDjttqtt96Kp6dnifJLlixh37593HXXXURERLB9+3Y++OADtm/fzs8//4zJZCr1VrHVamXcuHF4eXk5ly1btoybbrqJjh078txzz2E2m5k+fTrXX389K1eu5Kqrrjpn/XNzczl+/HiJ5SEhIXh4/PlfyZ49e7j11lsZOXIkd955J9OmTWPEiBF07NiRVq1a0alTJxo3bsynn37KnXfe6bKvuXPnlhl0T/fbb78xZMgQ7r//fu69916aN2/O0aNH6dy5M7m5uYwZM4awsDBmzpzJX//6V+bNm1fiZ2LChAmYzWYef/xxsrKyeP311xk2bBi//PKLS7kTJ07Qt29fBg8ezKBBg5g8eTKDBw9m9uzZjB07llGjRjF06FAmTpzIrbfeysGDBwkMDATg6NGjXHPNNZhMJkaPHk14eDjffvstI0eO5OTJkyVup56rTv/3f/9H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2dnZREREcPXVV3P//fefV30++eQT54je0915550XFez++c9/kpube16jYc+mbt26rFmzhieffJJ33nmH/Px82rZty1dffUWfPn0uat8XU6e1a9fy4osv8vnnn/P+++8TFhZGq1ateO211y5onw8++CCbNm1i+vTpvPXWW0RFRSnYiYiTyVCvXBERERG3oD52IiIiIm5CwU5ERETETSjYiYiIiLgJBTsRERERN6FgJyIiIuImFOxERERE3ISCnYiIiIibULATERERcRMKdiIiIiJuQsFORERExE0o2ImIiIi4CQU7ERERETehYCciIiLiJjyquwIiIiI1kc1mw2q1Vnc1xM15enpisVjOu7yCnYiISDkYhsGRI0fIzMys7qrIZSIkJISIiAhMJtM5yyrYiYiIlENxqKtTpw5+fn7n9ctW5EIYhkFubi5paWkA1KtX75zbKNiJiIicJ5vN5gx1YWFh1V0duQz4+voCkJaWRp06dc55W1aDJ0RERM5TcZ86Pz+/aq6JXE6KP2/n06dTwU5ERKScdPtVqlJ5Pm8KdiIiIiJuQsFORERExE0o2ImIiFShwsLCi1p/MY4cOcLDDz9M48aN8fb2JjIykn79+vHDDz9U2jGlainYiYiIVJG5c+fSpk0bDh48WOr6gwcP0qZNG+bOnVvhx05JSaFjx44sW7aMiRMnsnXrVr777jt69uzJQw89VOHHk+qhYCciIlIFCgsLefbZZ9m1axc9evQoEe4OHjxIjx492LVrF88++2yFt9w9+OCDmEwm1q5dy8CBA2nWrBmtWrXi0Ucf5eeffyYlJQWTycSmTZuc22RmZmIymUhMTHQu27ZtGzfddBMBAQHUrVuX22+/nePHj1doXeXCKdiJiIhUAS8vL5YuXUrjxo3Zt2+fS7grDnX79u2jcePGLF26FC8vrwo7dkZGBt999x0PPfQQ/v7+JdaHhISc134yMzO5/vrrad++PevXr+e7777j6NGj3HbbbRVWV7k4CnYiIiJVJDIyksTERJdwt2bNGpdQl5iYSGRkZIUed8+ePRiGQYsWLS5qP++++y7t27fn1VdfpUWLFrRv355p06axfPlydu3aVUG1lYuhJ0+IiIhUoeJwVxzmunTpAlBpoQ4cj6aqCJs3b2b58uUEBASUWLd3716aNWtWIceRC6dgJyIiUsUiIyP5+OOPnaEO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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1YUlEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQiooCIj9gURFRAduqsAisu8p+d3XVXUFdy2JBdBVERVBRQRQQpAkWmqF3AoQaICG9zpzfH2MGhiRAIJmQcL+uay6cUz/nZMzcec5znmOYpmkiIiIiIl5hqewCRERERK4kCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl/iNf/85z8xDMNjWlxcHMOHD/dqHdOmTcMwDPbt2+fV/cqF0c9HRKo7ha9KlpiYyKhRo2jSpAkBAQEEBATQokULRo4cycaNGyu7vCvSvn37MAzjgl6lBYS4uDgMw6Bnz54lzn/vvffc21i7dm0FHs3FOd85mDhxYmWXeEWZMWMGr7/+emWXISLlxFbZBVzJ5s2bx+DBg7HZbAwdOpS2bdtisVjYvn07X375JZMnTyYxMZHY2NjKLrXC7NixA4vl8vobICoqio8++shj2iuvvMLBgwd57bXXii1bGj8/P5YuXcrRo0eJjo72mPfJJ5/g5+dHbm5u+RVeAYYMGcKtt95abHr79u0rbJ/33nsvd911F3a7vcL2UdXMmDGDzZs3M2bMmMouRUTKgcJXJdmzZw933XUXsbGx/PDDD9SuXdtj/osvvsjbb7992QWTM2VlZREYGHhJ27gcv2ADAwO55557PKbNnDmT1NTUYtPP5brrrmPNmjXMmjWLxx9/3D394MGD/PjjjwwcOJDZs2eXW90VoUOHDmU65vJgtVqxWq3nXMY0TXJzc/H39/dSVSIi5efy/Wav5l566SWysrKYOnVqseAFYLPZGD16NDExMR7Tt2/fzu23305ERAR+fn506tSJuXPneixT1Gdm1apVjBs3jqioKAIDAxk4cCDHjx8vtq/58+fTtWtXAgMDCQ4Opm/fvmzZssVjmeHDhxMUFMSePXu49dZbCQ4OZujQoQD8+OOP3HHHHdSvXx+73U5MTAxjx44lJyfnvOfh7D5fF3qJ70LOA8CWLVu48cYb8ff3p169evzrX//C6XSet67y4Ofnxx/+8AdmzJjhMf3TTz8lPDycXr16FVtn48aNDB8+nAYNGuDn50d0dDT3338/J0+edC9zvkuCZ/r111/p3bs3oaGhBAQE0L17d1atWlWuxxkXF8dtt93GypUrufrqq/Hz86NBgwZMnz7dvczatWsxDIMPP/yw2PoLFy7EMAzmzZsHlNznq2gfCxcupFOnTvj7+zNlyhQA9u7dyx133EFERAQBAQFce+21fPvttx77WLZsGYZh8Nlnn/Hvf/+bevXq4efnx0033cTu3bs9lu3RowetWrVi48aNdO/enYCAABo1asQXX3wBwPLly7nmmmvw9/enadOmLF68uNgxHTp0iPvvv59atWpht9tp2bIlH3zwwUXV1KNHD7799lv279/v/hnHxcVdwE9GRC5XavmqJPPmzaNRo0Zcc801F7zOli1buO6666hbty5PPfUUgYGBfPbZZwwYMIDZs2czcOBAj+X/9Kc/ER4ezjPPPMO+fft4/fXXGTVqFLNmzXIv89FHHzFs2DB69erFiy++SHZ2NpMnT+b666/nt99+8/glX1hYSK9evbj++uv5z3/+Q0BAAACff/452dnZPProo0RGRrJ69WreeOMNDh48yOeff16m83L25T6Av//97yQnJxMUFFSm83D06FFuuOEGCgsL3cu9++67Xm0tufvuu7nlllvYs2cPDRs2BFyXkG6//XZ8fHyKLb9o0SL27t3LiBEjiI6OZsuWLbz77rts2bKFX375BcMwSrwsWlBQwNixY/H19XVPW7JkCX369KFjx44888wzWCwWpk6dyo033siPP/7I1Vdffd76s7OzOXHiRLHpYWFh2Gynf33s3r2b22+/nQceeIBhw4bxwQcfMHz4cDp27EjLli3p1KkTDRo04LPPPmPYsGEe25o1a1apYfRMO3bsYMiQIfzxj3/koYceomnTphw7dowuXbqQnZ3N6NGjiYyM5MMPP+T//b//xxdffFHs/4mJEydisVh44oknSEtL46WXXmLo0KH8+uuvHsulpqZy2223cdddd3HHHXcwefJk7rrrLj755BPGjBnDI488wt13383LL7/M7bffTlJSEsHBwQAcO3aMa6+9FsMwGDVqFFFRUcyfP58HHniA9PT0YpcOz1fT//3f/5GW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WZMePXowZcoUjhw5Umz5koaQOJ9evXoREhLCCy+8QEFBwUVts+iv9jPrNU2T//73v2WuB2Dq1KlMmTKFt956q8RQWpbzcOutt/LLL7+wevVqj/mffPLJRdV2thYtWtCzZ0/3q2PHjqUu++CDD/LMM8/wyiuvlLpMSecSKHFk82effZaFCxfy6aeflng5rmPHjjRs2JD//Oc/JV7evpjPS3lo3rw5rVu3ZtasWcyaNYvatWvTrVu3i97erbfeyurVq/n555/d07Kysnj33XeJi4sr1jetolmtVgYNGsTs2bNLbNm+2PMeGBh40ZfwReTyo5avStK4cWNmzJjBkCFDaNq0qXuEe9M0SUxMZMaMGVgsFo8+Vm+99RbXX389rVu35qGHHqJBgwYcO3aMn3/+mYMHD7Jhw4Yy1RASEsLkyZO599576dChA3fddRdRUVEcOHCAb7/9luuuu44333zznNto1qwZDRs25IknnuDQoUOEhIQwe/bsi+qvcuLECR577DFatGiB3W7n448/9pg/cOBAAgMDL/g8/PWvf+Wjjz6id+/ePP744+6hJmJjY73+6KbY2Fj++c9/nnOZkJAQunXrxksvvURBQQF169bl+++/JzEx0WO5TZs28fzzz9OtWzeSk5OLnad77rkHi8XC//73P/r06UPLli0ZMWIEdevW5dChQyxdupSQkBC++eab89a9fv36YtsHV8ta586dz3/gJRg8eDBPP/00fn5+PPDAA5c0kPBTTz3Fp59+Sp8+fRg9ejQRERF8+OGHJCYmMnv27EoZpHjixIksXbqUa665hoceeogWLVqQkpLC+vXrWbx4MSkpKWXeZseOHZk1axbjxo3jqquuIigoiH79+lVA9SLiDQpflah///5s2rSJV155he+//54PPvgAwzCIjY2lb9++PPLII7Rt29a9fIsWLVi7di3PPvss06ZN4+TJk9SsWZP27dt7XKYqi7vvvps6deowceJEXn75ZfLy8qhbty5du3ZlxIgR513fx8eHb775htGjRzNhwgT8/PwYOHAgo0aN8qj9QmRmZpKbm8vWrVvddzeeKTExkcDAwAs+D7Vr12bp0qX86U9/YuLEiURGRvLII49Qp04dd4fvy82MGTP405/+xFtvvYVpmtxyyy3Mnz+fOnXquJc5efIkpmmyfPlyli9fXmwbRZdCe/Towc8//8zzzz/Pm2++SWZmJtHR0VxzzTX88Y9/vKB6Pv30U/edmmcaNmzYJYWvv//972RnZ1/QXY7nUqtWLX766SeefPJJ3njjDXJzc2nTpg3ffPMNffv2vaRtX0pNq1ev5rnnnuPLL7/k7bffJjIykpYtW/Liiy9e1DYfe+wxEhISmDp1Kq+99hqxsbEKXyJVmGGqV6eIiIiI16jPl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHXx/lyOp0cPnyY4OBgPTJDREQummmaZGRkUKdOnUoZUFfkYnk9fB0+fJiYmBhv71ZERKqppKQkj6eBiFzuvB6+goODAdf/LCEhId7evYiIVBPp6enExMS4v1dEqgqvh6+iS40hISEKXyIicsnUhUWqGl0kFxEREfEihS8RERERL1L4EhEREfEir/f5EhER8RaHw0FBQUFllyHVnI+PD1ar9YKXV/gSEZFqxzRNjh49yqlTpyq7FLlChIWFER0dfUE3gCh8iYhItVMUvGrWrElAQIDuiJQKY5om2dnZJCcnA1C7du3zrqPwJSIi1YrD4XAHr8jIyMouR64A/v7+ACQnJ1OzZs3zXoJUh3sREalWivp4BQQEVHIlciUp+rxdSB9DhS8REamWdKlRvKksnzeFLxEREREvUvgSERER8SKFLxERkbPk5+df0vxLdfToUf70pz/RoEED7HY7MTEx9OvXjx9++KFC9yveofAlIiJyhlmzZtG6dWuSkpJKnJ+UlETr1q2ZNWtWhex/3759dOzYkSVLlvDyyy+zadMmFixYwA033MDIkSMrZJ/iXQpfIiIiv8vPz+fpp59m586d9OjRo1gAS0pKokePHuzcuZOnn366QlrAHnvsMQzDYPXq1QwaNIgmTZrQsmVLxo0bxy+//MK+ffswDIOEhAT3OqdOncIwDJYtW+aetnnzZvr06UNQUBC1atXi3nvv5cSJE+Ver5SdwpeIiMjvfH19Wbx4MQ0aNGDv3r0eAawoeO3du5cGDRqwePFifH19y3X/KSkpLFiwgJEjRxIYGFhsflhY2AVt59SpU9x44420b9+etWvXsmDBAo4dO8add95ZrvXKxVH4EhEROUNMTAzLli3zCGA//fSTR/BatmwZMTEx5b7v3bt3Y5omzZo1u6TtvPnmm7Rv354XXniBZs2a0b59ez744AOWLl3Kzp07y6lauVga4V5EROQsRQGsKHBdd911ABUavMD1qJrysGHDBpYuXUpQUFCxeXv27KFJkyblsh+5OApfIiIiJYiJieGjjz5yBy+Ajz76qMKCF0Djxo0xDIPt27eXuozF4rpodWZQO3tU9czMTPr168eLL75YbP0LefagVCxddhQRESlBUlIS9957r8e0e++9t9S7IMtDREQEvXr14q233iIrK6vY/FOnThEVFQXAkSNH3NPP7HwP0KFDB7Zs2UJcXByNGjXyeJXUl0y8S+FLRETkLGd3rl+1alWJnfArwltvvYXD4eDqq69m9uzZ7Nq1i23btjFp0iQ6d+6Mv78/1157LRMnTmTbtm0sX76cv//97x7bGDlyJCkpKQwZMoQ1a9awZ88eFi5cyIgRI3A4HBVWu1wYhS8REZEznB28li1bRpcuXYp1wq+oANagQQPWr1/PDTfcwJ///GdatWrFzTffzA8//MDkyZMB+OCDDygsLKRjx46MGTOGf/3rXx7bqFOnDqtWrcLhcHDLLbfQunVrxowZQ1hYmPuypVQewyyv3n0XKD09ndDQUNLS0ggJCfHmrkVEpBop7fskNzeXxMRE4uPj8fPzK9M28/Pzad26NTt37iyxc/2ZwaxJkyZs2rSp3IebkKqpLJ87xV8REZHf+fr68txzz9GkSZMS72osuguySZMmPPfccwpeclF0t6OIiMgZBg8ezMCBA0sNVjExMWrxkkuili8REZGznC9YKXjJpVD4EhEREfEihS8RERERL1KfL7lkpmlyKPMQhzIPkZydTGZ+JlaLlUj/SGr616RBWAMCfTSon1Ss3MJcEtMSSc5O5njOcQocBfj7+FMzoCa1A2sTGxKLxdDfmyJS+RS+5KKZpsmuU7tYdWgVu1N3k1WYhYGBzWLDNE0cpgPDMKjhX4OOtTrSpU4Xgn2DK7tsqWZyC3P55cgvrDm6hqNZR3GYDqyGFYthwWE6ME0Tu9VOXGgcnet0pnWN1gphIlKpFL7kouQ58li8bzGrDq8i15FLrYBa1Amqg2EYHssVOgs5mXuS7/Z+x5YTW+jboC9NI5pWUtVS3SRlJPHNnm/YmbqTIJ8g6gfXx8fqU2y57IJs9pzaw95Te+kU3Ylb428lyLf4A4dFRLxBf/5JmeU58pi9czaLDiwi0CeQRmGNCPYNLha8AGwWG7UCatEwrCFHso4wY9sMNp/YXAlVS3WzL20fH2/9mF2pu4gLiaNOUJ0SgxdAgE8A8aHxRPpHsurwKj7d/ikZ+RlerlhExEXhS8rENE1+2P8Dq4+upl5QPcL9wi9oPZvFRlxIHHmOPL7a9RWHMw9XcKVSnaXlpfHFri84kXOChmEN8bVe2G3/wb7BxIXEsfnEZr7Z8w1O01nBlYpcHpYtW4ZhGJw6deqcy8XFxfH66697paYrmcKXlMmeU3tYdXgVNfxrEOATUOIy1tx8/E+mY83N95huGAYxwTGk5KYwP3E+Bc4Cb5Qs1Yxpmizev5ik9CTiQuJK7L+Vn2sl/aQ/+bnWYvPsVjt1g+vyW/JvJCQneKFiqfJycuDYMde/FWz48OEYhoFhGPj6+tKoUSOee+45CgsLL2m7Xbp04ciRI4SGhgIwbdo0wsLCii23Zs0aHn744Uval5zfJfX5mjhxIuPHj+fxxx9XUr4CmKbJz0d+Jrsgm7pBdYvNj/5tN20/XkL8so1YnCZOi0FijzZsuPcmjrZrCLgCWL3gemxL2caeU3toFtHM24chVdyRrCP8lvwbtQJrYbV4hqvdv0Wz5OO2bFwWj+m0YFictOmRyE33bqBhu6Pu5YJ8gjhpnOTHQz/SOqo1PpaSL1fKFW7lSnj1VZgzB5xOsFigf3/485/huusqbLe9e/dm6tSp5OXl8d133zFy5Eh8fHwYP378RW/T19eX6Ojo8y4XFRV10fuQC3fRLV9r1qxhypQptGnTpjzrkcvYsexj7EjZQc2AmsXmtfxsBQMfeI345ZuwOF3Parc4TeKXb2Lg/a/S8vMf3cv62/xxmk61OshF2XxiMxkFGYT6hnpMX/FZS157YCCblruCF4DptLBpeTyv3j+QHz9v6bF8rYBaHMw4yN5Te71Wu1QhkydDt27wzTeu4AWuf7/5Brp2hXfeqbBd2+12oqOjiY2N5dFHH6Vnz57MnTuX1NRU7rvvPsLDwwkICKBPnz7s2rXLvd7+/fvp168f4eHhBAYG0rJlS7777jvA87LjsmXLGDFiBGlpae5Wtn/+85+A52XHu+++m8GDB3vUVlBQQI0aNZg+ffrvp8TJhAkTiI+Px9/fn7Zt2/LFF19U2LmpLi4qfGVmZjJ06FDee+89wsMvrM+PVH2HMw+TVZBFiG+Ix/To33bTbeIsDBMsDs8+NBaHE8OEbhNmEp2wxz091DeUvaf26tKjlNnuU7sJtAV63OCx+7doZk3sBqaB0+H5a83psIBpMHNCN/YknP7L38/mR6GzkCNZR7xWu1QRK1fCyJFgmnD25b7CQtf0xx6DVau8Uo6/vz/5+fkMHz6ctWvXMnfuXH7++WdM0+TWW2+loMD1e3TkyJHk5eWxYsUKNm3axIsvvkhQUPG7ert06cLrr79OSEgIR44c4ciRIzzxxBPFlhs6dCjffPMNmZmZ7mkLFy4kOzubgQMHAjBhwgSmT5/OO++8w5YtWxg7diz33HMPy5cvr6CzUT1cVPgaOXIkffv2pWfPnuVdj1zGjuccByh2V2Pbj5dgWs79UTItFtp+vMT9PsAngMyCTE7mnCz/QqXayi7I5kTOiWL9DZd83BaLxTznuhaLyZKP23pMs1lsHMo8VO51ShX36qtgLd5f0IPVCq+9VqFlmKbJ4sWLWbhwIfXr12fu3Ln873//o2vXrrRt25ZPPvmEQ4cO8fXXXwNw4MABrrvuOlq3bk2DBg247bbb6NatW7Ht+vr6EhoaimEYREdHEx0dXWJI69WrF4GBgXz11VfuaTNmzOD//b//R3BwMHl5ebzwwgt88MEH9OrViwYNGjB8+HDuuecepkyZUmHnpTooc5+vmTNnsn79etasWXNBy+fl5ZGXl+d+n56eXtZdymUipzCnWPCy5ua7+3idi8XhJH7pBqy5+Tj8fPGx+FDoLCTPkXfO9UTOlO/Ip9BZ6PHEhPxcq7uP17k4HRY2LI0nP9eKr58DAB+LD5n5medcT64wOTmn+3idS2EhfPWVa3l//3ItYd68eQQFBVFQUIDT6eTuu+/mD3/4A/PmzeOaa65xLxcZGUnTpk3Ztm0bAKNHj+bRRx/l+++/p2fPngwaNOiSugbZbDbuvPNOPvnkE+69916ysrKYM2cOM2fOBGD37t1kZ2dz8803e6yXn59P+/btL3q/V4IytXwlJSXx+OOP88knn+Dn53dB60yYMIHQ0FD3KyYm5qIKlcpnNaxwVsbyzco9b/AqYnGa+GblAq6/6AzD0EjjUiaGYWBgeAwRkZvle97gVcR0WsjNOj0shdN0YrNorGk5Q3r6+YNXEafTtXw5u+GGG0hISGDXrl3k5OTw4YcfljiO4tkefPBB9u7dy7333sumTZvo1KkTb7zxxiXVMnToUH744QeSk5P5+uuv8ff3p3fv3gDuy5HffvstCQkJ7tfWrVvV7+s8yvTNt27dOpKTk+nQoQM2mw2bzcby5cuZNGkSNpsNh8NRbJ3x48eTlpbmfiUlJZVb8eJd4X7hmGelr/xAP5yW8/9SAHBaDPIDXaE9uzAbf5s/Yfaw8i5TqrFg32ACfQLJKTx9y79fYD6G5cK+LA2LE7/A00Og5DnyiA48/x1gcgUJCXHd1XghLBbX8uUsMDCQRo0aUb9+fWw21x8HzZs3p7CwkF9//dW93MmTJ9mxYwctWrRwT4uJieGRRx7hyy+/5M9//jPvvfdeifvw9fUt8Tv7bF26dCEmJoZZs2bxySefcMcdd+Dj47o7uEWLFtjtdg4cOECjRo08XmpoObcy/cl30003sWnTJo9pI0aMoFmzZjz55JNYS7hGbrfbsdvtl1alXBai/KOwGlbyHfnuQS0dfr4k9mjjusvRUfoXoNNqIbFHGxx+rvUyCzKpG1SXIB894kUunMWwUD+kPquPrnZP8/Vz0KZHIpuWxxfrbO+xrtU17ETRJcei1rOS7t6VK5i/v2s4iW++Kd7Z/kw2m2u5cr7kWJrGjRvTv39/HnroIaZMmUJwcDBPPfUUdevWpX///gCMGTOGPn360KRJE1JTU1m6dCnNmzcvcXtxcXFkZmbyww8/0LZtWwICAggIKHnsxrvvvpt33nmHnTt3snTpUvf04OBgnnjiCcaOHYvT6eT6668nLS2NVatWERISwrBhw8r/RFQTZWr5Cg4OplWrVh6vwMBAIiMjadWqVUXVKJeJuNA4ogOj3R3vi2y450aM8zTTG04nG+65EXB96eUU5tA2qu0FNaWLnKlFZAsMDPIdp1uwbrxnA07nuT9LTqfBjfdscL9PzU0lzB5G47DGFVarVFHjxsH5WoUcDhg71jv1/G7q1Kl07NiR2267jc6dO2OaJt999527JcrhcDBy5EiaN29O7969adKkCW+//XaJ2+rSpQuPPPIIgwcPJioqipdeeqnU/Q4dOpStW7dSt25drjtrfLPnn3+ef/zjH0yYMMG932+//Zb4+PjyO/BqyDBN88I67JSiR48etGvX7oIHWU1PTyc0NJS0tDRCKqC5VirWioMr+HLXl8SFxHk80qXl5z/SbcJMTIvFowXMabVgOJ2sGH8XW+7oCriGrPCz+TGy3cgLfjyRSJE8Rx5vJ7zNkcwjxIXGuaf/+HlLZk7ohsVierSAWaxOnE6Du8avoOsdWwBwmA52p+7mhvo3MKDRAC8fgZSX0r5PcnNzSUxMJD4+/oL7Jxfzzjuu4SSsVs8WMJvNFbzefhseeeQSj0Cqk7J87i65p+myZcsudRNShVwVfRWbT2xmd+puGoY1dLdcbbmjKycb13GNcL90g+cI9/fc6B7hPqsgi+zCbPo26KvgJRfFbrVzS9wtfLTlI1JzU92fo653bKFO45Ms+bgtG5Z6jnB/4z2nR7g3TZOkjCTqBtWlR70elXgkcll75BFo3do1nMRXX3mOcD92bIWOcC/Vn27zkTLxt/lzW4Pb+GjrRySmJ3o8W+9ou4YcbdcQa24+vlm55Af6uft4gSt4Hco8xLW1r+Wq6Ksq6xCkGmgR0YJu9bqxaP8iDMNw37jRsN1RGrY7Sn6uldwsX/wC8919vMAVvA5mHsRutdO3YV/C/MIq5wCkarjuOtcrJ8d1V2NIiNf6eEn1pvv8pczqh9TnrmZ3EeUfxe5Tu8nIz/CY7/DzJScyxB28HKaDw5mHOZp1lM61OzOg0QDd3i+XxDAMbom7hZ71e5KWl8b+9P0UOk9fGvL1cxASmeMRvHIKc9h9ajf+Nn9ub3I7LSNblrRpkeL8/aFWLQUvKTf6BpSL0jCsIQ+2fpCF+xay6fgmjmQdcQ0DYAvEx+qDaZrkFOaQWZBJniOPmgE16dewHx1rdVTwknJhs9i4tcGtxITE8P3+79mXvg+rYSXYNxh/mz8Ww0Khs5DsgmzS89OxWWy0qtGKPvF9qBNUp7LLF5ErmL4F5aJF+kdyV7O76FynMxuPb2Rn6k4y8jMoyC/AwMDP5keD0Aa0jmpNy8iWhNpDz79RkTIwDIM2UW1oFNaIbSnb2Hh8I4cyDnEq9xROnNgMG0G+QbSKakWbGm1oGNZQ4V9EKp1+C8klsRgW4kPjiQ+Nx2k6OZV3irzCPAzDINQeir9NzfRS8QJ8AuhYqyMda3Ukz5HnCl+mEx+rD+H2cKyW8zynT0TEixS+pNxYDAsRfhGVXYZc4exWO7UCa1V2GSIipVKHexEREREvUvgSERER8SKFLxEREblgcXFxF/xUGymZwpeIiMg55OTAsWOufyva8OHDMQyDiRMnekz/+uuvvf4s3GnTphEWFlZs+po1a3j44Ye9Wkt1o/AlIiJSgpUr4Q9/gKAgiI52/fuHP8CqVRW7Xz8/P1588UVSU1MrdkcXKSoqioCAgMouo0pT+BIRETnL5MnQrRt8843rsY7g+vebb6BrV9dztytKz549iY6OZsKECaUus3LlSrp27Yq/vz8xMTGMHj2arKws9/wjR47Qt29f/P39iY+PZ8aMGcUuF7766qu0bt2awMBAYmJieOyxx8jMzARcz20eMWIEaWlpGIaBYRj885//BDwvO959990MHjzYo7aCggJq1KjB9OnTAXA6nUyYMIH4+Hj8/f1p27YtX3zxRTmcqapL4UtEROQMK1fCyJFgmlBY6DmvsNA1/bHHKq4FzGq18sILL/DGG29w8ODBYvP37NlD7969GTRoEBs3bmTWrFmsXLmSUaNGuZe57777OHz4MMuWLWP27Nm8++67JCcne2zHYrEwadIktmzZwocffsiSJUv461//CkCXLl14/fXXCQkJ4ciRIxw5coQnnniiWC1Dhw7lm2++cYc2gIULF5Kdnc3AgQMBmDBhAtOnT+edd95hy5YtjB07lnvuuYfly5eXy/mqkkwvS0tLMwEzLS3N27sWEZFqpLTvk5ycHHPr1q1mTk7ORW134EDTtNlM0xWzSn7ZbKY5aFB5HIWnYcOGmf379zdN0zSvvfZa8/777zdN0zS/+uors+gr+4EHHjAffvhhj/V+/PFH02KxmDk5Oea2bdtMwFyzZo17/q5du0zAfO2110rd9+eff25GRka630+dOtUMDQ0ttlxsbKx7OwUFBWaNGjXM6dOnu+cPGTLEHDx4sGmappmbm2sGBASYP/30k8c2HnjgAXPIkCHnPhlVTFk+dxpkVURE5Hc5OTBnzulLjaUpLISvvnItX1HP237xxRe58cYbi7U4bdiwgY0bN/LJJ5+4p5mmidPpJDExkZ07d2Kz2ejQoYN7fqNGjQgPD/fYzuLFi5kwYQLbt28nPT2dwsJCcnNzyc7OvuA+XTabjTvvvJNPPvmEe++9l6ysLObMmcPMmTMB2L17N9nZ2dx8880e6+Xn59O+ffsynY/qROFLRETkd+np5w9eRZxO1/IVFb66detGr169GD9+PMOHD3dPz8zM5I9//COjR48utk79+vXZuXPnebe9b98+brvtNh599FH+/e9/ExERwcqVK3nggQfIz88vU4f6oUOH0r17d5KTk1m0aBH+/v707t3bXSvAt99+S926dT3Ws9vtF7yP6kbhS0RE5HchIWCxXFgAs1hcy1ekiRMn0q5dO5o2beqe1qFDB7Zu3UqjRo1KXKdp06YUFhby22+/0bFjR8DVAnXm3ZPr1q3D6XTyyiuvYLG4un9/9tlnHtvx9fXF4XCct8YuXboQExPDrFmzmD9/PnfccQc+Pj4AtGjRArvdzoEDB+jevXvZDr4aU/gSERH5nb8/9O/vuqvx7M72Z7LZXMtVVKtXkdatWzN06FAmTZrknvbkk09y7bXXMmrUKB588EECAwPZunUrixYt4s0336RZs2b07NmThx9+mMmTJ+Pj48Of//xn/P393WOFNWrUiIKCAt544w369evHqlWreOesWzjj4uLIzMzkhx9+oG3btgQEBJTaInb33XfzzjvvsHPnTpYuXeqeHhwczBNPPMHYsWNxOp1cf/31pKWlsWrVKkJCQhg2bFgFnLXLn+52FBEROcO4cXC+Bh+HA8aO9U49zz33HM4zmuLatGnD8uXL2blzJ127dqV9+/Y8/fTT1KlTx73M9OnTqVWrFt26dWPgwIE89NBDBAcH4+fnB0Dbtm159dVXefHFF2nVqhWffPJJsaEtunTpwiOPPMLgwYOJioripZdeKrXGoUOHsnXrVurWrct1113nMe/555/nH//4BxMmTKB58+b07t2bb7/9lvj4+PI4PVWSYZqm6c0dpqenExoaSlpaGiEV3V4rIiLVVmnfJ7m5uSQmJhIfH+8OG2X1zjuu4SSsVs8WMJvNFbzefhseeeRSj8B7Dh48SExMDIsXL+amm26q7HKqpbJ87tTyJSIicpZHHoEff3RdWvy9SxQWi+v9jz9e/sFryZIlzJ07l8TERH766Sfuuusu4uLi6NatW2WXJqjPl4iISImuu871yslx3dUYElLxfbzKS0FBAX/729/Yu3cvwcHBdOnShU8++cTdEV4ql8KXiIjIOfj7V53QVaRXr1706tWrssuQUuiyo4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgX6W5HERERYH/6frIKssq8XqBPILEhsRVQkVRXCl8iInLF25++n9u+uu2i1583cJ4CmFwwXXYUEZEr3sW0eJXn+mf7+eefsVqt9O3bt1y3e6H27duHYRgkJCRUyv6rO4UvERGRy8z777/Pn/70J1asWMHhw4cruxwpZwpfIiIil5HMzExmzZrFo48+St++fZk2bZrH/Llz59K4cWP8/Py44YYb+PDDDzEMg1OnTrmXWblyJV27dsXf35+YmBhGjx5NVtbp1rm4uDheeOEF7r//foKDg6lfvz7vvvuue358fDwA7du3xzAMevToUZGHfMVR+BIREbmMfPbZZzRr1oymTZtyzz338MEHH2CaJgCJiYncfvvtDBgwgA0bNvDHP/6R//u///NYf8+ePfTu3ZtBgwaxceNGZs2axcqVKxk1apTHcq+88gqdOnXit99+47HHHuPRRx9lx44dAKxevRqAxYsXc+TIEb788ksvHPmVQ+FLRETkMvL+++9zzz33ANC7d2/S0tJYvnw5AFOmTKFp06a8/PLLNG3alLvuuovhw4d7rD9hwgSGDh3KmDFjaNy4MV26dGHSpElMnz6d3Nxc93K33norjz32GI0aNeLJJ5+kRo0aLF26FICoqCgAIiMjiY6OJiIiwgtHfuVQ+BIREblM7Nixg9WrVzNkyBAAbDYbgwcP5v3333fPv+qqqzzWufrqqz3eb9iwgWnTphEUFOR+9erVC6fTSWJionu5Nm3auP/bMAyio6NJTk6uqEOTM2ioCRERkcvE+++/T2FhIXXq1HFPM00Tu93Om2++eUHbyMzM5I9//COjR48uNq9+/fru//bx8fGYZxgGTqfzIiuXslD4EhERuQwUFhYyffp0XnnlFW655RaPeQMGDODTTz+ladOmfPfddx7z1qxZ4/G+Q4cObN26lUaNGl10Lb6+vgA4HI6L3oaUTuFLRETkMjBv3jxSU1N54IEHCA0N9Zg3aNAg3n//fT777DNeffVVnnzySR544AESEhLcd0MahgHAk08+ybXXXsuoUaN48MEHCQwMZOvWrSxatOiCW89q1qyJv78/CxYsoF69evj5+RWrSS6e+nyJiIhcBt5//3169uxZYsgZNGgQa9euJSMjgy+++IIvv/ySNm3aMHnyZPfdjna7HXD15Vq+fDk7d+6ka9eutG/fnqefftrjUub52Gw2Jk2axJQpU6hTpw79+/cvn4MUAAyz6P5VL0lPTyc0NJS0tDRCQkK8uWsREalGSvs+yc3NJTExkfj4ePz8/C5oW1tPbmXwvMEXXcus22bRIrLFRa9/Kf7973/zzjvvkJSUVCn7F5eyfO502VFERKQKefvtt7nqqquIjIxk1apVvPzyy8XG8JLLm8KXiIhIFbJr1y7+9a9/kZKSQv369fnzn//M+PHjK7ssKQOFLxERueIF+gRW6vpl8dprr/Haa695bX9S/hS+RETkihcbEsu8gfPIKsg6/8JnCfQJJDYktgKqkupK4UtERAQUoMRrNNSEiIiIiBcpfImIiIh4kS47ioiIlMI0TXILnOQ7nPhaLfj5WNwjyYtcLIUvERGRs+QWONh6JJ01iSnsP5mFw2litRjERgZyVXwELWqH4OdjrewypYpS+BIRETnDvhNZzFqbxP6TWRgYhAf44OtrpdDhZOPBNDYcPEVsZCCDO8UQV8N7Q0xUBT169KBdu3a8/vrrlV3KZU19vkRERH6370QWU1clsv9EFrERgTSqGURkkJ1Qfx8ig+w0qhlEbEQg+39fbt+Jsg9NcS7Dhw/HMAwMw8DHx4f4+Hj++te/kpubW677qari4uKqRbBT+BIREcF1qXHW2iSOZ+TRqGYQvraSvyJ9bRYa1QzieEYes9YmkVvgKNc6evfuzZEjR9i7dy+vvfYaU6ZM4ZlnninXfVwK0zQpLCys7DKqNIUvERERYOuRdPafzCI2MvC8neoNw9X/a//JLLYdSS/XOux2O9HR0cTExDBgwAB69uzJokWL3POdTicTJkwgPj4ef39/2rZtyxdffOGe36lTJ/7zn/+43w8YMAAfHx8yMzMBOHjwIIZhsHv3bgA++ugjOnXqRHBwMNHR0dx9990kJye711+2bBmGYTB//nw6duyI3W5n5cqVZGVlcd999xEUFETt2rV55ZVXzntsGzZs4IYbbiA4OJiQkBA6duzI2rVr3fNXrlxJ165d8ff3JyYmhtGjR5OV5Wpd7NGjB/v372fs2LHu1sGqSuFLRESueKZpsiYxBQOj1Bavs/naLBgYrE5MwTTNCqlr8+bN/PTTT/j6+rqnTZgwgenTp/POO++wZcsWxo4dyz333MPy5csB6N69O8uWLQNcx/Xjjz8SFhbGypUrAVi+fDl169alUaNGABQUFPD888+zYcMGvv76a/bt28fw4cOL1fLUU08xceJEtm3bRps2bfjLX/7C8uXLmTNnDt9//z3Lli1j/fr15zyeoUOHUq9ePdasWcO6det46qmn8PHxAWDPnj307t2bQYMGsXHjRmbNmsXKlSvdDw3/8ssvqVevHs899xxHjhzhyJEjl3RuK5M63IuIyBUvt8DJ/pNZhAf4lGm98AAf9p/MIrfAib9v+dz9OG/ePIKCgigsLCQvLw+LxcKbb74JQF5eHi+88AKLFy+mc+fOADRo0ICVK1cyZcoUunfvTo8ePXj//fdxOBxs3rwZX19fBg8ezLJly+jduzfLli2je/fu7v3df//97v9u0KABkyZN4qqrriIzM5OgoCD3vOeee46bb74ZgMzMTN5//30+/vhjbrrpJgA+/PBD6tWrd85jO3DgAH/5y19o1qwZAI0bN3bPmzBhAkOHDmXMmDHueZMmTaJ79+5MnjyZiIgIrFaru4WuKlPLl4iIXPHyHU4cThObtWxfi1aLgcNpku9wllstN9xwAwkJCfz6668MGzaMESNGMGjQIAB2795NdnY2N998M0FBQe7X9OnT2bNnDwBdu3YlIyOD3377jeXLl7sDWVFr2PLly+nRo4d7f+vWraNfv37Ur1+f4OBgdzA7cOCAR12dOnVy//eePXvIz8/nmmuucU+LiIigadOm5zy2cePG8eCDD9KzZ08mTpzorhlclySnTZvmcVy9evXC6XSSmJhY9hN5GVPLl4iIXPF8rRasFoPCMoaoovG/fMsY2s4lMDDQfUnwgw8+oG3btrz//vs88MAD7n5b3377LXXr1vVYz263AxAWFkbbtm1ZtmwZP//8MzfffDPdunVj8ODB7Ny5k127drkDVlZWFr169aJXr1588sknREVFceDAAXr16kV+fn6xui7VP//5T+6++26+/fZb5s+fzzPPPMPMmTMZOHAgmZmZ/PGPf2T06NHF1qtfv/4l7/tyopYvERG54vn5WIiNDCQ1u6BM66VmFxAbGYifT8V8nVosFv72t7/x97//nZycHFq0aIHdbufAgQM0atTI4xUTE+Ner3v37ixdupQVK1bQo0cPIiIiaN68Of/+97+pXbs2TZo0AWD79u2cPHmSiRMn0rVrV5o1a+bR2b40DRs2xMfHh19//dU9LTU1lZ07d5533SZNmjB27Fi+//57/vCHPzB16lQAOnTowNatW4sdV6NGjdx93nx9fXE4yvfu0sqg8CUiIlc8wzC4Kj4CE5P8wgtr/covdGJicnV8RIXeeXfHHXdgtVp56623CA4O5oknnmDs2LF8+OGH7Nmzh/Xr1/PGG2/w4Ycfutfp0aMH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YRju90UtVP/73/88Hga9YMECrr/+esLCwoiMjOS2225jz549HjUePHiQIUOGEBERQWBgIJ06deLXX39l2rRpPPvss2zYsMHdgldU84EDB+jfvz9BQUGEhIRw5513cuzYMfc2S6vnbH/72994/vnn6dKlCw0bNuTxxx+nd+/efPnll6We09TUVIYOHUpUVBT+/v40btyYqVOnuucnJSVx5513EhYWRkREBP3792ffvn3uuj788EPmzJnjPqZly5ad60d4XurzJSIiVzzTNFl/bL3rcl8pLV5n87X6ggHrjq2jdY3WFXoX5I033kjbtm358ssvefDBB4vNnzRpEnPnzuWzzz6jfv36JCUlkZSUBMCaNWuoWbMmU6dOpXfv3litp5+gsXv3bmbPns2XX37pnp6VlcW4ceNo06YNmZmZPP300wwcOJCEhAQsFguZmZl0796dunXrMnfuXKKjo1m/fj1Op5PBgwezefNmFixYwOLFiwEIDQ3F6XS6g9fy5cspLCxk5MiRDB482CPIlFTPhUhLS6N58+alzv/HP/7B1q1bmT9/PjVq1GD37t3k5OQAUFBQQK9evejcuTM//vgjNpuNf/3rX/Tu3ZuNGzfyxBNPsG3bNtLT092BLSIi4oJrK4nCl4iIXPFyHbkkZSQRZg8r03rh9nCSMpLIdeTib/OvmOJ+16xZMzZu3FjivAMHDtC4cWOuv/56DMMgNjbWPS8qKgqAsLAwoqOjPdbLz89n+vTp7mUABg0a5LHMBx98QFRUFFu3bqVVq1bMmDGD48ePs2bNGncIadSokXv5oKAgbDabx74WLVrEpk2bSExMJCYmBoDp06fTsmVL1qxZw1VXXVVqPefz2WefsWbNGqZMmVLqMgcOHKB9+/Z06tQJON0aCDBr1iycTif/+9//3AF66tSphIWFsWzZMm655Rb8/f3Jy8srdv4uli47iojIFa/AWYDD6cBmlK1NwmpYcTgdFDgLKqiy00zTLLV1bfjw4SQkJNC0aVNGjx7N999/f0HbjI2NLRZ0du3axZAhQ2jQoAEhISHuoHLggOvmgoSEBNq3b1+m1p9t27YRExPjDl4ALVq0ICwsjG3btp2znnNZunQpI0aM4L333qNly5alLvfoo48yc+ZM2rVrx1//+ld++ukn97wNGzawe/dugoODCQoKIigoiIiICHJzc4tdbi0v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IoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIltlFyDVg2manMou4HhmHjn5DiyGQViAD1HBdvx8rJVdnlwpHAWQeQyyToDpAKsdgmpBQCRY9LemiFweFL7kkuTkO9h48BSrE1NISs0mK8+Bw3QCBn42CyF+PrSJCaVD/XDiawRiGEZllyzVUdpBSFoDSb9CTioUZLumGxbwDYLgaIi7Dup2BL/Qyq1VRK54hmmapjd3mJ6eTmhoKGlpaYSEhHhz11LOdidnMDfhMLuSM7FZDSICfAm02/CxWjBNk5wCBxm5haRmFxBkt3J94yhublGLILsyv5STwjzYvRh2LICcFPALB/9Q8AlwBS9nIeRnQnYKFOZAWBy0Ggh1OoD+EKjy9H0iVZXCl1yUX/eeZPb6g2TmFRIbEYiv7dyXdFKy8knOyKVlnVDuuTaWiEBfL1Uq1VZ+Fqz7EA78BP4REBR97kDlLITUfa5Q1nIANL1VAayK0/eJVFXqBCFltvHgKT5bm4TDadIoKui8wQsgItCXBjWC2HwojU9+2U9OvsMLlUq15SiE3z6G/asgLB6Ca58/SFlsENnIdRly0xewd6l3ahUROYvCl5TJqex85iYcpsDhpF54QIl9uPLzDDJSreTnec7ztVloEBXI5sPpLNl+zFslS3W0fxXs/8l1GdE3oPj8vAJIyXD9e7agmq7LklvnwqkDFV6qiMjZ1PlGymTlrhMcSMmmSa3gYvP2bvZj+exwNv8chOk0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//tfpkyZUsmVXf7WrVtHcnIyHTp0cE9zOBysWLGCN998k7y8PKxWayVWKFI9qM8Xrl/WHTt25IcffnBPczqd/PDDD+orIl5jmiajRo3iq6++YsmSJcTHx1d2SdWC0+kkLy+vssuoEm666SY2bdpEQkKC+9WpUyeGDh1KQkKCgpdIOVHL1+/GjRvHsGHD6NSpE1dffTWvv/46WVlZjBgxorJLqzIyMzPZvXu3+31iYiIJCQlERERQv379Sqysahg5ciQzZsxgzpw5BAcHc/ToUQBCQ0Px9/ev5OqqhvHjx9OnTx/q169PRkYGM2bMYNmyZSxcuLCyS6sSgoODi/UxDAwMJDIyUn0PRcqRwtfvBg8ezPHjx3n66ac5evQo7dq1Y8GCBcU64Uvp1q5dyw033OB+P27cOACGDRvGtGnTKqmqqmPy5MkA9OjRw2P61KlTGT58uPcLqoKSk5O57777OHLkCKGhobRp04aFCxdy8803V3ZpIiJuGudLRERExIvU50tERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLzo/wPiM1ap7FVpyQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=10\n", + "[Array([[9]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", + "[0.01075269 0.01075269 0.01075269 0.01075269 0.01075269]\n", + "[[0 0 0 0]]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB24klEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQiooCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIEXBQjN0pAUIEAiQ3pOZ8/tjzMCQBAgkExLu13XNBTn1cw5D5p7nPOc5hmmaJiIiIiLiFZbqLkBERETkUqLwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJV7zz3/+E8MwPKbFxcUxevRor9Yxa9YsDMNg3759Xt2vnBv9+4hIbafwVc0SExMZP348LVq0ICAggICAANq0acO4cePYtGlTdZd3Sdq3bx+GYZzTq7yAEBcXh2EY9O3bt8z5b731lnsb69atq8KjOT9nOwdTp06t7hIvKXPmzOHll1+u7jJEpJLYqruAS9mCBQsYPnw4NpuNkSNH0rFjRywWCzt27OCzzz5j+vTpJCYmEhsbW92lVpnffvsNi+Xi+g4QFRXFe++95zHthRde4ODBg7z00kulli2Pn58fy5cv58iRI0RHR3vM++CDD/Dz8yM/P7/yCq8CI0aM4MYbbyw1vXPnzlW2zzvvvJPbbrsNu91eZfuoaebMmcOWLVt4+OGHq7sUEakECl/VZM+ePdx2223Exsby3XffUb9+fY/5zz77LK+//vpFF0xOlZOTQ2Bg4AVt42L8gA0MDOSOO+7wmPbRRx+RlpZWavqZXHXVVaxdu5a5c+fy0EMPuacfPHiQH374gaFDhzJv3rxKq7sqdOnSpULHXBmsVitWq/WMy5imSX5+Pv7+/l6qSkSk8ly8n+y13HPPPUdOTg4zZ84sFbwAbDYbEyZMICYmxmP6jh07uPnmm4mIiMDPz49u3brx5ZdfeixT0mdm9erVTJo0iaioKAIDAxk6dCjHjh0rta+FCxfSs2dPAgMDCQ4OZuDAgWzdutVjmdGjRxMUFMSePXu48cYbCQ4OZuTIkQD88MMP3HLLLTRu3Bi73U5MTAwTJ04kLy/vrOfh9D5f53qJ71zOA8DWrVu59tpr8ff3p1GjRvzrX//C6XSeta7K4Ofnxx/+8AfmzJnjMf3DDz8kPDycfv36lVpn06ZNjB49miZNmuDn50d0dDR33303J06ccC9ztkuCp/rll1/o378/oaGhBAQE0Lt3b1avXl2pxxkXF8dNN93EqlWruPzyy/Hz86NJkybMnj3bvcy6deswDIN333231PqLFy/GMAwWLFgAlN3nq2Qfixcvplu3bvj7+zNjxgwA9u7dyy233EJERAQBAQFceeWVfP311x77WLFiBYZh8PHHH/Pvf/+bRo0a4efnx3XXXcfu3bs9lu3Tpw/t2rVj06ZN9O7dm4CAAJo1a8ann34KwMqVK7niiivw9/enZcuWLF26tNQxHTp0iLvvvpt69epht9tp27Yt77zzznnV1KdPH77++mv279/v/jeOi4s7h38ZEblYqeWrmixYsIBmzZpxxRVXnPM6W7du5aqrrqJhw4Y89thjBAYG8vHHHzNkyBDmzZvH0KFDPZb/05/+RHh4OE888QT79u3j5ZdfZvz48cydO9e9zHvvvceoUaPo168fzz77LLm5uUyfPp2rr76aX3/91eOXfHFxMf369ePqq6/mP//5DwEBAQB88skn5Obm8sADDxAZGcmaNWt45ZVXOHjwIJ988kmFzsvpl/sA/v73v5OSkkJQUFCFzsORI0e45pprKC4udi/35ptverW15Pbbb+eGG25gz549NG3aFHBdQrr55pvx8fEptfySJUvYu3cvY8aMITo6mq1bt/Lmm2+ydetWfv75ZwzDKPOyaFFRERMnTsTX19c9bdmyZQwYMICuXbvyxBNPYLFYmDlzJtdeey0//PADl19++Vnrz83N5fjx46Wmh4WFYbOd/PWxe/dubr75ZsaOHcuoUaN45513GD16NF27dqVt27Z069aNJk2a8PHHHzNq1CiPbc2dO7fcMHqq3377jREjRvDHP/6Re++9l5YtW3L06FF69OhBbm4uEyZMIDIyknfffZf/+7//49NPPy31f2Lq1KlYLBYeeeQRMjIyeO655xg5ciS//PKLx3JpaWncdNNN3Hbbbdxyyy1Mnz6d2267jQ8++ICHH36Y+++/n9tvv53nn3+em2++maSkJIKDgwE4evQoV155JYZhMH78eKKioli4cCFjx44lMzOz1KXDs9X0//7f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ZVHLl4iIXPJ8LD5YLVaKzeKzL3wKh+ka/8vHcm6XKi/E9u3biY+PL3Nely5dSExMZOHChSxdupRbb72Vvn378umnn55xm4GBgaWmDRo0iNjYWN566y0aNGiA0+mkXbt27g7w/v5V18JXVj3lWblyJYMGDeKll17irrvuOuOyAwYMYP/+/XzzzTcsWbKE6667jnHjxvGf//yH7OxsunbtWuYdkxUJghWhli8REbnk+Vn9iAmOIb0gvULrpRWkERMcg5+17M7hlWXZsmVs3ry51CXBU4WEhDB8+HDeeust5s6dy7x580hNTQXAx8cHh8Nx1v2cOHGC3377jb///e9cd911tG7dmrS0NI9lOnToQEJCgnvbp/P19S21r9atW3v0QwPYtm0b6enptGnT5qx1nW7FihUMHDiQZ599lvvuu++c1omKimLUqFG8//77vPzyy7z55puAK7ju2rWLunXr0qxZM49XaGhoucd0IRS+RETkkmcYBl3qdcE0TYoc53YJsdBRCCZ0rde1UjvbFxQUcOTIEQ4dOsSGDRt45plnGDx4MDfddFO5LTwvvvgiH374ITt27GDnzp188sknREdHExYWBrj6OH333XccOXKkVJg6VXh4OJGRkbz55pvs3r2bZcuWMWnSJI9lRowYQXR0NEOGDGH16tXs3buXefPm8dNPP7n3lZiYSEJCAsePH6egoIC+ffvSvn17Ro4cyYYNG1izZg133XUXvXv3dvfDOlfLly9n4MCBTJgwgWHDhnHkyBGOHDlSbhgEePzxx5k/fz67d+9m69atLFiwwN1Bf+TIkdSpU4fBgwfzww8/kJiYyIoVK5gwYQIHDx50H9OmTZv47bffOH78OEVFF3aZWeFLREQEaBXRipjgGPZn7cc0zTMua5omB7IOEBMcQ8uIlpVax6JFi6hfvz5xcXH079+f5cuXM23aNObPn1/uHYDBwcE899xzdOvWjcsuu4x9+/bxzTffYLG4PuZfeOEFlixZQkxMDJ07dy533xaLhY8++oj169fTrl07Jk6cyPPPP++xjK+vL99++y1169blxhtvpH379kydOtVd27Bhw+jfvz/XXHMNUVFRfPjhhxiGwfz58wkPD6dXr1707duXJk2aMHfu3Aqfn3fffZfc3FymTJlC/fr13a8//OEP5a7j6+vL5MmT6dChA7169cJqtfLRRx8BEBAQwPfff0/jxo35wx/+QOvWrRk7diz5+fmEhIQAcO+999KyZUu6detGVFQUq1evrnDdpzLMs73DKllmZiahoaFkZGS4D0pERKSiyvs8yc/PJzEx8YxjRZWnZIT743nHaRzc2DWcxGkKHYUcyDpAHf863Nn6TmJCYsrYklxqKvK+U4d7ERGR3zUOacwdre9wP9sRwzWchNWw4jAdpBWkgQmNgxszrPkwBS85LwpfIiIip2gc0pgHOj3Ab6m/sf7oepKykihyFGG1WGkX2Y6u9brSMqIldmvlPdpHLi0KXyIiIqexW+10iOpA+zrtyXfkU+Qswsfig5/Vr0pHspdLg8KXiIhIOQzDwN/mjz9VO3q9XFp0t6OIiNRKXr6fTC5xFXm/KXyJiEit4uPjGm0+Nze3miuRS0nJ+63k/XcmuuwoIiK1itVqJSwsjJSUFMA1jpP6aUlVMU2T3NxcUlJSCAsLK3cstlMpfImISK0THR0N4A5gIlUtLCzM/b47G4UvERGpdQzDoH79+tStW/eCHwUjcjY+Pj7n1OJVQuFLRERqLavVWqEPRRFvUId7ERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIlt1F3AxySkoJrugGAMI8rMR4KvTIyKXoKJ8yE8H0wTfALCHgGFUd1UitcYlny5SsvLZlJTBlsMZHM3Mp7DYCYCvzUK9ED/aNwylQ6MwooLt1VypiEgVykuDw7+6XhkHXQEME6y+EFgH6rWHRl0hNEZBTOQCGaZpmt7cYWZmJqGhoWRkZBASEuLNXXvIL3KwfEcKK3ceIzWnkABfK0F2G3YfKwAFRQ6yC4rJK3IQHuDLNS2j6N2yLn6/zxcRqRUcxbDve9jxNWQdBZvd1dLl4w8Y4CiAgmwozHJNj7saWt8EfqHVXflF83kiUlGXZMvXiewC5vxygC2H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abpau7KSXcu3GQyt/w9sZ/7iKiJlu+QuO54qKTWXZTtS2Ho4g8z8YgzAx2rBxKS42MQEQvxttGsYyrWt6tIoPKBa6xURqRLZx2DXt5C0xnUHI7jGAjMMcBQBpmt4iqjW0OIGqNu6WsstcTF9nohUxCUdvkocycgn8XgORzLySM0pBAMiA+3UC/GjSVQg9UI0pISIXAJyU+HYb64WruyjrtHw/cIgpAGEx7leF1HL/8X4eSJyLi65y45liQ71IzpUAUtELnEBERDbvbqrEKn1LrkO9yIiIiLVSeFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts1V2A1A6maZKeW8Sx7ALyCh1YDIOwAB+igu34+Viruzy5VDiKIPso5BwH0wFWOwTVg4BIsOi7pohcHBS+5ILkFTrYdDCdNYmpJKXlklPgwGE6AQM/m4UQPx86xITSpXE48XUCMQyjukuW2ijjICSthaRfIC8NinJd0w0L+AZBcDTEXQUNu4JfaPXWKiKXPMM0TdObO8zMzCQ0NJSMjAxCQkK8uWupZLtTsvgy4TC7UrKxWQ0iAnwJtNvwsVowTZO8IgdZ+cWk5RYRZLdydfMorm9TjyC7Mr9UkuIC2L0UflsEeangFw7+oeAT4ApezmIozIbcVCjOg7A4aDcUGnQB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43O24QBEKsrphORfYd9q16XIgmxODpxquFq3/MOg0eUQdxWEx1VfrVKp9HkiNZXCl1SKnIJiDqfnkZJVQF6hA4sFQv19qRdip0Gov/p3SdUruayYlQw5J8B0uAZkDarnGhtMg6nWOvo8kZqqyp/tKJeGQLuN5vWCaV4v+OwLi1QFw4CQBq6XiMhFTNeARERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2zVXYDUDln5RRxMy+NYVgF5RQ4shkFYgA/1gv1oGO6P1WJUd4lS25kmZB6CzGTIPQ5OB9jsEFQXQmMgIKK6KxQRARS+5AIdycjnp70nWL8/lbScQhyma7oBmIC/j4XGEYFc0SSCbrER+NrU2CqVzOmAQxtg3w9wfCcU5njONwzwC4OGXSHuaohsWi1lioiUUPiS8+J0mvy45wQLtyRzLKuAiEBf4iIDsVlPhivTNMktdJB4PIddKVkkJKUzuFNDGob5V2PlUqvknIAtn8KBn10/B9WD0MauwFXC6YC8VNi9BJLWQMv+0Lwf2Hyrp2YRueQpfEmFOZwmCzYdZsm2o/jZrLSKDsYwSl9WNAyDQLuNeLuN/CIHm5IyOJZVwF3d44ivE1gNlUutknUEfnkTju2A8DiwB5e9nMUKgVEQUAeyj8KmjyHr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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=11\n", + "[Array([[8]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32)]\n", + "[0.03703704 0.03703704 0.03703704 0.03703704 0.03703704]\n", + "[[2 0 0 0]]\n" + ] + }, + { + "data": { + "image/png": "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emvXrk2vXr2YOnUqycnJJZYvbQiJs+nTpw8hISE899xzFBUVndc2T3xrP7Ve0zT53//+V+56AKZNm8bUqVN54403Sg2l5TkPN910E7/88gurV6/2mP/xxx+fV22na9WqFb1793a/OnfuXOay9957L0899RQvvfRSmcuUdi6BUkc2f/rpp1m4cCGffPJJqZfjOnfuTOPGjfnvf/9b6uXt83m/VISWLVvStm1bZs+ezezZs6lbty49evQ47+3ddNNNrF69mp9//tk9LScnh7fffpu4uLgSfdMqm9VqZfDgwcyZM6fUlu3zPe+BgYHnfQlfRC4+avmqIk2bNmXmzJkMHTqU5s2bu0e4N02TxMREZs6cicVi8ehj9cYbb3D11VfTtm1b7rvvPho1asSRI0f4+eefOXDgABs2bChXDSEhIUyZMoW77rqLTp06cfvttxMVFcX+/fv59ttvueqqq3j99dfPuI0WLVrQuHFjHnvsMQ4ePEhISAhz5sw5r/4qx44d46GHHqJVq1bY7XY++ugjj/mDBg0iMDDwnM/D3/72Nz788EP69u3LI4884h5qIjY21uuPboqNjeVf//rXGZcJCQmhR48evPDCCxQVFVG/fn2+//57EhMTPZbbtGkTzz77LD169CAlJaXEebrzzjuxWCy8++673HjjjbRu3ZqRI0dSv359Dh48yNKlSwkJCeGbb745a93r168vsX1wtax17dr17AdeiiFDhvDkk0/i5+fHqFGjLmgg4SeeeIJPPvmEG2+8kbFjxxIREcEHH3xAYmIic+bMqZJBiidNmsTSpUu54ooruO+++2jVqhWpqamsX7+exYsXk5qaWu5tdu7cmdmzZzN+/Hguu+wygoKC6N+/fyVULyLeoPBVhQYMGMCmTZt46aWX+P7773n//fcxDIPY2Fj69evHAw88QPv27d3Lt2rVirVr1/L0008zffp0jh8/Tu3atenYsaPHZaryuOOOO6hXrx6TJk3ixRdfpKCggPr169O9e3dGjhx51vV9fHz45ptvGDt2LBMnTsTPz49BgwYxZswYj9rPRXZ2Nvn5+WzdutV9d+OpEhMTCQwMPOfzULduXZYuXcrDDz/MpEmTiIyM5IEHHqBevXruDt8Xm5kzZ/Lwww/zxhtvYJomN9xwA/Pnz6devXruZY4fP45pmixfvpzly5eX2MaJS6G9evXi559/5tlnn+X1118nOzub6OhorrjiCv785z+fUz2ffPKJ+07NUw0fPvyCwtc//vEPcnNzz+kuxzOpU6cOP/30E48//jivvfYa+fn5tGvXjm+++YZ+/fpd0LYvpKbVq1fzzDPP8MUXX/Dmm28SGRlJ69atef75589rmw899BAJCQlMmzaNV155hdjYWIUvkWrMMNWrU0RERMRr1OdLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yOvjfDmdTg4dOkRwcLAemSEiIufNNE2ysrKoV69elQyoK3K+vB6+Dh06RExMjLd3KyIiNVRSUpLH00BELnZeD1/BwcGA63+WkJAQb+9eRERqiMzMTGJiYtyfKyLVhdfD14lLjSEhIQpfIiJywdSFRaobXSQXERER8SKFLxEREREvUvgSERER8SKv9/kSERHxFofDQVFRUVWXITWcj48PVqv1nJdX+BIRkRrHNE0OHz5Menp6VZcil4iwsDCio6PP6QYQhS8REalxTgSv2rVrExAQoDsipdKYpklubi4pKSkA1K1b96zrKHyJiEiN4nA43MErMjKyqsuRS4C/vz8AKSkp1K5d+6yXINXhXkREapQTfbwCAgKquBK5lJx4v51LH0OFLxERqZF0qVG8qTzvN4UvERERES9S+BIRERHxIoUvERGR0xQWFl7Q/At1+PBhHn74YRo1aoTdbicmJob+/fvzww8/VOp+xTsUvkRERE4xe/Zs2rZtS1JSUqnzk5KSaNu2LbNnz66U/e/du5fOnTuzZMkSXnzxRTZt2sSCBQu45pprGD16dKXsU7xL4UtEROQPhYWFPPnkk+zYsYNevXqVCGBJSUn06tWLHTt28OSTT1ZKC9hDDz2EYRisXr2awYMH06xZM1q3bs348eP55Zdf2Lt3L4ZhkJCQ4F4nPT0dwzBYtmyZe9rmzZu58cYbCQoKok6dOtx1110cO3aswuuV8lP4EhER+YOvry+LFy+mUaNG7NmzxyOAnQhee/bsoVGjRixevBhfX98K3X9qaioLFixg9OjRBAYGlpgfFhZ2TttJT0/n2muvpWPHjqxdu5YFCxZw5MgRbrvttgqtV86PwpeIiMgpYmJiWLZsmUcA++mnnzyC17Jly4iJianwfe/atQvTNGnRosUFbef111+nY8eOPPfcc7Ro0YKO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/P396du3r7tWgG+//Zb69et7rGe32895HzWNwpeIiMgfQkLAYjm3AGaxuJavTJMmTaJDhw40b97cPa1Tp05s3bqVJk2alLpO8+bNKS4u5rfffqNz586AqwXq1Lsn161bh9Pp5KWXXsJicXX//vTTTz224+vri8PhOGuN3bp1IyYmhtmzZzN//nxuvfVWfHx8AGjVqhV2u539+/fTs2fP8h18DabwJSIi8gd/fxgwwHVX4+md7U9ls7mWq6xWrxPatm3LsGHDmDx5snva448/zpVXXsmYMWO49957CQwMZOvWrSxatIjXX3+dFi1a0Lt3b+6//36mTJmCj48Pf/nLX/D393ePFdakSROKiop47bXX6N+/P6tWreKt027hjIuLIzs7mx9++IH27dsTEBBQZovYHXfcwVtvvcWOHTtYunSpe3pwcDCPPfYY48aNw+l0cvXVV5ORkcGqVasICQlh+PDhlXDWLn6621FEROQU48fD2Rp8HA4YN8479TzzzDM4T2mKa9euHcuXL2fHjh10796djh078uSTT1KvXj33MjNmzKBOnTr06NGDQYMGcd999xEcHIyfnx8A7du35+WXX+b555+nTZs2fPzxxyWGtujWrRsPPPAAQ4YMISoqihdeeKHMGocNG8bWrVupX78+V111lce8Z599ln/+859MnDiRli1b0rdvX7799lvi4+Mr4vRUS4ZpmqY3d5iZmUloaCgZGRmEVHZ7rYiI1FhlfZ7k5+eTmJhIfHy8O2yU11tvuYaTsFo9W8BsNlfwevNNeOCBCz0C7zlw4AAxMTEsXryY6667rqrLqZHK875Ty5eIiMhpHngAfvzRdWnxjy5RWCyun3/88eIPXkuWLOHrr78mMTGRn376idtvv524uDh69OhR1aUJ6vMlIiJSqquucr3y8lx3NYaEVH4fr4pSVFTE3//+d/bs2UNwcDDdunXj448/dneEl6ql8CUiInIG/v7VJ3Sd0KdPH/r06VPVZUgZdNlRRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIt0t6OIiAiwL3MfOUU55V4v0CeQ2JDYSqhIaiqFLxERueTty9zHzV/efN7rzxs0TwFMzpkuO4qIyCXvfFq8KnL90/38889YrVb69etXods9V3v37sUwDBISEqpk/zWdwpeIiMhF5r333uPhhx9mxYoVHDp0qKrLkQqm8CUiInIRyc7OZvbs2Tz44IP069eP6dOne8z/+uuvadq0KX5+flxzzTV88MEHGIZBenq6e5mVK1fSvXt3/P39iYmJYezYseTknGydi4uL47nnnuOee+4hODiYhg0b8vbbb7vnx8fHA9CxY0cMw6BXr16VeciXHIUvERGRi8inn35KixYtaN68OXfeeSfvv/8+pmkCkJiYyC233MLAgQPZsGEDf/7zn/m///s/j/V3795N3759GTx4MBs3bmT27NmsXLmSMWPGeCz30ksv0aVLF3777TceeughHnzwQX7//XcAVq9eDcDixYtJTk7miy++8MKRXzoUvkRERC4i7733HnfeeScAffv2JSMjg+XLlwMwdepUmjdvzosvvkjz5s25/fbbGTFihMf6EydOZNiwYTz66KM0bdqUbt26MXnyZGbMmEF+fr57uZtuuomHHnqIJk2a8Pjjj1OrVi2WLl0KQFRUFACRkZFER0cTERHhhSO/dCh8iYiIXCR+//13Vq9ezdChQwGw2WwMGTKE9957zz3/sssu81jn8ssv9/h5w4YNTJ8+naCgIPerT58+OJ1OEhMT3cu1a9fO/d+GYRAdHU1KSkplHZqcQkNNiIiIXCTee+89iouLqVevnnuaaZrY7XZef/31c9pGdnY2f/7znxk7dmyJeQ0bNnT/t4+Pj8c8wzBwOp3nWbmUh8KXiIjIRaC4uJgZM2bw0ksvccMNN3jMGzhwIJ988gnNmzfnu+++85i3Zs0aj587derE1q1badKkyXnX4uvrC4DD4TjvbUjZFL5EREQuAvPmzSMtLY1Ro0YRGhrqMW/w4MG89957fPrpp7z88ss8/vjjjBo1ioSEBPfdkIZhAPD4449z5ZVXMmbMGO69914CAwPZunUrixYtOufWs9q1a+Pv78+CBQto0KABfn5+JWqS86c+XyIiIheB9957j969e5cacgYPHszatWvJysri888/54svvqBdu3ZMmTLFfbej3W4HXH25li9fzo4dO+jevTsdO3bkySef9LiUeTY2m43JkyczdepU6tWrx4ABAyrmIAUAwzxx/6qXZGZmEhoaSkZGBiEhId7ctYiI1CBlfZ7k5+eTmJhIfHw8fn5+57Strce3MmTekPOuZfbNs2kV2eq8178Q//nPf3jrrbdISkqqkv2LS3ned7rsKCIi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LxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SJbVRcgNUNWfhEH0vI4mlVAXpEDi2EQFuBDnWA/6of7Y7UYVV2i1HSmCZkHITMZco+B0wE2OwTVhtAYCIio6gpFRACFL7lAhzPy+XnPcdbtSyUtpxCH6ZpuACbg72OhYUQgVzSKoEtsBL42NbZKBXM64OB62PsjHNsBhTme8w0D/MKgfmeIuxoiG1dJmSIiJyh8yXlxOk1+2n2c+ZuTOZpVQESgL3GRgdisJ8OVaZrkFjpIPJbDzpQsEpLSGdChPvXD/KuwcqlRco7D5s9h/y+un4PqQGhDV+A6wemAvFTYtQiSVkPzvtC0D9h8q6ZmEbnkKXxJuTmcJvM2HmLR1iP42ay0iA7GMEpeVjQMg0C7jXi7jfwiBxuTMjiaVcDdXeOIrxVYBZVLjZJ1GH59G45uh/A4sAeXvpzFCoFREFALso/Axk8h6wh0ust1WVJExMt0DUjK7cedR/l+yxEiAn2pH+5favA6nZ+Plaa1gziSkc/MX/dxPLvAC5VKjVWYC2unwfEdULtl2cHrVIYBwdGu/l97lsHmL139xEREvEzhS8rlQFouCzcfJtBuJTyg9Ms21oJ8AtKOYS3I95husRg0igpi//FcvtuUjNOpDz45TzsWwpHNENkULCUb8PMKbBxJDSCvoJTGfXuwK4TtWQKHN3mhWBERT+d12fGNN97gxRdf5PDhw7Rv357XXnuNyy+/vKJrk4vQih1HOZ5TSIvoki0N9TavpdOc6TT++QcsTidOi4XdXa9j/S0jOdS6MwBWi0G9cH/W7Uuja+NaNKkd5O1DkOouO8UVnAKjwOr5BWDlpga8/NnlzP2pKU6nBYvFyYBuO/nLbb9yVZuDJxcMiIScY64Q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RES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yObtHZqmCUBmZqa3dy0iIjXIic+RE58rItWF18NXVlYWADExMd7etYiI1EBZWVmEhoZWdRki58wwvfyVwel0cujQIYKDgzEMw5u7PieZmZnExMSQlJRESEhIVZdTLekcXjidwwuj83fhqsM5NE2TrKws6tWrh8WiXjRSfXi95ctisdCgQQNv77bcQkJCLto/ONWFzuGF0zm8MDp/F+5iP4dq8ZLqSF8VRERERLxI4UtERETEixS+TmO323nqqaew2+1VXUq1pXN44XQOL4zO34XTORSpPF7vcC8iIiJyKVPLl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHC1yneeOMN4uLi8PPz44orrmD16tVVXVK1smLFCvr370+9evUwDIOvvvqqqkuqViZOnMhll11GcHAwtWvXZuDAgfz+++9VXVa1MmXKFNq1a+ceGLRr167Mnz+/qsuqtiZNmoRhGDz66KNVXYpIjaLw9YfZs2czfvx4nnrqKdavX0/79u3p06cPKSkpVV1atZGTk0P79u154403qrqUamn58uWMHj2aX375hUWLFlFUVMQNN9xATk5OVZdWbTRo0IBJkyaxbt061q5dy7XXXsuAAQPYsmVLVZdW7axZs4apU6fSrl27qi5FpMbRUBN/uOKKK7jssst4/fXXAdczKGNiYnj44Yd54oknqri66scwDL788ksGDhxY1aVUW0ePHqV27dosX76cHj16VHU51VZERAQvvvgio0aNqupSqo3s7Gw6derEm2++yb///W86dOjAq6++WtVlidQYavkCCgsLWbduHb1793ZPs1gs9O7dm59//rkKK5NLWUZGBuAKD1J+DoeDWbNmkZOTQ9euXau6nGpl9OjR9OvXz+NvoohUHK8/WPtidOzYMRwOB3Xq1PGYXqdOHbZv315FVcmlzOl08uijj3LVVVfRpk2bqi6nWtm0aRNdu3YlPz+foKAgvvzyS1q1alXVZVUbs2bNYv369axZs6aqSxGpsRS+RC5Co0ePZvPmzaxcubKqS6l2mjdvTkJCAhkZGXz++ecMHz6c5cuXK4Cdg6SkJB555BEWLVqEn59fVZcjUmMpfAG1atXCarVy5MgRj+lHjhwhOjq6iqqSS9WYMWOYN28eK1asoEGDBlVdTrXj6+tLkyZNAOjcuTNr1qzhf//7H1OnTq3iyi5+69atIyUlhU6dOrmnORwOVqxYweuvv05BQQFWq7UKKxSpGdTnC9cf686dO/PDDz+4pzmdTn744Qf1FRGvMU2TMWPG8OWXX7JkyRLi4+OruqQawel0UlBQUNVlVAvXXXcdmzZtIiEhwf3q0qULw4YNIyEhQcFLpIKo5esP48ePZ/jw4XTp0oXLL7+cV199lZycHEaOHFnVpVUb2dnZ7Nq1y/1zYmIiCQkJRERE0LBhwyqsrHoYPXo0M2fOZO7cuQQHB3P48GEAQkND8ff3r+LqqocJEyZw44030rBhQ7Kyspg5cybLli1j4cKFVV1atRAcHFyij2FgYCCRkZHqeyhSgRS+/jBkyBCOHj3Kk08+yeHDh+nQoQMLFiwo0QlfyrZ27VquueYa98/jx48HYPjw4UyfPr2Kqqo+pkyZAkCvXr08pk+bNo0RI0Z4v6BqKCUlhbvvvpvk5GRCQ0Np164dCxcu5Prrr6/q0kRE3DTOl4iIiIgXqc+XiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh40f8HwVy3u0pRXqYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=12\n", + "[Array([[9]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", + "[0.00925926 0.00925926 0.00925926 0.00925926 0.00925926]\n", + "[[3 0 0 0]]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB24klEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQiooCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIEXBQjN0pAUIEAiQ3pOZ8/tjzMCQBAgkExLu13XNBTn1cw5D5p7nPOc5hmmaJiIiIiLiFZbqLkBERETkUqLwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJV7zz3/+E8MwPKbFxcUxevRor9Yxa9YsDMNg3759Xt2vnBv9+4hIbafwVc0SExMZP348LVq0ICAggICAANq0acO4cePYtGlTdZd3Sdq3bx+GYZzTq7yAEBcXh2EY9O3bt8z5b731lnsb69atq8KjOT9nOwdTp06t7hIvKXPmzOHll1+u7jJEpJLYqruAS9mCBQsYPnw4NpuNkSNH0rFjRywWCzt27OCzzz5j+vTpJCYmEhsbW92lVpnffvsNi+Xi+g4QFRXFe++95zHthRde4ODBg7z00kulli2Pn58fy5cv58iRI0RHR3vM++CDD/Dz8yM/P7/yCq8CI0aM4MYbbyw1vXPnzlW2zzvvvJPbbrsNu91eZfuoaebMmcOWLVt4+OGHq7sUEakECl/VZM+ePdx2223Exsby3XffUb9+fY/5zz77LK+//vpFF0xOlZOTQ2Bg4AVt42L8gA0MDOSOO+7wmPbRRx+RlpZWavqZXHXVVaxdu5a5c+fy0EMPuacfPHiQH374gaFDhzJv3rxKq7sqdOnSpULHXBmsVitWq/WMy5imSX5+Pv7+/l6qSkSk8ly8n+y13HPPPUdOTg4zZ84sFbwAbDYbEyZMICYmxmP6jh07uPnmm4mIiMDPz49u3brx5ZdfeixT0mdm9erVTJo0iaioKAIDAxk6dCjHjh0rta+FCxfSs2dPAgMDCQ4OZuDAgWzdutVjmdGjRxMUFMSePXu48cYbCQ4OZuTIkQD88MMP3HLLLTRu3Bi73U5MTAwTJ04kLy/vrOfh9D5f53qJ71zOA8DWrVu59tpr8ff3p1GjRvzrX//C6XSeta7K4Ofnxx/+8AfmzJnjMf3DDz8kPDycfv36lVpn06ZNjB49miZNmuDn50d0dDR33303J06ccC9ztkuCp/rll1/o378/oaGhBAQE0Lt3b1avXl2pxxkXF8dNN93EqlWruPzyy/Hz86NJkybMnj3bvcy6deswDIN333231PqLFy/GMAwWLFgAlN3nq2Qfixcvplu3bvj7+zNjxgwA9u7dyy233EJERAQBAQFceeWVfP311x77WLFiBYZh8PHHH/Pvf/+bRo0a4efnx3XXXcfu3bs9lu3Tpw/t2rVj06ZN9O7dm4CAAJo1a8ann34KwMqVK7niiivw9/enZcuWLF26tNQxHTp0iLvvvpt69epht9tp27Yt77zzznnV1KdPH77++mv279/v/jeOi4s7h38ZEblYqeWrmixYsIBmzZpxxRVXnPM6W7du5aqrrqJhw4Y89thjBAYG8vHHHzNkyBDmzZvH0KFDPZb/05/+RHh4OE888QT79u3j5ZdfZvz48cydO9e9zHvvvceoUaPo168fzz77LLm5uUyfPp2rr76aX3/91eOXfHFxMf369ePqq6/mP//5DwEBAQB88skn5Obm8sADDxAZGcmaNWt45ZVXOHjwIJ988kmFzsvpl/sA/v73v5OSkkJQUFCFzsORI0e45pprKC4udi/35ptverW15Pbbb+eGG25gz549NG3aFHBdQrr55pvx8fEptfySJUvYu3cvY8aMITo6mq1bt/Lmm2+ydetWfv75ZwzDKPOyaFFRERMnTsTX19c9bdmyZQwYMICuXbvyxBNPYLFYmDlzJtdeey0//PADl19++Vnrz83N5fjx46Wmh4WFYbOd/PWxe/dubr75ZsaOHcuoUaN45513GD16NF27dqVt27Z069aNJk2a8PHHHzNq1CiPbc2dO7fcMHqq3377jREjRvDHP/6Re++9l5YtW3L06FF69OhBbm4uEyZMIDIyknfffZf/+7//49NPPy31f2Lq1KlYLBYeeeQRMjIyeO655xg5ciS//PKLx3JpaWncdNNN3Hbbbdxyyy1Mnz6d2267jQ8++ICHH36Y+++/n9tvv53nn3+em2++maSkJIKDgwE4evQoV155JYZhMH78eKKioli4cCFjx44lMzOz1KXDs9X0//7f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ZVHLl4iIXPJ8LD5YLVaKzeKzL3wKh+ka/8vHcm6XKi/E9u3biY+PL3Nely5dSExMZOHChSxdupRbb72Vvn378umnn55xm4GBgaWmDRo0iNjYWN566y0aNGiA0+mkXbt27g7w/v5V18JXVj3lWblyJYMGDeKll17irrvuOuOyAwYMYP/+/XzzzTcsWbKE6667jnHjxvGf//yH7OxsunbtWuYdkxUJghWhli8REbnk+Vn9iAmOIb0gvULrpRWkERMcg5+17M7hlWXZsmVs3ry51CXBU4WEhDB8+HDeeust5s6dy7x580hNTQXAx8cHh8Nx1v2cOHGC3377jb///e9cd911tG7dmrS0NI9lOnToQEJCgnvbp/P19S21r9atW3v0QwPYtm0b6enptGnT5qx1nW7FihUMHDiQZ599lvvuu++c1omKimLUqFG8//77vPzyy7z55puAK7ju2rWLunXr0qxZM49XaGhoucd0IRS+RETkkmcYBl3qdcE0TYoc53YJsdBRCCZ0rde1UjvbFxQUcOTIEQ4dOsSGDRt45plnGDx4MDfddFO5LTwvvvgiH374ITt27GDnzp188sknREdHExYWBrj6OH333XccOXKkVJg6VXh4OJGRkbz55pvs3r2bZcuWMWnSJI9lRowYQXR0NEOGDGH16tXs3buXefPm8dNPP7n3lZiYSEJCAsePH6egoIC+ffvSvn17Ro4cyYYNG1izZg133XUXvXv3dvfDOlfLly9n4MCBTJgwgWHDhnHkyBGOHDlSbhgEePzxx5k/fz67d+9m69atLFiwwN1Bf+TIkdSpU4fBgwfzww8/kJiYyIoVK5gwYQIHDx50H9OmTZv47bffOH78OEVFF3aZWeFLREQEaBXRipjgGPZn7cc0zTMua5omB7IOEBMcQ8uIlpVax6JFi6hfvz5xcXH079+f5cuXM23aNObPn1/uHYDBwcE899xzdOvWjcsuu4x9+/bxzTffYLG4PuZfeOEFlixZQkxMDJ07dy533xaLhY8++oj169fTrl07Jk6cyPPPP++xjK+vL99++y1169blxhtvpH379kydOtVd27Bhw+jfvz/XXHMNUVFRfPjhhxiGwfz58wkPD6dXr1707duXJk2aMHfu3Aqfn3fffZfc3FymTJlC/fr13a8//OEP5a7j6+vL5MmT6dChA7169cJqtfLRRx8BEBAQwPfff0/jxo35wx/+QOvWrRk7diz5+fmEhIQAcO+999KyZUu6detGVFQUq1evrnDdpzLMs73DKllmZiahoaFkZGS4D0pERKSiyvs8yc/PJzEx8YxjRZWnZIT743nHaRzc2DWcxGkKHYUcyDpAHf863Nn6TmJCYsrYklxqKvK+U4d7ERGR3zUOacwdre9wP9sRwzWchNWw4jAdpBWkgQmNgxszrPkwBS85LwpfIiIip2gc0pgHOj3Ab6m/sf7oepKykihyFGG1WGkX2Y6u9brSMqIldmvlPdpHLi0KXyIiIqexW+10iOpA+zrtyXfkU+Qswsfig5/Vr0pHspdLg8KXiIhIOQzDwN/mjz9VO3q9XFp0t6OIiNRKXr6fTC5xFXm/KXyJiEit4uPjGm0+Nze3miuRS0nJ+63k/XcmuuwoIiK1itVqJSwsjJSUFMA1jpP6aUlVMU2T3NxcUlJSCAsLK3cstlMpfImISK0THR0N4A5gIlUtLCzM/b47G4UvERGpdQzDoH79+tStW/eCHwUjcjY+Pj7n1OJVQuFLRERqLavVWqEPRRFvUId7ERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIlt1F3AxySkoJrugGAMI8rMR4KvTIyKXoKJ8yE8H0wTfALCHgGFUd1UitcYlny5SsvLZlJTBlsMZHM3Mp7DYCYCvzUK9ED/aNwylQ6MwooLt1VypiEgVykuDw7+6XhkHXQEME6y+EFgH6rWHRl0hNEZBTOQCGaZpmt7cYWZmJqGhoWRkZBASEuLNXXvIL3KwfEcKK3ceIzWnkABfK0F2G3YfKwAFRQ6yC4rJK3IQHuDLNS2j6N2yLn6/zxcRqRUcxbDve9jxNWQdBZvd1dLl4w8Y4CiAgmwozHJNj7saWt8EfqHVXflF83kiUlGXZMvXiewC5vxygC2H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abpau7KSXcu3GQyt/w9sZ/7iKiJlu+QuO54qKTWXZTtS2Ho4g8z8YgzAx2rBxKS42MQEQvxttGsYyrWt6tIoPKBa6xURqRLZx2DXt5C0xnUHI7jGAjMMcBQBpmt4iqjW0OIGqNu6WsstcTF9nohUxCUdvkocycgn8XgORzLySM0pBAMiA+3UC/GjSVQg9UI0pISIXAJyU+HYb64WruyjrtHw/cIgpAGEx7leF1HL/8X4eSJyLi65y45liQ71IzpUAUtELnEBERDbvbqrEKn1LrkO9yIiIiLVSeFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts1V2A1A6maZKeW8Sx7ALyCh1YDIOwAB+igu34+Viruzy5VDiKIPso5BwH0wFWOwTVg4BIsOi7pohcHBS+5ILkFTrYdDCdNYmpJKXlklPgwGE6AQM/m4UQPx86xITSpXE48XUCMQyjukuW2ijjICSthaRfIC8NinJd0w0L+AZBcDTEXQUNu4JfaPXWKiKXPMM0TdObO8zMzCQ0NJSMjAxCQkK8uWupZLtTsvgy4TC7UrKxWQ0iAnwJtNvwsVowTZO8IgdZ+cWk5RYRZLdydfMorm9TjyC7Mr9UkuIC2L0UflsEeangFw7+oeAT4ApezmIozIbcVCjOg7A4aDcUGnQB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43O24QBEKsrphORfYd9q16XIgmxODpxquFq3/MOg0eUQdxWEx1VfrVKp9HkiNZXCl1SKnIJiDqfnkZJVQF6hA4sFQv19qRdip0Gov/p3SdUruayYlQw5J8B0uAZkDarnGhtMg6nWOvo8kZqqyp/tKJeGQLuN5vWCaV4v+OwLi1QFw4CQBq6XiMhFTNeARERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2zVXYDUDln5RRxMy+NYVgF5RQ4shkFYgA/1gv1oGO6P1WJUd4lS25kmZB6CzGTIPQ5OB9jsEFQXQmMgIKK6KxQRARS+5AIdycjnp70nWL8/lbScQhyma7oBmIC/j4XGEYFc0SSCbrER+NrU2CqVzOmAQxtg3w9wfCcU5njONwzwC4OGXSHuaohsWi1lioiUUPiS8+J0mvy45wQLtyRzLKuAiEBf4iIDsVlPhivTNMktdJB4PIddKVkkJKUzuFNDGob5V2PlUqvknIAtn8KBn10/B9WD0MauwFXC6YC8VNi9BJLWQMv+0Lwf2Hyrp2YRueQpfEmFOZwmCzYdZsm2o/jZrLSKDsYwSl9WNAyDQLuNeLuN/CIHm5IyOJZVwF3d44ivE1gNlUutknUEfnkTju2A8DiwB5e9nMUKgVEQUAeyj8KmjyHr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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=13\n", + "[Array([[8]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32)]\n", + "[0.03703704 0.03703704 0.03703704 0.03703704 0.03703704]\n", + "[[2 0 0 0]]\n" + ] + }, + { + "data": { + "image/png": "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emvXrk2vXr2YOnUqycnJJZYvbQiJs+nTpw8hISE899xzFBUVndc2T3xrP7Ve0zT53//+V+56AKZNm8bUqVN54403Sg2l5TkPN910E7/88gurV6/2mP/xxx+fV22na9WqFb1793a/OnfuXOay9957L0899RQvvfRSmcuUdi6BUkc2f/rpp1m4cCGffPJJqZfjOnfuTOPGjfnvf/9b6uXt83m/VISWLVvStm1bZs+ezezZs6lbty49evQ47+3ddNNNrF69mp9//tk9LScnh7fffpu4uLgSfdMqm9VqZfDgwcyZM6fUlu3zPe+BgYHnfQlfRC4+avmqIk2bNmXmzJkMHTqU5s2bu0e4N02TxMREZs6cicVi8ehj9cYbb3D11VfTtm1b7rvvPho1asSRI0f4+eefOXDgABs2bChXDSEhIUyZMoW77rqLTp06cfvttxMVFcX+/fv59ttvueqqq3j99dfPuI0WLVrQuHFjHnvsMQ4ePEhISAhz5sw5r/4qx44d46GHHqJVq1bY7XY++ugjj/mDBg0iMDDwnM/D3/72Nz788EP69u3LI4884h5qIjY21uuPboqNjeVf//rXGZcJCQmhR48evPDCCxQVFVG/fn2+//57EhMTPZbbtGkTzz77LD169CAlJaXEebrzzjuxWCy8++673HjjjbRu3ZqRI0dSv359Dh48yNKlSwkJCeGbb745a93r168vsX1wtax17dr17AdeiiFDhvDkk0/i5+fHqFGjLmgg4SeeeIJPPvmEG2+8kbFjxxIREcEHH3xAYmIic+bMqZJBiidNmsTSpUu54ooruO+++2jVqhWpqamsX7+exYsXk5qaWu5tdu7cmdmzZzN+/Hguu+wygoKC6N+/fyVULyLeoPBVhQYMGMCmTZt46aWX+P7773n//fcxDIPY2Fj69evHAw88QPv27d3Lt2rVirVr1/L0008zffp0jh8/Tu3atenYsaPHZaryuOOOO6hXrx6TJk3ixRdfpKCggPr169O9e3dGjhx51vV9fHz45ptvGDt2LBMnTsTPz49BgwYxZswYj9rPRXZ2Nvn5+WzdutV9d+OpEhMTCQwMPOfzULduXZYuXcrDDz/MpEmTiIyM5IEHHqBevXruDt8Xm5kzZ/Lwww/zxhtvYJomN9xwA/Pnz6devXruZY4fP45pmixfvpzly5eX2MaJS6G9evXi559/5tlnn+X1118nOzub6OhorrjiCv785z+fUz2ffPKJ+07NUw0fPvyCwtc//vEPcnNzz+kuxzOpU6cOP/30E48//jivvfYa+fn5tGvXjm+++YZ+/fpd0LYvpKbVq1fzzDPP8MUXX/Dmm28SGRlJ69atef75589rmw899BAJCQlMmzaNV155hdjYWIUvkWrMMNWrU0RERMRr1OdLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yOvjfDmdTg4dOkRwcLAemSEiIufNNE2ysrKoV69elQyoK3K+vB6+Dh06RExMjLd3KyIiNVRSUpLH00BELnZeD1/BwcGA63+WkJAQb+9eRERqiMzMTGJiYtyfKyLVhdfD14lLjSEhIQpfIiJywdSFRaobXSQXERER8SKFLxEREREvUvgSERER8SKv9/kSERHxFofDQVFRUVWXITWcj48PVqv1nJdX+BIRkRrHNE0OHz5Menp6VZcil4iwsDCio6PP6QYQhS8REalxTgSv2rVrExAQoDsipdKYpklubi4pKSkA1K1b96zrKHyJiEiN4nA43MErMjKyqsuRS4C/vz8AKSkp1K5d+6yXINXhXkREapQTfbwCAgKquBK5lJx4v51LH0OFLxERqZF0qVG8qTzvN4UvERERES9S+BIRERHxIoUvERGR0xQWFl7Q/At1+PBhHn74YRo1aoTdbicmJob+/fvzww8/VOp+xTsUvkRERE4xe/Zs2rZtS1JSUqnzk5KSaNu2LbNnz66U/e/du5fOnTuzZMkSXnzxRTZt2sSCBQu45pprGD16dKXsU7xL4UtEROQPhYWFPPnkk+zYsYNevXqVCGBJSUn06tWLHTt28OSTT1ZKC9hDDz2EYRisXr2awYMH06xZM1q3bs348eP55Zdf2Lt3L4ZhkJCQ4F4nPT0dwzBYtmyZe9rmzZu58cYbCQoKok6dOtx1110cO3aswuuV8lP4EhER+YOvry+LFy+mUaNG7NmzxyOAnQhee/bsoVGjRixevBhfX98K3X9qaioLFixg9OjRBAYGlpgfFhZ2TttJT0/n2muvpWPHjqxdu5YFCxZw5MgRbrvttgqtV86PwpeIiMgpYmJiWLZsmUcA++mnnzyC17Jly4iJianwfe/atQvTNGnRosUFbef111+nY8eOPPfcc7Ro0YKO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/P396du3r7tWgG+//Zb69et7rGe32895HzWNwpeIiMgfQkLAYjm3AGaxuJavTJMmTaJDhw40b97cPa1Tp05s3bqVJk2alLpO8+bNKS4u5rfffqNz586AqwXq1Lsn161bh9Pp5KWXXsJicXX//vTTTz224+vri8PhOGuN3bp1IyYmhtmzZzN//nxuvfVWfHx8AGjVqhV2u539+/fTs2fP8h18DabwJSIi8gd/fxgwwHVX4+md7U9ls7mWq6xWrxPatm3LsGHDmDx5snva448/zpVXXsmYMWO49957CQwMZOvWrSxatIjXX3+dFi1a0Lt3b+6//36mTJmCj48Pf/nLX/D393ePFdakSROKiop47bXX6N+/P6tWreKt027hjIuLIzs7mx9++IH27dsTEBBQZovYHXfcwVtvvcWOHTtYunSpe3pwcDCPPfYY48aNw+l0cvXVV5ORkcGqVasICQlh+PDhlXDWLn6621FEROQU48fD2Rp8HA4YN8479TzzzDM4T2mKa9euHcuXL2fHjh10796djh078uSTT1KvXj33MjNmzKBOnTr06NGDQYMGcd999xEcHIyfnx8A7du35+WXX+b555+nTZs2fPzxxyWGtujWrRsPPPAAQ4YMISoqihdeeKHMGocNG8bWrVupX78+V111lce8Z599ln/+859MnDiRli1b0rdvX7799lvi4+Mr4vRUS4ZpmqY3d5iZmUloaCgZGRmEVHZ7rYiI1FhlfZ7k5+eTmJhIfHy8O2yU11tvuYaTsFo9W8BsNlfwevNNeOCBCz0C7zlw4AAxMTEsXryY6667rqrLqZHK875Ty5eIiMhpHngAfvzRdWnxjy5RWCyun3/88eIPXkuWLOHrr78mMTGRn376idtvv524uDh69OhR1aUJ6vMlIiJSqquucr3y8lx3NYaEVH4fr4pSVFTE3//+d/bs2UNwcDDdunXj448/dneEl6ql8CUiInIG/v7VJ3Sd0KdPH/r06VPVZUgZdNlRRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIt0t6OIiAiwL3MfOUU55V4v0CeQ2JDYSqhIaiqFLxERueTty9zHzV/efN7rzxs0TwFMzpkuO4qIyCXvfFq8KnL90/38889YrVb69etXods9V3v37sUwDBISEqpk/zWdwpeIiMhF5r333uPhhx9mxYoVHDp0qKrLkQqm8CUiInIRyc7OZvbs2Tz44IP069eP6dOne8z/+uuvadq0KX5+flxzzTV88MEHGIZBenq6e5mVK1fSvXt3/P39iYmJYezYseTknGydi4uL47nnnuOee+4hODiYhg0b8vbbb7vnx8fHA9CxY0cMw6BXr16VeciXHIUvERGRi8inn35KixYtaN68OXfeeSfvv/8+pmkCkJiYyC233MLAgQPZsGEDf/7zn/m///s/j/V3795N3759GTx4MBs3bmT27NmsXLmSMWPGeCz30ksv0aVLF3777TceeughHnzwQX7//XcAVq9eDcDixYtJTk7miy++8MKRXzoUvkRERC4i7733HnfeeScAffv2JSMjg+XLlwMwdepUmjdvzosvvkjz5s25/fbbGTFihMf6EydOZNiwYTz66KM0bdqUbt26MXnyZGbMmEF+fr57uZtuuomHHnqIJk2a8Pjjj1OrVi2WLl0KQFRUFACRkZFER0cTERHhhSO/dCh8iYiIXCR+//13Vq9ezdChQwGw2WwMGTKE9957zz3/sssu81jn8ssv9/h5w4YNTJ8+naCgIPerT58+OJ1OEhMT3cu1a9fO/d+GYRAdHU1KSkplHZqcQkNNiIiIXCTee+89iouLqVevnnuaaZrY7XZef/31c9pGdnY2f/7znxk7dmyJeQ0bNnT/t4+Pj8c8wzBwOp3nWbmUh8KXiIjIRaC4uJgZM2bw0ksvccMNN3jMGzhwIJ988gnNmzfnu+++85i3Zs0aj587derE1q1badKkyXnX4uvrC4DD4TjvbUjZFL5EREQuAvPmzSMtLY1Ro0YRGhrqMW/w4MG89957fPrpp7z88ss8/vjjjBo1ioSEBPfdkIZhAPD4449z5ZVXMmbMGO69914CAwPZunUrixYtOufWs9q1a+Pv78+CBQto0KABfn5+JWqS86c+XyIiIheB9957j969e5cacgYPHszatWvJysri888/54svvqBdu3ZMmTLFfbej3W4HXH25li9fzo4dO+jevTsdO3bkySef9LiUeTY2m43JkyczdepU6tWrx4ABAyrmIAUAwzxx/6qXZGZmEhoaSkZGBiEhId7ctYiI1CBlfZ7k5+eTmJhIfHw8fn5+57Strce3MmTekPOuZfbNs2kV2eq8178Q//nPf3jrrbdISkqqkv2LS3ned7rsKCIi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LxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SJbVRcgNUNWfhEH0vI4mlVAXpEDi2EQFuBDnWA/6of7Y7UYVV2i1HSmCZkHITMZco+B0wE2OwTVhtAYCIio6gpFRACFL7lAhzPy+XnPcdbtSyUtpxCH6ZpuACbg72OhYUQgVzSKoEtsBL42NbZKBXM64OB62PsjHNsBhTme8w0D/MKgfmeIuxoiG1dJmSIiJyh8yXlxOk1+2n2c+ZuTOZpVQESgL3GRgdisJ8OVaZrkFjpIPJbDzpQsEpLSGdChPvXD/KuwcqlRco7D5s9h/y+un4PqQGhDV+A6wemAvFTYtQiSVkPzvtC0D9h8q6ZmEbnkKXxJuTmcJvM2HmLR1iP42ay0iA7GMEpeVjQMg0C7jXi7jfwiBxuTMjiaVcDdXeOIrxVYBZVLjZJ1GH59G45uh/A4sAeXvpzFCoFREFALso/Axk8h6wh0ust1WVJExMt0DUjK7cedR/l+yxEiAn2pH+5favA6nZ+Plaa1gziSkc/MX/dxPLvAC5VKjVWYC2unwfEdULtl2cHrVIYBwdGu/l97lsHmL139xEREvEzhS8rlQFouCzcfJtBuJTyg9Ms21oJ8AtKOYS3I95husRg0igpi//FcvtuUjNOpDz45TzsWwpHNENkULCUb8PMKbBxJDSCvoJTGfXuwK4TtWQKHN3mhWBERT+d12fGNN97gxRdf5PDhw7Rv357XXnuNyy+/vKJrk4vQih1HOZ5TSIvoki0N9TavpdOc6TT++QcsTidOi4XdXa9j/S0jOdS6MwBWi0G9cH/W7Uuja+NaNKkd5O1DkOouO8UVnAKjwOr5BWDlpga8/NnlzP2pKU6nBYvFyYBuO/nLbb9yVZuDJxcMiIScY64Q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RES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yObtHZqmCUBmZqa3dy0iIjXIic+RE58rItWF18NXVlYWADExMd7etYiI1EBZWVmEhoZWdRki58wwvfyVwel0cujQIYKDgzEMw5u7PieZmZnExMSQlJRESEhIVZdTLekcXjidwwuj83fhqsM5NE2TrKws6tWrh8WiXjRSfXi95ctisdCgQQNv77bcQkJCLto/ONWFzuGF0zm8MDp/F+5iP4dq8ZLqSF8VRERERLxI4UtERETEixS+TmO323nqqaew2+1VXUq1pXN44XQOL4zO34XTORSpPF7vcC8iIiJyKVPLl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHC1yneeOMN4uLi8PPz44orrmD16tVVXVK1smLFCvr370+9evUwDIOvvvqqqkuqViZOnMhll11GcHAwtWvXZuDAgfz+++9VXVa1MmXKFNq1a+ceGLRr167Mnz+/qsuqtiZNmoRhGDz66KNVXYpIjaLw9YfZs2czfvx4nnrqKdavX0/79u3p06cPKSkpVV1atZGTk0P79u154403qrqUamn58uWMHj2aX375hUWLFlFUVMQNN9xATk5OVZdWbTRo0IBJkyaxbt061q5dy7XXXsuAAQPYsmVLVZdW7axZs4apU6fSrl27qi5FpMbRUBN/uOKKK7jssst4/fXXAdczKGNiYnj44Yd54oknqri66scwDL788ksGDhxY1aVUW0ePHqV27dosX76cHj16VHU51VZERAQvvvgio0aNqupSqo3s7Gw6derEm2++yb///W86dOjAq6++WtVlidQYavkCCgsLWbduHb1793ZPs1gs9O7dm59//rkKK5NLWUZGBuAKD1J+DoeDWbNmkZOTQ9euXau6nGpl9OjR9OvXz+NvoohUHK8/WPtidOzYMRwOB3Xq1PGYXqdOHbZv315FVcmlzOl08uijj3LVVVfRpk2bqi6nWtm0aRNdu3YlPz+foKAgvvzyS1q1alXVZVUbs2bNYv369axZs6aqSxGpsRS+RC5Co0ePZvPmzaxcubKqS6l2mjdvTkJCAhkZGXz++ecMHz6c5cuXK4Cdg6SkJB555BEWLVqEn59fVZcjUmMpfAG1atXCarVy5MgRj+lHjhwhOjq6iqqSS9WYMWOYN28eK1asoEGDBlVdTrXj6+tLkyZNAOjcuTNr1qzhf//7H1OnTq3iyi5+69atIyUlhU6dOrmnORwOVqxYweuvv05BQQFWq7UKKxSpGdTnC9cf686dO/PDDz+4pzmdTn744Qf1FRGvMU2TMWPG8OWXX7JkyRLi4+OruqQawel0UlBQUNVlVAvXXXcdmzZtIiEhwf3q0qULw4YNIyEhQcFLpIKo5esP48ePZ/jw4XTp0oXLL7+cV199lZycHEaOHFnVpVUb2dnZ7Nq1y/1zYmIiCQkJRERE0LBhwyqsrHoYPXo0M2fOZO7cuQQHB3P48GEAQkND8ff3r+LqqocJEyZw44030rBhQ7Kyspg5cybLli1j4cKFVV1atRAcHFyij2FgYCCRkZHqeyhSgRS+/jBkyBCOHj3Kk08+yeHDh+nQoQMLFiwo0QlfyrZ27VquueYa98/jx48HYPjw4UyfPr2Kqqo+pkyZAkCvXr08pk+bNo0RI0Z4v6BqKCUlhbvvvpvk5GRCQ0Np164dCxcu5Prrr6/q0kRE3DTOl4iIiIgXqc+XiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh40f8HwVy3u0pRXqYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=14\n", + "[Array([[9]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", + "[0.00925926 0.00925926 0.00925926 0.00925926 0.00925926]\n", + "[[3 0 0 0]]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB24klEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQiooCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIEXBQjN0pAUIEAiQ3pOZ8/tjzMCQBAgkExLu13XNBTn1cw5D5p7nPOc5hmmaJiIiIiLiFZbqLkBERETkUqLwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJV7zz3/+E8MwPKbFxcUxevRor9Yxa9YsDMNg3759Xt2vnBv9+4hIbafwVc0SExMZP348LVq0ICAggICAANq0acO4cePYtGlTdZd3Sdq3bx+GYZzTq7yAEBcXh2EY9O3bt8z5b731lnsb69atq8KjOT9nOwdTp06t7hIvKXPmzOHll1+u7jJEpJLYqruAS9mCBQsYPnw4NpuNkSNH0rFjRywWCzt27OCzzz5j+vTpJCYmEhsbW92lVpnffvsNi+Xi+g4QFRXFe++95zHthRde4ODBg7z00kulli2Pn58fy5cv58iRI0RHR3vM++CDD/Dz8yM/P7/yCq8CI0aM4MYbbyw1vXPnzlW2zzvvvJPbbrsNu91eZfuoaebMmcOWLVt4+OGHq7sUEakECl/VZM+ePdx2223Exsby3XffUb9+fY/5zz77LK+//vpFF0xOlZOTQ2Bg4AVt42L8gA0MDOSOO+7wmPbRRx+RlpZWavqZXHXVVaxdu5a5c+fy0EMPuacfPHiQH374gaFDhzJv3rxKq7sqdOnSpULHXBmsVitWq/WMy5imSX5+Pv7+/l6qSkSk8ly8n+y13HPPPUdOTg4zZ84sFbwAbDYbEyZMICYmxmP6jh07uPnmm4mIiMDPz49u3brx5ZdfeixT0mdm9erVTJo0iaioKAIDAxk6dCjHjh0rta+FCxfSs2dPAgMDCQ4OZuDAgWzdutVjmdGjRxMUFMSePXu48cYbCQ4OZuTIkQD88MMP3HLLLTRu3Bi73U5MTAwTJ04kLy/vrOfh9D5f53qJ71zOA8DWrVu59tpr8ff3p1GjRvzrX//C6XSeta7K4Ofnxx/+8AfmzJnjMf3DDz8kPDycfv36lVpn06ZNjB49miZNmuDn50d0dDR33303J06ccC9ztkuCp/rll1/o378/oaGhBAQE0Lt3b1avXl2pxxkXF8dNN93EqlWruPzyy/Hz86NJkybMnj3bvcy6deswDIN333231PqLFy/GMAwWLFgAlN3nq2Qfixcvplu3bvj7+zNjxgwA9u7dyy233EJERAQBAQFceeWVfP311x77WLFiBYZh8PHHH/Pvf/+bRo0a4efnx3XXXcfu3bs9lu3Tpw/t2rVj06ZN9O7dm4CAAJo1a8ann34KwMqVK7niiivw9/enZcuWLF26tNQxHTp0iLvvvpt69epht9tp27Yt77zzznnV1KdPH77++mv279/v/jeOi4s7h38ZEblYqeWrmixYsIBmzZpxxRVXnPM6W7du5aqrrqJhw4Y89thjBAYG8vHHHzNkyBDmzZvH0KFDPZb/05/+RHh4OE888QT79u3j5ZdfZvz48cydO9e9zHvvvceoUaPo168fzz77LLm5uUyfPp2rr76aX3/91eOXfHFxMf369ePqq6/mP//5DwEBAQB88skn5Obm8sADDxAZGcmaNWt45ZVXOHjwIJ988kmFzsvpl/sA/v73v5OSkkJQUFCFzsORI0e45pprKC4udi/35ptverW15Pbbb+eGG25gz549NG3aFHBdQrr55pvx8fEptfySJUvYu3cvY8aMITo6mq1bt/Lmm2+ydetWfv75ZwzDKPOyaFFRERMnTsTX19c9bdmyZQwYMICuXbvyxBNPYLFYmDlzJtdeey0//PADl19++Vnrz83N5fjx46Wmh4WFYbOd/PWxe/dubr75ZsaOHcuoUaN45513GD16NF27dqVt27Z069aNJk2a8PHHHzNq1CiPbc2dO7fcMHqq3377jREjRvDHP/6Re++9l5YtW3L06FF69OhBbm4uEyZMIDIyknfffZf/+7//49NPPy31f2Lq1KlYLBYeeeQRMjIyeO655xg5ciS//PKLx3JpaWncdNNN3Hbbbdxyyy1Mnz6d2267jQ8++ICHH36Y+++/n9tvv53nn3+em2++maSkJIKDgwE4evQoV155JYZhMH78eKKioli4cCFjx44lMzOz1KXDs9X0//7f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ZVHLl4iIXPJ8LD5YLVaKzeKzL3wKh+ka/8vHcm6XKi/E9u3biY+PL3Nely5dSExMZOHChSxdupRbb72Vvn378umnn55xm4GBgaWmDRo0iNjYWN566y0aNGiA0+mkXbt27g7w/v5V18JXVj3lWblyJYMGDeKll17irrvuOuOyAwYMYP/+/XzzzTcsWbKE6667jnHjxvGf//yH7OxsunbtWuYdkxUJghWhli8REbnk+Vn9iAmOIb0gvULrpRWkERMcg5+17M7hlWXZsmVs3ry51CXBU4WEhDB8+HDeeust5s6dy7x580hNTQXAx8cHh8Nx1v2cOHGC3377jb///e9cd911tG7dmrS0NI9lOnToQEJCgnvbp/P19S21r9atW3v0QwPYtm0b6enptGnT5qx1nW7FihUMHDiQZ599lvvuu++c1omKimLUqFG8//77vPzyy7z55puAK7ju2rWLunXr0qxZM49XaGhoucd0IRS+RETkkmcYBl3qdcE0TYoc53YJsdBRCCZ0rde1UjvbFxQUcOTIEQ4dOsSGDRt45plnGDx4MDfddFO5LTwvvvgiH374ITt27GDnzp188sknREdHExYWBrj6OH333XccOXKkVJg6VXh4OJGRkbz55pvs3r2bZcuWMWnSJI9lRowYQXR0NEOGDGH16tXs3buXefPm8dNPP7n3lZiYSEJCAsePH6egoIC+ffvSvn17Ro4cyYYNG1izZg133XUXvXv3dvfDOlfLly9n4MCBTJgwgWHDhnHkyBGOHDlSbhgEePzxx5k/fz67d+9m69atLFiwwN1Bf+TIkdSpU4fBgwfzww8/kJiYyIoVK5gwYQIHDx50H9OmTZv47bffOH78OEVFF3aZWeFLREQEaBXRipjgGPZn7cc0zTMua5omB7IOEBMcQ8uIlpVax6JFi6hfvz5xcXH079+f5cuXM23aNObPn1/uHYDBwcE899xzdOvWjcsuu4x9+/bxzTffYLG4PuZfeOEFlixZQkxMDJ07dy533xaLhY8++oj169fTrl07Jk6cyPPPP++xjK+vL99++y1169blxhtvpH379kydOtVd27Bhw+jfvz/XXHMNUVFRfPjhhxiGwfz58wkPD6dXr1707duXJk2aMHfu3Aqfn3fffZfc3FymTJlC/fr13a8//OEP5a7j6+vL5MmT6dChA7169cJqtfLRRx8BEBAQwPfff0/jxo35wx/+QOvWrRk7diz5+fmEhIQAcO+999KyZUu6detGVFQUq1evrnDdpzLMs73DKllmZiahoaFkZGS4D0pERKSiyvs8yc/PJzEx8YxjRZWnZIT743nHaRzc2DWcxGkKHYUcyDpAHf863Nn6TmJCYsrYklxqKvK+U4d7ERGR3zUOacwdre9wP9sRwzWchNWw4jAdpBWkgQmNgxszrPkwBS85LwpfIiIip2gc0pgHOj3Ab6m/sf7oepKykihyFGG1WGkX2Y6u9brSMqIldmvlPdpHLi0KXyIiIqexW+10iOpA+zrtyXfkU+Qswsfig5/Vr0pHspdLg8KXiIhIOQzDwN/mjz9VO3q9XFp0t6OIiNRKXr6fTC5xFXm/KXyJiEit4uPjGm0+Nze3miuRS0nJ+63k/XcmuuwoIiK1itVqJSwsjJSUFMA1jpP6aUlVMU2T3NxcUlJSCAsLK3cstlMpfImISK0THR0N4A5gIlUtLCzM/b47G4UvERGpdQzDoH79+tStW/eCHwUjcjY+Pj7n1OJVQuFLRERqLavVWqEPRRFvUId7ERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIlt1F3AxySkoJrugGAMI8rMR4KvTIyKXoKJ8yE8H0wTfALCHgGFUd1UitcYlny5SsvLZlJTBlsMZHM3Mp7DYCYCvzUK9ED/aNwylQ6MwooLt1VypiEgVykuDw7+6XhkHXQEME6y+EFgH6rWHRl0hNEZBTOQCGaZpmt7cYWZmJqGhoWRkZBASEuLNXXvIL3KwfEcKK3ceIzWnkABfK0F2G3YfKwAFRQ6yC4rJK3IQHuDLNS2j6N2yLn6/zxcRqRUcxbDve9jxNWQdBZvd1dLl4w8Y4CiAgmwozHJNj7saWt8EfqHVXflF83kiUlGXZMvXiewC5vxygC2H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abpau7KSXcu3GQyt/w9sZ/7iKiJlu+QuO54qKTWXZTtS2Ho4g8z8YgzAx2rBxKS42MQEQvxttGsYyrWt6tIoPKBa6xURqRLZx2DXt5C0xnUHI7jGAjMMcBQBpmt4iqjW0OIGqNu6WsstcTF9nohUxCUdvkocycgn8XgORzLySM0pBAMiA+3UC/GjSVQg9UI0pISIXAJyU+HYb64WruyjrtHw/cIgpAGEx7leF1HL/8X4eSJyLi65y45liQ71IzpUAUtELnEBERDbvbqrEKn1LrkO9yIiIiLVSeFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts1V2A1A6maZKeW8Sx7ALyCh1YDIOwAB+igu34+Viruzy5VDiKIPso5BwH0wFWOwTVg4BIsOi7pohcHBS+5ILkFTrYdDCdNYmpJKXlklPgwGE6AQM/m4UQPx86xITSpXE48XUCMQyjukuW2ijjICSthaRfIC8NinJd0w0L+AZBcDTEXQUNu4JfaPXWKiKXPMM0TdObO8zMzCQ0NJSMjAxCQkK8uWupZLtTsvgy4TC7UrKxWQ0iAnwJtNvwsVowTZO8IgdZ+cWk5RYRZLdydfMorm9TjyC7Mr9UkuIC2L0UflsEeangFw7+oeAT4ApezmIozIbcVCjOg7A4aDcUGnQBfRGo8fR5IjWVwpecl1/2nmDehoNkFxQTGxGIr+3Ml3RScwpJycqnbYNQ7rgylohAXy9VKrVWYQ6sfxcO/Aj+ERAUfeZA5SyGtH2uUNZ2CLS8UQEM2J+5n5yinAqvF+gTSGxIbBVUdO70eSI1lZogpMI2HUzn43VJADSLCjqnS4kRgb4E2W1sOZTBBz/v556eTfD3VV8wOU+OYvj1fdi/GsKbgG/A2dex2CCyGWSnwOZPwccfml5b9bVexPZn7uemz2867/UXDF1Q7QFMpCZSD1SpkPTcQr5MOEyRw0mj8IAyg1dhgUFWmpXCAs95vjYLTaIC2XI4k2U7jnqrZKmN9q+G/T+6LiOWFbwKiiA1y/Xn6YLqui5LbvsS0g9UeakXs/Np8arM9UUuVWr5kgpZtes4B1JzaVEvuNS8vVv8WDkvnC0/BWE6DQyLSbvu2fS5OY34tvkA2G1WIgN9WbnzGJ0bh9MgzN/bhyA1XX4m7FjgarmyB3nO27wPPlkFP24HpwkWA3q0hlt7QrtTWmhCGsKxbbDjG7jij7r8KCJeVeGWr++//55BgwbRoEEDDMPgiy++qIKy5GKUXVDMmn2phAf4YrV4flit/iqUVyfFsPVnV/ACMJ0GW38O4pWJMfy44OQdZnWCfEnPLWJjUro3y5faIjkBspJdAepU83+Gh96En3a4ghe4/vxpB0yYAV/+cnJZw4Cg+nBkE2Qe9lrpIiJwHuErJyeHjh078tprr1VFPXIRSzyWw7GsAuoEeXaW37vFj3mv1AUMnA7PUOb62eDTaXVJ3OoHgGEYBPvZSEhKx8v3e0htcGQzWHxcfbhKbN4H//3S9XeH03P5kp9fng9b9p+c7h8O+RlwfGeVlisicroKX3YcMGAAAwYMqIpa5CKXkpWPaZrYrJ6ZfeW8cCxWcDrKX9didS0X3zYZgGA/H9JyC0nLLdKdj3LuHEWQth/sp132/mQVWC2lg9eprBbXciWXHw0DDCtkHKq6ekVEylDlfb4KCgooKChw/5yZmVnVu5Qqkp5bVKqDfWGB4e7jdSZOh8HmH4MoLDDwtZv4+VhIy3GSmafwJRVQkOUaQNUn8JRpRSf7eJ2Jwwmrt7mWt/u4ptn8XCPii4h4UZXf7ThlyhRCQ0Pdr5iYmKrepVSRsj7aCnItZw1e7vWdBgW5J99yZplbFDkHp77lcvLPHrxKOE3X8u7tGJT9zhYRqTpVHr4mT55MRkaG+5WUlFTVu5QqEmS3lfqYsgc4MSzn9uFlWEzsAa7LQoXFTnytFgI01pdUhE8AWH1dI9uXCPRz3dV4LiyGa/kSxfmuvl8iIl5U5eHLbrcTEhLi8ZKaqW6IHQNwntLK4Gt3DSdhsZ45gFmsJu17ZONrdy2XXVBMiL8PkUH2qixZahsfPwhtCAXZJ6fZfVzDSVjP8uvMaoGr2py85Gia4HRCWOOqq1dEpAwaZFXOWWxEAKH+PqTmFnpM7z0s7Yyd7cHVGb/3sDT3zxl5xbRpEFJqyAqRs6rX3vWcRvOUzvW3XH3mzvbgmn/L1Sd/Lsx2hbnw+KqpU0SkHBUOX9nZ2SQkJJCQkABAYmIiCQkJHDhwaY8UfSmIDLLTKSaMY9kFHkNENGmXz80TUgCzVAuY62eTmyekuAdazcwrIsDXQufGutwj56FBZwiIdD0mqET7OHh4sOvvp7eAlfz88GDPgVYzD0FUS4hoUqXlioicrsJ3O65bt45rrrnG/fOkSZMAGDVqFLNmzaq0wuTi1LNFFJsOZpCcke8xOn2PmzKoH1/AynnhbP7Rc4T73sNOjnDvcJocSs+jV4so4iMDy9uNSPmCoqDpdbD5Y1d/Ldvvl67/7wpoEu0aTmL1Ns8R7m+52jN45Rx33enYoj9YdAFARLyrwuGrT58+GhjzEtYwzJ/+7aL5eF0SqTmFHsNExLfNJ75tMoUFrrsa7QFOdx8vcPUV23ssm9jIAAa2r49FlxzlfDW/Ho7tcI1QX6clWH/vx9Uu1vUqKHLd1Rjod7KPV4mCTMg5Cm0GQ7223q9dRC55+sonFXZ1szr0axtNem4hB9NycZ4Wxn3tJsHhDo/glVfoYGdKFvXD/LjjyljCNbaXXAjfAOg2BqJaw/HfXM97PJXdByKCPYOXaboeS5RxyNVy1nrwJf9Mx0CfC2t9vtD1RS5VhunlZqzMzExCQ0PJyMjQnY81mNNp8nPiCRZuPsLRzHzCA3yJCPTF13bKOF6mSU6Bg5TsfBxOkw6NwhjSqSHRoX5n2LJIBeSmwpbP4MCPrjsXg+qBXwgYp3yvdBRBXirkHAP/CGg5AJr1BZu+AADsz9xPTlFOhdcL9AkkNiT27AtWIX2eSE2l8CUXJCUzn1/2prJ2fyqpOYUUO02P8S/9fazE1QnkivgIusSG43O24QBEKsrphORfYd9q16XIgmxODpxquFq3/MOg0eUQdxWEx1VfrVKp9HkiNZXCl1SKnIJiDqfnkZJVQF6hA4sFQv19qRdip0Gov/p3SdUruayYlQw5J8B0uAZkDarnGhtMg6nWOvo8kZqqyp/tKJeGQLuN5vWCaV4v+OwLi1QFw4CQBq6XiMhFTNeARERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2zVXYDUDln5RRxMy+NYVgF5RQ4shkFYgA/1gv1oGO6P1WJUd4lS25kmZB6CzGTIPQ5OB9jsEFQXQmMgIKK6KxQRARS+5AIdycjnp70nWL8/lbScQhyma7oBmIC/j4XGEYFc0SSCbrER+NrU2CqVzOmAQxtg3w9wfCcU5njONwzwC4OGXSHuaohsWi1lioiUUPiS8+J0mvy45wQLtyRzLKuAiEBf4iIDsVlPhivTNMktdJB4PIddKVkkJKUzuFNDGob5V2PlUqvknIAtn8KBn10/B9WD0MauwFXC6YC8VNi9BJLWQMv+0Lwf2Hyrp2YRueQpfEmFOZwmCzYdZsm2o/jZrLSKDsYwSl9WNAyDQLuNeLuN/CIHm5IyOJZVwF3d44ivE1gNlUutknUEfnkTju2A8DiwB5e9nMUKgVEQUAeyj8KmjyHr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", "text/plain": [ "
" ] @@ -339,13 +528,17 @@ ], "source": [ "ims = []\n", - "for t in range(10): \n", + "for t in range(15): \n", " print(f'Time t={t}')\n", " obs = jtu.tree_map(lambda x: x[:, t], info['observation'])\n", " print(obs)\n", " act = info['action'][:, t, 0]\n", "\n", " qpi = info['qpi'][:, t]\n", + " top5 = qpi[0].argsort()[-5:]\n", + " print(qpi[0][top5])\n", + " print(info['action'][:, t])\n", + "\n", "\n", " # plt.figure(figsize=(3,3))\n", " # plt.bar(np.arange(qpi[0].shape[0]), qpi[0])\n", @@ -363,7 +556,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 55, "metadata": {}, "outputs": [], "source": [ @@ -371,6 +564,41 @@ "\n", "io.mimsave('tmp_dir/gif.gif', ims, format=\"GIF\", duration=1)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/examples/tmp_dir/gif.gif b/examples/tmp_dir/gif.gif new file mode 100644 index 0000000000000000000000000000000000000000..b65ef82b3f85d830aafca2b835ce32d155d4925f GIT binary patch literal 34054 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 S$MNefc$uOTltAg&_5TIKVsDQC literal 0 HcmV?d00001 diff --git a/pymdp/jax/envs/generalized_tmaze.py b/pymdp/jax/envs/generalized_tmaze.py index 0f212fc7..cf62216b 100644 --- a/pymdp/jax/envs/generalized_tmaze.py +++ b/pymdp/jax/envs/generalized_tmaze.py @@ -424,7 +424,7 @@ def render(maze_info, env_state): plt.legend( handles=handles, loc="upper left", bbox_to_anchor=(1, 1), fancybox=True ) - plt.axis("off") + #plt.axis("off") plt.tight_layout() # Capture the current figure as an image From 751f918b03fcbb4e894bee2675c04057690704d0 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Wed, 12 Jun 2024 14:56:00 +0200 Subject: [PATCH 091/196] Clean up notebook for the generalized tmaze --- examples/generalized_tmaze_demo.ipynb | 172 +++++++------------------- 1 file changed, 46 insertions(+), 126 deletions(-) diff --git a/examples/generalized_tmaze_demo.ipynb b/examples/generalized_tmaze_demo.ipynb index ecb8a2b7..f08433e1 100644 --- a/examples/generalized_tmaze_demo.ipynb +++ b/examples/generalized_tmaze_demo.ipynb @@ -9,18 +9,9 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 1, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], + "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", @@ -64,90 +55,61 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 2, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[0], [1], [2]]\n" + "ename": "ValueError", + "evalue": "not enough values to unpack (expected 2, got 0)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 38\u001b[0m\n\u001b[1;32m 35\u001b[0m M[\u001b[38;5;241m2\u001b[39m,\u001b[38;5;241m2\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[1;32m 37\u001b[0m M \u001b[38;5;241m=\u001b[39m get_maze_matrix(small\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[0;32m---> 38\u001b[0m env_info \u001b[38;5;241m=\u001b[39m \u001b[43mparse_maze\u001b[49m\u001b[43m(\u001b[49m\u001b[43mM\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 39\u001b[0m tmaze_env \u001b[38;5;241m=\u001b[39m GeneralizedTMazeEnv(env_info)\n\u001b[1;32m 40\u001b[0m _ \u001b[38;5;241m=\u001b[39m render(env_info, tmaze_env)\n", + "File \u001b[0;32m~/Projects/pymdp-hackaton/pymdp/pymdp/jax/envs/generalized_tmaze.py:70\u001b[0m, in \u001b[0;36mparse_maze\u001b[0;34m(maze)\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;124;03mParameters\u001b[39;00m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;124;03m----------\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[38;5;124;03m purposes\u001b[39;00m\n\u001b[1;32m 67\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 69\u001b[0m maze \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39marray(maze)\n\u001b[0;32m---> 70\u001b[0m rows, cols \u001b[38;5;241m=\u001b[39m maze\u001b[38;5;241m.\u001b[39mshape\n\u001b[1;32m 72\u001b[0m num_cues \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mint\u001b[39m((np\u001b[38;5;241m.\u001b[39mmax(maze) \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m2\u001b[39m) \u001b[38;5;241m/\u001b[39m\u001b[38;5;241m/\u001b[39m \u001b[38;5;241m3\u001b[39m)\n\u001b[1;32m 74\u001b[0m cue_positions \u001b[38;5;241m=\u001b[39m []\n", + "\u001b[0;31mValueError\u001b[0m: not enough values to unpack (expected 2, got 0)" ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAEzCAYAAAC8KU67AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABkh0lEQVR4nO3deVxU9frA8c+ZAYZ1QJBNRUBxw33L1FQsCsy86bXCpRQzy9JMbfX+urbYDdMsW0ztlltXy8pMs9LcwFxyx30X11hEBGSHmfP7Y2J0BBSUYZme9+t1XjLnfM85zzmMzDPf7SiqqqoIIYQQQohaT1PdAQghhBBCiMohiZ0QQgghhI2QxE4IIYQQwkZIYieEEEIIYSMksRNCCCGEsBGS2AkhhBBC2AhJ7IQQQgghbIQkdkIIIYQQNkISOyGEEEIIGyGJnbAZb775JoqiWKwLCgoiOjq6SuNYsGABiqJw5syZKj2vKB/5/QghbJkkdjYuISGBsWPH0rRpU5ydnXF2diY0NJQxY8awf//+6g7vb+nMmTMoilKupazkIygoCEVRCA8PL3X7f//7X/Mxdu3aZcWruT23ugdTp06t7hD/VpYsWcLMmTOrOwwhRCWwq+4AhPWsWrWKqKgo7OzsGDp0KG3btkWj0XD06FF++OEHZs+eTUJCAoGBgdUdqtUcO3YMjaZmfX/x9vbmq6++slg3Y8YMLly4wIcffliibFkcHR3ZuHEjSUlJ+Pn5WWxbvHgxjo6O5OXlVV7gVjB48GAefPDBEuvbt29vtXM+8cQTDBo0CJ1OZ7Vz1DZLlizh4MGDjB8/vrpDEULcIUnsbNSpU6cYNGgQgYGBrF+/Hn9/f4vt7733Hp999lmNS3qul52djYuLyx0doyZ+eLu4uPD4449brPvmm2+4cuVKifU30717d3bu3MnSpUt54YUXzOsvXLjA77//zoABA1i2bFmlxW0NHTp0qNA1VwatVotWq71pGVVVycvLw8nJqYqiEkKIylFzP9XFHZk2bRrZ2dnMnz+/RFIHYGdnx7hx4wgICLBYf/ToUR555BE8PT1xdHSkU6dOrFy50qJMcR+lLVu2MHHiRLy9vXFxcWHAgAFcunSpxLl+/fVXevTogYuLC25ubvTt25dDhw5ZlImOjsbV1ZVTp07x4IMP4ubmxtChQwH4/fffefTRR2nYsCE6nY6AgAAmTJhAbm7uLe/DjX3sytvsWZ77AHDo0CHuvfdenJycaNCgAe+88w5Go/GWcVUGR0dH/vnPf7JkyRKL9V9//TV16tQhIiKixD779+8nOjqaRo0a4ejoiJ+fH08++SSXL182l7lVM+n1tm/fTmRkJO7u7jg7O9OrVy+2bNlSqdcZFBTEQw89xObNm7nrrrtwdHSkUaNGLFq0yFxm165dKIrCwoULS+y/Zs0aFEVh1apVQOl97IrPsWbNGjp16oSTkxNz584F4PTp0zz66KN4enri7OzM3Xffzc8//2xxjtjYWBRF4dtvv+U///kPDRo0wNHRkfvuu4+TJ09alA0LC6NVq1bs37+fXr164ezsTEhICN9//z0AcXFxdOnSBScnJ5o1a8a6detKXNPFixd58skn8fX1RafT0bJlS+bNm3dbMYWFhfHzzz9z9uxZ8+84KCioHL8ZIURNJDV2NmrVqlWEhITQpUuXcu9z6NAhunfvTv369XnttddwcXHh22+/pX///ixbtowBAwZYlH/++eepU6cOb7zxBmfOnGHmzJmMHTuWpUuXmst89dVXDB8+nIiICN577z1ycnKYPXs299xzD3v37rX4ACkqKiIiIoJ77rmH999/H2dnZwC+++47cnJyePbZZ/Hy8mLHjh188sknXLhwge+++65C9+XGJlCA119/nZSUFFxdXSt0H5KSkujduzdFRUXmcp9//nmV1vIMGTKEBx54gFOnTtG4cWPA1Kz2yCOPYG9vX6L82rVrOX36NCNGjMDPz49Dhw7x+eefc+jQIf744w8URSm1qbiwsJAJEybg4OBgXrdhwwb69OlDx44deeONN9BoNMyfP597772X33//nbvuuuuW8efk5JCamlpivYeHB3Z21/48nTx5kkceeYSRI0cyfPhw5s2bR3R0NB07dqRly5Z06tSJRo0a8e233zJ8+HCLYy1durTMRPd6x44dY/DgwTzzzDOMGjWKZs2akZycTLdu3cjJyWHcuHF4eXmxcOFC/vGPf/D999+X+D8xdepUNBoNL730EhkZGUybNo2hQ4eyfft2i3JXrlzhoYceYtCgQTz66KPMnj2bQYMGsXjxYsaPH8/o0aMZMmQI06dP55FHHuH8+fO4ubkBkJyczN13342iKIwdOxZvb29+/fVXRo4cSWZmZonm1FvF9H//939kZGRYdAUo/r8ghKiFVGFzMjIyVEDt379/iW1XrlxRL126ZF5ycnLM2+677z61devWal5ennmd0WhUu3XrpjZp0sS8bv78+SqghoeHq0aj0bx+woQJqlarVdPT01VVVdWrV6+qHh4e6qhRoyxiSEpKUt3d3S3WDx8+XAXU1157rUTM18dYLCYmRlUURT179qx53RtvvKHe+JYODAxUhw8fXmL/YtOmTVMBddGiRRW+D+PHj1cBdfv27eZ1KSkpqru7uwqoCQkJZZ73Rn379lUDAwPLXT4wMFDt27evWlRUpPr5+alTpkxRVVVVDx8+rAJqXFyc+fe0c+dO836l3cuvv/5aBdRNmzaVeb7nnntO1Wq16oYNG1RVNd2PJk2aqBERERbvgZycHDU4OFi9//77bxp/QkKCCpS5bNu2zeJab4wvJSVF1el06osvvmheN2nSJNXe3l5NS0szr8vPz1c9PDzUJ5980ryu+L5c//spPsfq1ast4iz+Hf/+++/mdVevXlWDg4PVoKAg1WAwqKqqqhs3blQBtUWLFmp+fr657EcffaQC6oEDB8zrevXqpQLqkiVLzOuOHj2qAqpGo1H/+OMP8/o1a9aogDp//nzzupEjR6r+/v5qamqqRayDBg1S3d3dzb/jisRU0fefEKLmkqZYG5SZmQmU/q07LCwMb29v8zJr1iwA0tLS2LBhA4899hhXr14lNTWV1NRULl++TEREBCdOnODixYsWx3r66actmuZ69OiBwWDg7NmzgKl2KD09ncGDB5uPl5qailarpUuXLmzcuLFEfM8++2yJddfXgGVnZ5Oamkq3bt1QVZW9e/fexh0y2bhxI5MmTeL555/niSeeqPB9+OWXX7j77rstaqa8vb3NTchVQavV8thjj/H1118DpkETAQEB9OjRo9Ty19/LvLw8UlNTufvuuwHYs2dPqfssWrSIzz77jGnTptG7d28A4uPjOXHiBEOGDOHy5cvm+5Sdnc19993Hpk2bytUk/fTTT7N27doSS2hoqEW50NBQi2vy9vamWbNmnD592rwuKiqKwsJCfvjhB/O63377jfT0dKKiom4ZS3BwcIlavV9++YW77rqLe+65x7zO1dWVp59+mjNnznD48GGL8iNGjLCo1SyO+fo4i48xaNAg8+tmzZrh4eFBixYtLGrZi38u3l9VVZYtW0a/fv1QVdXi/1VERAQZ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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ - "M = np.zeros((3, 5))\n", + "def get_maze_matrix(small=False):\n", + " if small:\n", + " M = np.zeros((3, 5))\n", "\n", - "# Set the reward locations\n", - "M[0,1] = 4\n", - "M[1,1] = 5\n", - "M[1,3] = 7\n", - "M[0,3] = 8\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", "\n", - "# Set the cue locations\n", - "M[2,0] = 3\n", - "M[2,4] = 6\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", "\n", - "# Set the initial position\n", - "M[2,3] = 1\n", + " # Set the initial position\n", + " M[2,3] = 1\n", + " else:\n", "\n", - "env_info = parse_maze(M)\n", - "tmaze_env = GeneralizedTMazeEnv(env_info)\n", - "_ = render(env_info, tmaze_env)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[0], [1], [2], [3]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB220lEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zYU79nJMxc89znvMcwzRNExERERHxCkt1FyAiIiJyKVH4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4Eq/55z//iWEYHtPi4uIYNWqUV+uYOXMmhmGwb98+r+5Xzo1+PyJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7f8dxcXHn8JsRkYuVWr6qyfz582nWrBlXXHHFOa+zdetWrrrqKho2bMjjjz9OYGAgn3zyCYMHD2bu3LkMGTLEY/k//elPhIeH8+STT7Jv3z5eeeUVxo0bx5w5c9zLvP/++4wcOZJ+/frx3HPPkZuby7Rp07j66qv59ddfPf7IFxcX069fP66++mr+85//EBAQAMCnn35Kbm4uDz74IJGRkaxZs4ZXX32VgwcP8umnn1bovJx+uQ/g73//OykpKQQFBVXoPBw5coRrrrmG4uJi93JvvfWWV1tL7rjjDm644Qb27NlD06ZNAdclpFtuuQUfH59Syy9evJi9e/cyevRooqOj2bp1K2+99RZbt27l559/xjCMMi+LFhUVMWHCBHx9fd3Tli5dyo033kjXrl158sknsVgszJgxg2uvvZYffviByy+//Kz15+bmcvz48VLTw8LCsNlO/vnYvXs3t9xyC2PGjGHkyJG8++67jBo1iq5du9K2bVu6detGkyZN+OSTTxg5cqTHtubMmVNuGD3Vb7/9xvDhw/njH//IfffdR8uWLTl69Cg9evQgNzeX8ePHExkZyXvvvcf//d//8dlnn5X6f2LKlClYLBYeffRRMjIyeP755xkxYgS//PKLx3JpaWncfPPN3H777dx6661MmzaN22+/nQ8//JBHHnmEBx54gDvuuIMXXniBW265haSkJIKDgwE4evQoV155JYZhMG7cOKKioliwYAFjxowhMzOz1KXDs9X0//7f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9datW5c+ffowffp0kpOTSy1f1hASZ9OvXz9CQkJ49tlnKSoqOq9tlnxrP7Ve0zT573//W+F6AGbMmMH06dN5/fXXywylFTkPN910Ez///DNr1qzxmP/hhx+eV22na9OmDX379nW/unbtWu6y9957L08++SQvvvhiucuUdS6BMkc2f+qpp1i0aBEfffRRmZfjunbtStOmTfnPf/5T5uXt83m/VIbWrVvTvn175syZw5w5c6hfvz69evU67+3ddNNNrFmzhp9++sk9LScnh7feeou4uLhSfdOqmtVqZejQocydO7fMlu3zPe+BgYHnfQlfRC4+avmqJs2bN2f27NkMHz6cli1buke4N02TxMREZs+ejcVi8ehj9frrr3P11VfTvn177rvvPpo0acLRo0f56aefOHjwIBs3bqxQDSEhIUybNo277rqLLl26cPvttxMVFcWBAwf45ptvuOqqq3jttdfOuI1WrVrRtGlTHn30UQ4dOkRISAhz5849r/4qx48f56GHHqJNmzbY7XY++OADj/lDhgwhMDDwnM/DX//6V95//3369+/Pww8/7B5qIjY21uuPboqNjeWf//znGZcJCQmhV69ePP/88xQVFdGwYUO+++47EhMTPZbbvHkzzzzzDL169SIlJaXUebrzzjuxWCz873//48Ybb6Rt27aMHj2ahg0bcujQIZYtW0ZISAhff/31WevesGFDqe2Dq2Wte/fuZz/wMgwbNownnngCPz8/xowZc0EDCT/++ON89NFH3HjjjYwfP56IiAjee+89EhMTmTt3brUMUjxlyhSWLVvGFVdcwX333UebNm1ITU1lw4YNLFmyhNTU1Apvs2vXrsyZM4eJEydy2WWXERQUxMCBA6ugehHxBoWvajRo0CA2b97Miy++yHfffce7776LYRjExsYyYMAAHnjgATp27Ohevk2bNqxbt46nnnqKmTNncuLECerWrUvnzp09LlNVxB133EGDBg2YMmUKL7zwAgUFBTRs2JCePXsyevTos67v4+PD119/zfjx45k8eTJ+fn4MGTKEcePGedR+LrKzs8nPz2fbtm3uuxtPlZiYSGBg4Dmfh/r167Ns2TL+9Kc/MWXKFCIjI3nggQdo0KCBu8P3xWb27Nn86U9/4vXXX8c0TW644QYWLFhAgwYN3MucOHEC0zRZsWIFK1asKLWNkkuhffr04aeffuKZZ57htddeIzs7m+joaK644gr++Mc/nlM9H330kftOzVONHDnygsLX3//+d3Jzc8/pLsczqVevHj/++COPPfYYr776Kvn5+XTo0IGvv/6aAQMGXNC2L6SmNWvW8PTTT/P555/zxhtvEBkZSdu2bXnuuefOa5sPPfQQCQkJzJgxg5dffpnY2FiFL5EazDDVq1NERETEa9TnS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvMjr43w5nU4OHz5McHCwHpkhIiLnzTRNsrKyaNCgQbUMqCtyvrwevg4fPkxMTIy3dysiIrVUUlKSx9NARC52Xg9fwcHBgOt/lpCQEG/vXkREaonMzExiYmLcnysiNYXXw1fJpcaQkBCFLxERuWDqwiI1jS6Si4iIiHiRwpeIiIiIFyl8iYiIiHiR1/t8iYiIeIvD4aCoqKi6y5BazsfHB6vVes7LK3yJiEitY5omR44cIT09vbpLkUtEWFgY0dHR53QDiMKXiIjUOiXBq27dugQEBOiOSKkypmmSm5tLSkoKAPXr1z/rOgpfIiJSqzgcDnfwioyMrO5y5BLg7+8PQEpKCnXr1j3rJUh1uBcRkVqlpI9XQEBANVcil5KS99u59DFU+BIRkVpJlxrFmyryflP4EhEREfEihS8RERERL1L4EhEROU1hYeEFzb9QR44c4U9/+hNNmjTBbrcTExPDwIED+f7776t0v+IdCl8iIiKnmDNnDu3btycpKanM+UlJSbRv3545c+ZUyf737dtH165dWbp0KS+88AKbN29m4cKFXHPNNYwdO7ZK9inepfAlIiLyu8LCQp544gl27txJnz59SgWwpKQk+vTpw86dO3niiSeqpAXsoYcewjAM1qxZw9ChQ2nRogVt27Zl4sSJ/Pzzz+zbtw/DMEhISHCvk56ejmEYLF++3D1ty5Yt3HjjjQQFBVGvXj3uuusujh8/Xun1SsUpfImIiPzO19eXJUuW0KRJE/bu3esRwEqC1969e2nSpAlLlizB19e3UvefmprKwoULGTt2LIGBgaXmh4WFndN20tPTufbaa+ncuTPr1q1j4cKFHD16lNtuu61S65Xzo/AlIiJyipiYGJYvX+4RwH788UeP4LV8+XJiYmIqfd+7d+/GNE1atWp1Qdt57bXX6Ny5M88++yytWrWi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cCCxsbG8/fbbNGjQAKfTSbt27dwd4P39S980VFnKqqcynOn8ZGdnU79+fY/LnyXCwsKqpJ4KtXylpKRw991307JlS6677jrWrl3LokWLuP7666ukOJHaJtQeStd6XUnNT3V3lC8uKmbqA1PL7Fx/eif8qQ9MpbCwkOScZFpHtqZRUKPqPByR2sPH39XRPje1YuvlprrW86m6QAKwdOlSNm/eXOqS4KlCQkIYNmwYb7/9NnPmzGHu3LmkprqOx8fHB4ej/P6mJU6cOMFvv/3G3//+d6677jpat25NWprn2IMdOnQgISHBve3T+fr6ltpX69atS/Wz2rZtG+np6We8aa8ylXd+unTpwpEjR7DZbDRr1szjVadOnXKP6UJUqOXrnXfeqbQdi1yq+sT0YXf6bvZn7nc929HHxs0P3sz8afMZ/+b4Un27SgLY1AemMuCBARzJP0KUfxT94vqVewlCRCrIMKBxdzi03nUJ8VxasooLABNie1RqZ/uCggKOHDmCw+Hg6NGjLFy4kMmTJ3PzzTdz9913l7nOSy+9RP369encuTMWi4VPP/2U6Ohod8tNXFwc33//PVdddRV2u53w8NI38QCEh4cTGRnJW2+9Rf369Tlw4ACPP/64xzLDhw/n2WefZfDgwUyePJn69evz66+/0qBBA7p3705cXByJiYkkJCTQqFEjgoOD6du3L+3bt2fEiBG88sorFBcX89BDD9G7d2+6detW4XO0bds2CgsLSU1NJSsri4SEBIByx+I60/np27cv3bt3Z/DgwTz//PO0aNGCw4cP88033zBkyBC6detW5jFdyDAferajiJcF+QYxqNkgIvwi2JuxF4fTQdd+Xfl/n/6/Mu9qBFcAm/TJJOr2qIuP1YeBTQdSN6CulysXqeWi20NEvKsD/dme4WiakJboWr5eu0otY+HChdSvX5+4uDj69+/PsmXLmDp1KvPmzSv3DsDg4GCef/55unXrxmWXXca+ffv49ttvsVhcH/MvvvgiixcvJiYmhs6dO5e7b4vFwscff8z69etp164dEyZM4IUXXvBYxtfXl++++466dety00030b59e6ZMmeKubejQofTv359rrrmGqKgoPvroIwzDYN68eYSHh9OrVy/69u1LkyZNmDNnznmdo5tuuonOnTvz9ddfs3z5cjp37nzG4zrT+TEMg2+//ZZevXox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Jit3HmPh1iOk5xZRN8ROmL8Pxu+P2ihhmibpuUUczconIsCX/u3r07NZHSwWo5wti1TM/sz95BRV/PFcgT6BxIbEVkFFckkxTTi4FrbMdQWqwCjX6/QxwEzT1dqVlQw+/tCsL7T+P7Cd+YtrVbsYPk9EzsclGb5KJKXmsnRHClsPZ5CZX4wB+FgtmJgUF5uYQIi/jXYNQ7m2VV0ahQdUa70iIlUi+xjs+g6S1rjuYATXWGCGAY4iwHQNTxHVGlrcAHVbV2u5JS6mzxORirikw1eJIxn5JB7P4UhGHqk5hWBAZKCdeiF+NIkKpF6IhpQQkUtAbioc+83VwpV91DUavl8YhDSA8DjXy7h4Wv4vxs8TkXNx5gv8l4joUD+iQxWwROQSFxABsd2ruwqRWu+S63AvIiIiUp0UvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yFbdBUjtYJom6blFHMsuIK/QgcUwCAvwISrYjp+PtbrLk0uFowiyj0LOcTAdYLVDUD0IiASLvmuKyMVB4UsuSF6hg00H01mTmEpSWi45BQ4cphMw8LNZCPHzoUNMKF0ahxNfJxDDMKq7ZKmNMg5C0lpI+gXy0qAo1zXdsIBvEARHQ9xV0LAr+IVWb60icskzTNM0vbnDzMxMQkNDycjIICQk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auXKTQVHPkQ0hbZDXH29dLOHiFQTXXaUC5Jf5GDLoQzWJKZyIDWXnIJiihxODMPA38dKsJ+NTo3D6dI4jNjIwLNvUOR8ZB6Gg+vgwM+uuxiLclwtYRab65JkSEOI7QENu5R6NJHUXPo8kZpK4UsqhWmaZBUUk5JZQH6RA8OAsABfooLs+Np0dVu8xFEMOccg97irX5jN7hpE1T9cLV21kD5PpKbS9R+pFIZhEOLnoxHrpXpZbRBS3/USEblIqUlCRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts3t6haZoAZGZmenvXIiJSi5R8jpR8rojUFF4PX1lZWQDExMR4e9ciIlILZWVlERoaWt1liJwzw/TyVwan08nhw4cJDg7GMAxv7vqcZGZmEhMTQ1JSEiEhIdVdTo2kc3jhdA4vjM7fhasJ59A0TbKysmjQoAEWi3rRSM3h9ZYvi8VCo0aNvL3bCgsJCblo/+DUFDqHF07n8MLo/F24i/0cqsVLaiJ9VRARERHxIoUvERERES9S+DqN3W7nySefxG63V3cpNZbO4YXTObwwOn8XTudQpOp4vcO9iIiIyKVMLV8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl+neP3114mLi8PPz48rrriCNWvWVHdJNcrKlSsZOHAgDRo0wDAMvvzyy+ouqUaZPHkyl112GcHBwdStW5fBgwfz22+/VXdZNcq0adPo0KGDe2DQ7t27s2DBguouq8aaMmUKhmHwyCOPVHcpIrWKwtfv5syZw8SJE3nyySfZsGEDHTt2pF+/fqSkpFR3aTVGTk4OHTt25PXXX6/uUmqkFStWMHbsWH7++WcWL15MUVERN9xwAzk5OdVdWo3RqFEjpkyZwvr161m3bh3XXnstgwYNYuvWrdVdWo2zdu1apk+fTocOHaq7FJFaR0NN/O6KK67gsssu47XXXgNcz6CMiYnhT3/6E48//ng1V1fzGIbBF198weDBg6u7lBrr2LFj1K1blxUrVtCrV6/qLqfGioiI4IUXXmDMmDHVXUqNkZ2dTZcuXXjjjTf417/+RadOnXjllVequyyRWkMtX0BhYSHr16+nb9++7mkWi4W+ffvy008/VWNlcinLyMgAXOFBKs7hcPDxxx+Tk5ND9+7dq7ucGmXs2LEMGDDA42+iiFQerz9Y+2J0/PhxHA4H9erV85her149duzYUU1VyaXM6XTyyCOPcNVVV9GuXbvqLqdG2bx5M927dyc/P5+goCC++OIL2rRpU91l1Rgff/wxGzZsYO3atdVdikitpfAlchEaO3YsW7ZsYdWqVdVdSo3TsmVLEhISyMjI4LPPPmPkyJGsWLFCAewcJCUl8fDDD7N48WL8/PyquxyRWkvhC6hTpw5Wq5WjR496TD969CjR0dHVVJVcqsaNG8f8+fNZuXIljRo1qu5yahxfX1+aNWsGQNeuXVm7di3//e9/mT59ejVXdvFbv349KSkpdOnSxT3N4XCwcuVKXnvtNQoKCrBardVYoUjtoD5fuP5Yd+3ale+//949zel08v3336uviHiNaZqMGzeOL774gqVLlxIfH1/dJdUKTqeTgoKC6i6jRrjuuuvYvHkzCQkJ7le3bt0YMWIECQkJCl4ilUQtX7+bOHEiI0eOpFu3blx++eW88sor5OTkMHr06OourcbIzs5m9+7d7p8TExNJSEggIiKCxo0bV2NlNcPYsWOZPXs28+bNIzg4mCNHjgAQGhqKv79/NVdXM0yaNIkbb7yRxo0bk5WVxezZs1m+fDmLFi2q7tJqhODg4FJ9DAMDA4mMjFTfQ5FKpPD1u2HDhnHs2DGeeOIJjhw5QqdOnVi4cGGpTvhSvnXr1nHNNde4f544cSIAI0eOZObMmdVUVc0xbdo0APr06eMxfcaMGYwaNcr7BdVAKSkp3H333SQnJxMaGkqHDh1YtGgR119/fXWXJiLipnG+RERERLxIfb5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSL/j+ISD+Fp1HZzAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "M = np.zeros((5, 5))\n", + " M = np.zeros((5, 5))\n", "\n", - "# Set the reward locations\n", - "M[0,1] = 4\n", - "M[1,1] = 5\n", - "M[1,3] = 7\n", - "M[0,3] = 8\n", - "M[4,1] = 10\n", - "M[4,3] = 11\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + " M[4,1] = 10\n", + " M[4,3] = 11\n", "\n", - "# Set the cue locations\n", - "M[2,0] = 3\n", - "M[2,4] = 6\n", - "M[3,2] = 9\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + " M[3,2] = 9\n", "\n", - "# Set the initial position\n", - "M[2,2] = 1\n", + " # Set the initial position\n", + " M[2,2] = 1\n", + " return M\n", "\n", + "M = get_maze_matrix(small=False)\n", "env_info = parse_maze(M)\n", "tmaze_env = GeneralizedTMazeEnv(env_info)\n", "_ = render(env_info, tmaze_env)" @@ -164,7 +126,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -194,13 +156,6 @@ ")" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": {}, @@ -212,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -222,7 +177,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -556,7 +511,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -564,41 +519,6 @@ "\n", "io.mimsave('tmp_dir/gif.gif', ims, format=\"GIF\", duration=1)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { From 9fbcae360ddfa76f09190c049cb531f05c6e44d4 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Wed, 12 Jun 2024 15:12:40 +0200 Subject: [PATCH 092/196] remove duplicate line --- pymdp/jax/envs/env.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pymdp/jax/envs/env.py b/pymdp/jax/envs/env.py index 2925a8dc..81c3a062 100644 --- a/pymdp/jax/envs/env.py +++ b/pymdp/jax/envs/env.py @@ -70,6 +70,4 @@ def step(self, rng_key: PRNGKeyArray, actions: Optional[Array] = None): new_obs = jtu.tree_map(cat_sample, keys, obs_probs) new_obs = jtu.tree_map(lambda x: jnp.expand_dims(x, -1), new_obs) - new_obs = jtu.tree_map(lambda x: jnp.expand_dims(x, -1), new_obs) - return new_obs, tree_at(lambda x: (x.state), self, new_state) From 30233a938cd95f72d211766f690d735f2b80325b Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Wed, 12 Jun 2024 15:13:00 +0200 Subject: [PATCH 093/196] remove duplicate --- examples/tmp_dir/gif.gif | Bin 34054 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 examples/tmp_dir/gif.gif diff --git a/examples/tmp_dir/gif.gif b/examples/tmp_dir/gif.gif deleted file mode 100644 index b65ef82b3f85d830aafca2b835ce32d155d4925f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34054 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 S$MNefc$uOTltAg&_5TIKVsDQC From 1352a6b263b5ce51b08e6ffad5c2f5313665149f Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Wed, 12 Jun 2024 15:14:20 +0200 Subject: [PATCH 094/196] line length agent --- pymdp/agent.py | 478 ++++++++++++++++++++++++++----------------------- 1 file changed, 253 insertions(+), 225 deletions(-) diff --git a/pymdp/agent.py b/pymdp/agent.py index de8363c8..6659f911 100644 --- a/pymdp/agent.py +++ b/pymdp/agent.py @@ -13,8 +13,9 @@ from pymdp import utils, maths import copy + class Agent(object): - """ + """ The Agent class, the highest-level API that wraps together processes for action, perception, and learning under active inference. The basic usage is as follows: @@ -52,7 +53,7 @@ def __init__( use_states_info_gain=True, use_param_info_gain=False, action_selection="deterministic", - sampling_mode = "marginal", # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") + sampling_mode="marginal", # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") inference_algo="VANILLA", inference_params=None, modalities_to_learn="all", @@ -67,11 +68,11 @@ def __init__( B_factor_list=None, sophisticated=False, si_horizon=3, - si_policy_prune_threshold=1/16, - si_state_prune_threshold=1/16, + si_policy_prune_threshold=1 / 16, + si_state_prune_threshold=1 / 16, si_prune_penalty=512, ii_depth=10, - ii_threshold=1/16, + ii_threshold=1 / 16, ): ### Constant parameters ### @@ -104,13 +105,13 @@ def __init__( # Initialise observation model (A matrices) if not isinstance(A, np.ndarray): - raise TypeError( - 'A matrix must be a numpy array' - ) + raise TypeError("A matrix must be a numpy array") self.A = utils.to_obj_array(A) - assert utils.is_normalized(self.A), "A matrix is not normalized (i.e. A[m].sum(axis = 0) must all equal 1.0 for all modalities)" + assert utils.is_normalized( + self.A + ), "A matrix is not normalized (i.e. A[m].sum(axis = 0) must all equal 1.0 for all modalities)" # Determine number of observation modalities and their respective dimensions self.num_obs = [self.A[m].shape[0] for m in range(len(self.A))] @@ -121,19 +122,19 @@ def __init__( # Initialise transition model (B matrices) if not isinstance(B, np.ndarray): - raise TypeError( - 'B matrix must be a numpy array' - ) + raise TypeError("B matrix must be a numpy array") self.B = utils.to_obj_array(B) - assert utils.is_normalized(self.B), "B matrix is not normalized (i.e. B[f].sum(axis = 0) must all equal 1.0 for all factors)" + assert utils.is_normalized( + self.B + ), "B matrix is not normalized (i.e. B[f].sum(axis = 0) must all equal 1.0 for all factors)" # Determine number of hidden state factors and their dimensionalities self.num_states = [self.B[f].shape[0] for f in range(len(self.B))] self.num_factors = len(self.num_states) - # Assigning prior parameters on transition model (pB matrices) + # Assigning prior parameters on transition model (pB matrices) self.pB = pB # If no `num_controls` are given, then this is inferred from the shapes of the input B matrices @@ -141,54 +142,77 @@ def __init__( self.num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] else: inferred_num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] - assert num_controls == inferred_num_controls, "num_controls must be consistent with the shapes of the input B matrices" + assert ( + num_controls == inferred_num_controls + ), "num_controls must be consistent with the shapes of the input B matrices" self.num_controls = num_controls # checking that `A_factor_list` and `B_factor_list` are consistent with `num_factors`, `num_states`, and lagging dimensions of `A` and `B` tensors self.factorized = False if A_factor_list == None: - self.A_factor_list = self.num_modalities * [list(range(self.num_factors))] # defaults to having all modalities depend on all factors + self.A_factor_list = self.num_modalities * [ + list(range(self.num_factors)) + ] # defaults to having all modalities depend on all factors for m in range(self.num_modalities): factor_dims = tuple([self.num_states[f] for f in self.A_factor_list[m]]) - assert self.A[m].shape[1:] == factor_dims, f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of A{m}..." + assert ( + self.A[m].shape[1:] == factor_dims + ), f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of A{m}..." if self.pA is not None: - assert self.pA[m].shape[1:] == factor_dims, f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of pA{m}..." + assert ( + self.pA[m].shape[1:] == factor_dims + ), f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of pA{m}..." else: self.factorized = True for m in range(self.num_modalities): - assert max(A_factor_list[m]) <= (self.num_factors - 1), f"Check modality {m} of A_factor_list - must be consistent with `num_states` and `num_factors`..." + assert max(A_factor_list[m]) <= ( + self.num_factors - 1 + ), f"Check modality {m} of A_factor_list - must be consistent with `num_states` and `num_factors`..." factor_dims = tuple([self.num_states[f] for f in A_factor_list[m]]) - assert self.A[m].shape[1:] == factor_dims, f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of A{m}..." + assert ( + self.A[m].shape[1:] == factor_dims + ), f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of A{m}..." if self.pA is not None: - assert self.pA[m].shape[1:] == factor_dims, f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of pA{m}..." + assert ( + self.pA[m].shape[1:] == factor_dims + ), f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of pA{m}..." self.A_factor_list = A_factor_list - # generate a list of the modalities that depend on each factor + # generate a list of the modalities that depend on each factor A_modality_list = [] for f in range(self.num_factors): - A_modality_list.append( [m for m in range(self.num_modalities) if f in self.A_factor_list[m]] ) + A_modality_list.append([m for m in range(self.num_modalities) if f in self.A_factor_list[m]]) # Store thee `A_factor_list` and the `A_modality_list` in a Markov blanket dictionary - self.mb_dict = { - 'A_factor_list': self.A_factor_list, - 'A_modality_list': A_modality_list - } + self.mb_dict = {"A_factor_list": self.A_factor_list, "A_modality_list": A_modality_list} if B_factor_list == None: - self.B_factor_list = [[f] for f in range(self.num_factors)] # defaults to having all factors depend only on themselves + self.B_factor_list = [ + [f] for f in range(self.num_factors) + ] # defaults to having all factors depend only on themselves for f in range(self.num_factors): factor_dims = tuple([self.num_states[f] for f in self.B_factor_list[f]]) - assert self.B[f].shape[1:-1] == factor_dims, f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B{f}..." + assert ( + self.B[f].shape[1:-1] == factor_dims + ), f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B{f}..." if self.pB is not None: - assert self.pB[f].shape[1:-1] == factor_dims, f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB{f}..." + assert ( + self.pB[f].shape[1:-1] == factor_dims + ), f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB{f}..." else: self.factorized = True for f in range(self.num_factors): - assert max(B_factor_list[f]) <= (self.num_factors - 1), f"Check factor {f} of B_factor_list - must be consistent with `num_states` and `num_factors`..." + assert max(B_factor_list[f]) <= ( + self.num_factors - 1 + ), f"Check factor {f} of B_factor_list - must be consistent with `num_states` and `num_factors`..." factor_dims = tuple([self.num_states[f] for f in B_factor_list[f]]) - assert self.B[f].shape[1:-1] == factor_dims, f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of B{f}..." + assert ( + self.B[f].shape[1:-1] == factor_dims + ), f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of B{f}..." if self.pB is not None: - assert self.pB[f].shape[1:-1] == factor_dims, f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of pB{f}..." + assert ( + self.pB[f].shape[1:-1] == factor_dims + ), f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of pB{f}..." self.B_factor_list = B_factor_list # Users have the option to make only certain factors controllable. @@ -197,11 +221,15 @@ def __init__( self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] else: - assert max(control_fac_idx) <= (self.num_factors - 1), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + assert max(control_fac_idx) <= ( + self.num_factors - 1 + ), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." self.control_fac_idx = control_fac_idx for factor_idx in self.control_fac_idx: - assert self.num_controls[factor_idx] > 1, "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" + assert ( + self.num_controls[factor_idx] > 1 + ), "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" # Again, the use can specify a set of possible policies, or # all possible combinations of actions and timesteps will be considered @@ -209,65 +237,75 @@ def __init__( policies = self._construct_policies() self.policies = policies - assert all([len(self.num_controls) == policy.shape[1] for policy in self.policies]), "Number of control states is not consistent with policy dimensionalities" - + assert all( + [len(self.num_controls) == policy.shape[1] for policy in self.policies] + ), "Number of control states is not consistent with policy dimensionalities" + all_policies = np.vstack(self.policies) - assert all([n_c >= max_action for (n_c, max_action) in zip(self.num_controls, list(np.max(all_policies, axis =0)+1))]), "Maximum number of actions is not consistent with `num_controls`" + assert all( + [n_c >= max_action for (n_c, max_action) in zip(self.num_controls, list(np.max(all_policies, axis=0) + 1))] + ), "Maximum number of actions is not consistent with `num_controls`" # Construct prior preferences (uniform if not specified) if C is not None: if not isinstance(C, np.ndarray): - raise TypeError( - 'C vector must be a numpy array' - ) + raise TypeError("C vector must be a numpy array") self.C = utils.to_obj_array(C) - assert len(self.C) == self.num_modalities, f"Check C vector: number of sub-arrays must be equal to number of observation modalities: {self.num_modalities}" + assert ( + len(self.C) == self.num_modalities + ), f"Check C vector: number of sub-arrays must be equal to number of observation modalities: {self.num_modalities}" for modality, c_m in enumerate(self.C): - assert c_m.shape[0] == self.num_obs[modality], f"Check C vector: number of rows of C vector for modality {modality} should be equal to {self.num_obs[modality]}" + assert ( + c_m.shape[0] == self.num_obs[modality] + ), f"Check C vector: number of rows of C vector for modality {modality} should be equal to {self.num_obs[modality]}" else: self.C = self._construct_C_prior() # Construct prior over hidden states (uniform if not specified) - + if D is not None: if not isinstance(D, np.ndarray): - raise TypeError( - 'D vector must be a numpy array' - ) + raise TypeError("D vector must be a numpy array") self.D = utils.to_obj_array(D) - assert len(self.D) == self.num_factors, f"Check D vector: number of sub-arrays must be equal to number of hidden state factors: {self.num_factors}" + assert ( + len(self.D) == self.num_factors + ), f"Check D vector: number of sub-arrays must be equal to number of hidden state factors: {self.num_factors}" for f, d_f in enumerate(self.D): - assert d_f.shape[0] == self.num_states[f], f"Check D vector: number of entries of D vector for factor {f} should be equal to {self.num_states[f]}" + assert ( + d_f.shape[0] == self.num_states[f] + ), f"Check D vector: number of entries of D vector for factor {f} should be equal to {self.num_states[f]}" else: if pD is not None: self.D = utils.norm_dist_obj_arr(pD) else: self.D = self._construct_D_prior() - assert utils.is_normalized(self.D), "D vector is not normalized (i.e. D[f].sum() must all equal 1.0 for all factors)" + assert utils.is_normalized( + self.D + ), "D vector is not normalized (i.e. D[f].sum() must all equal 1.0 for all factors)" # Assigning prior parameters on initial hidden states (pD vectors) self.pD = pD - # Construct prior over policies (uniform if not specified) + # Construct prior over policies (uniform if not specified) if E is not None: if not isinstance(E, np.ndarray): - raise TypeError( - 'E vector must be a numpy array' - ) + raise TypeError("E vector must be a numpy array") self.E = E - assert len(self.E) == len(self.policies), f"Check E vector: length of E must be equal to number of policies: {len(self.policies)}" + assert len(self.E) == len( + self.policies + ), f"Check E vector: length of E must be equal to number of policies: {len(self.policies)}" else: self.E = self._construct_E_prior() - + # Construct I for backwards induction (if H specified) if H is not None: self.H = H @@ -277,8 +315,10 @@ def __init__( self.I = None self.edge_handling_params = {} - self.edge_handling_params['use_BMA'] = use_BMA # creates a 'D-like' moving prior - self.edge_handling_params['policy_sep_prior'] = policy_sep_prior # carries forward last timesteps posterior, in a policy-conditioned way + self.edge_handling_params["use_BMA"] = use_BMA # creates a 'D-like' moving prior + self.edge_handling_params["policy_sep_prior"] = ( + policy_sep_prior # carries forward last timesteps posterior, in a policy-conditioned way + ) # use_BMA and policy_sep_prior can both be False, but both cannot be simultaneously be True. If one of them is True, the other must be False if policy_sep_prior: @@ -287,8 +327,8 @@ def __init__( "Inconsistent choice of `policy_sep_prior` and `use_BMA`.\ You have set `policy_sep_prior` to True, so we are setting `use_BMA` to False" ) - self.edge_handling_params['use_BMA'] = False - + self.edge_handling_params["use_BMA"] = False + if inference_algo == None: self.inference_algo = "VANILLA" self.inference_params = self._get_default_params() @@ -296,7 +336,7 @@ def __init__( warnings.warn( "If `inference_algo` is VANILLA, then inference_horizon must be 1\n. \ Setting inference_horizon to default value of 1...\n" - ) + ) self.inference_horizon = 1 else: self.inference_horizon = 1 @@ -308,15 +348,15 @@ def __init__( if save_belief_hist: self.qs_hist = [] self.q_pi_hist = [] - + self.prev_obs = [] self.reset() - + self.action = None self.prev_actions = None def _construct_C_prior(self): - + C = utils.obj_array_zeros(self.num_obs) return C @@ -328,20 +368,18 @@ def _construct_D_prior(self): return D def _construct_policies(self): - - policies = control.construct_policies( + + policies = control.construct_policies( self.num_states, self.num_controls, self.policy_len, self.control_fac_idx ) return policies def _construct_num_controls(self): - num_controls = control.get_num_controls_from_policies( - self.policies - ) - + num_controls = control.get_num_controls_from_policies(self.policies) + return num_controls - + def _construct_E_prior(self): E = np.ones(len(self.policies)) / len(self.policies) return E @@ -356,38 +394,40 @@ def reset(self, init_qs=None): qs: ``numpy.ndarray`` of dtype object Initialized posterior over hidden states. Depending on the inference algorithm chosen and other parameters (such as the parameters stored within ``edge_handling_paramss), the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `, the indexing structure of ``qs`` is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` - at timepoint ``t_idx``. In this case, the returned ``qs`` will only have entries filled out for the first timestep, i.e. for ``q[p_idx][0]``, for all + For example, in case the ``self.inference_algo == 'MMP' `, the indexing structure of ``qs`` is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + at timepoint ``t_idx``. In this case, the returned ``qs`` will only have entries filled out for the first timestep, i.e. for ``q[p_idx][0]``, for all policy-indices ``p_idx``. Subsequent entries ``q[:][1, 2, ...]`` will be initialized to empty ``numpy.ndarray`` objects. """ self.curr_timestep = 0 if init_qs is None: - if self.inference_algo == 'VANILLA': + if self.inference_algo == "VANILLA": self.qs = utils.obj_array_uniform(self.num_states) - else: # in the case you're doing MMP (i.e. you have an inference_horizon > 1), we have to account for policy- and timestep-conditioned posterior beliefs + else: # in the case you're doing MMP (i.e. you have an inference_horizon > 1), we have to account for policy- and timestep-conditioned posterior beliefs self.qs = utils.obj_array(len(self.policies)) for p_i, _ in enumerate(self.policies): - self.qs[p_i] = utils.obj_array(self.inference_horizon + self.policy_len + 1) # + 1 to include belief about current timestep + self.qs[p_i] = utils.obj_array( + self.inference_horizon + self.policy_len + 1 + ) # + 1 to include belief about current timestep self.qs[p_i][0] = utils.obj_array_uniform(self.num_states) - + first_belief = utils.obj_array(len(self.policies)) for p_i, _ in enumerate(self.policies): - first_belief[p_i] = copy.deepcopy(self.D) - - if self.edge_handling_params['policy_sep_prior']: - self.set_latest_beliefs(last_belief = first_belief) + first_belief[p_i] = copy.deepcopy(self.D) + + if self.edge_handling_params["policy_sep_prior"]: + self.set_latest_beliefs(last_belief=first_belief) else: - self.set_latest_beliefs(last_belief = self.D) - + self.set_latest_beliefs(last_belief=self.D) + else: self.qs = init_qs - + if self.pA is not None: self.A = utils.norm_dist_obj_arr(self.pA) - + if self.pB is not None: self.B = utils.norm_dist_obj_arr(self.pB) @@ -414,12 +454,12 @@ def step_time(self): if self.inference_algo == "MMP" and (self.curr_timestep - self.inference_horizon) >= 0: self.set_latest_beliefs() - + return self.curr_timestep - - def set_latest_beliefs(self,last_belief=None): + + def set_latest_beliefs(self, last_belief=None): """ - Both sets and returns the penultimate belief before the first timestep of the backwards inference horizon. + Both sets and returns the penultimate belief before the first timestep of the backwards inference horizon. In the case that the inference horizon includes the first timestep of the simulation, then the ``latest_belief`` is simply the first belief of the whole simulation, or the prior (``self.D``). The particular structure of the ``latest_belief`` depends on the value of ``self.edge_handling_params['use_BMA']``. @@ -427,9 +467,9 @@ def set_latest_beliefs(self,last_belief=None): Returns --------- latest_belief: ``numpy.ndarray`` of dtype object - Penultimate posterior beliefs over hidden states at the timestep just before the first timestep of the inference horizon. + Penultimate posterior beliefs over hidden states at the timestep just before the first timestep of the inference horizon. Depending on the value of ``self.edge_handling_params['use_BMA']``, the shape of this output array will differ. - If ``self.edge_handling_params['use_BMA'] == True``, then ``latest_belief`` will be a Bayesian model average + If ``self.edge_handling_params['use_BMA'] == True``, then ``latest_belief`` will be a Bayesian model average of beliefs about hidden states, where the average is taken with respect to posterior beliefs about policies. Otherwise, `latest_belief`` will be the full, policy-conditioned belief about hidden states, and will have indexing structure policies->factors, such that ``latest_belief[p_idx][f_idx]`` refers to the penultimate belief about marginal factor ``f_idx`` @@ -442,39 +482,44 @@ def set_latest_beliefs(self,last_belief=None): last_belief[p_i] = copy.deepcopy(self.qs[p_i][0]) begin_horizon_step = self.curr_timestep - self.inference_horizon - if self.edge_handling_params['use_BMA'] and (begin_horizon_step >= 0): + if self.edge_handling_params["use_BMA"] and (begin_horizon_step >= 0): if hasattr(self, "q_pi_hist"): - self.latest_belief = inference.average_states_over_policies(last_belief, self.q_pi_hist[begin_horizon_step]) # average the earliest marginals together using contemporaneous posterior over policies (`self.q_pi_hist[0]`) + self.latest_belief = inference.average_states_over_policies( + last_belief, self.q_pi_hist[begin_horizon_step] + ) # average the earliest marginals together using contemporaneous posterior over policies (`self.q_pi_hist[0]`) else: - self.latest_belief = inference.average_states_over_policies(last_belief, self.q_pi) # average the earliest marginals together using posterior over policies (`self.q_pi`) + self.latest_belief = inference.average_states_over_policies( + last_belief, self.q_pi + ) # average the earliest marginals together using posterior over policies (`self.q_pi`) else: self.latest_belief = last_belief return self.latest_belief - + def get_future_qs(self): """ Returns the last ``self.policy_len`` timesteps of each policy-conditioned belief over hidden states. This is a step of pre-processing that needs to be done before computing - the expected free energy of policies. We do this to avoid computing the expected free energy of + the expected free energy of policies. We do this to avoid computing the expected free energy of policies using beliefs about hidden states in the past (so-called "post-dictive" beliefs). Returns --------- future_qs_seq: ``numpy.ndarray`` of dtype object Posterior beliefs over hidden states under a policy, in the future. This is a nested ``numpy.ndarray`` object array, with one - sub-array ``future_qs_seq[p_idx]`` for each policy. The indexing structure is policy->timepoint-->factor, so that - ``future_qs_seq[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + sub-array ``future_qs_seq[p_idx]`` for each policy. The indexing structure is policy->timepoint-->factor, so that + ``future_qs_seq[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` at future timepoint ``t_idx``, relative to the current timestep. """ - + future_qs_seq = utils.obj_array(len(self.qs)) for p_idx in range(len(self.qs)): - future_qs_seq[p_idx] = self.qs[p_idx][-(self.policy_len+1):] # this grabs only the last `policy_len`+1 beliefs about hidden states, under each policy + future_qs_seq[p_idx] = self.qs[p_idx][ + -(self.policy_len + 1) : + ] # this grabs only the last `policy_len`+1 beliefs about hidden states, under each policy return future_qs_seq - def infer_states(self, observation, distr_obs=False): """ Update approximate posterior over hidden states by solving variational inference problem, given an observation. @@ -492,8 +537,8 @@ def infer_states(self, observation, distr_obs=False): qs: ``numpy.ndarray`` of dtype object Posterior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` at timepoint ``t_idx``. """ @@ -505,7 +550,7 @@ def infer_states(self, observation, distr_obs=False): if self.inference_algo == "VANILLA": if self.action is not None: empirical_prior = control.get_expected_states_interactions( - self.qs, self.B, self.B_factor_list, self.action.reshape(1, -1) + self.qs, self.B, self.B_factor_list, self.action.reshape(1, -1) )[0] else: empirical_prior = self.D @@ -516,14 +561,14 @@ def infer_states(self, observation, distr_obs=False): self.num_states, self.mb_dict, empirical_prior, - **self.inference_params + **self.inference_params, ) elif self.inference_algo == "MMP": self.prev_obs.append(observation) if len(self.prev_obs) > self.inference_horizon: - latest_obs = self.prev_obs[-self.inference_horizon:] - latest_actions = self.prev_actions[-(self.inference_horizon-1):] + latest_obs = self.prev_obs[-self.inference_horizon :] + latest_actions = self.prev_actions[-(self.inference_horizon - 1) :] else: latest_obs = self.prev_obs latest_actions = self.prev_actions @@ -534,14 +579,14 @@ def infer_states(self, observation, distr_obs=False): self.B, self.B_factor_list, latest_obs, - self.policies, - latest_actions, - prior = self.latest_belief, - policy_sep_prior = self.edge_handling_params['policy_sep_prior'], - **self.inference_params + self.policies, + latest_actions, + prior=self.latest_belief, + policy_sep_prior=self.edge_handling_params["policy_sep_prior"], + **self.inference_params, ) - self.F = F # variational free energy of each policy + self.F = F # variational free energy of each policy if hasattr(self, "qs_hist"): self.qs_hist.append(qs) @@ -561,39 +606,32 @@ def _infer_states_test(self, observation, distr_obs=False): if self.inference_algo == "VANILLA": if self.action is not None: - empirical_prior = control.get_expected_states( - self.qs, self.B, self.action.reshape(1, -1) - )[0] + empirical_prior = control.get_expected_states(self.qs, self.B, self.action.reshape(1, -1))[0] else: empirical_prior = self.D - qs = inference.update_posterior_states( - self.A, - observation, - empirical_prior, - **self.inference_params - ) + qs = inference.update_posterior_states(self.A, observation, empirical_prior, **self.inference_params) elif self.inference_algo == "MMP": self.prev_obs.append(observation) if len(self.prev_obs) > self.inference_horizon: - latest_obs = self.prev_obs[-self.inference_horizon:] - latest_actions = self.prev_actions[-(self.inference_horizon-1):] + latest_obs = self.prev_obs[-self.inference_horizon :] + latest_actions = self.prev_actions[-(self.inference_horizon - 1) :] else: latest_obs = self.prev_obs latest_actions = self.prev_actions qs, F, xn, vn = inference._update_posterior_states_full_test( self.A, - self.B, + self.B, latest_obs, - self.policies, - latest_actions, - prior = self.latest_belief, - policy_sep_prior = self.edge_handling_params['policy_sep_prior'], - **self.inference_params + self.policies, + latest_actions, + prior=self.latest_belief, + policy_sep_prior=self.edge_handling_params["policy_sep_prior"], + **self.inference_params, ) - self.F = F # variational free energy of each policy + self.F = F # variational free energy of each policy if hasattr(self, "qs_hist"): self.qs_hist.append(qs) @@ -604,14 +642,14 @@ def _infer_states_test(self, observation, distr_obs=False): return qs, xn, vn else: return qs - + def infer_policies(self): """ Perform policy inference by optimizing a posterior (categorical) distribution over policies. This distribution is computed as the softmax of ``G * gamma + lnE`` where ``G`` is the negative expected free energy of policies, ``gamma`` is a policy precision and ``lnE`` is the (log) prior probability of policies. This function returns the posterior over policies as well as the negative expected free energy of each policy. - In this version of the function, the expected free energy of policies is computed using known factorized structure + In this version of the function, the expected free energy of policies is computed using known factorized structure in the model, which speeds up computation (particular the state information gain calculations). Returns @@ -625,21 +663,21 @@ def infer_policies(self): if self.inference_algo == "VANILLA": if self.sophisticated: q_pi, G = control.sophisticated_inference_search( - self.qs, - self.policies, - self.A, - self.B, - self.C, - self.A_factor_list, - self.B_factor_list, + self.qs, + self.policies, + self.A, + self.B, + self.C, + self.A_factor_list, + self.B_factor_list, self.I, self.si_horizon, - self.si_policy_prune_threshold, - self.si_state_prune_threshold, + self.si_policy_prune_threshold, + self.si_state_prune_threshold, self.si_prune_penalty, 1.0, self.inference_params, - n=0 + n=0, ) else: q_pi, G = control.update_posterior_policies_factorized( @@ -655,9 +693,9 @@ def infer_policies(self): self.use_param_info_gain, self.pA, self.pB, - E = self.E, - I = self.I, - gamma = self.gamma + E=self.E, + I=self.I, + gamma=self.gamma, ) elif self.inference_algo == "MMP": @@ -680,13 +718,13 @@ def infer_policies(self): F=self.F, E=self.E, I=self.I, - gamma=self.gamma + gamma=self.gamma, ) if hasattr(self, "q_pi_hist"): self.q_pi_hist.append(q_pi) if len(self.q_pi_hist) > self.inference_horizon: - self.q_pi_hist = self.q_pi_hist[-(self.inference_horizon-1):] + self.q_pi_hist = self.q_pi_hist[-(self.inference_horizon - 1) :] self.q_pi = q_pi self.G = G @@ -699,7 +737,7 @@ def sample_action(self): This function also updates time variable (and thus manages consequences of updating the moving reference frame of beliefs) using ``self.step_time()``. - + Returns ---------- action: 1D ``numpy.ndarray`` @@ -708,25 +746,26 @@ def sample_action(self): if self.sampling_mode == "marginal": action = control.sample_action( - self.q_pi, self.policies, self.num_controls, action_selection = self.action_selection, alpha = self.alpha + self.q_pi, self.policies, self.num_controls, action_selection=self.action_selection, alpha=self.alpha ) elif self.sampling_mode == "full": - action = control.sample_policy(self.q_pi, self.policies, self.num_controls, - action_selection=self.action_selection, alpha=self.alpha) + action = control.sample_policy( + self.q_pi, self.policies, self.num_controls, action_selection=self.action_selection, alpha=self.alpha + ) self.action = action self.step_time() return action - + def _sample_action_test(self): """ Sample or select a discrete action from the posterior over control states. This function both sets or cachés the action as an internal variable with the agent and returns it. This function also updates time variable (and thus manages consequences of updating the moving reference frame of beliefs) using ``self.step_time()``. - + Returns ---------- action: 1D ``numpy.ndarray`` @@ -734,11 +773,13 @@ def _sample_action_test(self): """ if self.sampling_mode == "marginal": - action, p_dist = control._sample_action_test(self.q_pi, self.policies, self.num_controls, - action_selection=self.action_selection, alpha=self.alpha) + action, p_dist = control._sample_action_test( + self.q_pi, self.policies, self.num_controls, action_selection=self.action_selection, alpha=self.alpha + ) elif self.sampling_mode == "full": - action, p_dist = control._sample_policy_test(self.q_pi, self.policies, self.num_controls, - action_selection=self.action_selection, alpha=self.alpha) + action, p_dist = control._sample_policy_test( + self.q_pi, self.policies, self.num_controls, action_selection=self.action_selection, alpha=self.alpha + ) self.action = action @@ -763,17 +804,13 @@ def update_A(self, obs): """ qA = learning.update_obs_likelihood_dirichlet_factorized( - self.pA, - self.A, - obs, - self.qs, - self.A_factor_list, - self.lr_pA, - self.modalities_to_learn + self.pA, self.A, obs, self.qs, self.A_factor_list, self.lr_pA, self.modalities_to_learn ) - self.pA = qA # set new prior to posterior - self.A = utils.norm_dist_obj_arr(qA) # take expected value of posterior Dirichlet parameters to calculate posterior over A array + self.pA = qA # set new prior to posterior + self.A = utils.norm_dist_obj_arr( + qA + ) # take expected value of posterior Dirichlet parameters to calculate posterior over A array return qA @@ -794,28 +831,25 @@ def _update_A_old(self, obs): """ qA = learning.update_obs_likelihood_dirichlet( - self.pA, - self.A, - obs, - self.qs, - self.lr_pA, - self.modalities_to_learn + self.pA, self.A, obs, self.qs, self.lr_pA, self.modalities_to_learn ) - self.pA = qA # set new prior to posterior - self.A = utils.norm_dist_obj_arr(qA) # take expected value of posterior Dirichlet parameters to calculate posterior over A array + self.pA = qA # set new prior to posterior + self.A = utils.norm_dist_obj_arr( + qA + ) # take expected value of posterior Dirichlet parameters to calculate posterior over A array return qA def update_B(self, qs_prev): """ - Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood - + Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood + Parameters ----------- qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object Marginal posterior beliefs over hidden states at previous timepoint. - + Returns ----------- qB: ``numpy.ndarray`` of dtype object @@ -823,30 +857,25 @@ def update_B(self, qs_prev): """ qB = learning.update_state_likelihood_dirichlet_interactions( - self.pB, - self.B, - self.action, - self.qs, - qs_prev, - self.B_factor_list, - self.lr_pB, - self.factors_to_learn + self.pB, self.B, self.action, self.qs, qs_prev, self.B_factor_list, self.lr_pB, self.factors_to_learn ) - self.pB = qB # set new prior to posterior - self.B = utils.norm_dist_obj_arr(qB) # take expected value of posterior Dirichlet parameters to calculate posterior over B array + self.pB = qB # set new prior to posterior + self.B = utils.norm_dist_obj_arr( + qB + ) # take expected value of posterior Dirichlet parameters to calculate posterior over B array return qB - + def _update_B_old(self, qs_prev): """ - Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood - + Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood + Parameters ----------- qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object Marginal posterior beliefs over hidden states at previous timepoint. - + Returns ----------- qB: ``numpy.ndarray`` of dtype object @@ -854,54 +883,52 @@ def _update_B_old(self, qs_prev): """ qB = learning.update_state_likelihood_dirichlet( - self.pB, - self.B, - self.action, - self.qs, - qs_prev, - self.lr_pB, - self.factors_to_learn + self.pB, self.B, self.action, self.qs, qs_prev, self.lr_pB, self.factors_to_learn ) - self.pB = qB # set new prior to posterior - self.B = utils.norm_dist_obj_arr(qB) # take expected value of posterior Dirichlet parameters to calculate posterior over B array + self.pB = qB # set new prior to posterior + self.B = utils.norm_dist_obj_arr( + qB + ) # take expected value of posterior Dirichlet parameters to calculate posterior over B array return qB - - def update_D(self, qs_t0 = None): + + def update_D(self, qs_t0=None): """ - Update Dirichlet parameters of the initial hidden state distribution + Update Dirichlet parameters of the initial hidden state distribution (prior beliefs about hidden states at the beginning of the inference window). Parameters ----------- qs_t0: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, or ``None`` - Marginal posterior beliefs over hidden states at current timepoint. If ``None``, the + Marginal posterior beliefs over hidden states at current timepoint. If ``None``, the value of ``qs_t0`` is set to ``self.qs_hist[0]`` (i.e. the initial hidden state beliefs at the first timepoint). If ``self.inference_algo == "MMP"``, then ``qs_t0`` is set to be the Bayesian model average of beliefs about hidden states at the first timestep of the backwards inference horizon, where the average is taken with respect to posterior beliefs about policies. - + Returns ----------- qD: ``numpy.ndarray`` of dtype object Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs_t0``), after having updated it with state beliefs. """ - + if self.inference_algo == "VANILLA": - + if qs_t0 is None: - + try: qs_t0 = self.qs_hist[0] except ValueError: - print("qs_t0 must either be passed as argument to `update_D` or `save_belief_hist` must be set to True!") + print( + "qs_t0 must either be passed as argument to `update_D` or `save_belief_hist` must be set to True!" + ) elif self.inference_algo == "MMP": - - if self.edge_handling_params['use_BMA']: + + if self.edge_handling_params["use_BMA"]: qs_t0 = self.latest_belief - elif self.edge_handling_params['policy_sep_prior']: - + elif self.edge_handling_params["policy_sep_prior"]: + qs_pi_t0 = self.latest_belief # get beliefs about policies at the time at the beginning of the inference horizon @@ -910,13 +937,17 @@ def update_D(self, qs_t0 = None): q_pi_t0 = np.copy(self.q_pi_hist[begin_horizon_step]) else: q_pi_t0 = np.copy(self.q_pi) - - qs_t0 = inference.average_states_over_policies(qs_pi_t0,q_pi_t0) # beliefs about hidden states at the first timestep of the inference horizon - - qD = learning.update_state_prior_dirichlet(self.pD, qs_t0, self.lr_pD, factors = self.factors_to_learn) - - self.pD = qD # set new prior to posterior - self.D = utils.norm_dist_obj_arr(qD) # take expected value of posterior Dirichlet parameters to calculate posterior over D array + + qs_t0 = inference.average_states_over_policies( + qs_pi_t0, q_pi_t0 + ) # beliefs about hidden states at the first timestep of the inference horizon + + qD = learning.update_state_prior_dirichlet(self.pD, qs_t0, self.lr_pD, factors=self.factors_to_learn) + + self.pD = qD # set new prior to posterior + self.D = utils.norm_dist_obj_arr( + qD + ) # take expected value of posterior Dirichlet parameters to calculate posterior over D array return qD @@ -937,6 +968,3 @@ def _get_default_params(self): raise NotImplementedError("CV is not implemented") return default_params - - - From 0ef6a39b04753a20763889062dd97d9b582dc9cd Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Wed, 12 Jun 2024 15:17:31 +0200 Subject: [PATCH 095/196] undo linting issues with agent.py --- pymdp/agent.py | 478 +++++++++++++++++++++------------------------ pymdp/jax/agent.py | 312 +++++++++-------------------- 2 files changed, 313 insertions(+), 477 deletions(-) diff --git a/pymdp/agent.py b/pymdp/agent.py index 6659f911..f781dd81 100644 --- a/pymdp/agent.py +++ b/pymdp/agent.py @@ -13,9 +13,8 @@ from pymdp import utils, maths import copy - class Agent(object): - """ + """ The Agent class, the highest-level API that wraps together processes for action, perception, and learning under active inference. The basic usage is as follows: @@ -53,7 +52,7 @@ def __init__( use_states_info_gain=True, use_param_info_gain=False, action_selection="deterministic", - sampling_mode="marginal", # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") + sampling_mode = "marginal", # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") inference_algo="VANILLA", inference_params=None, modalities_to_learn="all", @@ -68,11 +67,11 @@ def __init__( B_factor_list=None, sophisticated=False, si_horizon=3, - si_policy_prune_threshold=1 / 16, - si_state_prune_threshold=1 / 16, + si_policy_prune_threshold=1/16, + si_state_prune_threshold=1/16, si_prune_penalty=512, ii_depth=10, - ii_threshold=1 / 16, + ii_threshold=1/16, ): ### Constant parameters ### @@ -105,13 +104,13 @@ def __init__( # Initialise observation model (A matrices) if not isinstance(A, np.ndarray): - raise TypeError("A matrix must be a numpy array") + raise TypeError( + 'A matrix must be a numpy array' + ) self.A = utils.to_obj_array(A) - assert utils.is_normalized( - self.A - ), "A matrix is not normalized (i.e. A[m].sum(axis = 0) must all equal 1.0 for all modalities)" + assert utils.is_normalized(self.A), "A matrix is not normalized (i.e. A[m].sum(axis = 0) must all equal 1.0 for all modalities)" # Determine number of observation modalities and their respective dimensions self.num_obs = [self.A[m].shape[0] for m in range(len(self.A))] @@ -122,19 +121,19 @@ def __init__( # Initialise transition model (B matrices) if not isinstance(B, np.ndarray): - raise TypeError("B matrix must be a numpy array") + raise TypeError( + 'B matrix must be a numpy array' + ) self.B = utils.to_obj_array(B) - assert utils.is_normalized( - self.B - ), "B matrix is not normalized (i.e. B[f].sum(axis = 0) must all equal 1.0 for all factors)" + assert utils.is_normalized(self.B), "B matrix is not normalized (i.e. B[f].sum(axis = 0) must all equal 1.0 for all factors)" # Determine number of hidden state factors and their dimensionalities self.num_states = [self.B[f].shape[0] for f in range(len(self.B))] self.num_factors = len(self.num_states) - # Assigning prior parameters on transition model (pB matrices) + # Assigning prior parameters on transition model (pB matrices) self.pB = pB # If no `num_controls` are given, then this is inferred from the shapes of the input B matrices @@ -142,77 +141,54 @@ def __init__( self.num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] else: inferred_num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] - assert ( - num_controls == inferred_num_controls - ), "num_controls must be consistent with the shapes of the input B matrices" + assert num_controls == inferred_num_controls, "num_controls must be consistent with the shapes of the input B matrices" self.num_controls = num_controls # checking that `A_factor_list` and `B_factor_list` are consistent with `num_factors`, `num_states`, and lagging dimensions of `A` and `B` tensors self.factorized = False if A_factor_list == None: - self.A_factor_list = self.num_modalities * [ - list(range(self.num_factors)) - ] # defaults to having all modalities depend on all factors + self.A_factor_list = self.num_modalities * [list(range(self.num_factors))] # defaults to having all modalities depend on all factors for m in range(self.num_modalities): factor_dims = tuple([self.num_states[f] for f in self.A_factor_list[m]]) - assert ( - self.A[m].shape[1:] == factor_dims - ), f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of A{m}..." + assert self.A[m].shape[1:] == factor_dims, f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of A{m}..." if self.pA is not None: - assert ( - self.pA[m].shape[1:] == factor_dims - ), f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of pA{m}..." + assert self.pA[m].shape[1:] == factor_dims, f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of pA{m}..." else: self.factorized = True for m in range(self.num_modalities): - assert max(A_factor_list[m]) <= ( - self.num_factors - 1 - ), f"Check modality {m} of A_factor_list - must be consistent with `num_states` and `num_factors`..." + assert max(A_factor_list[m]) <= (self.num_factors - 1), f"Check modality {m} of A_factor_list - must be consistent with `num_states` and `num_factors`..." factor_dims = tuple([self.num_states[f] for f in A_factor_list[m]]) - assert ( - self.A[m].shape[1:] == factor_dims - ), f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of A{m}..." + assert self.A[m].shape[1:] == factor_dims, f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of A{m}..." if self.pA is not None: - assert ( - self.pA[m].shape[1:] == factor_dims - ), f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of pA{m}..." + assert self.pA[m].shape[1:] == factor_dims, f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of pA{m}..." self.A_factor_list = A_factor_list - # generate a list of the modalities that depend on each factor + # generate a list of the modalities that depend on each factor A_modality_list = [] for f in range(self.num_factors): - A_modality_list.append([m for m in range(self.num_modalities) if f in self.A_factor_list[m]]) + A_modality_list.append( [m for m in range(self.num_modalities) if f in self.A_factor_list[m]] ) # Store thee `A_factor_list` and the `A_modality_list` in a Markov blanket dictionary - self.mb_dict = {"A_factor_list": self.A_factor_list, "A_modality_list": A_modality_list} + self.mb_dict = { + 'A_factor_list': self.A_factor_list, + 'A_modality_list': A_modality_list + } if B_factor_list == None: - self.B_factor_list = [ - [f] for f in range(self.num_factors) - ] # defaults to having all factors depend only on themselves + self.B_factor_list = [[f] for f in range(self.num_factors)] # defaults to having all factors depend only on themselves for f in range(self.num_factors): factor_dims = tuple([self.num_states[f] for f in self.B_factor_list[f]]) - assert ( - self.B[f].shape[1:-1] == factor_dims - ), f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B{f}..." + assert self.B[f].shape[1:-1] == factor_dims, f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B{f}..." if self.pB is not None: - assert ( - self.pB[f].shape[1:-1] == factor_dims - ), f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB{f}..." + assert self.pB[f].shape[1:-1] == factor_dims, f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB{f}..." else: self.factorized = True for f in range(self.num_factors): - assert max(B_factor_list[f]) <= ( - self.num_factors - 1 - ), f"Check factor {f} of B_factor_list - must be consistent with `num_states` and `num_factors`..." + assert max(B_factor_list[f]) <= (self.num_factors - 1), f"Check factor {f} of B_factor_list - must be consistent with `num_states` and `num_factors`..." factor_dims = tuple([self.num_states[f] for f in B_factor_list[f]]) - assert ( - self.B[f].shape[1:-1] == factor_dims - ), f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of B{f}..." + assert self.B[f].shape[1:-1] == factor_dims, f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of B{f}..." if self.pB is not None: - assert ( - self.pB[f].shape[1:-1] == factor_dims - ), f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of pB{f}..." + assert self.pB[f].shape[1:-1] == factor_dims, f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of pB{f}..." self.B_factor_list = B_factor_list # Users have the option to make only certain factors controllable. @@ -221,15 +197,11 @@ def __init__( self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] else: - assert max(control_fac_idx) <= ( - self.num_factors - 1 - ), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + assert max(control_fac_idx) <= (self.num_factors - 1), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." self.control_fac_idx = control_fac_idx for factor_idx in self.control_fac_idx: - assert ( - self.num_controls[factor_idx] > 1 - ), "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" + assert self.num_controls[factor_idx] > 1, "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" # Again, the use can specify a set of possible policies, or # all possible combinations of actions and timesteps will be considered @@ -237,75 +209,65 @@ def __init__( policies = self._construct_policies() self.policies = policies - assert all( - [len(self.num_controls) == policy.shape[1] for policy in self.policies] - ), "Number of control states is not consistent with policy dimensionalities" - + assert all([len(self.num_controls) == policy.shape[1] for policy in self.policies]), "Number of control states is not consistent with policy dimensionalities" + all_policies = np.vstack(self.policies) - assert all( - [n_c >= max_action for (n_c, max_action) in zip(self.num_controls, list(np.max(all_policies, axis=0) + 1))] - ), "Maximum number of actions is not consistent with `num_controls`" + assert all([n_c >= max_action for (n_c, max_action) in zip(self.num_controls, list(np.max(all_policies, axis =0)+1))]), "Maximum number of actions is not consistent with `num_controls`" # Construct prior preferences (uniform if not specified) if C is not None: if not isinstance(C, np.ndarray): - raise TypeError("C vector must be a numpy array") + raise TypeError( + 'C vector must be a numpy array' + ) self.C = utils.to_obj_array(C) - assert ( - len(self.C) == self.num_modalities - ), f"Check C vector: number of sub-arrays must be equal to number of observation modalities: {self.num_modalities}" + assert len(self.C) == self.num_modalities, f"Check C vector: number of sub-arrays must be equal to number of observation modalities: {self.num_modalities}" for modality, c_m in enumerate(self.C): - assert ( - c_m.shape[0] == self.num_obs[modality] - ), f"Check C vector: number of rows of C vector for modality {modality} should be equal to {self.num_obs[modality]}" + assert c_m.shape[0] == self.num_obs[modality], f"Check C vector: number of rows of C vector for modality {modality} should be equal to {self.num_obs[modality]}" else: self.C = self._construct_C_prior() # Construct prior over hidden states (uniform if not specified) - + if D is not None: if not isinstance(D, np.ndarray): - raise TypeError("D vector must be a numpy array") + raise TypeError( + 'D vector must be a numpy array' + ) self.D = utils.to_obj_array(D) - assert ( - len(self.D) == self.num_factors - ), f"Check D vector: number of sub-arrays must be equal to number of hidden state factors: {self.num_factors}" + assert len(self.D) == self.num_factors, f"Check D vector: number of sub-arrays must be equal to number of hidden state factors: {self.num_factors}" for f, d_f in enumerate(self.D): - assert ( - d_f.shape[0] == self.num_states[f] - ), f"Check D vector: number of entries of D vector for factor {f} should be equal to {self.num_states[f]}" + assert d_f.shape[0] == self.num_states[f], f"Check D vector: number of entries of D vector for factor {f} should be equal to {self.num_states[f]}" else: if pD is not None: self.D = utils.norm_dist_obj_arr(pD) else: self.D = self._construct_D_prior() - assert utils.is_normalized( - self.D - ), "D vector is not normalized (i.e. D[f].sum() must all equal 1.0 for all factors)" + assert utils.is_normalized(self.D), "D vector is not normalized (i.e. D[f].sum() must all equal 1.0 for all factors)" # Assigning prior parameters on initial hidden states (pD vectors) self.pD = pD - # Construct prior over policies (uniform if not specified) + # Construct prior over policies (uniform if not specified) if E is not None: if not isinstance(E, np.ndarray): - raise TypeError("E vector must be a numpy array") + raise TypeError( + 'E vector must be a numpy array' + ) self.E = E - assert len(self.E) == len( - self.policies - ), f"Check E vector: length of E must be equal to number of policies: {len(self.policies)}" + assert len(self.E) == len(self.policies), f"Check E vector: length of E must be equal to number of policies: {len(self.policies)}" else: self.E = self._construct_E_prior() - + # Construct I for backwards induction (if H specified) if H is not None: self.H = H @@ -315,10 +277,8 @@ def __init__( self.I = None self.edge_handling_params = {} - self.edge_handling_params["use_BMA"] = use_BMA # creates a 'D-like' moving prior - self.edge_handling_params["policy_sep_prior"] = ( - policy_sep_prior # carries forward last timesteps posterior, in a policy-conditioned way - ) + self.edge_handling_params['use_BMA'] = use_BMA # creates a 'D-like' moving prior + self.edge_handling_params['policy_sep_prior'] = policy_sep_prior # carries forward last timesteps posterior, in a policy-conditioned way # use_BMA and policy_sep_prior can both be False, but both cannot be simultaneously be True. If one of them is True, the other must be False if policy_sep_prior: @@ -327,8 +287,8 @@ def __init__( "Inconsistent choice of `policy_sep_prior` and `use_BMA`.\ You have set `policy_sep_prior` to True, so we are setting `use_BMA` to False" ) - self.edge_handling_params["use_BMA"] = False - + self.edge_handling_params['use_BMA'] = False + if inference_algo == None: self.inference_algo = "VANILLA" self.inference_params = self._get_default_params() @@ -336,7 +296,7 @@ def __init__( warnings.warn( "If `inference_algo` is VANILLA, then inference_horizon must be 1\n. \ Setting inference_horizon to default value of 1...\n" - ) + ) self.inference_horizon = 1 else: self.inference_horizon = 1 @@ -348,15 +308,15 @@ def __init__( if save_belief_hist: self.qs_hist = [] self.q_pi_hist = [] - + self.prev_obs = [] self.reset() - + self.action = None self.prev_actions = None def _construct_C_prior(self): - + C = utils.obj_array_zeros(self.num_obs) return C @@ -368,18 +328,20 @@ def _construct_D_prior(self): return D def _construct_policies(self): - - policies = control.construct_policies( + + policies = control.construct_policies( self.num_states, self.num_controls, self.policy_len, self.control_fac_idx ) return policies def _construct_num_controls(self): - num_controls = control.get_num_controls_from_policies(self.policies) - + num_controls = control.get_num_controls_from_policies( + self.policies + ) + return num_controls - + def _construct_E_prior(self): E = np.ones(len(self.policies)) / len(self.policies) return E @@ -394,40 +356,38 @@ def reset(self, init_qs=None): qs: ``numpy.ndarray`` of dtype object Initialized posterior over hidden states. Depending on the inference algorithm chosen and other parameters (such as the parameters stored within ``edge_handling_paramss), the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `, the indexing structure of ``qs`` is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` - at timepoint ``t_idx``. In this case, the returned ``qs`` will only have entries filled out for the first timestep, i.e. for ``q[p_idx][0]``, for all + For example, in case the ``self.inference_algo == 'MMP' `, the indexing structure of ``qs`` is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + at timepoint ``t_idx``. In this case, the returned ``qs`` will only have entries filled out for the first timestep, i.e. for ``q[p_idx][0]``, for all policy-indices ``p_idx``. Subsequent entries ``q[:][1, 2, ...]`` will be initialized to empty ``numpy.ndarray`` objects. """ self.curr_timestep = 0 if init_qs is None: - if self.inference_algo == "VANILLA": + if self.inference_algo == 'VANILLA': self.qs = utils.obj_array_uniform(self.num_states) - else: # in the case you're doing MMP (i.e. you have an inference_horizon > 1), we have to account for policy- and timestep-conditioned posterior beliefs + else: # in the case you're doing MMP (i.e. you have an inference_horizon > 1), we have to account for policy- and timestep-conditioned posterior beliefs self.qs = utils.obj_array(len(self.policies)) for p_i, _ in enumerate(self.policies): - self.qs[p_i] = utils.obj_array( - self.inference_horizon + self.policy_len + 1 - ) # + 1 to include belief about current timestep + self.qs[p_i] = utils.obj_array(self.inference_horizon + self.policy_len + 1) # + 1 to include belief about current timestep self.qs[p_i][0] = utils.obj_array_uniform(self.num_states) - + first_belief = utils.obj_array(len(self.policies)) for p_i, _ in enumerate(self.policies): - first_belief[p_i] = copy.deepcopy(self.D) - - if self.edge_handling_params["policy_sep_prior"]: - self.set_latest_beliefs(last_belief=first_belief) + first_belief[p_i] = copy.deepcopy(self.D) + + if self.edge_handling_params['policy_sep_prior']: + self.set_latest_beliefs(last_belief = first_belief) else: - self.set_latest_beliefs(last_belief=self.D) - + self.set_latest_beliefs(last_belief = self.D) + else: self.qs = init_qs - + if self.pA is not None: self.A = utils.norm_dist_obj_arr(self.pA) - + if self.pB is not None: self.B = utils.norm_dist_obj_arr(self.pB) @@ -454,12 +414,12 @@ def step_time(self): if self.inference_algo == "MMP" and (self.curr_timestep - self.inference_horizon) >= 0: self.set_latest_beliefs() - + return self.curr_timestep - - def set_latest_beliefs(self, last_belief=None): + + def set_latest_beliefs(self,last_belief=None): """ - Both sets and returns the penultimate belief before the first timestep of the backwards inference horizon. + Both sets and returns the penultimate belief before the first timestep of the backwards inference horizon. In the case that the inference horizon includes the first timestep of the simulation, then the ``latest_belief`` is simply the first belief of the whole simulation, or the prior (``self.D``). The particular structure of the ``latest_belief`` depends on the value of ``self.edge_handling_params['use_BMA']``. @@ -467,9 +427,9 @@ def set_latest_beliefs(self, last_belief=None): Returns --------- latest_belief: ``numpy.ndarray`` of dtype object - Penultimate posterior beliefs over hidden states at the timestep just before the first timestep of the inference horizon. + Penultimate posterior beliefs over hidden states at the timestep just before the first timestep of the inference horizon. Depending on the value of ``self.edge_handling_params['use_BMA']``, the shape of this output array will differ. - If ``self.edge_handling_params['use_BMA'] == True``, then ``latest_belief`` will be a Bayesian model average + If ``self.edge_handling_params['use_BMA'] == True``, then ``latest_belief`` will be a Bayesian model average of beliefs about hidden states, where the average is taken with respect to posterior beliefs about policies. Otherwise, `latest_belief`` will be the full, policy-conditioned belief about hidden states, and will have indexing structure policies->factors, such that ``latest_belief[p_idx][f_idx]`` refers to the penultimate belief about marginal factor ``f_idx`` @@ -482,44 +442,39 @@ def set_latest_beliefs(self, last_belief=None): last_belief[p_i] = copy.deepcopy(self.qs[p_i][0]) begin_horizon_step = self.curr_timestep - self.inference_horizon - if self.edge_handling_params["use_BMA"] and (begin_horizon_step >= 0): + if self.edge_handling_params['use_BMA'] and (begin_horizon_step >= 0): if hasattr(self, "q_pi_hist"): - self.latest_belief = inference.average_states_over_policies( - last_belief, self.q_pi_hist[begin_horizon_step] - ) # average the earliest marginals together using contemporaneous posterior over policies (`self.q_pi_hist[0]`) + self.latest_belief = inference.average_states_over_policies(last_belief, self.q_pi_hist[begin_horizon_step]) # average the earliest marginals together using contemporaneous posterior over policies (`self.q_pi_hist[0]`) else: - self.latest_belief = inference.average_states_over_policies( - last_belief, self.q_pi - ) # average the earliest marginals together using posterior over policies (`self.q_pi`) + self.latest_belief = inference.average_states_over_policies(last_belief, self.q_pi) # average the earliest marginals together using posterior over policies (`self.q_pi`) else: self.latest_belief = last_belief return self.latest_belief - + def get_future_qs(self): """ Returns the last ``self.policy_len`` timesteps of each policy-conditioned belief over hidden states. This is a step of pre-processing that needs to be done before computing - the expected free energy of policies. We do this to avoid computing the expected free energy of + the expected free energy of policies. We do this to avoid computing the expected free energy of policies using beliefs about hidden states in the past (so-called "post-dictive" beliefs). Returns --------- future_qs_seq: ``numpy.ndarray`` of dtype object Posterior beliefs over hidden states under a policy, in the future. This is a nested ``numpy.ndarray`` object array, with one - sub-array ``future_qs_seq[p_idx]`` for each policy. The indexing structure is policy->timepoint-->factor, so that - ``future_qs_seq[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + sub-array ``future_qs_seq[p_idx]`` for each policy. The indexing structure is policy->timepoint-->factor, so that + ``future_qs_seq[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` at future timepoint ``t_idx``, relative to the current timestep. """ - + future_qs_seq = utils.obj_array(len(self.qs)) for p_idx in range(len(self.qs)): - future_qs_seq[p_idx] = self.qs[p_idx][ - -(self.policy_len + 1) : - ] # this grabs only the last `policy_len`+1 beliefs about hidden states, under each policy + future_qs_seq[p_idx] = self.qs[p_idx][-(self.policy_len+1):] # this grabs only the last `policy_len`+1 beliefs about hidden states, under each policy return future_qs_seq + def infer_states(self, observation, distr_obs=False): """ Update approximate posterior over hidden states by solving variational inference problem, given an observation. @@ -537,8 +492,8 @@ def infer_states(self, observation, distr_obs=False): qs: ``numpy.ndarray`` of dtype object Posterior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` at timepoint ``t_idx``. """ @@ -550,7 +505,7 @@ def infer_states(self, observation, distr_obs=False): if self.inference_algo == "VANILLA": if self.action is not None: empirical_prior = control.get_expected_states_interactions( - self.qs, self.B, self.B_factor_list, self.action.reshape(1, -1) + self.qs, self.B, self.B_factor_list, self.action.reshape(1, -1) )[0] else: empirical_prior = self.D @@ -561,14 +516,14 @@ def infer_states(self, observation, distr_obs=False): self.num_states, self.mb_dict, empirical_prior, - **self.inference_params, + **self.inference_params ) elif self.inference_algo == "MMP": self.prev_obs.append(observation) if len(self.prev_obs) > self.inference_horizon: - latest_obs = self.prev_obs[-self.inference_horizon :] - latest_actions = self.prev_actions[-(self.inference_horizon - 1) :] + latest_obs = self.prev_obs[-self.inference_horizon:] + latest_actions = self.prev_actions[-(self.inference_horizon-1):] else: latest_obs = self.prev_obs latest_actions = self.prev_actions @@ -579,14 +534,14 @@ def infer_states(self, observation, distr_obs=False): self.B, self.B_factor_list, latest_obs, - self.policies, - latest_actions, - prior=self.latest_belief, - policy_sep_prior=self.edge_handling_params["policy_sep_prior"], - **self.inference_params, + self.policies, + latest_actions, + prior = self.latest_belief, + policy_sep_prior = self.edge_handling_params['policy_sep_prior'], + **self.inference_params ) - self.F = F # variational free energy of each policy + self.F = F # variational free energy of each policy if hasattr(self, "qs_hist"): self.qs_hist.append(qs) @@ -606,32 +561,39 @@ def _infer_states_test(self, observation, distr_obs=False): if self.inference_algo == "VANILLA": if self.action is not None: - empirical_prior = control.get_expected_states(self.qs, self.B, self.action.reshape(1, -1))[0] + empirical_prior = control.get_expected_states( + self.qs, self.B, self.action.reshape(1, -1) + )[0] else: empirical_prior = self.D - qs = inference.update_posterior_states(self.A, observation, empirical_prior, **self.inference_params) + qs = inference.update_posterior_states( + self.A, + observation, + empirical_prior, + **self.inference_params + ) elif self.inference_algo == "MMP": self.prev_obs.append(observation) if len(self.prev_obs) > self.inference_horizon: - latest_obs = self.prev_obs[-self.inference_horizon :] - latest_actions = self.prev_actions[-(self.inference_horizon - 1) :] + latest_obs = self.prev_obs[-self.inference_horizon:] + latest_actions = self.prev_actions[-(self.inference_horizon-1):] else: latest_obs = self.prev_obs latest_actions = self.prev_actions qs, F, xn, vn = inference._update_posterior_states_full_test( self.A, - self.B, + self.B, latest_obs, - self.policies, - latest_actions, - prior=self.latest_belief, - policy_sep_prior=self.edge_handling_params["policy_sep_prior"], - **self.inference_params, + self.policies, + latest_actions, + prior = self.latest_belief, + policy_sep_prior = self.edge_handling_params['policy_sep_prior'], + **self.inference_params ) - self.F = F # variational free energy of each policy + self.F = F # variational free energy of each policy if hasattr(self, "qs_hist"): self.qs_hist.append(qs) @@ -642,14 +604,14 @@ def _infer_states_test(self, observation, distr_obs=False): return qs, xn, vn else: return qs - + def infer_policies(self): """ Perform policy inference by optimizing a posterior (categorical) distribution over policies. This distribution is computed as the softmax of ``G * gamma + lnE`` where ``G`` is the negative expected free energy of policies, ``gamma`` is a policy precision and ``lnE`` is the (log) prior probability of policies. This function returns the posterior over policies as well as the negative expected free energy of each policy. - In this version of the function, the expected free energy of policies is computed using known factorized structure + In this version of the function, the expected free energy of policies is computed using known factorized structure in the model, which speeds up computation (particular the state information gain calculations). Returns @@ -663,21 +625,21 @@ def infer_policies(self): if self.inference_algo == "VANILLA": if self.sophisticated: q_pi, G = control.sophisticated_inference_search( - self.qs, - self.policies, - self.A, - self.B, - self.C, - self.A_factor_list, - self.B_factor_list, + self.qs, + self.policies, + self.A, + self.B, + self.C, + self.A_factor_list, + self.B_factor_list, self.I, self.si_horizon, - self.si_policy_prune_threshold, - self.si_state_prune_threshold, + self.si_policy_prune_threshold, + self.si_state_prune_threshold, self.si_prune_penalty, 1.0, self.inference_params, - n=0, + n=0 ) else: q_pi, G = control.update_posterior_policies_factorized( @@ -693,9 +655,9 @@ def infer_policies(self): self.use_param_info_gain, self.pA, self.pB, - E=self.E, - I=self.I, - gamma=self.gamma, + E = self.E, + I = self.I, + gamma = self.gamma ) elif self.inference_algo == "MMP": @@ -718,13 +680,13 @@ def infer_policies(self): F=self.F, E=self.E, I=self.I, - gamma=self.gamma, + gamma=self.gamma ) if hasattr(self, "q_pi_hist"): self.q_pi_hist.append(q_pi) if len(self.q_pi_hist) > self.inference_horizon: - self.q_pi_hist = self.q_pi_hist[-(self.inference_horizon - 1) :] + self.q_pi_hist = self.q_pi_hist[-(self.inference_horizon-1):] self.q_pi = q_pi self.G = G @@ -737,7 +699,7 @@ def sample_action(self): This function also updates time variable (and thus manages consequences of updating the moving reference frame of beliefs) using ``self.step_time()``. - + Returns ---------- action: 1D ``numpy.ndarray`` @@ -746,26 +708,25 @@ def sample_action(self): if self.sampling_mode == "marginal": action = control.sample_action( - self.q_pi, self.policies, self.num_controls, action_selection=self.action_selection, alpha=self.alpha + self.q_pi, self.policies, self.num_controls, action_selection = self.action_selection, alpha = self.alpha ) elif self.sampling_mode == "full": - action = control.sample_policy( - self.q_pi, self.policies, self.num_controls, action_selection=self.action_selection, alpha=self.alpha - ) + action = control.sample_policy(self.q_pi, self.policies, self.num_controls, + action_selection=self.action_selection, alpha=self.alpha) self.action = action self.step_time() return action - + def _sample_action_test(self): """ Sample or select a discrete action from the posterior over control states. This function both sets or cachés the action as an internal variable with the agent and returns it. This function also updates time variable (and thus manages consequences of updating the moving reference frame of beliefs) using ``self.step_time()``. - + Returns ---------- action: 1D ``numpy.ndarray`` @@ -773,13 +734,11 @@ def _sample_action_test(self): """ if self.sampling_mode == "marginal": - action, p_dist = control._sample_action_test( - self.q_pi, self.policies, self.num_controls, action_selection=self.action_selection, alpha=self.alpha - ) + action, p_dist = control._sample_action_test(self.q_pi, self.policies, self.num_controls, + action_selection=self.action_selection, alpha=self.alpha) elif self.sampling_mode == "full": - action, p_dist = control._sample_policy_test( - self.q_pi, self.policies, self.num_controls, action_selection=self.action_selection, alpha=self.alpha - ) + action, p_dist = control._sample_policy_test(self.q_pi, self.policies, self.num_controls, + action_selection=self.action_selection, alpha=self.alpha) self.action = action @@ -804,13 +763,17 @@ def update_A(self, obs): """ qA = learning.update_obs_likelihood_dirichlet_factorized( - self.pA, self.A, obs, self.qs, self.A_factor_list, self.lr_pA, self.modalities_to_learn + self.pA, + self.A, + obs, + self.qs, + self.A_factor_list, + self.lr_pA, + self.modalities_to_learn ) - self.pA = qA # set new prior to posterior - self.A = utils.norm_dist_obj_arr( - qA - ) # take expected value of posterior Dirichlet parameters to calculate posterior over A array + self.pA = qA # set new prior to posterior + self.A = utils.norm_dist_obj_arr(qA) # take expected value of posterior Dirichlet parameters to calculate posterior over A array return qA @@ -831,25 +794,28 @@ def _update_A_old(self, obs): """ qA = learning.update_obs_likelihood_dirichlet( - self.pA, self.A, obs, self.qs, self.lr_pA, self.modalities_to_learn + self.pA, + self.A, + obs, + self.qs, + self.lr_pA, + self.modalities_to_learn ) - self.pA = qA # set new prior to posterior - self.A = utils.norm_dist_obj_arr( - qA - ) # take expected value of posterior Dirichlet parameters to calculate posterior over A array + self.pA = qA # set new prior to posterior + self.A = utils.norm_dist_obj_arr(qA) # take expected value of posterior Dirichlet parameters to calculate posterior over A array return qA def update_B(self, qs_prev): """ - Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood - + Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood + Parameters ----------- qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object Marginal posterior beliefs over hidden states at previous timepoint. - + Returns ----------- qB: ``numpy.ndarray`` of dtype object @@ -857,25 +823,30 @@ def update_B(self, qs_prev): """ qB = learning.update_state_likelihood_dirichlet_interactions( - self.pB, self.B, self.action, self.qs, qs_prev, self.B_factor_list, self.lr_pB, self.factors_to_learn + self.pB, + self.B, + self.action, + self.qs, + qs_prev, + self.B_factor_list, + self.lr_pB, + self.factors_to_learn ) - self.pB = qB # set new prior to posterior - self.B = utils.norm_dist_obj_arr( - qB - ) # take expected value of posterior Dirichlet parameters to calculate posterior over B array + self.pB = qB # set new prior to posterior + self.B = utils.norm_dist_obj_arr(qB) # take expected value of posterior Dirichlet parameters to calculate posterior over B array return qB - + def _update_B_old(self, qs_prev): """ - Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood - + Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood + Parameters ----------- qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object Marginal posterior beliefs over hidden states at previous timepoint. - + Returns ----------- qB: ``numpy.ndarray`` of dtype object @@ -883,52 +854,54 @@ def _update_B_old(self, qs_prev): """ qB = learning.update_state_likelihood_dirichlet( - self.pB, self.B, self.action, self.qs, qs_prev, self.lr_pB, self.factors_to_learn + self.pB, + self.B, + self.action, + self.qs, + qs_prev, + self.lr_pB, + self.factors_to_learn ) - self.pB = qB # set new prior to posterior - self.B = utils.norm_dist_obj_arr( - qB - ) # take expected value of posterior Dirichlet parameters to calculate posterior over B array + self.pB = qB # set new prior to posterior + self.B = utils.norm_dist_obj_arr(qB) # take expected value of posterior Dirichlet parameters to calculate posterior over B array return qB - - def update_D(self, qs_t0=None): + + def update_D(self, qs_t0 = None): """ - Update Dirichlet parameters of the initial hidden state distribution + Update Dirichlet parameters of the initial hidden state distribution (prior beliefs about hidden states at the beginning of the inference window). Parameters ----------- qs_t0: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, or ``None`` - Marginal posterior beliefs over hidden states at current timepoint. If ``None``, the + Marginal posterior beliefs over hidden states at current timepoint. If ``None``, the value of ``qs_t0`` is set to ``self.qs_hist[0]`` (i.e. the initial hidden state beliefs at the first timepoint). If ``self.inference_algo == "MMP"``, then ``qs_t0`` is set to be the Bayesian model average of beliefs about hidden states at the first timestep of the backwards inference horizon, where the average is taken with respect to posterior beliefs about policies. - + Returns ----------- qD: ``numpy.ndarray`` of dtype object Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs_t0``), after having updated it with state beliefs. """ - + if self.inference_algo == "VANILLA": - + if qs_t0 is None: - + try: qs_t0 = self.qs_hist[0] except ValueError: - print( - "qs_t0 must either be passed as argument to `update_D` or `save_belief_hist` must be set to True!" - ) + print("qs_t0 must either be passed as argument to `update_D` or `save_belief_hist` must be set to True!") elif self.inference_algo == "MMP": - - if self.edge_handling_params["use_BMA"]: + + if self.edge_handling_params['use_BMA']: qs_t0 = self.latest_belief - elif self.edge_handling_params["policy_sep_prior"]: - + elif self.edge_handling_params['policy_sep_prior']: + qs_pi_t0 = self.latest_belief # get beliefs about policies at the time at the beginning of the inference horizon @@ -937,17 +910,13 @@ def update_D(self, qs_t0=None): q_pi_t0 = np.copy(self.q_pi_hist[begin_horizon_step]) else: q_pi_t0 = np.copy(self.q_pi) - - qs_t0 = inference.average_states_over_policies( - qs_pi_t0, q_pi_t0 - ) # beliefs about hidden states at the first timestep of the inference horizon - - qD = learning.update_state_prior_dirichlet(self.pD, qs_t0, self.lr_pD, factors=self.factors_to_learn) - - self.pD = qD # set new prior to posterior - self.D = utils.norm_dist_obj_arr( - qD - ) # take expected value of posterior Dirichlet parameters to calculate posterior over D array + + qs_t0 = inference.average_states_over_policies(qs_pi_t0,q_pi_t0) # beliefs about hidden states at the first timestep of the inference horizon + + qD = learning.update_state_prior_dirichlet(self.pD, qs_t0, self.lr_pD, factors = self.factors_to_learn) + + self.pD = qD # set new prior to posterior + self.D = utils.norm_dist_obj_arr(qD) # take expected value of posterior Dirichlet parameters to calculate posterior over D array return qD @@ -968,3 +937,6 @@ def _get_default_params(self): raise NotImplementedError("CV is not implemented") return default_params + + + \ No newline at end of file diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index b3d46016..776a65dd 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -18,9 +18,8 @@ from jaxtyping import Array from functools import partial - class Agent(Module): - """ + """ The Agent class, the highest-level API that wraps together processes for action, perception, and learning under active inference. The basic usage is as follows: @@ -38,7 +37,7 @@ class Agent(Module): A: List[Array] B: List[Array] - C: List[Array] + C: List[Array] D: List[Array] E: Array # empirical_prior: List @@ -48,19 +47,15 @@ class Agent(Module): q_pi: Optional[List[Array]] # parameters used for inductive inference - inductive_threshold: Array # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) - inductive_epsilon: Array # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) + inductive_threshold: Array # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) + inductive_epsilon: Array # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) - H: List[ - Array - ] # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints - I: List[ - Array - ] # I matrices (one per hidden state factor) used for inductive inference -- these encode the 'reachability' matrices of goal states encoded in `self.H` + H: List[Array] # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints + I: List[Array] # I matrices (one per hidden state factor) used for inductive inference -- these encode the 'reachability' matrices of goal states encoded in `self.H` pA: List[Array] pB: List[Array] - + # static parameters not leaves of the PyTree A_dependencies: Optional[List] = field(static=True) B_dependencies: Optional[List] = field(static=True) @@ -72,35 +67,17 @@ class Agent(Module): num_factors: int = field(static=True) num_controls: List[int] = field(static=True) control_fac_idx: Optional[List[int]] = field(static=True) - policy_len: int = field( - static=True - ) # depth of planning during roll-outs (i.e. number of timesteps to look ahead when computing expected free energy of policies) - inductive_depth: int = field( - static=True - ) # depth of inductive inference (i.e. number of future timesteps to use when computing inductive `I` matrix) - policies: Array = field( - static=True - ) # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) - use_utility: bool = field( - static=True - ) # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy - use_states_info_gain: bool = field( - static=True - ) # flag for whether to use state information gain ("salience") when computing expected free energy - use_param_info_gain: bool = field( - static=True - ) # flag for whether to use parameter information gain ("novelty") when computing expected free energy - use_inductive: bool = field( - static=True - ) # flag for whether to use inductive inference ("intentional inference") when computing expected free energy + policy_len: int = field(static=True) # depth of planning during roll-outs (i.e. number of timesteps to look ahead when computing expected free energy of policies) + inductive_depth: int = field(static=True) # depth of inductive inference (i.e. number of future timesteps to use when computing inductive `I` matrix) + policies: Array = field(static=True) # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) + use_utility: bool = field(static=True) # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy + use_states_info_gain: bool = field(static=True) # flag for whether to use state information gain ("salience") when computing expected free energy + use_param_info_gain: bool = field(static=True) # flag for whether to use parameter information gain ("novelty") when computing expected free energy + use_inductive: bool = field(static=True) # flag for whether to use inductive inference ("intentional inference") when computing expected free energy onehot_obs: bool = field(static=True) - action_selection: str = field( - static=True - ) # determinstic or stochastic action selection - sampling_mode: str = field( - static=True - ) # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") - inference_algo: str = field(static=True) # fpi, vmp, mmp, ovf + action_selection: str = field(static=True) # determinstic or stochastic action selection + sampling_mode : str = field(static=True) # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") + inference_algo: str = field(static=True) # fpi, vmp, mmp, ovf learn_A: bool = field(static=True) learn_B: bool = field(static=True) @@ -144,7 +121,7 @@ def __init__( learn_B=True, learn_C=False, learn_D=True, - learn_E=False, + learn_E=False ): ### PyTree leaves self.A = A @@ -162,7 +139,7 @@ def __init__( element_size = lambda x: x.shape[1] self.num_factors = len(self.B) - self.num_states = jtu.tree_map(element_size, self.B) + self.num_states = jtu.tree_map(element_size, self.B) self.num_modalities = len(self.A) self.num_obs = jtu.tree_map(element_size, self.A) @@ -172,59 +149,34 @@ def __init__( self.A_dependencies = A_dependencies else: # assume full dependence of A matrices and state factors - self.A_dependencies = [ - list(range(self.num_factors)) - for _ in range(self.num_modalities) - ] - + self.A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] + for m in range(self.num_modalities): - factor_dims = tuple( - [self.num_states[f] for f in self.A_dependencies[m]] - ) - assert ( - self.A[m].shape[2:] == factor_dims - ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." + factor_dims = tuple([self.num_states[f] for f in self.A_dependencies[m]]) + assert self.A[m].shape[2:] == factor_dims, f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." if self.pA != None: - assert ( - self.pA[m].shape[2:] == factor_dims - ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of pA[{m}]..." - assert max(self.A_dependencies[m]) <= ( - self.num_factors - 1 - ), f"Check modality {m} of `A_dependencies` - must be consistent with `num_states` and `num_factors`..." - + assert self.pA[m].shape[2:] == factor_dims, f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of pA[{m}]..." + assert max(self.A_dependencies[m]) <= (self.num_factors - 1), f"Check modality {m} of `A_dependencies` - must be consistent with `num_states` and `num_factors`..." + # Ensure consistency of B_dependencies with num_states and num_factors if B_dependencies is not None: self.B_dependencies = B_dependencies else: - self.B_dependencies = [ - [f] for f in range(self.num_factors) - ] # defaults to having all factors depend only on themselves + self.B_dependencies = [[f] for f in range(self.num_factors)] # defaults to having all factors depend only on themselves for f in range(self.num_factors): - factor_dims = tuple( - [self.num_states[f] for f in self.B_dependencies[f]] - ) - assert ( - self.B[f].shape[2:-1] == factor_dims - ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B[{f}]..." + factor_dims = tuple([self.num_states[f] for f in self.B_dependencies[f]]) + assert self.B[f].shape[2:-1] == factor_dims, f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B[{f}]..." if self.pB != None: - assert ( - self.pB[f].shape[2:-1] == factor_dims - ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB[{f}]..." - assert max(self.B_dependencies[f]) <= ( - self.num_factors - 1 - ), f"Check factor {f} of `B_dependencies` - must be consistent with `num_states` and `num_factors`..." + assert self.pB[f].shape[2:-1] == factor_dims, f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB[{f}]..." + assert max(self.B_dependencies[f]) <= (self.num_factors - 1), f"Check factor {f} of `B_dependencies` - must be consistent with `num_states` and `num_factors`..." self.batch_size = self.A[0].shape[0] self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) - self.inductive_threshold = jnp.broadcast_to( - inductive_threshold, (self.batch_size,) - ) - self.inductive_epsilon = jnp.broadcast_to( - inductive_epsilon, (self.batch_size,) - ) + self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) + self.inductive_epsilon = jnp.broadcast_to(inductive_epsilon, (self.batch_size,)) ### Static parameters ### self.num_iter = num_iter @@ -246,9 +198,7 @@ def __init__( elif self.use_inductive and I is not None: self.I = I else: - self.I = jtu.tree_map( - lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), self.D - ) + self.I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), self.D) # learning parameters self.learn_A = learn_A @@ -262,9 +212,7 @@ def __init__( self.num_modalities = len(self.num_obs) # If no `num_controls` are given, then this is inferred from the shapes of the input B matrices - self.num_controls = [ - self.B[f].shape[-1] for f in range(self.num_factors) - ] + self.num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] # Users have the option to make only certain factors controllable. # default behaviour is to make all hidden state factors controllable @@ -272,116 +220,65 @@ def __init__( # Users have the option to make only certain factors controllable. # default behaviour is to make all hidden state factors controllable, i.e. `self.num_factors == len(self.num_controls)` if control_fac_idx == None: - self.control_fac_idx = [ - f for f in range(self.num_factors) if self.num_controls[f] > 1 - ] + self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] else: - assert max(control_fac_idx) <= ( - self.num_factors - 1 - ), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + assert max(control_fac_idx) <= (self.num_factors - 1), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." self.control_fac_idx = control_fac_idx for factor_idx in self.control_fac_idx: - assert ( - self.num_controls[factor_idx] > 1 - ), "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" + assert self.num_controls[factor_idx] > 1, "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" if policies is not None: self.policies = policies else: self._construct_policies() - + # set E to uniform/uninformative prior over policies if not given if E is None: - self.E = jnp.ones((self.batch_size, len(self.policies))) / len( - self.policies - ) + self.E = jnp.ones((self.batch_size, len(self.policies)))/ len(self.policies) else: self.E = E def _construct_policies(self): - - self.policies = control.construct_policies( - self.num_states, - self.num_controls, - self.policy_len, - self.control_fac_idx, + + self.policies = control.construct_policies( + self.num_states, self.num_controls, self.policy_len, self.control_fac_idx ) @vmap def _construct_I(self): - return control.generate_I_matrix( - self.H, self.B, self.inductive_threshold, self.inductive_depth - ) + return control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) @property def unique_multiactions(self): size = pymath.prod(self.num_controls) - return jnp.unique( - self.policies[:, 0], axis=0, size=size, fill_value=-1 - ) + return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) @vmap - def learning( - self, - beliefs_A, - outcomes, - actions, - beliefs_B=None, - lr_pA=1.0, - lr_pB=1.0, - **kwargs, - ): + def learning(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1., lr_pB=1., **kwargs): agent = self if self.learn_A: - o_vec_seq = jtu.tree_map( - lambda o, dim: nn.one_hot(o, dim), outcomes, self.num_obs - ) - qA = learning.update_obs_likelihood_dirichlet( - self.pA, o_vec_seq, beliefs_A, self.A_dependencies, lr=lr_pA - ) - E_qA = jtu.tree_map( - lambda x: maths.dirichlet_expected_value(x), qA - ) + o_vec_seq = jtu.tree_map(lambda o, dim: nn.one_hot(o, dim), outcomes, self.num_obs) + qA = learning.update_obs_likelihood_dirichlet(self.pA, o_vec_seq, beliefs_A, self.A_dependencies, lr=lr_pA) + E_qA = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qA) agent = tree_at(lambda x: (x.A, x.pA), agent, (E_qA, qA)) - + if self.learn_B: beliefs_B = beliefs_A if beliefs_B is None else beliefs_B - actions_seq = [ - actions[..., i] for i in range(actions.shape[-1]) - ] # as many elements as there are control factors, where each element is a jnp.ndarray of shape (n_timesteps, ) + actions_seq = [actions[..., i] for i in range(actions.shape[-1])] # as many elements as there are control factors, where each element is a jnp.ndarray of shape (n_timesteps, ) assert beliefs_B[0].shape[0] == actions_seq[0].shape[0] + 1 - actions_onehot = jtu.tree_map( - lambda a, dim: nn.one_hot(a, dim, axis=-1), - actions_seq, - self.num_controls, - ) - qB = learning.update_state_likelihood_dirichlet( - self.pB, - beliefs_B, - actions_onehot, - self.B_dependencies, - lr=lr_pB, - ) - E_qB = jtu.tree_map( - lambda x: maths.dirichlet_expected_value(x), qB - ) + actions_onehot = jtu.tree_map(lambda a, dim: nn.one_hot(a, dim, axis=-1), actions_seq, self.num_controls) + qB = learning.update_state_likelihood_dirichlet(self.pB, beliefs_B, actions_onehot, self.B_dependencies, lr=lr_pB) + E_qB = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qB) # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece if self.use_inductive and self.H is not None: - I_updated = control.generate_I_matrix( - self.H, - E_qB, - self.inductive_threshold, - self.inductive_depth, - ) + I_updated = control.generate_I_matrix(self.H, E_qB, self.inductive_threshold, self.inductive_depth) else: I_updated = self.I - agent = tree_at( - lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated) - ) - + agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) + # if self.learn_C: # self.qC = learning.update_C(self.C, *args, **kwargs) # self.C = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), self.qC) @@ -400,11 +297,9 @@ def learning( # agent = tree_at(lambda x: (x.A, x.pA, x.B, x.pB, x.I), self, (E_qA, qA, E_qB, qB, I_updated)) return agent - + @vmap - def infer_states( - self, observations, past_actions, empirical_prior, qs_hist, mask=None - ): + def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mask=None): """ Update approximate posterior over hidden states by solving variational inference problem, given an observation. @@ -415,36 +310,28 @@ def infer_states( past_actions: ``list`` or ``tuple`` of ints The action input. Each entry ``past_actions[f]`` stores indices (or one-hots?) representing the actions for control factor ``f``. empirical_prior: ``list`` or ``tuple`` of ``jax.numpy.ndarray`` of dtype object - Empirical prior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``empirical_prior`` variable may be a matrix (or list of matrices) + Empirical prior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``empirical_prior`` variable may be a matrix (or list of matrices) of additional dimensions to encode extra conditioning variables like timepoint and policy. Returns --------- qs: ``numpy.ndarray`` of dtype object Posterior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` at timepoint ``t_idx``. """ if not self.onehot_obs: - o_vec = [ - nn.one_hot(o, self.num_obs[m]) - for m, o in enumerate(observations) - ] + o_vec = [nn.one_hot(o, self.num_obs[m]) for m, o in enumerate(observations)] else: o_vec = observations - + A = self.A if mask is not None: for i, m in enumerate(mask): - o_vec[i] = ( - m * o_vec[i] - + (1 - m) * jnp.ones_like(o_vec[i]) / self.num_obs[i] - ) - A[i] = ( - m * A[i] + (1 - m) * jnp.ones_like(A[i]) / self.num_obs[i] - ) - + o_vec[i] = m * o_vec[i] + (1 - m) * jnp.ones_like(o_vec[i]) / self.num_obs[i] + A[i] = m * A[i] + (1 - m) * jnp.ones_like(A[i]) / self.num_obs[i] + output = inference.update_posterior_states( A, self.B, @@ -455,7 +342,7 @@ def infer_states( A_dependencies=self.A_dependencies, B_dependencies=self.B_dependencies, num_iter=self.num_iter, - method=self.inference_algo, + method=self.inference_algo ) return output @@ -464,12 +351,10 @@ def infer_states( def update_empirical_prior(self, action, qs): # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t - qs_last = jtu.tree_map(lambda x: x[-1], qs) + qs_last = jtu.tree_map( lambda x: x[-1], qs) # this computation of the predictive prior is correct only for fully factorised Bs. - pred = control.compute_expected_state( - qs_last, self.B, action, B_dependencies=self.B_dependencies - ) - + pred = control.compute_expected_state(qs_last, self.B, action, B_dependencies=self.B_dependencies) + return (pred, qs) @vmap @@ -488,12 +373,10 @@ def infer_policies(self, qs: List): Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. """ - latest_belief = jtu.tree_map( - lambda x: x[-1], qs - ) # only get the posterior belief held at the current timepoint + latest_belief = jtu.tree_map(lambda x: x[-1], qs) # only get the posterior belief held at the current timepoint q_pi, G = control.update_posterior_policies_inductive( self.policies, - latest_belief, + latest_belief, self.A, self.B, self.C, @@ -502,17 +385,17 @@ def infer_policies(self, qs: List): self.pB, A_dependencies=self.A_dependencies, B_dependencies=self.B_dependencies, - I=self.I, + I = self.I, gamma=self.gamma, inductive_epsilon=self.inductive_epsilon, use_utility=self.use_utility, use_states_info_gain=self.use_states_info_gain, use_param_info_gain=self.use_param_info_gain, - use_inductive=self.use_inductive, + use_inductive=self.use_inductive ) return q_pi, G - + @vmap def multiaction_probabilities(self, q_pi: Array): """ @@ -522,7 +405,7 @@ def multiaction_probabilities(self, q_pi: Array): ---------- q_pi: 1D ``numpy.ndarray`` Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - + Returns ---------- multi-action: 1D ``jax.numpy.ndarray`` @@ -530,28 +413,25 @@ def multiaction_probabilities(self, q_pi: Array): """ if self.sampling_mode == "marginal": - marginals = control.get_marginals( - q_pi, self.policies, self.num_controls - ) + marginals = control.get_marginals(q_pi, self.policies, self.num_controls) outer = lambda a, b: jnp.outer(a, b).reshape(-1) marginals = jtu.tree_reduce(outer, marginals) elif self.sampling_mode == "full": locs = jnp.all( - self.policies[:, 0] - == jnp.expand_dims(self.unique_multiactions, -2), - -1, + self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), + -1 ) - marginals = jnp.where(locs, q_pi, 0.0).sum(-1) + marginals = jnp.where(locs, q_pi, 0.).sum(-1) - # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan + # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan return marginals @vmap def sample_action(self, q_pi: Array, rng_key=None): """ Sample or select a discrete action from the posterior over control states. - + Returns ---------- action: 1D ``jax.numpy.ndarray`` @@ -561,31 +441,15 @@ def sample_action(self, q_pi: Array, rng_key=None): """ if (rng_key is None) and (self.action_selection == "stochastic"): - raise ValueError( - "Please provide a random number generator key to sample actions stochastically" - ) + raise ValueError("Please provide a random number generator key to sample actions stochastically") if self.sampling_mode == "marginal": - action = control.sample_action( - q_pi, - self.policies, - self.num_controls, - self.action_selection, - self.alpha, - rng_key=rng_key, - ) + action = control.sample_action(q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key) elif self.sampling_mode == "full": - action = control.sample_policy( - q_pi, - self.policies, - self.num_controls, - self.action_selection, - self.alpha, - rng_key=rng_key, - ) + action = control.sample_policy(q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key) return action - + def _get_default_params(self): method = self.inference_algo default_params = None @@ -602,4 +466,4 @@ def _get_default_params(self): elif method == "CV": raise NotImplementedError("CV is not implemented") - return default_params + return default_params \ No newline at end of file From 4ec0363bcb0453951092c2675e2e81cb56cbc550 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Wed, 12 Jun 2024 15:18:14 +0200 Subject: [PATCH 096/196] undo linting issues with agent.py --- pymdp/agent.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pymdp/agent.py b/pymdp/agent.py index f781dd81..ba013248 100644 --- a/pymdp/agent.py +++ b/pymdp/agent.py @@ -938,5 +938,4 @@ def _get_default_params(self): return default_params - \ No newline at end of file From 89208bb05f9c7b080ec31b2de35993db284dd51a Mon Sep 17 00:00:00 2001 From: conorheins Date: Wed, 12 Jun 2024 16:00:09 +0200 Subject: [PATCH 097/196] smoothing example notebook now working without batch dimensions --- .../inference_methods_comparison.ipynb | 187 +++++++++++++----- 1 file changed, 138 insertions(+), 49 deletions(-) diff --git a/examples/inference_and_learning/inference_methods_comparison.ipynb b/examples/inference_and_learning/inference_methods_comparison.ipynb index 23d6755d..4c51f20c 100644 --- a/examples/inference_and_learning/inference_methods_comparison.ipynb +++ b/examples/inference_and_learning/inference_methods_comparison.ipynb @@ -160,31 +160,109 @@ "metadata": {}, "outputs": [], "source": [ - "sparse_B = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b, n_batch=n_batch), agents.B)\n" + "sparse_B = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b, n_batch=n_batch), agents.B)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, + "outputs": [], + "source": [ + "# sparse.sparsify(jnp.stack)([sparse_B[0], sparse_B[0]],axis=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, "outputs": [ { - "ename": "ValueError", - "evalue": "Custom node type mismatch: expected type: , value: Tracedwith with\n val = Array([[[5.0000000e-01, 5.0000000e-01],\n [4.5378983e-01, 5.4621023e-01],\n [4.9596748e-01, 5.0403249e-01],\n [4.4570816e-01, 5.5429184e-01],\n [1.0000000e+00, 3.5709456e-16]],\n\n [[5.0000000e-01, 5.0000000e-01],\n [4.5378983e-01, 5.4621023e-01],\n [4.9596748e-01, 5.0403249e-01],\n [4.4570816e-01, 5.5429184e-01],\n [1.0000000e+00, 3.5709456e-16]]], dtype=float32)\n batch_dim = 0.", + "ename": "AssertionError", + "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[7], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m smoothed_beliefs_sparse \u001b[38;5;241m=\u001b[39m \u001b[43mvmap\u001b[49m\u001b[43m(\u001b[49m\u001b[43msmoothing_ovf\u001b[49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbeliefs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msparse_B\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstack\u001b[49m\u001b[43m(\u001b[49m\u001b[43maction_hist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", - " \u001b[0;31m[... skipping hidden 3 frame]\u001b[0m\n", - "File \u001b[0;32m~/Documents/Verses/pymdp/pymdp/jax/inference.py:138\u001b[0m, in \u001b[0;36msmoothing_ovf\u001b[0;34m(filtered_post, B, past_actions)\u001b[0m\n\u001b[1;32m 136\u001b[0m nf \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(B) \u001b[38;5;66;03m# number of factors\u001b[39;00m\n\u001b[1;32m 137\u001b[0m joint \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mlambda\u001b[39;00m b, qs, f: joint_dist_factor(b, qs, past_actions[\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m, f])\n\u001b[0;32m--> 138\u001b[0m marginals_and_joints \u001b[38;5;241m=\u001b[39m \u001b[43mjtu\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtree_map\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 139\u001b[0m \u001b[43m \u001b[49m\u001b[43mjoint\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mB\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfiltered_post\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mlist\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mnf\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;66;03m# marginals_and_joints = []\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;66;03m# for b, qs, f in zip(B, filtered_post, list(range(nf))):\u001b[39;00m\n\u001b[1;32m 143\u001b[0m \u001b[38;5;66;03m# marginals_and_joints_f = joint(b, qs, f)\u001b[39;00m\n\u001b[1;32m 144\u001b[0m \u001b[38;5;66;03m# marginals_and_joints.append(marginals_and_joints_f)\u001b[39;00m\n\u001b[1;32m 146\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m marginals_and_joints\n", - "File \u001b[0;32m~/miniconda3/envs/pymdp_dev_env/lib/python3.12/site-packages/jax/_src/tree_util.py:319\u001b[0m, in \u001b[0;36mtree_map\u001b[0;34m(f, tree, is_leaf, *rest)\u001b[0m\n\u001b[1;32m 282\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Maps a multi-input function over pytree args to produce a new pytree.\u001b[39;00m\n\u001b[1;32m 283\u001b[0m \n\u001b[1;32m 284\u001b[0m \u001b[38;5;124;03mArgs:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 316\u001b[0m \u001b[38;5;124;03m - :func:`jax.tree.reduce`\u001b[39;00m\n\u001b[1;32m 317\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 318\u001b[0m leaves, treedef \u001b[38;5;241m=\u001b[39m tree_flatten(tree, is_leaf)\n\u001b[0;32m--> 319\u001b[0m all_leaves \u001b[38;5;241m=\u001b[39m [leaves] \u001b[38;5;241m+\u001b[39m [\u001b[43mtreedef\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mflatten_up_to\u001b[49m\u001b[43m(\u001b[49m\u001b[43mr\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest]\n\u001b[1;32m 320\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m treedef\u001b[38;5;241m.\u001b[39munflatten(f(\u001b[38;5;241m*\u001b[39mxs) \u001b[38;5;28;01mfor\u001b[39;00m xs \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(\u001b[38;5;241m*\u001b[39mall_leaves))\n", - "\u001b[0;31mValueError\u001b[0m: Custom node type mismatch: expected type: , value: Tracedwith with\n val = Array([[[5.0000000e-01, 5.0000000e-01],\n [4.5378983e-01, 5.4621023e-01],\n [4.9596748e-01, 5.0403249e-01],\n [4.4570816e-01, 5.5429184e-01],\n [1.0000000e+00, 3.5709456e-16]],\n\n [[5.0000000e-01, 5.0000000e-01],\n [4.5378983e-01, 5.4621023e-01],\n [4.9596748e-01, 5.0403249e-01],\n [4.4570816e-01, 5.5429184e-01],\n [1.0000000e+00, 3.5709456e-16]]], dtype=float32)\n batch_dim = 0." + "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[8], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m smoothed_beliefs_sparse \u001b[38;5;241m=\u001b[39m \u001b[43mvmap\u001b[49m\u001b[43m(\u001b[49m\u001b[43msmoothing_ovf\u001b[49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbeliefs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msparse_B\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstack\u001b[49m\u001b[43m(\u001b[49m\u001b[43maction_hist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", + " \u001b[0;31m[... skipping hidden 5 frame]\u001b[0m\n", + "File \u001b[0;32m~/miniconda3/envs/pymdp_dev_env/lib/python3.12/site-packages/jax/experimental/sparse/bcoo.py:2699\u001b[0m, in \u001b[0;36m_bcoo_from_elt\u001b[0;34m(cont, axis_size, elt, axis)\u001b[0m\n\u001b[1;32m 2696\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m axis \u001b[38;5;241m>\u001b[39m elt\u001b[38;5;241m.\u001b[39mn_batch:\n\u001b[1;32m 2697\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mBCOO: cannot add out_axis=\u001b[39m\u001b[38;5;132;01m{\u001b[39;00maxis\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m for BCOO array with n_batch=\u001b[39m\u001b[38;5;132;01m{\u001b[39;00melt\u001b[38;5;241m.\u001b[39mn_batch\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2698\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mBCOO batch axes must be a contiguous block of leading dimensions.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 2699\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mBCOO\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcont\u001b[49m\u001b[43m(\u001b[49m\u001b[43maxis_size\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43melt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcont\u001b[49m\u001b[43m(\u001b[49m\u001b[43maxis_size\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43melt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindices\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2700\u001b[0m \u001b[43m \u001b[49m\u001b[43mshape\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43melt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshape\u001b[49m\u001b[43m[\u001b[49m\u001b[43m:\u001b[49m\u001b[43maxis\u001b[49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43maxis_size\u001b[49m\u001b[43m,\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[43melt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshape\u001b[49m\u001b[43m[\u001b[49m\u001b[43maxis\u001b[49m\u001b[43m:\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2701\u001b[0m \u001b[43m \u001b[49m\u001b[43mindices_sorted\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43melt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindices_sorted\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43munique_indices\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43melt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43munique_indices\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniconda3/envs/pymdp_dev_env/lib/python3.12/site-packages/jax/experimental/sparse/bcoo.py:2479\u001b[0m, in \u001b[0;36mBCOO.__init__\u001b[0;34m(self, args, shape, indices_sorted, unique_indices)\u001b[0m\n\u001b[1;32m 2477\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39munique_indices \u001b[38;5;241m=\u001b[39m unique_indices\n\u001b[1;32m 2478\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(args, shape\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mtuple\u001b[39m(shape))\n\u001b[0;32m-> 2479\u001b[0m \u001b[43m_validate_bcoo\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindices\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshape\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniconda3/envs/pymdp_dev_env/lib/python3.12/site-packages/jax/experimental/sparse/bcoo.py:136\u001b[0m, in \u001b[0;36m_validate_bcoo\u001b[0;34m(data, indices, shape)\u001b[0m\n\u001b[1;32m 135\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_validate_bcoo\u001b[39m(data: Buffer, indices: Buffer, shape: Sequence[\u001b[38;5;28mint\u001b[39m]) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m BCOOProperties:\n\u001b[0;32m--> 136\u001b[0m props \u001b[38;5;241m=\u001b[39m \u001b[43m_validate_bcoo_indices\u001b[49m\u001b[43m(\u001b[49m\u001b[43mindices\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mshape\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 137\u001b[0m n_batch, n_sparse, n_dense, nse \u001b[38;5;241m=\u001b[39m props\n\u001b[1;32m 138\u001b[0m shape \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(shape)\n", + "File \u001b[0;32m~/miniconda3/envs/pymdp_dev_env/lib/python3.12/site-packages/jax/experimental/sparse/bcoo.py:152\u001b[0m, in \u001b[0;36m_validate_bcoo_indices\u001b[0;34m(indices, shape)\u001b[0m\n\u001b[1;32m 150\u001b[0m n_batch \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(indices\u001b[38;5;241m.\u001b[39mshape) \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m2\u001b[39m\n\u001b[1;32m 151\u001b[0m n_dense \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(shape) \u001b[38;5;241m-\u001b[39m n_batch \u001b[38;5;241m-\u001b[39m n_sparse\n\u001b[0;32m--> 152\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m n_dense \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m 153\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28many\u001b[39m(s1 \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m (\u001b[38;5;241m1\u001b[39m, s2) \u001b[38;5;28;01mfor\u001b[39;00m s1, s2 \u001b[38;5;129;01min\u001b[39;00m safe_zip(indices\u001b[38;5;241m.\u001b[39mshape[:n_batch], shape[:n_batch])):\n\u001b[1;32m 154\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mindices batch dimensions not compatible for \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mindices\u001b[38;5;241m.\u001b[39mshape\u001b[38;5;132;01m=}\u001b[39;00m\u001b[38;5;124m, \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mshape\u001b[38;5;132;01m=}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n", + "\u001b[0;31mAssertionError\u001b[0m: " ] } ], "source": [ - "smoothed_beliefs_sparse = vmap(smoothing_ovf)(beliefs, sparse_B, jnp.stack(action_hist, 1))\n" + "smoothed_beliefs_sparse = vmap(smoothing_ovf)(beliefs, sparse_B, jnp.stack(action_hist, 1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Try the non-vmapped version of `smoothing_ovf`\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "take_first = lambda pytree: jtu.tree_map(lambda leaf: leaf[0], pytree)\n", + "\n", + "beliefs_single = take_first(beliefs)\n", + "sparse_B_single = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b[0]), agents.B)\n", + "actions_single = jnp.stack(action_hist, 1)[0]\n", + "\n", + "smoothed_beliefs = smoothing_ovf(beliefs_single, sparse_B_single, actions_single)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Now we can plot that pair of filtering / smoothing distributions for the single batch / single agent, that we ran" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Filtered beliefs')" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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661x/fXXR0NDQ5x55pnxp3/6p/GZz3wmBg4c2O45AAAAyEMMBLrEe+9o+8u//Mvdxq4RI0a0+fr33xX4++e47bbbYtSoUbs8x6GHHrrXX9yxL7W0tMQpp5wSd9xxxy7vP/rooys6V8Ten9+eXHfddXHxxRfHokWLYvHixfF3f/d3MXv27Hj88cfjox/9aLtnAQAAIAcxEOi0QqGw07EBAwZE3759o7m5OS644IIOnfe9X0TSr1+/PZ5jwIAB0bt379Z32v2+559/vt1/3muvvRZNTU1t3h24bt26iIjWX8YxdOjQeOaZZ2LcuHG7fN6VaO/za895rr/++rj++uvjhRdeiFGjRsU3vvGN+Md//MdOzQcAAMDBxzUDgU7r06dP/Pa3v21zrFu3bnHJJZfED37wg/j5z3++02PeeOONvZ63sbExhg4dGrfffnts27Ztt+fo1q1bjB8/PhYtWhQvv/xy6/2/+tWvYvHixe1+Hjt27Ih58+a1fv3OO+/EvHnzYsCAAdHY2BgRERMnToxXX3015s+fv9Pjt2/fHk1NTe3+89r7/HbnrbfeirfffrvNsaFDh0bfvn3367slAQAAqB3eGQh0WmNjYzz22GNxxx13xODBg2PIkCExevTouOWWW2LZsmUxevTo+OxnPxsnnnhibN68OdasWROPPfZYbN68eY/nrauri29/+9tx0UUXxUknnRSXX355HHnkkfHqq6/GsmXLol+/fvGv//qvERFx0003xU9+8pM499xz4/Of/3zs2LEjvvWtb8VJJ50U//Vf/9Wu5zF48OC49dZb46WXXooTTjghvve978XatWvjvvvuix49ekRExF/91V/FI488Etdcc00sW7YszjnnnGhubo7nnnsuHnnkkVi8eHG7r79YyfPblXXr1sW4ceNi4sSJceKJJ0b37t1j4cKFsWHDhvj0pz/drhkAAADIRQwEOu2OO+6IqVOnxle+8pXYvn17TJ48OUaPHh0NDQ2xYsWK+NrXvhaPPvpo3H333XH44YfHSSedFLfeemu7zn3eeefF8uXL4+tf/3rMnTs3tm3bFgMHDozRo0e3+c2/I0aMiMWLF8eMGTPixhtvjKOOOipuuummeP3119sdAw877LB48MEHY/r06TF//vxoaGiIuXPnxmc/+9nW76mrq4tFixbFnDlz4jvf+U4sXLgwDjnkkPjQhz4UX/jCF1p/4Uh7tff57crRRx8dl112WSxdujQeeuih6N69ewwbNiweeeSRuOSSSyqaAwAAgBwK5XK5XO0hAAAAAICu55qBAAAAAJCEGAgAAAAASYiBAAAAAJCEGAgAAAAASYiBAAAAAJCEGAgAAAAASYiBAAAAAJBE92oP8J5TPzen2iPQCTt6VXsCOmvHIdWegM7qtbnaE9BZh8/7f9UegU5Y0vL9ao9AJ7WsP6HaI9BJ4wePrPYIkNri156p9gh0kp+jta89e1LvDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJLpX+oBNmzbF/fffH8uXL4/169dHRMTAgQPj7LPPjilTpsSAAQP2+ZAAAPAe+1EAgI6r6J2BK1eujBNOOCHuvPPOqK+vjzFjxsSYMWOivr4+7rzzzhg2bFisWrWqq2YFACA5+1EAgM6p6J2B06dPj0svvTTuvffeKBQKbe4rl8txzTXXxPTp02P58uV7PE+pVIpSqdTmWEvzjqjrVvEbFQEASKQr96M9Si1RLLqKDgBwcKtot/PMM8/EF7/4xZ02XhERhUIhvvjFL8batWv3ep7Zs2dHfX19m9uGNY9VMgoAAAl15X70lm+92QUTAwAcWCqKgQMHDowVK1bs9v4VK1ZEQ0PDXs8zc+bM2LJlS5tbw6kXVDIKAAAJdeV+9MvTD9uXowIAHJAq+lzuDTfcEFOnTo3Vq1fHuHHjWjdaGzZsiKVLl8b8+fPj9ttv3+t5isViFIvFNsd8RBgAgL3pyv1oy1s+IgwAHPwqKnDTpk2L/v37x5w5c+Luu++O5ubmiIjo1q1bNDY2xoIFC2LixIldMigAANiPAgB0TsVvx5s0aVJMmjQp3n333di0aVNERPTv3z969Oixz4cDAIA/ZD8KANBxHf5sbo8ePWLQoEH7chYAAGg3+1EAgMq5MAoAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJCEGAgAAAEASYiAAAAAAJNG92gMAB4ZDXy1XewQ6aUexUO0RAGra+MEjqz0CpLf4tWeqPQKd4Oco1AbvDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhin8fAV155Ja644oo9fk+pVIqtW7e2ubU079jXowAAkFCH96Pl5v00IQBA9ezzGLh58+Z48MEH9/g9s2fPjvr6+ja3DWse29ejAACQUEf3oy/Gc/tpQgCA6ule6QN++MMf7vH+X//613s9x8yZM2PGjBltjo25YV6lowAAkFBX7Uc/VT+lM2MBANSEimPghAkTolAoRLlc3u33FAqFPZ6jWCxGsVhsc6yuW8WjAACQUJftRwvd9sl8AAAHsoo/Jjxo0KB49NFHo6WlZZe3NWvWdMWcAAAQEfajAACdUXEMbGxsjNWrV+/2/r39Ky0AAHSG/SgAQMdV/NncL33pS9HU1LTb+48//vhYtmxZp4YCAIDdsR8FAOi4imPgueeeu8f7+/TpE2PHju3wQAAAsCf2owAAHVfxx4QBAAAAgNokBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEmIgAAAAACQhBgIAAABAEt2rPQAHh0Nfa6n2CHRSc7FQ7RHopHK3ak9AZy1+7ZlqjwBQ0/wcrX3jB4+s9giQmp+jOXhnIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBJiIAAAAAAkIQYCAAAAQBIVx8Dt27fH008/Hb/85S93uu/tt9+O73znO/tkMAAA2BX7UQCAjqsoBq5bty6GDx8eY8aMiVNOOSXGjh0br7/+euv9W7Zsicsvv3yv5ymVSrF169Y2t5bmHZVPDwBAKl26Hy03d+XoAAAHhIpi4N/+7d/GySefHBs3boznn38++vbtG+ecc068/PLLFf2hs2fPjvr6+ja3DWseq+gcAADk05X70RfjuS6aGgDgwFEol8vl9n5zQ0NDPPbYY3HKKadERES5XI7Pf/7z8aMf/SiWLVsWffr0icGDB0dz857/VbVUKkWpVGpzbMwN86KuW/cOPAUOBL02t1R7BDqpuVio9gh00juHWsNat/rGe6o9Ap1QN3BdtUdIoSv3o5+qnxJ1hW5dNjtdb/Frz1R7BDpp/OCR1R4BUvNztPa1Z09a0TsDt2/fHt27vx/sCoVC3HPPPXHxxRfH2LFjY9269m2Ci8Vi9OvXr81NCAQAYG+6dD8qBAIACVRU4IYNGxarVq2K4cOHtzk+d+7ciIj4xCc+se8mAwCAP2A/CgDQORW9M/BTn/pU/NM//dMu75s7d25cdtllUcGnjgEAoCL2owAAnVPRNQO70qmfm1PtEegE1wysfa4ZWPtcM7D2uWZgbXPNwNp3Yd2l1R6BTnKtq9rnmoFQXX6O1r59fs1AAAAAAKB2iYEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkIQYCAAAAABJiIEAAAAAkEShXC6Xqz3Ewa5UKsXs2bNj5syZUSwWqz0OHWANa581rG3Wr/ZZQ6gur8HaZw1rnzWsfdawtlm/94mB+8HWrVujvr4+tmzZEv369av2OHSANax91rC2Wb/aZw2hurwGa581rH3WsPZZw9pm/d7nY8IAAAAAkIQYCAAAAABJiIEAAAAAkIQYuB8Ui8WYNWtW+gtU1jJrWPusYW2zfrXPGkJ1eQ3WPmtY+6xh7bOGtc36vc8vEAEAAACAJLwzEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACS6F7tAd7zoTu/Ue0R6ITu23TlWrfjkHK1R6CTum8rVHsEOum5q+6p9gh0Qt3AddUegU5qWX9CtUegk8YPHlntEeikxa89U+0R6ASvwdrnNVj72rMnVXAAAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIAkxEAAAAACSEAMBAAAAIInulT5g06ZNcf/998fy5ctj/fr1ERExcODAOPvss2PKlCkxYMCAfT4kAAC8x34UAKDjKnpn4MqVK+OEE06IO++8M+rr62PMmDExZsyYqK+vjzvvvDOGDRsWq1at2ut5SqVSbN26tc2tvGNHh58EAAA5dOV+tFRq2Q/PAACguip6Z+D06dPj0ksvjXvvvTcKhUKb+8rlclxzzTUxffr0WL58+R7PM3v27LjpppvaHPvAxy+Mwy4aX8k4AAAk05X70Ruv/2DMuuHwfT4zAMCBpFAul8vt/ebevXvHf/7nf8awYcN2ef9zzz0XH/3oR2P79u17PE+pVIpSqdTm2Mhv3xOF7hV/apkDRPdtLj9Z63Yc0u4fBRygum8r7P2bOKA9d9U91R6BTqgbuK7aI6TQlfvRHm+eGsWiPU0tGz94ZLVHoJMWv/ZMtUegE7wGa5/XYO1rz560ovo2cODAWLFixW43XytWrIiGhoa9nqdYLEaxWGxzTAgEAGBvunI/2vKWEAgAHPwqKnA33HBDTJ06NVavXh3jxo1r3Wht2LAhli5dGvPnz4/bb7+9SwYFAAD7UQCAzqkoBk6bNi369+8fc+bMibvvvjuam5sjIqJbt27R2NgYCxYsiIkTJ3bJoAAAYD8KANA5FX82d9KkSTFp0qR49913Y9OmTRER0b9//+jRo8c+Hw4AAP6Q/SgAQMd1+EJ9PXr0iEGDBu3LWQAAoN3sRwEAKucqyQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQhBgIAAAAAEmIgQAAAACQRPdqD8DBoXTEjmqPQCfVbfdvA7WuNNjrsNaNHzyy2iPQCUtaqj0BneU1WPsWv/ZMtUegk7wOa5vXYO3zGqx97dmT+r9/AAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJPZ5DHzllVfiiiuu2OP3lEql2Lp1a5tbeceOfT0KAAAJdXQ/2lJu3k8TAgBUzz6PgZs3b44HH3xwj98ze/bsqK+vb3P77ZKl+3oUAAAS6uh+9MV4bj9NCABQPd0rfcAPf/jDPd7/61//eq/nmDlzZsyYMaPNsZHfvqfSUQAASKir9qOfqp/SmbEAAGpCxTFwwoQJUSgUolwu7/Z7CoXCHs9RLBajWCy2fUz3ikcBACChrtqP1hW67ZP5AAAOZBV/THjQoEHx6KOPRktLyy5va9as6Yo5AQAgIuxHAQA6o+IY2NjYGKtXr97t/Xv7V1oAAOgM+1EAgI6r+LO5X/rSl6KpqWm39x9//PGxbNmyTg0FAAC7Yz8KANBxFcfAc889d4/39+nTJ8aOHdvhgQAAYE/sRwEAOq7ijwkDAAAAALVJDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEhCDAQAAACAJMRAAAAAAEiiUC6Xy9Ue4mBXKpVi9uzZMXPmzCgWi9Uehw6whrXPGtY261f7rCFUl9dg7bOGtc8a1j5rWNus3/vEwP1g69atUV9fH1u2bIl+/fpVexw6wBrWPmtY26xf7bOGUF1eg7XPGtY+a1j7rGFts37v8zFhAAAAAEhCDAQAAACAJMRAAAAAAEhCDNwPisVizJo1K/0FKmuZNax91rC2Wb/aZw2hurwGa581rH3WsPZZw9pm/d7nF4gAAAAAQBLeGQgAAAAASYiBAAAAAJCEGAgAAAAASYiBAAAAAJCEGLgf3HXXXXHcccdFr169YvTo0bFixYpqj0Q7PfXUU3HxxRfH4MGDo1AoxKJFi6o9EhWYPXt2nH766dG3b9844ogjYsKECfH8889XeywqcM8998SIESOiX79+0a9fvzjrrLPixz/+cbXHooNuueWWKBQKcd1111V7FEjHfrR22Y/WPnvS2mY/evCxJxUDu9z3vve9mDFjRsyaNSvWrFkTI0eOjPHjx8fGjRurPRrt0NTUFCNHjoy77rqr2qPQAU8++WRMmzYt/v3f/z2WLFkS7777bnzsYx+Lpqamao9GOx111FFxyy23xOrVq2PVqlVx/vnnxyc/+cn4xS9+Ue3RqNDKlStj3rx5MWLEiGqPAunYj9Y2+9HaZ09a2+xHDy72pL9TKJfL5WoPcTAbPXp0nH766TF37tyIiGhpaYmjjz46pk+fHl/+8perPB2VKBQKsXDhwpgwYUK1R6GD3njjjTjiiCPiySefjDFjxlR7HDrogx/8YNx2221x5ZVXVnsU2mnbtm1x6qmnxt133x1///d/H6NGjYpvfvOb1R4L0rAfPXjYjx4c7Elrn/1obbInfZ93Bnahd955J1avXh0XXHBB67G6urq44IILYvny5VWcDHLasmVLRPzuP97Unubm5nj44YejqakpzjrrrGqPQwWmTZsWf/Inf9Lmv4fA/mE/Cgcee9LaZT9a2+xJ39e92gMczDZt2hTNzc3R0NDQ5nhDQ0M899xzVZoKcmppaYnrrrsuzjnnnDj55JOrPQ4VePbZZ+Oss86Kt99+Ow499NBYuHBhnHjiidUei3Z6+OGHY82aNbFy5cpqjwIp2Y/CgcWetDbZj9Y+e9K2xEAghWnTpsXPf/7zePrpp6s9ChX6yEc+EmvXro0tW7bEP//zP8fkyZPjySeftAGrAa+88kp84QtfiCVLlkSvXr2qPQ4AVJ09aW2yH61t9qQ7EwO7UP/+/aNbt26xYcOGNsc3bNgQAwcOrNJUkM+1114b//Zv/xZPPfVUHHXUUdUehwr17Nkzjj/++IiIaGxsjJUrV8Y//MM/xLx586o8GXuzevXq2LhxY5x66qmtx5qbm+Opp56KuXPnRqlUim7dulVxQjj42Y/CgcOetHbZj9Y2e9KduWZgF+rZs2c0NjbG0qVLW4+1tLTE0qVLXV8A9oNyuRzXXnttLFy4MB5//PEYMmRItUdiH2hpaYlSqVTtMWiHcePGxbPPPhtr165tvZ122mnxF3/xF7F27dp0my6oBvtRqD570oOP/WhtsSfdmXcGdrEZM2bE5MmT47TTToszzjgjvvnNb0ZTU1Ncfvnl1R6Ndti2bVv893//d+vXL774YqxduzY++MEPxjHHHFPFyWiPadOmxXe/+934l3/5l+jbt2+sX78+IiLq6+ujd+/eVZ6O9pg5c2ZcdNFFccwxx8T//d//xXe/+9144oknYvHixdUejXbo27fvTtdD6tOnTxx++OGukwT7kf1obbMfrX32pLXNfrT22ZPuTAzsYpMmTYo33ngjbrzxxli/fn2MGjUqfvKTn+x0EWcOTKtWrYo/+qM/av16xowZERExefLkWLBgQZWmor3uueeeiIg477zz2hx/4IEHYsqUKft/ICq2cePG+MxnPhOvv/561NfXx4gRI2Lx4sVx4YUXVns0gJphP1rb7Edrnz1pbbMf5WBUKJfL5WoPAQAAAAB0PdcMBAAAAIAkxEAAAAAASEIMBAAAAIAkxEAAAAAASEIMBAAAAIAkxEAAAAAASEIMBAAAAIAkxEAAAAAASEIMBAAAAIAkxEAAAAAASEIMBAAAAIAkxEAAAAAASOL/A+YredKxVbjmAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(2, 2, figsize=(16, 8), sharex=True)\n", + "\n", + "sns.heatmap(beliefs_single[0].mT, ax=axes[0, 0], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(beliefs_single[1].mT, ax=axes[1, 0], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "\n", + "sns.heatmap(smoothed_beliefs[0][0].mT, ax=axes[0, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(smoothed_beliefs[1][0].mT, ax=axes[1, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "\n", + "axes[0, 0].set_title('Filtered beliefs')" ] }, { @@ -193,12 +271,12 @@ "metadata": {}, "outputs": [], "source": [ - "f_id, batch_id = 0, 0\n", - "filtered_qs = beliefs[f_id][batch_id] # this assuming the code below is being tree_mapped over factors (first index is factor_id), and vmapped over batches (second index is batch_id)\n", - "sparse_b = sparse_B[f_id][batch_id]\n", - "b = agents.B[f_id][batch_id]\n", - "past_actions = jnp.stack(action_hist, 1)\n", - "actions = past_actions[batch_id][...,f_id]" + "# f_id, batch_id = 0, 0\n", + "# filtered_qs = beliefs[f_id][batch_id] # this assuming the code below is being tree_mapped over factors (first index is factor_id), and vmapped over batches (second index is batch_id)\n", + "# sparse_b = sparse_B[f_id][batch_id]\n", + "# b = agents.B[f_id][batch_id]\n", + "# past_actions = jnp.stack(action_hist, 1)\n", + "# actions = past_actions[batch_id][...,f_id]" ] }, { @@ -207,11 +285,11 @@ "metadata": {}, "outputs": [], "source": [ - "qs_last = filtered_qs[-1]\n", - "qs_filter = filtered_qs[:-1]\n", - "# time_b = jnp.moveaxis(b[..., actions], -1, 0)\n", - "time_b = sparse_b[...,actions].transpose([sparse_b.ndim-1] + list(range(sparse_b.ndim-1)))\n", - "qs_joint= time_b * jnp.expand_dims(qs_filter, -1)" + "# qs_last = filtered_qs[-1]\n", + "# qs_filter = filtered_qs[:-1]\n", + "# # time_b = jnp.moveaxis(b[..., actions], -1, 0)\n", + "# time_b = sparse_b[...,actions].transpose([sparse_b.ndim-1] + list(range(sparse_b.ndim-1)))\n", + "# qs_joint= time_b * jnp.expand_dims(qs_filter, -1)" ] }, { @@ -220,7 +298,7 @@ "metadata": {}, "outputs": [], "source": [ - "sparse_b[...,actions].transpose([sparse_b.ndim-1] + list(range(sparse_b.ndim-1))).shape" + "# sparse_b[...,actions].transpose([sparse_b.ndim-1] + list(range(sparse_b.ndim-1))).shape" ] }, { @@ -229,37 +307,37 @@ "metadata": {}, "outputs": [], "source": [ - "qs_last = filtered_qs[-1]\n", - "qs_filter = filtered_qs[:-1]\n", + "# qs_last = filtered_qs[-1]\n", + "# qs_filter = filtered_qs[:-1]\n", "\n", - "# conditional dist - timestep x s_{t+1} | s_{t}\n", - "time_b = jnp.moveaxis(b[..., actions], -1, 0)\n", + "# # conditional dist - timestep x s_{t+1} | s_{t}\n", + "# time_b = jnp.moveaxis(b[..., actions], -1, 0)\n", "\n", - "# joint dist - timestep x s_{t+1} x s_{t}\n", - "qs_joint = time_b * jnp.expand_dims(qs_filter, -1)\n", + "# # joint dist - timestep x s_{t+1} x s_{t}\n", + "# qs_joint = time_b * jnp.expand_dims(qs_filter, -1)\n", "\n", - "# cond dist - timestep x s_{t} | s_{t+1}\n", - "qs_backward_cond = jnp.moveaxis(\n", - " qs_joint / qs_joint.sum(-2, keepdims=True), -2, -1\n", - ")\n", + "# # cond dist - timestep x s_{t} | s_{t+1}\n", + "# qs_backward_cond = jnp.moveaxis(\n", + "# qs_joint / qs_joint.sum(-2, keepdims=True), -2, -1\n", + "# )\n", "\n", - "def step_fn(qs_smooth_past, backward_b):\n", - " qs_joint = backward_b * qs_smooth_past\n", - " qs_smooth = qs_joint.sum(-1)\n", + "# def step_fn(qs_smooth_past, backward_b):\n", + "# qs_joint = backward_b * qs_smooth_past\n", + "# qs_smooth = qs_joint.sum(-1)\n", " \n", - " return qs_smooth, (qs_smooth, qs_joint)\n", + "# return qs_smooth, (qs_smooth, qs_joint)\n", "\n", - "# seq_qs will contain a sequence of smoothed marginals and joints\n", - "_, seq_qs = lax.scan(\n", - " step_fn,\n", - " qs_last,\n", - " qs_backward_cond,\n", - " reverse=True,\n", - " unroll=2\n", - ")\n", + "# # seq_qs will contain a sequence of smoothed marginals and joints\n", + "# _, seq_qs = lax.scan(\n", + "# step_fn,\n", + "# qs_last,\n", + "# qs_backward_cond,\n", + "# reverse=True,\n", + "# unroll=2\n", + "# )\n", "\n", - "# we add the last filtered belief to smoothed beliefs\n", - "qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0)" + "# # we add the last filtered belief to smoothed beliefs\n", + "# qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0)" ] }, { @@ -281,7 +359,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -290,9 +368,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "jax.experimental.sparse.bcoo.BCOO" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "type(sparse_B[0])" ] From 9fbab82fa7bdacd5f6c4a29daf21812208c8047e Mon Sep 17 00:00:00 2001 From: conorheins Date: Wed, 12 Jun 2024 16:00:40 +0200 Subject: [PATCH 098/196] functional sparse array version of smoothing_ovf in inference.py (doesn't work with vmap!) --- pymdp/jax/inference.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/pymdp/jax/inference.py b/pymdp/jax/inference.py index 15c2f5e4..bd7ca3cc 100644 --- a/pymdp/jax/inference.py +++ b/pymdp/jax/inference.py @@ -7,6 +7,8 @@ from jax import tree_util as jtu, lax from multimethod import multimethod from jax.experimental.sparse._base import JAXSparse +from jax.experimental.sparse import sparsify +from jaxtyping import Array def update_posterior_states( A, @@ -59,7 +61,7 @@ def update_posterior_states( return qs_hist @multimethod -def joint_dist_factor(b: jnp.ndarray, filtered_qs, actions): +def joint_dist_factor(b: Array, filtered_qs, actions): qs_last = filtered_qs[-1] qs_filter = filtered_qs[:-1] @@ -115,7 +117,7 @@ def step_fn(qs_smooth_past, t): qs_joint = qs_backward_cond[t] * qs_smooth_past qs_smooth = qs_joint.sum(-1) - return qs_smooth, (qs_smooth, qs_joint) + return qs_smooth.todense(), (qs_smooth.todense(), qs_joint) # seq_qs will contain a sequence of smoothed marginals and joints _, seq_qs = lax.scan( @@ -127,6 +129,7 @@ def step_fn(qs_smooth_past, t): ) # we add the last filtered belief to smoothed beliefs + qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0) return qs_smooth_all, seq_qs[1] @@ -135,13 +138,13 @@ def smoothing_ovf(filtered_post, B, past_actions): assert len(filtered_post) == len(B) nf = len(B) # number of factors joint = lambda b, qs, f: joint_dist_factor(b, qs, past_actions[..., f]) - marginals_and_joints = jtu.tree_map( - joint, B, filtered_post, list(range(nf))) + # marginals_and_joints = jtu.tree_map( + # joint, B, filtered_post, list(range(nf))) - # marginals_and_joints = [] - # for b, qs, f in zip(B, filtered_post, list(range(nf))): - # marginals_and_joints_f = joint(b, qs, f) - # marginals_and_joints.append(marginals_and_joints_f) + marginals_and_joints = [] + for b, qs, f in zip(B, filtered_post, list(range(nf))): + marginals_and_joints_f = joint(b, qs, f) + marginals_and_joints.append(marginals_and_joints_f) return marginals_and_joints From 88a7aab21e8d10c5e65b41b7280454d805b875db Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Wed, 12 Jun 2024 09:39:49 -0500 Subject: [PATCH 099/196] rename B_dependencies back to B_factor_list to not break tests --- pymdp/utils.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pymdp/utils.py b/pymdp/utils.py index fc81e0b5..7b0fab9c 100644 --- a/pymdp/utils.py +++ b/pymdp/utils.py @@ -128,7 +128,7 @@ def random_A_matrix(num_obs, num_states, A_factor_list=None): A[modality] = norm_dist(modality_dist) return A -def random_B_matrix(num_states, num_controls, B_dependencies=None, B_act_dependencies=None): +def random_B_matrix(num_states, num_controls, B_factor_list=None, B_factor_control_list=None): """ Generate random B object array @@ -138,9 +138,9 @@ def random_B_matrix(num_states, num_controls, B_dependencies=None, B_act_depende ``list`` of the dimensionalities of each hidden state factor num_controls: ``list`` of ``int``, default ``None`` ``list`` of the dimensionalities of each control state factor. If ``None``, then is automatically computed as the dimensionality of each hidden state factor that is controllable - B_dependencies: ``list`` of ``list`` of ``int``, default ``None`` + B_factor_list: ``list`` of ``list`` of ``int``, default ``None`` ``list`` of ``list`` of states that each state depends on. If ``None``, then the dependencies are set so that each state only depends on itself - B_act_dependencies: ``list`` of ``list`` of ``int``, default ``None`` + B_factor_control_list: ``list`` of ``list`` of ``int``, default ``None`` ``list`` of ``list`` of actions that each state depends on. If ``None``, then the dependencies are set so that each state only depends on action of the same index Returns @@ -154,20 +154,20 @@ def random_B_matrix(num_states, num_controls, B_dependencies=None, B_act_depende num_controls = [num_controls] num_factors = len(num_states) - if B_dependencies is None: - B_dependencies = [[f] for f in range(num_factors)] + if B_factor_list is None: + B_factor_list = [[f] for f in range(num_factors)] - if B_act_dependencies is None: + if B_factor_control_list is None: assert len(num_controls) == len(num_states) - B_act_dependencies = [[f] for f in range(num_factors)] + B_factor_control_list = [[f] for f in range(num_factors)] else: - unique_controls = list(set(sum(B_act_dependencies, []))) + unique_controls = list(set(sum(B_factor_control_list, []))) assert unique_controls == list(range(len(num_controls))) B = obj_array(num_factors) for factor in range(num_factors): - lagging_shape = [ns for i, ns in enumerate(num_states) if i in B_dependencies[factor]] - control_shape = [na for i, na in enumerate(num_controls) if i in B_act_dependencies[factor]] + lagging_shape = [ns for i, ns in enumerate(num_states) if i in B_factor_list[factor]] + control_shape = [na for i, na in enumerate(num_controls) if i in B_factor_control_list[factor]] factor_shape = [num_states[factor]] + lagging_shape + control_shape factor_dist = np.random.rand(*factor_shape) B[factor] = norm_dist(factor_dist) From 384548b0ca50ead635029956efed8fab93113ec7 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Wed, 12 Jun 2024 17:56:23 +0200 Subject: [PATCH 100/196] fixed num_states / num_obs constructors --- pymdp/jax/agent.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index ded8c9a9..7531121e 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -145,8 +145,9 @@ def __init__( self.batch_size = A[0].shape[0] if not apply_batch else 1 # extract shapes from A and B - self.num_states = jtu.tree_map(lambda x: x.shape[1], B) - self.num_obs = jtu.tree_map(lambda x: x.shape[1], A) + batch_dim = lambda x: x.shape[0] if apply_batch else x.shape[1] + self.num_states = jtu.tree_map(batch_dim, B) + self.num_obs = jtu.tree_map(batch_dim, A) self.num_controls = [B[f].shape[-1] for f in range(self.num_factors)] # static parameters From 1ec7123f7845c0a682b6b4dfb6ae9c49871d6faa Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Wed, 12 Jun 2024 12:41:56 -0500 Subject: [PATCH 101/196] update multi action encoding and decoing with test --- pymdp/jax/agent.py | 61 +++++++++++++++++++++++------------------- test/test_agent_jax.py | 43 +++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 27 deletions(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 68d6c628..fc546ea9 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -61,6 +61,8 @@ class Agent(Module): A_dependencies: Optional[List] = field(static=True) B_dependencies: Optional[List] = field(static=True) B_action_dependencies: Optional[List] = field(static=True) + # mapping from multi action dependencies to flat action dependencies for each B + action_maps: List[dict] = field(static=True) batch_size: int = field(static=True) num_iter: int = field(static=True) num_obs: List[int] = field(static=True) @@ -77,6 +79,7 @@ class Agent(Module): inductive_depth: int = field(static=True) # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) policies: Array = field(static=True) + policies_multi: Array = field(static=True) # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy use_utility: bool = field(static=True) # flag for whether to use state information gain ("salience") when computing expected free energy @@ -162,17 +165,19 @@ def __init__( B = [jnp.array(b.data) if isinstance(b, Distribution) else b for b in B] # flatten B action dims for multiple action dependencies + self.action_maps = None self.num_controls_multi = num_controls if B_action_dependencies is not None: - B = self._flatten_B_action_dims(B, self.B_action_dependencies) - policies = control.construct_policies( + self.policies_multi = control.construct_policies( self.num_controls_multi, self.num_controls_multi, policy_len, control_fac_idx ) - policies = self._construct_flattend_policies(policies, self.B_action_dependencies) + B, self.action_maps = self._flatten_B_action_dims(B, self.B_action_dependencies) + policies = self._construct_flattend_policies(self.policies_multi, self.action_maps) + self.sampling_mode = "full" # extract shapes from A and B - self.num_states = jtu.tree_map(lambda x: x.shape[1], B) - self.num_obs = jtu.tree_map(lambda x: x.shape[1], A) + self.num_states = jtu.tree_map(lambda x: x.shape[0], B) + self.num_obs = jtu.tree_map(lambda x: x.shape[0], A) self.num_controls = [B[f].shape[-1] for f in range(self.num_factors)] # static parameters @@ -455,36 +460,33 @@ def multiaction_probabilities(self, q_pi: Array): # assert jnp.isclose(jnp.sum(marginals), 1.) # this fails inside scan return marginals - - """TODO: maybe use tree map""" + def decode_multi_actions(self, action): """Decode flattened actions to multiple actions""" - if self.B_action_dependencies is None: + if self.action_maps is None: return action action_multi = jnp.zeros((self.batch_size, len(self.num_controls_multi))).astype(action.dtype) - for f, action_dependency in enumerate(self.B_action_dependencies): - if action_dependency == []: + for f, action_map in enumerate(self.action_maps): + if action_map["multi_dependency"] == []: continue - num_controls = [self.num_controls_multi[d] for d in action_dependency] - action_multi_f = utils.index_to_combination(action[..., f], num_controls) - action_multi = action_multi.at[..., action_dependency].set(action_multi_f) + action_multi_f = utils.index_to_combination(action[..., f], action_map["multi_dims"]) + action_multi = action_multi.at[..., action_map["multi_dependency"]].set(action_multi_f) return action_multi - """TODO: maybe use tree map""" def encode_multi_actions(self, action_multi): """Encode multiple actions to flattened actions""" - if self.B_action_dependencies is None: + if self.action_maps is None: return action_multi action = jnp.zeros((self.batch_size, len(self.num_controls))).astype(action_multi.dtype) - for f, action_dependency in enumerate(self.B_action_dependencies): - num_controls = [self.num_controls_multi[d] for d in action_dependency] - if num_controls == []: + for f, action_map in enumerate(self.action_maps): + if action_map["multi_dependency"] == []: + action = action.at[..., f].set(jnp.zeros_like(action_multi[..., 0])) continue - action_f = utils.get_combination_index(action_multi[..., action_dependency], num_controls) + action_f = utils.get_combination_index(action_multi[..., action_map["multi_dependency"]], action_map["multi_dims"]) action = action.at[..., f].set(action_f) return action @@ -512,27 +514,32 @@ def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_depen def _flatten_B_action_dims(self, B, B_action_dependencies): assert hasattr(B[0], "shape"), "Elements of B must be tensors and have attribute shape" + action_maps = [] # mapping from multi action dependencies to flat action dependencies for each B B_flat = [] - for B_f, action_dependency in zip(B, B_action_dependencies): + for i, (B_f, action_dependency) in enumerate(zip(B, B_action_dependencies)): if action_dependency == []: B_flat.append(jnp.expand_dims(B_f, axis=-1)) + action_maps.append({"multi_dependency": [], "multi_dims": [], "flat_dependency": [i], "flat_dims": [1]}) continue dims = [self.num_controls_multi[d] for d in action_dependency] target_shape = list(B_f.shape)[:-len(action_dependency)] + [pymath.prod(dims)] B_flat.append(B_f.reshape(target_shape)) - return B_flat + action_maps.append({"multi_dependency": action_dependency, "multi_dims": dims, "flat_dependency": [i], "flat_dims": [pymath.prod(dims)]}) + return B_flat, action_maps - """TODO: make better maybe invertible mapping between action spaces""" - def _construct_flattend_policies(self, policies, B_action_dependencies): + def _construct_flattend_policies(self, policies, action_maps): policies_flat = [] - for action_dependency in B_action_dependencies: - if action_dependency == []: + for action_map in action_maps: + if action_map["multi_dependency"] == []: + policies_flat.append(jnp.zeros_like(policies[..., 0])) continue - dims = [self.num_controls_multi[d] for d in action_dependency] policies_flat.append( - utils.get_combination_index(policies[..., action_dependency], dims) + utils.get_combination_index( + policies[..., action_map["multi_dependency"]], + action_map["multi_dims"], + ) ) policies_flat = jnp.stack(policies_flat, axis=-1) return policies_flat diff --git a/test/test_agent_jax.py b/test/test_agent_jax.py index ad3d85d8..97a06682 100644 --- a/test/test_agent_jax.py +++ b/test/test_agent_jax.py @@ -13,6 +13,8 @@ from jax import vmap, nn, random import jax.tree_util as jtu +from pymdp import utils +from pymdp.jax.agent import Agent from pymdp.jax.maths import compute_log_likelihood_single_modality from pymdp.jax.utils import norm_dist from equinox import Module @@ -58,6 +60,47 @@ def infer_states(self, obs): validation_qs = nn.softmax(compute_log_likelihood_single_modality(all_obs[id_to_check], all_A[id_to_check])) self.assertTrue(jnp.allclose(validation_qs, all_qs[id_to_check])) + def test_agent_complex_action(self): + """ + Test that an instance of the `Agent` class can be initialized and run with complex action dependency + """ + np.random.seed(1) + num_obs = [5, 4, 4] + num_states = [2, 3, 1] + num_controls = [2, 3, 2] + + A_factor_list = [[0], [0, 1], [0, 1, 2]] + B_factor_list = [[0], [0, 1], [1, 2]] + B_factor_control_list = [[], [0, 1], [0, 2]] + A = utils.random_A_matrix(num_obs, num_states, A_factor_list=A_factor_list) + B = utils.random_B_matrix(num_states, num_controls, B_factor_list=B_factor_list, B_factor_control_list=B_factor_control_list) + + agent = Agent( + A, B, + A_dependencies=A_factor_list, + B_dependencies=B_factor_list, + B_action_dependencies=B_factor_control_list, + num_controls=num_controls, + sampling_mode="full", + ) + + # dummy history + action = agent.policies[np.random.randint(0, len(agent.policies))] + observation = [np.random.randint(0, d, size=(1, 1)) for d in agent.num_obs] + qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), agent.D) + + prior, _ = agent.infer_empirical_prior(action, qs_hist) + qs = agent.infer_states(observation, None, prior, None) + + q_pi, G = agent.infer_policies(qs) + action = agent.sample_action(q_pi) + action_multi = agent.decode_multi_actions(action) + action_reconstruct = agent.encode_multi_actions(action_multi) + + self.assertTrue(action_multi.shape[-1] == len(agent.num_controls)) + self.assertTrue(jnp.allclose(action, action_reconstruct)) + + if __name__ == "__main__": unittest.main() From 25ec15145210ce81cf3275768a6f0e16e89f93ae Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Thu, 13 Jun 2024 09:40:14 +0200 Subject: [PATCH 102/196] Use new rollout signature --- examples/generalized_tmaze_demo.ipynb | 132 +++++++------------------- 1 file changed, 32 insertions(+), 100 deletions(-) diff --git a/examples/generalized_tmaze_demo.ipynb b/examples/generalized_tmaze_demo.ipynb index f08433e1..1d5e7fb5 100644 --- a/examples/generalized_tmaze_demo.ipynb +++ b/examples/generalized_tmaze_demo.ipynb @@ -16,9 +16,8 @@ "%load_ext autoreload\n", "%autoreload 2\n", "\n", - "import pymdp\n", "from pymdp.jax.envs.generalized_tmaze import (\n", - " GeneralizedTMazeEnv, parse_maze, render, index_to_position\n", + " GeneralizedTMazeEnv, parse_maze, render \n", ")\n", "from pymdp.jax.envs.rollout import rollout\n", "from pymdp.jax.agent import Agent\n", @@ -26,9 +25,7 @@ "import numpy as np \n", "import jax.random as jr \n", "import jax.numpy as jnp\n", - "import jax.tree_util as jtu \n", - "\n", - "import matplotlib.pyplot as plt" + "import jax.tree_util as jtu " ] }, { @@ -59,16 +56,14 @@ "metadata": {}, "outputs": [ { - "ename": "ValueError", - "evalue": "not enough values to unpack (expected 2, got 0)", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[2], line 38\u001b[0m\n\u001b[1;32m 35\u001b[0m M[\u001b[38;5;241m2\u001b[39m,\u001b[38;5;241m2\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[1;32m 37\u001b[0m M \u001b[38;5;241m=\u001b[39m get_maze_matrix(small\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[0;32m---> 38\u001b[0m env_info \u001b[38;5;241m=\u001b[39m \u001b[43mparse_maze\u001b[49m\u001b[43m(\u001b[49m\u001b[43mM\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 39\u001b[0m tmaze_env \u001b[38;5;241m=\u001b[39m GeneralizedTMazeEnv(env_info)\n\u001b[1;32m 40\u001b[0m _ \u001b[38;5;241m=\u001b[39m render(env_info, tmaze_env)\n", - "File \u001b[0;32m~/Projects/pymdp-hackaton/pymdp/pymdp/jax/envs/generalized_tmaze.py:70\u001b[0m, in \u001b[0;36mparse_maze\u001b[0;34m(maze)\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;124;03mParameters\u001b[39;00m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;124;03m----------\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[38;5;124;03m purposes\u001b[39;00m\n\u001b[1;32m 67\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 69\u001b[0m maze \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39marray(maze)\n\u001b[0;32m---> 70\u001b[0m rows, cols \u001b[38;5;241m=\u001b[39m maze\u001b[38;5;241m.\u001b[39mshape\n\u001b[1;32m 72\u001b[0m num_cues \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mint\u001b[39m((np\u001b[38;5;241m.\u001b[39mmax(maze) \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m2\u001b[39m) \u001b[38;5;241m/\u001b[39m\u001b[38;5;241m/\u001b[39m \u001b[38;5;241m3\u001b[39m)\n\u001b[1;32m 74\u001b[0m cue_positions \u001b[38;5;241m=\u001b[39m []\n", - "\u001b[0;31mValueError\u001b[0m: not enough values to unpack (expected 2, got 0)" - ] + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB220lEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zYU79nJMxc89znvMcwzRNExERERHxCkt1FyAiIiJyKVH4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4Eq/55z//iWEYHtPi4uIYNWqUV+uYOXMmhmGwb98+r+5Xzo1+PyJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7f8dxcXHn8JsRkYuVWr6qyfz582nWrBlXXHHFOa+zdetWrrrqKho2bMjjjz9OYGAgn3zyCYMHD2bu3LkMGTLEY/k//elPhIeH8+STT7Jv3z5eeeUVxo0bx5w5c9zLvP/++4wcOZJ+/frx3HPPkZuby7Rp07j66qv59ddfPf7IFxcX069fP66++mr+85//EBAQAMCnn35Kbm4uDz74IJGRkaxZs4ZXX32VgwcP8umnn1bovJx+uQ/g73//OykpKQQFBVXoPBw5coRrrrmG4uJi93JvvfWWV1tL7rjjDm644Qb27NlD06ZNAdclpFtuuQUfH59Syy9evJi9e/cyevRooqOj2bp1K2+99RZbt27l559/xjCMMi+LFhUVMWHCBHx9fd3Tli5dyo033kjXrl158sknsVgszJgxg2uvvZYffviByy+//Kz15+bmcvz48VLTw8LCsNlO/vnYvXs3t9xyC2PGjGHkyJG8++67jBo1iq5du9K2bVu6detGkyZN+OSTTxg5cqTHtubMmVNuGD3Vb7/9xvDhw/njH//IfffdR8uWLTl69Cg9evQgNzeX8ePHExkZyXvvvcf//d//8dlnn5X6f2LKlClYLBYeffRRMjIyeP755xkxYgS//PKLx3JpaWncfPPN3H777dx6661MmzaN22+/nQ8//JBHHnmEBx54gDvuuIMXXniBW265haSkJIKDgwE4evQoV155JYZhMG7cOKKioliwYAFjxowhMzOz1KXDs9X0//7f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9datW5c+ffowffp0kpOTSy1f1hASZ9OvXz9CQkJ49tlnKSoqOq9tlnxrP7Ve0zT573//W+F6AGbMmMH06dN5/fXXywylFTkPN910Ez///DNr1qzxmP/hhx+eV22na9OmDX379nW/unbtWu6y9957L08++SQvvvhiucuUdS6BMkc2f+qpp1i0aBEfffRRmZfjunbtStOmTfnPf/5T5uXt83m/VIbWrVvTvn175syZw5w5c6hfvz69evU67+3ddNNNrFmzhp9++sk9LScnh7feeou4uLhSfdOqmtVqZejQocydO7fMlu3zPe+BgYHnfQlfRC4+avmqJs2bN2f27NkMHz6cli1buke4N02TxMREZs+ejcVi8ehj9frrr3P11VfTvn177rvvPpo0acLRo0f56aefOHjwIBs3bqxQDSEhIUybNo277rqLLl26cPvttxMVFcWBAwf45ptvuOqqq3jttdfOuI1WrVrRtGlTHn30UQ4dOkRISAhz5849r/4qx48f56GHHqJNmzbY7XY++OADj/lDhgwhMDDwnM/DX//6V95//3369+/Pww8/7B5qIjY21uuPboqNjeWf//znGZcJCQmhV69ePP/88xQVFdGwYUO+++47EhMTPZbbvHkzzzzzDL169SIlJaXUebrzzjuxWCz873//48Ybb6Rt27aMHj2ahg0bcujQIZYtW0ZISAhff/31WevesGFDqe2Dq2Wte/fuZz/wMgwbNownnngCPz8/xowZc0EDCT/++ON89NFH3HjjjYwfP56IiAjee+89EhMTmTt3brUMUjxlyhSWLVvGFVdcwX333UebNm1ITU1lw4YNLFmyhNTU1Apvs2vXrsyZM4eJEydy2WWXERQUxMCBA6ugehHxBoWvajRo0CA2b97Miy++yHfffce7776LYRjExsYyYMAAHnjgATp27Ohevk2bNqxbt46nnnqKmTNncuLECerWrUvnzp09LlNVxB133EGDBg2YMmUKL7zwAgUFBTRs2JCePXsyevTos67v4+PD119/zfjx45k8eTJ+fn4MGTKEcePGedR+LrKzs8nPz2fbtm3uuxtPlZiYSGBg4Dmfh/r167Ns2TL+9Kc/MWXKFCIjI3nggQdo0KCBu8P3xWb27Nn86U9/4vXXX8c0TW644QYWLFhAgwYN3MucOHEC0zRZsWIFK1asKLWNkkuhffr04aeffuKZZ57htddeIzs7m+joaK644gr++Mc/nlM9H330kftOzVONHDnygsLX3//+d3Jzc8/pLsczqVevHj/++COPPfYYr776Kvn5+XTo0IGvv/6aAQMGXNC2L6SmNWvW8PTTT/P555/zxhtvEBkZSdu2bXnuuefOa5sPPfQQCQkJzJgxg5dffpnY2FiFL5EazDDVq1NERETEa9TnS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvMjr43w5nU4OHz5McHCwHpkhIiLnzTRNsrKyaNCgQbUMqCtyvrwevg4fPkxMTIy3dysiIrVUUlKSx9NARC52Xg9fwcHBgOt/lpCQEG/vXkREaonMzExiYmLcnysiNYXXw1fJpcaQkBCFLxERuWDqwiI1jS6Si4iIiHiRwpeIiIiIFyl8iYiIiHiR1/t8iYiIeIvD4aCoqKi6y5BazsfHB6vVes7LK3yJiEitY5omR44cIT09vbpLkUtEWFgY0dHR53QDiMKXiIjUOiXBq27dugQEBOiOSKkypmmSm5tLSkoKAPXr1z/rOgpfIiJSqzgcDnfwioyMrO5y5BLg7+8PQEpKCnXr1j3rJUh1uBcRkVqlpI9XQEBANVcil5KS99u59DFU+BIRkVpJlxrFmyryflP4EhEREfEihS8RERERL1L4EhEROU1hYeEFzb9QR44c4U9/+hNNmjTBbrcTExPDwIED+f7776t0v+IdCl8iIiKnmDNnDu3btycpKanM+UlJSbRv3545c+ZUyf737dtH165dWbp0KS+88AKbN29m4cKFXHPNNYwdO7ZK9inepfAlIiLyu8LCQp544gl27txJnz59SgWwpKQk+vTpw86dO3niiSeqpAXsoYcewjAM1qxZw9ChQ2nRogVt27Zl4sSJ/Pzzz+zbtw/DMEhISHCvk56ejmEYLF++3D1ty5Yt3HjjjQQFBVGvXj3uuusujh8/Xun1SsUpfImIiPzO19eXJUuW0KRJE/bu3esRwEqC1969e2nSpAlLlizB19e3UvefmprKwoULGTt2LIGBgaXmh4WFndN20tPTufbaa+ncuTPr1q1j4cKFHD16lNtuu61S65Xzo/AlIiJyipiYGJYvX+4RwH788UeP4LV8+XJiYmIqfd+7d+/GNE1atWp1Qdt57bXX6Ny5M88++yytWrWi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cCCxsbG8/fbbNGjQAKfTSbt27dwd4P39S980VFnKqqcynOn8ZGdnU79+fY/LnyXCwsKqpJ4KtXylpKRw991307JlS6677jrWrl3LokWLuP7666ukOJHaJtQeStd6XUnNT3V3lC8uKmbqA1PL7Fx/eif8qQ9MpbCwkOScZFpHtqZRUKPqPByR2sPH39XRPje1YuvlprrW86m6QAKwdOlSNm/eXOqS4KlCQkIYNmwYb7/9NnPmzGHu3LmkprqOx8fHB4ej/P6mJU6cOMFvv/3G3//+d6677jpat25NWprn2IMdOnQgISHBve3T+fr6ltpX69atS/Wz2rZtG+np6We8aa8ylXd+unTpwpEjR7DZbDRr1szjVadOnXKP6UJUqOXrnXfeqbQdi1yq+sT0YXf6bvZn7nc929HHxs0P3sz8afMZ/+b4Un27SgLY1AemMuCBARzJP0KUfxT94vqVewlCRCrIMKBxdzi03nUJ8VxasooLABNie1RqZ/uCggKOHDmCw+Hg6NGjLFy4kMmTJ3PzzTdz9913l7nOSy+9RP369encuTMWi4VPP/2U6Ohod8tNXFwc33//PVdddRV2u53w8NI38QCEh4cTGRnJW2+9Rf369Tlw4ACPP/64xzLDhw/n2WefZfDgwUyePJn69evz66+/0qBBA7p3705cXByJiYkkJCTQqFEjgoOD6du3L+3bt2fEiBG88sorFBcX89BDD9G7d2+6detW4XO0bds2CgsLSU1NJSsri4SEBIByx+I60/np27cv3bt3Z/DgwTz//PO0aNGCw4cP88033zBkyBC6detW5jFdyDAferajiJcF+QYxqNkgIvwi2JuxF4fTQdd+Xfl/n/6/Mu9qBFcAm/TJJOr2qIuP1YeBTQdSN6CulysXqeWi20NEvKsD/dme4WiakJboWr5eu0otY+HChdSvX5+4uDj69+/PsmXLmDp1KvPmzSv3DsDg4GCef/55unXrxmWXXca+ffv49ttvsVhcH/MvvvgiixcvJiYmhs6dO5e7b4vFwscff8z69etp164dEyZM4IUXXvBYxtfXl++++466dety00030b59e6ZMmeKubejQofTv359rrrmGqKgoPvroIwzDYN68eYSHh9OrVy/69u1LkyZNmDNnznmdo5tuuonOnTvz9ddfs3z5cjp37nzG4zrT+TEMg2+//ZZevXox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Jit3HmPh1iOk5xZRN8ROmL8Pxu+P2ihhmibpuUUczconIsCX/u3r07NZHSwWo5wti1TM/sz95BRV/PFcgT6BxIbEVkFFckkxTTi4FrbMdQWqwCjX6/QxwEzT1dqVlQw+/tCsL7T+P7Cd+YtrVbsYPk9EzsclGb5KJKXmsnRHClsPZ5CZX4wB+FgtmJgUF5uYQIi/jXYNQ7m2VV0ahQdUa70iIlUi+xjs+g6S1rjuYATXWGCGAY4iwHQNTxHVGlrcAHVbV2u5JS6mzxORirikw1eJIxn5JB7P4UhGHqk5hWBAZKCdeiF+NIkKpF6IhpQQkUtAbioc+83VwpV91DUavl8YhDSA8DjXy7h4Wv4vxs8TkXNx5gv8l4joUD+iQxWwROQSFxABsd2ruwqRWu+S63AvIiIiUp0UvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yFbdBUjtYJom6blFHMsuIK/QgcUwCAvwISrYjp+PtbrLk0uFowiyj0LOcTAdYLVDUD0IiASLvmuKyMVB4UsuSF6hg00H01mTmEpSWi45BQ4cphMw8LNZCPHzoUNMKF0ahxNfJxDDMKq7ZKmNMg5C0lpI+gXy0qAo1zXdsIBvEARHQ9xV0LAr+IVWb60icskzTNM0vbnDzMxMQkNDycjIICQk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auXKTQVHPkQ0hbZDXH29dLOHiFQTXXaUC5Jf5GDLoQzWJKZyIDWXnIJiihxODMPA38dKsJ+NTo3D6dI4jNjIwLNvUOR8ZB6Gg+vgwM+uuxiLclwtYRab65JkSEOI7QENu5R6NJHUXPo8kZpK4UsqhWmaZBUUk5JZQH6RA8OAsABfooLs+Np0dVu8xFEMOccg97irX5jN7hpE1T9cLV21kD5PpKbS9R+pFIZhEOLnoxHrpXpZbRBS3/USEblIqUlCRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts3t6haZoAZGZmenvXIiJSi5R8jpR8rojUFF4PX1lZWQDExMR4e9ciIlILZWVlERoaWt1liJwzw/TyVwan08nhw4cJDg7GMAxv7vqcZGZmEhMTQ1JSEiEhIdVdTo2kc3jhdA4vjM7fhasJ59A0TbKysmjQoAEWi3rRSM3h9ZYvi8VCo0aNvL3bCgsJCblo/+DUFDqHF07n8MLo/F24i/0cqsVLaiJ9VRARERHxIoUvERERES9S+DqN3W7nySefxG63V3cpNZbO4YXTObwwOn8XTudQpOp4vcO9iIiIyKVMLV8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl+neP3114mLi8PPz48rrriCNWvWVHdJNcrKlSsZOHAgDRo0wDAMvvzyy+ouqUaZPHkyl112GcHBwdStW5fBgwfz22+/VXdZNcq0adPo0KGDe2DQ7t27s2DBguouq8aaMmUKhmHwyCOPVHcpIrWKwtfv5syZw8SJE3nyySfZsGEDHTt2pF+/fqSkpFR3aTVGTk4OHTt25PXXX6/uUmqkFStWMHbsWH7++WcWL15MUVERN9xwAzk5OdVdWo3RqFEjpkyZwvr161m3bh3XXnstgwYNYuvWrdVdWo2zdu1apk+fTocOHaq7FJFaR0NN/O6KK67gsssu47XXXgNcz6CMiYnhT3/6E48//ng1V1fzGIbBF198weDBg6u7lBrr2LFj1K1blxUrVtCrV6/qLqfGioiI4IUXXmDMmDHVXUqNkZ2dTZcuXXjjjTf417/+RadOnXjllVequyyRWkMtX0BhYSHr16+nb9++7mkWi4W+ffvy008/VWNlcinLyMgAXOFBKs7hcPDxxx+Tk5ND9+7dq7ucGmXs2LEMGDDA42+iiFQerz9Y+2J0/PhxHA4H9erV85her149duzYUU1VyaXM6XTyyCOPcNVVV9GuXbvqLqdG2bx5M927dyc/P5+goCC++OIL2rRpU91l1Rgff/wxGzZsYO3atdVdikitpfAlchEaO3YsW7ZsYdWqVdVdSo3TsmVLEhISyMjI4LPPPmPkyJGsWLFCAewcJCUl8fDDD7N48WL8/PyquxyRWkvhC6hTpw5Wq5WjR496TD969CjR0dHVVJVcqsaNG8f8+fNZuXIljRo1qu5yahxfX1+aNWsGQNeuXVm7di3//e9/mT59ejVXdvFbv349KSkpdOnSxT3N4XCwcuVKXnvtNQoKCrBardVYoUjtoD5fuP5Yd+3ale+//949zel08v3336uviHiNaZqMGzeOL774gqVLlxIfH1/dJdUKTqeTgoKC6i6jRrjuuuvYvHkzCQkJ7le3bt0YMWIECQkJCl4ilUQtX7+bOHEiI0eOpFu3blx++eW88sor5OTkMHr06OourcbIzs5m9+7d7p8TExNJSEggIiKCxo0bV2NlNcPYsWOZPXs28+bNIzg4mCNHjgAQGhqKv79/NVdXM0yaNIkbb7yRxo0bk5WVxezZs1m+fDmLFi2q7tJqhODg4FJ9DAMDA4mMjFTfQ5FKpPD1u2HDhnHs2DGeeOIJjhw5QqdOnVi4cGGpTvhSvnXr1nHNNde4f544cSIAI0eOZObMmdVUVc0xbdo0APr06eMxfcaMGYwaNcr7BdVAKSkp3H333SQnJxMaGkqHDh1YtGgR119/fXWXJiLipnG+RERERLxIfb5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSL/j+ISD+Fp1HZzAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -126,7 +121,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -153,7 +148,8 @@ " policy_len=7,\n", " A_dependencies=A_dependencies, \n", " B_dependencies=B_dependencies\n", - ")" + ")\n", + "\n" ] }, { @@ -167,27 +163,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "key = jr.PRNGKey(0)\n", - "_, info, _ = rollout(agent, tmaze_env, num_timesteps=15, batch_size=1, rng_key=key)" + "_, info, _ = rollout(agent, tmaze_env, num_timesteps=15, rng_key=key)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Time t=0\n", - "[Array([[11]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", - "[0.0454467 0.0454467 0.0454467 0.0454467 0.0454467]\n", - "[[2 0 0 0]]\n" + "Time t=0\n" ] }, { @@ -204,10 +197,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=1\n", - "[Array([[6]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[2]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", - "[0.0714183 0.0714183 0.0714183 0.0714183 0.0714183]\n", - "[[0 0 0 0]]\n" + "Time t=1\n" ] }, { @@ -224,10 +214,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=2\n", - "[Array([[11]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", - "[1.5241351e-05 1.5241351e-05 3.3507927e-04 3.3507927e-04 9.9885726e-01]\n", - "[[1 0 0 0]]\n" + "Time t=2\n" ] }, { @@ -244,10 +231,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=3\n", - "[Array([[16]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", - "[1.5251807e-05 1.5251807e-05 1.5251807e-05 1.5251807e-05 9.9954247e-01]\n", - "[[1 0 0 0]]\n" + "Time t=3\n" ] }, { @@ -264,10 +248,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=4\n", - "[Array([[21]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32)]\n", - "[1.5252098e-05 1.5252098e-05 1.5252098e-05 1.5252098e-05 9.9955767e-01]\n", - "[[1 0 0 0]]\n" + "Time t=4\n" ] }, { @@ -284,10 +265,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=5\n", - "[Array([[22]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", - "[0.09998703 0.09998703 0.09998703 0.09998703 0.09998703]\n", - "[[3 0 0 0]]\n" + "Time t=5\n" ] }, { @@ -304,10 +282,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=6\n", - "[Array([[23]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[2]], dtype=int32)]\n", - "[0.16663785 0.16663785 0.16663785 0.16663785 0.16663785]\n", - "[[3 0 0 0]]\n" + "Time t=6\n" ] }, { @@ -324,10 +299,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=7\n", - "[Array([[18]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", - "[5.0851504e-06 5.0851504e-06 3.3326045e-01 3.3326045e-01 3.3326045e-01]\n", - "[[0 0 0 0]]\n" + "Time t=7\n" ] }, { @@ -344,10 +316,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=8\n", - "[Array([[19]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", - "[7.6275901e-06 7.6275901e-06 7.6275901e-06 4.9988177e-01 4.9988177e-01]\n", - "[[3 0 0 0]]\n" + "Time t=8\n" ] }, { @@ -364,10 +333,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=9\n", - "[Array([[14]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", - "[1.5254424e-05 1.5254424e-05 1.5254424e-05 1.5254424e-05 9.9971014e-01]\n", - "[[0 0 0 0]]\n" + "Time t=9\n" ] }, { @@ -384,10 +350,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=10\n", - "[Array([[9]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", - "[0.01075269 0.01075269 0.01075269 0.01075269 0.01075269]\n", - "[[0 0 0 0]]\n" + "Time t=10\n" ] }, { @@ -404,10 +367,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=11\n", - "[Array([[8]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32)]\n", - "[0.03703704 0.03703704 0.03703704 0.03703704 0.03703704]\n", - "[[2 0 0 0]]\n" + "Time t=11\n" ] }, { @@ -424,10 +384,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=12\n", - "[Array([[9]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", - "[0.00925926 0.00925926 0.00925926 0.00925926 0.00925926]\n", - "[[3 0 0 0]]\n" + "Time t=12\n" ] }, { @@ -444,10 +401,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=13\n", - "[Array([[8]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[1]], dtype=int32), Array([[0]], dtype=int32)]\n", - "[0.03703704 0.03703704 0.03703704 0.03703704 0.03703704]\n", - "[[2 0 0 0]]\n" + "Time t=13\n" ] }, { @@ -464,10 +418,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time t=14\n", - "[Array([[9]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n", - "[0.00925926 0.00925926 0.00925926 0.00925926 0.00925926]\n", - "[[3 0 0 0]]\n" + "Time t=14\n" ] }, { @@ -485,25 +436,6 @@ "ims = []\n", "for t in range(15): \n", " print(f'Time t={t}')\n", - " obs = jtu.tree_map(lambda x: x[:, t], info['observation'])\n", - " print(obs)\n", - " act = info['action'][:, t, 0]\n", - "\n", - " qpi = info['qpi'][:, t]\n", - " top5 = qpi[0].argsort()[-5:]\n", - " print(qpi[0][top5])\n", - " print(info['action'][:, t])\n", - "\n", - "\n", - " # plt.figure(figsize=(3,3))\n", - " # plt.bar(np.arange(qpi[0].shape[0]), qpi[0])\n", - " # plt.show()\n", - "\n", - " pos_idx = (obs[0][0][0])\n", - "\n", - " p = index_to_position(pos_idx, env_info['maze'].shape)\n", - "\n", - " #env_state = jtu.tree_map(lambda x: print(x.shape), info['env'])\n", " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", " ims.append(render(env_info, env_state))\n", "ims = [np.array(i) for i in ims]" @@ -511,7 +443,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ From 449851e3ab75475a0dae067447ec2673d7c0f835 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Thu, 13 Jun 2024 12:26:21 +0200 Subject: [PATCH 103/196] don't overwrite C, D, E tensors if apply batch is True --- pymdp/jax/agent.py | 80 ++++++++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 34 deletions(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 02b5c54e..88b6e1dc 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -141,7 +141,7 @@ def __init__( ): if B_action_dependencies is not None: assert num_controls is not None, "Please specify num_controls for complex action dependencies" - + # extract high level variables self.num_modalities = len(A) self.num_factors = len(B) @@ -150,12 +150,10 @@ def __init__( # extract dependencies for A and B matrices ( - self.A_dependencies, - self.B_dependencies, + self.A_dependencies, + self.B_dependencies, self.B_action_dependencies, - ) = self._construct_dependencies( - A_dependencies, B_dependencies, B_action_dependencies, A, B - ) + ) = self._construct_dependencies(A_dependencies, B_dependencies, B_action_dependencies, A, B) # extract A and B tensors A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] @@ -172,6 +170,8 @@ def __init__( B, self.action_maps = self._flatten_B_action_dims(B, self.B_action_dependencies) policies = self._construct_flattend_policies(self.policies_multi, self.action_maps) self.sampling_mode = "full" + else: + self.policies_multi = None # extract shapes from A and B batch_dim = lambda x: x.shape[0] if apply_batch else x.shape[1] @@ -227,20 +227,19 @@ def __init__( if pB is not None and apply_batch: pB = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pB) - if C is not None and apply_batch: - C = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), C) - else: - C = [jnp.ones((self.batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities)] + if C is None: + C = [jnp.ones(self.num_obs[m]) / self.num_obs[m] for m in range(self.num_modalities)] - if D is not None and apply_batch: - D = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), D) - else: - D = [jnp.ones((self.batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors)] + if D is None: + D = [jnp.ones(self.num_states[f]) / self.num_states[f] for f in range(self.num_factors)] + + if E is None: + E = jnp.ones(len(self.policies)) / len(self.policies) - if E is not None and apply_batch: + if apply_batch: + C = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), C) + D = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), D) E = jnp.broadcast_to(E, (self.batch_size,) + E.shape) - else: - E = jnp.ones((self.batch_size, len(self.policies))) / len(self.policies) if self.use_inductive and self.H is not None: I = control.generate_I_matrix(H, B, self.inductive_threshold, self.inductive_depth) @@ -335,7 +334,9 @@ def infer_policies(self, qs: List): Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. """ - latest_belief = jtu.tree_map(lambda x: x[-1], qs) # only get the posterior belief held at the current timepoint + latest_belief = jtu.tree_map( + lambda x: x[-1], qs + ) # only get the posterior belief held at the current timepoint q_pi, G = control.update_posterior_policies_inductive( self.policies, latest_belief, @@ -430,7 +431,7 @@ def sample_action(self, q_pi: Array, rng_key=None): action = control.sample_policy( q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key ) - + return action @vmap @@ -465,7 +466,7 @@ def decode_multi_actions(self, action): """Decode flattened actions to multiple actions""" if self.action_maps is None: return action - + action_multi = jnp.zeros((self.batch_size, len(self.num_controls_multi))).astype(action.dtype) for f, action_map in enumerate(self.action_maps): if action_map["multi_dependency"] == []: @@ -474,22 +475,24 @@ def decode_multi_actions(self, action): action_multi_f = utils.index_to_combination(action[..., f], action_map["multi_dims"]) action_multi = action_multi.at[..., action_map["multi_dependency"]].set(action_multi_f) return action_multi - + def encode_multi_actions(self, action_multi): """Encode multiple actions to flattened actions""" if self.action_maps is None: return action_multi - + action = jnp.zeros((self.batch_size, len(self.num_controls))).astype(action_multi.dtype) for f, action_map in enumerate(self.action_maps): if action_map["multi_dependency"] == []: action = action.at[..., f].set(jnp.zeros_like(action_multi[..., 0])) continue - - action_f = utils.get_combination_index(action_multi[..., action_map["multi_dependency"]], action_map["multi_dims"]) + + action_f = utils.get_combination_index( + action_multi[..., action_map["multi_dependency"]], action_map["multi_dims"] + ) action = action.at[..., f].set(action_f) return action - + def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_dependencies, A, B): if A_dependencies is not None: A_dependencies = A_dependencies @@ -504,7 +507,7 @@ def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_depen _, B_dependencies = get_dependencies(A, B) else: B_dependencies = [[f] for f in range(self.num_factors)] - + """TODO: check B action shape""" if B_action_dependencies is not None: B_action_dependencies = B_action_dependencies @@ -514,36 +517,45 @@ def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_depen def _flatten_B_action_dims(self, B, B_action_dependencies): assert hasattr(B[0], "shape"), "Elements of B must be tensors and have attribute shape" - action_maps = [] # mapping from multi action dependencies to flat action dependencies for each B + action_maps = [] # mapping from multi action dependencies to flat action dependencies for each B B_flat = [] for i, (B_f, action_dependency) in enumerate(zip(B, B_action_dependencies)): if action_dependency == []: B_flat.append(jnp.expand_dims(B_f, axis=-1)) - action_maps.append({"multi_dependency": [], "multi_dims": [], "flat_dependency": [i], "flat_dims": [1]}) + action_maps.append( + {"multi_dependency": [], "multi_dims": [], "flat_dependency": [i], "flat_dims": [1]} + ) continue dims = [self.num_controls_multi[d] for d in action_dependency] - target_shape = list(B_f.shape)[:-len(action_dependency)] + [pymath.prod(dims)] + target_shape = list(B_f.shape)[: -len(action_dependency)] + [pymath.prod(dims)] B_flat.append(B_f.reshape(target_shape)) - action_maps.append({"multi_dependency": action_dependency, "multi_dims": dims, "flat_dependency": [i], "flat_dims": [pymath.prod(dims)]}) + action_maps.append( + { + "multi_dependency": action_dependency, + "multi_dims": dims, + "flat_dependency": [i], + "flat_dims": [pymath.prod(dims)], + } + ) return B_flat, action_maps - + def _construct_flattend_policies(self, policies, action_maps): policies_flat = [] - for action_map in action_maps: + for action_map in action_maps: if action_map["multi_dependency"] == []: policies_flat.append(jnp.zeros_like(policies[..., 0])) continue policies_flat.append( utils.get_combination_index( - policies[..., action_map["multi_dependency"]], + policies[..., action_map["multi_dependency"]], action_map["multi_dims"], ) ) policies_flat = jnp.stack(policies_flat, axis=-1) return policies_flat - + def _get_default_params(self): method = self.inference_algo default_params = None From 66c93012018fecb8ac531797b8b51721ced2973f Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Thu, 13 Jun 2024 12:18:29 +0200 Subject: [PATCH 104/196] updated poetry.lock --- poetry.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/poetry.lock b/poetry.lock index abef6cc4..37249ceb 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. [[package]] name = "absl-py" @@ -1116,7 +1116,7 @@ files = [ [package.dependencies] ml-dtypes = ">=0.2.0" numpy = [ - {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, + {version = ">=1.23.2", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, ] opt-einsum = "*" @@ -1291,25 +1291,27 @@ testing = ["coverage", "ipykernel", "matplotlib", "nbformat (>=5.1)", "numpy", " [[package]] name = "jupyter-client" -version = "8.6.2" +version = "7.4.9" description = "Jupyter protocol implementation and client libraries" optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "jupyter_client-8.6.2-py3-none-any.whl", hash = "sha256:50cbc5c66fd1b8f65ecb66bc490ab73217993632809b6e505687de18e9dea39f"}, - {file = "jupyter_client-8.6.2.tar.gz", hash = "sha256:2bda14d55ee5ba58552a8c53ae43d215ad9868853489213f37da060ced54d8df"}, + {file = "jupyter_client-7.4.9-py3-none-any.whl", hash = "sha256:214668aaea208195f4c13d28eb272ba79f945fc0cf3f11c7092c20b2ca1980e7"}, + {file = "jupyter_client-7.4.9.tar.gz", hash = "sha256:52be28e04171f07aed8f20e1616a5a552ab9fee9cbbe6c1896ae170c3880d392"}, ] [package.dependencies] -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +entrypoints = "*" +jupyter-core = ">=4.9.2" +nest-asyncio = ">=1.5.4" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" -traitlets = ">=5.3" +traitlets = "*" [package.extras] -docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] +doc = ["ipykernel", "myst-parser", "sphinx (>=1.3.6)", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +test = ["codecov", "coverage", "ipykernel (>=6.12)", "ipython", "mypy", "pre-commit", "pytest", "pytest-asyncio (>=0.18)", "pytest-cov", "pytest-timeout"] [[package]] name = "jupyter-core" @@ -1953,8 +1955,7 @@ files = [ [package.dependencies] numpy = [ - {version = ">=1.21.2", markers = "python_version >= \"3.10\""}, - {version = ">=1.23.3", markers = "python_version >= \"3.11\""}, + {version = ">=1.23.3", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, ] @@ -2229,13 +2230,13 @@ test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] [[package]] name = "notebook" -version = "6.5.4" +version = "6.5.7" description = "A web-based notebook environment for interactive computing" optional = false python-versions = ">=3.7" files = [ - {file = "notebook-6.5.4-py3-none-any.whl", hash = "sha256:dd17e78aefe64c768737b32bf171c1c766666a21cc79a44d37a1700771cab56f"}, - {file = "notebook-6.5.4.tar.gz", hash = "sha256:517209568bd47261e2def27a140e97d49070602eea0d226a696f42a7f16c9a4e"}, + {file = "notebook-6.5.7-py3-none-any.whl", hash = "sha256:a6afa9a4ff4d149a0771ff8b8c881a7a73b3835f9add0606696d6e9d98ac1cd0"}, + {file = "notebook-6.5.7.tar.gz", hash = "sha256:04eb9011dfac634fbd4442adaf0a8c27cd26beef831fe1d19faf930c327768e4"}, ] [package.dependencies] @@ -2243,7 +2244,7 @@ argon2-cffi = "*" ipykernel = "*" ipython-genutils = "*" jinja2 = "*" -jupyter-client = ">=5.3.4" +jupyter-client = ">=5.3.4,<8" jupyter-core = ">=4.6.1" nbclassic = ">=0.4.7" nbconvert = ">=5" @@ -2352,13 +2353,13 @@ tpu = ["jax[tpu] (>=0.4.14)"] [[package]] name = "openpyxl" -version = "3.1.3" +version = "3.1.4" description = "A Python library to read/write Excel 2010 xlsx/xlsm files" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "openpyxl-3.1.3-py2.py3-none-any.whl", hash = "sha256:25071b558db709de9e8782c3d3e058af3b23ffb2fc6f40c8f0c45a154eced2c3"}, - {file = "openpyxl-3.1.3.tar.gz", hash = "sha256:8dd482e5350125b2388070bb2477927be2e8ebc27df61178709bc8c8751da2f9"}, + {file = "openpyxl-3.1.4-py2.py3-none-any.whl", hash = "sha256:ec17f6483f2b8f7c88c57e5e5d3b0de0e3fb9ac70edc084d28e864f5b33bbefd"}, + {file = "openpyxl-3.1.4.tar.gz", hash = "sha256:8d2c8adf5d20d6ce8f9bca381df86b534835e974ed0156dacefa76f68c1d69fb"}, ] [package.dependencies] @@ -2915,7 +2916,6 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -3463,7 +3463,7 @@ files = [ ] [package.dependencies] -greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\")"} +greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} [package.extras] aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] From c9493a2869cad4b453dda3dfe803ce282a8b572b Mon Sep 17 00:00:00 2001 From: conorheins Date: Thu, 13 Jun 2024 12:46:36 +0200 Subject: [PATCH 105/196] beginning of unit test file for sparse tensors backend --- test/test_jax_sparse_backend.py | 131 ++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 test/test_jax_sparse_backend.py diff --git a/test/test_jax_sparse_backend.py b/test/test_jax_sparse_backend.py new file mode 100644 index 00000000..c4d312d6 --- /dev/null +++ b/test/test_jax_sparse_backend.py @@ -0,0 +1,131 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" Unit Tests +__author__: Conor Heins, Toon van der Maele, Ozan Catal +""" + +import os +import unittest +from functools import partial + +import numpy as np +import jax.numpy as jnp +import jax.tree_util as jtu +from jax import vmap, nn +from jax import random as jr + +from pymdp.jax.inference import smoothing_ovf +from pymdp import utils, maths + +from typing import Any, List, Dict + +def make_model_configs(source_seed=0, num_models=4) -> Dict: + """ + This creates a bunch of model configurations (random amounts of num states, num obs, num controls, etc.) + that will be looped over and used as inputs for each unit test. This is intended to test each function on a variety of + differently-dimensioned generative models + """ + "" + rng_keys = jr.split(jr.PRNGKey(source_seed), num_models) + num_factors_list = [ jr.randint(key, (1,), 1, 7)[0].item() for key in rng_keys ] # list of total numbers of hidden state factors per model + num_states_list = [ jr.randint(key, (nf,), 2, 5).tolist() for nf, key in zip(num_factors_list, rng_keys) ] + num_controls_list = [ jr.randint(key, (nf,), 1, 3).tolist() for nf, key in zip(num_factors_list, rng_keys) ] + + rng_keys = jr.split(rng_keys[-1], num_models) + num_modalities_list = [ jr.randint(key, (1,), 1, 10)[0].item() for key in rng_keys ] + num_obs_list = [ jr.randint(key, (nm,), 1, 5).tolist() for nm, key in zip(num_modalities_list, rng_keys) ] + + rng_keys = jr.split(rng_keys[-1], num_models) + A_deps_list, B_deps_list = [], [] + for nf, nm, model_key in zip(num_factors_list, num_modalities_list, rng_keys): + modality_keys_model_i = jr.split(model_key, nm) + num_f_per_modality = [jr.randint(key, shape=(), minval=1, maxval=nf+1).item() for key in modality_keys_model_i] # this is the number of factors that each modality depends on + A_deps_model_i = [sorted(jr.choice(key, a=nf, shape=(num_f_m,), replace=False).tolist()) for key, num_f_m in zip(modality_keys_model_i, num_f_per_modality)] + A_deps_list.append(A_deps_model_i) + + factor_keys_model_i = jr.split(modality_keys_model_i[-1], nf) + num_f_per_factor = [jr.randint(key, shape=(), minval=1, maxval=nf+1).item() for key in factor_keys_model_i] # this is the number of factors that each factor depends on + B_deps_model_i = [sorted(jr.choice(key, a=nf, shape=(num_f_f,), replace=False).tolist()) for key, num_f_f in zip(factor_keys_model_i, num_f_per_factor)] + B_deps_list.append(B_deps_model_i) + + return {'nf_list': num_factors_list, + 'ns_list': num_states_list, + 'nc_list': num_controls_list, + 'nm_list': num_modalities_list, + 'no_list': num_obs_list, + 'A_deps_list': A_deps_list, + 'B_deps_list': B_deps_list + } + +def make_A_full(A_reduced: List[np.ndarray], A_dependencies: List[List[int]], num_obs: List[int], num_states: List[int]) -> np.ndarray: + """ + Given a reduced A matrix, `A_reduced`, and a list of dependencies between hidden state factors and observation modalities, `A_dependencies`, + return a full A matrix, `A_full`, where `A_full[m]` is the full A matrix for modality `m`. This means all redundant conditional independencies + between observation modalities `m` and all hidden state factors (i.e. `range(len(num_states))`) are represented as lagging dimensions in `A_full`. + """ + A_full = utils.initialize_empty_A(num_obs, num_states) # initialize the full likelihood tensor (ALL modalities might depend on ALL factors) + all_factors = range(len(num_states)) # indices of all hidden state factors + for m, A_m in enumerate(A_full): + + # Step 1. Extract the list of the factors that modality `m` does NOT depend on + non_dependent_factors = list(set(all_factors) - set(A_dependencies[m])) + + # Step 2. broadcast or tile the reduced A matrix (`A_reduced`) along the dimensions of corresponding to `non_dependent_factors`, to give it the full shape of `(num_obs[m], *num_states)` + expanded_dims = [num_obs[m]] + [1 if f in non_dependent_factors else ns for (f, ns) in enumerate(num_states)] + tile_dims = [1] + [ns if f in non_dependent_factors else 1 for (f, ns) in enumerate(num_states)] + A_full[m] = np.tile(A_reduced[m].reshape(expanded_dims), tile_dims) + + return A_full + +class TestJaxSparseOperations(unittest.TestCase): + + def test_sparse_smoothing(self): + cfg = {'source_seed': 0, + 'num_models': 4 + } + gm_params = make_model_configs(**cfg) + num_states_list, num_obs_list = gm_params['ns_list'], gm_params['no_list'] + + for (num_states, num_obs) in zip(num_states_list, num_obs_list): + + # Make numpy versions of each generative model component and observatiosn + prior = utils.random_single_categorical(num_states) + A = utils.random_A_matrix(num_obs, num_states) + + obs = utils.obj_array(len(num_obs)) + for m, obs_dim in enumerate(num_obs): + obs[m] = utils.onehot(np.random.randint(obs_dim), obs_dim) + + # extract B's, D',s etc. + + # dense jax version + prior = [jnp.array(prior_f) for prior_f in prior] + A = [jnp.array(a_m) for a_m in A] + obs = [jnp.array(o_m) for o_m in obs] + # ... finish making generative model + # .... put the dense version of smoothing_ovf here + + + # sparse jax version + prior = [jnp.array(prior_f) for prior_f in prior] + A = [jnp.array(a_m) for a_m in A] + obs = [jnp.array(o_m) for o_m in obs] + # ... finish making generative model + # .... put the sparse version of smoothing_ovf here + + # for example, something like this + for f, (dense_out, sparse_out) in enumerate(zip(smoothed_beliefs_dense, smoothed_beliefs_sparse)): + self.assertTrue(np.allclose(dense_out[f], sparse_out[f])) + + + +if __name__ == "__main__": + unittest.main() + + + + + + + From 54374ae82992f78dd33705c39cc73e1a829566ea Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Thu, 13 Jun 2024 13:07:08 +0200 Subject: [PATCH 106/196] add sparse spm dot initial version --- pymdp/jax/maths.py | 116 ++++++++++++++++++++++++++++++--------------- 1 file changed, 79 insertions(+), 37 deletions(-) diff --git a/pymdp/jax/maths.py b/pymdp/jax/maths.py index 3bb1c200..82e9e000 100644 --- a/pymdp/jax/maths.py +++ b/pymdp/jax/maths.py @@ -4,21 +4,27 @@ from typing import Optional, Tuple, List from jax import tree_util, nn, jit from opt_einsum import contract +from multimethod import multimethod +from jaxtyping import Array +from jax.experimental import sparse +from jax.experimental.sparse._base import JAXSparse MINVAL = jnp.finfo(float).eps + def log_stable(x): return jnp.log(jnp.clip(x, min=MINVAL)) -@partial(jit, static_argnames=['keep_dims']) -def factor_dot(M, xs, keep_dims: Optional[Tuple[int]] = None): - """ Dot product of a multidimensional array with `x`. - + +@multimethod +@partial(jit, static_argnames=["keep_dims"]) +def factor_dot(M: Array, xs: List[Array], keep_dims: Optional[Tuple[int]] = None): + """Dot product of a multidimensional array with `x`. Parameters ---------- - `qs` [list of 1D numpy.ndarray] - list of jnp.ndarrays - - Returns + + Returns ------- - `Y` [1D numpy.ndarray] - the result of the dot product """ @@ -28,17 +34,47 @@ def factor_dot(M, xs, keep_dims: Optional[Tuple[int]] = None): dims = tuple((i,) for i in range(M.ndim) if i not in keep_dims) return factor_dot_flex(M, xs, dims, keep_dims=keep_dims) -@partial(jit, static_argnames=['dims', 'keep_dims']) + +@multimethod +def factor_dot(M: JAXSparse, xs: List[Array], keep_dims: Optional[Tuple[int]] = None): + d = len(keep_dims) if keep_dims is not None else 0 + assert M.ndim == len(xs) + d + keep_dims = () if keep_dims is None else keep_dims + dims = tuple((i,) for i in range(M.ndim) if i not in keep_dims) + return spm_dot_sparse(M, xs, dims, keep_dims=keep_dims) + + +def spm_dot_sparse( + X: JAXSparse, x: List[Array], dims: Optional[List[Tuple[int]]], keep_dims: Optional[List[Tuple[int]]] +): + if dims is None: + dims = (jnp.arange(0, len(x)) + X.ndim - len(x)).astype(int) + + if keep_dims is not None: + for d in keep_dims: + dims = jnp.delete(dims, d) + + for d in range(len(x)): + s = jnp.ones(jnp.ndim(X), dtype=int) + s = s.at[dims[d]].set(jnp.shape(x[d])[0]) + X = X * x[d].reshape(tuple(s)) + + sparse_sum = sparse.sparsify(jnp.sum) + Y = sparse_sum(X, axis=tuple(dims.astype(int))) + return Y + + +@partial(jit, static_argnames=["dims", "keep_dims"]) def factor_dot_flex(M, xs, dims: List[Tuple[int]], keep_dims: Optional[Tuple[int]] = None): - """ Dot product of a multidimensional array with `x`. - + """Dot product of a multidimensional array with `x`. + Parameters ---------- - `M` [numpy.ndarray] - tensor - 'xs' [list of numpyr.ndarray] - list of tensors - 'dims' [list of tuples] - list of dimensions of xs tensors in tensor M - 'keep_dims' [tuple] - tuple of integers denoting dimesions to keep - Returns + Returns ------- - `Y` [1D numpy.ndarray] - the result of the dot product """ @@ -49,33 +85,37 @@ def factor_dot_flex(M, xs, dims: List[Tuple[int]], keep_dims: Optional[Tuple[int args.extend(row) args += [keep_dims] - return contract(*args, backend='jax') + return contract(*args, backend="jax") + def compute_log_likelihood_single_modality(o_m, A_m, distr_obs=True): - """ Compute observation likelihood for a single modality (observation and likelihood)""" + """Compute observation likelihood for a single modality (observation and likelihood)""" if distr_obs: expanded_obs = jnp.expand_dims(o_m, tuple(range(1, A_m.ndim))) likelihood = (expanded_obs * A_m).sum(axis=0) else: likelihood = A_m[o_m] - + return log_stable(likelihood) + def compute_log_likelihood(obs, A, distr_obs=True): - """ Compute likelihood over hidden states across observations from different modalities """ + """Compute likelihood over hidden states across observations from different modalities""" result = tree_util.tree_map(lambda o, a: compute_log_likelihood_single_modality(o, a, distr_obs=distr_obs), obs, A) ll = jnp.sum(jnp.stack(result), 0) return ll + def compute_log_likelihood_per_modality(obs, A, distr_obs=True): - """ Compute likelihood over hidden states across observations from different modalities, and return them per modality """ + """Compute likelihood over hidden states across observations from different modalities, and return them per modality""" ll_all = tree_util.tree_map(lambda o, a: compute_log_likelihood_single_modality(o, a, distr_obs=distr_obs), obs, A) return ll_all + def compute_accuracy(qs, obs, A): - """ Compute the accuracy portion of the variational free energy (expected log likelihood under the variational posterior) """ + """Compute the accuracy portion of the variational free energy (expected log likelihood under the variational posterior)""" ll = compute_log_likelihood(obs, A) @@ -86,28 +126,30 @@ def compute_accuracy(qs, obs, A): joint = ll * x return joint.sum() + def compute_free_energy(qs, prior, obs, A): - """ + """ Calculate variational free energy by breaking its computation down into three steps: 1. computation of the negative entropy of the posterior -H[Q(s)] 2. computation of the cross entropy of the posterior with the prior H_{Q(s)}[P(s)] - 3. computation of the accuracy E_{Q(s)}[lnP(o|s)] - + 3. computation of the accuracy E_{Q(s)}[lnP(o|s)] + Then add them all together -- except subtract the accuracy """ - vfe = 0.0 # initialize variational free energy + vfe = 0.0 # initialize variational free energy for q, p in zip(qs, prior): negH_qs = q.dot(log_stable(q)) xH_qp = -q.dot(log_stable(p)) - vfe += (negH_qs + xH_qp) - + vfe += negH_qs + xH_qp + vfe -= compute_accuracy(qs, obs, A) return vfe + def multidimensional_outer(arrs): - """ Compute the outer product of a list of arrays by iteratively expanding the first array and multiplying it with the next array """ + """Compute the outer product of a list of arrays by iteratively expanding the first array and multiplying it with the next array""" x = arrs[0] for q in arrs[1:]: @@ -115,32 +157,32 @@ def multidimensional_outer(arrs): return x + def spm_wnorm(A): - """ - Returns Expectation of logarithm of Dirichlet parameters over a set of + """ + Returns Expectation of logarithm of Dirichlet parameters over a set of Categorical distributions, stored in the columns of A. """ A = jnp.clip(A, min=MINVAL) - norm = 1. / A.sum(axis=0) - avg = 1. / A + norm = 1.0 / A.sum(axis=0) + avg = 1.0 / A wA = norm - avg return wA + def dirichlet_expected_value(dir_arr): - """ - Returns Expectation of Dirichlet parameters over a set of + """ + Returns Expectation of Dirichlet parameters over a set of Categorical distributions, stored in the columns of A. """ - expected_val = jnp.divide( - dir_arr, - jnp.clip(dir_arr.sum(axis=0, keepdims=True), min=MINVAL) - ) + expected_val = jnp.divide(dir_arr, jnp.clip(dir_arr.sum(axis=0, keepdims=True), min=MINVAL)) return expected_val -if __name__ == '__main__': + +if __name__ == "__main__": obs = [0, 1, 2] - obs_vec = [ nn.one_hot(o, 3) for o in obs] + obs_vec = [nn.one_hot(o, 3) for o in obs] A = [jnp.ones((3, 2)) / 3] * 3 res = jit(compute_log_likelihood)(obs_vec, A) - - print(res) \ No newline at end of file + + print(res) From 42e46f3cafcffb679248a8243b3135e6b70ea75a Mon Sep 17 00:00:00 2001 From: conorheins Date: Thu, 13 Jun 2024 13:28:22 +0200 Subject: [PATCH 107/196] fixes to agent.py in pymdp.jax to deal with: (A) batch expansion issues with C, D, and E (B) the case where B_action_dependencies is trivial (i.e. provided as None) --- pymdp/jax/agent.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 88b6e1dc..2f223500 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -77,7 +77,7 @@ class Agent(Module): inductive_depth: int = field(static=True) # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) policies: Array = field(static=True) - policies_multi: Array = field(static=True) + # policies_multi: Array = field(static=True) # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy use_utility: bool = field(static=True) # flag for whether to use state information gain ("salience") when computing expected free energy @@ -163,15 +163,13 @@ def __init__( # flatten B action dims for multiple action dependencies self.action_maps = None self.num_controls_multi = num_controls - if B_action_dependencies is not None: - self.policies_multi = control.construct_policies( + if B_action_dependencies is not None: # note, this only works when B_action_dependencies is not the trivial case of [[0], [1], ...., [num_factors-1]] + policies_multi = control.construct_policies( self.num_controls_multi, self.num_controls_multi, policy_len, control_fac_idx ) B, self.action_maps = self._flatten_B_action_dims(B, self.B_action_dependencies) - policies = self._construct_flattend_policies(self.policies_multi, self.action_maps) + policies = self._construct_flattend_policies(policies_multi, self.action_maps) self.sampling_mode = "full" - else: - self.policies_multi = None # extract shapes from A and B batch_dim = lambda x: x.shape[0] if apply_batch else x.shape[1] @@ -228,17 +226,18 @@ def __init__( pB = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pB) if C is None: - C = [jnp.ones(self.num_obs[m]) / self.num_obs[m] for m in range(self.num_modalities)] + C = [jnp.ones((self.batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities)] + elif apply_batch: + C = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), C) if D is None: - D = [jnp.ones(self.num_states[f]) / self.num_states[f] for f in range(self.num_factors)] + D = [jnp.ones((self.batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors)] + elif apply_batch: + D = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), D) if E is None: - E = jnp.ones(len(self.policies)) / len(self.policies) - - if apply_batch: - C = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), C) - D = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), D) + E = jnp.ones((self.batch_size, len(self.policies))) / len(self.policies) + elif apply_batch: E = jnp.broadcast_to(E, (self.batch_size,) + E.shape) if self.use_inductive and self.H is not None: From 01165b17eee5d36dadaecd62761227ba0fc187f1 Mon Sep 17 00:00:00 2001 From: conorheins Date: Thu, 13 Jun 2024 13:28:45 +0200 Subject: [PATCH 108/196] use apply_batch=False when constructing agent in generalized t maze demo notebook --- examples/generalized_tmaze_demo.ipynb | 288 +------------------------- 1 file changed, 11 insertions(+), 277 deletions(-) diff --git a/examples/generalized_tmaze_demo.ipynb b/examples/generalized_tmaze_demo.ipynb index 1d5e7fb5..c4d6f4f1 100644 --- a/examples/generalized_tmaze_demo.ipynb +++ b/examples/generalized_tmaze_demo.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -52,20 +52,9 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB220lEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zYU79nJMxc89znvMcwzRNExERERHxCkt1FyAiIiJyKVH4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4Eq/55z//iWEYHtPi4uIYNWqUV+uYOXMmhmGwb98+r+5Xzo1+PyJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7f8dxcXHn8JsRkYuVWr6qyfz582nWrBlXXHHFOa+zdetWrrrqKho2bMjjjz9OYGAgn3zyCYMHD2bu3LkMGTLEY/k//elPhIeH8+STT7Jv3z5eeeUVxo0bx5w5c9zLvP/++4wcOZJ+/frx3HPPkZuby7Rp07j66qv59ddfPf7IFxcX069fP66++mr+85//EBAQAMCnn35Kbm4uDz74IJGRkaxZs4ZXX32VgwcP8umnn1bovJx+uQ/g73//OykpKQQFBVXoPBw5coRrrrmG4uJi93JvvfWWV1tL7rjjDm644Qb27NlD06ZNAdclpFtuuQUfH59Syy9evJi9e/cyevRooqOj2bp1K2+99RZbt27l559/xjCMMi+LFhUVMWHCBHx9fd3Tli5dyo033kjXrl158sknsVgszJgxg2uvvZYffviByy+//Kz15+bmcvz48VLTw8LCsNlO/vnYvXs3t9xyC2PGjGHkyJG8++67jBo1iq5du9K2bVu6detGkyZN+OSTTxg5cqTHtubMmVNuGD3Vb7/9xvDhw/njH//IfffdR8uWLTl69Cg9evQgNzeX8ePHExkZyXvvvcf//d//8dlnn5X6f2LKlClYLBYeffRRMjIyeP755xkxYgS//PKLx3JpaWncfPPN3H777dx6661MmzaN22+/nQ8//JBHHnmEBx54gDvuuIMXXniBW265haSkJIKDgwE4evQoV155JYZhMG7cOKKioliwYAFjxowhMzOz1KXDs9X0//7f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9datW5c+ffowffp0kpOTSy1f1hASZ9OvXz9CQkJ49tlnKSoqOq9tlnxrP7Ve0zT573//W+F6AGbMmMH06dN5/fXXywylFTkPN910Ez///DNr1qzxmP/hhx+eV22na9OmDX379nW/unbtWu6y9957L08++SQvvvhiucuUdS6BMkc2f+qpp1i0aBEfffRRmZfjunbtStOmTfnPf/5T5uXt83m/VIbWrVvTvn175syZw5w5c6hfvz69evU67+3ddNNNrFmzhp9++sk9LScnh7feeou4uLhSfdOqmtVqZejQocydO7fMlu3zPe+BgYHnfQlfRC4+avmqJs2bN2f27NkMHz6cli1buke4N02TxMREZs+ejcVi8ehj9frrr3P11VfTvn177rvvPpo0acLRo0f56aefOHjwIBs3bqxQDSEhIUybNo277rqLLl26cPvttxMVFcWBAwf45ptvuOqqq3jttdfOuI1WrVrRtGlTHn30UQ4dOkRISAhz5849r/4qx48f56GHHqJNmzbY7XY++OADj/lDhgwhMDDwnM/DX//6V95//3369+/Pww8/7B5qIjY21uuPboqNjeWf//znGZcJCQmhV69ePP/88xQVFdGwYUO+++47EhMTPZbbvHkzzzzzDL169SIlJaXUebrzzjuxWCz873//48Ybb6Rt27aMHj2ahg0bcujQIZYtW0ZISAhff/31WevesGFDqe2Dq2Wte/fuZz/wMgwbNownnngCPz8/xowZc0EDCT/++ON89NFH3HjjjYwfP56IiAjee+89EhMTmTt3brUMUjxlyhSWLVvGFVdcwX333UebNm1ITU1lw4YNLFmyhNTU1Apvs2vXrsyZM4eJEydy2WWXERQUxMCBA6ugehHxBoWvajRo0CA2b97Miy++yHfffce7776LYRjExsYyYMAAHnjgATp27Ohevk2bNqxbt46nnnqKmTNncuLECerWrUvnzp09LlNVxB133EGDBg2YMmUKL7zwAgUFBTRs2JCePXsyevTos67v4+PD119/zfjx45k8eTJ+fn4MGTKEcePGedR+LrKzs8nPz2fbtm3uuxtPlZiYSGBg4Dmfh/r167Ns2TL+9Kc/MWXKFCIjI3nggQdo0KCBu8P3xWb27Nn86U9/4vXXX8c0TW644QYWLFhAgwYN3MucOHEC0zRZsWIFK1asKLWNkkuhffr04aeffuKZZ57htddeIzs7m+joaK644gr++Mc/nlM9H330kftOzVONHDnygsLX3//+d3Jzc8/pLsczqVevHj/++COPPfYYr776Kvn5+XTo0IGvv/6aAQMGXNC2L6SmNWvW8PTTT/P555/zxhtvEBkZSdu2bXnuuefOa5sPPfQQCQkJzJgxg5dffpnY2FiFL5EazDDVq1NERETEa9TnS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvMjr43w5nU4OHz5McHCwHpkhIiLnzTRNsrKyaNCgQbUMqCtyvrwevg4fPkxMTIy3dysiIrVUUlKSx9NARC52Xg9fwcHBgOt/lpCQEG/vXkREaonMzExiYmLcnysiNYXXw1fJpcaQkBCFLxERuWDqwiI1jS6Si4iIiHiRwpeIiIiIFyl8iYiIiHiR1/t8iYiIeIvD4aCoqKi6y5BazsfHB6vVes7LK3yJiEitY5omR44cIT09vbpLkUtEWFgY0dHR53QDiMKXiIjUOiXBq27dugQEBOiOSKkypmmSm5tLSkoKAPXr1z/rOgpfIiJSqzgcDnfwioyMrO5y5BLg7+8PQEpKCnXr1j3rJUh1uBcRkVqlpI9XQEBANVcil5KS99u59DFU+BIRkVpJlxrFmyryflP4EhEREfEihS8RERERL1L4EhEROU1hYeEFzb9QR44c4U9/+hNNmjTBbrcTExPDwIED+f7776t0v+IdCl8iIiKnmDNnDu3btycpKanM+UlJSbRv3545c+ZUyf737dtH165dWbp0KS+88AKbN29m4cKFXHPNNYwdO7ZK9inepfAlIiLyu8LCQp544gl27txJnz59SgWwpKQk+vTpw86dO3niiSeqpAXsoYcewjAM1qxZw9ChQ2nRogVt27Zl4sSJ/Pzzz+zbtw/DMEhISHCvk56ejmEYLF++3D1ty5Yt3HjjjQQFBVGvXj3uuusujh8/Xun1SsUpfImIiPzO19eXJUuW0KRJE/bu3esRwEqC1969e2nSpAlLlizB19e3UvefmprKwoULGTt2LIGBgaXmh4WFndN20tPTufbaa+ncuTPr1q1j4cKFHD16lNtuu61S65Xzo/AlIiJyipiYGJYvX+4RwH788UeP4LV8+XJiYmIqfd+7d+/GNE1atWp1Qdt57bXX6Ny5M88++yytWrWi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cCCxsbG8/fbbNGjQAKfTSbt27dwd4P39S980VFnKqqcynOn8ZGdnU79+fY/LnyXCwsKqpJ4KtXylpKRw991307JlS6677jrWrl3LokWLuP7666ukOJHaJtQeStd6XUnNT3V3lC8uKmbqA1PL7Fx/eif8qQ9MpbCwkOScZFpHtqZRUKPqPByR2sPH39XRPje1YuvlprrW86m6QAKwdOlSNm/eXOqS4KlCQkIYNmwYb7/9NnPmzGHu3LmkprqOx8fHB4ej/P6mJU6cOMFvv/3G3//+d6677jpat25NWprn2IMdOnQgISHBve3T+fr6ltpX69atS/Wz2rZtG+np6We8aa8ylXd+unTpwpEjR7DZbDRr1szjVadOnXKP6UJUqOXrnXfeqbQdi1yq+sT0YXf6bvZn7nc929HHxs0P3sz8afMZ/+b4Un27SgLY1AemMuCBARzJP0KUfxT94vqVewlCRCrIMKBxdzi03nUJ8VxasooLABNie1RqZ/uCggKOHDmCw+Hg6NGjLFy4kMmTJ3PzzTdz9913l7nOSy+9RP369encuTMWi4VPP/2U6Ohod8tNXFwc33//PVdddRV2u53w8NI38QCEh4cTGRnJW2+9Rf369Tlw4ACPP/64xzLDhw/n2WefZfDgwUyePJn69evz66+/0qBBA7p3705cXByJiYkkJCTQqFEjgoOD6du3L+3bt2fEiBG88sorFBcX89BDD9G7d2+6detW4XO0bds2CgsLSU1NJSsri4SEBIByx+I60/np27cv3bt3Z/DgwTz//PO0aNGCw4cP88033zBkyBC6detW5jFdyDAferajiJcF+QYxqNkgIvwi2JuxF4fTQdd+Xfl/n/6/Mu9qBFcAm/TJJOr2qIuP1YeBTQdSN6CulysXqeWi20NEvKsD/dme4WiakJboWr5eu0otY+HChdSvX5+4uDj69+/PsmXLmDp1KvPmzSv3DsDg4GCef/55unXrxmWXXca+ffv49ttvsVhcH/MvvvgiixcvJiYmhs6dO5e7b4vFwscff8z69etp164dEyZM4IUXXvBYxtfXl++++466dety00030b59e6ZMmeKubejQofTv359rrrmGqKgoPvroIwzDYN68eYSHh9OrVy/69u1LkyZNmDNnznmdo5tuuonOnTvz9ddfs3z5cjp37nzG4zrT+TEMg2+//ZZevXox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Jit3HmPh1iOk5xZRN8ROmL8Pxu+P2ihhmibpuUUczconIsCX/u3r07NZHSwWo5wti1TM/sz95BRV/PFcgT6BxIbEVkFFckkxTTi4FrbMdQWqwCjX6/QxwEzT1dqVlQw+/tCsL7T+P7Cd+YtrVbsYPk9EzsclGb5KJKXmsnRHClsPZ5CZX4wB+FgtmJgUF5uYQIi/jXYNQ7m2VV0ahQdUa70iIlUi+xjs+g6S1rjuYATXWGCGAY4iwHQNTxHVGlrcAHVbV2u5JS6mzxORirikw1eJIxn5JB7P4UhGHqk5hWBAZKCdeiF+NIkKpF6IhpQQkUtAbioc+83VwpV91DUavl8YhDSA8DjXy7h4Wv4vxs8TkXNx5gv8l4joUD+iQxWwROQSFxABsd2ruwqRWu+S63AvIiIiUp0UvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yFbdBUjtYJom6blFHMsuIK/QgcUwCAvwISrYjp+PtbrLk0uFowiyj0LOcTAdYLVDUD0IiASLvmuKyMVB4UsuSF6hg00H01mTmEpSWi45BQ4cphMw8LNZCPHzoUNMKF0ahxNfJxDDMKq7ZKmNMg5C0lpI+gXy0qAo1zXdsIBvEARHQ9xV0LAr+IVWb60icskzTNM0vbnDzMxMQkNDycjIICQk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auXKTQVHPkQ0hbZDXH29dLOHiFQTXXaUC5Jf5GDLoQzWJKZyIDWXnIJiihxODMPA38dKsJ+NTo3D6dI4jNjIwLNvUOR8ZB6Gg+vgwM+uuxiLclwtYRab65JkSEOI7QENu5R6NJHUXPo8kZpK4UsqhWmaZBUUk5JZQH6RA8OAsABfooLs+Np0dVu8xFEMOccg97irX5jN7hpE1T9cLV21kD5PpKbS9R+pFIZhEOLnoxHrpXpZbRBS3/USEblIqUlCRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts3t6haZoAZGZmenvXIiJSi5R8jpR8rojUFF4PX1lZWQDExMR4e9ciIlILZWVlERoaWt1liJwzw/TyVwan08nhw4cJDg7GMAxv7vqcZGZmEhMTQ1JSEiEhIdVdTo2kc3jhdA4vjM7fhasJ59A0TbKysmjQoAEWi3rRSM3h9ZYvi8VCo0aNvL3bCgsJCblo/+DUFDqHF07n8MLo/F24i/0cqsVLaiJ9VRARERHxIoUvERERES9S+DqN3W7nySefxG63V3cpNZbO4YXTObwwOn8XTudQpOp4vcO9iIiIyKVMLV8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl+neP3114mLi8PPz48rrriCNWvWVHdJNcrKlSsZOHAgDRo0wDAMvvzyy+ouqUaZPHkyl112GcHBwdStW5fBgwfz22+/VXdZNcq0adPo0KGDe2DQ7t27s2DBguouq8aaMmUKhmHwyCOPVHcpIrWKwtfv5syZw8SJE3nyySfZsGEDHTt2pF+/fqSkpFR3aTVGTk4OHTt25PXXX6/uUmqkFStWMHbsWH7++WcWL15MUVERN9xwAzk5OdVdWo3RqFEjpkyZwvr161m3bh3XXnstgwYNYuvWrdVdWo2zdu1apk+fTocOHaq7FJFaR0NN/O6KK67gsssu47XXXgNcz6CMiYnhT3/6E48//ng1V1fzGIbBF198weDBg6u7lBrr2LFj1K1blxUrVtCrV6/qLqfGioiI4IUXXmDMmDHVXUqNkZ2dTZcuXXjjjTf417/+RadOnXjllVequyyRWkMtX0BhYSHr16+nb9++7mkWi4W+ffvy008/VWNlcinLyMgAXOFBKs7hcPDxxx+Tk5ND9+7dq7ucGmXs2LEMGDDA42+iiFQerz9Y+2J0/PhxHA4H9erV85her149duzYUU1VyaXM6XTyyCOPcNVVV9GuXbvqLqdG2bx5M927dyc/P5+goCC++OIL2rRpU91l1Rgff/wxGzZsYO3atdVdikitpfAlchEaO3YsW7ZsYdWqVdVdSo3TsmVLEhISyMjI4LPPPmPkyJGsWLFCAewcJCUl8fDDD7N48WL8/PyquxyRWkvhC6hTpw5Wq5WjR496TD969CjR0dHVVJVcqsaNG8f8+fNZuXIljRo1qu5yahxfX1+aNWsGQNeuXVm7di3//e9/mT59ejVXdvFbv349KSkpdOnSxT3N4XCwcuVKXnvtNQoKCrBardVYoUjtoD5fuP5Yd+3ale+//949zel08v3336uviHiNaZqMGzeOL774gqVLlxIfH1/dJdUKTqeTgoKC6i6jRrjuuuvYvHkzCQkJ7le3bt0YMWIECQkJCl4ilUQtX7+bOHEiI0eOpFu3blx++eW88sor5OTkMHr06OourcbIzs5m9+7d7p8TExNJSEggIiKCxo0bV2NlNcPYsWOZPXs28+bNIzg4mCNHjgAQGhqKv79/NVdXM0yaNIkbb7yRxo0bk5WVxezZs1m+fDmLFi2q7tJqhODg4FJ9DAMDA4mMjFTfQ5FKpPD1u2HDhnHs2DGeeOIJjhw5QqdOnVi4cGGpTvhSvnXr1nHNNde4f544cSIAI0eOZObMmdVUVc0xbdo0APr06eMxfcaMGYwaNcr7BdVAKSkp3H333SQnJxMaGkqHDh1YtGgR119/fXWXJiLipnG+RERERLxIfb5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSL/j+ISD+Fp1HZzAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "def get_maze_matrix(small=False):\n", " if small:\n", @@ -121,7 +110,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -147,7 +136,8 @@ " None, None, None, \n", " policy_len=7,\n", " A_dependencies=A_dependencies, \n", - " B_dependencies=B_dependencies\n", + " B_dependencies=B_dependencies,\n", + " apply_batch=False\n", ")\n", "\n" ] @@ -163,7 +153,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -173,265 +163,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=0\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB23ElEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zQU79nMOQuec5z3mOYZqmiYiIiIh4haW6CxARERG5lCh8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8idf885//xDAMj2lxcXGMGjXKq3XMnDkTwzDYt2+fV/cr50b/PiJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7/43j4uLO4V9GRC5WavmqJvPnz6dZs2ZcccUV57zO1q1bueqqq2jYsCGPP/44gYGBfPLJJwwePJi5c+cyZMgQj+X/9Kc/ER4ezpNPPsm+fft45ZVXGDduHHPmzHEv8/777zNy5Ej69evHc889R25uLtOmTePqq6/m119/9fglX1xcTL9+/bj66qv5z3/+Q0BAAACffvopubm5PPjgg0RGRrJmzRpeffVVDh48yKefflqh83L65T6Av//976SkpBAUFFSh83DkyBGuueYaiouL3cu99dZbXm0tueOOO7jhhhvYs2cPTZs2BVyXkG655RZ8fHxKLb948WL27t3L6NGjiY6OZuvWrbz11lts3bqVn3/+GcMwyrwsWlRUxIQJE/D19XVPW7p0KTfeeCNdu3blySefxGKxMGPGDK699lp++OEHLr/88rPWn5uby/Hjx0tNDwsLw2Y7+etj9+7d3HLLLYwZM4aRI0fy7rvvMmrUKLp27Urbtm3p1q0bTZo04ZNPPmHkyJEe25ozZ065YfRUv/32G8OHD+ePf/wj9913Hy1btuTo0aP06NGD3Nxcxo8fT2RkJO+99x7/93//x2effVbq/8SUKVOwWCw8+uijZGRk8PzzzzNixAh++eUXj+XS0tK4+eabuf3227n11luZNm0at99+Ox9++CGPPPIIDzzwAHfccQcvvPACt9xyC0lJSQQHBwNw9OhRrrzySgzDYNy4cURFRbFgwQLGjBlDZmZmqUuHZ6vp//2//0dGRobHZe+S/wsiUkOZ4nUZGRkmYA4ePLjUvLS0NPPYsWPuV25urnveddddZ7Zv397Mz893T3M6nWaPHj3M5s2bu6fNmDHDBMy+ffuaTqfTPX3ChAmm1Wo109PTTdM0zaysLDMsLMy87777PGo4cuSIGRoa6jF95MiRJmA+/vjjpWo+tcYSkydPNg3DMPfv3++e9uSTT5qnv+ViY2PNkSNHllq/xPPPP28C5qxZsyp8Hh555BETMH/55Rf3tJSUFDM0NNQEzMTExHL3e7oBAwaYsbGx57x8bGysOWDAALO4uNiMjo42n3nmGdM0TXPbtm0mYK5YscL977R27Vr3emWdy48++sgEzJUrV5a7v4ceesi0Wq3m0qVLTdN0nY/mzZub/fr183gP5ObmmvHx8eb1119/xvoTExNNoNzXTz/95HGsp9eXkpJi2u12889//rN72qRJk0wfHx8zNTXVPa2goMAMCwsz77nnHve0kvNy6r9PyT4WLlzoUWfJv/EPP/zgnpaVlWXGx8ebcXFxpsPhME3TNJctW2YCZuvWrc2CggL3sv/9739NwNy8ebN7Wu/evU3AnD17tnvajh07TMC0WCzmzz//7J6+aNEiEzBnzJjhnjZmzBizfv365vHjxz1qvf32283Q0FD3v3FFaqro+09ELm667FgNMjMzgbK/vfbp04eoqCj36/XXXwcgNTWVpUuXctttt5GVlcXx48c5fvw4J06coF+/fuzatYtDhw55bOv+++/3uAzVs2dPHA4H+/fvB1ytLOnp6QwfPty9vePHj2O1WrniiitYtmxZqfoefPDBUtNObUnKycnh+PHj9OjRA9M0+fXXX8/jDLksW7aMSZMm8ac//Ym77rqrwufh22+/5corr/Ro4YmKinJfLvUGq9XKbbfdxkcffQS4OtrHxMTQs2fPMpc/9Vzm5+dz/PhxrrzySgA2bNhQ5jqzZs3ijTfe4Pnnn+eaa64BICEhgV27dnHHHXdw4sQJ93nKycnhuuuuY+XKled0+fX+++9n8eLFpV5t2rTxWK5NmzYexxQVFUXLli3Zu3eve9qwYcMoKiri888/d0/77rvvSE9PZ9iwYWetJT4+vlTr2Lfffsvll1/O1Vdf7Z4WFBTE/fffz759+9i2bZvH8qNHj/ZoHSyp+dQ6S7Zx++23u39u2bIlYWFhtG7d2qO1uuTvJeubpsncuXMZOHAgpml6/L/q168fGRkZpf4dz7UmEak9dNmxGpRcnsjOzi41b/r06WRlZXH06FGPjs67d+/GNE3+8Y9/8I9//KPM7aakpNCwYUP3z40bN/aYHx4eDrguqQDs2rULgGuvvbbM7YWEhHj8bLPZaNSoUanlDhw4wBNPPMFXX33l3naJjIyMMrd9NgcPHmTYsGFcddVVvPTSS+7pFTkP+/fvL/OybsuWLc+rptNlZGR49Gvz9fUlIiKi1HJ33HEHU6dOZePGjcyePZvbb7+9VN+sEqmpqTz11FN8/PHHpKSklNrf6RISEnjggQcYPnw4EydOdE8v+bc9/RLf6dsreU+Up3nz5uUOl3Gq099r4Hq/nfp+6NixI61atWLOnDmMGTMGcF1yrFOnTrnvwVPFx8eXmlbev3Hr1q3d89u1a1dunaf/nyjRqFGjUv9GoaGhpfpghoaGeqx/7Ngx0tPTeeutt3jrrbfKPI7T/13PtSYRqT0UvqpBaGgo9evXZ8uWLaXmlXyQnD5+VEkrxaOPPlpu35hmzZp5/FzeHWOmaXps8/333y81FALg0acHXHcmnn73pcPh4Prrryc1NZXHHnuMVq1aERgYyKFDhxg1atR5dW4vLCzklltuwW6388knn3jUcT7noao8/PDDHh3Ie/fuzfLly0std8UVV9C0aVMeeeQREhMTueOOO8rd5m233caPP/7IX/7yFzp16kRQUBBOp5P+/fuXOpdpaWkMHTqUFi1a8L///c9jXsmyL7zwAp06dSpzX5XZb+hs77USw4YN49///jfHjx8nODiYr776iuHDh5d6r5WlMvrqnWud5S13rv+n7rzzznKDb4cOHc6rJhGpPRS+qsmAAQP43//+x5o1a86p43OTJk0A8PHxOaeWiHNR0gG8bt26573NzZs3s3PnTt577z3uvvtu9/TFixefd13jx48nISGBlStXUq9ePY95FTkPsbGx7hagU/3222/nXdup/vrXv3q0Tp6pFWn48OH861//onXr1uWGobS0NL7//nueeuopnnjiCff0so7B6XQyYsQI0tPTWbJkifvmhxIl/7YhISGV9n6pDMOGDeOpp55i7ty51KtXj8zMTI/LexUVGxtb5r/njh073PO9KSoqiuDgYBwOR6We9/JaSkWkZlKfr2ry17/+lYCAAO655x6OHj1aav7p33rr1q1Lnz59mD59OsnJyaWWL2sIibPp168fISEhPPvssxQVFZ3XNku+tZ9ar2ma/Pe//61wPQAzZsxg+vTpvP7662WG0oqch5tuuomff/6ZNWvWeMz/8MMPz6u207Vp04a+ffu6X127di132XvvvZcnn3ySF198sdxlyjqXQJkjmz/11FMsWrSIjz76qMzLcV27dqVp06b85z//KfPy9vm8XypD69atad++PXPmzGHOnDnUr1+fXr16nff2brrpJtasWcNPP/3knpaTk8Nbb71FXFxcqb5pVc1qtTJ06FDmzp1bZsv2+Z73wMDA876ELyIXH7V8VZPmzZsze/Zshg8fTsuWLd0j3JumSWJiIrNnz8ZisXj0sXr99de5+uqrad++Pffddx9NmjTh6NGj/PTTTxw8eJCNGzdWqIaQkBCmTZvGXXfdRZcuXbj99tuJioriwIEDfPPNN1x11VW89tprZ9xGq1ataNq0KY8++iiHDh0iJCSEuXPnnld/lePHj/PQQw/Rpk0b7HY7H3zwgcf8IUOGEBgYeM7n4a9//Svvv/8+/fv35+GHH3YPNREbG+v1RzfFxsbyz3/+84zLhISE0KtXL55//nmKiopo2LAh3333HYmJiR7Lbd68mWeeeYZevXqRkpJS6jzdeeedWCwW/ve//3HjjTfStm1bRo8eTcOGDTl06BDLli0jJCSEr7/++qx1b9iwodT2wdWy1r1797MfeBmGDRvGE088gZ+fH2PGjLmggYQff/xxPvroI2688UbGjx9PREQE7733HomJicydO7daBimeMmUKy5Yt44orruC+++6jTZs2pKamsmHDBpYsWUJqamqFt9m1a1fmzJnDxIkTueyyywgKCmLgwIFVUL2IeIPCVzUaNGgQmzdv5sUXX+S7777j3XffxTAMYmNjGTBgAA888AAdO3Z0L9+mTRvWrVvHU089xcyZMzlx4gR169alc+fOHpepKuKOO+6gQYMGTJkyhRdeeIGCggIaNmxIz549GT169FnX9/Hx4euvv2b8+PFMnjwZPz8/hgwZwrhx4zxqPxfZ2dnk5+ezbds2992Np0pMTCQwMPCcz0P9+vVZtmwZf/rTn5gyZQqRkZE88MADNGjQwN3h+2Ize/Zs/vSnP/H6669jmiY33HADCxYsoEGDBu5lTpw4gWmarFixghUrVpTaRsml0D59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NGrUiKeffprk5GSSk5Mv6NxWJ3W4FxGRS15+kZP9J3IID/Cp0HrhAT7sP5FDfpETf9/Kuftx/vz5BAUFUVxcTEFBARaLhddeew2AgoICnn32WZYsWUL37t0BaNKkCatWrWL69On07t2bPn368M477+BwONiyZQu+vr4MGzaM5cuX079/f5YvX07v3r3d+7vnnnvcf2/SpAlTp07lsssuIzs7m6CgIPe8p59+muuvvx6A7Oxs3nnnHT744AOuu+46AN577z0aNWp0xmM7cOAAf/nLX2jVqhUAzZs3d8+bPHkyI0aM4JFHHnHPmzp1Kr1792batGlERERgtVrdLXQ1mVq+RETkklfocOJwmtisFftYtFoMHE6TQoez0mq55pprSEhI4JdffmHkyJGMHj2aoUOHArB7925yc3O5/vrrCQoKcr9mzZrFnj17AOjZsydZWVn8+uuvrFixwh3ISlrDVqxYQZ8+fdz7W79+PQMHDqRx48YEBwe7g9mBAwc86urWrZv773v27KGwsJArrrjCPS0iIoKWLVue8dgmTpzIvffeS9++fZkyZYq7ZnBdkpw5c6bHcfXr1w+n00liYmLFT+RFTC1fIiJyyfO1WrBaDIorGKJKxv/yrWBoO5PAwED3JcF3332Xjh078s477zBmzBh3v61vvvmGhg0beqxnt9sBCAsLo2PHjixfvpyffvqJ66+/nl69ejFs2DB27tzJrl273AErJyeHfv360a9fPz788EOioqI4cOAA/fr1o7CwsFRdF+qf//wnd9xxB9988w0LFizgySef5OOPP2bIkCFkZ2fzxz/+kfHjx5dar3Hjxhe874uJWr5EROSS5+djITYykLTcogqtl5ZbRGxkIH4+VfNxarFY+Nvf/sbf//538vLyaNOmDXa7nQMHDtCsWTOPV0xMjHu93r17s2zZMlauXEmfPn2IiIigdevW/Pvf/6Z+/fq0aNECgB07dnDixAmmTJlCz549adWqlUdn+/I0bdoUHx8ffvnlF/e0tLQ0du7cedZ1W7RowYQJE/juu+/4wx/+wIwZMwDo0qUL27ZtK3VczZo1c/d58/X1xeGo3LtLq4PCl4iIXPIMw+Cy+AhMTAqLz631q7DYiYnJ5fERVXrn3a233orVauX1118nODiYRx99lAkTJvDee++xZ88eNmzYwKuvvsp7773nXqdPnz4s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4EBiY2N5++23adCgAU6nk3bt2rk7wPv7l75pqLKUVU9lONP5yc7Opn79+h6XP0uEhYVVST0VavlKSUnh7rvvpmXLllx33XWsXbuWRYsWcf3111dJcSK1Tag9lK71upKan+ruKF9cVMzUB6aW2bn+9E74Ux+YSmFhIck5ybSObE2joEbVeTgitYePv6ujfW5qxdbLTXWt51N1gQRg6dKlbN68udQlwVOFhIQwbNgw3n77bebMmcPcuXNJTXUdj4+PDw5H+f1NS5w4cYLffvuNv//971x33XW0bt2atDTPsQc7dOhAQkKCe9un8/X1LbWv1q1bl+pntW3bNtLT0894015lKu/8dOnShSNHjmCz2WjWrJnHq06dOuUe04WoUMvXO++8U2k7FrlU9Ynpw+703ezP3O96tqOPjZsfvJn50+Yz/s3xpfp2lQSwqQ9MZcADAziSf4Qo/yj6xfUr9xKEiFSQYUDj7nBovesS4rm0ZBUXACbE9qjUzvYFBQUcOXIEh8PB0aNHWbhwIZMnT+bmm2/m7rvvLnOdl156ifr169O5c2csFguffvop0dHR7pabuLg4vv/+e6666irsdjvh4aVv4gEIDw8nMjKSt956i/r163PgwAEef/xxj2WGDx/Os88+y+DBg5k8eTL169fn119/pUGDBnTv3p24uDgSExNJSEigUaNGBAcH07dvX9q3b8+IESN45ZVXKC4u5qGHHqJ3795069atwudo27ZtFBYWkpqaSlZWFgkJCQDljsV1pvPTt29funfvzuDBg3n++edp0aIFhw8f5ptvvmHIkCF069atzGO6kGE+9GxHES8L8g1iULNBRPhFsDdjLw6ng679uvL/Pv1/Zd7VCK4ANumTSdTtURcfqw8Dmw6kbkBdL1cuUstFt4eIeFcH+rM9w9E0IS3RtXy9dpVaxsKFC6lfvz5xcXH079+fZcuWMXXqVObNm1fuHYDBwcE8//zzdOvWjcsuu4x9+/bx7bffYrG4PuZffPFFFi9eTExMDJ07dy533xaLhY8//pj169fTrl07JkyYwAsvvOCxjK+vL9999x1169blpptuon379kyZMsVd29ChQ+nfvz/XXHMNUVFRfPTRRxiGwbx58wgPD6dXr1707duXJk2aMGfOnPM6RzfddBOdO3fm66+/Zvny5XTu3PmMx3Wm82MYBt9++y29evVi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SEU5nZD8K+xbDcd2/D4MRcmvNcPVuuUfBo0uh7irIDyu+mqVSqXPE6mpFL6kUuQUFHM4PY+UrALyCh1YLBDq70u9EDsNQv2xaEgJqWollxWzkiHnBJgO14CsQfVcY4NpMNVaR58nUlPpsqNUikC7jeb1gmleL/jsC4tUBcOAkAaul4jIRUzXgERERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts1V2A1A5Z+UUcTMvjWFYBeUUOLIZBWIAP9YL9aBjuj9ViVHeJUtuZJmQegsxkyD0OTgfY7BBUF0JjICCiuisUEQEUvuQCHcnI56e9J1i/P5W0nEIcpmu6AZiAv4+FxhGBXNEkgm6xEfja1NgqlczpgEMbYN8PcHwnFOZ4zjcM8AuDhl0h7mqIbFotZYqIlFD4kvPidJr8uOcEC7YkcyyrgIhAX+IiA7FZT4Yr0zTJLXSQeDyHXSlZJCSlM6hTQxqG+Vdj5VKr5JyALZ/BgZ9dPwfVg9DGrsBVwumAvFTYvRiS1kDL/tC8H9h8q6dmEbnkKXxJhTmcJvM3HWbxtqP42ay0ig7GMEpfVjQMg0C7jXi7jfwiB5uSMjiWVcDd3eOIrxNYDZVLrZJ1BH55C47tgPA4sAeXvZzFCoFREFAHso/Cpk8g6yh0uct1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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=1\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1UUlEQVR4nO3dd3hUZf7+8feZmfRKQkIoIQm9dwsoRUUBkS+wrCKiAqKuCovCuqvsb1dX3RXUtSwWxEZREVRUEAUEaYKFZuhICxBqCOk9mTm/P8YMDEmAQDIh4X5d11yQUz/nMGTuec5znmOYpmkiIiIiIh5hqeoCRERERK4kCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNmzMAwDA4cOODR/cqF0b+PiNR0Cl9VLCEhgbFjx9KsWTP8/f3x9/enVatWjBkzhi1btlR1eVekAwcOYBjGBb3KCgixsbEYhkHv3r1Lnf/uu++6trFhw4ZKPJqLc75zMHny5Kou8Yoye/ZsXnvttaouQ0QqiK2qC7iSLVy4kKFDh2Kz2Rg+fDjt27fHYrGwa9cuvvjiC6ZOnUpCQgIxMTFVXWql+e2337BYLq/vABEREXz44Ydu015++WUOHz7Mq6++WmLZsvj6+rJixQqOHz9OVFSU27yPP/4YX19f8vLyKq7wSjBs2DBuvfXWEtM7duxYafu85557uPPOO/Hx8am0fVQ3s2fPZtu2bTz22GNVXYqIVACFryqyb98+7rzzTmJiYvj++++pW7eu2/wXXniBt95667ILJmfKzs4mICDgkrZxOX7ABgQEcPfdd7tNmzNnDqmpqSWmn8t1113H+vXrmTt3Lo8++qhr+uHDh/nhhx8YPHgw8+bNq7C6K0OnTp3KdcwVwWq1YrVaz7mMaZrk5eXh5+fnoapERCrO5fvJXsO9+OKLZGdnM3369BLBC8BmszFu3Diio6Pdpu/atYs//vGPhIWF4evrS5cuXViwYIHbMsV9ZtauXcuECROIiIggICCAwYMHc/LkyRL7WrRoEd27dycgIICgoCD69+/P9u3b3ZYZOXIkgYGB7Nu3j1tvvZWgoCCGDx8OwA8//MDtt99Ow4YN8fHxITo6mvHjx5Obm3ve83B2n68LvcR3IecBYPv27dx44434+fnRoEED/v3vf+NwOM5bV0Xw9fXlD3/4A7Nnz3ab/sknn1CrVi369OlTYp0tW7YwcuRIGjVqhK+vL1FRUdx3332cOnXKtcz5Lgme6ZdffqFv376EhITg7+9Pz549Wbt2bYUeZ2xsLLfddhtr1qzh6quvxtfXl0aNGjFr1izXMhs2bMAwDGbOnFli/SVLlmAYBgsXLgRK7/NVvI8lS5bQpUsX/Pz8mDZtGgD79+/n9ttvJywsDH9/f6699lq++eYbt32sXLkSwzD49NNP+c9//kODBg3w9fXlpptuYu/evW7L9urVizZt2rBlyxZ69uyJv78/TZo04fPPPwdg1apVXHPNNfj5+dG8eXOWLVtW4piOHDnCfffdR506dfDx8aF169Z88MEHF1VTr169+Oabbzh48KDr3zg2NvYC/mVE5HKllq8qsnDhQpo0acI111xzwets376d6667jvr16/Pkk08SEBDAp59+yqBBg5g3bx6DBw92W/7Pf/4ztWrV4umnn+bAgQO89tprjB07lrlz57qW+fDDDxkxYgR9+vThhRdeICcnh6lTp3L99dfz66+/uv2SLyoqok+fPlx//fX897//xd/fH4DPPvuMnJwcHn74YcLDw1m3bh2vv/46hw8f5rPPPivXeTn7ch/AP/7xD5KSkggMDCzXeTh+/Dg33HADRUVFruXeeecdj7aW3HXXXdxyyy3s27ePxo0bA85LSH/84x/x8vIqsfzSpUvZv38/o0aNIioqiu3bt/POO++wfft2fv75ZwzDKPWyaGFhIePHj8fb29s1bfny5fTr14/OnTvz9NNPY7FYmD59OjfeeCM//PADV1999Xnrz8nJITk5ucT00NBQbLbTvz727t3LH//4R0aPHs2IESP44IMPGDlyJJ07d6Z169Z06dKFRo0a8emnnzJixAi3bc2dO7fMMHqm3377jWHDhvGnP/2JBx54gObNm3PixAm6detGTk4O48aNIzw8nJkzZ/J///d/fP755yX+T0yePBmLxcLjjz9Oeno6L774IsOHD+eXX35xWy41NZXbbruNO++8k9tvv52pU6dy55138vHHH/PYY4/x0EMPcdddd/HSSy/xxz/+kcTERIKCggA4ceIE1157LYZhMHbsWCIiIli0aBGjR48mIyOjxKXD89X0//7f/yM9Pd3tsnfx/wURqaZM8bj09HQTMAcNGlRiXmpqqnny5EnXKycnxzXvpptuMtu2bWvm5eW5pjkcDrNbt25m06ZNXdOmT59uAmbv3r1Nh8Phmj5+/HjTarWaaWlppmmaZmZmphkaGmo+8MADbjUcP37cDAkJcZs+YsQIEzCffPLJEjWfWWOxSZMmmYZhmAcPHnRNe/rpp82z33IxMTHmiBEjSqxf7MUXXzQBc9asWeU+D4899pgJmL/88otrWlJSkhkSEmICZkJCQpn7PVv//v3NmJiYC14+JibG7N+/v1lUVGRGRUWZzz33nGmaprljxw4TMFetWuX6d1q/fr1rvdLO5SeffGIC5urVq8vc3yOPPGJarVZz+fLlpmk6z0fTpk3NPn36uL0HcnJyzLi4OPPmm28+Z/0JCQkmUObrp59+cjvWs+tLSkoyfXx8zL/85S+uaRMnTjS9vLzMlJQU17T8/HwzNDTUvO+++1zTis/Lmf8+xftYvHixW53F/8Y//PCDa1pmZqYZFxdnxsbGmna73TRN01yxYoUJmC1btjTz8/Ndy/7vf/8zAXPr1q2uaT179jQBc/bs2a5pu3btMgHTYrGYP//8s2v6kiVLTMCcPn26a9ro0aPNunXrmsnJyW613nnnnWZISIjr37g8NZX3/ScilzdddqwCGRkZQOnfXnv16kVERITr9eabbwKQkpLC8uXLueOOO8jMzCQ5OZnk5GROnTpFnz592LNnD0eOHHHb1oMPPuh2Gap79+7Y7XYOHjwIOFtZ0tLSGDZsmGt7ycnJWK1WrrnmGlasWFGivocffrjEtDNbkrKzs0lOTqZbt26Ypsmvv/56EWfIacWKFUycOJE///nP3HPPPeU+D99++y3XXnutWwtPRESE63KpJ1itVu644w4++eQTwNnRPjo6mu7du5e6/JnnMi8vj+TkZK699loANm3aVOo6s2bN4q233uLFF1/khhtuACA+Pp49e/Zw1113cerUKdd5ys7O5qabbmL16tUXdPn1wQcfZOnSpSVerVq1cluuVatWbscUERFB8+bN2b9/v2va0KFDKSws5IsvvnBN++6770hLS2Po0KHnrSUuLq5E69i3337L1VdfzfXXX++aFhgYyIMPPsiBAwfYsWOH2/KjRo1yax0srvnMOou3ceedd7p+bt68OaGhobRs2dKttbr478Xrm6bJvHnzGDBgAKZpuv2/6tOnD+np6SX+HS+0JhGpOXTZsQoUX57IysoqMW/atGlkZmZy4sQJt47Oe/fuxTRN/vnPf/LPf/6z1O0mJSVRv359188NGzZ0m1+rVi3AeUkFYM+ePQDceOONpW4vODjY7WebzUaDBg1KLHfo0CGeeuopFixY4Np2sfT09FK3fT6HDx9m6NChXHfddbzyyiuu6eU5DwcPHiz1sm7z5s0vqqazpaenu/Vr8/b2JiwsrMRyd911F1OmTGHz5s3Mnj2bO++8s0TfrGIpKSk888wzzJkzh6SkpBL7O1t8fDwPPfQQw4YNY8KECa7pxf+2Z1/iO3t7xe+JsjRt2rTM4TLOdPZ7DZzvtzPfD+3bt6dFixbMnTuX0aNHA85LjrVr1y7zPXimuLi4EtPK+jdu2bKla36bNm3KrPPs/xPFGjRoUOLfKCQkpEQfzJCQELf1T548SVpaGu+88w7vvPNOqcdx9r/rhdYkIjWHwlcVCAkJoW7dumzbtq3EvOIPkrPHjypupXj88cfL7BvTpEkTt5/LumPMNE23bX744YclhkIA3Pr0gPPOxLPvvrTb7dx8882kpKTwxBNP0KJFCwICAjhy5AgjR468qM7tBQUF/PGPf8THx4dPP/3UrY6LOQ+V5dFHH3XrQN6zZ09WrlxZYrlrrrmGxo0b89hjj5GQkMBdd91V5jbvuOMOfvzxR/7617/SoUMHAgMDcTgc9O3bt8S5TE1NZciQITRr1oz33nvPbV7xsi+99BIdOnQodV8V2W/ofO+1YkOHDuU///kPycnJBAUFsWDBAoYNG1bivVaaiuird6F1lrXchf6fuvvuu8sMvu3atbuomkSk5lD4qiL9+/fnvffeY926dRfU8blRo0YAeHl5XVBLxIUo7gAeGRl50dvcunUru3fvZubMmdx7772u6UuXLr3ousaNG0d8fDyrV6+mTp06bvPKcx5iYmJcLUBn+u233y66tjP97W9/c2udPFcr0rBhw/j3v/9Ny5YtywxDqampfP/99zzzzDM89dRTrumlHYPD4WD48OGkpaWxbNky180PxYr/bYODgyvs/VIRhg4dyjPPPMO8efOoU6cOGRkZbpf3yismJqbUf89du3a55ntSREQEQUFB2O32Cj3vZbWUikj1pD5fVeRvf/sb/v7+3HfffZw4caLE/LO/9UZGRtKrVy+mTZvGsWPHSixf2hAS59OnTx+Cg4N5/vnnKSwsvKhtFn9rP7Ne0zT53//+V+56AKZPn860adN48803Sw2l5TkPt956Kz///DPr1q1zm//xxx9fVG1na9WqFb1793a9OnfuXOay999/P08//TQvv/xymcuUdi6BUkc2f+aZZ1iyZAmffPJJqZfjOnfuTOPGjfnvf/9b6uXti3m/VISWLVvStm1b5s6dy9y5c6lbty49evS46O3deuutrFu3jp9++sk1LTs7m3feeYfY2NgSfdMqm9VqZciQIcybN6/Ulu2LPe8BAQEXfQlfRC4/avmqIk2bNmX27NkMGzaM5s2bu0a4N02ThIQEZs+ejcVicetj9eabb3L99dfTtm1bHnjgARo1asSJEyf46aefOHz4MJs3by5XDcHBwUydOpV77rmHTp06ceeddxIREcGhQ4f45ptvuO6663jjjTfOuY0WLVrQuHFjHn/8cY4cOUJwcDDz5s27qP4qycnJPPLII7Rq1QofHx8++ugjt/mDBw8mICDggs/D3/72Nz788EP69u3Lo48+6hpqIiYmxuOPboqJieFf//rXOZcJDg6mR48evPjiixQWFlK/fn2+++47EhIS3JbbunUrzz33HD169CApKanEebr77ruxWCy899579OvXj9atWzNq1Cjq16/PkSNHWLFiBcHBwXz99dfnrXvTpk0ltg/OlrWuXbue/8BLMXToUJ566il8fX0ZPXr0JQ0k/OSTT/LJJ5/Qr18/xo0bR1hYGDNnziQhIYF58+ZVySDFkydPZsWKFVxzzTU88MADtGrVipSUFDZt2sSyZctISUkp9zY7d+7M3LlzmTBhAldddRWBgYEMGDCgEqoXEU9Q+KpCAwcOZOvWrbz88st89913fPDBBxiGQUxMDP379+ehhx6iffv2ruVbtWrFhg0beOaZZ5gxYwanTp0iMjKSjh07ul2mKo+77rqLevXqMXnyZF566SXy8/OpX78+3bt3Z9SoUedd38vLi6+//ppx48YxadIkfH19GTx4MGPHjnWr/UJkZWWRl5fHjh07XHc3nikhIYGAgIALPg9169ZlxYoV/PnPf2by5MmEh4fz0EMPUa9ePVeH78vN7Nmz+fOf/8ybb76JaZrccsstLFq0iHr16rmWOXXqFKZpsmrVKlatWlViG8WXQnv16sVPP/3E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iIiUYs0a+MMfIDAQoqKcf/7hD7B2beXu19fXlxdeeIHU1NTK3dFFioiIwN/fv6rLqNYUvkRERM4ydSr06AFff+18rCM4//z6a+je3fnc7crSu3dvoqKimDRpUpnLrFmzhu7du+Pn50d0dDTjxo0jOzvbNf/YsWP0798fPz8/4uLimD17donLha+88gpt27YlICCA6OhoHnnkEbKysgDnc5tHjRpFeno6hmFgGAb/+te/APfLjnfddRdDhw51q62wsJDatWsza9YsABwOB5MmTSIuLg4/Pz/at2/P559/XgFnqvpS+BIRETnDmjUwZgyYJhQVuc8rKnJOf+SRymsBs1qtPP/887z++uscPny4xPx9+/bRt29fhgwZwpYtW5g7dy5r1qxh7NixrmXuvfdejh49ysqVK5k3bx7vvPMOSUlJbtuxWCxMmTKF7du3M3PmTJYvX87f/vY3ALp168Zrr71GcHAwx44d49ixYzz++OMlahk+fDhff/21K7QBLFmyhJycHAYPHgzApEmTmDVrFm+//Tbbt29n/Pjx3H333axatapCzle1ZHpYenq6CZjp6eme3rWIiNQgZX2e5Obmmjt27DBzc3MvaruDB5umzWaazphV+stmM80hQyriKNyNGDHCHDhwoGmapnnttdea9913n2mapvnll1+axR/Zo0ePNh988EG39X744QfTYrGYubm55s6dO03AXL9+vWv+nj17TMB89dVXy9z3Z599ZoaHh7t+nj59uhkSElJiuZiYGNd2CgsLzdq1a5uzZs1yzR82bJg5dOhQ0zRNMy8vz/T39zd//PFHt22MHj3aHDZs2LlPRjVTnvedBlkVERH5XW4uzJ9/+lJjWYqK4MsvnctX1vO2X3jhBW688cYSLU6bN29my5YtfPzxx65ppmnicDhISEhg9+7d2Gw2OnXq5JrfpEkTatWq5badZcuWMWnSJHbt2kVGRgZFRUXk5eWRk5NzwX26bDYbd9xxBx9//DH33HMP2dnZzJ8/nzlz5gCwd+9ecnJyuPnmm93WKygooGPHjuU6HzWJwpeIiMjvMjLOH7yKORzO5SsrfPXo0YM+ffowceJERo4c6ZqelZXFn/70J8aNG1dinYYNG7J79+7zbvvAgQPcdtttPPzww/znP/8hLCyMNWvWMHr0aAoKCsrVoX748OH07NmTpKQkli5dip+fH3379nXVCvDNN99Qv359t/V8fHwueB81jcKXiIjI74KDwWK5sABmsTiXr0yTJ0+mQ4cONG/e3DWtU6dO7NixgyZNmpS6TvPmzSkqKuLXX3+lc+fOgLMF6sy7Jzdu3IjD4eDll1/GYnF2//7000/dtuPt7Y3dbj9vjd26dSM6Opq5c+eyaNEibr/9dry8vABo1aoVPj4+HDp0iJ49e5bv4GswhS8REZHf+fnBwIHOuxrP7mx/JpvNuVxltXoVa9u2LcOHD2fKlCmuaU888QTXXnstY8eO5f777ycgIIAdO3awdOlS3njjDVq0aEHv3r158MEHmTp1Kl5eXvzlL3/Bz8/PNVZYkyZNKCws5PXXX2fAgAGsXbuWt8+6hTM2NpasrCy+//572rdvj7+/f5ktYnfddRdvv/02u3fvZsWKFa7pQUFBPP7444wfPx6Hw8H1119Peno6a9euJTg4mBEjRlTCWbv86W5HERGRM0yYAOdr8LHbYfx4z9Tz7LPP4jijKa5du3asWrWK3bt30717dzp27MhTTz1FvXr1XMvMmjWLOnXq0KNHDwYPHswDDzxAUFAQvr6+ALRv355XXnmFF154gTZt2vDxxx+XGNqiW7duPPTQQwwdOpSIiAhefPHFMmscPnw4O3bsoH79+lx33XVu85577jn++c9/MmnSJFq2bEnfvn355ptviIuLq4jTUy0ZpmmantxhRkYGISEhpKenE1zZ7bUiIlJjlfV5kpeXR0JCAnFxca6wUV5vv+0cTsJqdW8Bs9mcweutt+Chhy71CDzn8OHDREdHs2zZMm666aaqLqdGKs/7Ti1fIiIiZ3noIfjhB+elxd+7RGGxOH/+4YfLP3gtX76cBQsWkJCQwI8//sidd95JbGwsPXr0qOrSBPX5EhERKdV11zlfubnOuxqDgyu/j1dFKSws5O9//zv79+8nKCiIbt268fHHH7s6wkvVUvgSERE5Bz+/6hO6ivXp04c+ffpUdRlSBl12FBEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEg3e0oIiICHMw4SHZhdrnXC/AKICY4phIqkppK4UtERK54BzMOctuXt130+gsHL1QAkwumy44iInLFu5gWr4pc/2w//fQTVquV/v37V+h2L9SBAwcwDIP4+Pgq2X9Np/AlIiJymXn//ff585//zOrVqzl69GhVlyMVTOFLRETkMpKVlcXcuXN5+OGH6d+/PzNmzHCbv2DBApo2bYqvry833HADM2fOxDAM0tLSXMusWbOG7t274+fnR3R0NOPGjSM7+3TrXGxsLM8//zz33XcfQUFBNGzYkHfeecc1Py4uDoCOHTtiGAa9evWqzEO+4ih8iYiIXEY+/fRTWrRoQfPmzbn77rv54IMPME0TgISEBP74xz8yaNAgNm/ezJ/+9Cf+3//7f27r79u3j759+zJkyBC2bNnC3LlzWbNmDWPHjnVb7uWXX6ZLly78+uuvPPLIIzz88MP89ttvAKxbtw6AZcuWcezYMb744gsPHPmVQ+FLRETkMvL+++9z9913A9C3b1/S09NZtWoVANOmTaN58+a89NJLNG/enDvvvJORI0e6rT9p0iSGDx/OY489RtOmTenWrRtTpkxh1qxZ5OXluZa79dZbeeSRR2jSpAlPPPEEtWvXZsWKFQBEREQAEB4eTlRUFGFhYR448iuHwpeIiMhl4rfffmPdunUMGzYMAJvNxtChQ3n//fdd86+66iq3da6++mq3nzdv3syMGTMIDAx0vfr06YPD4SAhIcG1XLt27Vx/NwyDqKgokpKSKuvQ5AwaakJEROQy8f7771NUVES9evVc00zTxMfHhzfeeOOCtpGVlcWf/vQnxo0bV2Jew4YNXX/38vJym2cYBg6H4yIrl/JQ+BIREbkMFBUVMWvWLF5++WVuueUWt3mDBg3ik08+oXnz5nz77bdu89avX+/2c6dOndixYwdNmjS56Fq8vb0BsNvtF70NKZvCl4iIyGVg4cKFpKamMnr0aEJCQtzmDRkyhPfff59PP/2UV155hSeeeILRo0cTHx/vuhvSMAwAnnjiCa699lrGjh3L/fffT0BAADt27GDp0qUX3HoWGRmJn58fixcvpkGDBvj6+paoSS6e+nyJiIhcBt5//3169+5dasgZMmQIGzZsIDMzk88//5wvvviCdu3aMXXqVNfdjj4+PoCzL9eqVavYvXs33bt3p2PHjjz11FNulzLPx2azMWXKFKZNm0a9evUYOHBgxRykAGCYxfevekhGRgYhISGkp6cTHBzsyV2LiEgNUtbnSV5eHgkJCcTFxeHr63tB29pxagdDFw696Frm3jaXVuGtLnr9S/Gf//yHt99+m8TExCrZvziV532ny44iIiLV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RETkiudl8cJqsVJkFp1/4TPYTef4X16WC7tUeSl27txJXFxcqfM6depEQkICixYtYtmyZdxxxx307t2bzz///JzbDAgIKDFtwIABxMTE8O6771KvXj0cDgdt2rRxdYD386u8Fr7S6inLqlWrGDBgAK+++ir33nvvOZft168fBw8e5Ntvv2Xp0qXcdNNNjBkzhv/+979kZWXRuXPnUu+YLE8QLA+1fImIyBXP1+pLdFA0aflp5VovNT+V6KBofK2ldw6vKMuXL2fr1q0lLgmeKTg4mKFDh/Luu+8yd+5c5s2bR0pKCgBeXl7Y7fbz7ufUqVP89ttv/OMf/+Cmm26iZcuWpKamui3Trl074uPjXds+m7e3d4l9tWzZ0q0fGsCOHTtIS0ujVatW563rbCtXrqR///688MILPPjggxe0TkREBCNGjOCjjz7itdde45133gGcwXXPnj1ERkbSpEkTt1dISEiZx3QpFL5EROSKZxgGnep0wjRNCu0XdgmxwF4AJnSu07lCO9vn5+dz/Phxjhw5wqZNm3j++ecZOHAgt912W5ktPK+88gqffPIJu3btYvfu3Xz22WdERUURGhoKOPs4ff/99xw/frxEmDpTrVq1CA8P55133mHv3r0sX76cCRMmuC0zbNgwoqKiGDRoEGvXrmX//v3MmzePn376ybWvhIQE4uPjSU5OJj8/n969e9O2bVuGDx/Opk2bWLduHffeey89e/Z09cO6UCtWrKB///6MGzeOIUOGcPz4cY4fP15mGAR46qmnmD9/Pnv37mX79u0sXLjQ1UF/+PDh1K5dm4EDB/LDDz+QkJDAypUrGTduHIcPH3Yd05YtW/jtt99ITk6msPDSLjMrfImIiAAtwloQHRTNwcyDmKZ5zmVN0+RQ5iGig6JpHta8QutYvHgxdevWJTY2lr59+7JixQqmTJnC/Pnzy7wDMCgoiBdffJEuXbpw1VVXceDAAb799lssFufH/Msvv8zSpUuJjo6mY8eOZe7bYrEwZ84cNm7cSJs2bRg/fjwvvfSS2zLe3t589913REZGcuutt9K2bVsmT57sqm3IkCH07duXG264gYiICD755BMMw2D+/PnUqlWLHj160Lt3bxo1asTcuXPLfX5mzpxJTk4OkyZNom7duq7XH/7whzLX8fb2ZuLEibRr144ePXpgtVqZM2cOAP7+/qxe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XK24yqlTRKQM5Q5fWVlZxMfHEx8fD0BCQgLx8fEcOqSRomu68EAfOkSHcjIr/5L7a/l6WejYUJd75CLU6wj+4c7HBBVrGwuPDXT+/ewWsOKfHxvoPtBqxhGIaA5hesyViHhWue923LBhAzfccIPr5wkTJgAwYsQIZsyYUWGFyeWpe7MIthxOJzkr//wLn0PLusHEhQecf0GRswVGQOObYOunzv5att8vXf/fNdAoyjmcxNod7iPc3369e/DKTnbe6disL1h0AUBEPKvc4atXr14aGPMKVj/Uj75tonh//Z5L2s71TWpj0SVHuVhNb4aTu5wj1NduDtbf+3G1iXG+8guddzUG+J7u41UsPwOyT0CrgVCntedrF5Ernr7ySbld36Q2vZpe2pAhdYNDK6YYuTJ5+0OXURDREpJ/cz7v8Uw+XhAW5B68TNP5WKL0I86Ws5YD9UxHEakShunhZqyMjAxCQkJIT0/XnY/VmMNhMn/HZpb/lsiprHyCfb0I9vPC64z+NiYmeQV2UnIKcJgmTSOD6NU8koa1ahETHHOOrYtcoJwU2PYFHPrReediYB3wDQbjjO+V9kLITYHsk+AXBs37QZPeYNPgvtWdPk+kulL4kkuSlJHHL/tTWH8whZTsAoocptv4l35eVmJrB3BNXBidYmq5hTORCuFwwLFf4cBa56XI/CxOD5xqOFu3/EKhwdUQex3Uiq26WqVC6fNEqiuFL6kQ2flFHE3LJSkzn9wCOxYLhPh5UyfYh3ohfurfJZWv+LJi5jHIPgWm3Tkga2Ad59hgGky1xtHniVRXlf5sR7kyBPjYaFoniKZ1gs6/sEhlMAwIrud8iYhcxnQNSERERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSD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SUl06tTJNc1ut7N69WreeOMN8vPzsVqtVVihSM2gPl84f1l37tyZ77//3jXN4XDw/fffq6+IeIxpmowdO5Yvv/yS5cuXExcXV9Ul1QgOh4P8/PyqLqNauOmmm9i6dSvx8fGuV5cuXRg+fDjx8fEKXiIVRC1fv5swYQIjRoygS5cuXH311bz22mtkZ2czatSoqi6t2sjKymLv3r2unxMSEoiPjycsLIyGDRtWYWXVw5gxY5g9ezbz588nKCiI48ePAxASEoKfn18VV1c9TJw4kX79+tGwYUMyMzOZPXs2K1euZMmSJVVdWrUQFBRUoo9hQEAA4eHh6nsoUoEUvn43dOhQTp48yVNPPcXx48fp0KEDixcvLtEJX8q2YcMGbrjhBtfPEyZMAGDEiBHMmDGjiqqqPqZOnQpAr1693KZPnz6dkSNHer6gaigpKYl7772XY8eOERISQrt27ViyZAk333xzVZcmIuKicb5EREREPEh9vkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIP+PwnZevpuNAioAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=2\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB23ElEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zQU79nMOQuec5z3mOYZqmiYiIiIh4haW6CxARERG5lCh8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8idf885//xDAMj2lxcXGMGjXKq3XMnDkTwzDYt2+fV/cr50b/PiJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7/43j4uLO4V9GRC5WavmqJvPnz6dZs2ZcccUV57zO1q1bueqqq2jYsCGPP/44gYGBfPLJJwwePJi5c+cyZMgQj+X/9Kc/ER4ezpNPPsm+fft45ZVXGDduHHPmzHEv8/777zNy5Ej69evHc889R25uLtOmTePqq6/m119/9fglX1xcTL9+/bj66qv5z3/+Q0BAAACffvopubm5PPjgg0RGRrJmzRpeffVVDh48yKefflqh83L65T6Av//976SkpBAUFFSh83DkyBGuueYaiouL3cu99dZbXm0tueOOO7jhhhvYs2cPTZs2BVyXkG655RZ8fHxKLb948WL27t3L6NGjiY6OZuvWrbz11lts3bqVn3/+GcMwyrwsWlRUxIQJE/D19XVPW7p0KTfeeCNdu3blySefxGKxMGPGDK699lp++OEHLr/88rPWn5uby/Hjx0tNDwsLw2Y7+etj9+7d3HLLLYwZM4aRI0fy7rvvMmrUKLp27Urbtm3p1q0bTZo04ZNPPmHkyJEe25ozZ065YfRUv/32G8OHD+ePf/wj9913Hy1btuTo0aP06NGD3Nxcxo8fT2RkJO+99x7/93//x2effVbq/8SUKVOwWCw8+uijZGRk8PzzzzNixAh++eUXj+XS0tK4+eabuf3227n11luZNm0at99+Ox9++CGPPPIIDzzwAHfccQcvvPACt9xyC0lJSQQHBwNw9OhRrrzySgzDYNy4cURFRbFgwQLGjBlDZmZmqUuHZ6vp//2//0dGRobHZe+S/wsiUkOZ4nUZGRkmYA4ePLjUvLS0NPPYsWPuV25urnveddddZ7Zv397Mz893T3M6nWaPHj3M5s2bu6fNmDHDBMy+ffuaTqfTPX3ChAmm1Wo109PTTdM0zaysLDMsLMy87777PGo4cuSIGRoa6jF95MiRJmA+/vjjpWo+tcYSkydPNg3DMPfv3++e9uSTT5qnv+ViY2PNkSNHllq/xPPPP28C5qxZsyp8Hh555BETMH/55Rf3tJSUFDM0NNQEzMTExHL3e7oBAwaYsbGx57x8bGysOWDAALO4uNiMjo42n3nmGdM0TXPbtm0mYK5YscL977R27Vr3emWdy48++sgEzJUrV5a7v4ceesi0Wq3m0qVLTdN0nY/mzZub/fr183gP5ObmmvHx8eb1119/xvoTExNNoNzXTz/95HGsp9eXkpJi2u12889//rN72qRJk0wfHx8zNTXVPa2goMAMCwsz77nnHve0kvNy6r9PyT4WLlzoUWfJv/EPP/zgnpaVlWXGx8ebcXFxpsPhME3TNJctW2YCZuvWrc2CggL3sv/9739NwNy8ebN7Wu/evU3AnD17tnvajh07TMC0WCzmzz//7J6+aNEiEzBnzJjhnjZmzBizfv365vHjxz1qvf32283Q0FD3v3FFaqro+09ELm667FgNMjMzgbK/vfbp04eoqCj36/XXXwcgNTWVpUuXctttt5GVlcXx48c5fvw4J06coF+/fuzatYtDhw55bOv+++/3uAzVs2dPHA4H+/fvB1ytLOnp6QwfPty9vePHj2O1WrniiitYtmxZqfoefPDBUtNObUnKycnh+PHj9OjRA9M0+fXXX8/jDLksW7aMSZMm8ac//Ym77rqrwufh22+/5corr/Ro4YmKinJfLvUGq9XKbbfdxkcffQS4OtrHxMTQs2fPMpc/9Vzm5+dz/PhxrrzySgA2bNhQ5jqzZs3ijTfe4Pnnn+eaa64BICEhgV27dnHHHXdw4sQJ93nKycnhuuuuY+XKled0+fX+++9n8eLFpV5t2rTxWK5NmzYexxQVFUXLli3Zu3eve9qwYcMoKiri888/d0/77rvvSE9PZ9iwYWetJT4+vlTr2Lfffsvll1/O1Vdf7Z4WFBTE/fffz759+9i2bZvH8qNHj/ZoHSyp+dQ6S7Zx++23u39u2bIlYWFhtG7d2qO1uuTvJeubpsncuXMZOHAgpml6/L/q168fGRkZpf4dz7UmEak9dNmxGpRcnsjOzi41b/r06WRlZXH06FGPjs67d+/GNE3+8Y9/8I9//KPM7aakpNCwYUP3z40bN/aYHx4eDrguqQDs2rULgGuvvbbM7YWEhHj8bLPZaNSoUanlDhw4wBNPPMFXX33l3naJjIyMMrd9NgcPHmTYsGFcddVVvPTSS+7pFTkP+/fvL/OybsuWLc+rptNlZGR49Gvz9fUlIiKi1HJ33HEHU6dOZePGjcyePZvbb7+9VN+sEqmpqTz11FN8/PHHpKSklNrf6RISEnjggQcYPnw4EydOdE8v+bc9/RLf6dsreU+Up3nz5uUOl3Gq099r4Hq/nfp+6NixI61atWLOnDmMGTMGcF1yrFOnTrnvwVPFx8eXmlbev3Hr1q3d89u1a1dunaf/nyjRqFGjUv9GoaGhpfpghoaGeqx/7Ngx0tPTeeutt3jrrbfKPI7T/13PtSYRqT0UvqpBaGgo9evXZ8uWLaXmlXyQnD5+VEkrxaOPPlpu35hmzZp5/FzeHWOmaXps8/333y81FALg0acHXHcmnn73pcPh4Prrryc1NZXHHnuMVq1aERgYyKFDhxg1atR5dW4vLCzklltuwW6388knn3jUcT7noao8/PDDHh3Ie/fuzfLly0std8UVV9C0aVMeeeQREhMTueOOO8rd5m233caPP/7IX/7yFzp16kRQUBBOp5P+/fuXOpdpaWkMHTqUFi1a8L///c9jXsmyL7zwAp06dSpzX5XZb+hs77USw4YN49///jfHjx8nODiYr776iuHDh5d6r5WlMvrqnWud5S13rv+n7rzzznKDb4cOHc6rJhGpPRS+qsmAAQP43//+x5o1a86p43OTJk0A8PHxOaeWiHNR0gG8bt26573NzZs3s3PnTt577z3uvvtu9/TFixefd13jx48nISGBlStXUq9ePY95FTkPsbGx7hagU/3222/nXdup/vrXv3q0Tp6pFWn48OH861//onXr1uWGobS0NL7//nueeuopnnjiCff0so7B6XQyYsQI0tPTWbJkifvmhxIl/7YhISGV9n6pDMOGDeOpp55i7ty51KtXj8zMTI/LexUVGxtb5r/njh073PO9KSoqiuDgYBwOR6We9/JaSkWkZlKfr2ry17/+lYCAAO655x6OHj1aav7p33rr1q1Lnz59mD59OsnJyaWWL2sIibPp168fISEhPPvssxQVFZ3XNku+tZ9ar2ma/Pe//61wPQAzZsxg+vTpvP7662WG0oqch5tuuomff/6ZNWvWeMz/8MMPz6u207Vp04a+ffu6X127di132XvvvZcnn3ySF198sdxlyjqXQJkjmz/11FMsWrSIjz76qMzLcV27dqVp06b85z//KfPy9vm8XypD69atad++PXPmzGHOnDnUr1+fXr16nff2brrpJtasWcNPP/3knpaTk8Nbb71FXFxcqb5pVc1qtTJ06FDmzp1bZsv2+Z73wMDA876ELyIXH7V8VZPmzZsze/Zshg8fTsuWLd0j3JumSWJiIrNnz8ZisXj0sXr99de5+uqrad++Pffddx9NmjTh6NGj/PTTTxw8eJCNGzdWqIaQkBCmTZvGXXfdRZcuXbj99tuJioriwIEDfPPNN1x11VW89tprZ9xGq1ataNq0KY8++iiHDh0iJCSEuXPnnld/lePHj/PQQw/Rpk0b7HY7H3zwgcf8IUOGEBgYeM7n4a9//Svvv/8+/fv35+GHH3YPNREbG+v1RzfFxsbyz3/+84zLhISE0KtXL55//nmKiopo2LAh3333HYmJiR7Lbd68mWeeeYZevXqRkpJS6jzdeeedWCwW/ve//3HjjTfStm1bRo8eTcOGDTl06BDLli0jJCSEr7/++qx1b9iwodT2wdWy1r1797MfeBmGDRvGE088gZ+fH2PGjLmggYQff/xxPvroI2688UbGjx9PREQE7733HomJicydO7daBimeMmUKy5Yt44orruC+++6jTZs2pKamsmHDBpYsWUJqamqFt9m1a1fmzJnDxIkTueyyywgKCmLgwIFVUL2IeIPCVzUaNGgQmzdv5sUXX+S7777j3XffxTAMYmNjGTBgAA888AAdO3Z0L9+mTRvWrVvHU089xcyZMzlx4gR169alc+fOHpepKuKOO+6gQYMGTJkyhRdeeIGCggIaNmxIz549GT169FnX9/Hx4euvv2b8+PFMnjwZPz8/hgwZwrhx4zxqPxfZ2dnk5+ezbds2992Np0pMTCQwMPCcz0P9+vVZtmwZf/rTn5gyZQqRkZE88MADNGjQwN3h+2Ize/Zs/vSnP/H6669jmiY33HADCxYsoEGDBu5lTpw4gWmarFixghUrVpTaRsml0D59+vDTTz/xzDPP8Nprr5GdnU10dDRXXHEFf/zjH8+pno8++sh9p+apRo4ceUHh6+9//zu5ubnndJfjmdSrV48ff/yRxx57jFdffZX8/Hw6dOjA119/zYABAy5o2xdS05o1a3j66af5/PPPeeONN4iMjKRt27Y899xz57XNhx56iISEBGbMmMHLL79MbGyswpdIDWaY6tUpIiIi4jXq8yUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl6k8CUiIiLiRQpfIiIiIl7k9XG+nE4nhw8fJjg4WI/MEBGR82aaJllZWTRo0KBaBtQVOV9eD1+HDx8mJibG27sVEZFaKikpyeNpICIXO6+Hr+DgYMD1nyUkJMTbuxcRkVoiMzOTmJgY9+eKSE3h9fBVcqkxJCRE4UtERC6YurBITaOL5CIiIiJepPAlIiIi4kUKXyIiIiJe5PU+XyIiIt7icDgoKiqq7jKklvPx8cFqtZ7z8gpfIiJS65imyZEjR0hPT6/uUuQSERYWRnR09DndAKLwJSIitU5J8Kpbty4BAQG6I1KqjGma5ObmkpKSAkD9+vXPuo7Cl4iI1CoOh8MdvCIjI6u7HLkE+Pv7A5CSkkLdunXPeglSHe5FRKRWKenjFRAQUM2VyKWk5P12Ln0MFb5ERKRW0qVG8aaKvN8UvkRERES8SOFLRERExIsUvkRERE5TWFh4QfMv1JEjR/jTn/5EkyZNsNvtxMTEMHDgQL7//vsq3a94h8KXiIjIKebMmUP79u1JSkoqc35SUhLt27dnzpw5VbL/ffv20bVrV5YuXcoLL7zA5s2bWbhwIddccw1jx46tkn2Kdyl8iYiI/K6wsJAnnniCnTt30qdPn1IBLCkpiT59+rBz506eeOKJKmkBe+ihhzAMgzVr1jB06FBatGhB27ZtmThxIj///DP79u3DMAwSEhLc66Snp2MYBsuXL3dP27JlCzfeeCNBQUHUq1ePu+66i+PHj1d6vVJxCl8iIiK/8/X1ZcmSJTRp0oS9e/d6BLCS4LV3716aNGnCkiVL8PX1rdT9p6amsnDhQsaOHUtgYGCp+WFhYee0nfT0dK699lo6d+7MunXrWLhwIUePHuW2226r1Hrl/Ch8iYiInCImJobly5d7BLAff/zRI3gtX76cmJiYSt/37t27MU2TVq1aXdB2XnvtNTp37syzzz5Lq1at6Ny5M++++y7Lli1j586dlVStnC+NcC8iInKakgBWEriuuuoqgCoNXuB6VE1l2LhxI8uWLSMoKKjUvD179tCiRYtK2Y+cH4UvERGRMsTExPD++++7gxfA+++/X2XBC6B58+YYhsGOHTvKXcZicV20OjWonT6qenZ2NgMHDuS5554rtf65PHtQqpYuO4qIiJQhKSmJu+66y2PaXXfdVe5dkJUhIiKCfv368frrr5OTk1Nqfnp6OlFRUQAkJye7p5/a+R6gS5cubN26lbi4OJo1a+bxKqsvmXiXwpeIiMhpTu9cv3r16jI74VeF119/HYfDweWXX87cuXPZtWsX27dvZ+rUqXTv3h1/f3+uvPJKpkyZwvbt21mxYgV///vfPbYxduxYUlNTGT58OGvXrmXPnj0sWrSI0aNH43A4qqx2OTcKXyIiIqc4PXgtX76cHj16lOqEX1UBrEmTJmzYsIFrrrmGP//5z7Rr147rr7+e77//nmnTpgHw7rvvUlxcTNeuXXnkkUf417/+5bGNBg0asHr1ahwOBzfccAPt27fnkUceISwszH3ZUqqPYVZW775zlJmZSWhoKBkZGYSEhHhz1yIiUouU93mSn59PYmIi8fHx+Pn5VWibhYWFtG/fnp07d5bZuf7UYNaiRQs2b95c6cNNSM1Ukfed4q+IiMjvfH19efrpp2nRokWZdzWW3AXZokULnn76aQUvOS+621FEROQUw4YNY8iQIeUGq5iYGLV4yQVRy5eIiMhpzhasFLzkQih8iYiIiHiRwpeIiIiIF6nPl1ww0zQ5lH2IQ9mHSMlNIbswG6vFSqR/JHX969IkrAmBPhrUT6pWfnE+iRmJpOSmcCzvGEWOIvx9/KkbUJf6gfWJDYnFYuj7pohUP4UvOW+mabIrfRerD61md9pucopzMDCwWWyYponDdGAYBnX869C1Xld6NOhBsG9wdZcttUx+cT4/J//M2iNrOZJzBIfpwGpYsRgWHKYD0zSxW+3EhcbRvUF32tdprxAmItVK4UvOS4GjgCX7lrD68GryHfnUC6hHg6AGGIbhsVyxs5gT+Sf4du+3bD2+lQFNBtAyomU1VS21TVJWEl/v+ZqdaTsJ8gmicXBjfKw+pZbLLcplT/oe9qbvpVt0N26Kv4kg39IPHBYR8QZ9/ZMKK3AUMHfnXBYfWEygTyDNwpoR7BtcKngB2Cw26gXUo2lYU5Jzkpm9fTZbjm+phqqlttmXsY8Ptn3ArrRdxIXE0SCoQZnBCyDAJ4D40Hgi/SNZfXg1H+34iKzCLC9XLCLiovAlFWKaJt/v/541R9bQKKgR4X7h57SezWIjLiSOAkcBX+z6gsPZh6u4UqnNMgoy+GzXZxzPO07TsKb4Ws/ttv9g32DiQuLYcnwLX+/5GqfprOJKRS4Oy5cvxzAM0tPTz7hcXFwcr7zyildqupQpfEmF7Enfw+rDq6njX4cAn4Ayl7HmF+J/IhNrfqHHdMMwiAmOITU/lQWJCyhyFnmjZKllTNNkyf4lJGUmERcSV2b/rcJ8K5kn/CnMt5aaZ7faaRjckF9TfiUhJcELFUuNl5cHR4+6/qxio0aNwjAMDMPA19eXZs2a8fTTT1NcXHxB2+3RowfJycmEhoYCMHPmTMLCwkott3btWu6///4L2pec3QX1+ZoyZQqTJk3i4YcfVlK+BJimyU/JP5FblEvDoIal5kf/upuOHywlfvkmLE4Tp8UgsU8HNt51HUc6NQVcAaxRcCO2p25nT/oeWkW08vZhSA2XnJPMrym/Ui+wHlaLZ7ja/Ws0Sz/oyKbl8ZhOC4bFSYc+iVx310aadjriXi7IJ4gTxgl+OPQD7aPa42Mp+3KlXOJWrYKXXoJ588DpBIsFBg2CP/8Zrrqqynbbv39/ZsyYQUFBAd9++y1jx47Fx8eHSZMmnfc2fX19iY6OPutyUVFR570POXfn3fK1du1apk+fTocOHSqzHrmIHc09ym+pv1E3oG6peW0/WcmQMS8Tv2IzFqfrWe0Wp0n8is0Muecl2n76g3tZf5s/TtOpVgc5L1uObyGrKItQ31CP6Ss/acvLY4aweYUreAGYTgubV8Tz0j1D+OHTth7L1wuox8Gsg+xN3+u12qUGmTYNevWCr792BS9w/fn119CzJ7z5ZpXt2m63Ex0dTWxsLA8++CB9+/blq6++Ii0tjbvvvpvw8HACAgK48cYb2bVrl3u9/fv3M3DgQMLDwwkMDKRt27Z8++23gOdlx+XLlzN69GgyMjLcrWz//Oc/Ac/LjnfccQfDhg3zqK2oqIg6deowa9as30+Jk8mTJxMfH4+/vz8dO3bks88+q7JzU1ucV/jKzs5mxIgRvP3224SHn1ufH6n5DmcfJqcohxDfEI/p0b/upteUORgmWByefWgsDieGCb0mf0x0wh739FDfUPam79WlR6mw3em7CbQFetzgsfvXaOZM6QWmgdPh+WvN6bCAafDx5F7sSTj5zd/P5kexs5jknGSv1S41xKpVMHYsmCacfrmvuNg1/aGHYPVqr5Tj7+9PYWEho0aNYt26dXz11Vf89NNPmKbJTTfdRFGR6/fo2LFjKSgoYOXKlWzevJnnnnuOoKDSd/X26NGDV155hZCQEJKTk0lOTubRRx8ttdyIESP4+uuvyc7Odk9btGgRubm5DBkyBIDJkycza9Ys3nzzTbZu3cqECRO48847WbFiRRWdjdrhvMLX2LFjGTBgAH379q3seuQidizvGECpuxo7frAU03Lmt5JpsdDxg6XunwN8AsguyuZE3onKL1RqrdyiXI7nHS/V33DpBx2xWMwzrmuxmCz9oKPHNJvFxqHsQ5Vep9RwL70E1tL9BT1YrfDyy1VahmmaLFmyhEWLFtG4cWO++uor/ve//9GzZ086duzIhx9+yKFDh/jyyy8BOHDgAFdddRXt27enSZMm3HzzzfTq1avUdn19fQkNDcUwDKKjo4mOji4zpPXr14/AwEC++OIL97TZs2fzf//3fwQHB1NQUMCzzz7Lu+++S79+/WjSpAmjRo3izjvvZPr06VV2XmqDCvf5+vjjj9mwYQNr1649p+ULCgooKChw/5yZmVnRXcpFIq84r1TwsuYXuvt4nYnF4SR+2Uas+YU4/HzxsfhQ7CymwFFwxvVETlXoKKTYWezxxITCfKu7j9eZOB0WNi6LpzDfiq+fAwAfiw/ZhdlnXE8uMXl5J/t4nUlxMXzxhWt5f/9KLWH+/PkEBQVRVFSE0+nkjjvu4A9/+APz58/niiuucC8XGRlJy5Yt2b59OwDjx4/nwQcf5LvvvqNv374MHTr0groG2Ww2brvtNj788EPuuusucnJymDdvHh9//DEAu3fvJjc3l+uvv95jvcLCQjp37nze+70UVKjlKykpiYcffpgPP/wQPz+/c1pn8uTJhIaGul8xMTHnVahUP6thhdMylm9O/lmDVwmL08Q3Jx9wfaMzDEMjjUuFGIaBgeExRER+ju9Zg1cJ02khP+fksBRO04nNorGm5RSZmWcPXiWcTtfyleyaa64hISGBXbt2kZeXx3vvvVfmOIqnu/fee9m7dy933XUXmzdvplu3brz66qsXVMuIESP4/vvvSUlJ4csvv8Tf35/+/fsDuC9HfvPNNyQkJLhf27ZtU7+vs6jQJ9/69etJSUmhS5cu2Gw2bDYbK1asYOrUqdhsNhwOR6l1Jk2aREZGhvuVlJRUacWLd4X7hWOelr4KA/1wWs7+SwHAaTEoDHSF9tziXPxt/oTZwyq7TKnFgn2DCfQJJK/45C3/foGFGJZz+7A0LE78Ak8OgVLgKCA68Ox3gMklJCTEdVfjubBYXMtXssDAQJo1a0bjxo2x2VxfDlq3bk1xcTG//PKLe7kTJ07w22+/0aZNG/e0mJgYHnjgAT7//HP+/Oc/8/bbb5e5D19f3zI/s0/Xo0cPYmJimDNnDh9++CG33norPj6uu4PbtGmD3W7nwIEDNGvWzOOlhpYzq9BXvuuuu47Nmzd7TBs9ejStWrXisccew1rGNXK73Y7dbr+wKuWiEOUfhdWwUugodA9q6fDzJbFPB9ddjo7yPwCdVguJfTrg8HOtl12UTcOghgT56BEvcu4shoXGIY1Zc2SNe5qvn4MOfRLZvCK+VGd7j3WtrmEnSi45lrSelXX3rlzC/P1dw0l8/XXpzvanstlcy1XyJcfyNG/enEGDBnHfffcxffp0goODefzxx2nYsCGDBg0C4JFHHuHGG2+kRYsWpKWlsWzZMlq3bl3m9uLi4sjOzub777+nY8eOBAQEEBBQ9tiNd9xxB2+++SY7d+5k2bJl7unBwcE8+uijTJgwAafTydVXX01GRgarV68mJCSEkSNHVv6JqCUq1PIVHBxMu3btPF6BgYFERkbSrl27qqpRLhJxoXFEB0a7O96X2HjntRhnaaY3nE423nkt4PrQyyvOo2NUx3NqShc5VZvINhgYFDpOtmBde+dGnM4zv5ecToNr79zo/jktP40wexjNw5pXWa1SQ02cCGdrFXI4YMIE79TzuxkzZtC1a1duvvlmunfvjmmafPvtt+6WKIfDwdixY2ndujX9+/enRYsWvPHGG2Vuq0ePHjzwwAMMGzaMqKgonn/++XL3O2LECLZt20bDhg256rTxzZ555hn+8Y9/MHnyZPd+v/nmG+Lj4yvvwGshwzTNc+uwU44+ffrQqVOncx5kNTMzk9DQUDIyMgipguZaqVorD67k812fExcS5/FIl7af/kCvyR9jWiweLWBOqwXD6WTlpNvZemtPwDVkhZ/Nj7Gdxp7z44lEShQ4Cngj4Q2Ss5OJC41zT//h07Z8PLkXFovp0QJmsTpxOg1un7SSnrduBcBhOtidtptrGl/D4GaDvXwEUlnK+zzJz88nMTGR+Pj4c+6fXMqbb7qGk7BaPVvAbDZX8HrjDXjggQs8AqlNKvK+u+CepsuXL7/QTUgNcln0ZWw5voXdabtpGtbU3XK19daenGjewDXC/bKNniPc33mte4T7nKIccotzGdBkgIKXnBe71c4NcTfw/tb3SctPc7+Pet66lQbNT7D0g45sXOY5wv21d54c4d40TZKykmgY1JA+jfpU45HIRe2BB6B9e9dwEl984TnC/YQJVTrCvdR+us1HKsTf5s/NTW7m/W3vk5iZ6PFsvSOdmnKkU1Os+YX45uRTGOjn7uMFruB1KPsQV9a/ksuiL6uuQ5BaoE1EG3o16sXi/YsxDMN940bTTkdo2ukIhflW8nN88QssdPfxAlfwOph9ELvVzoCmAwjzC6ueA5Ca4aqrXK+8PNddjSEhXuvjJbWb7vOXCmsc0pjbW91OlH8Uu9N3k1WY5THf4edLXmSIO3g5TAeHsw9zJOcI3et3Z3Czwbq9Xy6IYRjcEHcDfRv3JaMgg/2Z+yl2nrw05OvnICQyzyN45RXnsTt9N/42f25pcQttI9uWtWmR0vz9oV49BS+pNPoElPPSNKwp97a/l0X7FrH52GaSc5JdwwDYAvGx+mCaJnnFeWQXZVPgKKBuQF0GNh1I13pdFbykUtgsNm5qchMxITF8t/879mXuw2pYCfYNxt/mj8WwUOwsJrcol8zCTGwWG+3qtOPG+BtpENSgussXkUuYPgXlvEX6R3J7q9vp3qA7m45tYmfaTrIKsygqLMLAwM/mR5PQJrSPak/byLaE2kPPvlGRCjAMgw5RHWgW1oztqdvZdGwTh7IOkZ6fjhMnNsNGkG8Q7aLa0aFOB5qGNVX4F5Fqp99CckEshoX40HjiQ+Nxmk7SC9IpKC7AMAxC7aH429RML1UvwCeArvW60rVeVwocBa7wZTrxsfoQbg/HajnLc/pERLxI4UsqjcWwEOEXUd1lyCXObrVTL7BedZchIlIudbgXERER8SKFLxEREREvUvgSERGRcxYXF3fOT7WRsil8iYiInEFeHhw96vqzqo0aNQrDMJgyZYrH9C+//NLrz8KdOXMmYWFhpaavXbuW+++/36u11DYKXyIiImVYtQr+8AcICoLoaNeff/gDrF5dtfv18/PjueeeIy0trWp3dJ6ioqIICAio7jJqNIUvERGR00ybBr16wddfux7rCK4/v/4aevZ0PXe7qvTt25fo6GgmT55c7jKrVq2iZ8+e+Pv7ExMTw/jx48nJyXHPT05OZsCAAfj7+xMfH8/s2bNLXS586aWXaN++PYGBgcTExPDQQw+RnZ0NuJ7bPHr0aDIyMjAMA8Mw+Oc//wl4Xna84447GDZsmEdtRUVF1KlTh1mzZgHgdDqZPHky8fHx+Pv707FjRz777LNKOFM1l8KXiIjIKVatgrFjwTShuNhzXnGxa/pDD1VdC5jVauXZZ5/l1Vdf5eDBg6Xm79mzh/79+zN06FA2bdrEnDlzWLVqFePGjXMvc/fdd3P48GGWL1/O3Llzeeutt0hJSfHYjsViYerUqWzdupX33nuPpUuX8te//hWAHj168MorrxASEkJycjLJyck8+uijpWoZMWIEX3/9tTu0ASxatIjc3FyGDBkCwOTJk5k1axZvvvkmW7duZcKECdx5552sWLGiUs5XjWR6WUZGhgmYGRkZ3t61iIjUIuV9nuTl5Znbtm0z8/Lyzmu7Q4aYps1mmq6YVfbLZjPNoUMr4yg8jRw50hw0aJBpmqZ55ZVXmvfcc49pmqb5xRdfmCUf2WPGjDHvv/9+j/V++OEH02KxmHl5eeb27dtNwFy7dq17/q5du0zAfPnll8vd96effmpGRka6f54xY4YZGhpaarnY2Fj3doqKisw6deqYs2bNcs8fPny4OWzYMNM0TTM/P98MCAgwf/zxR49tjBkzxhw+fPiZT0YNU5H3nQZZFRER+V1eHsybd/JSY3mKi+GLL1zLV9Xztp977jmuvfbaUi1OGzduZNOmTXz44YfuaaZp4nQ6SUxMZOfOndhsNrp06eKe36xZM8LDwz22s2TJEiZPnsyOHTvIzMykuLiY/Px8cnNzz7lPl81m47bbbuPDDz/krrvuIicnh3nz5vHxxx8DsHv3bnJzc7n++us91issLKRz584VOh+1icKXiIjI7zIzzx68SjidruWrKnz16tWLfv36MWnSJEaNGuWenp2dzR//+EfGjx9fap3GjRuzc+fOs25737593HzzzTz44IP8+9//JiIiglWrVjFmzBgKCwsr1KF+xIgR9O7dm5SUFBYvXoy/vz/9+/d31wrwzTff0LBhQ4/17Hb7Oe+jtlH4EhER+V1ICFgs5xbALBbX8lVpypQpdOrUiZYtW7qndenShW3bttGsWbMy12nZsiXFxcX8+uuvdO3aFXC1QJ169+T69etxOp28+OKLWCyu7t+ffPKJx3Z8fX1xOBxnrbFHjx7ExMQwZ84cFixYwK233oqPjw8Abdq0wW63c+DAAXr37l2xg6/FFL5ERER+5+8Pgwa57mo8vbP9qWw213JV1epVon379owYMYKpU6e6pz322GNceeWVjBs3jnvvvZfAwEC2bdvG4sWLee2112jVqhV9+/bl/vvvZ9q0afj4+PDnP/8Zf39/91hhzZo1o6ioiFdffZWBAweyevVq3jztFs64uDiys7P5/vvv6dixIwEBAeW2iN1xxx28+eab7Ny5k2XLlrmnBwcH8+ijjzJhwgScTidXX301GRkZrF69mpCQEEaOHFkFZ+3ip7sdRURETjFxIpytwcfhgAkTvFPP008/jfOUprgOHTqwYsUKdu7cSc+ePencuTNPPPEEDRo0cC8za9Ys6tWrR69evRgyZAj33XcfwcHB+Pn5AdCxY0deeuklnnvuOdq1a8eHH35YamiLHj168MADDzBs2DCioqJ4/vnny61xxIgRbNu2jYYNG3LVVVd5zHvmmWf4xz/+weTJk2ndujX9+/fnm2++IT4+vjJOT41kmKZpenOHmZmZhIaGkpGRQUhVt9eKiEitVd7nSX5+PomJicTHx7vDRkW9+aZrOAmr1bMFzGZzBa833oAHHrjQI/CegwcPEhMTw5IlS7juuuuqu5xaqSLvO7V8iYiInOaBB+CHH1yXFn/vEoXF4vr5hx8u/uC1dOlSvvrqKxITE/nxxx+5/fbbiYuLo1evXtVdmqA+XyIiImW66irXKy/PdVdjSEjV9/GqLEVFRfztb39j7969BAcH06NHDz788EN3R3ipXgpfIiIiZ+DvX3NCV4l+/frRr1+/6i5DyqHLjiIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepLsdRUREgP2Z+8kpyqnweoE+gcSGxFZBRVJbKXyJiMglb3/mfm7+4ubzXn/+kPkKYHLOdNlRREQueefT4lWZ65/up59+wmq1MmDAgErd7rnat28fhmGQkJBQLfuv7RS+RERELjLvvPMOf/rTn1i5ciWHDx+u7nKkkil8iYiIXESys7OZM2cODz74IAMGDGDmzJke87/66iuaN2+On58f11xzDe+99x6GYZCenu5eZtWqVfTs2RN/f39iYmIYP348OTknW+fi4uJ49tlnueeeewgODqZx48a89dZb7vnx8fEAdO7cGcMw6NOnT1Ue8iVH4UtEROQi8sknn9CqVStatmzJnXfeybvvvotpmgAkJiZyyy23MHjwYDZu3Mgf//hH/t//+38e6+/Zs4f+/fszdOhQNm3axJw5c1i1ahXjxo3zWO7FF1+kW7du/Prrrzz00EM8+OCD/PbbbwCsWbMGgCVLlpCcnMznn3/uhSO/dCh8iYiIXETeeecd7rzzTgD69+9PRkYGK1asAGD69Om0bNmSF154gZYtW3L77bczatQoj/UnT57MiBEjeOSRR2jevDk9evRg6tSpzJo1i/z8fPdyN910Ew899BDNmjXjscceo06dOixbtgyAqKgoACIjI4mOjiYiIsILR37pUPgSERG5SPz222+sWbOG4cOHA2Cz2Rg2bBjvvPOOe/5ll13msc7ll1/u8fPGjRuZOXMmQUFB7le/fv1wOp0kJia6l+vQoYP774ZhEB0dTUpKSlUdmpxCQ02IiIhcJN555x2Ki4tp0KCBe5ppmtjtdl577bVz2kZ2djZ//OMfGT9+fKl5jRs3dv/dx8fHY55hGDidzvOsXCpC4UtEROQiUFxczKxZs3jxxRe54YYbPOYNHjyYjz76iJYtW/Ltt996zFu7dq3Hz126dGHbtm00a9bsvGvx9fUFwOFwnPc2pHwKXyIiIheB+fPnk5aWxpgxYwgNDfWYN3ToUN555x0++eQTXnrpJR577DHGjBlDQkKC+25IwzAAeOyxx7jyyisZN24c9957L4GBgWzbto3Fixefc+tZ3bp18ff3Z+HChTRq1Ag/P79SNcn5U58vERGRi8A777xD3759yww5Q4cOZd26dWRlZfHZZ5/x+eef06FDB6ZNm+a+29FutwOuvlwrVqxg586d9OzZk86dO/PEE094XMo8G5vNxtSpU5k+fToNGjRg0KBBlXOQAoBhlty/6iWZmZmEhoaSkZFBSEiIN3ctIiK1SHmfJ/n5+SQmJhIfH4+fn985bWvbiW0Mmz/svGuZc/Mc2kS2Oe/1L8S///1v3nzzTZKSkqpl/+JSkfedLjuKiIjUIG+88QaXXXYZkZGRrF69mhdeeKHUGF5ycVP4EhERqUF27drFv/71L1JTU2ncuDF//vOfmTRpUnWXJRWg8CUiIpe8QJ/Aal2/Il5++WVefvllr+1PKp/Cl4iIXPJiQ2KZP2Q+OUU5Z1/4NIE+gcSGxFZBVVJbKXyJiIiAApR4jYaaEBEREfEihS8RERERL9JlRxERkXKYpkl+kZNChxNfqwU/H4t7JHmR86XwJSIicpr8IgfbkjNZm5jK/hM5OJwmVotBbGQgl8VH0KZ+CH4+1uouU2oohS8REZFT7Duew5x1Sew/kYOBQXiAD76+VoodTjYdzGDjwXRiIwMZ1i2GuDreG2KiJujTpw+dOnXilVdeqe5SLmrq8yUiIvK7fcdzmLE6kf3Hc4iNCKRZ3SAig+yE+vsQGWSnWd0gYiMC2f/7cvuOV3xoijMZNWoUhmFgGAY+Pj7Ex8fz17/+lfz8/ErdT00VFxdXK4KdwpeIiAiuS41z1iVxLKuAZnWD8LWV/RHpa7PQrG4Qx7IKmLMuifwiR6XW0b9/f5KTk9m7dy8vv/wy06dP58knn6zUfVwI0zQpLi6u7jJqNIUvERERYFtyJvtP5BAbGXjWTvWG4er/tf9EDtuTMyu1DrvdTnR0NDExMQwePJi+ffuyePFi93yn08nkyZOJj4/H39+fjh078tlnn7nnd+vWjf/85z/unwcPHoyPjw/Z2dkAHDx4EMMw2L17NwDvv/8+3bp1Izg4mOjoaO644w5SUlLc6y9fvhzDMFiwYAFdu3bFbrezatUqcnJyuPvuuwkKCqJ+/fq8+OKLZz22jRs3cs011xAcHExISAhdu3Zl3bp17vmrVq2iZ8+e+Pv7ExMTw/jx48nJcbUu9unTh/379zNhwgR362BNpfAlIiKXPNM0WZuYioFRbovX6XxtFgwM1iSmYppmldS1ZcsWfvzxR3x9fd3TJk+ezKxZs3jzzTfZunUrEyZM4M4772TFihUA9O7dm+XLlwOu4/rhhx8ICwtj1apVAKxYsYKGDRvSrFkzAIqKinjmmWfYuHEjX375Jfv27WPUqFGlann88ceZMmUK27dvp0OHDvzlL39hxYoVzJs3j++++47ly5ezYcOGMx7PiBEjaNSoEWvXrmX9+vU8/vjj+Pj4ALBnzx769+/P0KFD2bRpE3PmzGHVqlXuh4Z//vnnNGrUiKeffprk5GSSk5Mv6NxWJ3W4FxGRS15+kZP9J3IID/Cp0HrhAT7sP5FDfpETf9/Kuftx/vz5BAUFUVxcTEFBARaLhddeew2AgoICnn32WZYsWUL37t0BaNKkCatWrWL69On07t2bPn368M477+BwONiyZQu+vr4MGzaM5cuX079/f5YvX07v3r3d+7vnnnvcf2/SpAlTp07lsssuIzs7m6CgIPe8p59+muuvvx6A7Oxs3nnnHT744AOuu+46AN577z0aNWp0xmM7cOAAf/nLX2jVqhUAzZs3d8+bPHkyI0aM4JFHHnHPmzp1Kr1792batGlERERgtVrdLXQ1mVq+RETkklfocOJwmtisFftYtFoMHE6TQoez0mq55pprSEhI4JdffmHkyJGMHj2aoUOHArB7925yc3O5/vrrCQoKcr9mzZrFnj17AOjZsydZWVn8+uuvrFixwh3ISlrDVqxYQZ8+fdz7W79+PQMHDqRx48YEBwe7g9mBAwc86urWrZv773v27KGwsJArrrjCPS0iIoKWLVue8dgmTpzIvffeS9++fZkyZYq7ZnBdkpw5c6bHcfXr1w+n00liYmLFT+RFTC1fIiJyyfO1WrBaDIorGKJKxv/yrWBoO5PAwED3JcF3332Xjh078s477zBmzBh3v61vvvmGhg0beqxnt9sBCAsLo2PHjixfvpyffvqJ66+/nl69ejFs2DB27tzJrl273AErJyeHfv360a9fPz788EOioqI4cOAA/fr1o7CwsFRdF+qf//wnd9xxB9988w0LFizgySef5OOPP2bIkCFkZ2fzxz/+kfHjx5dar3Hjxhe874uJWr5EROSS5+djITYykLTcogqtl5ZbRGxkIH4+VfNxarFY+Nvf/sbf//538vLyaNOmDXa7nQMHDtCsWTOPV0xMjHu93r17s2zZMlauXEmfPn2IiIigdevW/Pvf/6Z+/fq0aNECgB07dnDixAmmTJlCz549adWqlUdn+/I0bdoUHx8ffvnlF/e0tLQ0du7cedZ1W7RowYQJE/juu+/4wx/+wIwZMwDo0qUL27ZtK3VczZo1c/d58/X1xeGo3LtLq4PCl4iIXPIMw+Cy+AhMTAqLz631q7DYiYnJ5fERVXrn3a233orVauX1118nODiYRx99lAkTJvDee++xZ88eNmzYwKuvvsp7773nXqdPnz4s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4EBiY2N5++23adCgAU6nk3bt2rk7wPv7l75pqLKUVU9lONP5yc7Opn79+h6XP0uEhYVVST0VavlKSUnh7rvvpmXLllx33XWsXbuWRYsWcf3111dJcSK1Tag9lK71upKan+ruKF9cVMzUB6aW2bn+9E74Ux+YSmFhIck5ybSObE2joEbVeTgitYePv6ujfW5qxdbLTXWt51N1gQRg6dKlbN68udQlwVOFhIQwbNgw3n77bebMmcPcuXNJTXUdj4+PDw5H+f1NS5w4cYLffvuNv//971x33XW0bt2atDTPsQc7dOhAQkKCe9un8/X1LbWv1q1bl+pntW3bNtLT0894015lKu/8dOnShSNHjmCz2WjWrJnHq06dOuUe04WoUMvXO++8U2k7FrlU9Ynpw+703ezP3O96tqOPjZsfvJn50+Yz/s3xpfp2lQSwqQ9MZcADAziSf4Qo/yj6xfUr9xKEiFSQYUDj7nBovesS4rm0ZBUXACbE9qjUzvYFBQUcOXIEh8PB0aNHWbhwIZMnT+bmm2/m7rvvLnOdl156ifr169O5c2csFguffvop0dHR7pabuLg4vv/+e6666irsdjvh4aVv4gEIDw8nMjKSt956i/r163PgwAEef/xxj2WGDx/Os88+y+DBg5k8eTL169fn119/pUGDBnTv3p24uDgSExNJSEigUaNGBAcH07dvX9q3b8+IESN45ZVXKC4u5qGHHqJ3795069atwudo27ZtFBYWkpqaSlZWFgkJCQDljsV1pvPTt29funfvzuDBg3n++edp0aIFhw8f5ptvvmHIkCF069atzGO6kGE+9GxHES8L8g1iULNBRPhFsDdjLw6ng679uvL/Pv1/Zd7VCK4ANumTSdTtURcfqw8Dmw6kbkBdL1cuUstFt4eIeFcH+rM9w9E0IS3RtXy9dpVaxsKFC6lfvz5xcXH079+fZcuWMXXqVObNm1fuHYDBwcE8//zzdOvWjcsuu4x9+/bx7bffYrG4PuZffPFFFi9eTExMDJ07dy533xaLhY8//pj169fTrl07JkyYwAsvvOCxjK+vL9999x1169blpptuon379kyZMsVd29ChQ+nfvz/XXHMNUVFRfPTRRxiGwbx58wgPD6dXr1707duXJk2aMGfOnPM6RzfddBOdO3fm66+/Zvny5XTu3PmMx3Wm82MYBt9++y29evVi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SEU5nZD8K+xbDcd2/D4MRcmvNcPVuuUfBo0uh7irIDyu+mqVSqXPE6mpFL6kUuQUFHM4PY+UrALyCh1YLBDq70u9EDsNQv2xaEgJqWollxWzkiHnBJgO14CsQfVcY4NpMNVaR58nUlPpsqNUikC7jeb1gmleL/jsC4tUBcOAkAaul4jIRUzXgERERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts1V2A1A5Z+UUcTMvjWFYBeUUOLIZBWIAP9YL9aBjuj9ViVHeJUtuZJmQegsxkyD0OTgfY7BBUF0JjICCiuisUEQEUvuQCHcnI56e9J1i/P5W0nEIcpmu6AZiAv4+FxhGBXNEkgm6xEfja1NgqlczpgEMbYN8PcHwnFOZ4zjcM8AuDhl0h7mqIbFotZYqIlFD4kvPidJr8uOcEC7YkcyyrgIhAX+IiA7FZT4Yr0zTJLXSQeDyHXSlZJCSlM6hTQxqG+Vdj5VKr5JyALZ/BgZ9dPwfVg9DGrsBVwumAvFTYvRiS1kDL/tC8H9h8q6dmEbnkKXxJhTmcJvM3HWbxtqP42ay0ig7GMEpfVjQMg0C7jXi7jfwiB5uSMjiWVcDd3eOIrxNYDZVLrZJ1BH55C47tgPA4sAeXvZzFCoFREFAHso/Cpk8g6yh0uct1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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=3\n" - ] - }, - { - "data": { - "image/png": "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Wd80TebMmcOAAQMwTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAEOHDuWqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrvjjjuYMmUKGzZsYNasWdx+++2l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMCwYcOYMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz2b06NGA65JjnTp1yn0PniohIaHUtPL+jVu1auWe37Zt23LrPP3/RImGDRuW+jcKDQ0t1QczNDTUY/1jx46Rnp7OW2+9xVtvvVXmcZz+73quNYlI7aHwVQ1CQ0OpV68emzdvLjWv5IPk9PGjSlopHn300XL7xjRt2tTj5/LuGDNN02Ob77//fqmhEACPPj3gujPx9LsvHQ4H119/PampqTz22GO0bNmSwMBADh48yMiRI8+rc3thYSG33HILdrudTz75xKOO8zkPVeXhhx/26EDeq1cvli1bVmq5K664giZNmvDII4+QlJTEHXfcUe42b7vtNn788Uf+8pe/0LFjR4KCgnA6nfTr16/UuUxLS2PIkCE0b96c//3vfx7zSpZ94YUX6NixY5n7qsx+Q2d7r5UYOnQo//73vzl+/DjBwcF89dVXDBs2rNR7rSyV0VfvXOssb7lz/T915513lht827dvf141iUjtofBVTfr378///vc/Vq9efU4dnxs3bgyAj4/PObVEnIuSDuDR0dHnvc1NmzaxY8cO3nvvPe6++2739EWLFp13XePGjSMxMZEVK1ZQt25dj3kVOQ9xcXHuFqBT/fbbb+dd26n++te/erROnqkVadiwYfzrX/+iVatW5YahtLQ0vv/+e5566imeeOIJ9/SyjsHpdDJ8+HDS09NZvHix++aHEiX/tiEhIZX2fqkMQ4cO5amnnmLOnDnUrVuXzMxMj8t7FRUXF1fmv+f27dvd870pKiqK4OBgHA5HpZ738lpKRaRmUp+vavLXv/6VgIAA7rnnHo4ePVpq/unfeqOjo+nduzfTpk3j8OHDpZYvawiJs+nbty8hISE8++yzFBUVndc2S761n1qvaZr897//rXA9ANOnT2fatGm8/vrrZYbSipyHm266iZ9//pnVq1d7zP/www/Pq7bTtW7dmj59+rhfXbp0KXfZe++9lyeffJIXX3yx3GXKOpdAmSObP/XUUyxcuJCPPvqozMtxXbp0oUmTJvznP/8p8/L2+bxfKkOrVq1o164ds2fPZvbs2dSrV4+ePXue9/ZuuukmVq9ezU8//eSelpOTw1tvvUV8fHypvmlVzWq1MmTIEObMmVNmy/b5nvfAwMDzvoQvIhcftXxVk2bNmjFr1iyGDRtGixYt3CPcm6ZJUlISs2bNwmKxePSxev3117n66qtp164d9913H40bN+bo0aP89NNPHDhwgA0bNlSohpCQEKZOncpdd91F586duf3224mKimL//v188803XHXVVbz22mtn3EbLli1p0qQJjz76KAcPHiQkJIQ5c+acV3+V48eP89BDD9G6dWvsdjsffPCBx/zBgwcTGBh4zufhr3/9K++//z79+vXj4Ycfdg81ERcX5/VHN8XFxfHPf/7zjMuEhITQs2dPnn/+eYqKimjQoAHfffcdSUlJHstt2rSJZ555hp49e5KSklLqPN15551YLBb+97//ceONN9KmTRtGjRpFgwYNOHjwIEuXLiUkJISvv/76rHWvX7++1PbB1bLWrVu3sx94GYYOHcoTTzyBn58fo0ePvqCBhB9//HE++ugjbrzxRsaNG0dERATvvfceSUlJzJkzp1oGKZ48eTJLly7liiuu4L777qN169akpqayfv16Fi9eTGpqaoW32aVLF2bPns2ECRO47LLLCAoKYsCAAVVQvYh4g8JXNRo4cCCbNm3ixRdf5LvvvuPdd9/FMAzi4uLo378/DzzwAB06dHAv37p1a9auXctTTz3FjBkzOHHiBNHR0XTq1MnjMlVF3HHHHdSvX5/JkyfzwgsvUFBQQIMGDejRowejRo066/o+Pj58/fXXjBs3jkmTJuHn58fgwYMZO3asR+3nIjs7m/z8fLZu3eq+u/FUSUlJBAYGnvN5qFevHkuXLuVPf/oTkydPJjIykgceeID69eu7O3xfbGbNmsWf/vQnXn/9dUzT5IYbbmD+/PnUr1/fvcyJEycwTZPly5ezfPnyUtsouRTau3dv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ahuFLxERkTKsXAl/+AMEBUFMjOvPP/wBVq2q2v36+fnx3HPPkZaWVrU7Ok9RUVEEBARUdxk1msKXiIjIaaZOhZ494euvXY91BNefX38NPXq4nrtdVfr06UNMTAyTJk0qd5mVK1fSo0cP/P39iY2NZdy4ceTk5LjnHz58mP79++Pv709CQgKzZs0qdbnwpZdeol27dgQGBhIbG8tDDz1EdnY24Hpu86hRo8jIyMAwDAzD4J///CfgednxjjvuYOjQoR61FRUVUadOHWbOnAmA0+lk0qRJJCQk4O/vT4cOHfjss88q4UzVXApfIiIip1i5EsaMAdOE4mLPecXFrukPPVR1LWBWq5Vnn32WV199lQMHDpSav3v3bvr168eQIUPYuHEjs2fPZuXKlYwdO9a9zN13382hQ4dYtmwZc+bM4a233iIlJcVjOxaLhSlTprBlyxbee+89lixZwl//+lcAunfvziuvvEJISAiHDx/m8OHDPProo6VqGT58OF9//bU7tAEsXLiQ3NxcBg8eDMCkSZOYOXMmb775Jlu2bGH8+PHceeedLF++vFLOV41kellGRoYJmBkZGd7etYiI1CLlfZ7k5eWZW7duNfPy8s5ru4MHm6bNZpqumFX2y2YzzSFDKuMoPI0YMcIcOHCgaZqmeeWVV5r33HOPaZqm+cUXX5glH9mjR48277//fo/1fvjhB9NisZh5eXnmtm3bTMBcs2aNe/7OnTtNwHz55ZfL3fenn35qRkZGun+ePn26GRoaWmq5uLg493aKiorMOnXqmDNnznTPHzZsmDl06FDTNE0zPz/fDAgIMH/88UePbYwePdocNmzYmU9GDVOR950GWRUREfldXh7MnXvyUmN5iovhiy9cy1fV87afe+45rr322lItThs2bGDjxo18+OGH7mmmaeJ0OklKSmLHjh3YbDY6d+7snt+0aVPCw8M9trN48WImTZrE9u3byczMpLi4mPz8fHJzc8+5T5fNZuO2227jww8/5K677iInJ4e5c+fy8ccfA7Br1y5yc3O5/vrrPdYrLCykU6dOFToftYnCl4iIyO8yM88evEo4na7lqyp89ezZk759+zJx4kRGjhzpnp6dnc0f//hHxo0bV2qdRo0asWPHjrNue+/evdx88808+OCD/Pvf/yYiIoKVK1cyevRoCgsLK9Shfvjw4fTq1YuUlBQW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n9OwYUOefvppDh8+zOHDhy/o3FYndbgXEZFLXn6Rk30ncggP8KnQeuEBPuw7kUN+kRN/38q5+3HevHkEBQVRXFxMQUEBFouF1157DYCCggKeffZZFi9eTLdu3QBo3LgxK1euZNq0afTq1YvevXvzzjvv4HA42Lx5M76+vgwdOpRly5bRr18/li1bRq9evdz7u+eee9x/b9y4MVOmTOGyyy4jOzuboKAg97ynn36a66+/HoDs7GzeeecdPvjgA6677joA3nvvPRo2bHjGY9u/fz9/+ctfaNmyJQDNmjVzz5s0aRLDhw/nkUcecc+bMmUKvXr1YurUqURERGC1Wt0tdDWZWr5EROSSV+hw4nCa2KwV+1i0WgwcTpNCh7PSarnmmmtITEzkl19+YcSIEYwaNYohQ4YAsGvXLnJzc7n++usJCgpyv2bOnMnu3bsB6NGjB1lZWfz6668sX77cHchKWsOWL19O79693ftbt24dAwYMoFGjRgQHB7uD2f79+z3q6tq1q/vvu3fvprCwkCuuuMI9LSIighYtWpzx2CZMmMC9995Lnz59mDx5srtmcF2SnDFjhsdx9e3bF6fTSVJSUsVP5EVMLV8iInLJ87VasFoMiisYokrG//KtYGg7k8DAQPclwXfffZcOHTrwzjvvMHr0aHe/rW+++YYGDRp4rGe32wEICwujQ4cOLFu2jJ9++onrr7+enj17MnToUHbs2MHOnTvdASsnJ4e+ffvSt29fPvzwQ6Kioti/fz99+/alsLCwVF0X6p///Cd33HEH33zzDfPnz+fJJ5/k448/ZvDgwWRnZ/PHP/6RcePGlVqvUaNGF7zvi4lavkRE5JLn52MhLjKQtNyiCq2XlltEXGQgfj5V83FqsVj429/+xt///nfy8vJo3bo1drud/fv307RpU49XbGyse71evXqxdOlSVqxYQe/evYmIiKBVq1b8+9//pl69ejRv3hyA7du3c+LECSZPnkyPHj1o2bKlR2f78jRp0gQfHx9++eUX97S0tDR27Nhx1nWbN2/O+PHj+e677/jDH/7A9OnTAejcuTNbt24tdVxNmzZ193nz9fXF4ajcu0urg8KXiIhc8gzD4LKECExMCovPrfWrsNiJicnlCRFVeufdrbfeitVq5fXXXyc4OJhHH32U8ePH895777F7927Wr1/Pq6++ynvvvedep3fv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lyovwLZt20hISChzXufOnUlKSmL+/PksXryY2267jT59+vDZZ5+dcZuBgYGlpg0YMIC4uDjefvtt6tevj9PppG3btu4O8P7+pW8aqixl1VMZznR+srOzqVevnsflzxJhYWFVUk+FWr5SUlK4++67adGiBddddx1r1qxh4cKFXH/99VVSnEhtE2oPpUvdLqTmp7o7yhcXFTPlgSlldq4/vRP+lAemUFhYyOGcw7SKbEXDoIbVeTgitYePv6ujfW5qxdbLTXWt51N1gQRgyZIlbNq0qdQlwVOFhIQwdOhQ3n77bWbPns2cOXNITXUdj4+PDw5H+f1NS5w4cYLffvuNv//971x33XW0atWKtDTPsQfbt29PYmKie9un8/X1LbWvVq1alepntXXrVtLT0894015lKu/8dO7cmSNHjmCz2WjatKnHq06dOuUe04WoUMvXO++8U2k7FrlU9Y7tza70XezL3Od6qLaPjZsfvJl5U+cx7s1xpfp2lQSwKQ9Mof8D/TmSf4Qo/yj6xvct9xKEiFSQYUCjbnBwnesS4rm0ZBUXACbEda/UzvYFBQUcOXIEh8PB0aNHWbBgAZMmTeLmm2/m7rvvLnOdl156iXr16tGpUycsFguffvopMTEx7pab+Ph4vv/+e6666irsdjvh4aVv4gEIDw8nMjKSt956i3r16rF//34ef/xxj2WGDRvGs88+y6BBg5g0aRL16tXj119/pX79+nTr1o34+HiSkpJITEykYcOGBAcH06dPH9q1a8fw4cN55ZVXKC4u5qGHHqJXr1507dq1wudo69atFBYWkpqaSlZWFomJiQDljsV1pvPTp08funXrxqBBg3j++edp3rw5hw4d4ptvvmHw4MF07dq1zGO6kGE+9GxHES8L8g1iYNOBRPhFsCdjDw6ngy59u/D/Pv1/Zd7VCK4ANvGTiUR3j8bH6sOAJgOIDoj2cuUitVxMO4hIcHWgP9szHE0T0pJcy9dtW6llLFiwgHr16hEfH0+/fv1YunQpU6ZMYe7cueXeARgcHMzzzz9P165dueyyy9i7dy/ffvstFovrY/7FF19k0aJFxMbG0qlTp3L3bbFY+Pjjj1m3bh1t27Zl/PjxvPDCCx7L+Pr68t133xEdHc1NN91Eu3btmDx5sru2IUOG0K9fP6655hqioqL46KOPMAyDuXPnEh4eTs+ePenT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NmTIEPr168c111xDVFQUH330EYZhMHfuXMLDw+nZsyd9+vShcePGzJ49u8Ln57333iM3N5dJkyZRr1499+sPf/hDuev4+voyceJE2rdvT8+ePbFarXz88ccABAQEsGLFCho1asQf/vAHWrVqxejRo8nPzyckJASA++67jxYtWtC1a1eioqJYtWpVhes+lWGe7R1WyTIzMwkNDSUjI8N9UCIiIhVV3udJfn4+SUlJZxwrqjwlI9wfzztOo+BGruEkTlPoKGR/1n7q+NfhrlZ3ERsSW8aW5FJTkfedOtyLiIj8rlFII+5sdaf72Y4YruEkrIYVh+kgrSANTGgU3IghzYYoeMl5UfgSERE5RaOQRjzY8UF+S/2NdUfXkZyVTJGjCKvFStvItnSp24UWES2wWyvv0T5yaVH4EhEROY3daqd9VHva1WlHviOfImcRPhYf/Kx+VTqSvVwaFL5ERETKYRgG/jZ//Kna0evl0qK7HUVEpFby8v1kcomryPtN4UtERGoVHx/XaPO5ubnVXIlcSkrebyXvvzPRZUcREalVrFYrYWFhpKSkAK5xnNRPS6qKaZrk5uaSkpJCWFhYuWOxnUrhS0REap2YmBgAdwATqWphYWHu993ZKHyJiEitYxgG9erVIzo6+oIfBSNyNj4+PufU4lVC4UtERGotq9VaoQ9FEW9Qh3sRERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEiW3UXcDHJKSgmu6AYAwjysxHgq9MjIpegonzITwfTBN8AsIeAYVR3VSK1xiWfLlKy8tmYnMHmQxkczcynsNgJgK/NQt0QP9o1CKV9wzCigu3VXKmISBXKS4NDv7peGQdcAQwTrL4QWAfqtoOGXSA0VkFM5AIZpmma3txhZmYmoaGhZGRkEBIS4s1de8gvcrB0ewrLdxwjNaeQAF8rQXYbdh8rAAVFDrILiskrchAe4Ms1LaLo1SIav9/ni4jUCo5i2LsCtn8DWUfBZne1dPn4AwY4CqAgGwqzXNPjr4ZWN4NfaHVXftF8nohU1CXZ8nUiu4BZv+xn86EMIgJ9aRkTjHHaN7kgu43IIDtO0+R4VgFf/HqQnSk5DL+iEeGBvtVUuYhIJSrMgfXvw/6fwCcQolqC5fQvmEEQEOm6BJmXCr99Cyd2QpdREB5XLWWL1HSXXIf7zPwiZv60j00HM0ioE0h0sF+p4HUqi2EQHeJHfJ1ANh5IZ+ZPe8nKL/JixSIiVaC4ENa9B3t/gNCGEBZbRvA6hWG4QlhUSzixG1a/BZmHvVevSC1ySYUv0zSZv+kw2w5n0jQ6CLvN9YumuKjwjOsVFxVit1lpEhXElkOZLNxyBC9frRURqVy7l7havMITwDcIgMKi4jOuUlhUDBYb1GkBaXth06fg0JdRkYq6pMLX9iNZ/LT7BPVC/fCxug7912Xf8sIfB5CWUvY3uLSUw7zwxwH8uuxbfG0WYkL9WLXrODtTsr1ZuohI5ck87Lp86BcGvoEAzF66kXajp5Cckl7mKskp6bQbPYXZSze6WsjCG8PBdZD8i/fqFqklKhS+Jk2axGWXXUZwcDDR0dEMGjSI3377rapqq3Rr96ZSUOwkLMDVZ6u4qJAFM//LsQN7eeMvd5UKYGkph3njL3dx7MBeFsz8L8VFhYQH+JJf5GTN3tTqOAQRkQt3cC3knoDgeoCrReuJ6YvZceA4vcf/r1QAS05Jp/f4/7HjwHGemL7Y1QLmG+BqBdu7EpyOajgIkZqrQuFr+fLljBkzhp9//plFixZRVFTEDTfcQE5OTlXVV2nScwvZciiTyFM6y9t8fHlg8gwi68Vy4nCyRwArCV4nDicTWS+WBybPwObjWjci0JfNBzPIVN8vEalpnA7Y/7PH2F2+PjYW/+ceGteLYM/hVI8AVhK89hxOpXG9CBb/5x58fX6/Vys4xtX/K31fNR2MSM1UofC1YMECRo4cSZs2bejQoQMzZsxg//79rFu3rqrqqzRHMwvIyi8mxN/HY3p4dD0eeuF9jwCWtGW9R/B66IX3CY+u514nxM+H7PxiUjLzvX0YIiIXJue4a0yv04aKiI0OY9nL93oEsB837/MIXstevpfY6LCTK/kEQnEeZB3x7jGI1HAX1OcrIyMDgIiIiHKXKSgoIDMz0+NVHVJzCnGapruv16lOD2Cvjh9WbvAC1wCsxU6T1By1fIlIDZN7Agpz3X29TnV6ALtq3LTygxf83nJmuLYpIufsvMOX0+nkkUce4aqrrqJt27blLjdp0iRCQ0Pdr9jY2PPd5QU5292J4dH1uOOvz3tMu+Ovz5cKXqdyOHXHo4jUMKYTcIJR9q//2Ogw3p94q8e09yfeWjp4ndyg+nyJVNB5h68xY8awefNmPv744zMuN3HiRDIyMtyv5OTk893lBbH7WDDN8kNYWsphZj3/V49ps57/a5l3QZZsw+5zSd0sKiK1gc0PLD7gKHuIneSUdO6a9KnHtLsmfVruXZBguLYpIufsvNLD2LFjmTdvHkuXLqVhw4ZnXNZutxMSEuLxqg5RQX74+VjIL3KWmnd65/o/vfxRmZ3wS+QWOvDzsRKt5z2KSE0TFO265FhY+kap0zvXr5ryxzI74bs5Ha5Lj8F1vVO7SC1RofBlmiZjx47liy++YMmSJSQkJFRVXZUuOsRORKAvqbme3/ZOD14PvfA+CW06l+qEf2oAS8stpE6QL9HB+rYnIjWMPdj1WKBcz+FyTg9ey16+l+5t40p1wvcIYHmpro77odXTnUSkpqpQ+BozZgwffPABs2bNIjg4mCNHjnDkyBHy8vKqqr5K4+dj5YqECDLzinD+3leruKiQNx8fWWbn+tM74b/5+EiKiwpxOE2yC4q5IiESX5suO4pIDWMY0Kg7mMXuS4+FRcX0efTdMjvXn94Jv8+j77rG+TJNyE6B+l0gsE41HpBIzVOh9DB16lQyMjLo3bs39erVc79mz55dVfVVqi7xEdQP8+dAuiss2nx86Xf3w0Q1jC/zrsaSABbVMJ5+dz+MzceXA2m5NAjzp3NceHUcgojIhavf0fWIoNQkME18fWw8PaoPzRvWKfOuxpIA1rxhHZ4e1cc1zlf2UfAPg4Qe1XEEIjWaYXr5IYWZmZmEhoaSkZFRLf2/ftlzgg9+3kdYgC8RgSdHui8ZQLUsJfNPZBeQmV/MXd3iuCy+/OE1REQueinb4cdXXX8PdfXdLSwqPjmAahnc8wsyIeMAtL8NWg3wRrVlqu7PE5HzdcldN7ssPoK+bWJIzSnkSEY+pmmeMXgBWG0+HM7IIz2viH5tYuiqVi8RqemiW7rCk7P49xYw5xmDF7hGwifnmCt4NbkWmvX1UrEitcuZ/6fVQhaLwU3t6hFkt7FgyxF2HM0mOsROmL8Pxu+P2ihhmibpuUUczconIsCXW7vG0qNpnVLLiYjUSAk9wccfNs+BlK0QGOV6nT4GmGm6WruyDruWbz0QWv0f2M78xVVEynbJXXY8VXJqLku2p7DlUAaZ+cUYgI/VgolJcbGJCYT422jbIJRrW0bTMDygWusVEakS2cdg53eQvNp1ByO4xgIzDHAUAaZreIqoVtD8BohuVa3llriYPk9EKuKSDl8ljmTkk3Q8hyMZeaTmFIIBkYF26ob40TgqkLohGlJCRC4Bualw7DdXC1f2Uddo+H5hEFIfwuNdr4uo5f9i/DwROReX3GXHssSE+hETqoAlIpe4gAiI61bdVYjUepdch3sRERGR6qTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFtuouQGoH0zRJzy3iWHYBeYUOLIZBWIAPUcF2/Hys1V2eXCocRZB9FHKOg+kAqx2C6kJAJFj0XVNELg4KX3JB8godbDyQzuqkVJLTcskpcOAwnYCBn81CiJ8P7WND6dwonIQ6gRiGUd0lS22UcQCS10DyL5CXBkW5rumGBXyDIDgG4q+CBl3AL7R6axWRS55hmqbpzR1mZmYSGhpKRkYGISEh3ty1VLJdKVl8lXiInSnZ2KwGEQG+BNpt+FgtmKZJXpGDrPxi0nKLCLJbubpZFNe3rkuQXZlfKklxAexaDL8tgLxU8AsH/1DwCXAFL2cxFGZDbioU50FYPLQdDPU7g74I1Hj6PJGaSuFLzssve04wZ/0BsguKiYsIxNd25ks6qTmFpGTl06Z+KHdeGUdEoK+XKpVaqzAH1r0H+38E/wgIijlzoHIWQ9peVyhrMwha3KQAVsPp80RqKnWCkArbeCCdT9Ym43CaNI0KOmvwAogI9KVxnSA2H8zgw5/3kVfo8EKlUms5iuHXD2DfKghLgOB6Zw9SFhtENnVdhtz0GexZ6p1aRUROo/AlFZKeW8hXiYcocjhpGB5QZh+uwgKDrDQrhQWe83xtFhpHBbL5UCZLth/1VslSG+1bBft+dF1G9A0oPb+gCFKzXH+eLijadVly61eQvr/KSxUROZ0630iFrNx5nP2puTSvG1xq3p7NfiyfE87mn4IwnQaGxaRtt2x635JGQpt8AOw2K5GBvizfcYxOjcKpH+bv7UOQmi4/E7bPAx9/sAd5ztu0Fz5dCT9uA6cJFgO6t4LbekDbuJPLhTSAY1th+7dwxR91+VFEvKrCLV8rVqxgwIAB1K9fH8Mw+PLLL6ugLLkYZRcUs3pvKuEBvlgtnh9Wq74O5bUJsWz52RW8AEynwZafg3h1fCw/zjt5h1mdIF/Sc4vYkJzuzfKltjicCFmHXQHqVHN/hoffgp+2u4IXuP78aTuMmwZf/XJyWcOAoHpwZCNkHvJa6SIicB7hKycnhw4dOvD6669XRT1yEUs6lsOxrALqBHl2lt+z2Y85r0YDBk6HZyhz/Wzw2ZRokrb4AWAYBsF+NhKT0/Hy/R5SGxzZBBYfVx+uEpv2wn+/cv3d4fRcvuTnV+bC5n0np/uHQ34GHN9RpeWKiJyuwpcdb7zxRm688caqqEUucilZ+Zimic3qmdmXzwnHYgXnGfrQW6yu5RLaHAYg2M+HtNxC0nKLdOejnDtHEaTtA/tpl70/XQlWS+ngdSqrxbVcyeVHwwDDChkHq65eEZEyVHmfr4KCAgoKCtw/Z2ZmVvUupYqk5xaV6mBfWGC4+3ididNhsOnHIAoLDHztJn4+FtJynGTmKXxJBRRkuQZQ9Qk8ZVrRyT5eZ+JwwqqtruXtPq5pNj/XiPgiIl5U5Xc7Tpo0idDQUPcrNja2qncpVaSsj7aCXMtZg5d7fadBQe7Jt5xZ5hZFzsGpb7mc/LMHrxJO07W8ezsGZb+zRUSqTpWHr4kTJ5KRkeF+JScnV/UupYoE2W2lPqbsAU4My7l9eBkWE3uA67JQYbETX6uFAF8991EqwCcArL6uke1LBPq57mo8FxbDtXyJ4nxX3y8RES+q8vBlt9sJCQnxeEnNFB1ixwCcp7Qy+Npdw0lYrGcOYBarSbvu2fjaXctlFxQT4u9DZJC9KkuW2sbHD0IbQEH2yWl2H9dwEtaz/DqzWuCq1icvOZomOJ0Q1qjq6hURKYMGWZVzFhcRQKi/D6m5hR7Tew1JO2Nne3B1xu81JM39c0ZeMa3rh5QaskLkrOq2cz2n0Tylc/2tV5+5sz245t969cmfC7NdYS48oWrqFBEpR4XDV3Z2NomJiSQmJgKQlJREYmIi+/drpOjaLjLITsfYMI5lF3gMEdG4bT63jEsBzFItYK6fTW4Zl+IeaDUzr4gAXwudGulyj5yH+p0gIBKyU05OaxcPjwx0/f30FrCSnx8Z6DnQauZBiGoBEY2rtFwRkdNV+G7HtWvXcs0117h/njBhAgAjRoxgxowZlVaYXJx6NI9i44EMDmfke4xO3/3mDOolFLB8TjibfvQc4b7XkJMj3DucJgfT8+jZPIqEyMDydiNSvqAoaHIdbPrE1V/L9vul6/+7AhrHuIaTWLXVc4T7W6/2DF45x113OjbvBxZdABAR7zJML49yqafQ13wrdhzjk7XJhAf4ljlMRGGB665Ge4DT3ccLXH3Fdh/LpkG4Pw/1bkq4hpiQ81WYCz++6hqhvk4LsPp4zi8oct3VGOh3so+Xe14mZCRD64HQ9hY9WqgG0+eJ1FT6yicVdnXTOvRtE0N6biEH0nJxnpbffe0mweEOj+CVV+hgR0oW9cL8uPPKOAUvuTC+AdB1FES1guO/uZ73eCq7D0QEewYv03Q9lijjoKvlrNVABS8RqRZ6sLZUmMVi0L9dPSKDfJm/6Qi/Hclyt4L52k4Zx8s0ySlwkJKdj8Np0qlROIM6NiAm1O8MWxc5R0HR0O0h2Pw57P/RFayC6oJfCBinfK90FEFeKuQcA/8I6HA7NO0DNn0BEJHqocuOckFSMvP5ZU8qa/alkppTSLHT9Bj/0t/HSnydQK5IiKBzXDg+ZxsOQKSinE44/CvsXQXHtv8+DEXJrzXD1brlHwYNL4f4qyA8vvpqlUqlzxOpqRS+pFLkFBRzKD2PlKwC8godWCwQ6u9L3RA79UP9sWhICalqJZcVsw5DzgkwHa4BWYPqusYG02CqtY4+T6Sm0mVHqRSBdhvN6gbTrG7w2RcWqQqGASH1XS8RkYuYrgGJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgX2aq7AKkdsvKLOJCWx7GsAvKKHFgMg7AAH+oG+9Eg3B+rxajuEqW2M03IPAiZhyH3ODgdYLNDUDSExkJARHVXKCICKHzJBTqSkc9Pe06wbl8qaTmFOEzXdAMwAX8fC40iArmicQRd4yLwtamxVSqZ0wEH18PeH+D4DijM8ZxvGOAXBg26QPzVENmkWsoUESmh8CXnxek0+XH3CeZvPsyxrAIiAn2JjwzEZj0ZrkzTJLfQQdLxHHamZJGYnM7Ajg1oEOZfjZVLrZJzAjZ/Bvt/dv0cVBdCG7kCVwmnA/JSYdciSF4NLfpBs75g862emkXkkqfwJRXmcJrM23iIRVuP4mez0jImGMMofVnRMAwC7TYS7DbyixxsTM7gWFYBd3eLJ6FOYDVULrVK1hH45S04th3C48EeXPZyFisERkFAHcg+Chs/gayj0Pku12VJEREv0zUgqbAfdh7juy1HiQj0pUG4f5nB63R+PlaaRQdxNCOfWb/s40R2gRcqlVqrMBfWTocTOyC6VfnB61SGAcExrv5fe5bB5i9c/cRERLxM4Usq5EBaLgs3HyHQbiU8oOzLNtaCfALSjmMtyPeYbrEYNI4KYv+JXL7ddBinUx98cp52LISjmyGyGVhKN+DnFdg4mhpAXkEZjfv2YFcI27MEjmzyQrEiIp7O67Lj66+/zgsvvMCRI0fo0KEDr776Kpdffnll1yYXoRU7jnEip5CWMaVbGupvXkvnOTNo8tP3WJxOnBYLu7tdx/pbRnGoTRcArBaD+uH+rNuXRrcmdWgaHeTtQ5CaLjvFFZwCo8Dq+QVg5aaGvPTp5cz9sRlOpwWLxcnA7jv5822/cFXbgycXDIiEnOOuEFe3LVj0PVREvKfCv3Fmz57NhAkTePLJJ1m/fj0dOnSgb9++pKSkVEV9chE5nl3AxgMZRAfbS11qbP/1LG6bcCeNf16CxekEwOJ00vjnJdw2fjjt533kXjbEz4e8Ige/7k/zav1SSxz6FXJTXeHrFFPndqLnw3fy9U9NcTpdv9qcTgtf/9SUHuPu4s2vOnluJ6S+6+7I1N3eqlxEBDiP8PXSSy9x3333MWrUKFq3bs2bb75JQEAA7777blXUJxeR/am5ZOQVER7o2dpQf/Narn31aQxMrA6Hxzyrw4GBybVTnqL+lnXu6WH+vmw9nIlDlx6loo5uBps/GCd/fa3c1JAx/+2LiUGxw+qxeLHDionBQ6/0ZdXmBidn2IOhOA/S9nqpcBERlwqFr8LCQtatW0efPn1ObsBioU+fPvz000+VXpxcXFIyXZ3kLae1enWeMwOn9cxvJafVQqc5M9w/B9qtZOUVqeO9VExRPmQcKNXB/qVPL8dqdZ5xVavVycufntY9wrBC+v7KrlJE5Iwq1Ofr+PHjOBwO6tat6zG9bt26bN++vcx1CgoKKCg4+QGbmZl5HmXKxSC7oLjUNGtBvruP15lYHQ6a/rgYa0E+DrsfvjYLhQ4nOYWOM64n4qEoFxxF4HtyqJK8Apu7j9eZFDusfLGqOXkFNvztv7+XbX6uMcBERLyoynuZTpo0idDQUPcrNja2qncpVaSsASXsudlnDV4lLE4n9txs1w8mGBjoqUNyXk65Wp2Z43vW4FXC6bSQmXPKZXPTdLV+iYh4UYXCV506dbBarRw9etRj+tGjR4mJiSlznYkTJ5KRkeF+JScnn3+1Uq3CAnwwTxsXqSAgCOc53inmtFgoCHDd3ZhX5MDuYyHEz6fS65RazB4CPgGuvlq/CwksxGI5xy8AFichgYUnJxTnu0bFFxHxogqFL19fX7p06cL333/vnuZ0Ovn+++/p1q1bmevY7XZCQkI8XlIz1Q3xw2IxKHac/KBz2P3Y3e06HNYztx44rFZ2de+Dw+4HuC5hhgf6Ehag8CUVYLW5RrMvONl9wd9ezMDuO7FZz3wJ22Z1MPiqHScvOZommE7XXY8iIl5U4cuOEyZM4O233+a9995j27ZtPPjgg+Tk5DBq1KiqqE8uIvF1AokKsnPstE7y64eMxOI4c8uDxeHk1yEjAdczH7Pzi+kUG3ZOo+OLeIhp53peo/NkH8QJt67G4TjzrzOHw8L4W1efnJCXBn6hENWiqioVESlThcPX0KFD+c9//sMTTzxBx44dSUxMZMGCBaU64UvtE2S3cVl8BOm5RRSf0s/rUNuuLBn3JCZGqRYwh9V1m/+ScU+6B1o9nl1IWIAPHWLDvFm+1Bb1O7paqzIOuCdd3e4AbzyyEAOzVAuYzeoa7uSNRxaeHGjVNCHrENTroJYvEfE6wzy9E08Vy8zMJDQ0lIyMDF2CrIEycot4belOjmTmkxAZ6NFyVX/LOjrNmUHTHxe7R7jf1b0Pvw4Z6Q5eBcUO9h7PYWDHBtzYrl51HYbUdEk/wNp3ILi+x7ATqzY34OVPL+eLVc3dI9wPvmoH429d7TnCfXqy66HaPf8MoQ2r4QCkMujzRGoqhS+psM0HM3jvx704nCYNy3iwtrUgH3tuNgUBQe4+XuAKXnuO5dChYRijeyTg56O7zOQ8OR2w9l3XA7LDEzyGngDX8BOZOb6EBBae7ONVIusIFGZD57ugcW+vlSyVT58nUlPpgWZSYW0bhDL0slh8bBZ2pWRTUOx5mcdh9yM3vI47eJmmyYnsApKO59C+YRjDr2yk4CUXxmKFjsMhvgek74PMQ65Lib/ztxdTNyLXM3g5i+HETtedku1ugYRe1VC4iMh5PlhbpGt8BBGBvny14RA7jmZhMQwiAnwJtNvwsRqYpms4iaz8YtJzCwn2s9G/XX36tI4mwFdvO6kEvgHQ9R6ISIDt30DKFlcHer9Q8Al0PX7IWexq5cpNBUc+RDSBNoNdfb10s4eIVBNddpQLkl/kYPPBDFYnpbI/NZecgmKKHE4Mw8Dfx0qwn42OjcLp3CiMuMjAs29Q5HxkHoIDa2H/z667GItyXC1hFpvrkmRIA4jrDg06l3o0kdRc+jyRmkrhSyqFaZpkFRSTkllAfpEDw4CwAF+iguz42nR1W7zEUQw5xyD3uKtfmM3uGkTVP1wtXbWQPk+kptL1H6kUhmEQ4uejEeulelltEFLP9RIRuUipSUJERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2ze3qFpmgBkZmZ6e9ciIlKLlHyOlHyuiNQUXg9fWVlZAMTGxnp71yIiUgtlZWURGhpa3WWInDPD9PJXBqfTyaFDhwgODsYwDG/u+pxkZmYSGxtLcnIyISEh1V1OjaRzeOF0Di+Mzt+Fqwnn0DRNsrKyqF+/PhaLetFIzeH1li+LxULDhg29vdsKCwkJuWh/4dQUOocXTufwwuj8XbiL/RyqxUtqIn1VEBEREfEihS8RERERL1L4Oo3dbufJJ5/EbrdXdyk1ls7hhdM5vDA6fxdO51Ck6ni9w72IiIjIpUwtXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKX6d4/fXXiY+Px8/PjyuuuILVq1dXd0k1yooVKxgwYAD169fHMAy+/PLL6i6pRpk0aRKXXXYZwcHBREdHM2jQIH777bfqLqtGmTp1Ku3bt3cPDNqtWzfmz59f3WXVWJMnT8YwDB555JHqLkWkVlH4+t3s2bOZMGECTz75JOvXr6dDhw707duXlJSU6i6txsjJyaFDhw68/vrr1V1KjbR8+XLGjBnDzz//zKJFiygqKuKGG24gJyenukurMRo2bMjkyZNZt24da9eu5dprr2XgwIFs2bKlukurcdasWcO0adNo3759dZciUutoqInfXXHFFVx22WW89tprgOsZlLGxsfzpT3/i8ccfr+bqah7DMPjiiy8YNGhQdZdSYx07dozo6GiWL19Oz549q7ucGisiIoIXXniB0aNHV3cpNUZ2djadO3fmjTfe4F//+hcdO3bklVdeqe6yRGoNtXwBhYWFrFu3jj59+rinWSwW+vTpw08//VSNlcmlLCMjA3CFB6k4h8PBxx9/TE5ODt26davucmqUMWPG0L9/f4/fiSJSebz+YO2L0fHjx3E4HNStW9djet26ddm+fXs1VSWXMqfTySOPPMJVV11F27Ztq7ucGmXTpk1069aN/Px8goKC+OKLL2jdunV1l1VjfPzxx6xfv541a9ZUdykitZbCl8hFaMyYMWzevJmVK1dWdyk1TosWLUhMTCQjI4PPPvuMESNGsHz5cgWwc5CcnMzDDz/MokWL8PPzq+5yRGothS+gTp06WK1Wjh496jH96NGjxMTEVFNVcqkaO3Ys8+bNY8WKFTRs2LC6y6lxfH19adq0KQBdunRhzZo1/Pe//2XatGnVXNnFb926daSkpNC5c2f3NIfDwYoVK3jttdcoKCjAarVWY4UitYP6fOH6Zd2lSxe+//579zSn08n333+vviLiNaZpMnbsWL744guWLFlCQkJCdZdUKzidTgoKCqq7jBrhuuuuY9OmTSQmJrpfXbt2Zfjw4SQmJip4iVQStXz9bsKECYwYMYKuXbty+eWX88orr5CTk8OoUaOqu7QaIzs7m127drl/TkpKIjExkYiICBo1alSNldUMY8aMYdasWcydO5fg4GCOHDkCQGhoKP7+/tVcXc0wceJEbrzxRho1akRWVhazZs1i2bJlLFy4sLpLqxGCg4NL9TEMDAwkMjJSfQ9FKpHC1++GDh3KsWPHeOKJJzhy5AgdO3ZkwYIFpTrhS/nWrl3LNddc4/55woQJAIwYMYIZM2ZUU1U1x9SpUwHo3bu3x/Tp06czcuRI7xdUA6WkpHD33Xdz+PBhQkNDad++PQsXLuT666+v7tJERNw0zpeIiIiIF6nPl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeNH/B2k+JUs07naKAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=4\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1C0lEQVR4nO3dd3hUZf7+8feZmWTSGwRCCUmQXqVYAGmKAiJfQFREVEDUVWER0F11f2vfFdS1LBbEQnNFUVFBFBCkKEWlGOnSAgQEAqT3ZOb8/hgzMCQBAsmEhPt1XXNBTv3MYcjc8zzPecYwTdNERERERLzCUtkFiIiIiFxKFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL7Ea5555hkMw/BYFhsby4gRI7xax4wZMzAMg3379nn1vHJu9O8jItWdwlclS0hIYMyYMTRp0oSAgAACAgJo0aIFo0ePZtOmTZVd3iVp3759GIZxTo/SAkJsbCyGYdCrV68S17/33nvuY6xfv74Cn835Ods1mDRpUmWXeEmZPXs2r7/+emWXISLlxFbZBVzKFixYwJAhQ7DZbAwbNoy2bdtisVjYsWMHX3zxBVOmTCEhIYGYmJjKLrXC/P7771gsF9dngMjISD788EOPZa+88goHDx7ktddeK7Ztafz8/Fi+fDlHjhwhKirKY91HH32En58fubm55Vd4BRg6dCg33nhjseXt2rWrsHPedddd3H777djt9go7R1Uze/ZstmzZwrhx4yq7FBEpBwpflWTPnj3cfvvtxMTE8P3331OnTh2P9S+++CJvv/32RRdMTpWVlUVgYOAFHeNifIMNDAzkzjvv9Fj2ySefkJKSUmz5mXTp0oV169YxZ84cHn74YffygwcP8uOPPzJo0CDmzp1bbnVXhPbt25fpOZcHq9WK1Wo94zamaZKbm4u/v7+XqhIRKT8X7zt7NffSSy+RlZXF9OnTiwUvAJvNxtixY4mOjvZYvmPHDm655RYiIiLw8/OjY8eOzJ8/32ObojEzq1evZsKECURGRhIYGMigQYM4duxYsXMtXLiQrl27EhgYSHBwMP369WPr1q0e24wYMYKgoCD27NnDjTfeSHBwMMOGDQPgxx9/5NZbb6VBgwbY7Xaio6MZP348OTk5Z70Op4/5OtcuvnO5DgBbt27l2muvxd/fn/r16/Ovf/0Lp9N51rrKg5+fHzfffDOzZ8/2WP7xxx8THh5O7969i+2zadMmRowYQcOGDfHz8yMqKop77rmHEydOuLc5W5fgqX7++Wf69OlDaGgoAQEBdO/endWrV5fr84yNjeWmm25i1apVXHnllfj5+dGwYUNmzZrl3mb9+vUYhsHMmTOL7b948WIMw2DBggVAyWO+is6xePFiOnbsiL+/P1OnTgVg79693HrrrURERBAQEMDVV1/NN99843GOFStWYBgGn376Kf/+97+pX78+fn5+XHfddezevdtj2x49etCqVSs2bdpE9+7dCQgIoFGjRnz++ecArFy5kquuugp/f3+aNm3K0qVLiz2nQ4cOcc8991C7dm3sdjstW7Zk2rRp51VTjx49+Oabb9i/f7/73zg2NvYc/mVE5GKllq9KsmDBAho1asRVV111zvts3bqVLl26UK9ePR5//HECAwP59NNPGThwIHPnzmXQoEEe2//1r38lPDycp59+mn379vH6668zZswY5syZ497mww8/ZPjw4fTu3ZsXX3yR7OxspkyZwjXXXMOvv/7q8Uu+sLCQ3r17c8011/Cf//yHgIAAAD777DOys7N58MEHqVGjBr/88gtvvPEGBw8e5LPPPivTdTm9uw/gn//8J0lJSQQFBZXpOhw5coSePXtSWFjo3u7dd9/1amvJHXfcwQ033MCePXu47LLLAFcX0i233IKPj0+x7ZcsWcLevXsZOXIkUVFRbN26lXfffZetW7fy008/YRhGid2iBQUFjB8/Hl9fX/eyZcuW0bdvXzp06MDTTz+NxWJh+vTpXHvttfz4449ceeWVZ60/Ozub48ePF1seFhaGzXby18fu3bu55ZZbGDVqFMOHD2fatGmMGDGCDh060LJlSzp27EjDhg359NNPGT58uMex5syZU2oYPdXvv//O0KFD+ctf/sJ9991H06ZNOXr0KJ07dyY7O5uxY8dSo0YNZs6cyf/93//x+eefF/s/MWnSJCwWC48++ihpaWm89NJLDBs2jJ9//tlju5SUFG666SZuv/12br31VqZMmcLtt9/ORx99xLhx43jggQe44447ePnll7nllltITEwkODgYgKNHj3L11VdjGAZjxowhMjKShQsXMmrUKNLT04t1HZ6tpv/3//4faWlp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Rw+mTp3K4cOHi21f0hQSZ9O7d29CQkJ44YUXKCgoOK9jFn1qP7Ve0zT573//W+Z6AKZPn87UqVN56623SgylZbkON954Iz/99BO//PKLx/qPPvrovGo7XYsWLejVq5f70aFDh1K3vffee3n66ad55ZVXSt2mpGsJlDiz+bPPPsvixYv5+OOPS+yO69ChA5dddhn/+c9/SuzePp/XS3lo3rw5rVu3Zs6cOcyZM4c6derQrVu38z7ejTfeyC+//MLatWvdy7Kysnj33XeJjY0tNjatolmtVgYPHszcuXNLbNk+3+seGBh43l34InLxUctXJWncuDGzZ89m6NChNG3a1D3DvWmaJCQkMHv2bCwWi8cYq7feeotrrrmG1q1bc99999GwYUOOHj3K2rVrOXjwIL/99luZaggJCWHKlCncddddtG/fnttvv53IyEgOHDjAN998Q5cuXXjzzTfPeIxmzZpx2WWX8eijj3Lo0CFCQkKYO3fueY1XOX78OA899BAtWrTAbrfzv//9z2P9oEGDCAwMPOfr8Pe//50PP/yQPn368PDDD7unmoiJifH6VzfFxMTwzDPPnHGbkJAQunXrxksvvURBQQH16tXju+++IyEhwWO7zZs38/zzz9OtWzeSkpKKXac777wTi8XC+++/T9++fWnZsiUjR46kXr16HDp0iOXLlxMSEsLXX3991ro3btxY7Pjgalnr1KnT2Z94CYYMGcJTTz2Fn58fo0aNuqCJhB9//HE+/vhj+vbty9ixY4mIiGDmzJkkJCQwd+7cSpmkeNKkSSxfvpyrrrqK++67jxYtWpCcnMzGjRtZunQpycnJZT5mhw4dmDNnDhMmTOCKK64gKCiI/v37V0D1IuINCl+VaMCAAWzevJlXXnmF7777jmnTpmEYBjExMfTr148HHniAtm3burdv0aIF69ev59lnn2XGjBmcOHGCWrVq0a5dO49uqrK44447qFu3LpMmTeLll18mLy+PevXq0bVrV0aOHHnW/X18fPj6668ZO3YsEydOxM/Pj0GDBjFmzBiP2s9FZmYmubm5bNu2zX1346kSEhIIDAw85+tQp04dli9fzl//+lcmTZpEjRo1eOCBB6hbt657wPfFZvbs2fz1r3/lrbfewjRNbrjhBhYuXEjdunXd25w4cQLTNFm5ciUrV64sdoyirtAePXqwdu1ann/+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bBhff/21O7QBLF68mOzsbAYNGgTAxIkTmTVrFu+88w5bt25l/Pjx3HnnnaxcubJcrleVZHpZWlqaCZhpaWnePrWIiFQjpb2f5OTkmNu2bTNzcnLO67iDBpmmzWaarphV8sNmM83Bg8vjWXgaPny4OWDAANM0TfPqq68277nnHtM0TfPLL780i96yR40aZd5///0e+/3444+mxWIxc3JyzO3bt5uAuW7dOvf6Xbt2mYD52muvlXruzz77zKxRo4b75+nTp5uhoaHFtouJiXEfp6CgwKxZs6Y5a9Ys9/qhQ4eaQ4YMMU3TNHNzc82AgABzzZo1HscYNWqUOXTo0DNfjCqmLK87TbIqIiLyp5wcmDfvZFdjaQoL4csvXdtX1Pdtv/jii1x77bXFWpx+++03Nm3axEcffeReZpomTqeThIQEdu7cic1mo3379u71jRo1Ijw83OM4S5cuZeLEiezYsYP09HQKCwvJzc0lOzv7nMd02Ww2brvtNj766CPuuususrKymDdvHp988gkAu3fvJjs7m+uvv95jv/z8fNq1a1em61GdKHyJiIj8KT397MGriNPp2r6iwle3bt3o3bs3TzzxBCNGjHAvz8zM5C9/+Qtjx44ttk+DBg3YuXPnWY+9b98+brrpJh588EH+/e9/ExERwapVqxg1ahT5+fllGlA/bNgwunfvTlJSEkuWLMHf358+ffq4awX45ptvqFevnsd+drv9nM9R3Sh8iYiI/CkkBCyWcwtgFotr+4o0adIkLr/8cpo2bepe1r59e7Zt20ajRo1K3Kdp06YUFhby66+/0qFDB8DVAnXq3ZMbNmzA6XTyyiuvYLG4hn9/+umnHsfx9fXF4XCctcbOnTsTHR3NnDlzWLhwIbfeeis+Pj4AtGjRArvdzoEDB+jevXvZnnw1pvAlIiLyJ39/GDDAdVfj6YPtT2WzubarqFavIq1bt2bYsGFMnjzZveyxxx7j6quvZsyYMdx7770EBgaybds2lixZwptvvkmzZs3o1asX999/P1OmTMHHx4dHHnkEf39/91xhjRo1oqCggDfeeIP+/fuzevVq3jntFs7Y2FgyMzP5/vvvadu2LQEBAaW2iN1xxx2888477Ny5k+XLl7uXBwcH8+ijjzJ+/HicTifXXHMNaWlprF69mpCQEIYPH14BV+3ip7sdRURETjFhApytwcfh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Z66v2Nnr5dKiux1FREREvEjhS0RERMSLFL5EREREvEhjvkREREphmia5jlwKnAX4WHzws/rpRhi5YApfIiIip8lz5LEjeQcbj24kMSMRh9OB1WIlOjia9rXb0yyiGXbr+X+9jFzaFL5EREROcSD9AF/s+oLEjEQMwyDMHoavzZdCs5CtJ7ay5fgWooOjubnxzTQIaVBpdRqGwZdffsnAgQMrrQY5PxrzJSIi8qcD6Qf43/b/cSDjAA2CG9AwtCERfhGE2EOI8IugYWhDGgQ34EDGn9ulHyjX848YMQLDMDAMAx8fH2rXrs3111/PtGnTcDqdHtsePnyYvn37ntNxDcPgq6++KtdaS/PMM8+U+gXX5WHFihUMGDCAOnXqEBgYyOWXX85HH31UYecD179LeYZchS8RERFcXY1f7PqC4znHuSz0MnysPiVu52P14bLQyziec5wvdn1BniOvXOvo06cPhw8fZt++fSxcuJCePXvy8MMPc9NNN1FYWOjeLioqCru9/Lo+8/Pzy+1Y5aG0etasWUObNm2YO3cumzZtYuTIkdx9990sWLDAyxWeP4UvERERYEfyDhIzEokJjjnroHrDMGgQ3IDEjER+T/69XOuw2+1ERUVRr1492rdvzz/+8Q/mzZvHwoULmTFjhkcNRa1Z+fn5jBkzhjp16uDn50dMTAwTJ04EIDY2FoBBgwZhGIb756IWqvfff9/jy6AXLVrENddcQ1hYGDVq1OCmm25iz549HjUePHiQoUOHEhERQWBgIB07duTnn39mxowZPPvss/z222/uFryimg8cOMCAAQMICgoiJCSE2267jaNHj7qPWVo9p/vHP/7B888/T+fOnbnssst4+OGH6dOnD1988UWp1zQlJYVhw4YRGRmJv78/jRs3Zvr06e71iYmJ3HbbbYSFhREREcGAAQPYt2+fu66ZM2cyb94893NasWLFmf4Jz0pjvkRE5JJnmiYbj250dfeV0uJ1Ol+rLxiw4egGWtdsXaF3QV577bW0bduWL774gnvvvbfY+smTJzN//nw+/fRTGjRoQGJiIomJiQCsW7eOWrVqMX36dPr06YPVevIbNHbv3s3cuXP54osv3MuzsrKYMGECbdq0ITMzk6eeeopBgwYRHx+PxWIhMzOT7t27U69ePebPn09UVBQbN27E6XQyZMgQtmzZwqJFi1i6dCkAoaGhOJ1Od/BauXIlhYWFjB49miFDhngEmZLqORdpaWk0b9681PVPPvkk27ZtY+HChdSsWZPdu3eTk5MDQEFBAb1796ZTp078+OOP2Gw2/vWvf9GnTx82bdrEo48+yvbt20lPT3cHtoiIiHOurSQKXyIicsnLdeSSmJFImD2sTPuF28NJzEgk15GLv82/Yor7U7Nmzdi0aVOJ6w4cOEDjxo255pprMAyDmJgY97rIyEgAwsLCiIqK8tgvPz+fWbNmubcBGDx4sMc206ZNIzIykm3bttGqVStmz57NsWPHWLdunTuENGrUyL19UFAQNpvN41xLlixh8+bNJCQkEB0dDcCsWbNo2bIl69at44orrii1nrP59NNPWbduHVOnTi11mwMHDtCuXTs6duwInGwNBJgzZw5Op5P333/fHaCnT59OWFgYK1as4IYbbsDf35+8vLxi1+98qdtRREQueQXOAhxOBzajbG0SVsOKw+mgwFlQQZWdZJpmqa1rI0aMID4+nqZNmzJ27Fi+++67czpmTExMsaCza9cuhg4dSsOGDQkJCXEHlQMHXDcXxMfH065duzK1/mzfvp3o6Gh38AJo0aIFYWFhbN++/Yz1nMny5csZOXIk7733Hi1btix1uwcffJBPPvmEyy+/nL///e+sWbPGve63335j9+7dBAcHExQURFBQEBEREeTm5hbrbi0vavkSEZFLno/FB6vFSqFZePaNT+EwXfN/+VjOravyQmzfvp24uLgS17Vv356EhAQWLlzI0qVLue222+jVqxeff/75GY8ZGBhYbFn//v2JiYnhvffeo27dujidTlq1auUeAO/vX3EtfCXVU5qVK1fSv39/XnvtNe6+++4zbtu3b1/279/Pt99+y5IlS7juuusYPXo0//nPf8jMzKRDhw4l3jFZliBYFmr5EhGRS56f1Y/o4GhS81LLtF9KXgrRwdH4WUseHF5eli1bxubNm4t1CZ4qJCSEIUOG8N577zFnzhzmzp1LcnIyAD4+PjgcjrOe58SJE/z+++/885//5LrrrqN58+akpKR4bNOmTRvi4+Pdxz6dr69vsXM1b97cYxwawLZt20hNTaVFixZnret0K1asoF+/frz44ovcf//957RPZGQkw4cP53//+x+vv/467777LuAKrrt27aJWrVo0atTI4xEaGlrqc7oQCl8iInLJMwyD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ERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIltlFyDVg2mapGYXcCwzj5x8BxbDICzAh8hgO34+1souTy4VjgLIPApZx8F0gNUOQbUhoAZY9FlTRC4OCl9yQXLyHWw6mMovCckkpmSTlefAYToBAz+bhRA/H9pEh9K+QThxNQMxDKOyS5bqKO0gJK6DxJ8hJwUKsl3LDQv4BkFwFMR2gXodwC+0cmsVkUueYZqm6c0TpqenExoaSlpaGiEhId48tZSz3UkZzI//g11JmdisBhEBvgTabfhYLZimSU6Bg4zcQlKyCwiyW7mmcSTXt6hNkF2ZX8pJYR7sXgq/L4KcZPALB/9Q8AlwBS9nIeRnQnYyFOZAWCy0GgR124M+CFR5ej+RqkrhS87Lz3tPMHfjQTLzComJCMTXduYuneSsfJIycmlZN5Q7r44hItDXS5VKtZWfBRtmwoE14B8BQVFnDlTOQkjZ5wplLQdC0xsVwKo4vZ9IVaVBEFJmmw6m8un6RBxOk0aRQWcNXgARgb40rBnElkNpfPTTfnLyHV6oVKotRyH8+j/YvxrC4iC4ztmDlMUGNRq5uiE3fw57l3unVhGR0yh8SZmkZuczP/4PChxO6ocHlDiGKz/PICPFSn6e5zpfm4WGkYFs+SOdZTuOeqtkqY72r4b9a1zdiL4BxdfnFUByhuvP0wXVcnVLbpsPqQcqvFQRkdNp8I2UyapdxzmQnE2T2sHF1u3d4sfKueFsWRuE6TQwLCatOmXS45YU4lrmAmC3WakR6MvKncdo1yCcumH+3n4KUtXlpsOOBeDjD/Ygz3Wb98Fnq2DNdnCaYDGgc3O4rSu0ijm5XUg9OLYNdnwLV/1F3Y8i4lVl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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=5\n" - ] - }, - { - "data": { - "image/png": "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msybN48BAwZgmqbH/6u+ffuSnp5e4t/xfGsSkZpDlx2rQPHliaysrBLzpk+fTmZmJseOHfPo6Lxnzx5M0+Qf//gH//jHP0rdbnJyMvXr13f/3LBhQ4/54eHhgOuSCsDu3bsBuO6660rdXkhIiMfPNpuNBg0alFju4MGDPPHEE3z55ZfubRdLT08vddvncujQIYYOHco111zDSy+95J5envNw4MCBUi/rNm/e/IJqOlN6erpHvzZfX18iIiJKLHfnnXcydepUNm3axJw5c7jjjjtK9M0qlpKSwlNPPcVHH31EcnJyif2dKSEhgQcffJBhw4YxceJE9/Tif9szL/Gdub3i90RZmjZtWuZwGac7870Grvfb6e+H9u3b06JFC+bOncvo0aMB1yXHWrVqlfkePF18fHyJaWX9G7ds2dI9v02bNmXWeeb/iWINGjQo8W8UGhpaog9maGiox/rHjx8nLS2Nt956i7feeqvU4zjz3/V8axKRmkPhqwqEhoZSt25dtm7dWmJe8QfJmeNHFbdSPProo2X2jWnSpInHz2XdMWaapsc233///RJDIQAefXrAdWfimXdfOhwObrjhBlJSUnjsscdo0aIFgYGBHD58mJEjR15Q5/aCggJuvfVW7HY7H3/8sUcdF3IeKssjjzzi0YG8Z8+erFixosRyV111FY0bN2b8+PEkJiZy5513lrnN22+/nR9++IG//OUvdOjQgaCgIJxOJ/369StxLlNTUxkyZAjNmjXjnXfe8ZhXvOwLL7xAhw4dSt1XRfYbOtd7rdjQoUP597//zYkTJwgODubLL79k2LBhJd5rpamIvnrnW2dZy53v/6m77rqrzODbrl27C6pJRGoOha8q0r9/f9555x3Wrl17Xh2fGzVqBICPj895tUScj+IO4LVr177gbW7ZsoVdu3Yxa9Ys7rnnHvf0JUuWXHBd48aNIyEhgVWrVlGnTh2PeeU5D7Gxse4WoNP9+uuvF1zb6f761796tE6erRVp2LBh/Otf/6Jly5ZlhqHU1FS+++47nnrqKZ544gn39NKOwel0Mnz4cNLS0li6dKn75odixf+2ISEhFfZ+qQhDhw7lqaeeYt68edSpU4eMjAyPy3vlFRsbW+q/586dO93zvSkqKorg4GAcDkeFnveyWkpFpHpSn68q8te//pWAgADuvfdejh07VmL+md96a9euTa9evZg+fTpHjhwpsXxpQ0icS9++fQkJCeHZZ5+lsLDwgrZZ/K399HpN0+S///1vuesBmDFjBtOnT+f1118vNZSW5zzcfPPN/PTTT6xdu9Zj/gcffHBBtZ2pVatW9OnTx/3q3Llzmcved999PPnkk7z44otlLlPauQRKHdn8qaeeYvHixXz44YelXo7r3LkzjRs35j//+U+pl7cv5P1SEVq2bEnbtm2ZO3cuc+fOpW7duvTo0eOCt3fzzTezdu1afvzxR/e07Oxs3nrrLeLi4kr0TatsVquVIUOGMG/evFJbti/0vAcGBl7wJXwRufSo5auKNG3alDlz5jBs2DCaN2/uHuHeNE0SExOZM2cOFovFo4/V66+/zrXXXkvbtm25//77adSoEceOHePHH3/k0KFDbNq0qVw1hISEMG3aNO6++246derEHXfcQVRUFAcPHuTrr7/mmmuu4bXXXjvrNlq0aEHjxo159NFHOXz4MCEhIcybN++C+qucOHGChx9+mFatWmG32/nf//7nMX/w4MEEBgae93n461//yvvvv0+/fv145JFH3ENNxMbGev3RTbGxsfzzn/886zIhISH06NGD559/nsLCQurXr8+3335LYmKix3JbtmzhmWeeoUePHiQnJ5c4T3fddRcWi4V33nmHm266idatWzNq1Cjq16/P4cOHWb58OSEhIXz11VfnrHvjxo0ltg+ulrWuXbue+8BLMXToUJ544gn8/PwYPXr0RQ0k/Pjjj/Phhx9y0003MW7cOCIiIpg1axaJiYnMmzevSgYpnjJlCsuXL+eqq67i/vvvp1WrVqSkpLBx40aWLl1KSkpKubfZuXNn5s6dy8SJE7niiisICgpiwIABlVC9iHiDwlcVGjhwIFu2bOHFF1/k22+/5b333sMwDGJjY+nfvz8PPvgg7du3dy/fqlUr1q9fz1NPPcXMmTM5efIktWvXpmPHjh6XqcrjzjvvpF69ekyZMoUXXniB/Px86tevT/fu3Rk1atQ51/fx8eGrr75i3LhxTJ48GT8/PwYPHszYsWM9aj8fWVlZ5OXlsX37dvfdjadLTEwkMDDwvM9D3bp1Wb58OX/605+YMmUKkZGRPPjgg9SrV8/d4ftSM2fOHP70pz/x+uuvY5omN954IwsXLqRevXruZU6ePIlpmqxcuZKVK1eW2EbxpdBevXrx448/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7Fiu81GTKHyJiIj8LiPj3MGrmNPpWr6ywlePHj3o27cvkyZNYuTIke7pWVlZ/PGPf2TcuHEl1mnYsCG7du0657b379/PLbfcwkMPPcS///1vIiIiWL16NaNHj6agoKBcHeqHDx9Oz549SU5OZsmSJfj7+9OvXz93rQBff/019evX91jPbref9z5qGoUvERGR34WEgMVyfgHMYnEtX5mmTJlChw4daN68uXtap06d2L59O02aNCl1nebNm1NUVMQvv/xC586dAVcL1Ol3T27YsAGn08mLL76IxeLq/v3xxx97bMfX1xeHw3HOGrt160ZMTAxz585l4cKF3Hbbbfj4+ADQqlUr7HY7Bw8epGfPnuU7+BpM4UtEROR3/v4wcKDrrsYzO9ufzmZzLVdZrV7F2rZty/Dhw5k6dap72mOPPcbVV1/N2LFjue+++wgMDGT79u0sWbKE1157jRYtWtCnTx8eeOABpk2bho+PD3/+85/x9/d3jxXWpEkTCgsLefXVVxkwYABr1qzhzTNu4YyLiyMrK4vvvvuO9u3bExAQUGaL2J133smbb77Jrl27WL58uXt6cHAwjz76KBMmTMDpdHLttdeSnp7OmjVrCAkJYcSIEZVw1i59uttRRETkNBMnwrkafBwOmDDBO/U8/fTTOE9rimvXrh0rV65k165ddO/enY4dO/LEE09Qr1499zKzZ8+mTp069OjRg8GDB3P//fcTHByMn58fAO3bt+ell17iueeeo02bNnzwwQclhrbo1q0bDz74IEOHDiUqKornn3++zBqHDx/O9u3bqV+/Ptdcc43HvGeeeYZ//OMfTJ48mZYtW9KvXz++/vpr4uPjK+L0VEuGaZqmN3eYkZFBaGgo6enphFR2e62IiNRYZX2e5OXlkZiYSHx8vDtslNebb7qGk7BaPVvAbDZX8HrjDXjwwYs9Au85dOgQMTExLF26lOuvv76qy6mRyvO+U8uXiIjIGR58EL7/3nVp8fcuUVgsrp+///7SD17Lli3jyy+/JDExkR9++IE77riDuLg4evToUdWlCerzJSIiUqprrnG9cnNddzWGhFR+H6+KUlhYyN/+9jf27dtHcHAw3bp144MPPnB3hJeqpfAlIiJyFv7+1Sd0Fevbty99+/at6jKkDLrsKCIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIi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9ttvqV27NjfffDNt27ZlypQp7tqGDBlCv3796N27N1FRUXz44YcYhsH8+fMJDw+nR48e9OnTh0aNGjF37txyn59Zs2aRk5PD5MmTqVu3rvv1hz/8ocx1fH19mTRpEu3ataNHjx5YrVY++ugjAAICAli1ahUNGzbkD3/4Ay1btmT06NHk5eUREhICwP3330/z5s3p0qULUVFRrFmzptx1n84wz/UOq2AZGRmEhoaSnp7uPigREZHyKuvzJC8vj8TExLOOFVWW4hHuT+SeoGFwQ9dwEmcocBRwMPMgtfxrcXfLu4kJiSllS3K5Kc/7Th3uRUREftcwpCF3tbzL/WxHDNdwElbDisN0kJqfCiY0DG7IkKZDFLzkgih8iYiInKZhSEMe6vAQv6b8yoZjG0jKTKLQUYjVYqVNZBs61+lM84jm2K0V92gfubwofImIiJzBbrXTLqodbWu1Jc+RR6GzEB+LD35Wv0odyV4uDwpfIiIiZTAMA3+bP/5U7uj1cnnR3Y4iIlIjefl+MrnMlef9pvAlIiI1io+Pa7T5nJycKq5ELifF77fi99/Z6LKjiIjUKFarlbCwMJKTkwHXOE7qpyWVxTRNcnJySE5OJiwsrMyx2E6n8CUiIjVOdHQ0gDuAiVS2sLAw9/vuXBS+RESkxjEMg7p161K7du2LfhSMyLn4+PicV4tXMYUvERGpsaxWa7k+FEW8QR3uRURERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2xVXcClJDu/iKz8IgwgyM9GgK9Oj4hchgrzIC8NTBN8A8AeAoZR1VWJ1BiXfbpIzsxjc1I6W39L51hGHgVFTgB8bRbqhPjRtn4o7RqEERVsr+JKRUQqUW4q/PaL65V+yBXAMMHqC4G1oE5baNAZQmMUxEQukmGapunNHWZkZBAaGkp6ejohISHe3LWH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VyuQq+Ij6BQbjs+5hgMQKS+nE478AvvXwPGdvw9DUfxrzXC1bvmHQYMrIe4aCI+rulqlQunzRKorhS+pENn5RfyWlktyZj65BQ4sFgj196VOiJ16of5YNKSEVLbiy4qZRyD7JJgO14CsQXVcY4NpMNUaR58nUl3psqNUiEC7jaZ1gmlaJ/jcC4tUBsOAkHqul4jIJUzXgERERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExItsVV2A1AyZeYUcSs3leGY+uYUOLIZBWIAPdYL9qB/uj9ViVHWJUtOZJmQchowjkHMCnA6w2SGoNoTGQEBEVVcoIgIofMlFOpqex4/7TrLhQAqp2QU4TNd0AzABfx8LDSMCuapRBF1iI/C1qbFVKpjTAYc3wv7v4cQuKMj2nG8Y4BcG9TtD3LUQ2bhKyhQRKabwJRfE6TT5Ye9JFm49wvHMfCICfYmLDMRmPRWuTNMkp8BB4olsdidnkpCUxsAO9akf5l+FlUuNkn0Stn4KB39y/RxUB0IbugJXMacDclNgzxJIWgvN+0HTvmDzrZqaReSyp/Al5eZwmizY/BtLth/Dz2alRXQwhlHysqJhGATabcTbbeQVOticlM7xzHzu6RpHfK3AKqhcapTMo/DzW3B8J4THgT249OUsVgiMgoBakHUMNn8Mmceg092uy5IiIl6ma0BSbt/vPs63244REehL/XD/UoPXmfx8rDStHcSx9Dzm/HyAk1n5XqhUaqyCHFg/A07ugtotyw5epzMMCI529f/atwK2fu7qJyYi4mUKX1Iuh1JzWLz1KIF2K+EBpV+2sebnEZB6Amt+nsd0i8WgUVQQB0/m8M2WIzid+uCTC7RrMRzbCpFNwVKyAT8338axlABy80tp3LcHu0LYvmVwdIsXihUR8XRBlx1ff/11XnjhBY4ePUr79u159dVXufLKKyu6NrkErdp1nJPZBbSILtnSUG/rejrNm0njH7/D4nTitFjY2/V6Nt46it9adwbAajGoF+7PhgOpdG1ciya1g7x9CFLdZSW7glNgFFg9vwCs3tKAlz65kvk/NMXptGCxOBnYbTd/vv1nrmlz+NSCAZGQfcIV4uq0AYu+h4qI95T7N87cuXOZOHEiTz75JBs3bqR9+/b07duX5OTkyqhPLiEnsvLZfCid2sH2Epca2301h9sn3kWjn5ZhcToBsDidNPppGbdPGE67BR+6lw3x8yG30MEvB1O9Wr/UEL/9AjkprvB1mmnzO9Ljkbv46scmOJ2uX21Op4WvfmxC93F38+aXHT23E1LPdXdkyl5vVS4iAlxA+HrppZe4//77GTVqFK1ateLNN98kICCA9957rzLqk0vIwZQc0nMLCQ/0bG2ot3U91736NAYmVofDY57V4cDA5LqpT1Fv2wb39DB/X7YfycChS49SXse2gs0fjFO/vlZvacCY//bFxKDIYfVYvMhhxcTg4Vf6smZr/VMz7MFQlAup+71UuIiIS7nCV0FBARs2bKBPnz6nNmCx0KdPH3788ccKL04uLckZrk7yljNavTrNm4nTeva3ktNqoeO8me6fA+1WMnML1fFeyqcwD9IPlehg/9InV2K1Os+6qtXq5OVPzugeYVgh7WBFVykiclbl6vN14sQJHA4HderU8Zhep04ddu7cWeo6+fn55Oef+oDNyMi4gDLlUpCVX1RimjU/z93H62ysDgdNfliKNT8Ph90PX5uFAoeT7ALHWdcT8VCYA45C8D01VEluvs3dx+tsihxWPl/TjNx8G/7239/LNj/XGGAiIl5U6b1MJ0+eTGhoqPsVExNT2buUSlLagBL2nKxzBq9iFqcTe06W6wcTDAz01CG5IKddrc7I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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=6\n" - ] - }, - { - "data": { - "image/png": "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IyPD7bJ3yf8FEblEmeJxGRkZJmAOGjSo1Ly0tDTz2LFjrldubq5r3nXXXWe2bt3azM/Pd01zOBxm165dzSZNmrimTZ8+3QTMPn36mA6HwzV9woQJptVqNdPT003TNM2srCwzNDTUvP/++91qOHLkiBkSEuI2fcSIESZgPvHEE6VqPrXGEpMmTTINwzAPHDjgmvb000+bp7/lYmNjzREjRpRav8RLL71kAuasWbMqfB7Gjx9vAuYvv/zimpaSkmKGhISYgJmYmFjufk/Xv39/MzY29pyXj42NNfv3728WFxeb0dHR5vPPP2+apmlu377dBMyVK1e6/p3WrVvnWq+sc/nxxx+bgPnDDz+Uu7+HH37YtFqt5rJly0zTdJ6PJk2amH379nV7D+Tm5prx8fHm9ddff8b6ExMTTaDc108//eR2rKfXl5KSYtpsNvPRRx91TXvyySdNb29vMzU11TWtoKDADA0NNe+9917XtJLzcuq/T8k+Fi1a5FZnyb/xjz/+6JqWlZVlxsfHm3FxcabdbjdN0zSXL19uAmaLFi3MgoIC17L/+c9/TMDcsmWLa1rPnj1NwJw9e7Zr2s6dO03AtFgs5s8//+yavnjxYhMwp0+f7po2evRos06dOubx48fdar3jjjvMkJAQ179xRWqq6PtPRC5uuuxYDTIzM4Gyv7326tWLyMhI1+utt94CIDU1lWXLlnH77beTlZXF8ePHOX78OCdOnKBv377s3r2bw4cPu23rgQcecLsM1b17d+x2OwcOHACcrSzp6ekMGzbMtb3jx49jtVq56qqrWL58ean6HnrooVLTTm1JysnJ4fjx43Tt2hXTNPn111/P4ww5LV++nCeffJI///nP3H333RU+D99++y1XX321WwtPZGSk63KpJ1itVm6//XY+/vhjwNnRPiYmhu7du5e5/KnnMj8/n+PHj3P11VcDsHHjxjLXmTVrFm+//TYvvfQSvXv3BiAhIYHdu3dz5513cuLECdd5ysnJ4brrruOHH344p8uvDzzwAEuWLCn1atmypdtyLVu2dDumyMhImjVrxr59+1zThg4dSlFREV988YVr2nfffUd6ejpDhw49ay3x8fGlWse+/fZbrrzySq655hrXtMDAQB544AH279/P9u3b3ZYfNWqUW+tgSc2n1lmyjTvuuMP1c7NmzQgNDaVFixZurdUlfy9Z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4vnnn+fNN98kOzub6OhorrrqKv70pz+dUz0ff/yx607NU40YMeKCwtff//53cnNzz+kuxzOpXbs2a9as4fHHH+eNN94gPz+fNm3a8PXXX9O/f/8L2vaF1LR27Vqee+45vvjiC95++20iIiK44oorePHFF89rmw8//DAJCQlMnz6d1157jdjYWIUvkUuYYapXp4iIiIjHqM+XiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMfH+XI4HPz+++8EBQXpkRkiInLeTNMkKyuLunXrVsuAuiLny+Ph6/fffycmJsbTuxURkRoqKSnJ7WkgIhc7j4evoKAgwPmfJTg42NO7FxGRGiIzM5OYmBjX54rIpcLj4avkUmNwcLDCl4iIXDB1YZFLjS6Si4iIiHiQwpeIiIiIByl8iYiIiHiQx/t8iYiIeIrdbqeoqKi6y5AaztvbG6vVes7LK3yJiEiNY5omR44cIT09vbpLkctEaGgo0dHR53QDiMKXiIjUOCXBKyoqCn9/f90RKVXGNE1yc3NJSUkBoE6dOmddR+FLRERqFLvd7gpeERER1V2OXAb8/PwASElJISoq6qyXINXhXkREapSSPl7+/v7VXIlcTkreb+fSx1DhS0REaiRdahRPqsj7TeFLRERExIMUvkREREQ8SOFLRETkNIWFhRc0/0IdOXKEP//5zzRs2BCbzUZMTAwDBgzg+++/r9L9imcofImIiJxizpw5tG7dmqSkpDLnJyUl0bp1a+bMmVMl+9+/fz8dO3Zk2bJlvPzyy2zZsoVFixbRu3dvxowZUyX7FM9S+BIREflDYWEhTz31FLt27aJXr16lAlhSUhK9evVi165dPPXUU1XSAvbwww9jGAZr165lyJAhNG3alCuuuIKJEyfy888/s3//fgzDICEhwbVOeno6hmGwYsUK17StW7dy4403EhgYSO3atbn77rs5fvx4pdcrFafwJSIi8gcfHx+WLl1Kw4YN2bdvn1sAKwle+/bto2HDhixduhQfH59K3X9qaiqLFi1izJgxBAQElJofGhp6TttJT0/n2muvpX379qxfv55FixZx9OhRbr/99kqtV86PwpeIiMgpYmJiWLFihVsAW7NmjVvwWrFiBTExMZW+7z179mCaJs2bN7+g7bz55pu0b9+eF154gebNm9O+fXs+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U9i2bRszZ85k2bJl/PWvfwWga9euvP766wQHB5OcnExycjKPPfZYqVqGDx/O119/7QptAIsXLyY3N5fBgwcDMGnSJGbNmsU777zDtm3bmDBhAnfddRcrV66slPN1STI9LCMjwwTMjIwMT+9aRERqkPI+T/Ly8szt27ebeXl557XdwYNN08vLNJ0xq+yXl5dpDhlSGUfhbsSIEebAgQNN0zTNq6++2rz33ntN0zTNL7/80iz5yB49erT5wAMPuK33448/mhaLxczLyzN37NhhAua6detc83fv3m0C5muvvVbuvj/77DMzIiLC9fP06dPNkJCQUsvFxsa6tlNUVGTWqlXLnDVrlmv+sGHDzKFDh5qmaZr5+fmmv7+/uWbNGrdtjB492hw2bNiZT8YlpiLvOw2yKiIi8oe8PJg37+SlxvIUF8OXXzqXr6rnbb/44otce+21pVqcNm3axObNm/noo49c00zTxOFwkJiYyK5du/Dy8qJDhw6u+Y0bNyYsLMxtO0uXLmXSpEns3LmTzMxMiouLyc/PJzc395z7dHl5eXH77bfz0Ucfcffdd5OTk8O8efP45JNPANizZw+5ublcf/31busVFhbSvn37Cp2PmkThS0RE5A+ZmWcPXiUcDufyVRW+evToQd++fXnyyScZOXKka3p2djZ/+tOfGDduXKl1GjRowK5du8667f3793PzzTfz0EMP8a9//Yvw8HBWrVrF6NGjKSwsrFCH+uHDh9OzZ09SUlJYsmQJfn5+9OvXz1UrwDfffEO9evXc1rPZbOe8j5pG4UtEROQPwcFgsZxbALNYnMtXpcmTJ9OuXTuaNWvmmtahQwe2b99O48aNy1ynWbNmFBcX8+uvv9KxY0fA2QJ16t2TGzZswOFw8Morr2CxOLt/f/rpp27b8fHxwW63n7XGrl27EhMTw5w5c1i4cCG33XYb3t7eALRs2RKbzcbBgwfp2bNnxQ6+BlP4EhER+YOfHwwc6Lyr8fTO9qfy8nIuV1WtXiVat27N8OHDmTJlimva448/ztVXX83YsWO57777CAgIYPv27SxZsoQ333yT5s2b06dPHx544AGmTp2Kt7c3jz76KH5+fq6xwho3bkxRURFvvPEGAwYMYPXq1bxz2i2ccXFxZGdn8/3339O2bVv8/f3LbRG78847eeedd9i1axfLly93TQ8KCuKxxx5jwoQJOBwOrrnmGjIyMli9ejXBwcGMGDGiCs7axU93O4qIiJxi4kQ4W4OP3Q4TJnimnueeew7HKU1xbdq0YeXKlezatYvu3bvTvn17nnrqKerWretaZtasWdSuXZsePXowePBg7r//foKCgvD19QWgbdu2vPrqq7z44ou0atWKjz76qNTQFl27duXBBx9k6NChREZG8tJLL5Vb4/Dhw9m+fTv16tWjW7dubvOef/55/vGPfzBp0iRatGhBv379+Oabb4iPj6+M03NJMkzTND25w8zMTEJCQsjIyCC4qttrRUSkxirv8yQ/P5/ExETi4+NdYaOi3nnHOZyE1ereAubl5Qxeb78NDz54oUfgOYcOHSImJoalS5dy3XXXVXc5NVJF3ndq+RIRETnNgw/Cjz86Ly3+0SUKi8X5848/XvzBa9myZcyfP5/ExETWrFnDHXfcQVxcHD169Kju0gT1+RIRESlTt27OV16e867G4OCq7+NVWYqKivjb3/7Gvn37CAoKomvXrnz00UeujvBSvRS+REREzsDP79IJXSX69u1L3759q7sMKYcuO4qIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kO52FBERAQ5kHiCnKKfC6wV4BxAbHFsFFUlNpfAlIiKXvQOZB7j5y5vPe/0FgxcogMk502VHERG57J1Pi1dlrn+6n376CavVSv/+/St1u+dq//79GIZBQkJCtey/plP4EhERuci8//77/PnPf+aHH37g999/r+5ypJIpfImIiFxEsrOzmTNnDg899BD9+/dnxowZbvPnz59PkyZN8PX1pXfv3sycORPDMEhPT3cts2rVKrp3746fnx8xMTGMGzeOnJyTrXNxcXG88MIL3HvvvQQFBdGgQQPeffdd1/z4+HgA2rdvj2EY9OrVqyoP+bKj8CUiInIR+fTTT2nevDnNmjXjrrvu4oMPPsA0TQASExO59dZbGTRoEJs2beJPf/oT/+///T+39ffu3Uu/fv0YMmQImzdvZs6cOaxatYqxY8e6LffKK6/QqVMnfv31Vx5++GEeeughfvvtNwDWrl0LwNKlS0lOTuaLL77wwJFfPhS+RERELiLvv/8+d911FwD9+vUjIyODlStXAjBt2jSaNWvGyy+/TLNmzbjjjjsYOXKk2/qTJk1i+PDhjB8/niZNmtC1a1emTJnCrFmzyM/Pdy1300038fDDD9O4cWMef/xxatWqxfLlywGIjIwEICIigujoaMLDwz1w5JcPhS8REZGLxG+//cbatWsZNmwYAF5eXgwdOpT333/fNb9z585u61x55ZVuP2/atIkZM2YQGBjoevXt2xeHw0FiYqJruTZt2rj+bhgG0dHRpKSkVNWhySk01ISIiMhF4v3336e4uJi6deu6ppmmic1m48033zynbWRnZ/OnP/2JcePGlZrXoEED19+9vb3d5hmGgcPhOM/KpSIUvkRERC4CxcXFzJo1i1deeYUbbrjBbd6gQYP4+OOPadasGd9++63bvHXr1rn93KFDB7Zv307jxo3PuxYfHx8A7Hb7eW9DyqfwJSIichFYsGABaWlpjB49mpCQELd5Q4YM4f333+fTTz/l1Vdf5fHHH2f06NEkJCS47oY0DAOAxx9/nKuvvpqxY8dy3333ERAQwPbt21myZMk5t55FRUXh5+fHokWLqF+/Pr6+vqVqkvOnPl8iIiIXgffff58+ffqUGXKGDBnC+vXrycrK4vPPP+eLL76gTZs2TJ061XW3o81mA5x9uVauXMmuXbvo3r077du356mnnnK7lHk2Xl5eTJkyhWnTplG3bl0GDhxYOQcpABhmyf2rHpKZmUlISAgZGRkEBwd7ctciIlKDlPd5kp+fT2JiIvHx8fj6+p7Ttraf2M7QBUPPu5Y5N8+hZUTL817/QvzrX//inXfeISkpqVr2L04Ved/psqOIiMgl5O2336Zz585ERESwevVqXn755VJjeMnFTeFLRETkErJ7927++c9/kpqaSoMGDXj00Ud58sknq7ssqQCFLxERuewFeAdU6/oV8dprr/Haa695bH9S+RS+RETkshcbHMuCwQvIKco5+8KnCfAOIDY4tgqqkppK4UtERAQUoMRjNNSEiIiIiAcpfImIiIh4kC47ioiIlMM0TfKLHBTaHfhYLfh6W1wjyYucL4UvERGR0+QX2dmenMm6xFQOnMjB7jCxWgxiIwLoHB9OyzrB+Hpbq7tMuUQpfImIiJxi//Ec5qxP4sCJHAwMwvy98fGxUmx3sPlQBpsOpRMbEcDQTjHE1fLcEBOXgl69etGuXTtef/316i7loqY+XyIiIn/YfzyH6asTOXA8h9jwABpHBRIRaCPEz5uIQBuNowKJDQ/gwB/L7T9e8aEpzmTk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4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg7yquwCpGUzTJD23iGPZBeQV2rEYBqH+3kQG2fD1tlZ3eXK5sBdB9lHIOQ6mHaw2CKwN/hFg0XdNEbk4KHzJBckrtLP5UDprE1NJSsslp8CO3XQABr5eFoJ9vWkTE0KHBmHE1wrAMIzqLllqooxDkLQOkn6BvDQoynVONyzgEwhB0RDXDep1BN+Q6q1VRC57hmmapid3mJmZSUhICBkZGQQHB3ty11LJ9qRkMT/hd3anZONlNQj39yHA5oW31YJpmuQV2cnKLyYtt4hAm5VrmkRyfcvaBNqU+aWSFBfAnqXw2yLISwXfMPALAW9/Z/ByFENhNuSmQnEehMZBq8FQtwPoi8AlT58ncqlS+JLz8su+E8zdeIjsgmJiwwPw8TrzJZ3UnEJSsvK5om4Id10dS3iAj4cqlRqrMAc2zISDa8AvHAKjzxyoHMWQtt8Zyq4YBM1uUgC7xOnzRC5V6gQhFbb5UDqfrk/C7jBpHBl41uAFEB7gQ8NagWw9nMFHPx8gr9DugUqlxrIXw6//gwOrITQeguqcPUhZvCCisfMy5JbPYd9yz9QqInIahS+pkPTcQuYn/E6R3UH9MP8y+3AVFhhkpVkpLHCf5+NloWFkAFt/z2TZzqOeKllqogOr4cAa52VEH//S8wuKIDXL+efpAqOclyW3z4f0g1VeqojI6dT5Ripk1e7jHEzNpWntoFLz9m31ZeXcMLb+FIjpMDAsJq26ZNPr1jTir8gHwOZlJSLAh5W7jtG+QRh1Q/08fQhyqcvPhJ0LwNsPbIHu87bsh89W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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=7\n" - ] - }, - { - "data": { - "image/png": "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Wd80TebMmcOAAQMwTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAEOHDuWqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrvjjjuYMmUKGzZsYNasWdx+++2l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMCwYcOYMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz2b06NGA65JjnTp1yn0PniohIaHUtPL+jVu1auWe37Zt23LrPP3/RImGDRuW+jcKDQ0t1QczNDTUY/1jx46Rnp7OW2+9xVtvvVXmcZz+73quNYlI7aHwVQ1CQ0OpV68emzdvLjWv5IPk9PGjSlopHn300XL7xjRt2tTj5/LuGDNN02Ob77//fqmhEACPPj3gujPx9LsvHQ4H119/PampqTz22GO0bNmSwMBADh48yMiRI8+rc3thYSG33HILdrudTz75xKOO8zkPVeXhhx/26EDeq1cvli1bVmq5K664giZNmvDII4+QlJTEHXfcUe42b7vtNn788Uf+8pe/0LFjR4KCgnA6nfTr16/UuUxLS2PIkCE0b96c//3vfx7zSpZ94YUX6NixY5n7qsx+Q2d7r5UYOnQo//73vzl+/DjBwcF89dVXDBs2rNR7rSyV0VfvXOssb7lz/T915513lht827dvf141iUjtofBVTfr378///vc/Vq9efU4dnxs3bgyAj4/PObVEnIuSDuDR0dHnvc1NmzaxY8cO3nvvPe6++2739EWLFp13XePGjSMxMZEVK1ZQt25dj3kVOQ9xcXHuFqBT/fbbb+dd26n++te/erROnqkVadiwYfzrX/+iVatW5YahtLQ0vv/+e5566imeeOIJ9/SyjsHpdDJ8+HDS09NZvHix++aHEiX/tiEhIZX2fqkMQ4cO5amnnmLOnDnUrVuXzMxMj8t7FRUXF1fmv+f27dvd870pKiqK4OBgHA5HpZ738lpKRaRmUp+vavLXv/6VgIAA7rnnHo4ePVpq/unfeqOjo+nduzfTpk3j8OHDpZYvawiJs+nbty8hISE8++yzFBUVndc2S761n1qvaZr897//rXA9ANOnT2fatGm8/vrrZYbSipyHm266iZ9//pnVq1d7zP/www/Pq7bTtW7dmj59+rhfXbp0KXfZe++9lyeffJIXX3yx3GXKOpdAmSObP/XUUyxcuJCPPvqozMtxXbp0oUmTJvznP/8p8/L2+bxfKkOrVq1o164ds2fPZvbs2dSrV4+ePXue9/ZuuukmVq9ezU8//eSelpOTw1tvvUV8fHypvmlVzWq1MmTIEObMmVNmy/b5nvfAwMDzvoQvIhcftXxVk2bNmjFr1iyGDRtGixYt3CPcm6ZJUlISs2bNwmKxePSxev3117n66qtp164d9913H40bN+bo0aP89NNPHDhwgA0bNlSohpCQEKZOncpdd91F586duf3224mKimL//v188803XHXVVbz22mtn3EbLli1p0qQJjz76KAcPHiQkJIQ5c+acV3+V48eP89BDD9G6dWvsdjsffPCBx/zBgwcTGBh4zufhr3/9K++//z79+vXj4Ycfdg81ERcX5/VHN8XFxfHPf/7zjMuEhITQs2dPnn/+eYqKimjQoAHfffcdSUlJHstt2rSJZ555hp49e5KSklLqPN15551YLBb+97//ceONN9KmTRtGjRpFgwYNOHjwIEuXLiUkJISvv/76rHWvX7++1PbB1bLWrVu3sx94GYYOHcoTTzyBn58fo0ePvqCBhB9//HE++ugjbrzxRsaNG0dERATvvfceSUlJzJkzp1oGKZ48eTJLly7liiuu4L777qN169akpqayfv16Fi9eTGpqaoW32aVLF2bPns2ECRO47LLLCAoKYsCAAVVQvYh4g8JXNRo4cCCbNm3ixRdf5LvvvuPdd9/FMAzi4uLo378/DzzwAB06dHAv37p1a9auXctTTz3FjBkzOHHiBNHR0XTq1MnjMlVF3HHHHdSvX5/JkyfzwgsvUFBQQIMGDejRowejRo066/o+Pj58/fXXjBs3jkmTJuHn58fgwYMZO3asR+3nIjs7m/z8fLZu3eq+u/FUSUlJBAYGnvN5qFevHkuXLuVPf/oTkydPJjIykgceeID69eu7O3xfbGbNmsWf/vQnXn/9dUzT5IYbbmD+/PnUr1/fvcyJEycwTZPly5ezfPnyUtsouRTau3dv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ahuFLxERkTKsXAl/+AMEBUFMjOvPP/wBVq2q2v36+fnx3HPPkZaWVrU7Ok9RUVEEBARUdxk1msKXiIjIaaZOhZ494euvXY91BNefX38NPXq4nrtdVfr06UNMTAyTJk0qd5mVK1fSo0cP/P39iY2NZdy4ceTk5LjnHz58mP79++Pv709CQgKzZs0qdbnwpZdeol27dgQGBhIbG8tDDz1EdnY24Hpu86hRo8jIyMAwDAzD4J///CfgednxjjvuYOjQoR61FRUVUadOHWbOnAmA0+lk0qRJJCQk4O/vT4cOHfjss88q4UzVXApfIiIip1i5EsaMAdOE4mLPecXFrukPPVR1LWBWq5Vnn32WV199lQMHDpSav3v3bvr168eQIUPYuHEjs2fPZuXKlYwdO9a9zN13382hQ4dYtmwZc+bM4a233iIlJcVjOxaLhSlTprBlyxbee+89lixZwl//+lcAunfvziuvvEJISAiHDx/m8OHDPProo6VqGT58OF9//bU7tAEsXLiQ3NxcBg8eDMCkSZOYOXMmb775Jlu2bGH8+PHceeedLF++vFLOV41kellGRoYJmBkZGd7etYiI1CLlfZ7k5eWZW7duNfPy8s5ru4MHm6bNZpqumFX2y2YzzSFDKuMoPI0YMcIcOHCgaZqmeeWVV5r33HOPaZqm+cUXX5glH9mjR48277//fo/1fvjhB9NisZh5eXnmtm3bTMBcs2aNe/7OnTtNwHz55ZfL3fenn35qRkZGun+ePn26GRoaWmq5uLg493aKiorMOnXqmDNnznTPHzZsmDl06FDTNE0zPz/fDAgIMH/88UePbYwePdocNmzYmU9GDVOR950GWRUREfldXh7MnXvyUmN5iovhiy9cy1fV87afe+45rr322lItThs2bGDjxo18+OGH7mmmaeJ0OklKSmLHjh3YbDY6d+7snt+0aVPCw8M9trN48WImTZrE9u3byczMpLi4mPz8fHJzc8+5T5fNZuO2227jww8/5K677iInJ4e5c+fy8ccfA7Br1y5yc3O5/vrrPdYrLCykU6dOFToftYnCl4iIyO8yM88evEo4na7lqyp89ezZk759+zJx4kRGjhzpnp6dnc0f//hHxo0bV2qdRo0asWPHjrNue+/evdx88808+OCD/Pvf/yYiIoKVK1cyevRoCgsLK9Shfvjw4fTq1YuUlBQW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n9OwYUOefvppDh8+zOHDhy/o3FYndbgXEZFLXn6Rk30ncggP8KnQeuEBPuw7kUN+kRN/38q5+3HevHkEBQVRXFxMQUEBFouF1157DYCCggKeffZZFi9eTLdu3QBo3LgxK1euZNq0afTq1YvevXvzzjvv4HA42Lx5M76+vgwdOpRly5bRr18/li1bRq9evdz7u+eee9x/b9y4MVOmTOGyyy4jOzuboKAg97ynn36a66+/HoDs7GzeeecdPvjgA6677joA3nvvPRo2bHjGY9u/fz9/+ctfaNmyJQDNmjVzz5s0aRLDhw/nkUcecc+bMmUKvXr1YurUqURERGC1Wt0tdDWZWr5EROSSV+hw4nCa2KwV+1i0WgwcTpNCh7PSarnmmmtITEzkl19+YcSIEYwaNYohQ4YAsGvXLnJzc7n++usJCgpyv2bOnMnu3bsB6NGjB1lZWfz6668sX77cHchKWsOWL19O79693ftbt24dAwYMoFGjRgQHB7uD2f79+z3q6tq1q/vvu3fvprCwkCuuuMI9LSIighYtWpzx2CZMmMC9995Lnz59mDx5srtmcF2SnDFjhsdx9e3bF6fTSVJSUsVP5EVMLV8iInLJ87VasFoMiisYokrG//KtYGg7k8DAQPclwXfffZcOHTrwzjvvMHr0aHe/rW+++YYGDRp4rGe32wEICwujQ4cOLFu2jJ9++onrr7+enj17MnToUHbs2MHOnTvdASsnJ4e+ffvSt29fPvzwQ6Kioti/fz99+/alsLCwVF0X6p///Cd33HEH33zzDfPnz+fJJ5/k448/ZvDgwWRnZ/PHP/6RcePGlVqvUaNGF7zvi4lavkRE5JLn52MhLjKQtNyiCq2XlltEXGQgfj5V83FqsVj429/+xt///nfy8vJo3bo1drud/fv307RpU49XbGyse71evXqxdOlSVqxYQe/evYmIiKBVq1b8+9//pl69ejRv3hyA7du3c+LECSZPnkyPHj1o2bKlR2f78jRp0gQfHx9++eUX97S0tDR27Nhx1nWbN2/O+PHj+e677/jDH/7A9OnTAejcuTNbt24tdVxNmzZ193nz9fXF4ajcu0urg8KXiIhc8gzD4LKECExMCovPrfWrsNiJicnlCRFVeufdrbfeitVq5fXXXyc4OJhHH32U8ePH895777F7927Wr1/Pq6++ynvvvedep3fv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rybXQrO+XipWpHY58/+0WshiMbipXT2C7DYWbDnCjqPZRIfYCfP3wfj9URslTNMkPbeIo1n5RAT4cmvXWHo0rVNqORGRGimhJ/j4w+Y5kLIVAqNcr9PHADNNV2tX1mHX8q0HQqv/A9uZv7iKSNkuucuOp0pOzWXJ9hS2HMogM78YA/CxWjAxKS42MYEQfxttG4RybctoGoYHVGu9IiJVIvsY7PwOkle77mAE11hghgGOIsB0DU8R1Qqa3wDRraq13BIX0+eJSEVc0uGrxJGMfJKO53AkI4/UnEIwIDLQTt0QPxpHBVI3RENKiMglIDcVjv3mauHKPuoaDd8vDELqQ3i863URtfxfjJ8nIufikrvsWJaYUD9iQhWwROQSFxABcd2quwqRWu+S63AvIiIiUp0UvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yFbdBUjtYJom6blFHMsuIK/QgcUwCAvwISrYjp+PtbrLk0uFowiyj0LOcTAdYLVDUF0IiASLvmuKyMVB4UsuSF6hg40H0lmdlEpyWi45BQ4cphMw8LNZCPHzoX1sKJ0bhZNQJxDDMKq7ZKmNMg5A8hpI/gXy0qAo1zXdsIBvEATHQPxV0KAL+IVWb60icskzTNM0vbnDzMxMQkNDycjIICQkxJu7lkq2KyWLrxIPsTMlG5vVICLAl0C7DR+rBdM0yStykJVfTFpuEUF2K1c3i+L61nUJsivzSyUpLoBdi+G3BZCXCn7h4B8KPgGu4OUshsJsyE2F4jwIi4e2g6F+Z9AXgRpPnydSUyl8yXn5Zc8J5qw/QHZBMXERgfjaznxJJzWnkJSsfNrUD+XOK+OICPT1UqVSaxXmwLr3YP+P4B8BQTFnDlTOYkjb6wplbQZBi5sUwGo4fZ5ITaVOEFJhGw+k88naZBxOk6ZRQWcNXgARgb40rhPE5oMZfPjzPvIKHV6oVGotRzH8+gHsWwVhCRBc7+xBymKDyKauy5CbPoM9S71Tq4jIaRS+pELScwv5KvEQRQ4nDcMDyuzDVVhgkJVmpbDAc56vzULjqEA2H8pkyfaj3ipZaqN9q2Dfj67LiL4BpecXFEFqluvP0wVFuy5Lbv0K0vdXeakiIqdT5xupkJU7j7M/NZfmdYNLzduz2Y/lc8LZ/FMQptPAsJi07ZZN71vSSGiTD4DdZiUy0JflO47RqVE49cP8vX0IUtPlZ8L2eeDjD/Ygz3mb9sKnK+HHbeA0wWJA91ZwWw9oG3dyuZAGcGwrbP8WrvijLj+KiFdVuOVrxYoVDBgwgPr162MYBl9++WUVlCUXo+yCYlbvTSU8wBerxfPDatXXobw2IZYtP7uCF4DpNNjycxCvjo/lx3kn7zCrE+RLem4RG5LTvVm+1BaHEyHrsCtAnWruz/DwW/DTdlfwAtefP22HcdPgq19OLmsYEFQPjmyEzENeK11EBM4jfOXk5NChQwdef/31qqhHLmJJx3I4llVAnSDPzvJ7Nvsx59VowMDp8Axlrp8NPpsSTdIWPwAMwyDYz0Zicjpevt9DaoMjm8Di4+rDVWLTXvjvV66/O5yey5f8/Mpc2Lzv5HT/cMjPgOM7qrRcEZHTVfiy44033siNN95YFbXIRS4lKx/TNLFZPTP78jnhWKzgPEMfeovVtVxCm8MABPv5kJZbSFpuke58lHPnKIK0fWA/7bL3pyvBaikdvE5ltbiWK7n8aBhgWCHjYNXVKyJShirv81VQUEBBQYH758zMzKrepVSR9NyiUh3sCwsMdx+vM3E6DDb9GERhgYGv3cTPx0JajpPMPIUvqYCCLNcAqj6Bp0wrOtnH60wcTli11bW83cc1zebnGhFfRMSLqvxux0mTJhEaGup+xcbGVvUupYqU9dFWkGs5a/Byr+80KMg9+ZYzy9yiyDk49S2Xk3/24FXCabqWd2/HoOx3tohI1any8DVx4kQyMjLcr+Tk5KrepVSRILut1MeUPcCJYTm3Dy/DYmIPcF0WKix24mu1EOCr5z5KBfgEgNXXNbJ9iUA/112N58JiuJYvUZzv6vslIuJFVR6+7HY7ISEhHi+pmaJD7BiA85RWBl+7azgJi/XMAcxiNWnXPRtfu2u57IJiQvx9iAyyV2XJUtv4+EFoAyjIPjnN7uMaTsJ6ll9nVgtc1frkJUfTBKcTwhpVXb0iImXQIKtyzuIiAgj19yE1t9Bjeq8haWfsbA+uzvi9hqS5f87IK6Z1/ZBSQ1aInFXddq7nNJqndK6/9eozd7YH1/xbrz75c2G2K8yFJ1RNnSIi5ahw+MrOziYxMZHExEQAkpKSSExMZP9+jRRd20UG2ekYG8ax7AKPISIat83nlnEpgFmqBcz1s8kt41LcA61m5hUR4GuhUyNd7pHzUL8TBERCdsrJae3i4ZGBrr+f3gJW8vMjAz0HWs08CFEtIKJxlZYrInK6Ct/tuHbtWq655hr3zxMmTABgxIgRzJgxo9IKk4tTj+ZRbDyQweGMfI/R6bvfnEG9hAKWzwln04+eI9z3GnJyhHuH0+Rgeh49m0eREBlY3m5EyhcUBU2ug02fuPpr2X6/dP1/V0DjGNdwEqu2eo5wf+vVnsEr57jrTsfm/cCiCwAi4l2G6eVRLvUU+ppvxY5jfLI2mfAA3zKHiSgscN3VaA9wuvt4gauv2O5j2TQI9+eh3k0J1xATcr4Kc+HHV10j1NdpAVYfz/kFRa67GgP9Tvbxcs/LhIxkaD0Q2t6iRwvVYPo8kZpKX/mkwq5uWoe+bWJIzy3kQFouztPyu6/dJDjc4RG88god7EjJol6YH3deGafgJRfGNwC6joKoVnD8N9fzHk9l94GIYM/gZZquxxJlHHS1nLUaqOAlItVCD9aWCrNYDPq3q0dkkC/zNx3htyNZ7lYwX9sp43iZJjkFDlKy83E4TTo1CmdQxwbEhPqdYesi5ygoGro9BJs/h/0/uoJVUF3wCwHjlO+VjiLIS4WcY+AfAR1uh6Z9wKYvACJSPXTZUS5ISmY+v+xJZc2+VFJzCil2mh7jX/r7WImvE8gVCRF0jgvH52zDAYhUlNMJh3+Fvavg2Pbfh6Eo+bVmuFq3/MOg4eUQfxWEx1dfrVKp9HkiNZXCl1SKnIJiDqXnkZJVQF6hA4sFQv19qRtip36oPxYNKSFVreSyYtZhyDkBpsM1IGtQXdfYYBpMtdbR54nUVLrsKJUi0G6jWd1gmtUNPvvCIlXBMCCkvuslInIR0zUgERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIlt1FyC1Q1Z+EQfS8jiWVUBekQOLYRAW4EPdYD8ahPtjtRjVXaLUdqYJmQch8zDkHgenA2x2CIqG0FgIiKjuCkVEAIUvuUBHMvL5ac8J1u1LJS2nEIfpmm4AJuDvY6FRRCBXNI6ga1wEvjY1tkolczrg4HrY+wMc3wGFOZ7zDQP8wqBBF4i/GiKbVEuZIiIlFL7kvDidJj/uPsH8zYc5llVARKAv8ZGB2Kwnw5VpmuQWOkg6nsPOlCwSk9MZ2LEBDcL8q7FyqVVyTsDmz2D/z66fg+pCaCNX4CrhdEBeKuxaBMmroUU/aNYXbL7VU7OIXPIUvqTCHE6TeRsPsWjrUfxsVlrGBGMYpS8rGoZBoN1Ggt1GfpGDjckZHMsq4O5u8STUCayGyqVWyToCv7wFx7ZDeDzYg8tezmKFwCgIqAPZR2HjJ5B1FDrf5bosKSLiZboG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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=8\n" - ] - }, - { - "data": { - "image/png": "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Wd80TebMmcOAAQMwTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAEOHDuWqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrvjjjuYMmUKGzZsYNasWdx+++2l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMCwYcOYMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz2b06NGA65JjnTp1yn0PniohIaHUtPL+jVu1auWe37Zt23LrPP3/RImGDRuW+jcKDQ0t1QczNDTUY/1jx46Rnp7OW2+9xVtvvVXmcZz+73quNYlI7aHwVQ1CQ0OpV68emzdvLjWv5IPk9PGjSlopHn300XL7xjRt2tTj5/LuGDNN02Ob77//fqmhEACPPj3gujPx9LsvHQ4H119/PampqTz22GO0bNmSwMBADh48yMiRI8+rc3thYSG33HILdrudTz75xKOO8zkPVeXhhx/26EDeq1cvli1bVmq5K664giZNmvDII4+QlJTEHXfcUe42b7vtNn788Uf+8pe/0LFjR4KCgnA6nfTr16/UuUxLS2PIkCE0b96c//3vfx7zSpZ94YUX6NixY5n7qsx+Q2d7r5UYOnQo//73vzl+/DjBwcF89dVXDBs2rNR7rSyV0VfvXOssb7lz/T915513lht827dvf141iUjtofBVTfr378///vc/Vq9efU4dnxs3bgyAj4/PObVEnIuSDuDR0dHnvc1NmzaxY8cO3nvvPe6++2739EWLFp13XePGjSMxMZEVK1ZQt25dj3kVOQ9xcXHuFqBT/fbbb+dd26n++te/erROnqkVadiwYfzrX/+iVatW5YahtLQ0vv/+e5566imeeOIJ9/SyjsHpdDJ8+HDS09NZvHix++aHEiX/tiEhIZX2fqkMQ4cO5amnnmLOnDnUrVuXzMxMj8t7FRUXF1fmv+f27dvd870pKiqK4OBgHA5HpZ738lpKRaRmUp+vavLXv/6VgIAA7rnnHo4ePVpq/unfeqOjo+nduzfTpk3j8OHDpZYvawiJs+nbty8hISE8++yzFBUVndc2S761n1qvaZr897//rXA9ANOnT2fatGm8/vrrZYbSipyHm266iZ9//pnVq1d7zP/www/Pq7bTtW7dmj59+rhfXbp0KXfZe++9lyeffJIXX3yx3GXKOpdAmSObP/XUUyxcuJCPPvqozMtxXbp0oUmTJvznP/8p8/L2+bxfKkOrVq1o164ds2fPZvbs2dSrV4+ePXue9/ZuuukmVq9ezU8//eSelpOTw1tvvUV8fHypvmlVzWq1MmTIEObMmVNmy/b5nvfAwMDzvoQvIhcftXxVk2bNmjFr1iyGDRtGixYt3CPcm6ZJUlISs2bNwmKxePSxev3117n66qtp164d9913H40bN+bo0aP89NNPHDhwgA0bNlSohpCQEKZOncpdd91F586duf3224mKimL//v188803XHXVVbz22mtn3EbLli1p0qQJjz76KAcPHiQkJIQ5c+acV3+V48eP89BDD9G6dWvsdjsffPCBx/zBgwcTGBh4zufhr3/9K++//z79+vXj4Ycfdg81ERcX5/VHN8XFxfHPf/7zjMuEhITQs2dPnn/+eYqKimjQoAHfffcdSUlJHstt2rSJZ555hp49e5KSklLqPN15551YLBb+97//ceONN9KmTRtGjRpFgwYNOHjwIEuXLiUkJISvv/76rHWvX7++1PbB1bLWrVu3sx94GYYOHcoTTzyBn58fo0ePvqCBhB9//HE++ugjbrzxRsaNG0dERATvvfceSUlJzJkzp1oGKZ48eTJLly7liiuu4L777qN169akpqayfv16Fi9eTGpqaoW32aVLF2bPns2ECRO47LLLCAoKYsCAAVVQvYh4g8JXNRo4cCCbNm3ixRdf5LvvvuPdd9/FMAzi4uLo378/DzzwAB06dHAv37p1a9auXctTTz3FjBkzOHHiBNHR0XTq1MnjMlVF3HHHHdSvX5/JkyfzwgsvUFBQQIMGDejRowejRo066/o+Pj58/fXXjBs3jkmTJuHn58fgwYMZO3asR+3nIjs7m/z8fLZu3eq+u/FUSUlJBAYGnvN5qFevHkuXLuVPf/oTkydPJjIykgceeID69eu7O3xfbGbNmsWf/vQnXn/9dUzT5IYbbmD+/PnUr1/fvcyJEycwTZPly5ezfPnyUtsouRTau3dv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ahuFLxERkTKsXAl/+AMEBUFMjOvPP/wBVq2q2v36+fnx3HPPkZaWVrU7Ok9RUVEEBARUdxk1msKXiIjIaaZOhZ494euvXY91BNefX38NPXq4nrtdVfr06UNMTAyTJk0qd5mVK1fSo0cP/P39iY2NZdy4ceTk5LjnHz58mP79++Pv709CQgKzZs0qdbnwpZdeol27dgQGBhIbG8tDDz1EdnY24Hpu86hRo8jIyMAwDAzD4J///CfgednxjjvuYOjQoR61FRUVUadOHWbOnAmA0+lk0qRJJCQk4O/vT4cOHfjss88q4UzVXApfIiIip1i5EsaMAdOE4mLPecXFrukPPVR1LWBWq5Vnn32WV199lQMHDpSav3v3bvr168eQIUPYuHEjs2fPZuXKlYwdO9a9zN13382hQ4dYtmwZc+bM4a233iIlJcVjOxaLhSlTprBlyxbee+89lixZwl//+lcAunfvziuvvEJISAiHDx/m8OHDPProo6VqGT58OF9//bU7tAEsXLiQ3NxcBg8eDMCkSZOYOXMmb775Jlu2bGH8+PHceeedLF++vFLOV41kellGRoYJmBkZGd7etYiI1CLlfZ7k5eWZW7duNfPy8s5ru4MHm6bNZpqumFX2y2YzzSFDKuMoPI0YMcIcOHCgaZqmeeWVV5r33HOPaZqm+cUXX5glH9mjR48277//fo/1fvjhB9NisZh5eXnmtm3bTMBcs2aNe/7OnTtNwHz55ZfL3fenn35qRkZGun+ePn26GRoaWmq5uLg493aKiorMOnXqmDNnznTPHzZsmDl06FDTNE0zPz/fDAgIMH/88UePbYwePdocNmzYmU9GDVOR950GWRUREfldXh7MnXvyUmN5iovhiy9cy1fV87afe+45rr322lItThs2bGDjxo18+OGH7mmmaeJ0OklKSmLHjh3YbDY6d+7snt+0aVPCw8M9trN48WImTZrE9u3byczMpLi4mPz8fHJzc8+5T5fNZuO2227jww8/5K677iInJ4e5c+fy8ccfA7Br1y5yc3O5/vrrPdYrLCykU6dOFToftYnCl4iIyO8yM88evEo4na7lqyp89ezZk759+zJx4kRGjhzpnp6dnc0f//hHxo0bV2qdRo0asWPHjrNue+/evdx88808+OCD/Pvf/yYiIoKVK1cyevRoCgsLK9Shfvjw4fTq1YuUlBQW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n9OwYUOefvppDh8+zOHDhy/o3FYndbgXEZFLXn6Rk30ncggP8KnQeuEBPuw7kUN+kRN/38q5+3HevHkEBQVRXFxMQUEBFouF1157DYCCggKeffZZFi9eTLdu3QBo3LgxK1euZNq0afTq1YvevXvzzjvv4HA42Lx5M76+vgwdOpRly5bRr18/li1bRq9evdz7u+eee9x/b9y4MVOmTOGyyy4jOzuboKAg97ynn36a66+/HoDs7GzeeecdPvjgA6677joA3nvvPRo2bHjGY9u/fz9/+ctfaNmyJQDNmjVzz5s0aRLDhw/nkUcecc+bMmUKvXr1YurUqURERGC1Wt0tdDWZWr5EROSSV+hw4nCa2KwV+1i0WgwcTpNCh7PSarnmmmtITEzkl19+YcSIEYwaNYohQ4YAsGvXLnJzc7n++usJCgpyv2bOnMnu3bsB6NGjB1lZWfz6668sX77cHchKWsOWL19O79693ftbt24dAwYMoFGjRgQHB7uD2f79+z3q6tq1q/vvu3fvprCwkCuuuMI9LSIighYtWpzx2CZMmMC9995Lnz59mDx5srtmcF2SnDFjhsdx9e3bF6fTSVJSUsVP5EVMLV8iInLJ87VasFoMiisYokrG//KtYGg7k8DAQPclwXfffZcOHTrwzjvvMHr0aHe/rW+++YYGDRp4rGe32wEICwujQ4cOLFu2jJ9++onrr7+enj17MnToUHbs2MHOnTvdASsnJ4e+ffvSt29fPvzwQ6Kioti/fz99+/alsLCwVF0X6p///Cd33HEH33zzDfPnz+fJJ5/k448/ZvDgwWRnZ/PHP/6RcePGlVqvUaNGF7zvi4lavkRE5JLn52MhLjKQtNyiCq2XlltEXGQgfj5V83FqsVj429/+xt///nfy8vJo3bo1drud/fv307RpU49XbGyse71evXqxdOlSVqxYQe/evYmIiKBVq1b8+9//pl69ejRv3hyA7du3c+LECSZPnkyPHj1o2bKlR2f78jRp0gQfHx9++eUX97S0tDR27Nhx1nWbN2/O+PHj+e677/jDH/7A9OnTAejcuTNbt24tdVxNmzZ193nz9fXF4ajcu0urg8KXiIhc8gzD4LKECExMCovPrfWrsNiJicnlCRFVeufdrbfeitVq5fXXXyc4OJhHH32U8ePH895777F7927Wr1/Pq6++ynvvvedep3fv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XduQIUPo168f11xzDVFRUXz00UcYhsHcuXMJDw+nZ8+e9OnTh8aNGzN79uwKn5/33nuP3NxcJk2aRL169dyvP/zhD+Wu4+vry8SJE2nfvj09e/bEarXy8ccfAxAQEMCKFSto1KgRf/jDH2jVqhWjR48mPz+fkJAQAO677z5atGhB165diYqKYtWqVRWu+1SGebZ3WCXLzMwkNDSUjIwM90GJiIhUVHmfJ/n5+SQlJZ1xrKjylIxwfzzvOI2CG7mGkzhNoaOQ/Vn7qeNfh7ta3UVsSGwZW5JLTUXed+pwLyIi8rtGIY24s9Wd7mc7YriGk7AaVhymg7SCNDChUXAjhjQbouAl50XhS0RE5BSNQhrxYMcH+S31N9YdXUdyVjJFjiKsFittI9vSpW4XWkS0wG6tvEf7yKVF4UtEROQ0dqud9lHtaVenHfmOfIqcRfhYfPCz+lXpSPZyaVD4EhERKYdhGPjb/PGnakevl0uL7nYUEZFaycv3k8klriLvN4UvERGpVXx8XKPN5+bmVnMlcikpeb+VvP/ORJcdRUSkVrFarYSFhZGSkgK4xnFSPy2pKqZpkpubS0pKCmFhYeWOxXYqhS8REal1YmJiANwBTKSqhYWFud93Z6PwJSIitY5hGNSrV4/o6OgLfhSMyNn4+PicU4tXCYUvERGptaxWa4U+FEW8QR3uRURERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2zVXcDFJKegmOyCYgwgyM9GgK9Oj4hcgoryIT8dTBN8A8AeAoZR3VWJ1BqXfLpIycpnY3IGmw9lcDQzn8JiJwC+Ngt1Q/xo1yCU9g3DiAq2V3OlIiJVKC8NDv3qemUccAUwTLD6QmAdqNsOGnaB0FgFMZELZJimaXpzh5mZmYSGhpKRkUFISIg3d+0hv8jB0u0pLN9xjNScQgJ8rQTZ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+RDRBNoMdvX10s0eIlJNdNlRLkh+kYPNBzNYnZTK/tRccgqKKXI4MQwDfx8rwX42OjYKp3OjMOIiA8++QZHzkXkIDqyF/T+77mIsynG1hFlsrkuSIQ0grjs06Fzq0URSc+nzRGoqhS+pFKZpklVQTEpmAflFDgwDwgJ8iQqy42vT1W3xEkcx5ByD3OOufmE2u2sQVf9wtXTVQvo8kZpK13+kUhiGQYifj0asl+pltUFIPddLROQipSYJERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES+yeXuHpmkCkJmZ6e1di4hILVLyOVLyuSJSU3g9fGVlZQEQGxvr7V2LiEgtlJWVRWhoaHWXIXLODNPLXxmcTieHDh0iODgYwzC8uetzkpmZSWxsLMnJyYSEhFR3OTWSzuGF0zm8MDp/F64mnEPTNMnKyqJ+/fpYLOpFIzWH11u+LBYLDRs29PZuKywkJOSi/YVTU+gcXjidwwuj83fhLvZzqBYvqYn0VUFERETEixS+RERERLxI4es0drudJ598ErvdXt2l1Fg6hxdO5/DC6PxdOJ1Dkarj9Q73IiIiIpcytXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyd4vXXXyc+Ph4/Pz+uuOIKVq9eXd0l1SgrVqxgwIAB1K9fH8Mw+PLLL6u7pBpl0qRJXHbZZQQHBxMdHc2gQYP47bffqrusGmXq1Km0b9/ePTBot27dmD9/fnWXVWNNnjwZwzB45JFHqrsUkVpF4et3s2fPZsKECTz55JOsX7+eDh060LdvX1JSUqq7tBojJyeHDh068Prrr1d3KTXS8uXLGTNmDD///DOLFi2iqKiIG264gZycnOourcZo2LAhkydPZt26daxdu5Zrr72WgQMHsmXLluourcZZs2YN06ZNo3379tVdikito6EmfnfFFVdw2WWX8dprrwGuZ1DGxsbypz/9iccff7yaq6t5DMPgiy++YNCgQdVdSo117NgxoqOjWb58OT179qzucmqsiIgIXnjhBUaPHl3dpdQY2dnZdO7cmTfeeIN//etfdOzYkVdeeaW6yxKpNdTyBRQWFrJu3Tr69OnjnmaxWOjTpw8//fRTNVYml7KMjAzAFR6k4hwOBx9//DE5OTl069atusupUcaMGUP//v09fieKSOXx+oO1L0bHjx/H4XBQt25dj+l169Zl+/bt1VSVXMqcTiePPPIIV111FW3btq3ucmqUTZs20a1bN/Lz8wkKCuKLL76gdevW1V1WjfHxxx+zfv161qxZU92liNRaCl8iF6ExY8awefNmVq5cWd2l1DgtWrQgMTGRjIwMPvvsM0aMGMHy5csVwM5BcnIyDz/8MIsWLcLPz6+6yxGptRS+gDp16mC1Wjl69KjH9KNHjxITE1NNVcmlauzYscybN48VK1bQsGHD6i6nxvH19aVp06YAdOnShTVr1vDf//6XadOmVXNlF79169aRkpJC586d3dMcDgcrVqzgtddeo6CgAKvVWo0VitQO6vOF65d1ly5d+P77793TnE4n33//vfqKiNeYpsnYsWP54osvWLJkCQkJCdVdUq3gdDopKCio7jJqhOuuu45NmzaRmJjofnXt2pXhw4eTmJio4CVSSdTy9bsJEyYwYsQIunbtyuWXX84rr7xCTk4Oo0aNqu7Saozs7Gx27drl/jkpKYnExEQiIiJo1KhRNVZWM4wZM4ZZs2Yxd+5cgoODOXLkCAChoaH4+/tXc3U1w8SJE7nxxhtp1KgRWVlZzJo1i2XLlrFw4cLqLq1GCA4OLtXHMDAwkMjISPU9FKlECl+/Gzp0KMeOHeOJJ57gyJEjdOzYkQULFpTqhC/lW7t2Lddcc4375wkTJgAwYsQIZsyYUU1V1RxTp04FoHfv3h7Tp0+fzsiRI71fUA2UkpLC3XffzeHDhwkNDaV9+/YsXLiQ66+/vrpLExFx0zhfIiIiIl6kPl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJF/x81RSVLOylUpwAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=9\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1YUlEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQiooCIj9gURFRAduqsAisu8p+d3XVXUFdy2JBdBVERVBRQRQQpAkWmqF3AoQaICG9zpzfH2MGhiRAIJmQcL+uay6cUz/nZMzcec5znmOYpmkiIiIiIl5hqewCRERERK4kCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl/iNf/85z8xDMNjWlxcHMOHD/dqHdOmTcMwDPbt2+fV/cqF0c9HRKo7ha9KlpiYyKhRo2jSpAkBAQEEBATQokULRo4cycaNGyu7vCvSvn37MAzjgl6lBYS4uDgMw6Bnz54lzn/vvffc21i7dm0FHs3FOd85mDhxYmWXeEWZMWMGr7/+emWXISLlxFbZBVzJ5s2bx+DBg7HZbAwdOpS2bdtisVjYvn07X375JZMnTyYxMZHY2NjKLrXC7NixA4vl8vobICoqio8++shj2iuvvMLBgwd57bXXii1bGj8/P5YuXcrRo0eJjo72mPfJJ5/g5+dHbm5u+RVeAYYMGcKtt95abHr79u0rbJ/33nsvd911F3a7vcL2UdXMmDGDzZs3M2bMmMouRUTKgcJXJdmzZw933XUXsbGx/PDDD9SuXdtj/osvvsjbb7992QWTM2VlZREYGHhJ27gcv2ADAwO55557PKbNnDmT1NTUYtPP5brrrmPNmjXMmjWLxx9/3D394MGD/PjjjwwcOJDZs2eXW90VoUOHDmU65vJgtVqxWq3nXMY0TXJzc/H39/dSVSIi5efy/Wav5l566SWysrKYOnVqseAFYLPZGD16NDExMR7Tt2/fzu23305ERAR+fn506tSJuXPneixT1Gdm1apVjBs3jqioKAIDAxk4cCDHjx8vtq/58+fTtWtXAgMDCQ4Opm/fvmzZssVjmeHDhxMUFMSePXu49dZbCQ4OZujQoQD8+OOP3HHHHdSvXx+73U5MTAxjx44lJyfnvOfh7D5fF3qJ70LOA8CWLVu48cYb8ff3p169evzrX//C6XSet67y4Ofnxx/+8AdmzJjhMf3TTz8lPDycXr16FVtn48aNDB8+nAYNGuDn50d0dDT3338/J0+edC9zvkuCZ/r111/p3bs3oaGhBAQE0L17d1atWlWuxxkXF8dtt93GypUrufrqq/Hz86NBgwZMnz7dvczatWsxDIMPP/yw2PoLFy7EMAzmzZsHlNznq2gfCxcupFOnTvj7+zNlyhQA9u7dyx133EFERAQBAQFce+21fPvttx77WLZsGYZh8Nlnn/Hvf/+bevXq4efnx0033cTu3bs9lu3RowetWrVi48aNdO/enYCAABo1asQXX3wBwPLly7nmmmvw9/enadOmLF68uNgxHTp0iPvvv59atWpht9tp2bIlH3zwwUXV1KNHD7799lv279/v/hnHxcVdwE9GRC5XavmqJPPmzaNRo0Zcc801F7zOli1buO6666hbty5PPfUUgYGBfPbZZwwYMIDZs2czcOBAj+X/9Kc/ER4ezjPPPMO+fft4/fXXGTVqFLNmzXIv89FHHzFs2DB69erFiy++SHZ2NpMnT+b666/nt99+8/glX1hYSK9evbj++uv5z3/+Q0BAAACff/452dnZPProo0RGRrJ69WreeOMNDh48yOeff16m83L25T6Av//97yQnJxMUFFSm83D06FFuuOEGCgsL3cu9++67Xm0tufvuu7nlllvYs2cPDRs2BFyXkG6//XZ8fHyKLb9o0SL27t3LiBEjiI6OZsuWLbz77rts2bKFX375BcMwSrwsWlBQwNixY/H19XVPW7JkCX369KFjx44888wzWCwWpk6dyo033siPP/7I1Vdffd76s7OzOXHiRLHpYWFh2Gynf33s3r2b22+/nQceeIBhw4bxwQcfMHz4cDp27EjLli3p1KkTDRo04LPPPmPYsGEe25o1a1apYfRMO3bsYMiQIfzxj3/koYceomnTphw7dowuXbqQnZ3N6NGjiYyM5MMPP+T//b//xxdffFHs/4mJEydisVh44oknSEtL46WXXmLo0KH8+uuvHsulpqZy2223cdddd3HHHXcwefJk7rrrLj755BPGjBnDI488wt13383LL7/M7bffTlJSEsHBwQAcO3aMa6+9FsMwGDVqFFFRUcyfP58HHniA9PT0YpcOz1fT//3f/5GW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WZMePXowZcoUjhw5Umz5koaQOJ9evXoREhLCCy+8QEFBwUVts+iv9jPrNU2T//73v2WuB2Dq1KlMmTKFt956q8RQWpbzcOutt/LLL7+wevVqj/mffPLJRdV2thYtWtCzZ0/3q2PHjqUu++CDD/LMM8/wyiuvlLpMSecSKHFk82effZaFCxfy6aeflng5rmPHjjRs2JD//Oc/JV7evpjPS3lo3rw5rVu3ZtasWcyaNYvatWvTrVu3i97erbfeyurVq/n555/d07Kysnj33XeJi4sr1jetolmtVgYNGsTs2bNLbNm+2PMeGBh40ZfwReTyo5avStK4cWNmzJjBkCFDaNq0qXuEe9M0SUxMZMaMGVgsFo8+Vm+99RbXX389rVu35qGHHqJBgwYcO3aMn3/+mYMHD7Jhw4Yy1RASEsLkyZO599576dChA3fddRdRUVEcOHCAb7/9luuuu44333zznNto1qwZDRs25IknnuDQoUOEhIQwe/bsi+qvcuLECR577DFatGiB3W7n448/9pg/cOBAAgMDL/g8/PWvf+Wjjz6id+/ePP744+6hJmJjY73+6KbY2Fj++c9/nnOZkJAQunXrxksvvURBQQF169bl+++/JzEx0WO5TZs28fzzz9OtWzeSk5OLnad77rkHi8XC//73P/r06UPLli0ZMWIEdevW5dChQyxdupSQkBC++eab89a9fv36YtsHV8ta586dz3/gJRg8eDBPP/00fn5+PPDAA5c0kPBTTz3Fp59+Sp8+fRg9ejQRERF8+OGHJCYmMnv27EoZpHjixIksXbqUa665hoceeogWLVqQkpLC+vXrWbx4MSkpKWXeZseOHZk1axbjxo3jqquuIigoiH79+lVA9SLiDQpflah///5s2rSJV155he+//54PPvgAwzCIjY2lb9++PPLII7Rt29a9fIsWLVi7di3PPvss06ZN4+TJk9SsWZP27dt7XKYqi7vvvps6deowceJEXn75ZfLy8qhbty5du3ZlxIgR513fx8eHb775htGjRzNhwgT8/PwYOHAgo0aN8qj9QmRmZpKbm8vWrVvddzeeKTExkcDAwAs+D7Vr12bp0qX86U9/YuLEiURGRvLII49Qp04dd4fvy82MGTP405/+xFtvvYVpmtxyyy3Mnz+fOnXquJc5efIkpmmyfPlyli9fXmwbRZdCe/Towc8/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o/AlIiJSgpUr4Q9/gKAgiI52/fuHP8CqVRW7Xz8/P1588UVSU1MrdkcXKSoqioCAgMouo0pT+BIRETnL5MnQrRt8843rsY7g+vebb6BrV9dztytKz549iY6OZsKECaUus3LlSrp27Yq/vz8xMTGMHj2arKws9/wjR47Qt29f/P39iY+PZ8aMGcUuF7766qu0bt2awMBAYmJieOyxx8jMzARcz20eMWIEaWlpGIaBYRj885//BDwvO959990MHjzYo7aCggJq1KjB9OnTAXA6nUyYMIH4+Hj8/f1p27YtX3zxRTmcqapL4UtEROQMK1fCyJFgmlBY6DmvsNA1/bHHKq4FzGq18sILL/DGG29w8ODBYvP37NlD7969GTRoEBs3bmTWrFmsXLmSUaNGuZe57777OHz4MMuWLWP27Nm8++67JCcne2zHYrEwadIktmzZwocffsiSJUv461//CkCXLl14/fXXCQkJ4ciRIxw5coQnnniiWC1Dhw7lm2++cYc2gIULF5Kdnc3AgQMBmDBhAtOnT+edd95hy5YtjB07lnvuuYfly5eXy/mqkkwvS0tLMwEzLS3N27sWEZFqpLTvk5ycHHPr1q1mTk7ORW134EDTtNlM0xWzSn7ZbKY5aFB5HIWnYcOGmf379zdN0zSvvfZa8/777zdN0zS/+uors+gr+4EHHjAffvhhj/V+/PFH02KxmDk5Oea2bdtMwFyzZo17/q5du0zAfO2110rd9+eff25GRka630+dOtUMDQ0ttlxsbKx7OwUFBWaNGjXM6dOnu+cPGTLEHDx4sGmappmbm2sGBASYP/30k8c2HnjgAXPIkCHnPhlVTFk+dxpkVURE5Hc5OTBnzulLjaUpLISvvnItX1HP237xxRe58cYbi7U4bdiwgY0bN/LJJ5+4p5mmidPpJDExkZ07d2Kz2ejQoYN7fqNGjQgPD/fYzuLFi5kwYQLbt28nPT2dwsJCcnNzyc7OvuA+XTabjTvvvJNPPvmEe++9l6ysLObMmcPMmTMB2L17N9nZ2dx8880e6+Xn59O+ffsynY/qROFLRETkd+np5w9eRZxO1/IVFb66detGr169GD9+PMOHD3dPz8zM5I9//COjR48utk79+vXZuXPnebe9b98+brvtNh599FH+/e9/ExERwcqVK3nggQfIz88vU4f6oUOH0r17d5KTk1m0aBH+/v707t3bXSvAt99+S926dT3Ws9vtF7yP6kbhS0RE5HchIWCxXFgAs1hcy1ekiRMn0q5dO5o2beqe1qFDB7Zu3UqjRo1KXKdp06YUFhby22+/0bFjR8DVAnXm3ZPr1q3D6XTyyiuvYLG4un9/9tlnHtvx9fXF4XCct8YuXboQExPDrFmzmD9/PnfccQc+Pj4AtGjRArvdzoEDB+jevXvZDr4aU/gSERH5nb8/9O/vuqvx7M72Z7LZXMtVVKtXkdatWzN06FAmTZrknvbkk09y7bXXMmrUKB588EECAwPZunUrixYt4s0336RZs2b07NmThx9+mMmTJ+Pj48Of//xn/P393WOFNWrUiIKCAt544w369evHqlWreOesWzjj4uLIzMzkhx9+oG3btgQEBJTaInb33XfzzjvvsHPnTpYuXeqeHhwczBNPPMHYsWNxOp1cf/31pKWlsWrVKkJCQhg2bFgFnLXLn+52FBEROcO4cXC+Bh+HA8aO9U49zz33HM4zmuLatGnD8uXL2blzJ127dqV9+/Y8/fTT1KlTx73M9OnTqVWrFt26dWPgwIE89NBDBAcH4+fnB0Dbtm159dVXefHFF2nVqhWffPJJsaEtunTpwiOPPMLgwYOJioripZdeKrXGoUOHsnXrVurWrct1113nMe/555/nH//4BxMmTKB58+b07t2bb7/9lvj4+PI4PVWSYZqm6c0dpqenExoaSlpaGiEV3V4rIiLVVmnfJ7m5uSQmJhIfH+8OG2X1zjuu4SSsVs8WMJvNFbzefhseeeRSj8B7Dh48SExMDIsXL+amm26q7HKqpbJ87tTyJSIicpZHHoEff3RdWvy9SxQWi+v9jz9e/sFryZIlzJ07l8TERH766Sfuuusu4uLi6NatW2WXJqjPl4iISImuu871yslx3dUYElLxfbzKS0FBAX/729/Yu3cvwcHBdOnShU8++cTdEV4ql8KXiIjIOfj7V53QVaRXr1706tWrssuQUuiyo4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgX6W5HERERYH/6frIKssq8XqBPILEhsRVQkVRXCl8iInLF25++n9u+uu2i1583cJ4CmFwwXXYUEZEr3sW0eJXn+mf7+eefsVqt9O3bt1y3e6H27duHYRgkJCRUyv6rO4UvERGRy8z777/Pn/70J1asWMHhw4cruxwpZwpfIiIil5HMzExmzZrFo48+St++fZk2bZrH/Llz59K4cWP8/Py44YYb+PDDDzEMg1OnTrmXWblyJV27dsXf35+YmBhGjx5NVtbp1rm4uDheeOEF7r//foKDg6lfvz7vvvuue358fDwA7du3xzAMevToUZGHfMVR+BIREbmMfPbZZzRr1oymTZtyzz338MEHH2CaJgCJiYncfvvtDBgwgA0bNvDHP/6R//u///NYf8+ePfTu3ZtBgwaxceNGZs2axcqVKxk1apTHcq+88gqdOnXit99+47HHHuPRRx9lx44dAKxevRqAxYsXc+TIEb788ksvHPmVQ+FLRETkMvL+++9zzz33ANC7d2/S0tJYvnw5AFOmTKFp06a8/PLLNG3alLvuuovhw4d7rD9hwgSGDh3KmDFjaNy4MV26dGHSpElMnz6d3Nxc93K33norjz32GI0aNeLJJ5+kRo0aLF26FICoqCgAIiMjiY6OJiIiwgtHfuVQ+BIREblM7Nixg9WrVzNkyBAAbDYbgwcP5v3333fPv+qqqzzWufrqqz3eb9iwgWnTphEUFOR+9erVC6fTSWJionu5Nm3auP/bMAyio6NJTk6uqEOTM2ioCRERkcvE+++/T2FhIXXq1HFPM00Tu93Om2++eUHbyMzM5I9//COjR48uNq9+/fru//bx8fGYZxgGTqfzIiuXslD4EhERuQwUFhYyffp0XnnlFW655RaPeQMGDODTTz+ladOmfPfddx7z1qxZ4/G+Q4cObN26lUaNGl10Lb6+vgA4HI6L3oaUTuFLRETkMjBv3jxSU1N54IEHCA0N9Zg3aNAg3n//fT777DNeffVVnnzySR544AESEhLcd0MahgHAk08+ybXXXsuoUaN48MEHCQwMZOvWrSxatOiCW89q1qyJv78/CxYsoF69evj5+RWrSS6e+nyJiIhcBt5//3169uxZYsgZNGgQa9euJSMjgy+++IIvv/ySNm3aMHnyZPfdjna7HXD15Vq+fDk7d+6ka9eutG/fnqefftrjUub52Gw2Jk2axJQpU6hTpw79+/cvn4MUAAyz6P5VL0lPTyc0NJS0tDRCQkK8uWsREalGSvs+yc3NJTExkfj4ePz8/C5oW1tPbmXwvMEXXcus22bRIrLFRa9/Kf7973/zzjvvkJSUVCn7F5eyfO502VFERKQKefvtt7nqqquIjIxk1apVvPzyy8XG8JLLm8KXiIhIFbJr1y7+9a9/kZKSQv369fnzn//M+PHjK7ssKQOFLxERueIF+gRW6vpl8dprr/Haa695bX9S/hS+RETkihcbEsu8gfPIKsg6/8JnCfQJJDYktgKqkupK4UtERAQUoMRrNNSEiIiIiBcpfImIiIh4kS47ioiIlMI0TXILnOQ7nPhaLfj5WNwjyYtcLIUvERGRs+QWONh6JJ01iSnsP5mFw2litRjERgZyVXwELWqH4OdjrewypYpS+BIRETnDvhNZzFqbxP6TWRgYhAf44OtrpdDhZOPBNDYcPEVsZCCDO8UQV8N7Q0xUBT169KBdu3a8/vrrlV3KZU19vkRERH6370QWU1clsv9EFrERgTSqGURkkJ1Qfx8ig+w0qhlEbEQg+39fbt+Jsg9NcS7Dhw/HMAwMw8DHx4f4+Hj++te/kpubW677qari4uKqRbBT+BIREcF1qXHW2iSOZ+TRqGYQvraSvyJ9bRYa1QzieEYes9YmkVvgKNc6evfuzZEjR9i7dy+vvfYaU6ZM4ZlnninXfVwK0zQpLCys7DKqNIUvERERYOuRdPafzCI2MvC8neoNw9X/a//JLLYdSS/XOux2O9HR0cTExDBgwAB69uzJokWL3POdTicTJkwgPj4ef39/2rZtyxdffOGe36lTJ/7zn/+43w8YMAAfHx8yMzMBOHjwIIZhsHv3bgA++ugjOnXqRHBwMNHR0dx9990kJye711+2bBmGYTB//nw6duyI3W5n5cqVZGVlcd999xEUFETt2rV55ZVXzntsGzZs4IYbbiA4OJiQkBA6duzI2rVr3fNXrlxJ165d8ff3JyYmhtGjR5OV5Wpd7NGjB/v372fs2LHu1sGqSuFLRESueKZpsiYxBQOj1Bavs/naLBgYrE5MwTTNCqlr8+bN/PTTT/j6+rqnTZgwgenTp/POO++wZcsWxo4dyz333MPy5csB6N69O8uWLQNcx/Xjjz8SFhbGypUrAVi+fDl169alUaNGABQUFPD888+zYcMGvv76a/bt28fw4cOL1fLUU08xceJEtm3bRps2bfjLX/7C8uXLmTNnDt9//z3Lli1j/fr15zyeoUOHUq9ePdasWcO6det46qmn8PHxAWDPnj307t2bQYMGsXHjRmbNmsXKlSvdDw3/8ssvqVevHs899xxHjhzhyJEjl3RuK5M63IuIyBUvt8DJ/pNZhAf4lGm98AAf9p/MIrfAib9v+dz9OG/ePIKCgigsLCQvLw+LxcKbb74JQF5eHi+88AKLFy+mc+fOADRo0ICVK1cyZcoUunfvTo8ePXj//fdxOBxs3rwZX19fBg8ezLJly+jduzfLli2je/fu7v3df//97v9u0KABkyZN4qqrriIzM5OgoCD3vOeee46bb74ZgMzMTN5//30+/vhjbrrpJgA+/PBD6tWrd85jO3DgAH/5y19o1qwZAI0bN3bPmzBhAkOHDmXMmDHueZMmTaJ79+5MnjyZiIgIrFaru4WuKlPLl4iIXPHyHU4cThObtWxfi1aLgcNpku9wllstN9xwAwkJCfz6668MGzaMESNGMGjQIAB2795NdnY2N998M0FBQe7X9OnT2bNnDwBdu3YlIyOD3377jeXLl7sDWVFr2PLly+nRo4d7f+vWraNfv37Ur1+f4OBgdzA7cOCAR12dOnVy//eePXvIz8/nmmuucU+LiIigadOm5zy2cePG8eCDD9KzZ08mTpzorhlclySnTZvmcVy9evXC6XSSmJhY9hN5GVPLl4iIXPF8rRasFoPCMoaoovG/fMsY2s4lMDDQfUnwgw8+oG3btrz//vs88MAD7n5b3377LXXr1vVYz263AxAWFkbbtm1ZtmwZP//8MzfffDPdunVj8ODB7Ny5k127drkDVlZWFr169aJXr1588sknREVFceDAAXr16kV+fn6xui7VP//5T+6++26+/fZb5s+fzzPPPMPMmTMZOHAgmZmZ/PGPf2T06NHF1qtfv/4l7/tyopYvERG54vn5WIiNDCQ1u6BM66VmFxAbGYifT8V8nVosFv72t7/x97//nZycHFq0aIHdbufAgQM0atTI4xUTE+Ner3v37ixdupQVK1bQo0cPIiIiaN68Of/+97+pXbs2TZo0AWD79u2cPHmSiRMn0rVrV5o1a+bR2b40DRs2xMfHh19//dU9LTU1lZ07d5533SZNmjB27Fi+//57/vCHPzB16lQAOnTowNatW4sdV6NGjdx93nx9fXE4yvfu0sqg8CUiIlc8wzC4Kj4CE5P8wgtr/covdGJicnV8RIXeeXfHHXdgtVp56623CA4O5oknnmDs2LF8+OGH7Nmzh/Xr1/PGG2/w4Ycfutfp0aMHCxcuxGazuftX9ejRg08++cSjv1f9+vXx9fXljTfeYO/evcydO5fnn3/+vDUFBQXxwAMP8Je//IUlS5awefNmhg8fjsVSeqzIyclh1KhRLFu2jP3797Nq1SrWrFlD8+bNAXjyySf56aefGDVqFAkJCezatYs5c+a4O9yDa5yvFStWcOjQIU6cOFHmc3m5UPgSEREBWtQOcQ8fcb67F03TdA9L0bx2SIXWZbPZGDVqFC+99BJZWVk8//zz/OMf/2DChAk0b96c3r178+233xIfH+9ep2vXrjidTo+g1aNHDxwOh0d/r6ioKKZNm8bnn39OixYtmDhxoscwFefy8ssv07VrV/r160fPnj25/vrr6dixY6nLW61WTp48yX333UeTJk2488476dOnD88++ywAbdq0Yfny5ezcuZOuXbvSvn17nn76aerUqePexnPPPce+ffto2LAhUVFRF3oKLzuGWVH3x5YiPT2d0NBQ0tLSCAmp2A+siIhUX6V9n+Tm5pKYmEh8fDx+fn5l2mbRCPfHM/KIjQwscdiJ/ELXnZFRwXbuvz6e2Eg9YkjK9rlTh3sREZHfxdUIZMR18cWe7Vh0V2NqdgEmJrE1ArnrqhgFL7koCl8iIiJniKsRyOM3NWbbkXRWJ6aw/2QWBQVOrBaDNvVCuTo+gua1Q/DzKZ9xveTKo/AlchlIzU1lW8o2DmYc5GDGQfIcedgsNuoE1SEmOIam4U2pFVirsssUuWL4+VhpXz+cdjFh5BY4yXc48bVa8POxVOnH2sjlQeFLpBJl5meyLGkZa4+t5VTeKWyGDX+bP1aLlZzCHH5L/o01R9cQ4htCqxqt6Bnbkwi/iMouW+SKYRgG/r5W/FErl5QfhS+RSrI/fT9f7fqKfen7iPCLoFFYIyxG8c69pmlyKu8Uqw6vIjEtkX4N+9EiskUlVCwiIuVBQ02IVIID6QeYsW0GBzIO0CC0ATX8a5QYvMD1l3e4XziNwhqRkpvCrO2z2HJyi5crFhGR8qLwJeJlWQVZfLX7K47nHKdBaANslgtrgLYaVuoH1yfXkcuc3XM4kVN1BxgUEbmSKXyJeNmKgyvYe2ovsSGxHq1dhQWF51yvsKAQwzCICY7hWNYxvt/3/XkHghSRS2SakJ8NOadc/+r/OSkHZQpfkydPpk2bNoSEhBASEkLnzp2ZP39+RdUmUu2k5aWx9uhaIvwi8LH4uKevW7iOf9/xb1KPppa4XurRVP59x79Zt3AdFsNC7cDabDm5hUOZh7xVusiVpSAXktbAT2/Awr/B9/9w/fvTG67pBbmVXaFUYWUKX/Xq1WPixImsW7eOtWvXcuONN9K/f3+2bFH/E5ELsTN1Jym5KUT4n75jsbCgkHmT55G8P5nXH3q9WABLPZrK6w+9TvL+ZOZNnkdhQSHBvsFkFWSx7eQ2bx+CSPV3cg8snwg/vwmH1oNhAZ8A17+H1rumL5/oWq4SGYbB119/Xak1yMUpU/jq168ft956K40bN6ZJkyb8+9//JigoiF9++aWi6hOpVg5lHsIwDKzG6dvWbT42Rr8zmhr1anDi4AmPAFYUvE4cPEGNejUY/c5obD42DMPAz+rH/vT9lXUoItXTyT3w6zuQkggRDSCqKQRGgX+Y69+opq7pKYmu5co5gA0fPhzDMDAMAx8fH2rVqsXNN9/MBx98gNPp+cDvI0eO0KdPnwvarjeD2j//+U/atWtXYdvPzc1l+PDhtG7dGpvNxoABAypsX0XK+5guus+Xw+Fg5syZZGVl0blz53IrSKQ6O5RxCH+bf7Hp4dHhjHlvjEcA25uw1yN4jXlvDOHR4e51AnwCOJp1lAJngTcPQaT6KsiF3z6CzGSo0RSsviUvZ/V1zc9Mdi1fzpcge/fuzZEjR9i3bx/z58/nhhtu4PHHH+e2226jsPB039Do6Gjsdnu57Tc/P7/ctlUeSqvH4XDg7+/P6NGj6dmzp5erKh9lDl+bNm0iKCgIu93OI488wldffUWLFqWPOZSXl0d6errHS+RKlefI82j1OtPZAeyVEa+UGrzAdfejw3RQ6Dx3R30RuUBHN51u8TrfKPaGAeHxruWPbS7XMux2O9HR0dStW5cOHTrwt7/9jTlz5jB//nymTZt2RgmnW7Py8/MZNWoUtWvXxs/Pj9jYWCZMmABAXFwcAAMHDsQwDPf7otac//3vfx4Pg16wYAHXX389YWFhREZGctttt7Fnj2cL38GDBxkyZAgREREEBgbSqVMnfv31V6ZNm8azzz7Lhg0b3C14RTUfOHCA/v37ExQUREhICHfeeSfHjh1zb7O0es4WGBjI5MmTeeihh4iOjr6gc3qu8wNw6tQpHnzwQaKioggJCeHGG29kw4YNAOc8potV5kFWmzZtSkJCAmlpaXzxxRcMGzaM5cuXlxrAJkyYwLPPPntJRYpUF3arHYfpKHV+eHQ4w54fxisjXnFPG/b8sGLBC8BhOrAa1gseqkJEzsE04cDPgFF6i9fZbHbX8vt/grodzx/YLsGNN95I27Zt+fLLL3nwwQeLzZ80aRJz587ls88+o379+iQlJZGUlATAmjVrqFmzJlOnTqV3795Yraf/ANy9ezezZ8/myy+/dE/Pyspi3LhxtGnThszMTJ5++mkGDhxIQkICFouFzMxMunfvTt26dZk7dy7R0dGsX78ep9PJ4MGD2bx5MwsWLGDx4sUAhIaG4nQ63cFr+fLlFBYWMnLkSAYPHsyyZcvOWU95ONf5Abjjjjvw9/dn/vz5hIaGMmXKFG666SZ27txZ6jFdijL/1vb19aVRo0YAdOzYkTVr1vDf//6XKVOmlLj8+PHjGTdunPt9eno6MTExF1muSNVWN7gue9JK7yOSejSVD//xoce0D//xYYktX9kF2TQIa+Bx16SIXKSCHEjZCwFlfHxXQIRrvYIc8A2omNp+16xZMzZu3FjivAMHDtC4cWOuv/56DMMgNjbWPS8qKgqAsLCwYi1F+fn5TJ8+3b0MwKBBgzyW+eCDD4iKimLr1q20atWKGTNmcPz4cdasWUNEhOt8FeUCgKCgIGw2m8e+Fi1axKZNm0hMTHRngOnTp9OyZUvWrFnDVVddVWo95eFc52flypWsXr2a5ORk92Xc//znP3z99dd88cUXPPzwwyUe06W45HG+nE4neXl5pc632+3uoSmKXiJXqtqBtTFNs8TWr7M71/956p9L7IQPrkcO5RbmEhcS58XqRaoxRz44HVDWP2YsNtd6jorvL2WaZqkP9R4+fDgJCQk0bdqU0aNH8/3331/QNmNjY4sFnV27djFkyBAaNGhASEiI+zLlgQMHAEhISKB9+/bu4HUhtm3bRkxMjEfjS4sWLQgLC2PbttN3bZdUT3k41/nZsGEDmZmZREZGEhQU5H4lJiYWu9xaXsrU8jV+/Hj69OlD/fr1ycjIYMaMGSxbtoyFCxdWSHEi1U2ziGaE2cNIyUkhKuD0L5izg1dRS9eY98a4p7/+0Ovu6ZkFmQT4BNA8snklHo1INWL1BYsVynoDi7PQtd6FXqq8BNu2bSM+Pr7EeR06dCAxMZH58+ezePFi7rzzTnr27MkXX3xxzm0GBgYWm9avXz9iY2N57733qFOnDk6nk1atWrk7wPv7F79pqLyUVE95ONf5yczMpHbt2h6XP4uEhYVVSD1lavlKTk7mvvvuo2nTptx0002sWbOGhQsXcvPNN1dIcSLVTag9lI61OpKSm+LuKF9YUMikRyaV2Ln+7E74kx6ZRH5+PkeyjtA8sjn1gupV5uGIVB8+/q6O9tkpZVsvO8W1nk/FBRKAJUuWsGnTpmKXBM8UEhLC4MGDee+995g1axazZ88mJcV1PD4+Pjgcpfc3LXLy5El27NjB3//+d2666SaaN29Oaqrn2INt2rQhISHBve2z+fr6FttX8+bNi/Wz2rp1K6dOnTrnTXvlqbTz06FDB44ePYrNZqNRo0Yerxo1apR6TJeiTC1f77//frntWORK1SOmB7tP7WZ/+n7Xsx19bNz26G3MmzyP0e+MLta3qyiATXpkEn0f6cvR3KNE+UfRK65XqZcgRKSMDAPqd4ZD61yXEC+kJaswDzAhtku5drbPy8vj6NGjOBwOjh07xoIFC5gwYQK33XYb9913X4nrvPrqq9SuXZv27dtjsVj4/PPPiY6OdrfcxMXF8cMPP3Dddddht9sJDy9+Ew9AeHg4kZGRvPvuu9SuXZsDBw7w1FNPeSwzZMgQXnjhBQYMGMCECROoXbs2v/32G3Xq1KFz587ExcWRmJhIQkIC9erVIzg4mJ49e9K6dWuGDh3K66+/TmFhIY899hjdu3enU6dOZT5HW7duJT8/n5SUFDIyMkhISAAodSyuc52fnj170rlzZwYMGMBLL71EkyZNOHz4MN9++y0DBw6kU6dOJR7TpQzzoWc7inhZkG8Q/Rv1J8Ivgr1pe3E4HXTs1ZH/+/z/SryrEVwBbPxn46nZpSY+Vh/6NexHzYCaXq5cpJqLbg0R8a4O9Od7hqNpQmqia/larcq1jAULFlC7dm3i4uLo3bs3S5cuZdKkScyZM6fUOwCDg4N56aWX6NSpE1dddRX79u3ju+++w2Jxfc2/8sorLFq0iJiYGNq3b1/qvi0WCzNnzmTdunW0atWKsWPH8vLLL3ss4+vry/fff0/NmjW59dZbad26NRMnTnTXNmjQIHr37s0NN9xAVFQUn376KYZhMGfOHMLDw+nWrRs9e/akQYMGzJo166LO0a233kr79u355ptvWLZsGe3btz/ncZ3r/BiGwXfffUe3bt0YMWIETZo04a677mL//v3UqlWr1GO6FIbp5SfzpqenExoaSlpamjrfyxVtb9pevt71Nfsz9hPlH0WYPczjQdtFTNMkPT+dY9nHqBlQk34N+tE6qnUlVCxyeSnt+yQ3N5fExMRzjhVVqqIR7jOTXeN42Upo3SjMcwWvoJpw7aOuy45yxSvL504DBIlUkgahDXiwzYMsObCE3479xu5Tu/Gx+OBv88dmseE0nWQXZJPnyCPYN5iro6/mlrhbqOFfo7JLF6m+IhvCNY+4Rq5PSQQM13ASFpurc312CmC6Wrw63KfgJRdF4UukEoX4hjCg0QCur3s9205u40DGAQ5mHKTAWYCv1ZcGoQ2ICY6hWUQzogOj1cdLxBsiG0L3p1wj1+//6fQ4XhYr1O3g6uNVqxX4lLFVTeR3Cl8il4Ea/jXoWq8r4LrM6DSdWAyLwpZIZfHxg3qdXCPXF+Sc7oTv41+hI9nLlUHhS+QyYxhGqc9/FBEvM4zfR66v2NHr5cqiux1FREREvEjhS0RERMSLFL5EREREvEh9vkREREphmia5jlwKnAX4WHzws/rpRhi5ZApfIiIiZ8lz5LE9ZTvrj60nKSMJh9OB1WIlJjiGDrU60CyiGXbrxT9eRq5sCl8iIiJnOJB+gC93fUlSRhKGYRBmD8PX5kuhWciWk1vYfGIzMcEx/KHxH6gfUr/S6jQMg6+++ooBAwZUWg1ycdTnS0RE5HcH0g/w8baPOZBxgPrB9WkQ2oAIvwhC7CFE+EXQILQB9YPrcyDj9+XSD5Tr/ocPH45hGBiGgY+PD7Vq1eLmm2/mgw8+wOl0eix75MgR+vTpc0HbNQyDr7/+ulxrLc0///nPUh9wXR6WLVtG//79qV27NoGBgbRr145PPvmkwvYHrp9LeYZchS8RERFclxq/3PUlJ3JO0DC0IT5WnxKX87H60DC0ISdyTvDlri/Jc+SVax29e/fmyJEj7Nu3j/nz53PDDTfw+OOPc9ttt1FYWOheLjo6Gru9/C595ufnl9u2ykNp9fz000+0adOG2bNns3HjRkaMGMF9993HvHnzvFzhxVP4EhERAbanbCcpI4nY4Njzdqo3DIP6wfVJykhiR8qOcq3DbrcTHR1N3bp16dChA3/729+YM2cO8+fPZ9q0aR41FLVm5efnM2rUKGrXro2fnx+xsbFMmDABgLi4OAAGDhyIYRju90UtVP/73/88Hga9YMECrr/+esLCwoiMjOS2225jz549HjUePHiQIUOGEBERQWBgIJ06deLXX39l2rRpPPvss2zYsMHdgldU84EDB+jfvz9BQUGEhIRw5513cuzYMfc2S6vnbH/72994/vnn6dKlCw0bNuTxxx+nd+/efPnll6We09TUVIYOHUpUVBT+/v40btyYqVOnuucnJSVx5513EhYWRkREBP3792ffvn3uuj788EPmzJnjPqZly5ad60d4XurzJSIiVzzTNFl/bL3rcl8pLV5n87X6ggHrjq2jdY3WFXoX5I033kjbtm358ssvefDBB4vNnzRpEnPnzuWzzz6jfv36JCUlkZSUBMCaNWuoWbMmU6dOpXfv3litp5+gsXv3bmbPns2XX37pnp6VlcW4ceNo06YNmZmZPP300wwcOJCEhAQsFguZmZl0796dunXrMnfuXKKjo1m/fj1Op5PBgwezefNmFixYwOLFiwEIDQ3F6XS6g9fy5cspLCxk5MiRDB482CPIlFTPhUhLS6N58+alzv/HP/7B1q1bmT9/PjVq1GD37t3k5OQAUFBQQK9evejcuTM//vgjNpuNf/3rX/Tu3ZuNGzfyxBNPsG3bNtLT092BLSIi4oJrK4nCl4iIXPFyHbkkZSQRZg8r03rh9nCSMpLIdeTib/OvmOJ+16xZMzZu3FjivAMHDtC4cWOuv/56DMMgNjbWPS8qKgqAsLAwoqOjPdbLz89n+vTp7mUABg0a5LHMBx98QFRUFFu3bqVVq1bMmDGD48ePs2bNGncIadSokXv5oKAgbDabx74WLVrEpk2bSExMJCYmBoDp06fTsmVL1qxZw1VXXVVqPefz2WefsWbNGqZMmVLqMgcOHKB9+/Z06tQJON0aCDBr1iycTif/+9//3AF66tSphIWFsWzZMm655Rb8/f3Jy8srdv4uli47iojIFa/AWYDD6cBmlK1NwmpYcTgdFDgLKqiy00zTLLV1bfjw4SQkJNC0aVNGjx7N999/f0HbjI2NLRZ0du3axZAhQ2jQoAEhISHuoHLggOvmgoSEBNq3b1+m1p9t27YRExPjDl4ALVq0ICwsjG3btp2znnNZunQpI0aM4L333qNly5alLvfoo48yc+ZM2rVrx1//+ld++ukn97wNGzawe/dugoODCQoKIigoiIiICHJzc4tdbi0v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IoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIltlFyDVg2manMou4HhmHjn5DiyGQViAD1HBdvx8rJVdnlwpHAWQeQyyToDpAKsdgmpBQCRY9LemiFweFL7kkuTkO9h48BSrE1NISs0mK8+Bw3QCBn42CyF+PrSJCaVD/XDiawRiGEZllyzVUdpBSFoDSb9CTioUZLumGxbwDYLgaIi7Dup2BL/Qyq1VRK54hmmapjd3mJ6eTmhoKGlpaYSEhHhz11LOdidnMDfhMLuSM7FZDSICfAm02/CxWjBNk5wCBxm5haRmFxBkt3J94yhublGLILsyv5STwjzYvRh2LICcFPALB/9Q8AlwBS9nIeRnQnYKFOZAWBy0Ggh1OoD+EKjy9H0iVZXCl1yUX/eeZPb6g2TmFRIbEYiv7dyXdFKy8knOyKVlnVDuuTaWiEBfL1Uq1VZ+Fqz7EA78BP4REBR97kDlLITUfa5Q1nIANL1VAayK0/eJVFXqBCFltvHgKT5bm4TDadIoKui8wQsgItCXBjWC2HwojU9+2U9OvsMLlUq15SiE3z6G/asgLB6Ca58/SFlsENnIdRly0xewd6l3ahUROYvCl5TJqex85iYcpsDhpF54QIl9uPLzDDJSreTnec7ztVloEBXI5sPpLNl+zFslS3W0fxXs/8l1GdE3oPj8vAJIyXD9e7agmq7LklvnwqkDFV6qiMjZ1PlGymTlrhMcSMmmSa3gYvP2bvZj+exwNv8chOk0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//tfpkyZUsmVXf7WrVtHcnIyHTp0cE9zOBysWLGCN998k7y8PKxWayVWKFI9qM8Xrl/WHTt25IcffnBPczqd/PDDD+orIl5jmiajRo3iq6++YsmSJcTHx1d2SdWC0+kkLy+vssuoEm666SY2bdpEQkKC+9WpUyeGDh1KQkKCgpdIOVHL1+/GjRvHsGHD6NSpE1dffTWvv/46WVlZjBgxorJLqzIyMzPZvXu3+31iYiIJCQlERERQv379Sqysahg5ciQzZsxgzpw5BAcHc/ToUQBCQ0Px9/ev5OqqhvHjx9OnTx/q169PRkYGM2bMYNmyZSxcuLCyS6sSgoODi/UxDAwMJDIyUn0PRcqRwtfvBg8ezPHjx3n66ac5evQo7dq1Y8GCBcU64Uvp1q5dyw033OB+P27cOACGDRvGtGnTKqmqqmPy5MkA9OjRw2P61KlTGT58uPcLqoKSk5O57777OHLkCKGhobRp04aFCxdy8803V3ZpIiJuGudLRERExIvU50tERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLzo/wPiM1ap7FVpyQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=10\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB24klEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQiooCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIEXBQjN0pAUIEAiQ3pOZ8/tjzMCQBAgkExLu13XNBTn1cw5D5p7nPOc5hmmaJiIiIiLiFZbqLkBERETkUqLwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJV7zz3/+E8MwPKbFxcUxevRor9Yxa9YsDMNg3759Xt2vnBv9+4hIbafwVc0SExMZP348LVq0ICAggICAANq0acO4cePYtGlTdZd3Sdq3bx+GYZzTq7yAEBcXh2EY9O3bt8z5b731lnsb69atq8KjOT9nOwdTp06t7hIvKXPmzOHll1+u7jJEpJLYqruAS9mCBQsYPnw4NpuNkSNH0rFjRywWCzt27OCzzz5j+vTpJCYmEhsbW92lVpnffvsNi+Xi+g4QFRXFe++95zHthRde4ODBg7z00kulli2Pn58fy5cv58iRI0RHR3vM++CDD/Dz8yM/P7/yCq8CI0aM4MYbbyw1vXPnzlW2zzvvvJPbbrsNu91eZfuoaebMmcOWLVt4+OGHq7sUEakECl/VZM+ePdx2223Exsby3XffUb9+fY/5zz77LK+//vpFF0xOlZOTQ2Bg4AVt42L8gA0MDOSOO+7wmPbRRx+RlpZWavqZXHXVVaxdu5a5c+fy0EMPuacfPHiQH374gaFDhzJv3rxKq7sqdOnSpULHXBmsVitWq/WMy5imSX5+Pv7+/l6qSkSk8ly8n+y13HPPPUdOTg4zZ84sFbwAbDYbEyZMICYmxmP6jh07uPnmm4mIiMDPz49u3brx5ZdfeixT0mdm9erVTJo0iaioKAIDAxk6dCjHjh0rta+FCxfSs2dPAgMDCQ4OZuDAgWzdutVjmdGjRxMUFMSePXu48cYbCQ4OZuTIkQD88MMP3HLLLTRu3Bi73U5MTAwTJ04kLy/vrOfh9D5f53qJ71zOA8DWrVu59tpr8ff3p1GjRvzrX//C6XSeta7K4Ofnxx/+8AfmzJnjMf3DDz8kPDycfv36lVpn06ZNjB49miZNmuDn50d0dDR33303J06ccC9ztkuCp/rll1/o378/oaGhBAQE0Lt3b1avXl2pxxkXF8dNN93EqlWruPzyy/Hz86NJkybMnj3bvcy6deswDIN333231PqLFy/GMAwWLFgAlN3nq2Qfixcvplu3bvj7+zNjxgwA9u7dyy233EJERAQBAQFceeWVfP311x77WLFiBYZh8PHHH/Pvf/+bRo0a4efnx3XXXcfu3bs9lu3Tpw/t2rVj06ZN9O7dm4CAAJo1a8ann34KwMqVK7niiivw9/enZcuWLF26tNQxHTp0iLvvvpt69epht9tp27Yt77zzznnV1KdPH77++mv279/v/jeOi4s7h38ZEblYqeWrmixYsIBmzZpxxRVXnPM6W7du5aqrrqJhw4Y89thjBAYG8vHHHzNkyBDmzZvH0KFDPZb/05/+RHh4OE888QT79u3j5ZdfZvz48cydO9e9zHvvvceoUaPo168fzz77LLm5uUyfPp2rr76aX3/91eOXfHFxMf369ePqq6/mP//5DwEBAQB88skn5Obm8sADDxAZGcmaNWt45ZVXOHjwIJ988kmFzsvpl/sA/v73v5OSkkJQUFCFzsORI0e45pprKC4udi/35ptverW15Pbbb+eGG25gz549NG3aFHBdQrr55pvx8fEptfySJUvYu3cvY8aMITo6mq1bt/Lmm2+ydetWfv75ZwzDKPOyaFFRERMnTsTX19c9bdmyZQwYMICuXbvyxBNPYLFYmDlzJtdeey0//PADl19++Vnrz83N5fjx46Wmh4WFYbOd/PWxe/dubr75ZsaOHcuoUaN45513GD16NF27dqVt27Z069aNJk2a8PHHHzNq1CiPbc2dO7fcMHqq3377jREjRvDHP/6Re++9l5YtW3L06FF69OhBbm4uEyZMIDIyknfffZf/+7//49NPPy31f2Lq1KlYLBYeeeQRMjIyeO655xg5ciS//PKLx3JpaWncdNNN3Hbbbdxyyy1Mnz6d2267jQ8++ICHH36Y+++/n9tvv53nn3+em2++maSkJIKDgwE4evQoV155JYZhMH78eKKioli4cCFjx44lMzOz1KXDs9X0//7f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ZVHLl4iIXPJ8LD5YLVaKzeKzL3wKh+ka/8vHcm6XKi/E9u3biY+PL3Nely5dSExMZOHChSxdupRbb72Vvn378umnn55xm4GBgaWmDRo0iNjYWN566y0aNGiA0+mkXbt27g7w/v5V18JXVj3lWblyJYMGDeKll17irrvuOuOyAwYMYP/+/XzzzTcsWbKE6667jnHjxvGf//yH7OxsunbtWuYdkxUJghWhli8REbnk+Vn9iAmOIb0gvULrpRWkERMcg5+17M7hlWXZsmVs3ry51CXBU4WEhDB8+HDeeust5s6dy7x580hNTQXAx8cHh8Nx1v2cOHGC3377jb///e9cd911tG7dmrS0NI9lOnToQEJCgnvbp/P19S21r9atW3v0QwPYtm0b6enptGnT5qx1nW7FihUMHDiQZ599lvvuu++c1omKimLUqFG8//77vPzyy7z55puAK7ju2rWLunXr0qxZM49XaGhoucd0IRS+RETkkmcYBl3qdcE0TYoc53YJsdBRCCZ0rde1UjvbFxQUcOTIEQ4dOsSGDRt45plnGDx4MDfddFO5LTwvvvgiH374ITt27GDnzp188sknREdHExYWBrj6OH333XccOXKkVJg6VXh4OJGRkbz55pvs3r2bZcuWMWnSJI9lRowYQXR0NEOGDGH16tXs3buXefPm8dNPP7n3lZiYSEJCAsePH6egoIC+ffvSvn17Ro4cyYYNG1izZg133XUXvXv3dvfDOlfLly9n4MCBTJgwgWHDhnHkyBGOHDlSbhgEePzxx5k/fz67d+9m69atLFiwwN1Bf+TIkdSpU4fBgwfzww8/kJiYyIoVK5gwYQIHDx50H9OmTZv47bffOH78OEVFF3aZWeFLREQEaBXRipjgGPZn7cc0zTMua5omB7IOEBMcQ8uIlpVax6JFi6hfvz5xcXH079+f5cuXM23aNObPn1/uHYDBwcE899xzdOvWjcsuu4x9+/bxzTffYLG4PuZfeOEFlixZQkxMDJ07dy533xaLhY8++oj169fTrl07Jk6cyPPPP++xjK+vL99++y1169blxhtvpH379kydOtVd27Bhw+jfvz/XXHMNUVFRfPjhhxiGwfz58wkPD6dXr1707duXJk2aMHfu3Aqfn3fffZfc3FymTJlC/fr13a8//OEP5a7j6+vL5MmT6dChA7169cJqtfLRRx8BEBAQwPfff0/jxo35wx/+QOvWrRk7diz5+fmEhIQAcO+999KyZUu6detGVFQUq1evrnDdpzLMs73DKllmZiahoaFkZGS4D0pERKSiyvs8yc/PJzEx8YxjRZWnZIT743nHaRzc2DWcxGkKHYUcyDpAHf863Nn6TmJCYsrYklxqKvK+U4d7ERGR3zUOacwdre9wP9sRwzWchNWw4jAdpBWkgQmNgxszrPkwBS85LwpfIiIip2gc0pgHOj3Ab6m/sf7oepKykihyFGG1WGkX2Y6u9brSMqIldmvlPdpHLi0KXyIiIqexW+10iOpA+zrtyXfkU+Qswsfig5/Vr0pHspdLg8KXiIhIOQzDwN/mjz9VO3q9XFp0t6OIiNRKXr6fTC5xFXm/KXyJiEit4uPjGm0+Nze3miuRS0nJ+63k/XcmuuwoIiK1itVqJSwsjJSUFMA1jpP6aUlVMU2T3NxcUlJSCAsLK3cstlMpfImISK0THR0N4A5gIlUtLCzM/b47G4UvERGpdQzDoH79+tStW/eCHwUjcjY+Pj7n1OJVQuFLRERqLavVWqEPRRFvUId7ERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIlt1F3AxySkoJrugGAMI8rMR4KvTIyKXoKJ8yE8H0wTfALCHgGFUd1UitcYlny5SsvLZlJTBlsMZHM3Mp7DYCYCvzUK9ED/aNwylQ6MwooLt1VypiEgVykuDw7+6XhkHXQEME6y+EFgH6rWHRl0hNEZBTOQCGaZpmt7cYWZmJqGhoWRkZBASEuLNXXvIL3KwfEcKK3ceIzWnkABfK0F2G3YfKwAFRQ6yC4rJK3IQHuDLNS2j6N2yLn6/zxcRqRUcxbDve9jxNWQdBZvd1dLl4w8Y4CiAgmwozHJNj7saWt8EfqHVXflF83kiUlGXZMvXiewC5vxygC2H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abpau7KSXcu3GQyt/w9sZ/7iKiJlu+QuO54qKTWXZTtS2Ho4g8z8YgzAx2rBxKS42MQEQvxttGsYyrWt6tIoPKBa6xURqRLZx2DXt5C0xnUHI7jGAjMMcBQBpmt4iqjW0OIGqNu6WsstcTF9nohUxCUdvkocycgn8XgORzLySM0pBAMiA+3UC/GjSVQg9UI0pISIXAJyU+HYb64WruyjrtHw/cIgpAGEx7leF1HL/8X4eSJyLi65y45liQ71IzpUAUtELnEBERDbvbqrEKn1LrkO9yIiIiLVSeFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts1V2A1A6maZKeW8Sx7ALyCh1YDIOwAB+igu34+Viruzy5VDiKIPso5BwH0wFWOwTVg4BIsOi7pohcHBS+5ILkFTrYdDCdNYmpJKXlklPgwGE6AQM/m4UQPx86xITSpXE48XUCMQyjukuW2ijjICSthaRfIC8NinJd0w0L+AZBcDTEXQUNu4JfaPXWKiKXPMM0TdObO8zMzCQ0NJSMjAxCQkK8uWupZLtTsvgy4TC7UrKxWQ0iAnwJtNvwsVowTZO8IgdZ+cWk5RYRZLdydfMorm9TjyC7Mr9UkuIC2L0UflsEeangFw7+oeAT4ApezmIozIbcVCjOg7A4aDcUGnQB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43O24QBEKsrphORfYd9q16XIgmxODpxquFq3/MOg0eUQdxWEx1VfrVKp9HkiNZXCl1SKnIJiDqfnkZJVQF6hA4sFQv19qRdip0Gov/p3SdUruayYlQw5J8B0uAZkDarnGhtMg6nWOvo8kZqqyp/tKJeGQLuN5vWCaV4v+OwLi1QFw4CQBq6XiMhFTNeARERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2zVXYDUDln5RRxMy+NYVgF5RQ4shkFYgA/1gv1oGO6P1WJUd4lS25kmZB6CzGTIPQ5OB9jsEFQXQmMgIKK6KxQRARS+5AIdycjnp70nWL8/lbScQhyma7oBmIC/j4XGEYFc0SSCbrER+NrU2CqVzOmAQxtg3w9wfCcU5njONwzwC4OGXSHuaohsWi1lioiUUPiS8+J0mvy45wQLtyRzLKuAiEBf4iIDsVlPhivTNMktdJB4PIddKVkkJKUzuFNDGob5V2PlUqvknIAtn8KBn10/B9WD0MauwFXC6YC8VNi9BJLWQMv+0Lwf2Hyrp2YRueQpfEmFOZwmCzYdZsm2o/jZrLSKDsYwSl9WNAyDQLuNeLuN/CIHm5IyOJZVwF3d44ivE1gNlUutknUEfnkTju2A8DiwB5e9nMUKgVEQUAeyj8KmjyHr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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=11\n" - ] - }, - { - "data": { - "image/png": "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emvXrk2vXr2YOnUqycnJJZYvbQiJs+nTpw8hISE899xzFBUVndc2T3xrP7Ve0zT53//+V+56AKZNm8bUqVN54403Sg2l5TkPN910E7/88gurV6/2mP/xxx+fV22na9WqFb1793a/OnfuXOay9957L0899RQvvfRSmcuUdi6BUkc2f/rpp1m4cCGffPJJqZfjOnfuTOPGjfnvf/9b6uXt83m/VISWLVvStm1bZs+ezezZs6lbty49evQ47+3ddNNNrF69mp9//tk9LScnh7fffpu4uLgSfdMqm9VqZfDgwcyZM6fUlu3zPe+BgYHnfQlfRC4+avmqIk2bNmXmzJkMHTqU5s2bu0e4N02TxMREZs6cicVi8ehj9cYbb3D11VfTtm1b7rvvPho1asSRI0f4+eefOXDgABs2bChXDSEhIUyZMoW77rqLTp06cfvttxMVFcX+/fv59ttvueqqq3j99dfPuI0WLVrQuHFjHnvsMQ4ePEhISAhz5sw5r/4qx44d46GHHqJVq1bY7XY++ugjj/mDBg0iMDDwnM/D3/72Nz788EP69u3LI4884h5qIjY21uuPboqNjeVf//rXGZcJCQmhR48evPDCCxQVFVG/fn2+//57EhMTPZbbtGkTzz77LD169CAlJaXEebrzzjuxWCy8++673HjjjbRu3ZqRI0dSv359Dh48yNKlSwkJCeGbb745a93r168vsX1wtax17dr17AdeiiFDhvDkk0/i5+fHqFGjLmgg4SeeeIJPPvmEG2+8kbFjxxIREcEHH3xAYmIic+bMqZJBiidNmsTSpUu54ooruO+++2jVqhWpqamsX7+exYsXk5qaWu5tdu7cmdmzZzN+/Hguu+wygoKC6N+/fyVULyLeoPBVhQYMGMCmTZt46aWX+P7773n//fcxDIPY2Fj69evHAw88QPv27d3Lt2rVirVr1/L0008zffp0jh8/Tu3atenYsaPHZaryuOOOO6hXrx6TJk3ixRdfpKCggPr169O9e3dGjhx51vV9fHz45ptvGDt2LBMnTsTPz49BgwYxZswYj9rPRXZ2Nvn5+WzdutV9d+OpEhMTCQwMPOfzULduXZYuXcrDDz/MpEmTiIyM5IEHHqBevXruDt8Xm5kzZ/Lwww/zxhtvYJomN9xwA/Pnz6devXruZY4fP45pmixfvpzly5eX2MaJS6G9evXi559/5tlnn+X1118nOzub6OhorrjiCv785z+fUz2ffPKJ+07NUw0fPvyCwtc//vEPcnNzz+kuxzOpU6cOP/30E48//jivvfYa+fn5tGvXjm+++YZ+/fpd0LYvpKbVq1fzzDPP8MUXX/Dmm28SGRlJ69atef75589rmw899BAJCQlMmzaNV155hdjYWIUvkWrMMNWrU0RERMRr1OdLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yOvjfDmdTg4dOkRwcLAemSEiIufNNE2ysrKoV69elQyoK3K+vB6+Dh06RExMjLd3KyIiNVRSUpLH00BELnZeD1/BwcGA63+WkJAQb+9eRERqiMzMTGJiYtyfKyLVhdfD14lLjSEhIQpfIiJywdSFRaobXSQXERER8SKFLxEREREvUvgSERER8SKv9/kSERHxFofDQVFRUVWXITWcj48PVqv1nJdX+BIRkRrHNE0OHz5Menp6VZcil4iwsDCio6PP6QYQhS8REalxTgSv2rVrExAQoDsipdKYpklubi4pKSkA1K1b96zrKHyJiEiN4nA43MErMjKyqsuRS4C/vz8AKSkp1K5d+6yXINXhXkREapQTfbwCAgKquBK5lJx4v51LH0OFLxERqZF0qVG8qTzvN4UvERERES9S+BIRERHxIoUvERGR0xQWFl7Q/At1+PBhHn74YRo1aoTdbicmJob+/fvzww8/VOp+xTsUvkRERE4xe/Zs2rZtS1JSUqnzk5KSaNu2LbNnz66U/e/du5fOnTuzZMkSXnzxRTZt2sSCBQu45pprGD16dKXsU7xL4UtEROQPhYWFPPnkk+zYsYNevXqVCGBJSUn06tWLHTt28OSTT1ZKC9hDDz2EYRisXr2awYMH06xZM1q3bs348eP55Zdf2Lt3L4ZhkJCQ4F4nPT0dwzBYtmyZe9rmzZu58cYbCQoKok6dOtx1110cO3aswuuV8lP4EhER+YOvry+LFy+mUaNG7NmzxyOAnQhee/bsoVGjRixevBhfX98K3X9qaioLFixg9OjRBAYGlpgfFhZ2TttJT0/n2muvpWPHjqxdu5YFCxZw5MgRbrvttgqtV86PwpeIiMgpYmJiWLZsmUcA++mnnzyC17Jly4iJianwfe/atQvTNGnRosUFbef111+nY8eOPPfcc7Ro0YKO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/P396du3r7tWgG+//Zb69et7rGe32895HzWNwpeIiMgfQkLAYjm3AGaxuJavTJMmTaJDhw40b97cPa1Tp05s3bqVJk2alLpO8+bNKS4u5rfffqNz586AqwXq1Lsn161bh9Pp5KWXXsJicXX//vTTTz224+vri8PhOGuN3bp1IyYmhtmzZzN//nxuvfVWfHx8AGjVqhV2u539+/fTs2fP8h18DabwJSIi8gd/fxgwwHVX4+md7U9ls7mWq6xWrxPatm3LsGHDmDx5snva448/zpVXXsmYMWO49957CQwMZOvWrSxatIjXX3+dFi1a0Lt3b+6//36mTJmCj48Pf/nLX/D393ePFdakSROKiop47bXX6N+/P6tWreKt027hjIuLIzs7mx9++IH27dsTEBBQZovYHXfcwVtvvcWOHTtYunSpe3pwcDCPPfYY48aNw+l0cvXVV5ORkcGqVasICQlh+PDhlXDWLn6621FEROQU48fD2Rp8HA4YN8479TzzzDM4T2mKa9euHcuXL2fHjh10796djh078uSTT1KvXj33MjNmzKBOnTr06NGDQYMGcd999xEcHIyfnx8A7du35+WXX+b555+nTZs2fPzxxyWGtujWrRsPPPAAQ4YMISoqihdeeKHMGocNG8bWrVupX78+V111lce8Z599ln/+859MnDiRli1b0rdvX7799lvi4+Mr4vRUS4ZpmqY3d5iZmUloaCgZGRmEVHZ7rYiI1FhlfZ7k5+eTmJhIfHy8O2yU11tvuYaTsFo9W8BsNlfwevNNeOCBCz0C7zlw4AAxMTEsXryY6667rqrLqZHK875Ty5eIiMhpHngAfvzRdWnxjy5RWCyun3/88eIPXkuWLOHrr78mMTGRn376idtvv524uDh69OhR1aUJ6vMlIiJSqquucr3y8lx3NYaEVH4fr4pSVFTE3//+d/bs2UNwcDDdunXj448/dneEl6ql8CUiInIG/v7VJ3Sd0KdPH/r06VPVZUgZdNlRRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIt0t6OIiAiwL3MfOUU55V4v0CeQ2JDYSqhIaiqFLxERueTty9zHzV/efN7rzxs0TwFMzpkuO4qIyCXvfFq8KnL90/38889YrVb69etXods9V3v37sUwDBISEqpk/zWdwpeIiMhF5r333uPhhx9mxYoVHDp0qKrLkQqm8CUiInIRyc7OZvbs2Tz44IP069eP6dOne8z/+uuvadq0KX5+flxzzTV88MEHGIZBenq6e5mVK1fSvXt3/P39iYmJYezYseTknGydi4uL47nnnuOee+4hODiYhg0b8vbbb7vnx8fHA9CxY0cMw6BXr16VeciXHIUvERGRi8inn35KixYtaN68OXfeeSfvv/8+pmkCkJiYyC233MLAgQPZsGEDf/7zn/m///s/j/V3795N3759GTx4MBs3bmT27NmsXLmSMWPGeCz30ksv0aVLF3777TceeughHnzwQX7//XcAVq9eDcDixYtJTk7miy++8MKRXzoUvkRERC4i7733HnfeeScAffv2JSMjg+XLlwMwdepUmjdvzosvvkjz5s25/fbbGTFihMf6EydOZNiwYTz66KM0bdqUbt26MXnyZGbMmEF+fr57uZtuuomHHnqIJk2a8Pjjj1OrVi2WLl0KQFRUFACRkZFER0cTERHhhSO/dCh8iYiIXCR+//13Vq9ezdChQwGw2WwMGTKE9957zz3/sssu81jn8ssv9/h5w4YNTJ8+naCgIPerT58+OJ1OEhMT3cu1a9fO/d+GYRAdHU1KSkplHZqcQkNNiIiIXCTee+89iouLqVevnnuaaZrY7XZef/31c9pGdnY2f/7znxk7dmyJeQ0bNnT/t4+Pj8c8wzBwOp3nWbmUh8KXiIjIRaC4uJgZM2bw0ksvccMNN3jMGzhwIJ988gnNmzfnu+++85i3Zs0aj587derE1q1badKkyXnX4uvrC4DD4TjvbUjZFL5EREQuAvPmzSMtLY1Ro0YRGhrqMW/w4MG89957fPrpp7z88ss8/vjjjBo1ioSEBPfdkIZhAPD4449z5ZVXMmbMGO69914CAwPZunUrixYtOufWs9q1a+Pv78+CBQto0KABfn5+JWqS86c+XyIiIheB9957j969e5cacgYPHszatWvJysri888/54svvqBdu3ZMmTLFfbej3W4HXH25li9fzo4dO+jevTsdO3bkySef9LiUeTY2m43JkyczdepU6tWrx4ABAyrmIAUAwzxx/6qXZGZmEhoaSkZGBiEhId7ctYiI1CBlfZ7k5+eTmJhIfHw8fn5+57Strce3MmTekPOuZfbNs2kV2eq8178Q//nPf3jrrbdISkqqkv2LS3ned7rsKCIi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LxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SJbVRcgNUNWfhEH0vI4mlVAXpEDi2EQFuBDnWA/6of7Y7UYVV2i1HSmCZkHITMZco+B0wE2OwTVhtAYCIio6gpFRACFL7lAhzPy+XnPcdbtSyUtpxCH6ZpuACbg72OhYUQgVzSKoEtsBL42NbZKBXM64OB62PsjHNsBhTme8w0D/MKgfmeIuxoiG1dJmSIiJyh8yXlxOk1+2n2c+ZuTOZpVQESgL3GRgdisJ8OVaZrkFjpIPJbDzpQsEpLSGdChPvXD/KuwcqlRco7D5s9h/y+un4PqQGhDV+A6wemAvFTYtQiSVkPzvtC0D9h8q6ZmEbnkKXxJuTmcJvM2HmLR1iP42ay0iA7GMEpeVjQMg0C7jXi7jfwiBxuTMjiaVcDdXeOIrxVYBZVLjZJ1GH59G45uh/A4sAeXvpzFCoFREFALso/Axk8h6wh0ust1WVJExMt0DUjK7cedR/l+yxEiAn2pH+5favA6nZ+Plaa1gziSkc/MX/dxPLvAC5VKjVWYC2unwfEdULtl2cHrVIYBwdGu/l97lsHmL139xEREvEzhS8rlQFouCzcfJtBuJTyg9Ms21oJ8AtKOYS3I95husRg0igpi//FcvtuUjNOpDz45TzsWwpHNENkULCUb8PMKbBxJDSCvoJTGfXuwK4TtWQKHN3mhWBERT+d12fGNN97gxRdf5PDhw7Rv357XXnuNyy+/vKJrk4vQih1HOZ5TSIvoki0N9TavpdOc6TT++QcsTidOi4XdXa9j/S0jOdS6MwBWi0G9cH/W7Uuja+NaNKkd5O1DkOouO8UVnAKjwOr5BWDlpga8/NnlzP2pKU6nBYvFyYBuO/nLbb9yVZuDJxcMiIScY64Q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RES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yObtHZqmCUBmZqa3dy0iIjXIic+RE58rItWF18NXVlYWADExMd7etYiI1EBZWVmEhoZWdRki58wwvfyVwel0cujQIYKDgzEMw5u7PieZmZnExMSQlJRESEhIVZdTLekcXjidwwuj83fhqsM5NE2TrKws6tWrh8WiXjRSfXi95ctisdCgQQNv77bcQkJCLto/ONWFzuGF0zm8MDp/F+5iP4dq8ZLqSF8VRERERLxI4UtERETEixS+TmO323nqqaew2+1VXUq1pXN44XQOL4zO34XTORSpPF7vcC8iIiJyKVPLl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHC1yneeOMN4uLi8PPz44orrmD16tVVXVK1smLFCvr370+9evUwDIOvvvqqqkuqViZOnMhll11GcHAwtWvXZuDAgfz+++9VXVa1MmXKFNq1a+ceGLRr167Mnz+/qsuqtiZNmoRhGDz66KNVXYpIjaLw9YfZs2czfvx4nnrqKdavX0/79u3p06cPKSkpVV1atZGTk0P79u154403qrqUamn58uWMHj2aX375hUWLFlFUVMQNN9xATk5OVZdWbTRo0IBJkyaxbt061q5dy7XXXsuAAQPYsmVLVZdW7axZs4apU6fSrl27qi5FpMbRUBN/uOKKK7jssst4/fXXAdczKGNiYnj44Yd54oknqri66scwDL788ksGDhxY1aVUW0ePHqV27dosX76cHj16VHU51VZERAQvvvgio0aNqupSqo3s7Gw6derEm2++yb///W86dOjAq6++WtVlidQYavkCCgsLWbduHb1793ZPs1gs9O7dm59//rkKK5NLWUZGBuAKD1J+DoeDWbNmkZOTQ9euXau6nGpl9OjR9OvXz+NvoohUHK8/WPtidOzYMRwOB3Xq1PGYXqdOHbZv315FVcmlzOl08uijj3LVVVfRpk2bqi6nWtm0aRNdu3YlPz+foKAgvvzyS1q1alXVZVUbs2bNYv369axZs6aqSxGpsRS+RC5Co0ePZvPmzaxcubKqS6l2mjdvTkJCAhkZGXz++ecMHz6c5cuXK4Cdg6SkJB555BEWLVqEn59fVZcjUmMpfAG1atXCarVy5MgRj+lHjhwhOjq6iqqSS9WYMWOYN28eK1asoEGDBlVdTrXj6+tLkyZNAOjcuTNr1qzhf//7H1OnTq3iyi5+69atIyUlhU6dOrmnORwOVqxYweuvv05BQQFWq7UKKxSpGdTnC9cf686dO/PDDz+4pzmdTn744Qf1FRGvMU2TMWPG8OWXX7JkyRLi4+OruqQawel0UlBQUNVlVAvXXXcdmzZtIiEhwf3q0qULw4YNIyEhQcFLpIKo5esP48ePZ/jw4XTp0oXLL7+cV199lZycHEaOHFnVpVUb2dnZ7Nq1y/1zYmIiCQkJRERE0LBhwyqsrHoYPXo0M2fOZO7cuQQHB3P48GEAQkND8ff3r+LqqocJEyZw44030rBhQ7Kyspg5cybLli1j4cKFVV1atRAcHFyij2FgYCCRkZHqeyhSgRS+/jBkyBCOHj3Kk08+yeHDh+nQoQMLFiwo0QlfyrZ27VquueYa98/jx48HYPjw4UyfPr2Kqqo+pkyZAkCvXr08pk+bNo0RI0Z4v6BqKCUlhbvvvpvk5GRCQ0Np164dCxcu5Prrr6/q0kRE3DTOl4iIiIgXqc+XiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh40f8HwVy3u0pRXqYAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=12\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB24klEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQiooCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIEXBQjN0pAUIEAiQ3pOZ8/tjzMCQBAgkExLu13XNBTn1cw5D5p7nPOc5hmmaJiIiIiLiFZbqLkBERETkUqLwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJV7zz3/+E8MwPKbFxcUxevRor9Yxa9YsDMNg3759Xt2vnBv9+4hIbafwVc0SExMZP348LVq0ICAggICAANq0acO4cePYtGlTdZd3Sdq3bx+GYZzTq7yAEBcXh2EY9O3bt8z5b731lnsb69atq8KjOT9nOwdTp06t7hIvKXPmzOHll1+u7jJEpJLYqruAS9mCBQsYPnw4NpuNkSNH0rFjRywWCzt27OCzzz5j+vTpJCYmEhsbW92lVpnffvsNi+Xi+g4QFRXFe++95zHthRde4ODBg7z00kulli2Pn58fy5cv58iRI0RHR3vM++CDD/Dz8yM/P7/yCq8CI0aM4MYbbyw1vXPnzlW2zzvvvJPbbrsNu91eZfuoaebMmcOWLVt4+OGHq7sUEakECl/VZM+ePdx2223Exsby3XffUb9+fY/5zz77LK+//vpFF0xOlZOTQ2Bg4AVt42L8gA0MDOSOO+7wmPbRRx+RlpZWavqZXHXVVaxdu5a5c+fy0EMPuacfPHiQH374gaFDhzJv3rxKq7sqdOnSpULHXBmsVitWq/WMy5imSX5+Pv7+/l6qSkSk8ly8n+y13HPPPUdOTg4zZ84sFbwAbDYbEyZMICYmxmP6jh07uPnmm4mIiMDPz49u3brx5ZdfeixT0mdm9erVTJo0iaioKAIDAxk6dCjHjh0rta+FCxfSs2dPAgMDCQ4OZuDAgWzdutVjmdGjRxMUFMSePXu48cYbCQ4OZuTIkQD88MMP3HLLLTRu3Bi73U5MTAwTJ04kLy/vrOfh9D5f53qJ71zOA8DWrVu59tpr8ff3p1GjRvzrX//C6XSeta7K4Ofnxx/+8AfmzJnjMf3DDz8kPDycfv36lVpn06ZNjB49miZNmuDn50d0dDR33303J06ccC9ztkuCp/rll1/o378/oaGhBAQE0Lt3b1avXl2pxxkXF8dNN93EqlWruPzyy/Hz86NJkybMnj3bvcy6deswDIN333231PqLFy/GMAwWLFgAlN3nq2Qfixcvplu3bvj7+zNjxgwA9u7dyy233EJERAQBAQFceeWVfP311x77WLFiBYZh8PHHH/Pvf/+bRo0a4efnx3XXXcfu3bs9lu3Tpw/t2rVj06ZN9O7dm4CAAJo1a8ann34KwMqVK7niiivw9/enZcuWLF26tNQxHTp0iLvvvpt69epht9tp27Yt77zzznnV1KdPH77++mv279/v/jeOi4s7h38ZEblYqeWrmixYsIBmzZpxxRVXnPM6W7du5aqrrqJhw4Y89thjBAYG8vHHHzNkyBDmzZvH0KFDPZb/05/+RHh4OE888QT79u3j5ZdfZvz48cydO9e9zHvvvceoUaPo168fzz77LLm5uUyfPp2rr76aX3/91eOXfHFxMf369ePqq6/mP//5DwEBAQB88skn5Obm8sADDxAZGcmaNWt45ZVXOHjwIJ988kmFzsvpl/sA/v73v5OSkkJQUFCFzsORI0e45pprKC4udi/35ptverW15Pbbb+eGG25gz549NG3aFHBdQrr55pvx8fEptfySJUvYu3cvY8aMITo6mq1bt/Lmm2+ydetWfv75ZwzDKPOyaFFRERMnTsTX19c9bdmyZQwYMICuXbvyxBNPYLFYmDlzJtdeey0//PADl19++Vnrz83N5fjx46Wmh4WFYbOd/PWxe/dubr75ZsaOHcuoUaN45513GD16NF27dqVt27Z069aNJk2a8PHHHzNq1CiPbc2dO7fcMHqq3377jREjRvDHP/6Re++9l5YtW3L06FF69OhBbm4uEyZMIDIyknfffZf/+7//49NPPy31f2Lq1KlYLBYeeeQRMjIyeO655xg5ciS//PKLx3JpaWncdNNN3Hbbbdxyyy1Mnz6d2267jQ8++ICHH36Y+++/n9tvv53nn3+em2++maSkJIKDgwE4evQoV155JYZhMH78eKKioli4cCFjx44lMzOz1KXDs9X0//7f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ZVHLl4iIXPJ8LD5YLVaKzeKzL3wKh+ka/8vHcm6XKi/E9u3biY+PL3Nely5dSExMZOHChSxdupRbb72Vvn378umnn55xm4GBgaWmDRo0iNjYWN566y0aNGiA0+mkXbt27g7w/v5V18JXVj3lWblyJYMGDeKll17irrvuOuOyAwYMYP/+/XzzzTcsWbKE6667jnHjxvGf//yH7OxsunbtWuYdkxUJghWhli8REbnk+Vn9iAmOIb0gvULrpRWkERMcg5+17M7hlWXZsmVs3ry51CXBU4WEhDB8+HDeeust5s6dy7x580hNTQXAx8cHh8Nx1v2cOHGC3377jb///e9cd911tG7dmrS0NI9lOnToQEJCgnvbp/P19S21r9atW3v0QwPYtm0b6enptGnT5qx1nW7FihUMHDiQZ599lvvuu++c1omKimLUqFG8//77vPzyy7z55puAK7ju2rWLunXr0qxZM49XaGhoucd0IRS+RETkkmcYBl3qdcE0TYoc53YJsdBRCCZ0rde1UjvbFxQUcOTIEQ4dOsSGDRt45plnGDx4MDfddFO5LTwvvvgiH374ITt27GDnzp188sknREdHExYWBrj6OH333XccOXKkVJg6VXh4OJGRkbz55pvs3r2bZcuWMWnSJI9lRowYQXR0NEOGDGH16tXs3buXefPm8dNPP7n3lZiYSEJCAsePH6egoIC+ffvSvn17Ro4cyYYNG1izZg133XUXvXv3dvfDOlfLly9n4MCBTJgwgWHDhnHkyBGOHDlSbhgEePzxx5k/fz67d+9m69atLFiwwN1Bf+TIkdSpU4fBgwfzww8/kJiYyIoVK5gwYQIHDx50H9OmTZv47bffOH78OEVFF3aZWeFLREQEaBXRipjgGPZn7cc0zTMua5omB7IOEBMcQ8uIlpVax6JFi6hfvz5xcXH079+f5cuXM23aNObPn1/uHYDBwcE899xzdOvWjcsuu4x9+/bxzTffYLG4PuZfeOEFlixZQkxMDJ07dy533xaLhY8++oj169fTrl07Jk6cyPPPP++xjK+vL99++y1169blxhtvpH379kydOtVd27Bhw+jfvz/XXHMNUVFRfPjhhxiGwfz58wkPD6dXr1707duXJk2aMHfu3Aqfn3fffZfc3FymTJlC/fr13a8//OEP5a7j6+vL5MmT6dChA7169cJqtfLRRx8BEBAQwPfff0/jxo35wx/+QOvWrRk7diz5+fmEhIQAcO+999KyZUu6detGVFQUq1evrnDdpzLMs73DKllmZiahoaFkZGS4D0pERKSiyvs8yc/PJzEx8YxjRZWnZIT743nHaRzc2DWcxGkKHYUcyDpAHf863Nn6TmJCYsrYklxqKvK+U4d7ERGR3zUOacwdre9wP9sRwzWchNWw4jAdpBWkgQmNgxszrPkwBS85LwpfIiIip2gc0pgHOj3Ab6m/sf7oepKykihyFGG1WGkX2Y6u9brSMqIldmvlPdpHLi0KXyIiIqexW+10iOpA+zrtyXfkU+Qswsfig5/Vr0pHspdLg8KXiIhIOQzDwN/mjz9VO3q9XFp0t6OIiNRKXr6fTC5xFXm/KXyJiEit4uPjGm0+Nze3miuRS0nJ+63k/XcmuuwoIiK1itVqJSwsjJSUFMA1jpP6aUlVMU2T3NxcUlJSCAsLK3cstlMpfImISK0THR0N4A5gIlUtLCzM/b47G4UvERGpdQzDoH79+tStW/eCHwUjcjY+Pj7n1OJVQuFLRERqLavVWqEPRRFvUId7ERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIlt1F3AxySkoJrugGAMI8rMR4KvTIyKXoKJ8yE8H0wTfALCHgGFUd1UitcYlny5SsvLZlJTBlsMZHM3Mp7DYCYCvzUK9ED/aNwylQ6MwooLt1VypiEgVykuDw7+6XhkHXQEME6y+EFgH6rWHRl0hNEZBTOQCGaZpmt7cYWZmJqGhoWRkZBASEuLNXXvIL3KwfEcKK3ceIzWnkABfK0F2G3YfKwAFRQ6yC4rJK3IQHuDLNS2j6N2yLn6/zxcRqRUcxbDve9jxNWQdBZvd1dLl4w8Y4CiAgmwozHJNj7saWt8EfqHVXflF83kiUlGXZMvXiewC5vxygC2H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abpau7KSXcu3GQyt/w9sZ/7iKiJlu+QuO54qKTWXZTtS2Ho4g8z8YgzAx2rBxKS42MQEQvxttGsYyrWt6tIoPKBa6xURqRLZx2DXt5C0xnUHI7jGAjMMcBQBpmt4iqjW0OIGqNu6WsstcTF9nohUxCUdvkocycgn8XgORzLySM0pBAMiA+3UC/GjSVQg9UI0pISIXAJyU+HYb64WruyjrtHw/cIgpAGEx7leF1HL/8X4eSJyLi65y45liQ71IzpUAUtELnEBERDbvbqrEKn1LrkO9yIiIiLVSeFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts1V2A1A6maZKeW8Sx7ALyCh1YDIOwAB+igu34+Viruzy5VDiKIPso5BwH0wFWOwTVg4BIsOi7pohcHBS+5ILkFTrYdDCdNYmpJKXlklPgwGE6AQM/m4UQPx86xITSpXE48XUCMQyjukuW2ijjICSthaRfIC8NinJd0w0L+AZBcDTEXQUNu4JfaPXWKiKXPMM0TdObO8zMzCQ0NJSMjAxCQkK8uWupZLtTsvgy4TC7UrKxWQ0iAnwJtNvwsVowTZO8IgdZ+cWk5RYRZLdydfMorm9TjyC7Mr9UkuIC2L0UflsEeangFw7+oeAT4ApezmIozIbcVCjOg7A4aDcUGnQB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43O24QBEKsrphORfYd9q16XIgmxODpxquFq3/MOg0eUQdxWEx1VfrVKp9HkiNZXCl1SKnIJiDqfnkZJVQF6hA4sFQv19qRdip0Gov/p3SdUruayYlQw5J8B0uAZkDarnGhtMg6nWOvo8kZqqyp/tKJeGQLuN5vWCaV4v+OwLi1QFw4CQBq6XiMhFTNeARERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2zVXYDUDln5RRxMy+NYVgF5RQ4shkFYgA/1gv1oGO6P1WJUd4lS25kmZB6CzGTIPQ5OB9jsEFQXQmMgIKK6KxQRARS+5AIdycjnp70nWL8/lbScQhyma7oBmIC/j4XGEYFc0SSCbrER+NrU2CqVzOmAQxtg3w9wfCcU5njONwzwC4OGXSHuaohsWi1lioiUUPiS8+J0mvy45wQLtyRzLKuAiEBf4iIDsVlPhivTNMktdJB4PIddKVkkJKUzuFNDGob5V2PlUqvknIAtn8KBn10/B9WD0MauwFXC6YC8VNi9BJLWQMv+0Lwf2Hyrp2YRueQpfEmFOZwmCzYdZsm2o/jZrLSKDsYwSl9WNAyDQLuNeLuN/CIHm5IyOJZVwF3d44ivE1gNlUutknUEfnkTju2A8DiwB5e9nMUKgVEQUAeyj8KmjyHr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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=13\n" - ] - }, - { - "data": { - "image/png": "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emvXrk2vXr2YOnUqycnJJZYvbQiJs+nTpw8hISE899xzFBUVndc2T3xrP7Ve0zT53//+V+56AKZNm8bUqVN54403Sg2l5TkPN910E7/88gurV6/2mP/xxx+fV22na9WqFb1793a/OnfuXOay9957L0899RQvvfRSmcuUdi6BUkc2f/rpp1m4cCGffPJJqZfjOnfuTOPGjfnvf/9b6uXt83m/VISWLVvStm1bZs+ezezZs6lbty49evQ47+3ddNNNrF69mp9//tk9LScnh7fffpu4uLgSfdMqm9VqZfDgwcyZM6fUlu3zPe+BgYHnfQlfRC4+avmqIk2bNmXmzJkMHTqU5s2bu0e4N02TxMREZs6cicVi8ehj9cYbb3D11VfTtm1b7rvvPho1asSRI0f4+eefOXDgABs2bChXDSEhIUyZMoW77rqLTp06cfvttxMVFcX+/fv59ttvueqqq3j99dfPuI0WLVrQuHFjHnvsMQ4ePEhISAhz5sw5r/4qx44d46GHHqJVq1bY7XY++ugjj/mDBg0iMDDwnM/D3/72Nz788EP69u3LI4884h5qIjY21uuPboqNjeVf//rXGZcJCQmhR48evPDCCxQVFVG/fn2+//57EhMTPZbbtGkTzz77LD169CAlJaXEebrzzjuxWCy8++673HjjjbRu3ZqRI0dSv359Dh48yNKlSwkJCeGbb745a93r168vsX1wtax17dr17AdeiiFDhvDkk0/i5+fHqFGjLmgg4SeeeIJPPvmEG2+8kbFjxxIREcEHH3xAYmIic+bMqZJBiidNmsTSpUu54ooruO+++2jVqhWpqamsX7+exYsXk5qaWu5tdu7cmdmzZzN+/Hguu+wygoKC6N+/fyVULyLeoPBVhQYMGMCmTZt46aWX+P7773n//fcxDIPY2Fj69evHAw88QPv27d3Lt2rVirVr1/L0008zffp0jh8/Tu3atenYsaPHZaryuOOOO6hXrx6TJk3ixRdfpKCggPr169O9e3dGjhx51vV9fHz45ptvGDt2LBMnTsTPz49BgwYxZswYj9rPRXZ2Nvn5+WzdutV9d+OpEhMTCQwMPOfzULduXZYuXcrDDz/MpEmTiIyM5IEHHqBevXruDt8Xm5kzZ/Lwww/zxhtvYJomN9xwA/Pnz6devXruZY4fP45pmixfvpzly5eX2MaJS6G9evXi559/5tlnn+X1118nOzub6OhorrjiCv785z+fUz2ffPKJ+07NUw0fPvyCwtc//vEPcnNzz+kuxzOpU6cOP/30E48//jivvfYa+fn5tGvXjm+++YZ+/fpd0LYvpKbVq1fzzDPP8MUXX/Dmm28SGRlJ69atef75589rmw899BAJCQlMmzaNV155hdjYWIUvkWrMMNWrU0RERMRr1OdLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yOvjfDmdTg4dOkRwcLAemSEiIufNNE2ysrKoV69elQyoK3K+vB6+Dh06RExMjLd3KyIiNVRSUpLH00BELnZeD1/BwcGA63+WkJAQb+9eRERqiMzMTGJiYtyfKyLVhdfD14lLjSEhIQpfIiJywdSFRaobXSQXERER8SKFLxEREREvUvgSERER8SKv9/kSERHxFofDQVFRUVWXITWcj48PVqv1nJdX+BIRkRrHNE0OHz5Menp6VZcil4iwsDCio6PP6QYQhS8REalxTgSv2rVrExAQoDsipdKYpklubi4pKSkA1K1b96zrKHyJiEiN4nA43MErMjKyqsuRS4C/vz8AKSkp1K5d+6yXINXhXkREapQTfbwCAgKquBK5lJx4v51LH0OFLxERqZF0qVG8qTzvN4UvERERES9S+BIRERHxIoUvERGR0xQWFl7Q/At1+PBhHn74YRo1aoTdbicmJob+/fvzww8/VOp+xTsUvkRERE4xe/Zs2rZtS1JSUqnzk5KSaNu2LbNnz66U/e/du5fOnTuzZMkSXnzxRTZt2sSCBQu45pprGD16dKXsU7xL4UtEROQPhYWFPPnkk+zYsYNevXqVCGBJSUn06tWLHTt28OSTT1ZKC9hDDz2EYRisXr2awYMH06xZM1q3bs348eP55Zdf2Lt3L4ZhkJCQ4F4nPT0dwzBYtmyZe9rmzZu58cYbCQoKok6dOtx1110cO3aswuuV8lP4EhER+YOvry+LFy+mUaNG7NmzxyOAnQhee/bsoVGjRixevBhfX98K3X9qaioLFixg9OjRBAYGlpgfFhZ2TttJT0/n2muvpWPHjqxdu5YFCxZw5MgRbrvttgqtV86PwpeIiMgpYmJiWLZsmUcA++mnnzyC17Jly4iJianwfe/atQvTNGnRosUFbef111+nY8eOPPfcc7Ro0YKO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/P396du3r7tWgG+//Zb69et7rGe32895HzWNwpeIiMgfQkLAYjm3AGaxuJavTJMmTaJDhw40b97cPa1Tp05s3bqVJk2alLpO8+bNKS4u5rfffqNz586AqwXq1Lsn161bh9Pp5KWXXsJicXX//vTTTz224+vri8PhOGuN3bp1IyYmhtmzZzN//nxuvfVWfHx8AGjVqhV2u539+/fTs2fP8h18DabwJSIi8gd/fxgwwHVX4+md7U9ls7mWq6xWrxPatm3LsGHDmDx5snva448/zpVXXsmYMWO49957CQwMZOvWrSxatIjXX3+dFi1a0Lt3b+6//36mTJmCj48Pf/nLX/D393ePFdakSROKiop47bXX6N+/P6tWreKt027hjIuLIzs7mx9++IH27dsTEBBQZovYHXfcwVtvvcWOHTtYunSpe3pwcDCPPfYY48aNw+l0cvXVV5ORkcGqVasICQlh+PDhlXDWLn6621FEROQU48fD2Rp8HA4YN8479TzzzDM4T2mKa9euHcuXL2fHjh10796djh078uSTT1KvXj33MjNmzKBOnTr06NGDQYMGcd999xEcHIyfnx8A7du35+WXX+b555+nTZs2fPzxxyWGtujWrRsPPPAAQ4YMISoqihdeeKHMGocNG8bWrVupX78+V111lce8Z599ln/+859MnDiRli1b0rdvX7799lvi4+Mr4vRUS4ZpmqY3d5iZmUloaCgZGRmEVHZ7rYiI1FhlfZ7k5+eTmJhIfHy8O2yU11tvuYaTsFo9W8BsNlfwevNNeOCBCz0C7zlw4AAxMTEsXryY6667rqrLqZHK875Ty5eIiMhpHngAfvzRdWnxjy5RWCyun3/88eIPXkuWLOHrr78mMTGRn376idtvv524uDh69OhR1aUJ6vMlIiJSqquucr3y8lx3NYaEVH4fr4pSVFTE3//+d/bs2UNwcDDdunXj448/dneEl6ql8CUiInIG/v7VJ3Sd0KdPH/r06VPVZUgZdNlRRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIt0t6OIiAiwL3MfOUU55V4v0CeQ2JDYSqhIaiqFLxERueTty9zHzV/efN7rzxs0TwFMzpkuO4qIyCXvfFq8KnL90/38889YrVb69etXods9V3v37sUwDBISEqpk/zWdwpeIiMhF5r333uPhhx9mxYoVHDp0qKrLkQqm8CUiInIRyc7OZvbs2Tz44IP069eP6dOne8z/+uuvadq0KX5+flxzzTV88MEHGIZBenq6e5mVK1fSvXt3/P39iYmJYezYseTknGydi4uL47nnnuOee+4hODiYhg0b8vbbb7vnx8fHA9CxY0cMw6BXr16VeciXHIUvERGRi8inn35KixYtaN68OXfeeSfvv/8+pmkCkJiYyC233MLAgQPZsGEDf/7zn/m///s/j/V3795N3759GTx4MBs3bmT27NmsXLmSMWPGeCz30ksv0aVLF3777TceeughHnzwQX7//XcAVq9eDcDixYtJTk7miy++8MKRXzoUvkRERC4i7733HnfeeScAffv2JSMjg+XLlwMwdepUmjdvzosvvkjz5s25/fbbGTFihMf6EydOZNiwYTz66KM0bdqUbt26MXnyZGbMmEF+fr57uZtuuomHHnqIJk2a8Pjjj1OrVi2WLl0KQFRUFACRkZFER0cTERHhhSO/dCh8iYiIXCR+//13Vq9ezdChQwGw2WwMGTKE9957zz3/sssu81jn8ssv9/h5w4YNTJ8+naCgIPerT58+OJ1OEhMT3cu1a9fO/d+GYRAdHU1KSkplHZqcQkNNiIiIXCTee+89iouLqVevnnuaaZrY7XZef/31c9pGdnY2f/7znxk7dmyJeQ0bNnT/t4+Pj8c8wzBwOp3nWbmUh8KXiIjIRaC4uJgZM2bw0ksvccMNN3jMGzhwIJ988gnNmzfnu+++85i3Zs0aj587derE1q1badKkyXnX4uvrC4DD4TjvbUjZFL5EREQuAvPmzSMtLY1Ro0YRGhrqMW/w4MG89957fPrpp7z88ss8/vjjjBo1ioSEBPfdkIZhAPD4449z5ZVXMmbMGO69914CAwPZunUrixYtOufWs9q1a+Pv78+CBQto0KABfn5+JWqS86c+XyIiIheB9957j969e5cacgYPHszatWvJysri888/54svvqBdu3ZMmTLFfbej3W4HXH25li9fzo4dO+jevTsdO3bkySef9LiUeTY2m43JkyczdepU6tWrx4ABAyrmIAUAwzxx/6qXZGZmEhoaSkZGBiEhId7ctYiI1CBlfZ7k5+eTmJhIfHw8fn5+57Strce3MmTekPOuZfbNs2kV2eq8178Q//nPf3jrrbdISkqqkv2LS3ned7rsKCIi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LxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SJbVRcgNUNWfhEH0vI4mlVAXpEDi2EQFuBDnWA/6of7Y7UYVV2i1HSmCZkHITMZco+B0wE2OwTVhtAYCIio6gpFRACFL7lAhzPy+XnPcdbtSyUtpxCH6ZpuACbg72OhYUQgVzSKoEtsBL42NbZKBXM64OB62PsjHNsBhTme8w0D/MKgfmeIuxoiG1dJmSIiJyh8yXlxOk1+2n2c+ZuTOZpVQESgL3GRgdisJ8OVaZrkFjpIPJbDzpQsEpLSGdChPvXD/KuwcqlRco7D5s9h/y+un4PqQGhDV+A6wemAvFTYtQiSVkPzvtC0D9h8q6ZmEbnkKXxJuTmcJvM2HmLR1iP42ay0iA7GMEpeVjQMg0C7jXi7jfwiBxuTMjiaVcDdXeOIrxVYBZVLjZJ1GH59G45uh/A4sAeXvpzFCoFREFALso/Axk8h6wh0ust1WVJExMt0DUjK7cedR/l+yxEiAn2pH+5favA6nZ+Plaa1gziSkc/MX/dxPLvAC5VKjVWYC2unwfEdULtl2cHrVIYBwdGu/l97lsHmL139xEREvEzhS8rlQFouCzcfJtBuJTyg9Ms21oJ8AtKOYS3I95husRg0igpi//FcvtuUjNOpDz45TzsWwpHNENkULCUb8PMKbBxJDSCvoJTGfXuwK4TtWQKHN3mhWBERT+d12fGNN97gxRdf5PDhw7Rv357XXnuNyy+/vKJrk4vQih1HOZ5TSIvoki0N9TavpdOc6TT++QcsTidOi4XdXa9j/S0jOdS6MwBWi0G9cH/W7Uuja+NaNKkd5O1DkOouO8UVnAKjwOr5BWDlpga8/NnlzP2pKU6nBYvFyYBuO/nLbb9yVZuDJxcMiIScY64Q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RES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yObtHZqmCUBmZqa3dy0iIjXIic+RE58rItWF18NXVlYWADExMd7etYiI1EBZWVmEhoZWdRki58wwvfyVwel0cujQIYKDgzEMw5u7PieZmZnExMSQlJRESEhIVZdTLekcXjidwwuj83fhqsM5NE2TrKws6tWrh8WiXjRSfXi95ctisdCgQQNv77bcQkJCLto/ONWFzuGF0zm8MDp/F+5iP4dq8ZLqSF8VRERERLxI4UtERETEixS+TmO323nqqaew2+1VXUq1pXN44XQOL4zO34XTORSpPF7vcC8iIiJyKVPLl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHC1yneeOMN4uLi8PPz44orrmD16tVVXVK1smLFCvr370+9evUwDIOvvvqqqkuqViZOnMhll11GcHAwtWvXZuDAgfz+++9VXVa1MmXKFNq1a+ceGLRr167Mnz+/qsuqtiZNmoRhGDz66KNVXYpIjaLw9YfZs2czfvx4nnrqKdavX0/79u3p06cPKSkpVV1atZGTk0P79u154403qrqUamn58uWMHj2aX375hUWLFlFUVMQNN9xATk5OVZdWbTRo0IBJkyaxbt061q5dy7XXXsuAAQPYsmVLVZdW7axZs4apU6fSrl27qi5FpMbRUBN/uOKKK7jssst4/fXXAdczKGNiYnj44Yd54oknqri66scwDL788ksGDhxY1aVUW0ePHqV27dosX76cHj16VHU51VZERAQvvvgio0aNqupSqo3s7Gw6derEm2++yb///W86dOjAq6++WtVlidQYavkCCgsLWbduHb1793ZPs1gs9O7dm59//rkKK5NLWUZGBuAKD1J+DoeDWbNmkZOTQ9euXau6nGpl9OjR9OvXz+NvoohUHK8/WPtidOzYMRwOB3Xq1PGYXqdOHbZv315FVcmlzOl08uijj3LVVVfRpk2bqi6nWtm0aRNdu3YlPz+foKAgvvzyS1q1alXVZVUbs2bNYv369axZs6aqSxGpsRS+RC5Co0ePZvPmzaxcubKqS6l2mjdvTkJCAhkZGXz++ecMHz6c5cuXK4Cdg6SkJB555BEWLVqEn59fVZcjUmMpfAG1atXCarVy5MgRj+lHjhwhOjq6iqqSS9WYMWOYN28eK1asoEGDBlVdTrXj6+tLkyZNAOjcuTNr1qzhf//7H1OnTq3iyi5+69atIyUlhU6dOrmnORwOVqxYweuvv05BQQFWq7UKKxSpGdTnC9cf686dO/PDDz+4pzmdTn744Qf1FRGvMU2TMWPG8OWXX7JkyRLi4+OruqQawel0UlBQUNVlVAvXXXcdmzZtIiEhwf3q0qULw4YNIyEhQcFLpIKo5esP48ePZ/jw4XTp0oXLL7+cV199lZycHEaOHFnVpVUb2dnZ7Nq1y/1zYmIiCQkJRERE0LBhwyqsrHoYPXo0M2fOZO7cuQQHB3P48GEAQkND8ff3r+LqqocJEyZw44030rBhQ7Kyspg5cybLli1j4cKFVV1atRAcHFyij2FgYCCRkZHqeyhSgRS+/jBkyBCOHj3Kk08+yeHDh+nQoQMLFiwo0QlfyrZ27VquueYa98/jx48HYPjw4UyfPr2Kqqo+pkyZAkCvXr08pk+bNo0RI0Z4v6BqKCUlhbvvvpvk5GRCQ0Np164dCxcu5Prrr6/q0kRE3DTOl4iIiIgXqc+XiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh40f8HwVy3u0pRXqYAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time t=14\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB24klEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQiooCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIEXBQjN0pAUIEAiQ3pOZ8/tjzMCQBAgkExLu13XNBTn1cw5D5p7nPOc5hmmaJiIiIiLiFZbqLkBERETkUqLwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJV7zz3/+E8MwPKbFxcUxevRor9Yxa9YsDMNg3759Xt2vnBv9+4hIbafwVc0SExMZP348LVq0ICAggICAANq0acO4cePYtGlTdZd3Sdq3bx+GYZzTq7yAEBcXh2EY9O3bt8z5b731lnsb69atq8KjOT9nOwdTp06t7hIvKXPmzOHll1+u7jJEpJLYqruAS9mCBQsYPnw4NpuNkSNH0rFjRywWCzt27OCzzz5j+vTpJCYmEhsbW92lVpnffvsNi+Xi+g4QFRXFe++95zHthRde4ODBg7z00kulli2Pn58fy5cv58iRI0RHR3vM++CDD/Dz8yM/P7/yCq8CI0aM4MYbbyw1vXPnzlW2zzvvvJPbbrsNu91eZfuoaebMmcOWLVt4+OGHq7sUEakECl/VZM+ePdx2223Exsby3XffUb9+fY/5zz77LK+//vpFF0xOlZOTQ2Bg4AVt42L8gA0MDOSOO+7wmPbRRx+RlpZWavqZXHXVVaxdu5a5c+fy0EMPuacfPHiQH374gaFDhzJv3rxKq7sqdOnSpULHXBmsVitWq/WMy5imSX5+Pv7+/l6qSkSk8ly8n+y13HPPPUdOTg4zZ84sFbwAbDYbEyZMICYmxmP6jh07uPnmm4mIiMDPz49u3brx5ZdfeixT0mdm9erVTJo0iaioKAIDAxk6dCjHjh0rta+FCxfSs2dPAgMDCQ4OZuDAgWzdutVjmdGjRxMUFMSePXu48cYbCQ4OZuTIkQD88MMP3HLLLTRu3Bi73U5MTAwTJ04kLy/vrOfh9D5f53qJ71zOA8DWrVu59tpr8ff3p1GjRvzrX//C6XSeta7K4Ofnxx/+8AfmzJnjMf3DDz8kPDycfv36lVpn06ZNjB49miZNmuDn50d0dDR33303J06ccC9ztkuCp/rll1/o378/oaGhBAQE0Lt3b1avXl2pxxkXF8dNN93EqlWruPzyy/Hz86NJkybMnj3bvcy6deswDIN333231PqLFy/GMAwWLFgAlN3nq2Qfixcvplu3bvj7+zNjxgwA9u7dyy233EJERAQBAQFceeWVfP311x77WLFiBYZh8PHHH/Pvf/+bRo0a4efnx3XXXcfu3bs9lu3Tpw/t2rVj06ZN9O7dm4CAAJo1a8ann34KwMqVK7niiivw9/enZcuWLF26tNQxHTp0iLvvvpt69epht9tp27Yt77zzznnV1KdPH77++mv279/v/jeOi4s7h38ZEblYqeWrmixYsIBmzZpxxRVXnPM6W7du5aqrrqJhw4Y89thjBAYG8vHHHzNkyBDmzZvH0KFDPZb/05/+RHh4OE888QT79u3j5ZdfZvz48cydO9e9zHvvvceoUaPo168fzz77LLm5uUyfPp2rr76aX3/91eOXfHFxMf369ePqq6/mP//5DwEBAQB88skn5Obm8sADDxAZGcmaNWt45ZVXOHjwIJ988kmFzsvpl/sA/v73v5OSkkJQUFCFzsORI0e45pprKC4udi/35ptverW15Pbbb+eGG25gz549NG3aFHBdQrr55pvx8fEptfySJUvYu3cvY8aMITo6mq1bt/Lmm2+ydetWfv75ZwzDKPOyaFFRERMnTsTX19c9bdmyZQwYMICuXbvyxBNPYLFYmDlzJtdeey0//PADl19++Vnrz83N5fjx46Wmh4WFYbOd/PWxe/dubr75ZsaOHcuoUaN45513GD16NF27dqVt27Z069aNJk2a8PHHHzNq1CiPbc2dO7fcMHqq3377jREjRvDHP/6Re++9l5YtW3L06FF69OhBbm4uEyZMIDIyknfffZf/+7//49NPPy31f2Lq1KlYLBYeeeQRMjIyeO655xg5ciS//PKLx3JpaWncdNNN3Hbbbdxyyy1Mnz6d2267jQ8++ICHH36Y+++/n9tvv53nn3+em2++maSkJIKDgwE4evQoV155JYZhMH78eKKioli4cCFjx44lMzOz1KXDs9X0//7f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ZVHLl4iIXPJ8LD5YLVaKzeKzL3wKh+ka/8vHcm6XKi/E9u3biY+PL3Nely5dSExMZOHChSxdupRbb72Vvn378umnn55xm4GBgaWmDRo0iNjYWN566y0aNGiA0+mkXbt27g7w/v5V18JXVj3lWblyJYMGDeKll17irrvuOuOyAwYMYP/+/XzzzTcsWbKE6667jnHjxvGf//yH7OxsunbtWuYdkxUJghWhli8REbnk+Vn9iAmOIb0gvULrpRWkERMcg5+17M7hlWXZsmVs3ry51CXBU4WEhDB8+HDeeust5s6dy7x580hNTQXAx8cHh8Nx1v2cOHGC3377jb///e9cd911tG7dmrS0NI9lOnToQEJCgnvbp/P19S21r9atW3v0QwPYtm0b6enptGnT5qx1nW7FihUMHDiQZ599lvvuu++c1omKimLUqFG8//77vPzyy7z55puAK7ju2rWLunXr0qxZM49XaGhoucd0IRS+RETkkmcYBl3qdcE0TYoc53YJsdBRCCZ0rde1UjvbFxQUcOTIEQ4dOsSGDRt45plnGDx4MDfddFO5LTwvvvgiH374ITt27GDnzp188sknREdHExYWBrj6OH333XccOXKkVJg6VXh4OJGRkbz55pvs3r2bZcuWMWnSJI9lRowYQXR0NEOGDGH16tXs3buXefPm8dNPP7n3lZiYSEJCAsePH6egoIC+ffvSvn17Ro4cyYYNG1izZg133XUXvXv3dvfDOlfLly9n4MCBTJgwgWHDhnHkyBGOHDlSbhgEePzxx5k/fz67d+9m69atLFiwwN1Bf+TIkdSpU4fBgwfzww8/kJiYyIoVK5gwYQIHDx50H9OmTZv47bffOH78OEVFF3aZWeFLREQEaBXRipjgGPZn7cc0zTMua5omB7IOEBMcQ8uIlpVax6JFi6hfvz5xcXH079+f5cuXM23aNObPn1/uHYDBwcE899xzdOvWjcsuu4x9+/bxzTffYLG4PuZfeOEFlixZQkxMDJ07dy533xaLhY8++oj169fTrl07Jk6cyPPPP++xjK+vL99++y1169blxhtvpH379kydOtVd27Bhw+jfvz/XXHMNUVFRfPjhhxiGwfz58wkPD6dXr1707duXJk2aMHfu3Aqfn3fffZfc3FymTJlC/fr13a8//OEP5a7j6+vL5MmT6dChA7169cJqtfLRRx8BEBAQwPfff0/jxo35wx/+QOvWrRk7diz5+fmEhIQAcO+999KyZUu6detGVFQUq1evrnDdpzLMs73DKllmZiahoaFkZGS4D0pERKSiyvs8yc/PJzEx8YxjRZWnZIT743nHaRzc2DWcxGkKHYUcyDpAHf863Nn6TmJCYsrYklxqKvK+U4d7ERGR3zUOacwdre9wP9sRwzWchNWw4jAdpBWkgQmNgxszrPkwBS85LwpfIiIip2gc0pgHOj3Ab6m/sf7oepKykihyFGG1WGkX2Y6u9brSMqIldmvlPdpHLi0KXyIiIqexW+10iOpA+zrtyXfkU+Qswsfig5/Vr0pHspdLg8KXiIhIOQzDwN/mjz9VO3q9XFp0t6OIiNRKXr6fTC5xFXm/KXyJiEit4uPjGm0+Nze3miuRS0nJ+63k/XcmuuwoIiK1itVqJSwsjJSUFMA1jpP6aUlVMU2T3NxcUlJSCAsLK3cstlMpfImISK0THR0N4A5gIlUtLCzM/b47G4UvERGpdQzDoH79+tStW/eCHwUjcjY+Pj7n1OJVQuFLRERqLavVWqEPRRFvUId7ERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIlt1F3AxySkoJrugGAMI8rMR4KvTIyKXoKJ8yE8H0wTfALCHgGFUd1UitcYlny5SsvLZlJTBlsMZHM3Mp7DYCYCvzUK9ED/aNwylQ6MwooLt1VypiEgVykuDw7+6XhkHXQEME6y+EFgH6rWHRl0hNEZBTOQCGaZpmt7cYWZmJqGhoWRkZBASEuLNXXvIL3KwfEcKK3ceIzWnkABfK0F2G3YfKwAFRQ6yC4rJK3IQHuDLNS2j6N2yLn6/zxcRqRUcxbDve9jxNWQdBZvd1dLl4w8Y4CiAgmwozHJNj7saWt8EfqHVXflF83kiUlGXZMvXiewC5vxygC2HM4gI9KVVdDDGad/kguw2IoPsOE2T41kFfP7rIXal5DDyisaEB/pWU+UiIpWoMAc2vAcHfgKfQIhqBZbTv2AGQUCk6xJkXir89g2c2AVdx0B4bLWULVLTXXId7jPzi5j90342H8ogvk4gdYP9SgWvU1kMg7ohfsTVCWTTwXRm/7SPrPwiL1YsIlIFigth/buw7wcIbQRhMWUEr1MYhiuERbWCE3tgzZuQmey9ekVqkUsqfJmmycLNyWxPzqRZ3SDsNtcvmuKiwjOuV1xUiN1mpWlUEFsPZ7J46xG8fLVWRKRy7VnmavEKjwffIAAKi4rPuEphUTFYbFCnJaTtg82fgENfRkUq6pIKXzuOZPHTnhPUD/XDx+o69F9XfMPzfxxEWkrZ3+DSUpJ5/o+D+HXFN/jaLESH+rF693F2pWR7s3QRkcqTmey6fOgXBr6BAMxdvon2Y6eRlJJe5ipJKem0HzuNucs3uVrIwpvAofWQ9Iv36hapJSoUvqZMmcJll11GcHAwdevWZciQIfz2229VVVulW7cvlYJiJ2EBrj5bxUWFLJr9X44d3Mfrf7mzVABLS0nm9b/cybGD+1g0+78UFxUSHuBLfpGTtftSq+MQREQu3KF1kHsCgusDrhatx2cuZefB4/SZ+L9SASwpJZ0+E//HzoPHeXzmUlcLmG+AqxVs3ypwOqrhIERqrgqFr5UrVzJu3Dh+/vlnlixZQlFRETfccAM5OTlVVV+lSc8tZOvhTCJP6Sxv8/Hl/qmziKwfw4nkJI8AVhK8TiQnEVk/hvunzsLm41o3ItCXLYcyyFTfLxGpaZwOOPCzx9hdvj42lv7nbprUj2BvcqpHACsJXnuTU2lSP4Kl/7kbX5/f79UKjnb1/0rfX00HI1IzVSh8LVq0iNGjR9O2bVs6duzIrFmzOHDgAOvXr6+q+irN0cwCsvKLCfH38ZgeXrc+Dz7/nkcAS9y6wSN4Pfj8e4TXre9eJ8TPh+z8YlIy8719GCIiFybnuGtMr9OGioipG8aKl+7xCGA/btnvEbxWvHQPMXXDTq7kEwjFeZB1xLvHIFLDXVCfr4yMDAAiIiLKXaagoIDMzEyPV3VIzSnEaZruvl6nOj2AvTJxRLnBC1wDsBY7TVJz1PIlIjVM7gkozHX39TrV6QHsqgkzyg9e8HvLmeHapoics/MOX06nk4cffpirrrqKdu3albvclClTCA0Ndb9iYmLOd5cX5Gx3J4bXrc/tf33OY9rtf32uVPA6lcOpOx5FpIYxnYATjLJ//cfUDeO9ybd4THtv8i2lg9fJDarPl0gFnXf4GjduHFu2bOGjjz4643KTJ08mIyPD/UpKSjrfXV4Qu48F0yw/hKWlJDPnub96TJvz3F/LvAuyZBt2n0vqZlERqQ1sfmDxAUfZQ+wkpaRz55RPPKbdOeWTcu+CBMO1TRE5Z+eVHsaPH8+CBQtYvnw5jRo1OuOydrudkJAQj1d1iAryw8/HQn6Rs9S80zvX/+mlD8vshF8it9CBn4+Vunreo4jUNEF1XZccC0vfKHV65/rV0/5YZid8N6fDdekxuJ53ahepJSoUvkzTZPz48Xz++ecsW7aM+Pj4qqqr0tUNsRMR6Etqrue3vdOD14PPv0d82y6lOuGfGsDScgupE+RL3WB92xORGsYe7HosUK7ncDmnB68VL91Dj3axpTrhewSwvFRXx/3Q6ulOIlJTVSh8jRs3jvfff585c+YQHBzMkSNHOHLkCHl5eVVVX6Xx87FyRXwEmXlFOH/vq1VcVMgbj40us3P96Z3w33hsNMVFhTicJtkFxVwRH4mvTZcdRaSGMQxo3APMYvelx8KiYvo+8k6ZnetP74Tf95F3XON8mSZkp0CDrhBYpxoPSKTmqVB6mD59OhkZGfTp04f69eu7X3Pnzq2q+ipV17gIGoT5czDdFRZtPr70v+shohrFlXlXY0kAi2oUR/+7HsLm48vBtFwahvnTJTa8Og5BROTCNejkekRQaiKYJr4+Np4a05cWjeqUeVdjSQBr0agOT43p6xrnK/so+IdBfM/qOAKRGs0wvfyQwszMTEJDQ8nIyKiW/l+/7D3B+z/vJyzAl4jAkyPdlwygWpaS+SeyC8jML+bO7rFcFlf+8BoiIhe9lB3w4yuuv4e6+u4WFhWfHEC1DO75BZmQcRA63AqtB3mj2jJV9+eJyPm65K6bXRYXQb+20aTmFHIkIx/TNM8YvACsNh+SM/JIzyuif9touqnVS0RqurqtXOHJWfx7C5jzjMELXCPhk3PMFbyaXgvN+3mpWJHa5cz/02ohi8Xgxvb1CbLbWLT1CDuPZlM3xE6Yvw/G74/aKGGaJum5RRzNyiciwJdbusXQs1mdUsuJiNRI8b3Axx+2zIOUbRAY5XqdPgaYabpau7KSXcu3GQyt/w9sZ/7iKiJlu+QuO54qKTWXZTtS2Ho4g8z8YgzAx2rBxKS42MQEQvxttGsYyrWt6tIoPKBa6xURqRLZx2DXt5C0xnUHI7jGAjMMcBQBpmt4iqjW0OIGqNu6WsstcTF9nohUxCUdvkocycgn8XgORzLySM0pBAMiA+3UC/GjSVQg9UI0pISIXAJyU+HYb64WruyjrtHw/cIgpAGEx7leF1HL/8X4eSJyLi65y45liQ71IzpUAUtELnEBERDbvbqrEKn1LrkO9yIiIiLVSeFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts1V2A1A6maZKeW8Sx7ALyCh1YDIOwAB+igu34+Viruzy5VDiKIPso5BwH0wFWOwTVg4BIsOi7pohcHBS+5ILkFTrYdDCdNYmpJKXlklPgwGE6AQM/m4UQPx86xITSpXE48XUCMQyjukuW2ijjICSthaRfIC8NinJd0w0L+AZBcDTEXQUNu4JfaPXWKiKXPMM0TdObO8zMzCQ0NJSMjAxCQkK8uWupZLtTsvgy4TC7UrKxWQ0iAnwJtNvwsVowTZO8IgdZ+cWk5RYRZLdydfMorm9TjyC7Mr9UkuIC2L0UflsEeangFw7+oeAT4ApezmIozIbcVCjOg7A4aDcUGnQB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43O24QBEKsrphORfYd9q16XIgmxODpxquFq3/MOg0eUQdxWEx1VfrVKp9HkiNZXCl1SKnIJiDqfnkZJVQF6hA4sFQv19qRdip0Gov/p3SdUruayYlQw5J8B0uAZkDarnGhtMg6nWOvo8kZqqyp/tKJeGQLuN5vWCaV4v+OwLi1QFw4CQBq6XiMhFTNeARERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2zVXYDUDln5RRxMy+NYVgF5RQ4shkFYgA/1gv1oGO6P1WJUd4lS25kmZB6CzGTIPQ5OB9jsEFQXQmMgIKK6KxQRARS+5AIdycjnp70nWL8/lbScQhyma7oBmIC/j4XGEYFc0SSCbrER+NrU2CqVzOmAQxtg3w9wfCcU5njONwzwC4OGXSHuaohsWi1lioiUUPiS8+J0mvy45wQLtyRzLKuAiEBf4iIDsVlPhivTNMktdJB4PIddKVkkJKUzuFNDGob5V2PlUqvknIAtn8KBn10/B9WD0MauwFXC6YC8VNi9BJLWQMv+0Lwf2Hyrp2YRueQpfEmFOZwmCzYdZsm2o/jZrLSKDsYwSl9WNAyDQLuNeLuN/CIHm5IyOJZVwF3d44ivE1gNlUutknUEfnkTju2A8DiwB5e9nMUKgVEQUAeyj8KmjyHr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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "ims = []\n", "for t in range(15): \n", @@ -443,7 +177,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -469,7 +203,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.7" + "version": "3.12.3" } }, "nbformat": 4, From c31bcec6d55176d36508318747ad5480f49614f2 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Wed, 12 Jun 2024 10:13:17 +0200 Subject: [PATCH 109/196] add a separate py file for tree searching --- pymdp/jax/planning.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pymdp/jax/planning.py diff --git a/pymdp/jax/planning.py b/pymdp/jax/planning.py new file mode 100644 index 00000000..e69de29b From 5a5800b523d4e748bcae0178263e62c731b13814 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Wed, 12 Jun 2024 11:00:52 +0200 Subject: [PATCH 110/196] intermediate sharing some tree building --- pymdp/jax/planning.py | 130 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) diff --git a/pymdp/jax/planning.py b/pymdp/jax/planning.py index e69de29b..75f803e5 100644 --- a/pymdp/jax/planning.py +++ b/pymdp/jax/planning.py @@ -0,0 +1,130 @@ +import itertools +import jax.numpy as jnp + + +class Tree: + # TODO - placeholder tree class, replace with jaxified version later + + def __init__(self, root): + self.nodes = [root] + + def root(self): + return self.nodes[0] + + def children(self, node): + return node["children"] + + def parent(self, node): + return node["parent"] + + def leaves(self): + return [node for node in self.nodes if len(node["children"]) == 0] + + +def tree_search(qs, planning_horizon): + root_node = { + "qs": qs, + "parent": None, + "children": [], + "n": 0, + } + tree = Tree(root_node) + + h = 0 + while h < planning_horizon: + + # TODO refactor so we can vectorize this + for node in tree.leaves(): + tree = expand_node(node, tree) + + h += 1 + + +def imagine(): + pass + + +def infer_state(prior, observation): + return prior + + +def expand_node( + node, + tree, + policy_prune_threshold=1 / 16, + policy_prune_topk=-1, + observation_prune_threshold=1 / 16, + prune_penalty=512, + gamma=32, +): + + policies, q_pi, G, EU, EIG, qs_pi, qo_pi = imagine(node["qs"], gamma=gamma) + + node["policies"] = policies + node["q_pi"] = q_pi + node["qs_pi"] = qs_pi + node["qo_pi"] = qo_pi + node["G"] = jnp.dot(q_pi, G) + node["children"] = [] + + # expand the policies and observations of this node + ordered = jnp.argsort(q_pi)[::-1] + policies_to_consider = [] + for idx in ordered: + if policy_prune_topk > 0 and len(policies_to_consider) >= policy_prune_topk: + break + if q_pi[idx] >= policy_prune_threshold: + policies_to_consider.append(idx) + else: + break + + for idx in range(len(policies)): + if idx not in policies_to_consider: + observation_node = { + "policy": policies[idx], + "q_pi": q_pi[idx], + "G": G[idx], + "EU": EU[idx], + "EIG": EIG[idx], + "G": prune_penalty, + "parent": node, + "children": [], + "n": node["n"] + 1, + } + node["children"].append(observation_node) + tree.append(observation_node) + else: + # branch over possible observations + qo_next = qo_pi[idx][0] + for k in itertools.product(*[range(s.shape[0]) for s in qo_next]): + prob = 1.0 + for i in range(len(k)): + prob *= qo_pi[idx][0][i][k[i]] + + # ignore low probability observations in the search tree + if prob < observation_prune_threshold: + continue + + qo_one_hot = [] + for i in range(len(qo_one_hot)): + qo_one_hot = jnp.zeros(qo_next[i].shape[0]) + qo_one_hot = qo_one_hot.at[k[i]].set(1.0) + + qs_next = infer_state(qs_pi[idx], qo_one_hot) + + observation_node = { + "policy": policies[idx], + "q_pi": q_pi[idx], + "G": G[idx], + "EU": EU[idx], + "EIG": EIG[idx], + "observation": qo_one_hot, + "prob": prob, + "qs": qs_next, + "G": 1e-10, + "parent": node, + "children": [], + "n": node["n"] + 1, + } + node["children"].append(observation_node) + tree.append(observation_node) From 031ce5717d8a2a4c9cdc0c3865acda9f6d977d40 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Wed, 12 Jun 2024 11:57:29 +0200 Subject: [PATCH 111/196] update --- examples/sophisticated_demo.ipynb | 211 ++++++++++++++++++++++++++++++ pymdp/jax/planning.py | 66 +++++----- 2 files changed, 243 insertions(+), 34 deletions(-) create mode 100644 examples/sophisticated_demo.ipynb diff --git a/examples/sophisticated_demo.ipynb b/examples/sophisticated_demo.ipynb new file mode 100644 index 00000000..ab322156 --- /dev/null +++ b/examples/sophisticated_demo.ipynb @@ -0,0 +1,211 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sophisticated inference\n", + "\n", + "This notebook demonstrates tree searching policies." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp\n", + "from jax import random as jr\n", + "\n", + "key = jr.PRNGKey(0)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx\n", + "from pymdp.jax.envs import GraphEnv\n", + "\n", + "\n", + "def generate_connected_clusters(cluster_size=2, connections=2):\n", + " edges = []\n", + " connecting_node = 0\n", + " while connecting_node < connections * cluster_size:\n", + " edges += [(connecting_node, a) for a in range(connecting_node + 1, connecting_node + cluster_size + 1)]\n", + " connecting_node = len(edges)\n", + " graph = nx.Graph()\n", + " graph.add_edges_from(edges)\n", + " return graph, {\n", + " \"locations\": [\n", + " (f\"hallway {i}\" if len(list(graph.neighbors(loc))) > 1 else f\"room {i}\")\n", + " for i, loc in enumerate(graph.nodes)\n", + " ]\n", + " }\n", + "\n", + "\n", + "graph, _ = generate_connected_clusters(cluster_size=3, connections=2)\n", + "env = GraphEnv(graph, object_locations=[3], agent_locations=[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.agent import Agent\n", + "\n", + "A = [a.copy() for a in env.params[\"A\"]]\n", + "B = [b.copy() for b in env.params[\"B\"]]\n", + "A_dependencies = env.dependencies[\"A\"]\n", + "B_dependencies = env.dependencies[\"B\"]\n", + "\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "C[1] = C[1].at[1].set(1.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", + "\n", + "agent = Agent(A, B, C, D, None, None, None, A_dependencies=A_dependencies, B_dependencies=B_dependencies, policy_len=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "obs, env = env.step(keys[1:])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + ] + } + ], + "source": [ + "print(obs)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "empirical_prior = agent.D\n", + "\n", + "qs = agent.infer_states(\n", + " observations=obs,\n", + " past_actions=None,\n", + " empirical_prior=empirical_prior,\n", + " qs_hist=None,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Array([[[1.0000000e+00, 1.2888965e-18, 1.2888965e-18, 1.2888965e-18,\n", + " 1.2888965e-18, 1.2888965e-18, 1.2888965e-18]]], dtype=float32), Array([[[3.1720716e-17, 1.4285715e-01, 1.4285715e-01, 1.4285715e-01,\n", + " 1.4285715e-01, 1.4285715e-01, 1.4285715e-01, 1.4285715e-01]]], dtype=float32)]\n" + ] + } + ], + "source": [ + "print(qs)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1, 1, 7)\n" + ] + } + ], + "source": [ + "print(qs[0].shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "vmap got inconsistent sizes for array axes to be mapped:\n * most axes (17 of them) had size 1, e.g. axis 0 of argument self.A[0] of type float32[1,7,7];\n * one axis had size 7: axis 0 of argument qs of type int32[7,1,2]", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m/home/tverbele/Code/python/hackaton/pymdp/examples/sophisticated_demo.ipynb Cell 10\u001b[0m line \u001b[0;36m3\n\u001b[1;32m 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mpymdp\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mjax\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mplanning\u001b[39;00m \u001b[39mimport\u001b[39;00m tree_search\n\u001b[0;32m----> 3\u001b[0m tree_search(agent, qs, \u001b[39m3\u001b[39;49m)\n", + "File \u001b[0;32m~/Code/python/hackaton/pymdp/pymdp/jax/planning.py:43\u001b[0m, in \u001b[0;36mtree_search\u001b[0;34m(agent, qs, planning_horizon)\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[39mwhile\u001b[39;00m h \u001b[39m<\u001b[39m planning_horizon:\n\u001b[1;32m 40\u001b[0m \n\u001b[1;32m 41\u001b[0m \u001b[39m# TODO refactor so we can vectorize this\u001b[39;00m\n\u001b[1;32m 42\u001b[0m \u001b[39mfor\u001b[39;00m node \u001b[39min\u001b[39;00m tree\u001b[39m.\u001b[39mleaves():\n\u001b[0;32m---> 43\u001b[0m tree \u001b[39m=\u001b[39m expand_node(agent, node, tree)\n\u001b[1;32m 45\u001b[0m h \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m \u001b[39m1\u001b[39m\n", + "File \u001b[0;32m~/Code/python/hackaton/pymdp/pymdp/jax/planning.py:61\u001b[0m, in \u001b[0;36mexpand_node\u001b[0;34m(agent, node, tree, policy_prune_threshold, policy_prune_topk, observation_prune_threshold, prune_penalty, gamma)\u001b[0m\n\u001b[1;32m 59\u001b[0m qs \u001b[39m=\u001b[39m node[\u001b[39m\"\u001b[39m\u001b[39mqs\u001b[39m\u001b[39m\"\u001b[39m]\n\u001b[1;32m 60\u001b[0m policies \u001b[39m=\u001b[39m agent\u001b[39m.\u001b[39mpolicies\n\u001b[0;32m---> 61\u001b[0m qs_pi \u001b[39m=\u001b[39m agent\u001b[39m.\u001b[39;49mupdate_empirical_prior(qs, policies)\n\u001b[1;32m 62\u001b[0m qo_pi \u001b[39m=\u001b[39m jtu\u001b[39m.\u001b[39mtree_map(\u001b[39mlambda\u001b[39;00m a, q: a \u001b[39m@\u001b[39m q, agent\u001b[39m.\u001b[39mA, qs_next)\n\u001b[1;32m 64\u001b[0m info_gain \u001b[39m=\u001b[39m compute_info_gain(qs_pi, qo_pi, agent\u001b[39m.\u001b[39mA, agent\u001b[39m.\u001b[39mA_dependencies)\n", + " \u001b[0;31m[... skipping hidden 3 frame]\u001b[0m\n", + "File \u001b[0;32m~/Code/python/hackaton/.venv/lib/python3.11/site-packages/jax/_src/api.py:1296\u001b[0m, in \u001b[0;36m_mapped_axis_size\u001b[0;34m(fn, tree, vals, dims, name)\u001b[0m\n\u001b[1;32m 1294\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 1295\u001b[0m msg\u001b[39m.\u001b[39mappend(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m * some axes (\u001b[39m\u001b[39m{\u001b[39;00mct\u001b[39m}\u001b[39;00m\u001b[39m of them) had size \u001b[39m\u001b[39m{\u001b[39;00msz\u001b[39m}\u001b[39;00m\u001b[39m, e.g. axis \u001b[39m\u001b[39m{\u001b[39;00max\u001b[39m}\u001b[39;00m\u001b[39m of \u001b[39m\u001b[39m{\u001b[39;00mex\u001b[39m}\u001b[39;00m\u001b[39m;\u001b[39m\u001b[39m\\n\u001b[39;00m\u001b[39m\"\u001b[39m)\n\u001b[0;32m-> 1296\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\u001b[39m'\u001b[39m\u001b[39m'\u001b[39m\u001b[39m.\u001b[39mjoin(msg)[:\u001b[39m-\u001b[39m\u001b[39m2\u001b[39m])\n", + "\u001b[0;31mValueError\u001b[0m: vmap got inconsistent sizes for array axes to be mapped:\n * most axes (17 of them) had size 1, e.g. axis 0 of argument self.A[0] of type float32[1,7,7];\n * one axis had size 7: axis 0 of argument qs of type int32[7,1,2]" + ] + } + ], + "source": [ + "from pymdp.jax.planning import tree_search\n", + "\n", + "tree_search(agent, qs, 3)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/pymdp/jax/planning.py b/pymdp/jax/planning.py index 75f803e5..c7f45c24 100644 --- a/pymdp/jax/planning.py +++ b/pymdp/jax/planning.py @@ -1,5 +1,10 @@ import itertools import jax.numpy as jnp +import jax.tree_util as jtu +from jax import nn + + +from pymdp.jax.control import compute_info_gain, compute_expected_utility class Tree: @@ -21,7 +26,7 @@ def leaves(self): return [node for node in self.nodes if len(node["children"]) == 0] -def tree_search(qs, planning_horizon): +def tree_search(agent, qs, planning_horizon): root_node = { "qs": qs, "parent": None, @@ -35,20 +40,13 @@ def tree_search(qs, planning_horizon): # TODO refactor so we can vectorize this for node in tree.leaves(): - tree = expand_node(node, tree) + tree = expand_node(agent, node, tree) h += 1 -def imagine(): - pass - - -def infer_state(prior, observation): - return prior - - def expand_node( + agent, node, tree, policy_prune_threshold=1 / 16, @@ -58,7 +56,15 @@ def expand_node( gamma=32, ): - policies, q_pi, G, EU, EIG, qs_pi, qo_pi = imagine(node["qs"], gamma=gamma) + qs = node["qs"] + policies = agent.policies + qs_pi = agent.update_empirical_prior(qs, policies) + qo_pi = jtu.tree_map(lambda a, q: a @ q, agent.A, qs_next) + + info_gain = compute_info_gain(qs_pi, qo_pi, agent.A, agent.A_dependencies) + utility = compute_expected_utility(qo_pi, agent.C) + G = utility + info_gain + q_pi = nn.softmax(G * gamma) node["policies"] = policies node["q_pi"] = q_pi @@ -79,21 +85,18 @@ def expand_node( break for idx in range(len(policies)): - if idx not in policies_to_consider: - observation_node = { - "policy": policies[idx], - "q_pi": q_pi[idx], - "G": G[idx], - "EU": EU[idx], - "EIG": EIG[idx], - "G": prune_penalty, - "parent": node, - "children": [], - "n": node["n"] + 1, - } - node["children"].append(observation_node) - tree.append(observation_node) - else: + policy_node = { + "policy": policies[idx], + "q_pi": q_pi[idx], + "G": G[idx], + "parent": node, + "children": [], + "n": node["n"] + 1, + } + node["children"].append(policy_node) + tree.append(policy_node) + + if idx in policies_to_consider: # branch over possible observations qo_next = qo_pi[idx][0] for k in itertools.product(*[range(s.shape[0]) for s in qo_next]): @@ -110,21 +113,16 @@ def expand_node( qo_one_hot = jnp.zeros(qo_next[i].shape[0]) qo_one_hot = qo_one_hot.at[k[i]].set(1.0) - qs_next = infer_state(qs_pi[idx], qo_one_hot) + qs_next = agent.infer_states(qs_pi[idx], qo_one_hot) observation_node = { - "policy": policies[idx], - "q_pi": q_pi[idx], - "G": G[idx], - "EU": EU[idx], - "EIG": EIG[idx], "observation": qo_one_hot, "prob": prob, "qs": qs_next, "G": 1e-10, - "parent": node, + "parent": policy_node, "children": [], "n": node["n"] + 1, } - node["children"].append(observation_node) + policy_node["children"].append(observation_node) tree.append(observation_node) From f9c11a4ec83694fd94d63101a1bdae4c88b9fa76 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Wed, 12 Jun 2024 12:20:16 +0200 Subject: [PATCH 112/196] step function --- pymdp/jax/planning.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/pymdp/jax/planning.py b/pymdp/jax/planning.py index c7f45c24..5e89050f 100644 --- a/pymdp/jax/planning.py +++ b/pymdp/jax/planning.py @@ -3,8 +3,7 @@ import jax.tree_util as jtu from jax import nn - -from pymdp.jax.control import compute_info_gain, compute_expected_utility +from pymdp.jax.control import compute_info_gain, compute_expected_utility, compute_expected_state, compute_expected_obs class Tree: @@ -126,3 +125,25 @@ def expand_node( } policy_node["children"].append(observation_node) tree.append(observation_node) + + +def step(agent, qs, policies, gamma=32): + qs_pis, qo_pis, utilities, info_gains, G = [], [], [], [], [] + + def _step(a, b, c, q, policy): + qs_pi = compute_expected_state(q, b, policy, agent.B_dependencies) + qo_pi = compute_expected_obs(qs_pi, a, agent.A_dependencies) + utility = compute_expected_utility(qo_pi, c) + info_gain = compute_info_gain(qs_pi, qo_pi, a, agent.A_dependencies) + return qs_pi, qo_pi, utility, info_gain + + for policy in policies: + qs_pi, qo_pi, utility, info_gain = jax.vmap(_step)(agent.A, agent.B, agent.C, qs, policy) + qs_pis.append(qs_pi) + qo_pis.append(qo_pi) + utilities.append(utility) + info_gains.append(info_gain) + G.append(-utility - info_gain) + + G = nn.softmax(-gamma * jnp.array(G), axis=0) + return qs_pis, qo_pis, utilities, info_gains, G From e8b63cf1ccf401280c40c8cbd6a67ddf72c196fc Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Wed, 12 Jun 2024 12:34:47 +0200 Subject: [PATCH 113/196] vmap over policies --- pymdp/jax/planning.py | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/pymdp/jax/planning.py b/pymdp/jax/planning.py index 5e89050f..328d7016 100644 --- a/pymdp/jax/planning.py +++ b/pymdp/jax/planning.py @@ -2,6 +2,7 @@ import jax.numpy as jnp import jax.tree_util as jtu from jax import nn +from jax import vmap from pymdp.jax.control import compute_info_gain, compute_expected_utility, compute_expected_state, compute_expected_obs @@ -128,22 +129,14 @@ def expand_node( def step(agent, qs, policies, gamma=32): - qs_pis, qo_pis, utilities, info_gains, G = [], [], [], [], [] def _step(a, b, c, q, policy): - qs_pi = compute_expected_state(q, b, policy, agent.B_dependencies) - qo_pi = compute_expected_obs(qs_pi, a, agent.A_dependencies) - utility = compute_expected_utility(qo_pi, c) - info_gain = compute_info_gain(qs_pi, qo_pi, a, agent.A_dependencies) - return qs_pi, qo_pi, utility, info_gain - - for policy in policies: - qs_pi, qo_pi, utility, info_gain = jax.vmap(_step)(agent.A, agent.B, agent.C, qs, policy) - qs_pis.append(qs_pi) - qo_pis.append(qo_pi) - utilities.append(utility) - info_gains.append(info_gain) - G.append(-utility - info_gain) - - G = nn.softmax(-gamma * jnp.array(G), axis=0) - return qs_pis, qo_pis, utilities, info_gains, G + qs = compute_expected_state(q, b, policy, agent.B_dependencies) + qo = compute_expected_obs(qs, a, agent.A_dependencies) + u = compute_expected_utility(qo, c) + ig = compute_info_gain(qs, qo, a, agent.A_dependencies) + return qs, qo, u, ig + + qs, qo, u, ig = vmap(lambda policy: vmap(_step)(agent.A, agent.B, agent.C, qs, policy))(policies) + G = nn.softmax(gamma * (u + ig), axis=0) + return qs, qo, G From 9b94a3919d588ea9335f555100b29535b2926196 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Wed, 12 Jun 2024 12:40:04 +0200 Subject: [PATCH 114/196] integrated alec's new step function --- examples/sophisticated_demo.ipynb | 81 +++++++++++++++++++++++++++---- pymdp/jax/planning.py | 68 ++++++++++++++++++++------ 2 files changed, 125 insertions(+), 24 deletions(-) diff --git a/examples/sophisticated_demo.ipynb b/examples/sophisticated_demo.ipynb index ab322156..6d7ea951 100644 --- a/examples/sophisticated_demo.ipynb +++ b/examples/sophisticated_demo.ipynb @@ -154,29 +154,92 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [ { "ename": "ValueError", - "evalue": "vmap got inconsistent sizes for array axes to be mapped:\n * most axes (17 of them) had size 1, e.g. axis 0 of argument self.A[0] of type float32[1,7,7];\n * one axis had size 7: axis 0 of argument qs of type int32[7,1,2]", + "evalue": "not enough values to unpack (expected 5, got 3)", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m/home/tverbele/Code/python/hackaton/pymdp/examples/sophisticated_demo.ipynb Cell 10\u001b[0m line \u001b[0;36m3\n\u001b[1;32m 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mpymdp\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mjax\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mplanning\u001b[39;00m \u001b[39mimport\u001b[39;00m tree_search\n\u001b[0;32m----> 3\u001b[0m tree_search(agent, qs, \u001b[39m3\u001b[39;49m)\n", - "File \u001b[0;32m~/Code/python/hackaton/pymdp/pymdp/jax/planning.py:43\u001b[0m, in \u001b[0;36mtree_search\u001b[0;34m(agent, qs, planning_horizon)\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[39mwhile\u001b[39;00m h \u001b[39m<\u001b[39m planning_horizon:\n\u001b[1;32m 40\u001b[0m \n\u001b[1;32m 41\u001b[0m \u001b[39m# TODO refactor so we can vectorize this\u001b[39;00m\n\u001b[1;32m 42\u001b[0m \u001b[39mfor\u001b[39;00m node \u001b[39min\u001b[39;00m tree\u001b[39m.\u001b[39mleaves():\n\u001b[0;32m---> 43\u001b[0m tree \u001b[39m=\u001b[39m expand_node(agent, node, tree)\n\u001b[1;32m 45\u001b[0m h \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m \u001b[39m1\u001b[39m\n", - "File \u001b[0;32m~/Code/python/hackaton/pymdp/pymdp/jax/planning.py:61\u001b[0m, in \u001b[0;36mexpand_node\u001b[0;34m(agent, node, tree, policy_prune_threshold, policy_prune_topk, observation_prune_threshold, prune_penalty, gamma)\u001b[0m\n\u001b[1;32m 59\u001b[0m qs \u001b[39m=\u001b[39m node[\u001b[39m\"\u001b[39m\u001b[39mqs\u001b[39m\u001b[39m\"\u001b[39m]\n\u001b[1;32m 60\u001b[0m policies \u001b[39m=\u001b[39m agent\u001b[39m.\u001b[39mpolicies\n\u001b[0;32m---> 61\u001b[0m qs_pi \u001b[39m=\u001b[39m agent\u001b[39m.\u001b[39;49mupdate_empirical_prior(qs, policies)\n\u001b[1;32m 62\u001b[0m qo_pi \u001b[39m=\u001b[39m jtu\u001b[39m.\u001b[39mtree_map(\u001b[39mlambda\u001b[39;00m a, q: a \u001b[39m@\u001b[39m q, agent\u001b[39m.\u001b[39mA, qs_next)\n\u001b[1;32m 64\u001b[0m info_gain \u001b[39m=\u001b[39m compute_info_gain(qs_pi, qo_pi, agent\u001b[39m.\u001b[39mA, agent\u001b[39m.\u001b[39mA_dependencies)\n", - " \u001b[0;31m[... skipping hidden 3 frame]\u001b[0m\n", - "File \u001b[0;32m~/Code/python/hackaton/.venv/lib/python3.11/site-packages/jax/_src/api.py:1296\u001b[0m, in \u001b[0;36m_mapped_axis_size\u001b[0;34m(fn, tree, vals, dims, name)\u001b[0m\n\u001b[1;32m 1294\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 1295\u001b[0m msg\u001b[39m.\u001b[39mappend(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m * some axes (\u001b[39m\u001b[39m{\u001b[39;00mct\u001b[39m}\u001b[39;00m\u001b[39m of them) had size \u001b[39m\u001b[39m{\u001b[39;00msz\u001b[39m}\u001b[39;00m\u001b[39m, e.g. axis \u001b[39m\u001b[39m{\u001b[39;00max\u001b[39m}\u001b[39;00m\u001b[39m of \u001b[39m\u001b[39m{\u001b[39;00mex\u001b[39m}\u001b[39;00m\u001b[39m;\u001b[39m\u001b[39m\\n\u001b[39;00m\u001b[39m\"\u001b[39m)\n\u001b[0;32m-> 1296\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\u001b[39m'\u001b[39m\u001b[39m'\u001b[39m\u001b[39m.\u001b[39mjoin(msg)[:\u001b[39m-\u001b[39m\u001b[39m2\u001b[39m])\n", - "\u001b[0;31mValueError\u001b[0m: vmap got inconsistent sizes for array axes to be mapped:\n * most axes (17 of them) had size 1, e.g. axis 0 of argument self.A[0] of type float32[1,7,7];\n * one axis had size 7: axis 0 of argument qs of type int32[7,1,2]" + "\u001b[1;32m/home/tverbele/Code/python/hackaton/pymdp/examples/sophisticated_demo.ipynb Cell 10\u001b[0m line \u001b[0;36m3\n\u001b[1;32m 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mpymdp\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mjax\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mplanning\u001b[39;00m \u001b[39mimport\u001b[39;00m tree_search\n\u001b[0;32m----> 3\u001b[0m tree \u001b[39m=\u001b[39m tree_search(agent, qs, \u001b[39m3\u001b[39;49m)\n", + "File \u001b[0;32m~/Code/python/hackaton/pymdp/pymdp/jax/planning.py:62\u001b[0m, in \u001b[0;36mtree_search\u001b[0;34m(agent, qs, planning_horizon)\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[39mwhile\u001b[39;00m h \u001b[39m<\u001b[39m planning_horizon:\n\u001b[1;32m 60\u001b[0m \u001b[39m# TODO refactor so we can vectorize this\u001b[39;00m\n\u001b[1;32m 61\u001b[0m \u001b[39mfor\u001b[39;00m node \u001b[39min\u001b[39;00m tree\u001b[39m.\u001b[39mleaves():\n\u001b[0;32m---> 62\u001b[0m tree \u001b[39m=\u001b[39m expand_node_vanilla(agent, node, tree)\n\u001b[1;32m 64\u001b[0m h \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m \u001b[39m1\u001b[39m\n\u001b[1;32m 66\u001b[0m \u001b[39mreturn\u001b[39;00m tree\n", + "File \u001b[0;32m~/Code/python/hackaton/pymdp/pymdp/jax/planning.py:73\u001b[0m, in \u001b[0;36mexpand_node_vanilla\u001b[0;34m(agent, node, tree)\u001b[0m\n\u001b[1;32m 70\u001b[0m qs \u001b[39m=\u001b[39m node[\u001b[39m\"\u001b[39m\u001b[39mqs\u001b[39m\u001b[39m\"\u001b[39m]\n\u001b[1;32m 71\u001b[0m policies \u001b[39m=\u001b[39m agent\u001b[39m.\u001b[39mpolicies\n\u001b[0;32m---> 73\u001b[0m qs_pi, _, _, _, G \u001b[39m=\u001b[39m step(agent, qs, policies)\n\u001b[1;32m 74\u001b[0m q_pi \u001b[39m=\u001b[39m nn\u001b[39m.\u001b[39msoftmax(jnp\u001b[39m.\u001b[39marray(G), axis\u001b[39m=\u001b[39m\u001b[39m0\u001b[39m)\n\u001b[1;32m 76\u001b[0m \u001b[39mfor\u001b[39;00m idx \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(\u001b[39mlen\u001b[39m(policies)):\n", + "\u001b[0;31mValueError\u001b[0m: not enough values to unpack (expected 5, got 3)" ] } ], "source": [ "from pymdp.jax.planning import tree_search\n", "\n", - "tree_search(agent, qs, 3)" + "tree = tree_search(agent, qs, 3)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "def plot_plan_tree(\n", + " tree,\n", + " policy_label=lambda x: \"{:.2f}\".format(x[\"G\"]),\n", + " observation_label=lambda x: \"{:.2f}\".format(x[\"G\"]),\n", + " font_size=12,\n", + " depth=-1,\n", + "):\n", + " # we can pass in a node or the whole tree list object\n", + " root_node = tree.root()\n", + "\n", + " # create graph\n", + " count = 0\n", + " G = nx.Graph()\n", + " to_visit = [(root_node, 0)]\n", + " labels = {}\n", + "\n", + " G.add_node(count)\n", + " count += 1\n", + "\n", + " # visit children\n", + " while len(to_visit) > 0:\n", + " node, id = to_visit.pop()\n", + " for child in node[\"children\"]:\n", + " G.add_node(count)\n", + " G.add_edge(id, count)\n", + " count += 1.0\n", + "\n", + " from networkx.drawing.nx_pydot import graphviz_layout\n", + "\n", + " #pos = graphviz_layout(G, prog=\"dot\")\n", + " nx.draw(\n", + " G,\n", + " with_labels=True,\n", + " font_size=font_size,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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5BXoPSHi6k45+zdA5tQHvcdHQCaVINDPQ6xvjYiIzBALJZEVipngi29nPA5pL3fU/JqN2lN7IL/JHS7Tl6D3uHvbPFfq4AjPRf/ElR+/ROXuJEAQ0GPAbXAJWgKZ403QGwTE3uXbTd8JERFZAu7lTWSl4r7eh91ny6A3mO6vuEwqQcAQN+7lTURE1+AzlERWamXESMilEpNeUy6VYGXESJNek4iILB8LJZGVGuDqiBVhpt0e8Y2wERjg6mjSaxIRkeVjoSSyYopxvnhuhp9JrrVshj+ix/HZSSIiaonPUBLZANX+fLyeehQ6g9ChZyplUgnkUgneCBvBMklERK1ioSSyEQXltViecgS5p0shk0raLJZNxycP64uVESM5zE1ERG1ioSSyMXnF1UjYl49tp0qQX1aLP/4AkODqouWBfh6IvcsXwzx6iRWTiIgsCAslkQ3TNOhwvkwDrc4Ae7kUg9ycuAMOERF1GAslERERERmFs7yJiIiIyCgslERERERkFBZKIiIiIjIKCyURERERGYWFkoiIiIiMwkJJREREREZhoSQiIiIio7BQEhEREZFRWCiJiIiIyCgslERERERkFBZKIiIiIjIKCyURERERGYWFkoiIiIiMwkJJREREREZhoSQiIiIio7BQEhEREZFRWCiJiIiIyCgslERERERkFBZKIiIiIjIKCyURERERGYWFkoiIiIiMwkJJREREREZhoSQiIiIio7BQEhEREZFRWCiJiIiIyCgslERERERkFBZKIiIiIjIKCyURERERGYWFkoiIiIiMwkJJREREREZhoSQiIiIio7BQEhEREZFRWCiJiIiIyCgslERERERkFBZKIiIiIjIKCyURERERGYWFkoiIiIiM8v9I7H3r0JG8GQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_plan_tree(tree)" ] }, { diff --git a/pymdp/jax/planning.py b/pymdp/jax/planning.py index 328d7016..174de002 100644 --- a/pymdp/jax/planning.py +++ b/pymdp/jax/planning.py @@ -1,4 +1,5 @@ import itertools +import jax import jax.numpy as jnp import jax.tree_util as jtu from jax import nn @@ -25,8 +26,27 @@ def parent(self, node): def leaves(self): return [node for node in self.nodes if len(node["children"]) == 0] + def append(self, node): + self.nodes.append(node) + + +def step(agent, qs, policies, gamma=32): + + def _step(a, b, c, q, policy): + qs = compute_expected_state(q, b, policy, agent.B_dependencies) + qo = compute_expected_obs(qs, a, agent.A_dependencies) + u = compute_expected_utility(qo, c) + ig = compute_info_gain(qs, qo, a, agent.A_dependencies) + return qs, qo, u, ig + + qs, qo, u, ig = vmap(lambda policy: vmap(_step)(agent.A, agent.B, agent.C, qs, policy))(policies) + G = u + ig + return qs, qo, G + def tree_search(agent, qs, planning_horizon): + # cut out time dimension + qs = jtu.tree_map(lambda x: x[:, -1, ...], qs) root_node = { "qs": qs, "parent": None, @@ -37,15 +57,41 @@ def tree_search(agent, qs, planning_horizon): h = 0 while h < planning_horizon: - # TODO refactor so we can vectorize this for node in tree.leaves(): - tree = expand_node(agent, node, tree) + tree = expand_node_vanilla(agent, node, tree) h += 1 + return tree + + +def expand_node_vanilla(agent, node, tree): + qs = node["qs"] + policies = agent.policies + + qs_pi, _, _, _, G = step(agent, qs, policies) + q_pi = nn.softmax(jnp.array(G), axis=0) -def expand_node( + for idx in range(len(policies)): + policy_node = { + "policy": policies[idx], + "q_pi": q_pi[idx], + "qs": qs_pi[idx], + "G": G[idx], + "parent": node, + "children": [], + "n": node["n"] + 1, + } + node["children"].append(policy_node) + tree.append(policy_node) + + # TODO update G of parents + + return tree + + +def expand_node_sophisticated( agent, node, tree, @@ -58,6 +104,8 @@ def expand_node( qs = node["qs"] policies = agent.policies + + print(policies) qs_pi = agent.update_empirical_prior(qs, policies) qo_pi = jtu.tree_map(lambda a, q: a @ q, agent.A, qs_next) @@ -127,16 +175,6 @@ def expand_node( policy_node["children"].append(observation_node) tree.append(observation_node) + # TODO update Gs of parents -def step(agent, qs, policies, gamma=32): - - def _step(a, b, c, q, policy): - qs = compute_expected_state(q, b, policy, agent.B_dependencies) - qo = compute_expected_obs(qs, a, agent.A_dependencies) - u = compute_expected_utility(qo, c) - ig = compute_info_gain(qs, qo, a, agent.A_dependencies) - return qs, qo, u, ig - - qs, qo, u, ig = vmap(lambda policy: vmap(_step)(agent.A, agent.B, agent.C, qs, policy))(policies) - G = nn.softmax(gamma * (u + ig), axis=0) - return qs, qo, G + return tree From 8c46cd86dca87126eb0b78aa07d74e1e9048448d Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Wed, 12 Jun 2024 12:48:45 +0200 Subject: [PATCH 115/196] we have a tree --- examples/sophisticated_demo.ipynb | 137 +++++++++++++++++++++++++++--- pymdp/jax/planning.py | 4 +- 2 files changed, 125 insertions(+), 16 deletions(-) diff --git a/examples/sophisticated_demo.ipynb b/examples/sophisticated_demo.ipynb index 6d7ea951..f3534a42 100644 --- a/examples/sophisticated_demo.ipynb +++ b/examples/sophisticated_demo.ipynb @@ -158,16 +158,123 @@ "metadata": {}, "outputs": [ { - "ename": "ValueError", - "evalue": "not enough values to unpack (expected 5, got 3)", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m/home/tverbele/Code/python/hackaton/pymdp/examples/sophisticated_demo.ipynb Cell 10\u001b[0m line \u001b[0;36m3\n\u001b[1;32m 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mpymdp\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mjax\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mplanning\u001b[39;00m \u001b[39mimport\u001b[39;00m tree_search\n\u001b[0;32m----> 3\u001b[0m tree \u001b[39m=\u001b[39m tree_search(agent, qs, \u001b[39m3\u001b[39;49m)\n", - "File \u001b[0;32m~/Code/python/hackaton/pymdp/pymdp/jax/planning.py:62\u001b[0m, in \u001b[0;36mtree_search\u001b[0;34m(agent, qs, planning_horizon)\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[39mwhile\u001b[39;00m h \u001b[39m<\u001b[39m planning_horizon:\n\u001b[1;32m 60\u001b[0m \u001b[39m# TODO refactor so we can vectorize this\u001b[39;00m\n\u001b[1;32m 61\u001b[0m \u001b[39mfor\u001b[39;00m node \u001b[39min\u001b[39;00m tree\u001b[39m.\u001b[39mleaves():\n\u001b[0;32m---> 62\u001b[0m tree \u001b[39m=\u001b[39m expand_node_vanilla(agent, node, tree)\n\u001b[1;32m 64\u001b[0m h \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m \u001b[39m1\u001b[39m\n\u001b[1;32m 66\u001b[0m \u001b[39mreturn\u001b[39;00m tree\n", - "File \u001b[0;32m~/Code/python/hackaton/pymdp/pymdp/jax/planning.py:73\u001b[0m, in \u001b[0;36mexpand_node_vanilla\u001b[0;34m(agent, node, tree)\u001b[0m\n\u001b[1;32m 70\u001b[0m qs \u001b[39m=\u001b[39m node[\u001b[39m\"\u001b[39m\u001b[39mqs\u001b[39m\u001b[39m\"\u001b[39m]\n\u001b[1;32m 71\u001b[0m policies \u001b[39m=\u001b[39m agent\u001b[39m.\u001b[39mpolicies\n\u001b[0;32m---> 73\u001b[0m qs_pi, _, _, _, G \u001b[39m=\u001b[39m step(agent, qs, policies)\n\u001b[1;32m 74\u001b[0m q_pi \u001b[39m=\u001b[39m nn\u001b[39m.\u001b[39msoftmax(jnp\u001b[39m.\u001b[39marray(G), axis\u001b[39m=\u001b[39m\u001b[39m0\u001b[39m)\n\u001b[1;32m 76\u001b[0m \u001b[39mfor\u001b[39;00m idx \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(\u001b[39mlen\u001b[39m(policies)):\n", - "\u001b[0;31mValueError\u001b[0m: not enough values to unpack (expected 5, got 3)" + "name": "stdout", + "output_type": "stream", + "text": [ + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n", + "(1, 7)\n", + "(7, 1, 7)\n" ] } ], @@ -179,7 +286,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -210,9 +317,11 @@ " for child in node[\"children\"]:\n", " G.add_node(count)\n", " G.add_edge(id, count)\n", + "\n", + " to_visit.append((child, count))\n", " count += 1.0\n", "\n", - " from networkx.drawing.nx_pydot import graphviz_layout\n", + " #from networkx.drawing.nx_pydot import graphviz_layout\n", "\n", " #pos = graphviz_layout(G, prog=\"dot\")\n", " nx.draw(\n", @@ -224,12 +333,12 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { - "image/png": "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5BXoPSHi6k45+zdA5tQHvcdHQCaVINDPQ6xvjYiIzBALJZEVipngi29nPA5pL3fU/JqN2lN7IL/JHS7Tl6D3uHvbPFfq4AjPRf/ElR+/ROXuJEAQ0GPAbXAJWgKZ403QGwTE3uXbTd8JERFZAu7lTWSl4r7eh91ny6A3mO6vuEwqQcAQN+7lTURE1+AzlERWamXESMilEpNeUy6VYGXESJNek4iILB8LJZGVGuDqiBVhpt0e8Y2wERjg6mjSaxIRkeVjoSSyYopxvnhuhp9JrrVshj+ix/HZSSIiaonPUBLZANX+fLyeehQ6g9ChZyplUgnkUgneCBvBMklERK1ioSSyEQXltViecgS5p0shk0raLJZNxycP64uVESM5zE1ERG1ioSSyMXnF1UjYl49tp0qQX1aLP/4AkODqouWBfh6IvcsXwzx6iRWTiIgsCAslkQ3TNOhwvkwDrc4Ae7kUg9ycuAMOERF1GAslERERERmFs7yJiIiIyCgslERERERkFBZKIiIiIjIKCyURERERGYWFkoiIiIiMwkJJREREREZhoSQiIiIio7BQEhEREZFRWCiJiIiIyCgslERERERkFBZKIiIiIjIKCyURERERGYWFkoiIiIiMwkJJREREREZhoSQiIiIio7BQEhEREZFRWCiJiIiIyCgslERERERkFBZKIiIiIjIKCyURERERGYWFkoiIiIiMwkJJREREREZhoSQiIiIio7BQEhEREZFRWCiJiIiIyCgslERERERkFBZKIiIiIjIKCyURERERGYWFkoiIiIiMwkJJREREREZhoSQiIiIio7BQEhEREZFRWCiJiIiIyCgslERERERkFBZKIiIiIjIKCyURERERGYWFkoiIiIiM8v9I7H3r0JG8GQAAAABJRU5ErkJggg==", + "image/png": "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", "text/plain": [ "
" ] diff --git a/pymdp/jax/planning.py b/pymdp/jax/planning.py index 174de002..a364872c 100644 --- a/pymdp/jax/planning.py +++ b/pymdp/jax/planning.py @@ -70,14 +70,14 @@ def expand_node_vanilla(agent, node, tree): qs = node["qs"] policies = agent.policies - qs_pi, _, _, _, G = step(agent, qs, policies) + qs_pi, _, G = step(agent, qs, policies) q_pi = nn.softmax(jnp.array(G), axis=0) for idx in range(len(policies)): policy_node = { "policy": policies[idx], "q_pi": q_pi[idx], - "qs": qs_pi[idx], + "qs": jtu.tree_map(lambda x: x[idx, ...], qs_pi), "G": G[idx], "parent": node, "children": [], From 6cbfd062c821202af981b44c0085a1390402e15c Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Wed, 12 Jun 2024 17:35:39 +0200 Subject: [PATCH 116/196] added vmap over leaves --- pymdp/jax/planning.py | 64 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 12 deletions(-) diff --git a/pymdp/jax/planning.py b/pymdp/jax/planning.py index a364872c..7be9832e 100644 --- a/pymdp/jax/planning.py +++ b/pymdp/jax/planning.py @@ -41,36 +41,76 @@ def _step(a, b, c, q, policy): qs, qo, u, ig = vmap(lambda policy: vmap(_step)(agent.A, agent.B, agent.C, qs, policy))(policies) G = u + ig - return qs, qo, G + return qs, qo, nn.softmax(G * gamma, axis=0), G -def tree_search(agent, qs, planning_horizon): - # cut out time dimension - qs = jtu.tree_map(lambda x: x[:, -1, ...], qs) +def tree_search(agent, qs, horizon): root_node = { - "qs": qs, + "qs": jtu.tree_map(lambda x: x[:, -1, ...], qs), "parent": None, "children": [], "n": 0, } tree = Tree(root_node) - h = 0 - while h < planning_horizon: - # TODO refactor so we can vectorize this - for node in tree.leaves(): - tree = expand_node_vanilla(agent, node, tree) + # TODO: scan here + for _ in range(horizon): + leaves = tree.leaves() + qs_leaves = stack_data([leaf["qs"] for leaf in leaves]) + qs_pi, _, q_pi, G = vmap(lambda leaf: step(agent, leaf, agent.policies))(qs_leaves) + tree = expand_tree(tree, leaves, agent.policies, qs_pi, q_pi, G) + return tree - h += 1 +def expand_tree(tree, leaves, policies, qs_pi, q_pi, G): + # TODO: we will vmap this at some point + for l, leaf in enumerate(leaves): + for p, policy in enumerate(policies): + child = { + "policy": policy, + "q_pi": q_pi[l, p], + "qs": jtu.tree_map(lambda x: x[l, p, ...], qs_pi), + "G": G[l, p], + "parent": leaf, + "children": [], + "n": leaf["n"] + 1, + } + leaf["children"].append(child) + tree.append(child) return tree +def stack_data(data): + return [jnp.stack([d[i] for d in data]) for i in range(len(data[0]))] + + +# def tree_search(agent, qs, planning_horizon): +# # cut out time dimension +# qs = jtu.tree_map(lambda x: x[:, -1, ...], qs) +# root_node = { +# "qs": qs, +# "parent": None, +# "children": [], +# "n": 0, +# } +# tree = Tree(root_node) + +# h = 0 +# while h < planning_horizon: +# # TODO refactor so we can vectorize this +# for node in tree.leaves(): +# tree = expand_node_vanilla(agent, node, tree) + +# h += 1 + +# return tree + + def expand_node_vanilla(agent, node, tree): qs = node["qs"] policies = agent.policies - qs_pi, _, G = step(agent, qs, policies) + qs_pi, _, _, G = step(agent, qs, policies) q_pi = nn.softmax(jnp.array(G), axis=0) for idx in range(len(policies)): From 247d7114e743e56eb26606d82ed7712140511f44 Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Thu, 13 Jun 2024 10:55:05 +0200 Subject: [PATCH 117/196] merging sophisticated inference backprop --- examples/sophisticated_demo.ipynb | 192 +++++++--------------- pymdp/jax/planning.py | 260 +++++++++++++++++++++--------- 2 files changed, 241 insertions(+), 211 deletions(-) diff --git a/examples/sophisticated_demo.ipynb b/examples/sophisticated_demo.ipynb index f3534a42..fd6275b7 100644 --- a/examples/sophisticated_demo.ipynb +++ b/examples/sophisticated_demo.ipynb @@ -16,6 +16,7 @@ "outputs": [], "source": [ "import jax.numpy as jnp\n", + "import jax.tree_util as jtu\n", "from jax import random as jr\n", "\n", "key = jr.PRNGKey(0)" @@ -55,7 +56,18 @@ "cell_type": "code", "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.9433962 0.00943396 0.00943396 0.00943396 0.00943396 0.00943396\n", + " 0.00943396]]\n", + "[[0.05882353 0.05882353 0.05882353 0.05882353 0.5882353 0.05882353\n", + " 0.05882353 0.05882353]]\n" + ] + } + ], "source": [ "from pymdp.jax.agent import Agent\n", "\n", @@ -67,7 +79,14 @@ "C = [jnp.zeros(a.shape[:2]) for a in A]\n", "C[1] = C[1].at[1].set(1.0)\n", "\n", - "D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", + "# D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", + "D = [jnp.ones(b.shape[:2]) for b in B]\n", + "D[0] = D[0].at[0, 0].set(100.0)\n", + "D[1] = D[1].at[0, 4].set(10.0)\n", + "D = jtu.tree_map(lambda x: x / x.sum(), D)\n", + "\n", + "print(D[0])\n", + "print(D[1])\n", "\n", "agent = Agent(A, B, C, D, None, None, None, A_dependencies=A_dependencies, B_dependencies=B_dependencies, policy_len=1)" ] @@ -125,9 +144,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "[Array([[[1.0000000e+00, 1.2888965e-18, 1.2888965e-18, 1.2888965e-18,\n", - " 1.2888965e-18, 1.2888965e-18, 1.2888965e-18]]], dtype=float32), Array([[[3.1720716e-17, 1.4285715e-01, 1.4285715e-01, 1.4285715e-01,\n", - " 1.4285715e-01, 1.4285715e-01, 1.4285715e-01, 1.4285715e-01]]], dtype=float32)]\n" + "[Array([[[1.0000000e+00, 2.3339602e-19, 2.3339602e-19, 2.3339602e-19,\n", + " 3.6556616e-28, 2.3339602e-19, 2.3339602e-19]]], dtype=float32), Array([[[1.3877806e-17, 6.2499996e-02, 6.2499996e-02, 6.2499996e-02,\n", + " 6.2500000e-01, 6.2499996e-02, 6.2499996e-02, 6.2499996e-02]]], dtype=float32)]\n" ] } ], @@ -154,127 +173,19 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n", - "(1, 7)\n", - "(7, 1, 7)\n" + "ename": "NameError", + "evalue": "name 'pymdp' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[10], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpymdp\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mjax\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mplanning\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m tree_search\n\u001b[0;32m----> 3\u001b[0m tree \u001b[38;5;241m=\u001b[39m \u001b[43mtree_search\u001b[49m\u001b[43m(\u001b[49m\u001b[43magent\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mqs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/repos/pymdp/pymdp/jax/planning.py:135\u001b[0m, in \u001b[0;36mtree_search\u001b[0;34m(agent, qs, planning_horizon, policy_prune_threshold, policy_prune_topk, observation_prune_threshold, entropy_prune_threshold, prune_penalty)\u001b[0m\n\u001b[1;32m 133\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mq_pi\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mroot()\u001b[38;5;241m.\u001b[39mkeys():\n\u001b[1;32m 134\u001b[0m q_pi \u001b[38;5;241m=\u001b[39m tree\u001b[38;5;241m.\u001b[39mroot()[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mq_pi\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m--> 135\u001b[0m H \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m-\u001b[39mjnp\u001b[38;5;241m.\u001b[39mdot(q_pi, jnp\u001b[38;5;241m.\u001b[39mlog(q_pi \u001b[38;5;241m+\u001b[39m \u001b[43mpymdp\u001b[49m\u001b[38;5;241m.\u001b[39mmaths\u001b[38;5;241m.\u001b[39mEPS_VAL))\n\u001b[1;32m 136\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m H \u001b[38;5;241m<\u001b[39m entropy_prune_threshold:\n\u001b[1;32m 137\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n", + "\u001b[0;31mNameError\u001b[0m: name 'pymdp' is not defined" ] } ], @@ -286,29 +197,33 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", + "\n", "def plot_plan_tree(\n", " tree,\n", - " policy_label=lambda x: \"{:.2f}\".format(x[\"G\"]),\n", - " observation_label=lambda x: \"{:.2f}\".format(x[\"G\"]),\n", " font_size=12,\n", - " depth=-1,\n", "):\n", - " # we can pass in a node or the whole tree list object\n", " root_node = tree.root()\n", + " print(root_node[\"n\"])\n", + "\n", + " colormap = plt.cm.Blues\n", + " colormap_policy = plt.cm.Reds\n", "\n", " # create graph\n", " count = 0\n", " G = nx.Graph()\n", " to_visit = [(root_node, 0)]\n", " labels = {}\n", + " colors = []\n", "\n", " G.add_node(count)\n", + " labels[0] = \"\"\n", + " colors.append((0.0, 0.0, 0.0, 1.0))\n", " count += 1\n", "\n", " # visit children\n", @@ -318,22 +233,37 @@ " G.add_node(count)\n", " G.add_edge(id, count)\n", "\n", + " cm = colormap\n", + " if \"policy\" in child.keys():\n", + " labels[count] = child[\"policy\"][0]\n", + " cm = colormap_policy\n", + " elif \"observation\" in child.keys():\n", + " o = child[\"observation\"]\n", + " labels[count] = str(o[0][0]) + \" \" + str(o[1][0])\n", + " else:\n", + " labels[count] = \"\"\n", + "\n", + " r, g, b, a = cm(child.get(\"prob\", 0))\n", + " colors.append((r, g, b, a))\n", + "\n", " to_visit.append((child, count))\n", " count += 1.0\n", "\n", - " #from networkx.drawing.nx_pydot import graphviz_layout\n", + " # from networkx.drawing.nx_pydot import graphviz_layout\n", "\n", - " #pos = graphviz_layout(G, prog=\"dot\")\n", + " # pos = graphviz_layout(G, prog=\"dot\")\n", " nx.draw(\n", " G,\n", " with_labels=True,\n", " font_size=font_size,\n", + " labels=labels,\n", + " node_color=colors,\n", " )" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, "outputs": [ { diff --git a/pymdp/jax/planning.py b/pymdp/jax/planning.py index 7be9832e..1c1adcce 100644 --- a/pymdp/jax/planning.py +++ b/pymdp/jax/planning.py @@ -5,12 +5,11 @@ from jax import nn from jax import vmap +import pymdp from pymdp.jax.control import compute_info_gain, compute_expected_utility, compute_expected_state, compute_expected_obs class Tree: - # TODO - placeholder tree class, replace with jaxified version later - def __init__(self, root): self.nodes = [root] @@ -30,58 +29,58 @@ def append(self, node): self.nodes.append(node) -def step(agent, qs, policies, gamma=32): +# def step(agent, qs, policies, gamma=32): - def _step(a, b, c, q, policy): - qs = compute_expected_state(q, b, policy, agent.B_dependencies) - qo = compute_expected_obs(qs, a, agent.A_dependencies) - u = compute_expected_utility(qo, c) - ig = compute_info_gain(qs, qo, a, agent.A_dependencies) - return qs, qo, u, ig +# def _step(a, b, c, q, policy): +# qs = compute_expected_state(q, b, policy, agent.B_dependencies) +# qo = compute_expected_obs(qs, a, agent.A_dependencies) +# u = compute_expected_utility(qo, c) +# ig = compute_info_gain(qs, qo, a, agent.A_dependencies) +# return qs, qo, u, ig - qs, qo, u, ig = vmap(lambda policy: vmap(_step)(agent.A, agent.B, agent.C, qs, policy))(policies) - G = u + ig - return qs, qo, nn.softmax(G * gamma, axis=0), G +# qs, qo, u, ig = vmap(lambda policy: vmap(_step)(agent.A, agent.B, agent.C, qs, policy))(policies) +# G = u + ig +# return qs, qo, nn.softmax(G * gamma, axis=0), G -def tree_search(agent, qs, horizon): - root_node = { - "qs": jtu.tree_map(lambda x: x[:, -1, ...], qs), - "parent": None, - "children": [], - "n": 0, - } - tree = Tree(root_node) +# def tree_search(agent, qs, horizon): +# root_node = { +# "qs": jtu.tree_map(lambda x: x[:, -1, ...], qs), +# "parent": None, +# "children": [], +# "n": 0, +# } +# tree = Tree(root_node) - # TODO: scan here - for _ in range(horizon): - leaves = tree.leaves() - qs_leaves = stack_data([leaf["qs"] for leaf in leaves]) - qs_pi, _, q_pi, G = vmap(lambda leaf: step(agent, leaf, agent.policies))(qs_leaves) - tree = expand_tree(tree, leaves, agent.policies, qs_pi, q_pi, G) - return tree +# # TODO: scan here +# for _ in range(horizon): +# leaves = tree.leaves() +# qs_leaves = stack_data([leaf["qs"] for leaf in leaves]) +# qs_pi, _, q_pi, G = vmap(lambda leaf: step(agent, leaf, agent.policies))(qs_leaves) +# tree = expand_tree(tree, leaves, agent.policies, qs_pi, q_pi, G) +# return tree -def expand_tree(tree, leaves, policies, qs_pi, q_pi, G): - # TODO: we will vmap this at some point - for l, leaf in enumerate(leaves): - for p, policy in enumerate(policies): - child = { - "policy": policy, - "q_pi": q_pi[l, p], - "qs": jtu.tree_map(lambda x: x[l, p, ...], qs_pi), - "G": G[l, p], - "parent": leaf, - "children": [], - "n": leaf["n"] + 1, - } - leaf["children"].append(child) - tree.append(child) - return tree +# def expand_tree(tree, leaves, policies, qs_pi, q_pi, G): +# # TODO: we will vmap this at some point +# for l, leaf in enumerate(leaves): +# for p, policy in enumerate(policies): +# child = { +# "policy": policy, +# "q_pi": q_pi[l, p], +# "qs": jtu.tree_map(lambda x: x[l, p, ...], qs_pi), +# "G": G[l, p], +# "parent": leaf, +# "children": [], +# "n": leaf["n"] + 1, +# } +# leaf["children"].append(child) +# tree.append(child) +# return tree -def stack_data(data): - return [jnp.stack([d[i] for d in data]) for i in range(len(data[0]))] +# def stack_data(data): +# return [jnp.stack([d[i] for d in data]) for i in range(len(data[0]))] # def tree_search(agent, qs, planning_horizon): @@ -106,27 +105,102 @@ def stack_data(data): # return tree -def expand_node_vanilla(agent, node, tree): +def step(agent, qs, policies): + + def _step(a, b, c, qs, policy): + qs_pi = compute_expected_state(qs, b, policy, agent.B_dependencies) + qo_pi = compute_expected_obs(qs_pi, a, agent.A_dependencies) + u = compute_expected_utility(qo_pi, c) + ig = compute_info_gain(qs_pi, qo_pi, a, agent.A_dependencies) + return qs_pi, qo_pi, u, ig + + qs_pi, qo_pi, u, ig = vmap(lambda policy: vmap(_step)(agent.A, agent.B, agent.C, qs, policy))(policies) + G = u + ig + return qs_pi, qo_pi, G, u, ig + + +def tree_search( + agent, + qs, + planning_horizon, + policy_prune_threshold=1 / 16, + policy_prune_topk=-1, + observation_prune_threshold=1 / 16, + entropy_prune_threshold=0.5, + prune_penalty=512, +): + # cut out time dimension + qs = jtu.tree_map(lambda x: x[:, -1, ...], qs) + root_node = { + "qs": qs, + "G_t": 0.0, + "parent": None, + "children": [], + "n": 0, + } + tree = Tree(root_node) + + h = 0 + while h < planning_horizon: + # TODO refactor so we can vectorize this + + # TODO add some early stopping based on q_pi entropy + if "q_pi" in tree.root().keys(): + q_pi = tree.root()["q_pi"] + H = -jnp.dot(q_pi, jnp.log(q_pi + pymdp.maths.EPS_VAL)) + if H < entropy_prune_threshold: + break + + for node in tree.leaves(): + tree = expand_node_sophisticated( + agent, node, tree, policy_prune_threshold, policy_prune_topk, observation_prune_threshold, prune_penalty + ) + + h += 1 + + return tree + + +def expand_node_vanilla(agent, node, tree, gamma=32): qs = node["qs"] policies = agent.policies - qs_pi, _, _, G = step(agent, qs, policies) - q_pi = nn.softmax(jnp.array(G), axis=0) + qs_pi, qo_pi, G, u, ig = step(agent, qs, policies) + q_pi = nn.softmax(G * gamma, axis=0) - for idx in range(len(policies)): + node["policies"] = policies + node["q_pi"] = q_pi[:, 0] + node["G"] = jnp.array([jnp.dot(q_pi[:, 0], G[:, 0])]) + + for idx in range(policies.shape[0]): policy_node = { - "policy": policies[idx], - "q_pi": q_pi[idx], + "policy": policies[idx, 0], + "prob": q_pi[idx, 0], "qs": jtu.tree_map(lambda x: x[idx, ...], qs_pi), + "qo": jtu.tree_map(lambda x: x[idx, ...], qo_pi), + "G_t": G[idx], "G": G[idx], "parent": node, "children": [], "n": node["n"] + 1, } + node["children"].append(policy_node) tree.append(policy_node) - # TODO update G of parents + # update G of parents + while node["parent"] is not None: + parent = node["parent"] + G_children = jnp.array([child["G"][0] for child in parent["children"]]) + q_pi = nn.softmax(G_children * gamma) + + G = jnp.dot(q_pi, G_children) + parent["G_t"] + parent["G"] = G + parent["q_pi"] = q_pi + + for idx, c in enumerate(parent["children"]): + c["prob"] = q_pi[idx] + node = parent return tree @@ -141,28 +215,19 @@ def expand_node_sophisticated( prune_penalty=512, gamma=32, ): - qs = node["qs"] policies = agent.policies - print(policies) - qs_pi = agent.update_empirical_prior(qs, policies) - qo_pi = jtu.tree_map(lambda a, q: a @ q, agent.A, qs_next) - - info_gain = compute_info_gain(qs_pi, qo_pi, agent.A, agent.A_dependencies) - utility = compute_expected_utility(qo_pi, agent.C) - G = utility + info_gain - q_pi = nn.softmax(G * gamma) + qs_pi, qo_pi, G, u, ig = step(agent, qs, policies) + q_pi = nn.softmax(G * gamma, axis=0) node["policies"] = policies - node["q_pi"] = q_pi - node["qs_pi"] = qs_pi - node["qo_pi"] = qo_pi - node["G"] = jnp.dot(q_pi, G) + node["q_pi"] = q_pi[:, 0] + node["G"] = jnp.array([jnp.dot(q_pi[:, 0], G[:, 0])]) node["children"] = [] # expand the policies and observations of this node - ordered = jnp.argsort(q_pi)[::-1] + ordered = jnp.argsort(q_pi[:, 0])[::-1] policies_to_consider = [] for idx in ordered: if policy_prune_topk > 0 and len(policies_to_consider) >= policy_prune_topk: @@ -174,9 +239,9 @@ def expand_node_sophisticated( for idx in range(len(policies)): policy_node = { - "policy": policies[idx], - "q_pi": q_pi[idx], - "G": G[idx], + "policy": policies[idx, 0], + "prob": q_pi[idx, 0], + "G_t": G[idx], "parent": node, "children": [], "n": node["n"] + 1, @@ -186,28 +251,36 @@ def expand_node_sophisticated( if idx in policies_to_consider: # branch over possible observations - qo_next = qo_pi[idx][0] + qo_next = jtu.tree_map(lambda x: x[idx][0], qo_pi) + for k in itertools.product(*[range(s.shape[0]) for s in qo_next]): prob = 1.0 for i in range(len(k)): - prob *= qo_pi[idx][0][i][k[i]] + prob *= qo_next[i][k[i]] # ignore low probability observations in the search tree if prob < observation_prune_threshold: continue - qo_one_hot = [] - for i in range(len(qo_one_hot)): - qo_one_hot = jnp.zeros(qo_next[i].shape[0]) - qo_one_hot = qo_one_hot.at[k[i]].set(1.0) + # qo_one_hot = [] + observation = [] + for i in range(len(qo_next)): + observation.append(jnp.array([[k[i]]])) + + qs_prior = jtu.tree_map(lambda x: x[idx], qs_pi) - qs_next = agent.infer_states(qs_pi[idx], qo_one_hot) + qs_next = agent.infer_states( + observations=observation, + past_actions=None, + empirical_prior=qs_prior, + qs_hist=None, + ) observation_node = { - "observation": qo_one_hot, + "observation": observation, "prob": prob, - "qs": qs_next, - "G": 1e-10, + "qs": jtu.tree_map(lambda x: x[:, 0, ...], qs_next), + "G": jnp.zeros((1)), "parent": policy_node, "children": [], "n": node["n"] + 1, @@ -215,6 +288,33 @@ def expand_node_sophisticated( policy_node["children"].append(observation_node) tree.append(observation_node) - # TODO update Gs of parents + # update G of parents + while node["parent"] is not None: + parent = node["parent"]["parent"] + G_children = jnp.zeros(len(node["children"])) + + for idx, n in enumerate(parent["children"]): + # iterate over policy nodes + G_children = G_children.at[idx].add(n["G_t"][0]) + + if len(n["children"]) == 0: + # add penalty to pruned nodes + G_children = G_children.at[idx].add(-prune_penalty) + else: + # sum over all likely observations + for o in n["children"]: + prob = o["prob"] + G_children = G_children.at[idx].add(o["G"][0] * prob) + + # update parent node + q_pi = nn.softmax(G_children * gamma) + G = jnp.array([jnp.dot(q_pi, G_children)]) + parent["G"] = G + parent["q_pi"] = q_pi + + for idx, c in enumerate(parent["children"]): + c["prob"] = q_pi[idx] + + node = parent return tree From a373439c52681c12c94d32814407fa76e90df20f Mon Sep 17 00:00:00 2001 From: Alexander Tschantz Date: Thu, 13 Jun 2024 14:17:53 +0200 Subject: [PATCH 118/196] vmap over observations --- pymdp/jax/planning.py | 316 ++++++++++++++++++------------------------ 1 file changed, 137 insertions(+), 179 deletions(-) diff --git a/pymdp/jax/planning.py b/pymdp/jax/planning.py index 1c1adcce..31062f29 100644 --- a/pymdp/jax/planning.py +++ b/pymdp/jax/planning.py @@ -23,116 +23,37 @@ def parent(self, node): return node["parent"] def leaves(self): - return [node for node in self.nodes if len(node["children"]) == 0] + return [node for node in self.nodes if "qs" in node.keys() and len(node["children"]) == 0] def append(self, node): self.nodes.append(node) -# def step(agent, qs, policies, gamma=32): - -# def _step(a, b, c, q, policy): -# qs = compute_expected_state(q, b, policy, agent.B_dependencies) -# qo = compute_expected_obs(qs, a, agent.A_dependencies) -# u = compute_expected_utility(qo, c) -# ig = compute_info_gain(qs, qo, a, agent.A_dependencies) -# return qs, qo, u, ig - -# qs, qo, u, ig = vmap(lambda policy: vmap(_step)(agent.A, agent.B, agent.C, qs, policy))(policies) -# G = u + ig -# return qs, qo, nn.softmax(G * gamma, axis=0), G - - -# def tree_search(agent, qs, horizon): -# root_node = { -# "qs": jtu.tree_map(lambda x: x[:, -1, ...], qs), -# "parent": None, -# "children": [], -# "n": 0, -# } -# tree = Tree(root_node) - -# # TODO: scan here -# for _ in range(horizon): -# leaves = tree.leaves() -# qs_leaves = stack_data([leaf["qs"] for leaf in leaves]) -# qs_pi, _, q_pi, G = vmap(lambda leaf: step(agent, leaf, agent.policies))(qs_leaves) -# tree = expand_tree(tree, leaves, agent.policies, qs_pi, q_pi, G) -# return tree - - -# def expand_tree(tree, leaves, policies, qs_pi, q_pi, G): -# # TODO: we will vmap this at some point -# for l, leaf in enumerate(leaves): -# for p, policy in enumerate(policies): -# child = { -# "policy": policy, -# "q_pi": q_pi[l, p], -# "qs": jtu.tree_map(lambda x: x[l, p, ...], qs_pi), -# "G": G[l, p], -# "parent": leaf, -# "children": [], -# "n": leaf["n"] + 1, -# } -# leaf["children"].append(child) -# tree.append(child) -# return tree - - -# def stack_data(data): -# return [jnp.stack([d[i] for d in data]) for i in range(len(data[0]))] - - -# def tree_search(agent, qs, planning_horizon): -# # cut out time dimension -# qs = jtu.tree_map(lambda x: x[:, -1, ...], qs) -# root_node = { -# "qs": qs, -# "parent": None, -# "children": [], -# "n": 0, -# } -# tree = Tree(root_node) - -# h = 0 -# while h < planning_horizon: -# # TODO refactor so we can vectorize this -# for node in tree.leaves(): -# tree = expand_node_vanilla(agent, node, tree) - -# h += 1 - -# return tree - - -def step(agent, qs, policies): - - def _step(a, b, c, qs, policy): - qs_pi = compute_expected_state(qs, b, policy, agent.B_dependencies) - qo_pi = compute_expected_obs(qs_pi, a, agent.A_dependencies) - u = compute_expected_utility(qo_pi, c) - ig = compute_info_gain(qs_pi, qo_pi, a, agent.A_dependencies) - return qs_pi, qo_pi, u, ig - - qs_pi, qo_pi, u, ig = vmap(lambda policy: vmap(_step)(agent.A, agent.B, agent.C, qs, policy))(policies) +def step(agent, qs, policies, gamma=32): + def _step(a, b, c, q, policy): + qs = compute_expected_state(q, b, policy, agent.B_dependencies) + qo = compute_expected_obs(qs, a, agent.A_dependencies) + u = compute_expected_utility(qo, c) + ig = compute_info_gain(qs, qo, a, agent.A_dependencies) + return qs, qo, u, ig + + qs, qo, u, ig = vmap(lambda policy: vmap(_step)(agent.A, agent.B, agent.C, qs, policy))(policies) G = u + ig - return qs_pi, qo_pi, G, u, ig + return qs, qo, nn.softmax(G * gamma, axis=0), G def tree_search( agent, qs, - planning_horizon, + horizon, policy_prune_threshold=1 / 16, policy_prune_topk=-1, observation_prune_threshold=1 / 16, entropy_prune_threshold=0.5, prune_penalty=512, ): - # cut out time dimension - qs = jtu.tree_map(lambda x: x[:, -1, ...], qs) root_node = { - "qs": qs, + "qs": jtu.tree_map(lambda x: x[:, -1, ...], qs), "G_t": 0.0, "parent": None, "children": [], @@ -140,93 +61,54 @@ def tree_search( } tree = Tree(root_node) - h = 0 - while h < planning_horizon: - # TODO refactor so we can vectorize this - - # TODO add some early stopping based on q_pi entropy - if "q_pi" in tree.root().keys(): - q_pi = tree.root()["q_pi"] - H = -jnp.dot(q_pi, jnp.log(q_pi + pymdp.maths.EPS_VAL)) - if H < entropy_prune_threshold: - break - - for node in tree.leaves(): - tree = expand_node_sophisticated( - agent, node, tree, policy_prune_threshold, policy_prune_topk, observation_prune_threshold, prune_penalty + for _ in range(horizon): + + leaves = tree.leaves() + qs_leaves = stack_leaves([leaf["qs"] for leaf in leaves]) + qs_pi, qo_pi, q_pi, G = vmap(lambda leaf: step(agent, leaf, agent.policies))(qs_leaves) + + for l, node in enumerate(leaves): + tree = expand_node( + agent, + node, + tree, + jtu.tree_map(lambda x: x[l, ...], qs_pi), + jtu.tree_map(lambda x: x[l, ...], qo_pi), + q_pi[l], + G[l], + policy_prune_threshold, + policy_prune_topk, + observation_prune_threshold, + prune_penalty, ) - h += 1 - - return tree - - -def expand_node_vanilla(agent, node, tree, gamma=32): - qs = node["qs"] - policies = agent.policies - - qs_pi, qo_pi, G, u, ig = step(agent, qs, policies) - q_pi = nn.softmax(G * gamma, axis=0) - - node["policies"] = policies - node["q_pi"] = q_pi[:, 0] - node["G"] = jnp.array([jnp.dot(q_pi[:, 0], G[:, 0])]) - - for idx in range(policies.shape[0]): - policy_node = { - "policy": policies[idx, 0], - "prob": q_pi[idx, 0], - "qs": jtu.tree_map(lambda x: x[idx, ...], qs_pi), - "qo": jtu.tree_map(lambda x: x[idx, ...], qo_pi), - "G_t": G[idx], - "G": G[idx], - "parent": node, - "children": [], - "n": node["n"] + 1, - } - - node["children"].append(policy_node) - tree.append(policy_node) - - # update G of parents - while node["parent"] is not None: - parent = node["parent"] - G_children = jnp.array([child["G"][0] for child in parent["children"]]) - q_pi = nn.softmax(G_children * gamma) - - G = jnp.dot(q_pi, G_children) + parent["G_t"] - parent["G"] = G - parent["q_pi"] = q_pi - - for idx, c in enumerate(parent["children"]): - c["prob"] = q_pi[idx] - node = parent + if policy_entropy(tree.root()) < entropy_prune_threshold: + break return tree -def expand_node_sophisticated( +def expand_node( agent, node, tree, + qs_pi, + qo_pi, + q_pi, + G, policy_prune_threshold=1 / 16, policy_prune_topk=-1, observation_prune_threshold=1 / 16, prune_penalty=512, gamma=32, ): - qs = node["qs"] policies = agent.policies - qs_pi, qo_pi, G, u, ig = step(agent, qs, policies) - q_pi = nn.softmax(G * gamma, axis=0) - node["policies"] = policies node["q_pi"] = q_pi[:, 0] node["G"] = jnp.array([jnp.dot(q_pi[:, 0], G[:, 0])]) node["children"] = [] - # expand the policies and observations of this node ordered = jnp.argsort(q_pi[:, 0])[::-1] policies_to_consider = [] for idx in ordered: @@ -237,6 +119,7 @@ def expand_node_sophisticated( else: break + observations, qs_priors, probs, policy_nodes = [], [], [], [] for idx in range(len(policies)): policy_node = { "policy": policies[idx, 0], @@ -247,11 +130,32 @@ def expand_node_sophisticated( "n": node["n"] + 1, } node["children"].append(policy_node) - tree.append(policy_node) + + if idx in policies_to_consider: + tree.append(policy_node) if idx in policies_to_consider: # branch over possible observations qo_next = jtu.tree_map(lambda x: x[idx][0], qo_pi) + qs_prior = jtu.tree_map(lambda x: x[idx], qs_pi) + + # TODO: wip + # shapes = [s.shape[0] for s in qo_next] + # combinations = jnp.array(list(itertools.product(*[jnp.arange(s) for s in shapes]))) + + # def calculate_prob(combination): + # return jnp.prod(jnp.array([qo_next[i][combination[i]] for i in range(len(combination))])) + + # prob = jax.vmap(calculate_prob)(combinations) + + # valid_indices = prob >= observation_prune_threshold + # valid_combinations = combinations[valid_indices] + # observation = [jnp.array([[k[i]] for k in valid_combinations]) for i in range(len(qo_next))] + + # observations.append(observation) + # qs_priors.append(qs_prior) + # probs.append(prob[valid_indices]) + # policy_nodes.append(policy_node) for k in itertools.product(*[range(s.shape[0]) for s in qo_next]): prob = 1.0 @@ -267,28 +171,33 @@ def expand_node_sophisticated( for i in range(len(qo_next)): observation.append(jnp.array([[k[i]]])) - qs_prior = jtu.tree_map(lambda x: x[idx], qs_pi) - - qs_next = agent.infer_states( - observations=observation, - past_actions=None, - empirical_prior=qs_prior, - qs_hist=None, - ) - - observation_node = { - "observation": observation, - "prob": prob, - "qs": jtu.tree_map(lambda x: x[:, 0, ...], qs_next), - "G": jnp.zeros((1)), - "parent": policy_node, - "children": [], - "n": node["n"] + 1, - } - policy_node["children"].append(observation_node) - tree.append(observation_node) + observations.append(observation) + qs_priors.append(qs_prior) + probs.append(prob) + policy_nodes.append(policy_node) + + stacked_observations = stack_leaves(observations) + stacked_qs_priors = stack_leaves(qs_priors) + qs_next = vmap(agent.infer_states)(stacked_observations, None, stacked_qs_priors, None) + + for idx, observation in enumerate(observations): + observation_node = { + "observation": observation, + "prob": probs[idx], + "qs": jtu.tree_map(lambda x: x[idx, :, 0, ...], qs_next), + "G": jnp.zeros((1)), + "parent": policy_nodes[idx], + "children": [], + "n": node["n"] + 1, + } + policy_nodes[idx]["children"].append(observation_node) + tree.append(observation_node) + + tree_backward(node, prune_penalty, gamma) + return tree + - # update G of parents +def tree_backward(node, prune_penalty=512, gamma=32): while node["parent"] is not None: parent = node["parent"]["parent"] G_children = jnp.zeros(len(node["children"])) @@ -314,7 +223,56 @@ def expand_node_sophisticated( for idx, c in enumerate(parent["children"]): c["prob"] = q_pi[idx] + node = parent + + +def policy_entropy(node): + return -jnp.dot(node["q_pi"], jnp.log(node["q_pi"] + pymdp.maths.EPS_VAL)) + + +def stack_leaves(data): + return [jnp.stack([d[i] for d in data]) for i in range(len(data[0]))] + + +def expand_node_vanilla(agent, node, tree, gamma=32): + qs = node["qs"] + policies = agent.policies + + qs_pi, qo_pi, G, u, ig = step(agent, qs, policies) + q_pi = nn.softmax(G * gamma, axis=0) + + node["policies"] = policies + node["q_pi"] = q_pi[:, 0] + node["G"] = jnp.array([jnp.dot(q_pi[:, 0], G[:, 0])]) + for idx in range(policies.shape[0]): + policy_node = { + "policy": policies[idx, 0], + "prob": q_pi[idx, 0], + "qs": jtu.tree_map(lambda x: x[idx, ...], qs_pi), + "qo": jtu.tree_map(lambda x: x[idx, ...], qo_pi), + "G_t": G[idx], + "G": G[idx], + "parent": node, + "children": [], + "n": node["n"] + 1, + } + + node["children"].append(policy_node) + tree.append(policy_node) + + # update G of parents + while node["parent"] is not None: + parent = node["parent"] + G_children = jnp.array([child["G"][0] for child in parent["children"]]) + q_pi = nn.softmax(G_children * gamma) + + G = jnp.dot(q_pi, G_children) + parent["G_t"] + parent["G"] = G + parent["q_pi"] = q_pi + + for idx, c in enumerate(parent["children"]): + c["prob"] = q_pi[idx] node = parent return tree From cb49577942f15244a17dc38b44bfc70f62d2b346 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Thu, 13 Jun 2024 15:29:24 +0200 Subject: [PATCH 119/196] fix spm_dot_sparse dims dims modifications --- pymdp/jax/maths.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pymdp/jax/maths.py b/pymdp/jax/maths.py index 82e9e000..c4a40a01 100644 --- a/pymdp/jax/maths.py +++ b/pymdp/jax/maths.py @@ -49,10 +49,12 @@ def spm_dot_sparse( ): if dims is None: dims = (jnp.arange(0, len(x)) + X.ndim - len(x)).astype(int) + dims = jnp.array(dims).flatten() if keep_dims is not None: for d in keep_dims: - dims = jnp.delete(dims, d) + if d in dims: + dims = jnp.delete(dims, jnp.argwhere(dims == d)) for d in range(len(x)): s = jnp.ones(jnp.ndim(X), dtype=int) @@ -60,7 +62,7 @@ def spm_dot_sparse( X = X * x[d].reshape(tuple(s)) sparse_sum = sparse.sparsify(jnp.sum) - Y = sparse_sum(X, axis=tuple(dims.astype(int))) + Y = sparse_sum(X, axis=tuple(dims)) return Y From b1b74aaacbc021eb6613dad16b08bd44150fe056 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 13 Jun 2024 15:37:51 +0200 Subject: [PATCH 120/196] add sophisticated tmaze example --- examples/sophisticated_tmaze.ipynb | 392 +++++++++++++++++++++++++++++ 1 file changed, 392 insertions(+) create mode 100644 examples/sophisticated_tmaze.ipynb diff --git a/examples/sophisticated_tmaze.ipynb b/examples/sophisticated_tmaze.ipynb new file mode 100644 index 00000000..b8ca57d2 --- /dev/null +++ b/examples/sophisticated_tmaze.ipynb @@ -0,0 +1,392 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sophisticated inference\n", + "\n", + "This notebook demonstrates tree searching policies." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", + "from pymdp.jax.envs.generalized_tmaze import (\n", + " GeneralizedTMazeEnv, parse_maze, render \n", + ")\n", + "from pymdp.jax.envs.rollout import rollout\n", + "from pymdp.jax.agent import Agent\n", + "\n", + "import numpy as np \n", + "import jax.random as jr \n", + "import jax.numpy as jnp\n", + "import jax.tree_util as jtu " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0], [1], [2]]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAEzCAYAAAC8KU67AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABkh0lEQVR4nO3deVxU9frA8c+ZAYZ1QJBNRUBxw33L1FQsCsy86bXCpRQzy9JMbfX+urbYDdMsW0ztlltXy8pMs9LcwFxyx30X11hEBGSHmfP7Y2J0BBSUYZme9+t1XjLnfM85zzmMzDPf7SiqqqoIIYQQQohaT1PdAQghhBBCiMohiZ0QQgghhI2QxE4IIYQQwkZIYieEEEIIYSMksRNCCCGEsBGS2AkhhBBC2AhJ7IQQQgghbIQkdkIIIYQQNkISOyGEEEIIGyGJnbAZb775JoqiWKwLCgoiOjq6SuNYsGABiqJw5syZKj2vKB/5/QghbJkkdjYuISGBsWPH0rRpU5ydnXF2diY0NJQxY8awf//+6g7vb+nMmTMoilKupazkIygoCEVRCA8PL3X7f//7X/Mxdu3aZcWruT23ugdTp06t7hD/VpYsWcLMmTOrOwwhRCWwq+4AhPWsWrWKqKgo7OzsGDp0KG3btkWj0XD06FF++OEHZs+eTUJCAoGBgdUdqtUcO3YMjaZmfX/x9vbmq6++slg3Y8YMLly4wIcffliibFkcHR3ZuHEjSUlJ+Pn5WWxbvHgxjo6O5OXlVV7gVjB48GAefPDBEuvbt29vtXM+8cQTDBo0CJ1OZ7Vz1DZLlizh4MGDjB8/vrpDEULcIUnsbNSpU6cYNGgQgYGBrF+/Hn9/f4vt7733Hp999lmNS3qul52djYuLyx0doyZ+eLu4uPD4449brPvmm2+4cuVKifU30717d3bu3MnSpUt54YUXzOsvXLjA77//zoABA1i2bFmlxW0NHTp0qNA1VwatVotWq71pGVVVycvLw8nJqYqiEkKIylFzP9XFHZk2bRrZ2dnMnz+/RFIHYGdnx7hx4wgICLBYf/ToUR555BE8PT1xdHSkU6dOrFy50qJMcR+lLVu2MHHiRLy9vXFxcWHAgAFcunSpxLl+/fVXevTogYuLC25ubvTt25dDhw5ZlImOjsbV1ZVTp07x4IMP4ubmxtChQwH4/fffefTRR2nYsCE6nY6AgAAmTJhAbm7uLe/DjX3sytvsWZ77AHDo0CHuvfdenJycaNCgAe+88w5Go/GWcVUGR0dH/vnPf7JkyRKL9V9//TV16tQhIiKixD779+8nOjqaRo0a4ejoiJ+fH08++SSXL182l7lVM+n1tm/fTmRkJO7u7jg7O9OrVy+2bNlSqdcZFBTEQw89xObNm7nrrrtwdHSkUaNGLFq0yFxm165dKIrCwoULS+y/Zs0aFEVh1apVQOl97IrPsWbNGjp16oSTkxNz584F4PTp0zz66KN4enri7OzM3Xffzc8//2xxjtjYWBRF4dtvv+U///kPDRo0wNHRkfvuu4+TJ09alA0LC6NVq1bs37+fXr164ezsTEhICN9//z0AcXFxdOnSBScnJ5o1a8a6detKXNPFixd58skn8fX1RafT0bJlS+bNm3dbMYWFhfHzzz9z9uxZ8+84KCioHL8ZIURNJDV2NmrVqlWEhITQpUuXcu9z6NAhunfvTv369XnttddwcXHh22+/pX///ixbtowBAwZYlH/++eepU6cOb7zxBmfOnGHmzJmMHTuWpUuXmst89dVXDB8+nIiICN577z1ycnKYPXs299xzD3v37rX4ACkqKiIiIoJ77rmH999/H2dnZwC+++47cnJyePbZZ/Hy8mLHjh188sknXLhwge+++65C9+XGJlCA119/nZSUFFxdXSt0H5KSkujduzdFRUXmcp9//nmV1vIMGTKEBx54gFOnTtG4cWPA1Kz2yCOPYG9vX6L82rVrOX36NCNGjMDPz49Dhw7x+eefc+jQIf744w8URSm1qbiwsJAJEybg4OBgXrdhwwb69OlDx44deeONN9BoNMyfP597772X33//nbvuuuuW8efk5JCamlpivYeHB3Z21/48nTx5kkceeYSRI0cyfPhw5s2bR3R0NB07dqRly5Z06tSJRo0a8e233zJ8+HCLYy1durTMRPd6x44dY/DgwTzzzDOMGjWKZs2akZycTLdu3cjJyWHcuHF4eXmxcOFC/vGPf/D999+X+D8xdepUNBoNL730EhkZGUybNo2hQ4eyfft2i3JXrlzhoYceYtCgQTz66KPMnj2bQYMGsXjxYsaPH8/o0aMZMmQI06dP55FHHuH8+fO4ubkBkJyczN13342iKIwdOxZvb29+/fVXRo4cSWZmZonm1FvF9H//939kZGRYdAUo/r8ghKiFVGFzMjIyVEDt379/iW1XrlxRL126ZF5ycnLM2+677z61devWal5ennmd0WhUu3XrpjZp0sS8bv78+SqghoeHq0aj0bx+woQJqlarVdPT01VVVdWrV6+qHh4e6qhRoyxiSEpKUt3d3S3WDx8+XAXU1157rUTM18dYLCYmRlUURT179qx53RtvvKHe+JYODAxUhw8fXmL/YtOmTVMBddGiRRW+D+PHj1cBdfv27eZ1KSkpqru7uwqoCQkJZZ73Rn379lUDAwPLXT4wMFDt27evWlRUpPr5+alTpkxRVVVVDx8+rAJqXFyc+fe0c+dO836l3cuvv/5aBdRNmzaVeb7nnntO1Wq16oYNG1RVNd2PJk2aqBERERbvgZycHDU4OFi9//77bxp/QkKCCpS5bNu2zeJab4wvJSVF1el06osvvmheN2nSJNXe3l5NS0szr8vPz1c9PDzUJ5980ryu+L5c//spPsfq1ast4iz+Hf/+++/mdVevXlWDg4PVoKAg1WAwqKqqqhs3blQBtUWLFmp+fr657EcffaQC6oEDB8zrevXqpQLqkiVLzOuOHj2qAqpGo1H/+OMP8/o1a9aogDp//nzzupEjR6r+/v5qamqqRayDBg1S3d3dzb/jisRU0fefEKLmkqZYG5SZmQmU/q07LCwMb29v8zJr1iwA0tLS2LBhA4899hhXr14lNTWV1NRULl++TEREBCdOnODixYsWx3r66actmuZ69OiBwWDg7NmzgKl2KD09ncGDB5uPl5qailarpUuXLmzcuLFEfM8++2yJddfXgGVnZ5Oamkq3bt1QVZW9e/fexh0y2bhxI5MmTeL555/niSeeqPB9+OWXX7j77rstaqa8vb3NTchVQavV8thjj/H1118DpkETAQEB9OjRo9Ty19/LvLw8UlNTufvuuwHYs2dPqfssWrSIzz77jGnTptG7d28A4uPjOXHiBEOGDOHy5cvm+5Sdnc19993Hpk2bytUk/fTTT7N27doSS2hoqEW50NBQi2vy9vamWbNmnD592rwuKiqKwsJCfvjhB/O63377jfT0dKKiom4ZS3BwcIlavV9++YW77rqLe+65x7zO1dWVp59+mjNnznD48GGL8iNGjLCo1SyO+fo4i48xaNAg8+tmzZrh4eFBixYtLGrZi38u3l9VVZYtW0a/fv1QVdXi/1VERAQZ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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def get_maze_matrix(small=False):\n", + " if small:\n", + " M = np.zeros((3, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + "\n", + " # Set the initial position\n", + " M[2,3] = 1\n", + " else:\n", + "\n", + " M = np.zeros((5, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + " M[4,1] = 10\n", + " M[4,3] = 11\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + " M[3,2] = 9\n", + "\n", + " # Set the initial position\n", + " M[2,2] = 1\n", + " return M\n", + "\n", + "M = get_maze_matrix(small=True)\n", + "env_info = parse_maze(M)\n", + "tmaze_env = GeneralizedTMazeEnv(env_info)\n", + "_ = render(env_info, tmaze_env)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", + "B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", + "A_dependencies = tmaze_env.dependencies[\"A\"]\n", + "B_dependencies = tmaze_env.dependencies[\"B\"]\n", + "\n", + "# [position], [cue], [reward]\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "\n", + "rewarding_modality = 2 + env_info[\"num_cues\"]\n", + "#rewarding_modality = -1\n", + "\n", + "C[rewarding_modality] = C[rewarding_modality].at[:,1].set(2.0)\n", + "C[rewarding_modality] = C[rewarding_modality].at[:,2].set(-3.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) for b in B]\n", + "D[0] = tmaze_env.params[\"D\"][0].copy()\n", + "\n", + "agent = Agent(\n", + " A, B, C, D, \n", + " None, None, None, \n", + " policy_len=1,\n", + " A_dependencies=A_dependencies, \n", + " B_dependencies=B_dependencies,\n", + " apply_batch=False\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "from jax import random as jr\n", + "\n", + "key = jr.PRNGKey(0)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "obs, tmaze_env = tmaze_env.step(keys[1:])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Array([[13]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" + ] + } + ], + "source": [ + "print(obs)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "qs = agent.infer_states(\n", + " observations=obs,\n", + " past_actions=None,\n", + " empirical_prior=agent.D,\n", + " qs_hist=None,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Array([[[4.930398e-32, 0.000000e+00, 4.930398e-32, 0.000000e+00,\n", + " 4.930398e-32, 4.930398e-32, 0.000000e+00, 4.930398e-32,\n", + " 0.000000e+00, 4.930398e-32, 0.000000e+00, 4.930398e-32,\n", + " 4.930398e-32, 1.000000e+00, 0.000000e+00]]], dtype=float32), Array([[[0.5, 0.5]]], dtype=float32), Array([[[0.5, 0.5]]], dtype=float32)]\n" + ] + } + ], + "source": [ + "print(qs)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[0 0 0]]\n", + "\n", + " [[1 0 0]]\n", + "\n", + " [[2 0 0]]\n", + "\n", + " [[3 0 0]]]\n" + ] + } + ], + "source": [ + "print(agent.policies)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.planning import tree_search\n", + "\n", + "tree = tree_search(agent, qs, 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx\n", + "import matplotlib.pyplot as plt\n", + "\n", + "\n", + "def plot_plan_tree(\n", + " tree,\n", + " font_size=12,\n", + "):\n", + " root_node = tree.root()\n", + " print(root_node[\"n\"])\n", + "\n", + " colormap = plt.cm.Blues\n", + " colormap_policy = plt.cm.Reds\n", + "\n", + " # create graph\n", + " count = 0\n", + " G = nx.Graph()\n", + " to_visit = [(root_node, 0)]\n", + " labels = {}\n", + " colors = []\n", + "\n", + " G.add_node(count)\n", + " labels[0] = \"\"\n", + " colors.append((0.0, 0.0, 0.0, 1.0))\n", + " count += 1\n", + "\n", + " # visit children\n", + " while len(to_visit) > 0:\n", + " node, id = to_visit.pop()\n", + " for child in node[\"children\"]:\n", + " G.add_node(count)\n", + " G.add_edge(id, count)\n", + "\n", + " cm = colormap\n", + " if \"policy\" in child.keys():\n", + " labels[count] = child[\"policy\"][0]\n", + " cm = colormap_policy\n", + " elif \"observation\" in child.keys():\n", + " o = child[\"observation\"]\n", + " labels[count] = str(o[0][0])\n", + " else:\n", + " labels[count] = \"\"\n", + "\n", + " r, g, b, a = cm(child.get(\"prob\", 0))\n", + " a *= 0.5\n", + " colors.append((r, g, b, a))\n", + "\n", + " to_visit.append((child, count))\n", + " count += 1.0\n", + "\n", + " # from networkx.drawing.nx_pydot import graphviz_layout\n", + "\n", + " # pos = graphviz_layout(G, prog=\"dot\")\n", + " nx.draw(\n", + " G,\n", + " with_labels=True,\n", + " font_size=font_size,\n", + " labels=labels,\n", + " node_color=colors,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + }, + { + "data": { + "image/png": "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lZVWRwEAnMMLL7ygmTNn6rvf/S5lspnwHQbqye12y+/3q7Cw0OooAICz+Pe//62ZM2fqpptu0tNPP02ZbCZ8l4F66t27twYOHMhqbwCIUi+99JK+/e1v67/+67/0j3/8gzLZjPhOAw3gdrv11ltvKRAIWB0FAPAls2fP1owZM/Ttb3+bMmkBvttAA7jdbh06dEgrV660OgoA4KSXX35Z3/rWt/Stb31LzzzzjOx2u9WR4g6FEmiA4cOHq3Pnzkx7A0CUePXVV/Wtb31LN954o/75z39SJi1CoQQawGazaerUqZo7d67YcQsArDVnzhzdcMMNmj59uv71r39RJi1EoQQayO12a8uWLdqwYYPVUQAgbr322muaPn26rr/+ej333HOUSYtRKIEGys7OVmpqqt58802rowBAXHr99dc1ffp0XXfddZTJKEGhBBooMTFR+fn5nEcJABZ44403dP311+uaa67RrFmz5HA4rI4EUSiBRnG73Vq9erX27NljdRQAiBtz587VN7/5TU2bNk0vvPACZTKKUCiBRigoKJDdbte8efOsjgIAcWHevHm67rrrdPXVV+vFF1+kTEYZw2SpKtAo2dnZSkxM1KJFi6yOAgAxbf78+brmmms0depUvfTSS3I6nVZHwlcwQgk0ktvtVnFxsSoqKqyOAgAx66233tI111yjKVOmUCajGIUSaCS3263q6mp5PB6rowBATFqwYIGuueYaTZ48WbNnz6ZMRjEKJdBIPXr00NChQ1ntDQBNYOHChZo2bZoKCgooky0AhRIIg9vt1oIFC1RTU2N1FACIGR6PR1dffbUmTpyol19+WQkJCVZHwnlQKIEwuN1ulZeXa/ny5VZHAYCY4PV6ddVVV2nChAl65ZVXKJMtBIUSCMNll12mbt26Me0NABFQWFgot9ut3Nxcvfrqq5TJFoRCCYTBMAxNnTpVc+fOFTtwAUDjLV68WG63Wzk5OZozZ44SExOtjoQGoFACYXK73dq+fbvWr19vdRQAaJGKioo0depUZWdn67XXXqNMtkAUSiBMGRkZSktLY9obABphyZIlmjJlirKysiiTLRiFEghTQkKCCgoKKJQA0EDFxcWaMmWKMjMz9frrr8vlclkdCY1EoQQiwO12a+3atdq5c6fVUQCgRSgpKdHkyZM1duxYvfHGG5TJFo5CCUTAxIkT5XQ6NW/ePKujAEDUW7p0qSZNmqQxY8bozTffpEzGAMNkaSoQEXl5eTJNU4sXL7Y6CgBErWXLlqmgoECjR4/WvHnzlJSUZHUkRAAjlECEuN1uLV26VOXl5VZHAYCoVFpaqoKCAl155ZWaO3cuZTKGUCiBCJk6daoCgYAWLVpkdRQAiDrLly9XQUGBRo0apXnz5ik5OdnqSIggCiUQId26ddPll1/Oam8A+Iq3335bEydO1MiRIzV//nzKZAyiUAIR5Ha7tWjRIlVXV1sdBQCiwooVKzRx4kSNGDGCMhnDKJRABLndbh07dkxLly61OgoAWG7lypXKz8/XsGHD9NZbbyklJcXqSGgiFEoggoYMGaIePXow7Q0g7r3zzjvKz8/X5ZdfrgULFlAmYxyFEoggwzDkdrs1b948sSMXgHi1atUqTZgwQZdeeillMk5QKIEIc7vd2rVrl9auXWt1FABodu+++64mTJigoUOHauHChUpNTbU6EpoBhRKIsLFjx6pt27ZMewOIO++9957y8vI0ePBgymScoVACEeZwODRp0iQKJYC4snr1auXl5WnQoEFatGiRWrVqZXUkNCMKJdAE3G631q9fr23btlkdBQCa3Jo1a5Sbm6tLLrmEMhmnKJRAE5gwYYISEhI0b948q6MAQJN6//33lZubq/79+8vj8SgtLc3qSLCAYbIUFWgSBQUF8vv9Ki4utjoKADSJtWvXKicnRxdffLEKCwvVunVrqyPBIoxQAk3E7XartLRUhw8ftjoKAETcBx98oJycHPXp00der5cyGecolEATmTJlioLBoBYuXGh1FACIqHXr1iknJ0e9e/dWYWGh2rRpY3UkWIxCCTSRLl26aOTIkaz2BhBTPvzwQ40fP149e/akTOIUCiXQhNxutxYtWiS/3291FAAI2/r16zV+/Hj16NFDixcvVtu2ba2OhChBoQSakNvtVmVlJQtzALR4H330kcaPH6/u3btTJvE1FEqgCQ0YMEC9e/dm2htAi/bxxx8rOztbF154oYqKitSuXTurIyHKUCiBJmQYhtxut+bNm6dQKGR1HABosE8++YQyifOiUAJNzO12a9++fVq9erXVUQCgQTZs2KDs7Gx16dJFRUVFat++vdWREKUolEATGz16tNq3b8+0N4AWZcOGDcrKylKnTp0okzgvCiXQxBwOh6ZMmUKhBNBi/Oc//1F2drY6duyoJUuWKD093epIiHIUSqAZuN1ubdiwQZs3b7Y6CgCc06effqqsrCx16NCBMol6o1ACzSA3N1cul4tRSgBR7bPPPlNWVpbS09O1ZMkSdejQwepIaCEM0zRNq0MA8WDq1KkqLy9XaWmp1VEA4Gs2btyozMxMtW3bViUlJbrgggusjoQWhBFKoJm43W6tWLFCBw8etDoKAJxm06ZNysrKUps2bVRcXEyZRINRKIFmMnnyZJmmqbfeesvqKABwyqZNm5SZmam0tDQVFxerY8eOVkdCC0ShBJpJx44ddeWVV3IeJYCosXnzZmVlZSktLU0lJSXq1KmT1ZHQQlEogWbkdrtVWFgon89ndRQAcW7Lli3KyspSamqqiouLKZMIC4USaEZut1snTpxQUVGR1VEAxLGtW7cqKytLycnJKikpUefOna2OhBaOQgk0o379+qlfv35MewOwzNatW5WZmSmXy0WZRMRQKIFm5na7NX/+fAWDQaujAIgz27ZtU1ZWlhITE1VSUqIuXbpYHQkxgkIJNDO32639+/dr1apVVkcBEEc+//xzZWVlyel0qqSkRF27drU6EmIIhRJoZldccYUuuOACpr0BNJvt27crKytLDodDS5cu1YUXXmh1JMQYCiXQzOx2u6ZMmUKhBNAsduzYoczMTNlsNpWUlFAm0SQolIAF3G63Nm7cqE8//dTqKABiWF2ZNAxDJSUl6tatm9WREKMolIAFcnJylJyczCglgCazc+dOZWVlyTRNlZSUqHv37lZHQgyjUAIWSEpKUl5eHoUSQJPYtWuXsrKyFAqFtHTpUl100UVWR0KMo1ACFrnqqqu0atUqlZWVWR0FQAzZvXu3MjMzFQgEVFJSQplEs6BQAhaZNGmSDMPQ/PnzrY4CIEbUlcmamhqVlJSoR48eVkdCnDBM0zStDgHEq4yMDKWlpVEqAYRtz549yszMlN/v19KlS9WrVy+rIyGOMEIJWMjtdquoqEiVlZVWRwHQgu3Zs0dZWVny+XyUSViCQglYyO12y+/3q7Cw0OooAFqovXv3Kjs7WydOnKBMwjIUSsBCvXv31sCBA1ntDaBR9u3bp+zsbB0/flwlJSXq3bu31ZEQpyiUgMXcbrfeeustBQIBq6MAaEHKysqUlZWlY8eOqaSkRH369LE6EuIYhRKwmNvt1qFDh7Ry5UqrowBoIerK5NGjR7V06VJdfPHFVkdCnKNQAhYbPny4OnfuzLQ3gHrZv3+/srOzVV5eTplE1KBQAhaz2WyaOnWq5s6dK3bxAnAudWXy8OHDKikpUd++fa2OBEiiUAJRwe12a8uWLdqwYYPVUQBEqQMHDmj8+PE6dOiQSkpK1K9fP6sjAadQKIEokJ2drdTUVL355ptWRwEQherK5IEDB1RcXKz+/ftbHQk4DYUSiAKJiYnKz8/nPEoAX3Pw4EHl5OSorKxMxcXFuuSSS6yOBHwNhRKIEm63W6tXr9aePXusjgIgShw6dEg5OTnau3evSkpKNGDAAKsjAWdEoQSiREFBgex2u+bNm2d1FABRoK5M7tmzhzKJqGeYLCsFokZ2drYSExO1aNEiq6MAsNDhw4eVk5OjnTt3qqSkRIMGDbI6EnBOjFACUcTtdqu4uFgVFRVWRwFgkS+XyeLiYsokWgQKJRBF3G63qqur5fF4rI4CwAJHjhxRbm6uduzYoSVLlmjw4MFWRwLqhUIJRJEePXpo6NChrPYG4lB5eblyc3O1fft2LVmyREOGDLE6ElBvFEogyrjdbi1YsEA1NTVWRwHQTOrK5LZt21RUVKShQ4daHQloEAolEGXcbrfKy8u1fPlyq6MAaAZHjx5VXl6etmzZoqKiIl166aVWRwIajEIJRJnLLrtM3bp1Y9obiAN1ZXLz5s0qKirSZZddZnUkoFEolECUMQxDU6dO1dy5c8WuXkDsOnbsmCZMmKCNGzeqqKhIl19+udWRgEajUAJRyO12a/v27Vq/fr3VUQA0gboy+dlnn1EmERMolEAUysjIUFpaGtPeQAyqqKhQfn6+/vOf/2jx4sUaNmyY1ZGAsFEogSiUkJCggoICCiUQY+rK5CeffKLFixdr+PDhVkcCIoJCCUQpt9uttWvXaufOnVZHARABFRUVmjhxoj7++GMtXrxYI0aMsDoSEDEUSiBKTZw4UU6nk1FKIAYcP35cBQUFWr9+vQoLCzVy5EirIwERZZgsIwWiVl5enkzT1OLFi62OAqCR6srkunXrVFhYqFGjRlkdCYg4RiiBKOZ2u7V06VKVl5dbHQVAI1RWVmrSpEn64IMP5PV6KZOIWYxQAlFs586d6t69u/7973/rhhtusDoOEHdCoZCO7SvT0T17VXHgoALVNbLZbEpu20atO3dUm65d5HS5zvjayspKTZ48WWvWrJHH49E3vvGNZk4PNB8KJRDlhg0bposvvlizZ8+2OgoQN6oqK7V9zQfaVLpCB7ZsU3VlpU7/tDTldLmU2iFdF48drZ6jRqhNl86nHj1x4oQmT56s9957Tx6PR2PGjGn29wA0JwolEOUeeugh/fd//7cOHDighIQEq+MAMc00Te1e/7FWz35N+zdulj3BqbROFygxNVU2u/2059X4/Dp+8JBOHClXqw7tNWTqJF2Sm6WaYFBTpkzRu+++q0WLFmns2LEWviOgeVAogSj34Ycf6tJLL5XX61VeXp7VcYCYFQoGtfa1efrorUUKVlcrvXdP2Z3O877ONE0d3bNXJ46Uq8vQwXq0aKFWvv++Fi5cqHHjxjVDcsB6FEogypmmqV69eqmgoECPP/64KisrdfToURmGoXbt2ikxMdHqiECLFwqFtGb2HK17Y75SO6Sr1QUdGnwM37HjmvfCi9p85JAeen228qZMboKkQHRilTcQ5UKhkAYPHqx//vOf6tWrl1JTU9W1a1d16dJFKSkpGjRokG6//XatWrVK/PsQaJyNS5frw3kL1apTx0aVyUBNQK/NfUPbDh/SpFGjZd+yQ6FgsAmSAtGJEUogSpmmqVmzZuknP/mJdu/efc7nOhwOBQIBDR48WI8++qgyMjKaKSXQ8pXv2atFv31EVZWVat+j+9ce37G/TP9eVqwte3bryPHjSnQ61a3DBZo2eoxG9rtEgUBAL8+ere3bd+jGG29Upw7pOrJjtzK+f7P6ZTHljfjACCUQhfbv369JkyZp5syZ2rNnz3mfHwgEJEkbNmxQZmam7r77bvn9/qaOCcSEjxctVvmevWrX/cIzPr7/aLl8VVXKHnqZvpc/SdePy5Ik/Wb2C1r43iq9PPtlbd++QzfceIN69OwhV2qqnEkurXtjvvwVFc35VgDLxOcIpWlKMmv/W/drGZJx8lb3a8ACO3fu1Lhx47Rz504FGzllZrPZNG7cOC1YsEDJyckRTgjEjooDBzX3p7+SzeFo0FR3MBTSfU89rkNHDmtAyKEbb7xRPXv1/OLxQEBln25U1t23q28GWwYh9sXXCKVpSsGAFKiSqv21t5oqqab65H+/dF8wIMVh14a1jh07pqysLO3atavRZVKqPe+ytLRU1113nUKhUAQTArFl14cf6fihI0pNb9+wF4ZMVR8/Ln9NtW648YbTyqQk2R0O2Z0J2rJyVQTTAtErPgqlaUqhYG1hDFTV/lqGZNgkm/2Lm2y194eCtc+r8VMs0aweeOABff7556emsMMRCoW0cOFCPf300xFIBsSmQ5/vkM1mk2E7/8ehv7pax05UateBA3roqce158RxDenRW7169Trj85Pbttbh7TtVVVkZ6dhA1HFYHaDJmaYUqJFCNSfvsJ19OrvufsN+soSaklldWzYdCUyDo0mVlJToH//4R8SPe//992vy5Mm68MIznx8GxCvTNLV/42Yltkqp1/OfLVwoz/urT309tHsPPfDNs18SNbFVqsp37dHRvft0QZ/eYecFollsF0rTlALVUiigUyOS9VV3PqVp1r4+IEolmtQf/vAH2e32sKa6z6S6ulp/+9vf9Jvf/CaixwWsFgqFVFNTc+pWXV192tdnu6/u/iqfT5+u/UChUEifHzygYDCoUDCkYOgr/w0GFQwF1aYqqLEdu2r3/v1yde6kpORk1Zzjz6szMVGB6mpVHWeEErEvthflBKqlYI3OOSpZH6YpKSTZnJLDSalExG3dulV9+vRpsn0k27Vrp71793LpRkiqHZkLBoONLmL1vb+pnxvu+cE2SaNVe2EAn0zZDJvsdrtsNpvsdptsNrvs9rr7an8tGTp69Ki+853v6LHCBar0+/TILd+XcYbPBTMU0t4Nn6ngZz9Ut0uHhJUViHaxO0IZCtae/3iGFdur16zRc7NeUMmyUn2+fbvat2+nUSNH6jf/7/+pb9+Lv34sw5BMo3ak0rTXTokDEeTxeJr0+IcPH9batWs1atSoJv194oFpmlFZrhr63EhLSEiQ0+k87Vbf+1wu1xnvb8gxGvNcu92uRb/4rWoqT6h9925SPcYKTlSe0KxZs/Svf/1LA0dcpheXL9XuQwd1YfrXV4gHa2pkdzrkdLki/v0Gok1sFsq61dwydaZ1R3945L+14p1Vum7a1RoyeLD2lZXpsSf/pstHXalVy5dp0MCBXz+mYZPMYO35mM4wRzyBr3j//fdlt9sjshjnTAzD0Pvvv295oawbFYu2ctWQ+yN9SoLdbm90YUpMTFSrVq2avYh99T673X7GEbqWoEv/vtq8fGW9yqQkJacka+bMmXrhhRe0cuU7kqQTVWfe89VfcVyJqalK63RBpOICUSt2C2UoqLNNdd9/zw/07+efO2367/prr9XgYcP1+z89ohf+9c+zHPhkqTRDjFIioj766KMmK5NS7b6Uc+fOVVpamqUFLdJT+uGUoGgoYk6nU7Z6rC5G00nveZE+K14m0zTPWorLK4+rTUrqqa9dSS7d8K0bVfqXR2QLSvJVnfF1vqPH1P6i7kpq3bopogNRJTbPoQxU144kGg0bSRw2arQk6f1VK8/+JDMo2RySMzHclGgm5ztfLBq+/vTTT1VdXd1s3xObzdYshamh5aohx3A4HC12VAzR49D2HZr/y4eV1DpNyW3bnPE5D7/8gk5UVWlg9x5qn5amI8ePa9lHH2rXwQMa0raDkitOaPoN00/bPsgMhbTn4w36xi0zNbhgQjO9G8A6MTpCGVJDr3ZjmqbK9pdp4CUDzvNMo/b4phk3095fLmPRUsAa+nUkfbmMfbXsnO9rl8t12shY3eN79+7VgQMHIprzyxwOh7797W/riSeeODVFCUBq172bLhw6SFtWvKukNq3P+I+UMQOHaPEHa7RozXuq8J1QUkKienfpopk5EzSs18V65ZWX9dK/X9J137xOffv2lSQdK9uv1PR09RgxrLnfEmCJ2CuUpimFQvU+H6bOiy/N1u7de/TQL35xnmcap1+u8Ty+uq1FtBSshnwdySutGIbR6DKWkJCglJSUsF7f0NGws50vFmkHDx7UnDlzIn5+Xp1QKKT+/fvLxeIA4DSGYWjQxDztXv+JKvYfUFrHr5/vOG7QEI0bdPZV2tdfP11z5szRKy+/omuuvUYX9+ql4wcOacQN16pVh/SmjA9EjdgrlKqbwa9/oyxaUqzb7rxL/fv1U7u2bTR33lwFgyGFQkEFT+5BVvdrp9Ohtm1a67GnntHOXbvOW8giXRDCKUpJSUlNVsbq+zUjY2c2bNgwvfrqq012/FAopGHDGCkBzqRT/74aVJCn1bPnyNUqVQnJyQ16vd1h13XXXac33nhDc16Zo7wRI3VFwQQNnsRUN+JHDBbKhtm3b59u+t73lJiQoP/61g3av3//GfcfS0hIkM1mV5LLpTZt2urSSy9V7z59GjXKFU4Z45yx2JSZmdmk19xOTEzUiBEjmuz4QEs3eHK+juzao02lK9ShT08lptTv6jl1bHabrnK75Tx+QsWr31XXayc3uJgCLVkMFsq6wnX+KemjR49q4tSr5PP59fbSYg245JLzH/7kdPeV4zIbduUd4ByGDx+uwYMH65NPPol4sXQ4HJoxY4bS0tIielwgliQkJWnM92bKsBnavHylktq0VpuuXer9j3jf0WM6/PkO5V1ztex7d+iOHz0oMzVFd9xxRxMnB6JDDBZKfXHJxHPw+/2aMu0abdy0SUWLFtSvTEqS6hbjMFKIyDEMQw888IBuuummiB87GAzq7rvvjvhxgVjjSk1VxvdvUce+fbTujbe056MNSklvp7SOF8h2htN1TNOUr/yoju4tk81h1yV52br82qt0bXp7JXXsoDvvvFN+v1/333+/Be8GaF6xuW1QTVXtVW3OsldkMBjUtG9O10KPR3PnvKqCifn1PzbbBqGJhEIhZWZm6p133onYnpQ2m0333HOP/vznP0fkeEC8OLxjpza//Y42v71Kxw8cUChkyu6wy+ZwyAyFFKypvdpQYmqqLhwyUBeP+4a6XX7pqX1FTdPUT3/6U/3ud7/Tr3/9a/3sZz+z8u0ATS42C2UoWFsqz7J10L0P/B/972OPa8qkSfrmtdd87fEZN95w5uPWXdPbkSjZY3NwF9batm2bhgwZohMnToQ99e1wONSzZ0+tW7dOyZzLBTSK7+hR7d+0ReV79ql89x7V+HyyORxK63iB2nTtonbdL1TbbheedWr8N7/5jX7+85/rpz/9qX79619zHjxiVmwWStOUavxSyJTOcBWKzNw8LStdfvaXV/nO8kCotqA6XXGzByWa39tvv628vDxVV1c3epcAh8Ohjh07auXKlerevXuEEwJoiEceeUQ//OEPdf/99+uRRx6hVCImxWahlGqv5R2oVkM3OD+rU6OTCZLdGf7xgHNYvXq1pk2bpj179jRqpHL48OF64403dOGFFzZBOgAN9dhjj+nuu+/WHXfcoUcffZRLbiLmxO5PtM1ee6u7qk046sqkzVF7A5rYiBEjtGHDBt16660yDOO8+3cahiHDMORyufTHP/5Rq1atokwCUeSuu+7S3//+dz355JO65ZZbmuwiBoBVYneEUqotkzVVJy/F2LDren9xjJNl0rDVLsRhqyA0sx07dugPf/iDnnjiiTM+brPZNGDAAN1yyy2aOXOm2rRp07wBAdTbCy+8oJkzZ2r69Ol67rnn5HAwSIHYENs/yXUlsKa6dqGOjIYVQtOsLaM2W+1CHMokLNC9e3cNHDhQDodDmzdv1tatW3XkyBHZbDZ17NhRQ4cOZdEN0ELMmDFDLpdLN9xwg/x+v1566SUlJCRYHQsIW2yPUNYxzdrzKUN1W7Gc3EfyTCOWp74dJ89bszkkh5MyCUu53W6Vl5dr2bJlVkcBEAHz58/Xtddeq9zcXM2ZM0cul8vqSEBY4qMlGUbtYhqn60vnQIZq95QMhb64mcHa+2We3GvSVfs6yiQsVF1dreLiYk2YwHWBgVgxZcoUzZ8/X8XFxZoyZYoqKyutjgSEJX6akmHULtKpK5aORMnmlOy2L242Z+39dUXSZmd7IFhu5cqVOn78OIUSiDF5eXlatGiR3nnnHU2cOFEVFRVWRwIaLX4KZR3DqD0n0u6QnCfL5albQu39tkYu4AGagNfrVYcOHXTZZZdZHQVAhGVkZGjx4sX68MMPlZubq/LycqsjAY0Sf4USaGG8Xq/y8vLYtw6IUVdeeaWKi4u1adMmZWdn6+DBg1ZHAhqMTyggipWVlemDDz5guhuIccOGDVNJSYl27dqlrKwslZWVWR0JaBAKJRDFCgsLJdWeawUgtg0ZMkTLli3ToUOHNG7cOO3atcvqSEC9USiBKOb1enXZZZepY8eOVkcB0AwuueQSlZaWyu/3a9y4cfr888+tjgTUC4USiFKhUEher5fpbiDO9OnTR6WlpbLZbBo3bpw2bdpkdSTgvCiUQJT64IMPdPDgQeXn51sdBUAzu+iii7Rs2TKlpKQoIyNDGzZssDoScE4USiBKeb1epaam6sorr7Q6CgALdO3aVUuXLlV6eroyMjL04YcfWh0JOCsKJRClvF6vsrOzuc4vEMc6duyokpISXXTRRcrKytLq1autjgScEYUSiELHjh3TypUrme4GoPbt26uoqEj9+/dXTk6OVqxYYXUk4GsolEAUKi4uViAQYEEOAElSmzZtTu36MGHCBJWUlFgdCTgNhRKIQl6vV3369FGvXr2sjgIgSrRq1UoLFy7UN77xDRUUFMjj8VgdCTiFQglEGdM05fF4mO4G8DXJycmaO3eucnNz5Xa7NXfuXKsjAZIolEDU2bRpkz7//HOmuwGckcvl0pw5czRlyhRde+21euWVV6yOBFAogWjj9XrldDqVmZlpdRQAUSohIUGzZ8/W9ddfrxtuuEHPP/+81ZEQ5xxWBwBwOo/HozFjxig1NdXqKACimMPh0HPPPaekpCTddNNN8vv9uvXWW62OhThFoQSiSFVVlZYuXapf/vKXVkcB0ALY7XY99dRTSkxM1G233Sa/368f/OAHVsdCHKJQAlHk7bff1okTJzh/EkC92Ww2Pfroo0pKStI999wjn8+nH/3oR1bHQpyhUAJRxOPxqFOnThoyZIjVUQC0IIZh6I9//KOSk5P1f//v/5Xf79cvfvELGYZhdTTECQolEEW8Xq8mTJjAhwCABjMMQ7/61a/kcrn0k5/8RD6fT7/73e/4+wTNgkIJRIk9e/boo48+0o9//GOrowBowX784x8rKSlJ9913n3w+n/7yl79QKtHkKJRAlPB6vTIMQ7m5uVZHAdDC3XvvvXK5XPr+978vv9+vJ598UjYbOwWi6VAogSjh9Xo1fPhwpaenWx0FQAy4/fbb5XK5dPPNN8vn8+nZZ5+Vw8HHPpoGP1lAFAgGg1q8eLHuuOMOq6MAiCE33XSTXC6XZsyYIb/frxdffFFOp9PqWIhBjH8DUWDNmjU6fPgw2wUBiLjp06fr1Vdf1ZtvvqnrrrtOVVVVVkdCDKJQAlHA6/WqdevWGjVqlNVRAMSgq6++Wm+++aY8Ho+uuuoq+Xw+qyMhxlAogSjg9Xo1fvx4zm8C0GQKCgq0YMEClZaWatKkSTp+/LjVkRBDKJSAxY4cOaJVq1Yx3Q2gyY0fP14ej0dr1qzRhAkTdPToUasjIUZQKAGLLVmyRKFQiEIJoFmMHTtWRUVF2rBhg3JycnT48GGrIyEGUCgBi3m9XvXv318XXXSR1VEAxImRI0equLhY27ZtU1ZWlvbv3291JLRwFErAQqZpyuPxMDoJoNlddtllWrZsmcrKypSZmak9e/ZYHQktGIUSsNB//vMf7dq1S/n5+VZHARCHBg4cqNLSUlVUVCgjI0M7duywOhJaKAolYCGv16vExESNGzfO6igA4lTfvn1VWlqqQCCgcePGaevWrVZHQgtEoQQs5PF4NG7cOCUnJ1sdBUAc69mzp0pLS5WQkKCxY8fqs88+szoSWhgKJWARn8+n0tJSprsBRIVu3bpp2bJlatOmjTIyMvTxxx9bHQktCIUSsEhpaan8fj8LcgBEjc6dO2vp0qXq3LmzMjMztXbtWqsjoYWgUAIW8Xg86tq1qwYMGGB1FAA4pUOHDiouLlavXr2UnZ2tVatWWR0JLQCFErCI1+tVfn6+DMOwOgoAnKZt27YqKirS4MGDlZubq9LSUqsjIcpRKAEL7NixQ//5z3+Y7gYQtdLS0uTxeDRy5Ejl5+erqKjI6kiIYhRKwAJer1c2m005OTlWRwGAs0pJSdFbb72lzMxMTZ48WQsWLLA6EqIUhRKwgNfr1RVXXKG2bdtaHQUAzikpKUlvvPGGJk6cqKuvvlqvv/661ZEQhSiUQDMLBAIqKipiuhtAi5GYmKhXXnlF11xzjb75zW/q3//+t9WREGUcVgcA4s17772no0ePUigBtChOp1MvvPCCEhMTNWPGDPn9fn33u9+1OhaiBIUSaGYej0dt27bViBEjrI4CAA1it9v17LPPKikpSTfffLP8fr/uuOMOq2MhClAogWbm9XqVm5sru91udRQAaDCbzaYnnnhCLpdLd955p/x+v+6//36rY8FiFEqgGR06dEirV6/WbbfdZnUUAGg0wzD05z//WUlJSXrggQfk8/n005/+1OpYsBCFEmhGixcvlmmanD8JoMUzDEO//e1vlZSUpJ/97Gfy+Xz69a9/zcUa4hSFEmhGXq9XgwYNUteuXa2OAgBhMwxDP//5z+VyufTggw/K5/PpkUceoVTGIQol0ExM05TX69WNN95odRQAiKgf/vCHSkpK0t133y2/369HH31UNhs7E8YTCiXQTD766CPt3btX+fn5VkcBgIi766675HK5dOutt8rv9+vpp59m8WEcoVACzcTr9SopKUljxoyxOgoANIlbbrlFLpdLM2fOlN/v13PPPSeHg6oRD/h/GWgmXq9XmZmZcrlcVkcBgCYzY8YMuVwu3XDDDfL7/XrppZeUkJBgdSw0MU5wAJpBZWWlli9fznQ3gLhw7bXX6vXXX9dbb72ladOmye/3Wx0JTYxCCTSDpUuXqrq6mu2CAMSNKVOmaP78+SouLtaUKVNUWVlpdSQ0IQol0Ay8Xq8uuugi9e3b1+ooANBs8vLytGjRIr3zzjuaOHGiKioqrI6EJkKhBJqBx+NRfn4+e7MBiDsZGRkqLCzUhx9+qLy8PJWXl1sdCU2AQgk0sW3btmnTpk1MdwOIW6NHj9aSJUv02WefKTs7WwcPHrQ6EiKMQgk0Ma/XK7vdruzsbKujAIBlhg8frqVLl2rXrl3KyspSWVmZ1ZEQQRRKoIl5PB6NHj1arVu3tjoKAFhqyJAhWrZsmQ4dOqSMjAzt3r3b6kiIEAol0IRqampUXFzMdDcAnHTJJZeotLRUPp9P48aN0+eff251JEQAhRJoQu+8844qKioolADwJX369FFpaakkady4cdq0aZPFiRAuCiXQhDwej9LT03X55ZdbHQUAospFF12k0tJSpaSkKCMjQxs2bLA6EsJAoQSakNfrVV5enmw2/qgBwFd17dpVS5cuVXp6ujIzM/Xhhx9aHQmNxKcc0ET279+vtWvXMt0NAOfQsWNHlZSUqFu3bsrKytLq1autjoRGoFACTaSwsFBS7ZUiAABn1759ey1ZskT9+/dXTk6OVqxYYXUkNBCFEmgiXq9Xl156qTp16mR1FACIem3atDn19+aECRNUUlJidSQ0AIUSaAKhUEiFhYVMdwNAA7Rq1UqLFi3S6NGjVVBQII/HY3Uk1BOFEmgC69at0/79+5Wfn291FABoUZKTkzVv3jzl5ubK7XZr7ty5VkdCPVAogSbg9XqVmpqq0aNHWx0FAFocl8ulOXPmaMqUKbr22mv16quvWh0J50GhBJqA1+tVVlaWEhISrI4CAC1SQkKCZs+ereuvv17Tp0/XrFmzrI6Ec3BYHQCINceOHdOKFSv0v//7v1ZHAYAWzeFw6LnnnpPL5dLMmTPl8/l06623Wh0LZ0ChBCKspKREgUCABTkAEAF2u11PP/20XC6XbrvtNlVVVenuu++2Oha+gkIJRJjX61Xv3r3Vu3dvq6MAQEyw2Wx69NFHlZSUpB/84Afy+Xx68MEHrY6FL6FQAhFkmqY8Ho8KCgqsjgIAMcUwDP3xj39UUlKSfvSjH8nn8+kXv/iFDMOwOhpEoQQiavPmzdq2bRvT3QDQBAzD0EMPPaSkpCT95Cc/kc/n0+9+9ztKZRSgUAIR5PV65XQ6lZWVZXUUAIhZP/7xj5WUlKT77rtPPp9Pf/nLXyiVFqNQAhHk9Xo1ZswYpaamWh0FAGLavffeK5fLpe9///vy+/168sknZbOxG6JVKJRAhFRVVam4uFi/+MUvrI4CAHHh9ttvl8vl0s033yy/369nnnlGDgfVxgp814EIWbFihU6cOMH5kwDQjG666Sa5XC7NmDFDfr9fL7zwgpxOp9Wx4g5jw0CEeL1ederUSUOHDrU6CgDElenTp+vVV1/VG2+8oeuuu05VVVVWR4o7FEogQjwej/Ly8jgxHAAscPXVV+vNN9+Ux+PRVVddJZ/PZ3WkuEKhBCJg7969Wr9+PdPdAGChgoICLViwQKWlpZo0aZKOHz9udaS4QaEEIqCwsFCGYSg3N9fqKAAQ18aPHy+Px6M1a9YoPz9fR48etTpSXKBQAhHg8Xg0bNgwdejQweooABD3xo4dq8WLF+uTTz5RTk6ODh8+bHWkmEehBMIUDAa1ePFiprsBIIpcccUVKi4u1rZt25Sdna0DBw5YHSmmUSiBMK1du1aHDh2iUAJAlLnsssu0bNky7du3TxkZGdq7d6/VkWIWhRIIk8fjUVpamkaNGmV1FADAVwwcOFClpaWqqKjQuHHjtGPHDqsjxSQKJRAmr9er8ePHs5EuAESpvn37qrS0VIFAQOPGjdPWrVutjhRzKJRAGMrLy7Vq1SqmuwEgyvXs2VOlpaVKSEjQuHHj9Nlnn1kdKaZQKIEwLFmyRMFgkEIJAC1At27dtGzZMrVu3VoZGRn6+OOPrY4UMyiUQBi8Xq/69eunHj16WB0FAFAPnTt31tKlS9WpUydlZmZq7dq1VkeKCRRKoJFM05TX62V0EgBamA4dOqikpES9evVSdna23n33XasjtXgUSqCRPv30U+3YsUP5+flWRwEANFDbtm1VVFSkQYMGKScnR6WlpVZHatEolEAjeb1eJSYmKiMjw+ooAIBGSEtLk8fj0ciRI5Wfn6+ioiKrI7VYhmmaptUhgJZo4sSJCgQCWrx4sdVRAABh8Pl8uuaaa1RcXKzXXntNkyZNOutzTdOUPxDSMX9AldVBhUzJZkipiQ6luRxyOeJzrI5CCTSCz+dTu3bt9Jvf/EYPPPCA1XEAAGGqqqrS9ddfr4ULF2r27NmaNm3aaY/XBEPadbRKmw9W6sDxavkDIQVNSTIlU3LYbUp02NS5VaJ6tU9S19YuOWyGJe/FChRKoBEKCws1YcIEffTRRxo0aJDVcQAAEVBTU6Nvf/vbmjNnjp5//nndeOONMk1Tu49V6f1dx3TgeLUMQ0pNsCvRYZPDZsgwDJmmqUCoduTyeFVQMqTOrRI17MI0dWqVaPXbahYOqwMALZHX61XXrl01cOBAq6MAACLE6XTqxRdflMvl0owZM+SrqtaQnKu1oey4AiFTHVKccti/PqVtGIacdkNOu02tEh2qCYa091iVFm88pMGdUzWkcyvZjNgeraRQAo3g8Xg0YcIEGTH+FwQAxBu73a5nn31WrqRkPfLifF2V2FOXDuir1MT6Vyan3aZOrRJUURXUml3HVBM0NezCtJgulfF55igQhp07d2rDhg3sPwkAMcpms+n2n/1O46/7jpYXefTRB2safAzDMJTmcqhVokPr91boswOVTZA0elAogQYqLCyUzWZTTk6O1VEAABFw0003yTBqz4ccNGiQyiqq9PG+Sl054nKNuHyoCr1elS5f3qhjpybYlWC3ad3uCh05UaNLL7301O81efLkCL8T61AogQaq27OsXbt2VkcBAERIenq6Zs2apYd/9zut21MhXyCkLe+/rU9K5mnb8nn64+3X6sYxA1Wftcwl8+do8oALdO2wHpKktkkOHa8KaN2eCv32t7/VrFmzlJ6e3sTvqHlRKIEGCAQCKioqYrobAGJMSkqKZsyYoSsy87T3WJXaJTlUuvB1LVvwhjp07KRWbdrJ7/dr8eLF5yyVvsrj+ud/PyRXUvKp+wzDUOskp3Yd9Wt0Vp5mzJihlJSU5nhbzYZCCTTA6tWrVV5eTqEEgBi1/Yhf1cGQXE67/uven+qV97boTy8uUP8hlyspKUnvvPOOFi1adNZS+fJT/6PklFSNGj/xtPuTnTb5akLafsTXHG+j2VEogQbweDxq27atRowYYXUUAECEmaapvRVVcjntkqT2F3SSw+k89XhiYqKmTJmi1atXa/78+QqFQqe9fvfnW/Xmc0/p5gcfkt1x+qrwuq2F9h+vbvo3YgEKJdAAXq9XOTk5cjjYcQsAYo2vJqTjVQElnuPyiZdffrmuvvpqrVu3Tm+++eZppfLvv/+ZhlzxDY3IOPOiTZfDpsO+GtUEQ2d8vCXjUxGop0OHDmn16tX63ve+Z3UUAEAT8AVCqgmZSnaee7/IIUOGyO5w6PXXXpPNZtNVV12l1csW64OVS/Xo6yVnfZ3TbshXE5I/QKEE4lZRUZFCoRDnTwJAjDLN2utyqx77jw8cMEAOu0OJiQmqqa7W33//c0385kx179OvHr9P+FmjDYUSqCev16uBAwfqwgsvtDoKAKAJOGyGbIYUCpmS/fzP79evryRpzj/+qmNHDutbdz14zueHTMlm1P4+sYZCCdSDaZryer2aPn261VEAAE2kVaJDiU67qoKmXM7zP1+SKiuO6eW//Y8KbviOTlRW6ERlhSTJd6JSpqSy3TuU6EpSm/YdVBUIKTXRriRn7C1hoVAC9fDJJ59oz549ys/PtzoKAKCJ2G2G2ic7tf2IT61d9atIx4+Vy3eiUq8985hee+axrz1+c+5wjcrO188ee17+QEi92ifJiMFrelMogXrweDxKSkrS2LFjrY4CAGhC3du4tO2wT8GQKXs9pqZbt0vXT//6r6/dP//Ff+jTdWv0wz/9Te06dFQgGJIhqUuaK/KhowCFEqgHr9erjIwMuVyx+RcBAKBWtzYupSU6dKwqoPIdG/VuiVeStHfHNlUeP6bZf/uzJKlnv4G6ImuCXEnJujKn4GvHWVW8SBvXrz312MHKarVNdurC1onN92aaEYUSOI/KykqVlpbqj3/8o9VRAABNLMlpV/8LkvXujmPa+PGHeuGvvz/t8bqvx191va7Iqt+uH1WBkGqCpgZ2TJXTHnvnT0oUSuC8li1bpurqarYLAoAYFgqFdPDgQTkcDg3omKbdR6tk5F6jedNukK0R5zze9/Cjuu/hRxUyTR2srFav9sm6OD1Z5eXlCgQCX7vKTksXmzUZiCCv16vu3burX7/z7y0GAGiZdu7cqQ4dOmjMmDFy2m26ontrtXE5VFZRrVAjN44Mhkztq6hWh9QEjeiWJrvNUGZmpjp06KCdO3dG+B1YyzDPdnVzAJKk/v37KyMjQ0899ZTVUQAATWDDhg3as2ePJCk1NVWjRo2SJO0/Xq3SrUd0+ESN0lOc57wk41f5aoI6dKJGHVMTNLZXO7VPrt2H6N1331VFRe3WQh06dNDQoUMj/G6sQaEEzuHzzz9Xz5499dprr2natGlWxwEANLOj/hq9v+uYth7yyWYz1MblOGex9NcEVe4PyJChPulJuqxrmlolxv4ZhrH/DoEweL1e2e12jR8/3uooAAALtHY5ldGrnbq38emzA5Xaf7xagZApmyEl2G0yjNpLKVYFQgpJSrAZ6trapX4dUnRRW1ejzr9siRihBM5h2rRpOnDggJYvX251FACAxUKmqbKKah06Ua1DlTU64gsoaJpyGIbaJTvULjlB6SlOdUhNiJsiWYcRSuAsampqVFRUpAcfPPe1WQEA8cFmGOqclqjOabG5l2Q4WOUNnMWqVatUUVHBdkEAAJwHhRI4C6/Xq/T0dA0bNszqKAAARDUKJXAWHo9Hubm5stn4YwIAwLnwSQmcwYEDB7R27VqmuwEAqAcKJXAGixcvlmmaysvLszoKAABRj0IJnIHH49HQoUPVuXNnq6MAABD1KJTAV4RCIRUWFjLdDQBAPVEoga9Yv369ysrKlJ+fb3UUAABaBAol8BUej0cpKSn6xje+YXUUAABaBAol8BVer1dZWVlKSEiwOgoAAC0ChRL4koqKCq1YsYLpbgAAGoBCCXxJSUmJampqWJADAEADUCiBL/F6verVq5f69OljdRQAAFoMCiXwJV6vl+luAAAaiEIJnLR582Zt2bKF6W4AABqIQgmc5PV65XA4lJWVZXUUAABaFAolcJLX69WYMWPUqlUrq6MAANCiUCgBSdXV1SouLma6GwCARqBQApJWrFihyspKCiUAAI1AoQRUO93dsWNHDR061OooAAC0OBRKQLWFMi8vTzYbfyQAAGgoPj0R9/bt26d169Yx3Q0AQCNRKBH3CgsLZRiG8vLyrI4CAECLRKFE3PN6vbr88svVoUMHq6MAANAiUSgR10KhkAoLC5nuBgAgDBRKxLW1a9fq4MGDXL8bAIAwUCgR17xer1q1aqVRo0ZZHQUAgBaLQom45vF4NH78eDmdTqujAADQYlEoEbeOHj2qd955h/MnAQAIE4UScau4uFjBYJBCCQBAmCiUiFsej0d9+/ZVz549rY4CAECLRqFEXDJNU16vl9FJAAAigEKJuLRx40Zt376d7YIAAIgACiXiksfjUUJCgjIyMqyOAgBAi0ehRFzyer0aO3asUlJSrI4CAECLR6FE3PH7/Vq6dCnT3QAARAiFEnFn+fLl8vl8LMgBACBCKJSIO16vV126dNGgQYOsjgIAQEygUCLu1G0XZBiG1VEAAIgJFErElV27dunjjz9muhsAgAiiUCKuFBYWyjAM5eTkWB0FAICYQaFEXPF6vRo5cqTat29vdRQAAGIGhRJxIxgMavHixUx3AwAQYRRKxI3Vq1fryJEjFEoAACKMQom44fV61aZNG40cOdLqKAAAxBQKJeKGx+NRTk6OHA6H1VEAAIgpFErEhSNHjui9995juhsAgCZAoURcKCoqUigUolACANAEKJSICx6PRwMGDFC3bt2sjgIAQMyhUCK2mKYUCkmh4KmbGQqdutwiAACIPFYnoOUzzS8KpBmq/do0Tz1cfvSo7rz1FuUXTKotmzb+HQUAQCRRKNFymWZtgQxUnyyQpiSj9mYYp562bdvnurBLFw0e0E+q8Us2u+RIOO05AACg8SiUaJlMs7ZIhgIn77BJxplHHj/Z8IkMu00Ou1OSKQUDtUXUkVBbLgEAQFiY+0PLU1cmgwHVFkn7WUcbawI12r59u/r06VP7HONk8TRDUk1V7TQ5AAAIC4USLcuXy6RhO++09fbt2xUIBNW7d58v7jQM1f7o141yUioBAAgHhRItSyhYO819ljJZVVWlH/3kp+rSo6eSWrfV5KumaV9ZmdLT25/+xLpSaYakYM1pi3gAAEDDUCjRcphmbfmTzjoyedMt39Of//ev+tb06frf/35E1dXV+se/nteKFSu//uS6UllXUgEAQKMYpsnQDFqIYEAKVKn2vMmvF8r3Vq/WFWPG6U+/e1j/5/77VH70qB555BE9/9JsXdi1q1YuW3rm44ZCks2QnC5WfgMA0AiMUKJlMM0vRhHPUvrmvP6G7Ha7br3lZknSli2blZDg1Pe++x29s+pd7dy588zHNowvtiACAAANRqFEyxEKqXafyTP7YN2H6nvxxUpLS5Mkbd68RRdeeKFGj7pSkrTuw/VnfmFdoQxRKAEAaAwKJVqGuivgnKNQ7t23T507dZIkBUNBbd26Vb1791HnzrX37dm79/y/BwAAaDA2NkfLYJrn6pKSJJ/Pp8TEREnS7t27VVVVpT59eqvKX33q8bMyDAolAACNxAglWpZzLJpJSkpSVVWVJKldu/aaPHmSOnfuLH+V/9TjAAAg8iiUaFnOsSlB506dtHffPklSakqKhg8bLpth0969tfd16dy5WSICABBvKJRoGc5yne4vu3ToEG3ctEnHjh077f53V68+9fjZmfX6PQAAwNfxCYqWwTBUexLl2Ucor512tYLBoJ7+xzOn7quqqtI/n3teV4wcoW7dup35haZZe1gbfxwAAGgMFuWgZTAMyWY/5xVtrhg5UtddM00//vkvtP/AAfXp3VvPvfCCPt++Xc889bfzH9+wRzg0AADxgSvloOUIBaUav852pRxJ8vv9+vn/+5VeeGm2jhw5oiGDB+nXv/ylJuTlnv24ZlCyOSRHAlfKAQCgESiUaDlMs/bSi6GgzlUqG3xMhWovu2hjhBIAgMbgpDG0HIYh2RNOLp6JwL+D6i63aHOwIAcAgDDwKYqWxWaT7E5JYV57+1SZtDPVDQBAmCiUaHls9pOlUrXnPzb0rI0vl0knZRIAgHBxDiVaJtOsPZcyWCOFQl9sK3Suclh3vqTEIhwAACKIQomWzQxJgcDJkcq6KfCvlMS6H3FDtVsD2R21o5OUSQAAIoJCidhQN2IZOlksT5VIo3bBjWGrPf/SiNDqcAAAcAqFErHnqz/SFEgAAJoUV8pB7KFAAgDQrFjlDQAAgLBQKAEAABAWCiUAAADCQqEEAABAWCiUAAAACAuFEgAAAGGhUAIAACAsFEoAAACEhUIJAACAsFAoAQAAEBYKJQAAAMJCoQQAAEBYKJQAAAAIC4USAAAAYaFQAgAAICwUSgAAAISFQgkAAICwUCgBAAAQFgolAAAAwkKhBAAAQFgolAAAAAgLhRIAAABhoVACAAAgLBRKAAAAhIVCCQAAgLBQKAEAABAWCiUAAADCQqEEAABAWCiUAAAACAuFEgAAAGGhUAIAACAsFEoAAACEhUIJAACAsFAoAQAAEBYKJQAAAMJCoQQAAEBYKJQAAAAIy/8HjW9rNwANNGwAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_plan_tree(tree)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd5xU1dnA8d+dvjPbey+wS1t6R+lNFFFE7Nhb1Bj1TWKaMdUkJjEmGo3daCxIURAERem9g3TYhV229za9nfePuywsO9sognC+nw/Kzr33zLnDzs6zpzyPIoQQSJIkSZIkSdIZ0lzoDkiSJEmSJEnfbzKglCRJkiRJks6KDCglSZIkSZKksyIDSkmSJEmSJOmsyIBSkiRJkiRJOisyoJQkSZIkSZLOigwoJUmSJEmSpLMiA0pJkiRJkiTprMiAUpIkSZIkSTorMqCUJEmSJEmSzooMKCVJkiRJkqSzIgNKSZIkSZIk6azIgFKSJEmSJEk6KzKglCRJkiRJks6KDCglSZIkSZKksyIDSkmSJEmSJOmsyIBSkiRJkiRJOisyoJQkSZIkSZLOigwoJUmSJEmSpLMiA0pJkiRJkiTprMiAUpIkSZIkSTorMqCUJEmSJEmSzooMKCVJkiRJkqSzIgNKSZIkSZIk6azIgFKSJEmSJEk6KzKglCRJkiRJks6KDCglSZIkSZKksyIDSkmSJEmSJOmsyIBSkiRJkiRJOisyoJQkSZIkSZLOigwoJUmSJEmSpLMiA0pJkiRJkiTprMiAUpIkSZIkSTorMqCUJEmSJEmSzooMKCVJkiRJkqSzIgNKSZIkSZIk6azoLnQHJEmSJEm69Ph8fjxeH4oCBr0ORVEudJek80gGlJIkSZIknTW/30/O8QoOHC3lWGElx0uq8Hh8KIpCaLCJzNRY0pOi6Ns9mcgwy4XurnSOKUIIcaE7IUmSJEnS95MQgp0HCli2fh+H8sqwOz2YDDosZiN6rQYBOF0erHYXfr8gJjKE4X0zuGpkNtERwRe6+9I5IgNKSZIkSZLOSF2Dg8++2cWqrYfw+fwkxoYRYjG1er7P56eipoHyKivpSVHcMHEAw/tlyOnwS4AMKCVJkiRJ6rTKGitvzl3LzgMFpMSHE9GJaWyfz09ecRVCwMzJA5k6po8MKr/nZEApSZIkSVKnNNic/Pujlew8UED39DiMhjPbklFaWU+91cmsacOYfGWvc9xL6bskN+VIkiRJktRhQgiuvX4ma5Z/AUBsQiqPP/tqp9rYsHwhS+e92fS1RvyHrLRYMpKjz2lfpe+ODCglSZIkSeqw/bklFFfUEWQO4ZqbHyLIfHKq2+/3s23dl2xdu5TqihL0BhOJKV0Ze82tpHbt2XReVvZAzME/Zv+uDRzYtZGGBgeffLmNH989Cb1eeyFuSzpLMrG5JEmSJEkdIoRgxeZD+Hw+jKYg+g8bR/c+Q5uOf/XpOyz6+FXiEtOZcuMDXDlxOpXlRbz9j59TmHeo6byY+BT6DxtHfFI6ACmJkew7Usy+3OLv+pakc0QGlJIkSZIkdUhhWS17DhcSZDS0OObz+di6ZinZA69k5r0/ZsioKYyaPJN7n/gjfr+P3VtWtdpukEmPz+9n486j57H30vkkA0pJkiRJkjokJ7+cBpsLg6HltLTf58XjcREcEt7scUtIOIqiQa83ttl2dEQw+3KLsdpd57LL0ndErqGUJEmSJKlDCstq0Cig0DLFj95gJDm9Ozs3LSelSw/SMrNx2m2sWjqbIHMwg0dOabPtEIuJotJaSivqyEyLPV+3IJ0nMqCUJEmSJKlD8ourCTK1nO4+Yea9P2bOW88z790Xmh6LiI7ngZ/8lciY+DbbNhl0uDweymsaZED5PSSnvCVJkiRJ6hCn24NW23roYDQFEZOYyrAxU7n+zv8jq/94/D4fH73+R2zWujbbVhQFRVHwen3nutvSd0AGlJIkSZIkdYhOq0H4A9dD8fl8vPuvZzAFWZg84wG278mhyq7hlod+RU1FKeu+/rTd9oUAjSJDk+8j+a8mSZIkSVKHJMSEYXe6Ax7LP7KX8uJ8uvcZyqeffkpVVRW33XYbKemZRMcnczz3QJtte7w+tBqF8NCg89F16TyTayglSZIkSeqQ1IRIfK2MUFobagHYuWMHh3KLufXWW4mPjwPA7/Ph97U9lW21OQk2G4mPDjunfZa+G3KEUpIkSZKkDklNiMSg1+L1+Vsci4pNAmDv9rVMnjyZ7t27AVB8PIfKsiISUrq02XZlrY2k+Aiiwi1tniddnOQIpSRJkiRJHdI9PY4uKTGsDzDt7RE6FGMowlnFsd3L0XqqaairYfOqRegNBkaMv77Vdn0+Py63l9GDslCUlimJpIufDCglSZIkSeoQnU7L2CHdeO9VP0KcnPquqqrmkzlz6NJvEqkxRvbuWEfO/h1odTrSMnsxYdqdxMQnt9puYVktKQnxDOiZ8l3chnQeyIBSkiRJkqQOu6J/V6LCgyk77sXaUIvH4+Wjj2djMVu45dbbCAoyMf7a29tsw+Nx43Y58LjVqjger4/pEwcQGiw35HxfyYBSkiRJkqQO0+u1pCVGsW19Dc8/PQt9UCjG+P48+MADBAWZOtTG1jVLWTrvzaavR/Trwoh+Geery9J3QBGnjllLkiRJkiS1Y//+/azbvJu/vPwhBaVVzJp1B127dDwgrKuuIO9YLhXVVnplJvCnXz1KeGjweeyxdL7JEUpJkiRJuowJIXDU1VFbXEpDWTletxtFUQgKCyUsIZ6whHi0en2za3r16sWSJUvI27+B6+78P+xeA+XVDcREBLe7qcbl9lJhFZiju3D3Nd24ZcoQzEGtl3OUvh/kCKUkSZIkXYZ8Hg+F3+4lZ91GivcewNlgxe/1qgcVQIDBHERwTDRZo68kY+ggwhLUetwLFy7khhtu4Oc//zk//+WvWbzqW9Zsz6GmzkaIxURosAlLkBG9ToMQ4HB5sNpd1NY7EEKQlhTJDRMHMDg7Te7qvkTIgFKSJEmSLjOVx/LYOnsehbv3Inx+gmOjCQoLRWc4OVIo/H5cdju2qmqctfUEx0TTd9rVuGMjGTN+PFOmTGHu3LloNGpK65KKOrbty2frnjwqahqw2V14fX4UFExGHSEWE11SYhjerwt9uyVhMupb6570PSQDSkmSJEm6TAghOLRiNds+mY+tuoboLhkYzO3vrBZCUFdcQlVxKZ+tW40rPYkVGzdgNpsDnlvb4KC8qh6X24tGoxBiMREfHYrRIIPIS5VcQylJkiRJlwEhBPuXLWfT+x+jMxpIyO7Z4elmRVGwxMYwb9HnhLt93Dx+Cn67AwIElIqiEBFqJiK05THp0iVLL0qSJEnSZaBg17ds/WguBrOZyNSUTq1dFELw2aefUV5VzTW330p9fgHr334fn8dzHnssfZ/IEUpJkiRJusQ56urYNns+XpebqIy0FsePFBWyfPcO9uQdo7y2hpAgM92TU5g1fhJJUdGsWLGCgwcPcsstt5CYkow7Koq8rds5uHwV2VMmXYA7ki42MqCUJEmSpEvcwRVrKD+SQ3zP7gGPz1+/hgMF+VzZqw/pcXHUWK18sWUTT73+CvePHMumdeuYNGkS3Xuo1xvMQZjCQtn9+RLShgwkOCrqu7wd6SIkN+VIkiRJ0iXMbbez4Je/w1HfQGRq4HraBwryyUxMQq89Oc5UXFXJD199iTA/zBgwhGnTpqnphBr5/X5K9h5g1MP3kn3VxPN9G9JFTq6hlCRJkqRLWNGefdQWlRCWENfqOT1T0poFkwAmRYNRCHwGHddMvaZZMAmg0WgwWMwcWbMev99/ProufY/IgFKSJEmSLmE1hcX4/f4W1W7a4nQ4+ejDD/ECqYlJaLXagOdZIiOoLy3HVlV9jnorfV/JgFKSJEmSLnZCgN8HPg94XOBxNv5xgdcDPq96TgAVOUfRm4wdfiq/z8+cOXPIa6jFJfyM6duv1XONIcE4G6zUlZR2+pakS4vclCNJkiRJFyshwO89GTA2BY0n5p/Fyb8qGlC0oNOpf29krapG19GAUsDX33zNofw8juv89EhOZXy/ga2ertXpEH4/zgZrp29NurTIgFKSJEmSLkZ+H3jdIPwgFFAU0LQysXgi2PR7QPhAqweNFhQF4fd1OOfktm3b2LpzB4VBOoJ1On52821oW3vO059fuqzJKW9JkiRJupgIoY5IelxqMIlGDSTbCgoVpXGEUgN+oQaiXjcIgTE4uEMJyI/nH2fRkiUc1Qq8ws9vZ91DVEho211t3IyjMxraPE+69MmAUpIkSZIuJn4feF3q3xVt24Hk6ZpGMRV1qtzrJqZrBm6bo/VrBNTX1TN33jwKjBoaPG5+fdtdpMbEtvt0Lpsdg8VMaHzrO8ily4MMKCVJkiTpYuH3qyOLKM3WQXaaogAa8PtI7NkNIUTTaCIAovG5fD78XjfH849SFmygxuPiZzfeTI+kpMZp9LafxlFXT1BYKGEyoLzsyYBSkiRJki4GQoDPjRrFtRyV3Ld/PzfddjtduvfEHB5JdGIyoydMZNHiLwK3pyggIC4znaiUJKxV1Y2BpE8dvfT7QPgpLCxg4Y7tHCwtYVDXTBrsdlbu3snKXdtZuXs7K3ftCBhYCiGwV9fQZfiQTqUkki5NclOOJEmSJF0M/D511JDA6yXz84/T0GDl7jtnkZiQgN1uZ/6CBVx340xef+XfPPTA/S3bVBSMJhO9Jo9j7ZvvERwRdkqoqlBUXMTRo3nUuJ0AbDlymC1HDrdoZlyffi3WcTpq6zAGW8gYNvjs71363pOlFyVJkiTpQhONG2n8XnXdZAf5fD4GDb8Cp9PJwT27W2nbj72ujoW//hNej5fwxARQoLa2lt27d5OcnEzXrl3b6FvjfxSlaee43+ejeO8Bsq+awKiH7+vwLnLp0iWnvCXpMieEoLrOxoHcEnYdLGD3oUKOFlTgcLovdNck6TLSmLg8wFR3W7RaLSnJydTW1bXRtMAcbGHQjddhr6nDZbPhdDrZt28f4eERdOnSpe0nURr/05hcXfj9VOQcJTojjYE3TZfBpATIKW9JumyVVNSxbV8+W749RmWNFavdhdenfqCZDDqCLSbSk6IY0b8L/bunYA6SaUEk6bw5kUeyAxtxbDYbDoeDurp6Pl+8mKVffcUtN81sreHG1EPQZcQQivYf4sDKNRQ31KPT6ejVq1fHAkIFEIoaTB49hjHYwoi7byc4Kqrj9yhd0uSUtyR9x7xeH5W1NpwuN4qiYAkyEhlmRtOR5MHnQIPNyeJV37J62xFq6myEWEyEBpsINhvR67QIAU63B6vNRU2DHZ/PT0p8BNeN78+IfhnfWT8l6bJyIu+kpv3p7h889jivv/UWABqNhhnTr+eNV18hIiLitDPFKesyAUWDy+Xi1ad+zvHN2+nRrw/hKUks2LSBQ0VFHCkuwup08MS06UzoN6DF87odDipz8wiJjebK++8mbahcOymdJEcoJek7YHe42X2okJ0HjnO0oJJ6qwOPzweAQa8jMsxC9/Q4BvZKpVfXBHS6jq+h6ozDeWX8b9EmDh8rIy46lN5ZiS1GJxQFzCYDZpOB2KgQPB4fBaXVvPbJavYdKea2qUMIsZjOS/8k6fLV8bGdJx//IZMnT6CiopJFi5fg8/lwuwMsURE0jnoqTc1v372b2rgIJj76IDW79pKz81tmr11NTGgYGXFx7MnPa9GMy2ajtrgUv8dL2qD+DL7peqIz0k62LUnIEUpJOq+8Xh9rt+ewdO1eCstq0CgKIcEmQhpHAwFcbi8NdhcNNidajYauqbFcP74f/Xskn9O1SftzS3h9zhoqq61kpsU0PX9H1Vsd5BVVM7RPOg/dPIrQ4KBz1jdJuuz5POBxd2iEEuDj2bPx+bzMumMWk6+5ltq6WjavW9v8Z4bfp/5pDCgrq6t55bXXGTnySiaMn0D18UL2LF/N3rXr0dmd5NdU8edVy7hv+Ciu7JKJ1+lC+P3ojEZiM7vQbfQVdL1iKDq9HhCgN3a4v9KlT45QStJ5Ul7dwMdfbGHLt3kEmfRkpsZg0Ld8ywWZDISHmgGwO90cLSjnpQ+WM35YD26cNPCcrF0sLKvhrXlrqamz06NL3BkFqqHBQXRLj2Xr3jyMRj2P3DL6vI2kStLlR2lcp9ixUb/KygqysroBMHPGDTz82A85fPgI3bt3azzjxNpJBVBwe1xs2rKZzMyujBs3DoDI1GTG3HsHg6+/hrLDOWxYtx5WLSM0LoaE7lmExMYQmZJERHIScd26otGe8n4XalJ0GVBKJ8iAUpLOg5KKOl6bvZoDx0rpkhxNsNnYoevMJgPd0uOorrOxeNUequtsPDBzJJagjl0fiNfrY8bMW9i67msAYhNSefzZVzvVxoblC1k6782TbT76In2yEhk7tPsZ90uSpFN04pc8r89LdXUNMTHRADgcalnFuvoAO70V8Pl9FBQW4HZ7mDHjRjSnbfyxREbQZfgQqvXq4/2uncLVd93ZeFSc3DDk9568SAjAC35tYw1xOfV9uZMBpSSdY/VWB2/MXcvBY2X06hJ/RqN4kWEWTEY9G3bmYtDpeOjmUWi1Z7YZZtPuY1TW2AiyhHLNTQ8SZLYEPM9ht/Kv3zyMzVrHLQ/+nN4DRzYdy8oeiDn4x+zftYEDuzZiDtKzcMVu+nRLIio8+Iz6JUnSKRSN+kcErpIDUF5eTmxsLNXV1QghiI6OwePx8P6HHxEUFESvnj1PniwEIBAoHDmSg9frYcyYsQSZOrr+WaibeYRf/XvT4rgTffODrzHQ1GhAqwONTgaWlzG5XVOSzsI999yDoigoikLv3r0RQrBo5bfszymmR0bcWU0Jm00G0pOiWLczh3U7cujfv3/Tc1177bUdasPn87N622EUBYxGE/2HjaN7n6EBz12x6EM8HlfAYzHxKfQfNo74pHQAEmPDKS6vY8f+42d0b5IknUZR1ITmJ0YDA3j4sR8y4aqr+d0fn2PHrt2889/36DtoCDt27uSPv/0NwcGn/XInoKCgELfbRVxcHFGRkQHb9Xg9LFm6hILCwsbr/Oquc7/vROdOBryKcrJOuKJOp+MX6vpPj7OxnKPcmnE5kiOUknSWoqOjefHFFwkPD2d/bgkrNh/EU5vP4tnzKDx2iIrSQsIiovnxc++029buLSuZ9+4LGIwmfv3PeYRYTAQZ9SxYvouf/fLX+NwOnnrqqQ73Lbeggpz8cswmA9VtnFdWlMeWNUsYO/VWViz6sN12NRoFi9nA2u05jB/W44xHTyVJOoVW1zitHHiU8pabZvL2u+/x8SdzqaurY93GTQwaMIDnn/sj101r+Utmg9VKYWEBmV27EhMTF3D0sKy8jPnz51NdXUOXLo3VcoT/lLWc7Yw4nggwReOaTY9LvQ+tXo5WXmZkQClJZ8lisTBr1iwA3pizFofLQ96BzezZvpbElK6EhAceFTidy+ngq0/fxWBsPiWVmhDBvpxSIq68gimjsnnmmWc63LfjJdU43Z52d3QvmfsGPfuPID0zu8NtR4dbKK2oo7y6gYSYsA5fJ0lSKxRFnTb2eWgqdXiKW2++mVtvvpl58+fR0GDl3nvuabWp6tpaCvPzSEtLJSY2tkVbAsGWLVv4+uuviYqK4qGHHuJ4Xt6JjnQowXqzYFNRAO3J0U1FUYNK6bIhhxUk6Rwpraxnx4HjxEaGMPH6u3jmxTk8+NO/EZ+U0aHrVy/9BKPJTI9+w5s9rtFoCLEYWbv9CB6Pr5WrAysorW6xAP90e7ev4/jRg1w1495OtW0JMmJ1uCitrO/UdZIktUJRQKdX1yTib3XquKKismlDTiAut4vZs2djMZuJj09AOW1to9Vm46OPPmLp0i8ZPHgwDz7wILHRUSA68fNFESf73Ozxxp83Xs8pU+bS5UAGlJJ0jhwrrKSu3k5UuIXQ8Ci02o5PAFSVF7FhxQKunnk/2gBpOKIjgimtrKO4oo16vQGUVtZjMrbeD4/bxZefvs0V468nIiquU21rtRoQUFtv79R1kiS1QVFAZ2wMzE4GlX4h8Pp8eH0+qqoqiY6OCXi5EIIFCxYQHRlJQmISWq22WdB3JOcI//nPfyguLuGOO+5gylVT1LXe7QR/LpeLnz3zaxK7ZBEUGcOw0eP5esXK1m4CEGpQKddTXjbklLcknSOllXXqyqczWDe0ZO6bZHTrS7feQ9i7fV2L45YgA/lODyUVtZ1q1+v1t9mfNV/Nw+/zMXrKzQBs3LipU+0LwN9YJ1iSpHNEo8Gr6KisqsHn8VBRY6W0yooQApfbhd8Uh81roKCshvio0GZLWjZt3oheq6X/wIGYQ8PU6fPGYPTrb75h8+bNZGVlcv310wm2qBkf/v3qq9TW1FJcUgLAoiVLKSwqBuDxRx4mLCyMex76AfM+W8CTP3yUrK5d+e8HH3LN9BmsXPYlI6+8snn/FQWERh3x9PvUNZXSJU/+K0vSOVJSUYdB3/ld3Yf2bCVn/04ee+blVs85ERRW19k61bbJqMPnDxzw1VSVsf7rT7n21h9gNKlVb44f7+yubdHpijuSJLXO5/OzcddRvtl0gMLSanp3iWNg9wTiI4NxuD2UlltRtEYq6tzUfnuMEIuJjORo0hMjqCgrIzcnl+jYOLp064G6A9tPXW0NH82eTVVVFVdffTVDhw5BaVr/KPj7iy+Rf8p7/9OFn/Ppws8BmHXbLRw6fITZc+fxtz/9kZ888SNQ4K47bqf34GE8/ctfsWH1qpY3cqLco9+rJj+XG3QueTKglKRzxOP1odF0/Idmbm4ue/bsIW/nEoaMvprYhNS2L1DA5+vc9FFqQmSrqX2WL/qAkPBIMrr1oaaqDACvxwmAvaGemqoywiJi0GgCr4xxe7zotFpiIkI61SdJkgIrraxn7lfb2bT7KHqdlsTYMKwuH7tyK0iMCiYlNpSQID29uyXRvVsywu/H5fFSWlFLWXkVH3/4X/RaP/948Z+gaBBC8OHsOfhcdiIjIpgx40biYmObP6kQ5B3cw4mKOoG8+sabaLVaHrrv3sZTFExmC/ffew+//PWzFBQUkJKSEuBKTWMuS1nz+3IgA0pJOkcMeh0+f8cDPq/Xy871X6Lz1DD+2jvav0CATte5Zc9JsRGAggiwjqmuuoLqihL+8esHWhxbNFutpPPLF2YTZA6cuLze6iTEYiIhVu7wlqSzlV9cxWufrCG3oKJFda16m4t6m4sjhdWsX7sKveJn5o1hKCh4fH7KKmt5+a3ZuFwOPnn9D2i0WioqKrjvvvtYvHgxb/znVe64cQa61nZdt55LHYCdu7+lW1YmoSGNvzxq1ByUQwcPBmDX7m9bCSgbGxd+5JaNS58MKKXLhsPpprSynqo6Gz6fH51WQ3REMPHRoRgNZ5/eIjE2HI+347saU1OSEfZStBHJ2K0NuJzq5haXy4EQgpqqMvR6I8Gh4fgbA9XOVqXJSo8lPCQIl8fb4tjE6+7EZm2+Q3vOR+/hayhk5OQbScno0SKF0akqa6wM7ZtBWHBQp/okSVJzJRV1vPbJGvKKqsjumtBqXlefX7D3QA5RUVEcK1E36Pn9go8/nk11RQHXTLuJT77axcED+/jdL36Ez+dj0aJFXDt1Knjd6vSzaByJPDFiKETTqGOr/SspJSEuXv1C0Tbt5E5IUB87sfayBUUBP3JjzmVCBpTSJc3t8bIvp4QNu3I5dLSUBrsTp8sLQiAUtRpNsNlIdmYiI/p1oVfXhDOubpMQE4YGBb/f3+o08amcDivC78VRlce/fvtQi+P/eOZ+evQbzh0/eAabw4UlyNDpfI9xUaEMyk7jyzmeFsfSTss5KQSIOfMASErLolf/Ea2263J5EcAVA7qe0SYkSZJUXq+P6TNuZsu6ZQDEJqTy+LOvBjxXCKiorKBHj+5Nj61atZLD367DX3+ceS+vBUAbN4QxfQfy4fvvEB/fGAjqDOBT1ByR+NVNM0rjbuzWRiiFQCCwOxwoGoWNW7eQl1/AbbfeCoCp8RfOE7XEA1LglLqN0iVMBpTSJetAbglzl+3gcF4ZQggiw8wkRIcRZNKjKOo0sN3ppsHmYvXWw6zbnkOvzARuvmowXVMDp+RoS5fkaMJDzVTW2oiNbH9doSUkjNse/hU7duzk2LGjTJ06FZPJxKaViyg4dpCb7vspIWFqUvTy6gbSEqNIiA7tdL/GDMnir3ptq5tzTvC3c/xU+UVVDOzXnT5ZiZ3ujyRJJ63fmUtFjZUgSyjX3PQgQWZL0zGfz8vqpXPYtWk59XVVBIdG4nTriYy8DoD9+/ezdu1aRoyegsUoWPPNIpx1pWT3G8ash289GUxCYzoig7pB5tQckY01v08Ej06XG5vNhsvpwOv1Uldfj8/nIz8/n23bd5KYmIjX50Wn1eF0qWuug4Lam6WQv3ReDmRAKV1yvF4fi1d9y5I1e7E53KQnRxFkbDmlrSgKliAjliAj8dGh2B1u9hwuIr+oiuvG92PKyOwOjTSeEB0RzNA+6Xy1bh8+WwWH9mwBoLqiBKfDxqolswGIT86gR99hGAwmevUfQUb3Abz88ssUlDVw/fXjOLh7E0X5h5tGCH0+Pw6nh1GDMs9o9DQrLY6k2HCKjvqoqqrCHGQMuC7S5/OhMYYy89G/0LtP72bHPB43bpcDj1ut9R0cbOLmKYPOyVIBSbpcuT1evt54AK1GwWg00X/YuGbH5737Avt2rGPgiEkkpmVy4Ntt1O3bwp6NXxAVFc2CBQvp1SubqNhEli37Cq1BfV8PH9KXTd8eY/LIbJJiw5s/qUYLeg3C76OmqhKX3YrJYKCuvg6n04nX48Xt8eD3CzxeL3qDgZSUZKqqqnn8hz9s1lRJSSkAiQkJrd9kO+szpUuHDCilS4rP5+eTpdv4Ys0eosItpCREdHhK1hxkoGeXeEoq6vho8VYcTjc3TBzQqaDyyoFd2bAzl8P7drB80QfNjp34esDwCfToO6zp8aAgE+PGjWPJki8Y3LjI/VR5RVWkJkQyKDutw/04XVJcBPaGGv75zN3ExKfwo9/8p8U5Pp+6zlKrbRm0bl2zlKXz3mz6+upRvclK61widEmSmtuXU0JeURVmk6HFscK8w+zdvpax19zKhGlqaVdM0RzLL2Dv9jUUVrkJD4/E4/E0/uwYgsFbxZovc4gIM3OsxM62vXkkje8PQFlZGVu3bmXbtm1N/y8vL2fkiOH85lc/x+3xEhcXR3RMNNHRsViCgprWWY4YNowXX3qZ+vp6QkNPzpJs3roVgP79+ga+wRNrJztUxlH6vpMBpXRJ+Wr9Pr5Ys5eE6FAiwiztX3AaRVFIjA3HoLeyYPluIsOCGTese5vX+P1+Kisr0el0ZKXFcdXIXsy1OXnmX591eARv0KCBbNu2jS+//JL77nuKGXc/BUBtgx2/X3DDxAHgc1NZae/U1PQJv/zFz5l5080sWbOXo0W1VNZYiY5oPkrp86lTYIECyh79huPThyEEjBzYlRsmD+10HyTpfPH5/FTX2fD6/Gi1GsJDgjDoL/6Pt8N5pXi9voCbcPJz9gHQZ/DopscqKioJj+tCVW4J1qoC/IoRq9XKLbfcSo8e3Vmx+EMAnA4XDXVVvPzmbN596Xds376NwsJCAKKjoxkyZAgPP/wwgwcPZuiQIcRHhtFso85pZs64gb+/+E/eeOttfvJ/6s8ml8vFu++9z7ChQ9re4a203q50abn433GS1EHHCit56onHOLxLXZje1uL21mxYvrDZSJxJ+zrdMuJaThudoqCggJiYGLKzs9m7dy9Xj+pDzvEKduwvoFt6LEZD+28zjUbDlClX8f7777N37x769OlDg81JYWktU0ZmM6xvOgMHDmT37t0A9O3byohAK3r16kWvXr2YOHESi1bu5puNB6motpIYG0ZosAlFUQIGlD6fn4qaBsqrvfQdMIwbJg1gRL8uciOOdMHVNTjYeeA4+3NLOFpQSYPdid+vVoYymwykJUbRo0s8A3ulEhfV+bXH34Wc4xVYglqOTgJ4vepGOr3+5PHKykpE4/yxz1lPXFwc11xzDVZrA+vXb2Dfvv0A/PuVl1H0IRiMQQxJE9xxxx0MGTKEwYMHk5qa2vz9K8TJHeAEXlIzbOhQbrpxBr/49bOUV1SQ2bUr733wAXn5+bz9+mtt3KEAjU6OUF4mZEApXRKEEHz6zU7cHi/m4FCuntn24vbQsCgGXjGJUVfd1CyAysoeiDn4x+zftYEDuzZSUWvl8+W7+cGtowMGUU8//TSzZqnTUcHB6oifOcjAAzNH8sactew6WEBKQgThIeZ27yEjI4MePXqy7OtvCI9Oot7mZPywHtw2dQgajYbXX3+dhoYGAGJiOr9pCCDYbOTWa4bQOyuJZRv2cyC3hILSGvR6LX6vC3RBNDg85BdXYXN4EH4/0ZEhXD+uH5Ov7EVMBzYbSdL5ZHO4WLZ+P6u2HKK8qgGtTkOIxUSIxYhWoybztjnc7DpYwKbdR/l8xW6G9k1n2th+LUblLySny0NZZT2WIGPA49FxyQDk5x4gIlrdXFNUXISrVh1p1GoE9fX1vPLKK4BArzdg9LkBuHbqNBJTM7A54dePTCUzLTbgcwDq6KGmsZZ3GwnI33/nbX7929/xv48+pqamhr59erP4s08ZPWpk4HZPTHfLsouXDfkvLV0SjhZUsj+nGIvJgMHQ/uL2wmOHWL7oA+pqKrj+jsebzouJTyEmPoXqimIO7NpIQnQouw4VUFReS3JcRIvnPTHyd7qo8GAeuW0M877awZptR6iotpIUFx5wrdQJQghGjBzN+x/OZ8eOnfzqiTu5Zkyfpqm7YcOGtXptZyiKQp9uSfTOSuRYYSUHjpaSV1TF9j2HAdBptcTHhJGZEkt6UhR9uycTEdp+QCxJ59vhvDJmL9nK/twSIsPM9OgSH3C6OLQxN6rfL6iqs7J07T4O5JZy4+SBDO2TflGMsHu8Prw+f6szGN16DyY8MpavPn0bvcGIy6fB01COv6EIUED46dKlCyNHjiQxMZHo6GhWLfmIlcUH6NmrB0ZTMDkFlbg7khtXo1X/+LyAJmBQaTKZ+Ntf/szf/vLn9tsTjcnMtXJ08nIiA0rpkrBtXz5Whxt9gFragRa3Dx19DebgUDYsX8CwMdcSn5wRsN2wkCCOldrYub8gYEDZlvAQM/fNuII+3ZJYunYvuccr8Hh9BJuNBJuNGPRahACX24vV7sTm8BBsNjBqaE/WLf2Q/i//6LyuA1MUhYykKDKiTNA7msPJHo4uLOSZG3qSPXAwiiUURSd3cUsXh92HCnlr3jqqa210S4/t0HtDo1GIiQghMtRCXlEVb8xZQ73VwcQRPS94UKnRKGg0gatYgTrVPeux3/DJW88z+40/AaAoGoaPn8GeLV8TEhbJNddc3Wr7fqFOjms7Ug5WUUCrV4NAcWqOyjMgBOBXq+no9HL95GVEBpTS954QggNHSwgxG1EC5KcItLj9xNfrv/mMPdvXthpQKopCkNHAobwypp1B3zQaDcP6ZjCoVyr7c0vYe6SIw/nlVFQ3YHd6UBS1ZGNWehzd0+Po1z2F2IgZdO/+MU8//TRz5sxRP3CstWBvQNgbwKOm7kFnQDEHQ1AIhESgdGI3unDaoLIYUZqv/t3rJrK6hkfGDyGprgCx247QG1CiElBikiEsulPtS9K5lJNfztvz1lFvddCjS1yng0GtVkPX1BiKymv5+IutWMxGrujf9Tz1tmPMJgMhFhPVtdZWz4lLTGPwxDtZtmQhmV0zmD7zVoxGE5tXfEp6Vp8223c4PQSZ9IR1YLkN0BgAGtT1lGcaVJ4IJpXGtuTo5GVFBpTS91691Ul5VQMhlsBrkQItbgfQG9Tzi4/ntNl+sNlIQUk1LrfnjPMu6nRa+nZPpm/3ZIQQWO0uHC4PCmAJMmI+bWH+888/z/333svOrz6nX0IEoq5KTUYMJ39IC79af0KrQwmJgLhUiElG0bcxre7zQclR/AWHwWlTf+gbg8ASiq3eyf6icsZZwsEcAh4XojgXUZqHEpUIGdkoZrmGUjq/7rnnHt577z0AsrOz2bptBx8v3UplrZWeXeLPamQxKTacY4WVzPtqB11TYrhqwuimjW5Tp05l8eLF5+QeOkJRFDJTY1hRUh3wuBCwfPk3rF+/npFjJzJhwkQUBQ7v3YoQfrr26N9m+1a7k/AQMzGdWTeq0Z4MKv2N9bc78nqfkhy9KTDVnFnFMen7SwaU0vdendWBy+0hLCRw3elAi9sdDidHD+0BoL62qs32g4x66qxO6q1OYiLPfgpYUZTGTQSt18m+/bqp1D94C2WrFyMmX6UGeMGGFh+mQgjwehANNYjaCpSyfEjPRolouQhfOO2IIzsRVcWgN0F4bLP2mnZ563TqVLdOD0HBCI8LUX4cGmqgSx+U2OSzfg0kqS3R0dG8+OKLhIeH882mg+w7UozGUcSCD+ZQeOwQFaWFhEVE8+Pn3mm3rd1bVjLv3RcwGE38+p/zSEuMZF9uCZ9+vZPnnnuOmpoannrqqe/grlrqmhLDNxsO4D9t2tvv97No0WJ27drJ5MlXMWLEcAA8bhfLP/+AkLBI+g4ZHajJJrUNTob2zWi1LnirNFrQGxur6XgbqyY21v+G5jXA1b+c3Myj1TWOTMpp7suRDCil7z0hROPPs8A/xE5f3J6Umsncj9+j4OAGNBotXo+7zfYVjQJC4PN/N/VoRXkh5Ozi5omjeeuT+UR1zWfQoEGB+6YooDeAPhLh8yHqqhD7NqJJz4akk3W2hdOOOLAFUVMOoZEB10b6vIETmyt6IyI8FmGtRRzejkb4UeJSz/FdS9JJFouFWbNmYXO4ePalzwkPCWLLhnXs2b6WxJSuhIRHdqgdl9PBV5++i8F48pc3jUZDcmw4O/Yf55ofTCUtMZJnnnnmfN1Km/r3TCEmMoSdLk/TYx6Ph3nz5pOTc4R4i4Oagm/Z6q3F5bSzY8PX1FSWMuux32A0tT6VbXe4Mei1DO0TeClPu05MWQudulHH7wMa89+eSIOrnHKuRgdarfp3GUxetuQCB+l7T6/TotUqeH2BE36fWNweZAll9ht/4oVn7qPo4HpC47rhR8Ht8bWZLNzXmHi4I/kkz5YoL8R/eAf4vER26U73XtmsWLECp9PZ7rWKVosSHgMaLeLot4iiHDXY9vnUkcmacgiPbnWjTVuJzRVFUafVAX/ObkRtxVncpSR1zK6DhZRU1BEXHcrE6+/imRfn8OBP/0Z8UscCpdVLP8FoMtOj3/Bmj4eHmqm3Oti299j56HaHhYeYuWJAV1xuLwJ15uR///uAo8eOcuutt9Gr72COHNjBkrlvsObLOUTFJvLQ0y+0O91dWFpL94w4emTEt3lem06kE9IbwRCkzmrojI2/wBoa/25q/NM4xS2DycuaHKGUvvdiIkIINpuw2V2tnhOXmMbjv36F8pLjOO1WYhJS0Wi0PPd/t2Bzenn77Xe44YbpREdHt7jW6nATGWYhLLj1KepzQdjqELnfgvA3BW8TJkxg//79rF69mquuuqpD7SjmEHXzTt5+FEsY2OrUae7QSJQA65pcbje/+c+7/HfBEmrqG1hyuJg/Pv4gk4a3LAOJJQzqKhHH9kGfK+UucOm8OpJXBoqCXqdFHx7VqWuryovYsGIBtz/8K/ZuX9fsmKIohAab+PZwMTMmDTyXXe60KaOyec5ioszt4e23XsdqtXH3XXeTnJxEVlYmoybPbLcNj8eN2+XA41Z/BlrMRmZOHtT56e7WKAoock2k1DYZUErfe3q9lvSkKLbty2/zPEVRiEs8WQ/78N6tgGDkuKs5dLyK119/nQkTJrTI99hgczKkd3qnanp3lvD7EMf2qTuuw08mLQ8JCWH06NGsXLmSHj178u4Xy9m8dz9b9x6kpr6Bt3/3M+65rmXqEMUcgqirxH9kp7orXG9qNfi799m/MH/5am6fNIaqkiKqfFquffxnLH/jRUYOaF6RR1EUREiEul6zNB+SM8/tCyFdcEII8ourKCipoai8lorqBrw+P2aTgaS4cBJiwshKi23K9Xg++5FzvJxgc+ubzNqyZO6bZHTrS7feQ1oElADBZhMV1Q3UWR1n29WzEh5iJibMyF5rDY79XxMZm0RyclKn2ti6ZmmzCl8Th3enW3rcue6qJLVJBpTSJaFf92Q27TraYnF7a05d3D5m8vWM0+r55pvlfPXVVxw8eIjYYHU9ocfjAxSyMxPPY++B6jKoKoGQ8BZrQYcPH86OHTv4dNEX/OGtT0iNj6Nft66s2rar7TaDI6CsMchOCDxFuGXvAT75agV/feoHTOjbnYULP+fpp39Gv1vu4+f/fJ11773S4hpFq0Po9IjSPEjIQAkwRS59//h8frbty2fd9hwOHC3BZneDAga9FkVR8Pp8eL1+NBqF2MgQRvTvyshBmW2WJT0bNoebmnpHm8UAWnNoz1Zy9u/ksWdebvUcS5CBmjo7VTW2s+nmWdu6dSs7t20iLrUXPQZPJCQ0FL9foOlI/shGvfqPwBAcTZ1V/eX3pmuuOI89lqTAZEApXRIG9EwlNiqEHU5PwOOz3/wLoWGRxCSktrq4/eqrp9CjR3cWLFxI/oFDAJRW1pOcEE+/7p3b2SyEALezMacboNOB0Rxw45AQAlFegBACRdfyw1On0zF58mQ+/Ohj1r7+N64YOoRt+w4ybNYP2u6ERqP2oY11TfO/WY1Wq+HBGdM4cuiAmnczyMR910/lV/9+k4LSclLiA5RtM4eouTHrKiDyLNZpSReF0sp65i3bzubd6prC+OhQ0hIjA36/en0+yqutzP96B+t25HD9+H6MGdwtYFGBs+H1qWubtR0s3edwONmyZQt9emezdN6bDBl9NbEJrW8e02gU/MKP19eBSjLnybJly5gxYwZ9+/Zl0aJFHCqoZe6X29mXU0JqQgShwaZ20yQ5nG5Kav3EpvTk7tG9mTa2Lzqd/CVP+u7JgFK6JISFBDF+WA8+/9CLoOUoZVJaJjs2fsPWdV+i1xtIy8zmpvt+SkJKl2bnZWRk8MgPHuGdfz9HSX0Bq1av44Xf/bBFnshAhN8PdRWIqhKoq0I47Y27IwGNBsUQhAiNRImMh8g4lBMflE4boqYMglrPF9e9e3eyMruyffMmhg3q4Jovb+Pudb8PXA4IsCt058EjdEtNITTYgs/na9qQM6R3DwB2HcoJGFAqWh3C70ex1cuA8nvu4NFS3pq3joKyGjKSogg2B87neoJOqyUxJoyE6FAKy2p559P15Bwv567rRnTofdJRWo1GDfra2DB3qtraWlatWom1PAe7tZ7x197R5vl+v0BRFHQXaIT9448/5u6772bSpEnMnTsXs9nMFVFRdEmOYf6yHezYf5zjJTVEhAYRYjFhCTKg1Wrw+wV2pxur3UVNvR2tRkPPrvHMnDyIHl3ke1G6cGRAKV0yJl/Zi4hQM+UFPhrqa9HpdASZ1SBt1OSZHV7c7vM6ychIoyR3B/UVx3jkruko/3mFm2++OeA1QgioKUPkH0TUV6sBnN6g7o7UNm7k8fsRbieUHEOUHEMJDoPkbhCbAvYG8LjVijetUBSFKVOm8Nprr7Fly2b0oR1Im+Jxn8wV53EFDChLK6tIiFE3O5waUCZEq48VV1S23r5Gg2ioDVCbSPq+OJJfxmufrKayxkZ214ROTbMqikJKfAQNNierthxGCLhvxhVnnPz/dMFmI2EhZqpqGogKb/98m82G8HvZvm4Jw8ZOxeW043LaAXC5HAghqKkqQ683Ehwajt3pxhxkIDLcck762xkvvfQSTzzxBHfddRdvvfUWev3J1yw+OpRHbxvDscJKtuzJY+eB49TUOyipqMPnF2gUhSCTnhCLibFDujG8Xxd6dkk45yPEktRZMqCULhlBJgNdkqPZuamav/5sFrEJqTz+7KudauP0xe2LP36Zl1/8K7fccgufffYZr7zyCpGRJ4M54fUg8g4ginPVcmWW0IDT1gAY1OBS+LzqLuyD26CmTA30hGi3tGFsbCyDBw9m9eo1XDmxAzu+/b6T092t5Np0uNwYGj/MTg0oTUb1Hpyu1nfOo9Wp1Xak74XTK9Bs2LSV9xduoqLaekblDE8IsZhIT4pizbYjpMRHcO3YvkyfPp2FCxc2PdfevXs73a6iKGSlxZBf1HbhgRNsNhv4fXjcTtYtm8+6ZfNbnPOPZ+6nR7/h3PGDZ2iwOYmPCSM85PxuLjqVEIJnnnmGP/3pT/zkJz/h+eefD7jZT1EUuqTE0CUlhpunDKKixkpljRWP14dWoyE81Ex8VKgMIqWLigwopUvK73/3LFOvm8EXa/ZQa/Vid7g7NQ2X3mMwY2ZYiI8JZeqYvowY0p9Rc+bw8ccf89hjj9G7d2/efvttrr76aoTHjTi8Q60iYw5BMXasZq6i1UFIBMLjgtI8NRmw39uha8eNHcuePXvYt39/+yeLE/9RTk69nybIaMDtUdedNjRYSUlJAcDpUgNQk7Gt6U/lxJNI3xMnKtCEhYWxeNW3HM4rQ+8qYcEHn7Rbgaa+toqvPnuXorwjNNRVo9FoiIpNZNiYa+k/fDwRYWa+WL2HXl0TeOqpp5g5cybPPffcWfU3KzWOZesP4PX62l0XaLPZMJgsTH/4Vy2ObVq5iIJjB7npvp8SEhaJEIJ6m4vJVySdVSnHzvB6vTzyyCO89dZb/O1vf+MnP/lJh67TaDTERYUSFxV6nnsoSWdHBpTSJaVXr1706tWLiZMmMffLbWzbl49RryMhNqzN3aI2h4vi8jp8Pi03zriOm64aRHz0yR/gt99+O2PGjOH+++/nmmuu4eGHHuIfj8zCWFMCIYErz7RH0RsRYdFQckytmx0e1+6O6SCzmdGjR/H+vAXtP4FGaYonWxMfHUVxuTqtXVhY2JSHs6RSHRVKjGmZl7OJ8KnlGaXvjRMVaArLavjDf74gPiaUtZ/P6VAFGru1nvqaSrIHXkl4ZAw+n5fcA7v49P0XqSwrZOL1d7E/p4SvNx7g4ZvHAPDWW29RWdnGsol29OuRTHx0KGVVDWg9NRz8djMA1RUlOB02Vi2ZDUB8cgY2m43g0FB69R/Rop2DuzdRlH+46Vhtg50Qs5EhfdLPuG+d4XA4uP3221m0aBHvvfced91113fyvJL0XZIBpXRJSomP4PE7xrN+Zw4rtxzmaEEFHq8Pg16LJcjYtNjf5nDj9vgwGnRkpsUybkh3RvTvEjAhcFJSEkuXLuWNN95gwWv/Ynmoh35XjCQ5onm+t325x/jda/9lx4HDlFZVYzYZ6ZWRzo/vvpVpY5qn81A0WoQlDMoLoL4KER7T7ojJgAED+WD+wvZfBJ1B3ent86ll0QLo3z2TVdt2Ul1TS2lpKQMG9AfUdEInjrfK61VTE0nfO9v25lPbYKd3XCITr7+L62c9jlar43+v/I7y4sD5XOOTM7j///7S7LHhY6fxwau/Y9OqRUy4bhZx0aHs3H+ckoo6EmLCzrqfIRYTYwZn8fGSrTjLD7N80QfNjp/4esDwCWjCumAxt78e0u8XFJTWMmpQJmmJnUuWfiZqa2u57rrr2LZtGwsXLmTq1Knn/Tkl6UKQAaV0ydLrtYwd2p2RAzM5cLSUY0WV5BVWUlhW2xRc9spMJCMpmozkaHpkxLdbWUJRFB66exY3p4exYc0q3n7/A0aMGMH48ePR6dS3U35xGQ12O3dNu4qEmGgcTieffrOG6U/+kv8882MeunFa80aNQep6xPoqdad3GzV6AUwmE927d4flm/G3Um5SfQEM6nS68KgbhAK4ceIYXnj/E/7x/sfo/X6Sk1Nwud38d+FShvXpGThlEI0bkVATqEvfL36/n827jxJmCVIrxnSyAs3pwqPi8Li34fN6iQq3sC+nhP25xWcVUPr9fiorK9HpdEy6she7DhWRo9Py+1cXtfoL14cffoTFEjignHH3U8y4+ykACkqriY8OZcbEAdTV1eH1eju8k7yzSkpKmDJlCgUFBXzzzTdccYXMDyldumRAKV3ydDotfbol0afbyeoTQogzXztVWUyoQcOUGTcTlrSZFStWkJOTww3Tp5OQmMg1o4ZzzajmtYMfu+UGhtz+EP/8YE7LgFJvVP94XGCrazegBOidnQ2o09StUTRahMkMLnurAeWwPr2YOWksf31/LiOyUolft4UPFi8jr6SUN3/zdOsdcNrVQDi8jSlx6aJUUWOlqs5O2BluRvG4XbjdTtwuJ3mH97Jz4zekZPRAb1C/x7QaDQUltWfVx4KCAmJiYpo29Nx69WBe+mAFRwsq6ZISHfC9a7PZSEhIaLPd0so63B4fd143gMTYcPr378/u3bsB6Nu3b5vXdtaRI0eYPHkyHo+HtWvXkt34npWkS5UMKKXL0pkGk8LnUyvE6I0oWi1XXHEFmZmZfPbZZ7z19tuMHj2aUSNHojltilmr1ZIcH8u2fQdb9kWnR5hDoM4J9gZEWFSrO8Vfmf0ptQ1WiivUNY4LVqxFYwpCAX546wzCQk7LZalo1N3lbdzve3/4BY66GtbtPcxTf3uZvlld+fxff2b0oH6BXwMhwGlFScpCMX33KVeks1NWWY/V7iQx9sw2eWxc+TlfL3iv6esu3fsx464nm762BBnILSw/4/49/fTTzJo1C4DgYPX7uUeXeO678Uremb+ew3nldEmJRn/aJh2bzdbqCKXfLzheUo3X6+fmKYMZNSgLgNdff52GhgYAYmJiAl57JrZv387VV19NVFQUq1evJjW19QTrknSpkAGlJHWGvR5htzZLQh4bG8sDDzzAmjVrWL16NYcPH+aG6dMJCg7G4XRRZ7WxaPUGvly/mZsnjw/criUUGmrVUUqXU13/GMAL739CfklZ09e78wrZ/aq6I/eOqZOaBZTC51U3zcSlga0OoTcGDKSNBgOjs1J48pbrGT++lf6dytGgVv1JSG//XOmi43R7EX7RqYTex44dIzk5Gb1eT9/BY0hKzcJmrePQni1Y62vxnJKWSq/XYrO7mpZFdNaJjXWnG5ydRpBRz+wlWzl4tJSYyBBiI4PRaDQIoQaUwcHNA0ohBDX1dorK6kiMDePGSQO5cmDXpvfBsGHDzqiPbfnmm2+44YYbyM7OZvHixU0b3STpUicDSknqDIcVTgRqp9BqtYwbN47u3brx2YIFvPb66+woq2fhui2AmvrjhvGjePnnTwRu12SB4DA1L6Wn9dyPR5d80vR3IQSvv/46oaGh3H777c3OE0JAQzVKZBx06QP7NiGsNRDSchdvXW0tNpuN5OT2y0sKjxtcTpTMfighckPO95Gi0OaI9ensdjsffzyb7Oxsrr/+OsKjYgmPUtfW9h0yhoUfvsx///UMT/z2NfQGo5pYQFHOSzqe7MxEfnrfZL5YvYd12w+z79BxjDoNQXqFuKhIzEYjDQ127G4fNrsTm9NNWLCZccO6MX3CgGaZG86HOXPmMGvWLCZMmMC8efNaHTGVpEtR2zsQJElqrrHyRmsflolJSTz80EMMGTKEJCP8+IbJvPLzHzHlyqH4/P6mnI+nUxQFwmNAq4eGmg6N7iiKwogRwzly5AhVp6dmsdWB3oSS0RtNSARK1z6gaBDW2hZtFzSuw2wvoBQeNzTUoMSnoSR2bbd/0sXJEmREp9Xg9nQs96nZbGbq1GvYtWsnO3fuanE8e8CV1NVUkJejJi93uTyEh3QsJ2tnCZ+PEJ+VW7LN/OaqJO4bGkPfKA1aez1Zqekobi8Vx/MR9VVkxQdz+9WDefbRqTx88+jzHky+8sor3Hrrrdx88818/vnnMpiULjsyoJSkzhCizbyOADq9nquuuoof//BR0qPD8VYU8/t7b8Zqd3D9E79sNVhU9AYIjQSNFuqrOxRU9s7ujcViYdPmzY3dEwhrLQiBpmtflMYSjUpMMpqsAeqayrpKdTq8UWFhIZGRkZjNgYMAIQTCXg/WWpSEdJSsAe3my5QuXvHRoQRbjFjtbVRBOk2/fv0YMGAgS5Z8QVlZWbNjJ6a7nQ71ly2700NWWuDsAGdK/b6uQRz7Fn/+PkR9FVGhQUwc2pX/u2UYT13Xnb7BJfzkhj789taB/Pmmnjw9JpppaYKkoPOzg/vUvv3mN7/hhz/8IU8++STvv/9+s1KKknS5kAGlJHVGO+URT5Wens79999PSkoKn3++iNTQILbuO8jh/ILAFwihpvpJSEcxmaGmXK2m0watTseQIUPYvXs3DmsD1FWARoum20CIa74RQIlLRdN7BEp4jBqwNtQgfF4KCgqaKuQ0745AOKxQWw4o6jR3t0FnlMRdunhEhJpJiA6jps7eqetGj7yCqKho5sydi+uUkpzb1y9DURQSU7ria0xjlRx/7pZDCL8fUZ6PP2+f+otNUAiKJQzFYELRqL/YeFwOQvR+uqfFkRwfiSUiEoJCEU4b/uP7ESVHEa1UizobPp+PRx55hN///vf85S9/4YUXXghYSlGSLgdyDaUkdYYxCETH0w4ZjUauv/56unfvzs/+9hIA3+7dR/f0VDWAVBs7+cfnQRMWDQnpUFkMVcWI+howGMFgalHvWwg/Q/r1ofzIfvL27qLnleNQMrJRgsMD9kcJi4beV6CU5SNK8/DWVRGl85OdEq+ObKKoFXC83qb7VZKyUBIzWm1T+n5RFIUrB3Zlf24JPp+fipL8NivQ9OirblzZ8M18vJV7qW7w8t/XXqBnj27s37meovwjDB87jajYRIor6oiNDKZPVlKrz98ZQvgRpccQlQVqZoWg4IDn2Ww2FI2GoKCTqZAUjQbMoQiPC1FRoJYfTcxs8R46U06nkzvuuIOFCxfyzjvvcO+9956TdiXp+0oGlJLUGeYQdUOO16OOJgZQXl1DbGTzEZquXTMptLow6HTs2ryB+FALI4YNRXdKInV1iluBIIta7zs2GSJiwN4AlSVQXYbwnr4GUyFIb4CoBH7230/57J6foDeZ2rwFRaeHpEyIz2DPiq94f+1OXr3uZhRLmBrU6vQQHK4mLQ+PlqmBLkEDe6URF/0tJRV1lBfktlmB5kRA2a3PEKorS6ivPUThwUJKc7eRmJrJDXc9yYDhE/D5/FTVWLlh4oAzznHZQlUJorIQDEEoreRSBbDabFjM5oC/5Cl6I0JREFXFalAal3bW3aqrq2P69Ols2rSJzz77jGnTprV/kSRd4mRAKUmdYQ5BCQpWp4JbCSh/8McXaLDZGTWwL4kx0ZRVVfPR0m84eOw4f/u/R7hp9FCs9fXk5BwhMTGR0NDGiiIumzoCGhIBigZF0YBBi2IIQoREQnIWir0BXA71fK1OTV9kDqFXaDpf/P6fzPvsM2677bYO3Yqi1fLNjj2sPFJIwthpaHTyx8Gl7tQKNNeO6cO7n26gR//R/GHExHavzew5gMyeAwBYuvRLtm3bxjW33UdSUiIAecWVpCVGMXFETxoaGnC5XHgaN6GdSSEB4bDiLz8OWl3AYNJqs/P3N99j8+69bNi+E6vdQVR6FvfceF2LcxWdAaH3ISoLEcHh6i9PZ6i0tJSrr76avLw8vv76a0aOHHnGbUnSpUQu9pCkTlA0WpT4dPB6Wt00c/PkcSiKwmtzF/LYn1/kxQ/mkhQbw2cv/pH/u30GKUlJZHTpisPpZOfOXeTm5uL3+cBpR4lKRDGesjlGUdTgUqtHMQWhRMahpHRDSeup/j86EcUcQp++fZk4cSIvvvhip/L/bdq0iaFDhzaVjZQubScq0IwcOZKxQ7ozuHcaOY117jtj8uRJxMfHM3fuXBwOJ+XVDQgBN4zvS5TiYNZNM4iJiWHDhg3gciAOb1U305QfR9haZho4nRACUX5cTaFlDLxZrLKmlj/8+w0O5h4ltZUSoc0YTODzIsrzzzhHZm5uLldeeSXl5eWsWbNGBpOSdApFnOk7S5IuU8JpR+xeg3A7O56LUQjwexvXTSqgKAghKCws4NixPKIsJrqkpWEePK7tNoUfEKAzqiOUp1iyZAlTp05l3bp1XHnllR3okiAhIYH777+f5557rmP3IX1v7d+/n+LiYkCtQDN8+HAqqht45ePVHMgtISstBpOx4xuuamvreO3114lPSmf4iFHcMDyV6dlh4Hbw7eFcymvqQaMl2BzE8H7Zav5Wvx80WhRLKEpUIoQGLqMoHFb8R3eBVt/qVLfL5aamvp74mGh+++e/8oe3P+bt538XcISyqV2vB9xONF36dnqUcufOnUyZMoXw8HC++uor0tPTO3W9JF3q5LCEJHWSYjJDWk84tA3hdqEYWl/bBTQGk75mwSSomyNSUlKJCAujLOcgX+w6QKIhjiuuGIFGaWXyQNGoH8o+j7rj/JTzpkyZQvfu3XnxxRc7FFDm5eVRVlbGiBEjOnrr0vdYoAo0MZEhPHbbGN7+dD27DxQQGW4hPjq0Q9PTQWYLQ6+cxJ4dm+lnruS6Ll3UoDEolH4DBrV6nfB61A1gtjqIiIPYNBRD83W/or5KXadsbH39rtFoID5GrULjcDja7S80ljl1WhF1lZ0KKFeuXMn1119Pjx49+OKLL85pmUZJulTIKW9JOhOxKRCfDrZaNeF3W07s4D4lmGw65POxf/9+Xvx6C0+/+h7jr7qamIRkpt90M4cPHwncnqKoQaXX09iuSqPR8OSTT/LZZ5+Rl5fX7i1s3LgRgOHDh7d7rnTpiokM4ck7J3DbtUPxC8HenBIKS2uwO9wtpoa9Ph+19XYO5ZWRW1DBmIFZvPLgaFL8BRTXNKCYLO3uolZ0ehRLGEJvQlQVI44fQLhOS2FkrwONrsPrLh2O1lMgCdSk/MLWgLDWgceDqC3H7+9Yfsr58+czZcoUhg8fzooVK2QwKUmtkCOUknQGFI0GuvYFvw9RmocICg68G1qIk9PUp406CrcLbHX87bNlbNh7mJtunEFSUiKr16xh+fIV9P96GJvXr6FPdu/TnlwBNI1T6DpQTiYZv/POO/nlL3/Jyy+/zAsvvNDmPWzcuJGsrCxZa1jCZNRz3bh+DOyVytY9eazfkUtJZR1OlwdQUJTGnP6KQrDZSN9uyVzZLZq+lgZMugTen1PE3PnzefjhhztcIUbRGxBaHcJWCwWHILUnisGE8PkQTnuLJR2t8fv9zfJighpE4rBBbRU01IDLpSbzFwK0GhStDnHwAL6kdDQZ3SEmMWDw+tprr/Hoo49yyy238N5772EwBN6IJ0mSXEMpSWdF+LyI/IOI4lx1xNAS2nzNl/Cr04CnjE4KnxfsDShCQGwKG0vqGDJ8RNOHlcvt4p13/8vjT/2Y4UOH8OUXiwk+/UP6RKCq1bfYbf6LX/yCV199lcLCQkJCQlrt++DBg8nOzua99947J6+FdOlwujwUl9dSUllPvdWBz+fHaNARExlCfHQYsSF6yNuDcDshKASr1crrr79OXFwcs2bN6tSObuH3g71O3ZCW1A08LvxHtoNOj6JrP4CzWq38+JfP8NaS1bz9/O+4e9pVUHIc6qrA40boDKDTqQGqojRGmz6obUCxNiCMJpSkDDSDRqFEqpt7hBD8/ve/57e//S2PP/44//znP2XCcklqhwwoJekcEDXliOMHEXVV6vpGnQH0RrVMo9+vBoBeN3g8KBpFzfOY2BWiA4+MAGT3H0hdXS1PPPYI06ZNo0f3Hqc9qV/9gNSbmk2lFxUVkZ6ezt///neeeOKJgG3b7XbCwsJ4+eWX+cEPfnCuXgbpMiCEQBQeRlQXgyW86fv32LFjvP+//xGfmsHevCJWbdpKXlExUeHhDOvfhz/832N0ywicA1J43ShuJ0pqTzAF48/Z0eGAsqqqir/+69/8/aMFvP2bn3D3oB7gsCNMQaA3BHh/NZZP9WrUyQOnHaWmAoJDUQaMxJ/ZmyeefJJXX32V5557jl/84hedTnkkSZcjOeUtSeeAEhEL4TEo9VWIyhKor1JzVXrdajCp0apT4jGRjedGN5WNC0QIQV19HT169CAlJYXZsz+hf//+XH31FIxNm4CUk+szT/nAS0pK4uabb+all17i0UcfpbLWTklFHRXVDXi8PjQahbzcw/g0ZgYNHnqeXxnpkuO0IuoqwNg8kXhGRgbjxo7l0d8+T6XVzi3XTqFP9yzKKqt45X+fMPj629gw7316d8ts0aSiMyBcDqgqhuTuNM2xd1BtbQ0AorIM4c6AkLC2g8DGIlWKohYSECYz1FTiW7uUfz33e177+HPefPNNHnjggQ73QZIudzKglKRzRFEUCItWyxuCOh3osKojiY0jlh0d6fjw49kUFRXz+2ef5ZZbbmHXrt0sXbqUvLxjTJ9+A+lpjSM9J8o3nubhRx7j44Uruf9nL2MKjqHB7mrso3rJoUMHMaZcwScrcymu1zCkdzqJseHn4mWQLnGirlIdhQ+wZnjUqFHcOHEjJi388NFHm5Zc3Dx1Mv2uuZnnX3uX//2jlRRVRjPCVo/icqjVbdxOdZS/HYqiEG0ynPgCxdL6Mo9TrmrRhtsSytKlS0mpqWT1Gy8x8n4ZTEpSZ8hFIZJ0nih6I4rJjBIUjGIwdSiYzD+ez3N//hOPPP44I4YN4+47Z6GgMKB/fx555BHCwsJ4773/suzrr/H6fern4ikjOUII9hwuYvnOSuJ6jGP52h2EhQTRIyOO7MwEenVNIDszAVd9OQnRYTRYnXy0eCvPvb6EJWv24PZ4z+MrIn3fCSGgvgp0gaaS1cDsZ08+jtFgYN68eU07qbPS08jO6srB3GOttq3o9OD3ojgawBzauPa4fYrXQ5dQNfl5oBReLreHn7/9CSl3/Ijg6+9nxJO/4+vtezk1qLTZrPz3vfc4WFjMqPGTGBEkENUVHXp+SZJUMqCUpItIZVU1//r3f9BotEyeOJ7NWzbjcDoBiAgP5+6772bixEls3ryZN998k9rauqbpbp/Pz4Llu/jn+8s5WljJqGH9KC88jN1ai7ZZzXAoLCogPTWJlIRIemcl4PcL/rdwEy9/sJLqOtsFuXfpe8DtRHhc6mawVpjNZm6aOZOCwkJWrFgBqIFoWWUVURHhbbev0SIcDSjBanJ/4W+7gs8r78/mn6+9yfJ9OQAs3ryT5z5eyHMfL6TOpqYSuu8fb/LPz77ktnEjePHhO9BqNEz7zQus23cIUKfL33nnXRoaGrj3nnuJ69kbrLX4d64744o6knQ5kptyJOl88jjB51eTkLejrq6OsZOu4nhBAZ9+Mpuamir27NmLRqOhf//+DBs2jOioKADKystYsmQJBp2OBpeH+x94kE+/2c3CFbuJjrAQGxmC3y946eWXSE1JZcaMG5qep6amhpdeeonbbrudbt2ymh53ON0cOV5Bv+7JPHrbWCJCA5e8ky5fwlqD/+i3EBTSbr7JjRs3smzZMm697Va27s/h7p88w5t//g333TS99fZddhSNDrIGQu4uhNuBEtT6FHaX0deQX1wS8FjOf1+gvLaeK578Hc/ffys/nnkNIHC6PfT7wS+JCQtj/k8e5oMPPsRgMHDnnbMID28MZB02sDegnXo7SnRCu6+LJElyDaUknWcaUNqvk+x0Opk240YOHznCN0u/YERjsvGJEyeybds2tm7dxtatW8nKymL48GF06dKFO2fNYuvWrYyfMpVfPvscNZVqWb3YhFQef/ZVNBqFYUOH8c033zBp0sSm9WyFhYUAJCcnNT3/huULWTrvTQDmAhrxGU8/eF2zkU1JaspY0IHlG8NHjOD48eMsWLyUP/13LiMG9OXuGdPavkhREMKPRlEgOkndTe7zoLQyIpr76Tu4c/azce9++vbpS0Rk87Kl/1m8HK1Gw4NXj+PE7m6TzsC9k8byzPtzePG1N+iaGM8dt9+B+dTUXCYzSnU5/rzDaGVAKUkdIgNKSTqfNBrw0+aHsM/n45Y77mTjps0snDe3KZgECLYEM3bMWEaOHMnevfvYtGkT//vfB8TExDDlqkkMGjKEj+cu5JY77geNnkGjr6NHz+ym6/v27cOyhe/x0u9+gMdlIzQsiuDodCIiIjCbT45AZmUPxBz8Y/bv2sCBXRvZtjePdTtyGDOk23l7aaTvIUU5fT9L66cCI8eM5Ylpt6BRBM8+cg9abeuZDQB1f5nS+DzhcSgNNYjaMoQlDCVQOVJbPYpGoyY7CLA5bVduPt2S4gm1NJZ29CvgV4g3qR99HpOZu+++G8Npay8VRUGYzChFeYhBo2XaIEnqABlQStL5pNGqFXJOlF4M4MdP/4zPFy9m2tSpVNfU8MFHHzc7Puv229BpdfTv149+/fqSn3+cbdu2sW3bdh5+7EcEJQ4kJi6eCnctuw8ex+EPIrlLNsHBFhZ//G+8dQUowfFcNeM2So4fYeem5UQldW/2HDHxKcTEp1BdUcyBXRsJMur5fOVuBvZKJcTSvM6ydBnTGdTvab+v3Uo2dQ0NXPfgE/gE/OlHD7Jx7Ro0fh8TJkxoPUDze1GCQtTgUQHiM9R1m7Z6hDm02TS7EAJsVkQb/SitriU+MrzxKwV8Cjt37GT7hvUAZPXp1yKYbGIMgoY6teKOObjNe5UkSQaUknR+KYr6AezztDpKuevbbwFY9MUXLPriixbHZ91+28nmUEhPSyM9NZmaunrWbdvL24u+xVlWgA6YOHESGzZs4NX/vMoVQ/qxd/taho2bzvYDxRhCE5h2+1Xs3rOPqqJDlBYeIz45I2C3E2PCKCivY/fBQkYOapk3ULpMGYPUDTleT5sBpdPl4vqHnuBwXj7L3nuN4QP7sXnzZr766iuqqquZccMN6PUBprF9PjCfXDOpGIMgpTsUHELY6hAmC8qJylBej/q+OjHqGWA3gMPlxmjQoQaTsG7dOpYvX8HAfv1gbz4uTxvLUQxGNZesvUEGlJLUAXKBlCSdb1p9Y71tf8Bkzau+XoZwOVr904LwAwoR0bHccNsDXH3tDSQmxOHzefnmm68JCwsjPCycr5d8BkD/YWPp0aMHmzZtpqioGMUUCcCe7Wtb77JOg0GvZcOu3HPxCkiXCEWjRbGEqQn7W+Hz+bj1Rz9j4849fPLyXxkxsB8KMHzYMG677VZyc3N59111V/WphN+vVig9bROOYrKgpGejRCeBx6kGll5343pOTpY0bRZRqvlZg4wGXG4vwgNfLV3GoUOHGTt2DMOuuAKAIEPru9WbZhYaUx9JktQ2GVBK0vmmKKDT06yyzZk6kchcowNFQ35JFSajgdiYGEJDQrn11tswGo2UlBQ3rVeb/clc0tPTqaysYPfu3egap/iKj+e0+VThIUEcL6nG5nCdeX+lS44SHqOmP20lpc9P/vwPFi1fzZTRV1BdW88HC75o+rNl3xHuv+8+bDYbb771FqWlpScvdDtQjGYIiWjRpqI3oiRloUnthRIaBR43OK2g16LRKISFhaLT61A33jSWVhQK8RHhlFbVsnDhQjZv2Uy/fn0ZM2YsJTW1ACREtXyuJn6fGlS2M7UvSZJKvlMk6bug0arrz7xu1JFKTYd2yjYj/DQFkzo9AsjJr8BiPlnvuHv3bnTv3o2ysjKWLpxN7s48rNUlfPnlUkxBQRw+fJhQk4YKoL62qs2nCzYbKSqvo7Sinq6pMZ29Y+lSFRyhTks7rGoC8tPs3q/md1y8Yg2LV6xpcdyXs5MHH3yQjz/+mHfeeYcbZ95It8ws9b0Rndzqju4TlagIjUJxWBH2ekRRAcLtxGq14XF7QKibbk6UVuyblsLK3fvZtms3t868kd69+wCw5ZA68t6/ldriALidKEYjBId18gXqPLfHy8GjpRSU1pBfXEVFtRWf8GM2GshIjiIpNoJuGXHERnakCpAkXRgyoJSk74pWpwaRJ6br1O2s7QeWQqBuFVdAo1dHOxUFr8dHg92JKcC0XVxcHHfc+wj/zNuF01EKegMOqwvhtmG3F6HRaPF6Wp+2BDAa9Lg9XqxyhFI6haLRQlw6In8fwuNCOa084oqP3mq3jeDgYO655x4+W7CA2bM/4ZZrp9B9wGCUqMT2n19RwByCYg7BF5mAf+dGVixbSUxEDNHhsU3nuV0uzPXV+IXAl5TRFEy6PB7e+2YNQ7t3JSUmqvUncjogNhHFeP42pTmcbtbtyGH1tiPkF1Xh8frQ67SYjDoURcHr9bH7UCEIQUSYhcG90xg3tDsZydHnrU+SdKZkQClJ3yWNVq1P7PWoU2rilMCyhRN1uhV16k1nUP8fcM1YS3q9gbt++Fs+eet5KkoOqg8qCondhlFTfBBDOx+UStMMvax9IJ0mOAIlMhFRUYBQNGrZxE7S6/XcNHMmOzauZcPmLczdsp9f/ulvdKYlTVwKKJvQaZRmm3LsdhsffvghZo+dawb25sUvVuDXGchMiOP9FWvJK6/kjR892Gq7QvhR3E6UlK6dvq+OOpJfxpwvt7P3cBHmIANpiZGYjIHv3u8XVNZaWbZuH1v25DF1TB8mX9ETY1trQCXpOyYDSkn6rp0IDoUAv7cxsDxtbaXSOHKpaBtHNltOket1Wox6HVZ76yOIcYlpPP7rVygvOY7TbuXI0QI2bdmK21pPelbvNrvp9vjQ6zQBR0Cly5uiKBCfDj4PoroUYQxqMVLZHiEEOKwMHDCQCm0oj97zEGt37mXu3LlERLSxtrGR1e6iWIRS0GCiQR/HtlIPrjAbwYqTJfM/xu1ycs899/BERCTPfjCPD1euo8Zqp096Cguf/TGje/doo/EGsISgpGW1fs5Z2LjrKP/7fBO1DXYy02LaDQw1GoXYyBBiIoIpqaznw0WbySuq4t4briDY3LnXXZLOFxlQStKFcCJg1BhObrRpNhKonDyn1SYUMpKj2bjraDtPpRCXqK4Vi4pPZ/2arxHCT9ce/du8zmp3EWw2ER/Tcp2cJCkaLSRlgVaPqC5Wa3ybLOrjbRBCqCP0Lpu6gzs+g2t6j+TrpAxmzJjBiBEj+OKLL+jateXooNfrY19uCRt35bL3SDENNif2Mj+lnkQOHHbyecFRSvKPEqqN58Grh6EPicJk0PPX+27nr/fd3qH7Ej4fSn019BmKEhZ5Rq9NW7bty+fdzzbg8/no2SW+U0nTFUUhMSaMsGAT67YfAeDBmSNbHdmUpO+SDCgl6UJTTqyl7Pyl6UlRrNl2pN3p7xOMBh16dyU+rYHeg0a1eW691UFyfCRhwUGd75h0WVA0WkjoghIcjijPB3uD+p2oM6hrfZuCSwE+rxpINuawVCITUOLSUAzq99eYMWPYtGkT1157LcOGDeOzzz5j1KiT36P5xVXM/XI7uw8V4vP7iY4IJiU+AqItVO5cQxddCAfzjmHRm4hO78UnB+ysKSpgWs8oRqWHotO2/wYTQqBUlkBMApr+I87561VWVc/dd93N/h2rgZNlUjvj1DKpc4DI4FXccf2Yc91VSeo0GVBK0vdYdmYiIRYTnlYSNM9+8y+EhkUSk5CKy2lnx4avcdvrUEK7kn+8gB49Ak/7+f0Cm8PNiH5dZNk5qU2KokBoFASHQ0MN1JYj7PXgdqiJyhUARQ0idQaITEAJi4Gg4BbfW1lZWWzcuJGZM2cyYcIE3nrrLe68805Wbz3M3K+2U11rIyM5GnPQycwGbkWwt7qBEGMpiaEWUntmo9Pr8fkFRXVu3tlayv4yG7MGxhJmav0jTwgBVWVgMKIZMhbFfG53VPv9fuYv24Hd6cYcHMrVMx8kyHyyfrjP52X10jns2rSc+roqQsOiGHjFJEZddVOzkpWnl0ldtn4/wwf0kpkYpAtOBpSS9D2WmhBJn25JLP808I7tpLRMdmz8hq3rvkSvN5CWmc1N9/2UJctWsXnzllYDysoaK5FhIQzMTj2f3ZcuIYpGC2HRKGHRCJ8P3HY1X6R6EAwmMBgD1+Q+RWRkJF9++SWPPvood999N1+t24cuqgcmg45emQktgtAjR3KodXvI9WgY2K0bGqcNNCFotVpSI4xYXT7W5tVj9/h5eFg8oQGCSuHzolSUgCkIzYhJ52UzzpH8crbuzcMSZMBgMNF/2Lhmx+e9+wL7dqxj4IhJJKZlUnjsEMsXfUBdTQXX3/F403mnl0mttzpYueWQDCilC04GlJL0PaYoCpOv6MW/tVq8Ph82ax0ajZagxlJxoybPZNTkmS2uGzbMwfz58ygrKycuLhaPx43b5cDjVjf4VNfZmDVusMx7J50RRauFoBDoxGqJe+65h/feew+A7Oxs9uzZQ0hMOq98tIqM9EpunTmtRTC5e/duFi5cCECPwUPRZmYiivKgvkadcjcGEWzUkhUdxPYiKx/urOChYfEMffJX7D52HIBr+vfi8x/cBvEpaAaPQUlKPxcvQQubv83D4fRi0Lf82C3MO8ze7WsZe82tTJg2C4Cho6/BHBzKhuULGDbm2lbLpMZEBrN9Xz7Xju1LfLRc7yxdODKglKTvuR5d4kmKC+fIt1X85ad3dGhdVs+ePQkOCWHLli1Mm3YtW9csbVqXBdAtI56rR/U5312XpGaio6N58cUXCQ8Pp87qwBSbTa/MI+zdvJg/b5mL12UlLCKGHz/3Dps2bearr76kf/8B7Nq1E41Gg2IOhi69oLKE3euXMf/r+Rh0en51/9OkWxQ2Hq2md5jgDzdMpqa2jh/P+QIUDcrg0SjZg1FM5vNyXy63hx3784kKD9x+fs4+APoMHt3s8T6DR7P+m8/Ys31tqwFlRKiF4+V2Dh0r/d4GlA6nm4oaKz6fH41GQ2SYmRDL+cv/KZ0fMqCUpEvAC8//kbcHjmbfkWJSk+PaPV+r1TBk8BDWrl3LhAkTyB5wBdHxKRSV1RAZZuGBm8Y1W6cmSd8Fi8XCrFnqCN38ZdvJPV4BtkJw1eDXmVG0Bnw+HytXrmTNmjVceeWVjB07jl27djblS1W0GlxhkSzbshKDwahmTwgyE+J2YdR4+fxQHc9OHEpIagrPfrUeJS4ZzaDRbXXrrJVW1lNvcxIXFXjE3+v1AGru2FPpO1AmVaNRUFAoKqs5R739bpRV1bNj/3G+PVRIYVktdocbn9+PRqMQZDQQFxVC76xEBmWnk5oQIddyfw/IgFKSLgEDB/SjW/cevPvZBjbszKWorJbE2LA2fwgPGjSINWvWsHPnDvr0G4hTH8eQ4dk8cONIMtNiW71Oks63BpuTdTtyiQo3M3n63dxw54+w2Ry8/NyTNFhrWLNmDRMnTuTKK6/E7/c3XnUy08HqpZ9gNJnJ6N6Xg7s3oXTrBz4vKR4vh45X8m3WGEYP7qZOi2vbTnN0LpRVNeBwejCbAv+SFh2XDEB+7gEiouObHj8xctlemdQgk56jhW2fc7GobbCzaOW3bNiVS3WtDbPJQIjFRExkMFqtBuEX2J1u8our2JtTzNK1++jfM4UbJvQnMTb8QndfaoMMKCXpEhFsNvLwzaPITI1h0cpv2XOkmJiIYGIjQ9BqW26EMJuD6NazNxu3HyAqsSvjh3XnxkkDiZHrJqULbM+RIsoq6+mWHotOpwZ8FosFvV6PUwAoaLW6xtStjZWjGkcoq8qL2LBiAbc//Cv2bl8HNGbm0unQ63QYjHo27Mxl1KDzk7Q8ELfb29iPwL/gdes9mPDIWL769G30BiOJKZlsXPsNu9Yv6lCZVL1Oi9158ZdI3X2okNlLtnK0oIK46FCyMxPRaFq+JuYgA9ERwQghqG1wsGbbEQ7nlTFj4gBGD86So5UXKRlQStIlxKDXcfWo3mRnJrJ+Rw4bdx3l4LEyEKDTadQRACHweHwIILNbL/bv/i99kzU8dNMoNJq2d+BKUpsCJelvyrPa8SCgoKQaAU3BpMfjYe7ceVitVswWC4NGjOCrr76kqqqKKVOmnHxqYMncN8no1pduvYc0BZSnigyzUFBaQ4PNeYY3eQbaSTOr1xuY9dhv+OSt55n9xp+aLsrqP5bi3J3tlkkVQlz0791Nu4/y3882YHe66dk1Hl0HRoYVRSEi1ExYcBAFpdW88+l66m1Orh3TRwaVFyEZUErSJSg1IZLUqUO5enRvco5XUFpRR1FZLQ6XG51WQ2xUKImx4aTER1K+ez5fzPsvTz9+74XutvR9dKJsqM8LwndKUMnJHJTNyoi2H1zmHK/AbFKrvzidTj766GNKS0tJSkrCWlvB5MmTiI6O4osvvqC6urqxG4JDe7aSs38njz3zcqttB5uNFJTWUFpZf27uvwNCLSYURcHrDZwvFlqWST2cW8DGzZvxWuvaLZPqdHuJDg8+190+Z/blFPPfBRvxeH1kpcV2OhjUaBTSEqMoq6pn3pfbCbWYGDOk23nqrXSmZEApSZew8BAzg7PT2jznySef4KabbmLXrl3079//u+mYdGnw+8HnOVmP/sRo5OlDckKA36PWrtdoQauHVkbUhBBU1VoxGvVYrTY++PAD6mrruOuuO1m58G2step5AwcOJDw8gjlz5gBQWlrCkS0LGTL6amITWs+fajTocHt81H+HI5TxMWEEW4xYHW1PS59aJjU5owd7dm2mRgi6dO/b5nUuj48uKdHnrL9n4/T0Txs3b2PO0m1YbS66Z3Q+mDxVXFQoLpeX+ct2kJkWy9TJY9m9ezcAU6dOZfHixefkHqQzIwNKSbrMTZ8+neTkZF5++WXefvvtC90d6ftACDWI9HnUoFLRtDPyqNC0acbnBeFvDCq1Aa8RAmwNDcyb/Rket4d7772H2NiTG8W8Xi8HDx5i165duFwuNBotW1YtQjgqCInrjt3uwGwOnATzREDj93esXOm5EB1uIT4qlIJO7MT2+7xonWWg0eMUrSf0dLt96DQKyXER56Kr58Sp6Z++WrePg3ml6B0lLPhgNoXHDlFRWkhYRDQ/fu6ddtvavWUl8959AYPRxK//OY+UhAj25pTw6dc7ee6556ipqeGpp576Du5Kas/FvehCkqTzTqfT8dhjj/Hhhx9SWVl5obsjXeyEUANJrwv8ogPBZKMT5yga9TqvS21HiNNOU7Bb61nw+WIQcN999xEbG4sQ6vS33eHg7y+8wPz583C5XFx77bUMHTIQv62YyMRurF65nBf++hwfffAeNdVVCCGoqSrDWl8LgM/nR1HAZPjuxlM0Gg0jB2Vid7ibNg+dbvabf2HJnDfYuvZL1n39Kf/585PUVpbQe8RU1q7b0DS1f7ry6npSEiLo1TXhfN5Cp5xI/zR67ATW7sghKszC/p1r+XbrakxBFkLCIzvUjsvp4KtP3222hlRRFFLiw9l9sIBe/YYxa9YsLBZLG61I3xUZUEqSxAMPPICiKLz55pvtnyxd3k6MTKKo09adncJUGq9DOTldfootW7bw8ftvYDCZue++e9Fqtaxbt55XXn2FgoLjeD0ehgwewg9/+EPuv/8+Bg0aSO/sniD8VBXsw1O+C3fZLg6sn0ve4V143C7+8cz9fPr+PwGw2l0Em43ERp37JOBCCITXjbDVIWrLENWliJoyhLWGAVnxxEaGYHe2Xib1yIEdLJn7Bmu+nENUbCIPPf0CN9x8N8HBIXz++aLTY++m+xk1KAuTUX/O7+ds7TpYQFllPbFRIUy8/i6eeXEOD/70b8QnBU7SfroT6Z969Bve7PGw4CAa7E627s07D72WzpSc8pYkiejoaO644w5effVVfvKTn6DXX3wfTtJFQDSumRRKwDWQ+/bv57d/+CPbd+yktKwMs9lMr549+OlTTzHt2qnNT1Y0J9dgNrbldDoZP348adkjCUnO5LPPFnLsWC5arZaePXuhtydjra1gwoTxzZqKiUuga/9JlJWXce2116rT2gJWfTmX0sJctOGZHCtzMGfOXFK79qRnt67ERJy7TSzC7wNrDaK2HGGtO2UpwImpfoUInZ6pPYJZ7Pbg8/s7XCYVYNq0a/nf//7Hjh076Nu3d7MyqVlpcWpOzYvQ4bxytFoNOq2W0PCoTl0bKP3TCYqiEGoxsedIETddNehcdlk6CzKglCQJgMcff5y3336bBQsWcNNNN13o7kgXI+8payYDyM8/TkODlbvvnEViQgJ2u535CxZw3Y0zef2Vf/PQA/c3v0BR1Pa8HvLz8ykrKyMlJYXC3D3YSzzEx0Yxcvhg/M4adDoXBbY6nA4bq5bMBiA+OYMefYdhMJi46rpbeOON11GMEfTq1ROAg99uoqrsOD955o/s3v0t23fs4OCxVWxfvZBw9yF8vtZ3XXeUsNUhyvLAWquuEtUbwWRRSzo2jt6KxsB5TJdgooIUjtVWdrhMKkCXLl3o338Ay75eRl3pEVYu/l/TsevG9SPYbDzr+zjX/H4/uQUVZ9y39tI/hVhMVNZYqW1wnG1XpXNEBpSSJAHQr18/xowZw0svvSQDSqklv1+dnm5jveQ1V0/hmqunNHvsh48+wqDhV/CPf70UMKC02uxs3ryZzZs3A+q08WMP3Y02pi+5RVacFfv47LOPm122fNEHAAwYPoEefYcBkJAQT2pqGps3b24KKE8ICgpi+PBhZPXozdG8Agz1+3juuedwOBx4PB6WLFnCVVddhbYTVXOEEIjKQkT5cXWjkSkYpZXrFY0GNEYMeiMv/vJx3vp8KMfKraSlxCP8AiVAcu/TTZ48mSM5Rygot3LV7T9FQWHi8G4M7RKFKD+OcFjVkVFFAb0JxWQBkxnMYerzf8esdhd1DY5WqwO1pSPpn8wmA9W1dqprbWfTTekckgGlJElNfvSjH3HjjTeyY8cOBg4ceKG7I11M/N7G1ECdC060Wi0pycls3b696TGP18OhQ+ou7dzcXPpkZ5OSnExNbS3btm3DaDRSXOXgxfe+Jqb7MP7wn46lgxk2bBhz586hpKSUhIR4Ztz9FDPuVncA+3x+isprmX7VcKaPvY/qP/yKIUOGYLfbmTp1KikpKdx3333cf//9pKSktPk8QghEWT6U56vlG82hHU6Hc0X/XvTo2oX/fr2f7YfLKDyWR2JaKlpd28FsUJCJCRMn8/mXq+nRO4yf3z6GEUl6RPEh/ILm61n9NermH40GJSgYIuIhPBZF+9195Pv8Ar8QASvhBFJYWMiuXbuZMH4sS+e92W76J41GwS8EvqbSm9KFJjflSJLU5LrrriM1NZWXX259ZEC6TInGD+4OBE42m43Kykpyc4/y4r9eYulXXzFh3FgKiwpZ/MViXnjhBebNm095eQVCQFp6OiOGD6OiooL4+HhGjhxJzy7xTLqiF6WV9Thcng51sUeP7oSGhTWNdjZ1XQhyCirokhzN9AkDGDduHJmZmdTU1DB69Gi2bNnClClT+Pvf/056ejpTp05l4cKFeL3ewE9UUwYVxxF6I4rR3OncipEhJh6/rj93T+yJwedm//5cjhZWUtfgwOc7GSAJIXA43ZRV1bMvpwRLWCyTBqQz2pzPwBCbunbTHIoSHI5iDkUJClH/WMJQgsPBaEY4bPgLDyPy9iJsdZ3q59nQaTVoNcoptdbbtnLlKvKP57N17RLs1nrGX3tHm+f7/GqwqgtQVla6MOQIpSRJTU6kEPr1r3/N888/3yz3n3QZE+KUTSbt+/HTP+f1t94C1JQ5o0deSb/evXjrrbcJDQ1lyJAh1NTUsHfvPq666ioGDRzI0//3JLPuvAsUheDgYBRFYeqYPhSW1rDp22NkpcYQ1M70qUajYeiQIaxcuZJJkyZisVgQQpBbUEmI2cQd1w4jItTM66+/TkNDAwAxMTH069ePIUOG8MILLzB79mzeeOMNpk+fTkJCQtOoZUaGujNZuOyI8nyEokExtCyJuO9wLr976TV27DtAaUUV5iATvTIz+PEDdzNtwpim8/Q6DZMHpzMgPZwdOeWsK/ZTYXVQVF57yusOBoOOEIuJicO7MzRBT5o2kc8XLWLp2o1Mnz69zddD0erAHILw+9S1nvn70CR0RYmI68C/4tkJNhuJCDVTXt1AVHjb5xYUFHD0aC7XTZvK4vefZ+iYa3A57bicdgBcLkdT+ie93khwaDg2uwtLkIGoi7hC0OVGBpSSJDXzwAMP8Nvf/pY33niDZ5555kJ3R7oonMhX07GA8onHH2PE8KFs3LiRFavXUFZeTnR0DGPHjiElJYUFCxayf/9+pk+/nv79+oMQ9OrZk179TM2m1C1BRu6/cSQAW/bkERMZTGxkSJsjggMHDmTVqtVs376dIcNGUFhUSZdYCzdP7EuPeCOioYah/fuCwYhy2vR9SEgIDz74IA8++CA7d+7kzTff5OWXX+ZPf/oTkyZN4sEHH+T6wb3QuOxgCQ/4/PnFxTTY7Nx1wzQSYmNwOJ18+tU3TH/4Sf7zx2d46NYbm50fEx3O5CCFiYODqYzoSll1A/VWB36/wGDQERcZSlx0MOaaIkRVIRgi6TVwCAsXLqR3n95kds1s999D0WgR5lBw2vAXHUGjKCjh5/eXRUVRyEyN5Whh+7ltV61aTUxsLGmpybhdDtYtm8+6ZfNbnPePZ+6nR7/h3PGDZ7DaXSTHRxAa3Hadc+m7o4jWsqxKknTZevjhh1m0aBH5+fkyhZCkjk56nDTV5W7Hlq1b2L37W7RaDf379+fpXzxDfUM9a1cuZ+7cueTl5TFz5kx6dO+hXnCi/rfeFDAdkcPp5st1+1i6dh/1Vgfx0aFEhVtaDSyXfrEEk9fG3deMondyCJlJkViMjeMnigJaHYrOAGHRKGHR6oaaVtqy2WzMnTuXN954g6MH9/PXR+6ga9dMuvfpR2RkxxJ0+3w+hky/HafLzf5ln7U4LnxecNrQZPRBCWnZpqguRRQeQhiCUPQGBPDB//5HVVUVjz76KAZDxze+CEcDilaPktEXxWTu8HUddc8997Bq1Sry8vJYvzOXVz5cSVZaLHr9yTWi/3vld5QX5/Pj597h+PEC3n33HW666SYyM7uQs39nizY3rVxEwbGD3HTfTwkJiyQ5vRt7jxRz6zVDuGHiANLT0+ndu7csvXiByRFKSTpXhFDXmTX9n8ayxo3VQZQzSAJ9gTz++OO88cYbzJ8/n1tvvfVCd0e60DrxbVteUcGyZcsYOHAQ11x9NQA3z7yRhx/7IX//+wsoisIdd8wiIz29w88TZDJww8QB9M5KZNWWw+zYf5z9OaWgQJBJj06raVxv6CE9RPB/U/rirS2ieyxkZyWjMRhAo0VRFITwg8+L8LqhLA9RWYQSFgNxaQGnsC0WC/fccw/33HMPx7avp3b/Nr5at5llq9aQnpHBoIED6dmzZ5s7xLVaLcnx8Wzbsy/gcUWrQyAQdZUtAkrhcqhT7Botit7Q9DJNmzaNV199leUrVjB+3Hh+86//8MGCxdTUNdC3Rxa/f+oxJo0c3vLJTMHqWsqyY5DS87zuAO/fI5mE2DBKq+rRe2s5+K26trW6oqQp/dOuXbsINQXRs2dPFEWhV/8RLdo5uHsTRfmHm45V19kICwlicO/089Z3qfNkQClJZ6vxAwq/Tx3JgZOli08pYazuwtSCVqvWML6I9e7dm/Hjx/PSSy/JgFKiaWRSnPimDszr9TJ//nwiIyOZNGli0+M1dbUAlJaV8ouf/5zEhMTTrhSNv2y1HblmpcWRlRZHSUUdR/LLKC6vI6+oCrvLjUmrMCJBQ1aIH7PZyJKvc9iyayd9BzdPfK0oGtAZQGdACDN43YjqYrDXQ0IXlNDWE3CnxUaSqu9P9tAr2X9gPzu272D+/PkEmc3069ePQQMHEh0dDYDN7sDhdFLXYGXR8tV8uWY9N0+d3PrNaQ1gq0MIf7OpeFFTiggwxR4eHs74CRP46quveP3TJSxds5En7rmdzPRU3p//Odc+8DjLP3iDkYMHnHb/CiLIgqivQrHVQoAR0XPFbNQxbkAaH3yxDVvJvqZ0Tyec+Dqjx6AOb2zy+fwUltUyaURPkuPCz3WXpbMgp7wl6UwJcbIMXdOGhcYfiqf/cDwxpSdE05QbWv1FPWK5cOFCpk+fzpYtWxgyZMiF7o50oXlc6i9Obfwy9MmcTzh8+AgPPfQgcbHqxo+y8nIGD7+CsvJyDu3bQ0ZaWssL/T71PaE/syTYwudFFB1G1JSB0YKiN3D4yGE+/uhjHnjgAZKSktq+XghwNIBGiya5mzpi2eIcP+LwNoTPi2I8OVVcWVnJjp072bVrFw67ndTUVAYOGsSrnyzkrU8+BdTNQjdMHs/rz/2aiLDAJR+F1w1eD5rMgSjGoMbHPIicHQi/r9lzntrvZ/74Z/7y3lz+/NMf8fTD9wLgdLnoe/VNxEZFsG7ue4Gfz1aLEpGAJqV7m69NZ91z912sWL6CbYs+QedxYNDp+Ofi/ewtqKNnchiKRqsuNzCZmf3pQmobGvjBww93OKDMPV5BVLiFnz0wBb3Gh9frZeDAgfTt21dOeV9gcoRSks6EEOB1qx+Egvans5uCzcbA8kQQqjd0Oq/fd+Xaa68lPT2dl19+mffff/9Cd0e60DTaU3JRtvxezz2ay2//8ByW4GD8KCQlJpKTm8u7771PeUUFf/z9bwMHk0Kob40znHoVQiBKjqrBZFBIU67FrMwsIiIj2bR5MzfOmNFmG+qoXQg4reqmFZ0BxRLW/CSfV13reFpAHR0dzeRJk5gwfjwHDx5k+44dLPjsM4L9bp5/6gcEh4Xzxer1+Px+3J420h9ptOB3qtWIGgNKbHUItxOCQlrtd71X/X+vlPimx01GI/fddD2/euHfFBSXkpIY3/JivQnRUI3wutUA7ywJIaC2HFFfTUFREXEDR5KdmcHuxZ9w87helC3eS065g8w4C7gdOGor6RJhIWFw/w4/R0FpDVqthpumDCYmMoT+/fuze/duAPr27XvW9yCdHTlCKUmddSKY9HnPfF3kiXWWGo06KnORBpUvvPACv/jFLzh+/Djx8QE+lKTLhxDqxpwAyc3tDjuvvvofjuXlczgnlz379lFVVYVeryMtNZXfPftrbp4ZuE41wt9U3eVM3kuirgL/8QNqdRh988Bo8+bNLFm6lAadmTlLvm53faEQAuz1ah7H9N7NEoELrxv/4W3qWsx2RlKrq6vZuXMnJSUlHMvLY9CgQfzjw8+w2u1snP+/gKNxwu8HRwOarv2bgllRfhx/6VGUVnaUA0y++wfkHM3j3slX8tBDDxEXp44ML9+wmcl3/YAFr/+zWbqik8/nUzcCdenbZvsdITxuROlRqC1j39HjFNdYUTQKwWYzwweogd6evCreWnaAqnonXeJDOXRgH3qNQo9uWeroa0gEii7wBkCfz8+xokp0Wi2zpg1j7FB1VHXz5s0t0j9JF44coZSkzvJ51JGas9lkoyiApqmOMTrDRTn9fd999/Hss8/yxhtv8Oyzz17o7kjfEafHR63DS53Li9PjRwiBTqsQF6QQphfotTSt8xMIPv/8c/x+H3/5858ICQ4mJzeXTz75hMTERG677TZMxlYCMNG4DESrO7Ng0udRK9ZAi2ASoH///jz86+fYn1/Ek/fO6uD6wmCEtQalphSik085qFXf8x0Yg4mMjGTChAl4PB42b9nC+vXrCdH4WfntPr49cIh+vXoEuJnGXzBPGakVThvtrSstLa+kS1oq0dHRLPz8cx64/340Gg0JMepazuLyisAXKo0/f1xOsLR7S60SHhei4CCioRpMwWT37kN2gPP6pEfx+LQ+zF6Tw9aDhZSV1zOkT3fQGxAuO4rfhwiLbhZU+v1+KmqslFU10CU5mpuuGsSg7JOj3MOGDTvzjkvn3MU5LCJJFyu/Tx2ZbCV9yr79+7npttvp0r0n5vBIohOTGT1hIosWf9GyrRO7v/2NG3ouQhEREdx111385z//we12X+juSOeREIJyq5vNx2tZsK+cJQcrWHO0hi0FtWwtrGdjfi1fHK7lYKWT0gYX1Q43PiHYsWMHBw8e4rrrrickOJh9+/fx8ccfkZGRwaxZd7QdTNIYRGnPMDVVQzXCaQVT4OTWuw8eYc/RAq4a0o8//eRxHrr1Rr754A3SEhP4+fP/DHiNotGCVq+m6jnlfaloteraRl/HqvYA6PV6Rl55JU/86Eckp6rlHN94621WrV6Ny+VqfrLPqwbWhqBTHvO0uxTA4XRhNBq47rrrqK6qYt8+dSf5idfd6XQFvE5RFDVWPYufPcLvQxQdUYNJc2irI4wnZCaE8X/T+5FhrCLUEkSVW8ehonoK671U1zZQX1pMTW0DxeW1HMorY19OCX6/4Lpx/Xj6/quaBZPSxUeOUEpSRwnRGEwKWvtdLD//OA0NVu6+cxaJCQnY7XbmL1jAdTfO5PVX/s1DD9zf/AJFAb/S+MGhvShHKR9//HFee+015s2bx+23336huyOdB06vnz0lDRwot+L0CIKNWqLM+hZl7fxCUGLzo1e86F0+jlfUs3L9JgYPHkSP7t3ZvmM7ixcvpk+fvlx//XVoW9vAcyKYPLHj+kxGJ4VA1JSDomk19c38L79Bq9XQJz2JvXv30r9//46tLzQGgcMK1hoIjT75eFAINNS02a/yqmpio5rvnNZqtWzac4ggk5HJ48awft06tmzezJUjRzJ0yBA116vXjWIJ73S97SCTEZvdiUsYiU3txdI1u6mw6ykoLgbAandTVWsjMixAici2N+23S1QVI+oq1bWrAf6trTY7f3/zPTbv3svWb/dSU1fP8z99nAhXAX+5byY2bSSHCmvILW2gzubEV2dD44bg6BiyM5Polh7LgJ6pREfIajjfBzKglKSOOrGrm9anuq+5egrXXD2l2WM/fPQRBg2/gn/866WWASU0pmPxn9zpepHp1asXEydO5KWXXpIB5SWoxu5hXV4NJfUuwkw6IoO0re641SgKXhQqXQpJZnA01JHedxgD+vVk7fp1LP9mOcOGDWPKVVe1vmv39GDyTFNo+TwIh1VtoxU79x+kW3oavbN7sXnzZvr1748CDOnXG4BdBw4FDCgVjRYhBIrT1iygVIIjEJWF6k7vVt6rP3jmjzRYbYwaMpDEuBjKKqv46POlHMw9xt9/8X9cP+1axo8dw5q1a1mxfDmbNm5k9OjRDOzeBV3YaSmL9CbwBw5gBVBaUUdQkIVjhSXs2H8cQ3A0rvJaSsoqKSgtA8DqFKzbkUNUuIW0xCiS48Ib83E2Tt2f4eiwcNoRFQWgN7T6WlTW1PKHf79BamI8/Xp0Y9XmbRw8dJAhPTIZ0DcbBRiVnYDfL6izu3E7HWj9XiJ69kcfHh2wTeniJae8Jamj/L4OrZ86nVarJSU5mdq6usAnnPjgvUinvQGeeOIJNm/ezObNmy90V6RzqMbhYeXRakoa3MSHGAk26jqUvqXeI5j99Qb2Hfx/9s47Poo67+Pv2b6bZHfTewJphIReAyJSRARs2Asq1rOfns/d+ZzePad33umpx50VxN5FRVAQQUF6770E0vsm2U3bPvP8MUkgpNPBeb9em2x2Zn7zm83uzGe+9SD9eyWRX2pj+8Fcxowdw+WXtyMmmxLREOV4xJMRkwBup2zZ78DNWlpuIzoinOHDh1FaWkp+nhxv2Wl8IYBKhdRQ2/K1AAuCMQjcDe1uduOUyxBUAjM/+4qH/++fzHjvE2KjIvh25gyeuOd2QG7xOGXyZB599FGSU1LYtmEtX3wzj8++X4zP52seSzAENL5nLXG6vWzfX8CGnTlER8ZQXFZKgEFFQmw4QSY91bYy8ovyARjcpzcBRh226jo27c5j85486hrcjTew6qMZ5d1EclTIpaR07W8fHR5G0bqfyFm5iBefehyASpuNMWMuaWEYVakEggP1RIZZCQ3QoK6tPKE5KZxdFEGpoNBVpGOLlktHa0vSWmTW19djs9k4fPgIM/77KosWL2b82DEdDC6csGA9E0yePJnk5GReffXVsz2VbiGJfiRHFVJlOVJVOVJDLb/WwhbTp09HEAQEQaBPnz54/CJrc+1U1nmIDtKhVnXd95mTk8u8RUvId6pYsn47RUXFjBl3KUOHj0CQJAYMHYagNyLojVxxzVSQ/MhCUpAtYlr9yRf393ka67+2fxlzutzodFqSkpIJCw9nfeMNUWfxhQCoNLJoPQZBpUIIi5VPAb62Y4pvvuJylnw4k+L1P+PevwnblhUs+XAmV106ptW6VquVq6+8gpuvm0qZV2DaXfeQmZnJF198gSiKYAgAlVouV9RIbb2LDTtzOJxfgcmo4/JLLkYURRYsWwpAbGwsFTYbi5b9Qu+UVCLCwtDpNIRYAzAH6MkrrmL9jiPUVDvkbHVd99svSn4f2MtAo+vwBkSv1xHVKN6bvnVWi5W0tA5qX2oNSLWVSMe99wrnPueef01B4VyjKXayqXZkK4tBY4JO0wOBJ//wFLPeeQeQixpfe83VvP6fGR3sRADEdmv8nW1UKhWPPPIIv//973nppZeIiTm+08m5g+R2QcFhxILDYCsBZwOS3y//mzRaCLRAVDyqxFSIjG0z9utCJSwsjBkzZmC1WtldWkeRw0XxzrV8tfg7DuzcSuGRg4RFxfLez1vaHcPpdPLtt3MR6ir52z3XoNJoefGLJRg9etw2N/2jNPzjub9SVVXNE394St5IpZEF5KmME25UKB0JGqNBj8fjRQAuGT2a5StWUFJSgqsxIcZg6KD8j3DMTo7FEi7HUVYVI5k0J9W6UC5TVIs5OoEn//Fvxt98F3/+85+55ZZb+Oc//8nf//YckzPiwVkPpiDqnR4278mj0l5PWHAAKpWKjNRULsnKYvbnn1PtqCEmMoJvFi6kzFbBHx58sMX+dDoN4SGBVFbXk59fQrQ5kogOWka2i7tBro/ZRrH19igpkmM609PTOw7b1OqhwQGuuhO2niqcHRQLpYJCezQJSa/rqDWkvfUkv5yt7feDJPL4o48w7+s5vPziP5k0cSJ+v7/zLGmp+cc5yV133YVer2fWrFlneyptIvl9iHu3Is7/EHHZfDi8F8ntQjIGgCUYgoKRtDqkmmrYuR7/oi8Qf5yDVJJ/tqd+xggICGDatGmMGj+RfWV1BOo1rF70LSsWziUgKIiQiI5rjUqSxIIFC3A11LNzxQ+oNFo0Gg29MzLxo2ZLmYtdlV4mXzWVadPvJiBAtrCh1Z9waaB2UclZyh1ZnKMiwihpdGtnZGSgEgR+/PFHiitsAMREtO6Ic8zBtmlFFQQBITIRITAYGhxy/cgToLnmpcGIEJ2MoNYwcOBAFixYwJo1aygvL+eqq69BkzqYzKtuRfT52JNdjO0YMdnEnx5+hOsnT+anVSt5/cMPUavV3HbFlfRpwxIoCALxYUZsdV7mrM3F5fYyYMCAZuv1FVdc0fnk3U75fNjFmzEJ2LJ1KwCRndSzFQRB3kCxUJ53KIJSQaEtJFEWkT4PiI2pkM3dbo57NNWUbLIyin7S01IICgig1uHgod/cR01tLVdee9157W61WCxMnz6dmTNnti55cpaRHFWIS+cjrfkRyVmPFBkLUfEI1jAEYwCCzoCgNyAEmBFCIiCmB1hCoDgXccnXiJtXInXUxeQCI6/aSb3Hj1mv5o7Hn2bOxsO89OlCevZqq4LgUXbs2MHevXsp3rsFQaVm8MXjUTWKRLVKIECr5nClE7f/DFjadQbZ8nmMO/h4BvTuxcHcfGpq61CpVFx++eXk5+ezYMnS5uXt4ve136FGZ0CI63VUVHq7932Q/D6ot8thAXHpCKaW+xk5ciQTJ07EYrHQKzWV/omxLP1xMQdzijiSd4iX357FXU8+yfibb+LmRx5Gp9PxwLTb+WbW2yz55FPeev6fJMXFU1ZW1jzmT6tWMfamG5l8x+0EaSTKCWDN3hJ+WrePf/zjH3z88cfNfcg7pfF4u9ouMTv7EKWlJV0bWx4YyaMIyvMNRVAqKByPJILXc7TepKqrBcybhCUg+Rl7yWgmT57Etm1bCQ0OZtPmLRw8eKjjzU+mhscZ4JFHHqG8vJw5c+ac7ak0I1WVIy6bBzn7kEIjEUIju1R6RdAbkSLjkXR6pC0rEdcuRvJe+LU2/aLE4UonBq2czR0aEYVG23mmb1VVFT/88AOiu4G8nRu476m/Y7a0bE9oNmhwuHwU15yBGw6dUQ5h6KAu5HWXX4rf72d2Y0/tpKQkklJS+Pz7HxnWrw/x0RFHa8v6fc01YSVR9jQIhvYrfgt6I0JiBkJYPHg9SPV2uWNMBzeNkt+L1FADrnoEawRCYp/WLR6PwWq1su/AAe55/A+U1/oQa8qYt+gHlq5eTYDJRGhISJvb6Q16wsLCKCouAgmcLhdvf/qJHDsqQLlHQ57HhNVs5Od1+xg1eizTpk2TLcpdous3xrt27+Lbud+SkdnxzUorTtDyq3D2UGIoFRSORZJkMSn6W3bCadGLuzPkbQRJZNjgQSQnp/DIY78FYNHiH+mZ1ANdq64ex1pBW1PlqKeozE5JhYO6BjcSEgadlsgwM9HhFmLCLV22FpwM6enpTJw4kf/+979MmzbtjOyzI6T6WsRVP0BFCVJ0QrfjIQVBgCArklaHsH87olaHasSEs35cp5Nat486jw+Ttuvvld/vZ86cOfj9fnK3rKTPkBFcds0N7Nm4ssV6apWAhITd6QVOb/yboFIjBYWCraDdWL7hA/py/aQJ/Onl1yivrCI5MZ4P5v5IdV09T917mxyi0jwgIAKCJHevEgTZCir623XtChodxCQjmEOQqkqQaqvl+EIB2XoqCEfLjUkSqFRyW8fgKLCEdyn+UhAEQlMHs25PNRfFepk++VJKs0YSERXFh/O+Jb+kuM3tYmNj2LF9B3a7nTmLFmIyGhneN4NlGzazw6HHJwlEhpnZf6SMbfsKuGRoWqdzOTopVaf3vm63m4ULF7Jr1y769u1LVELPro+PJGegK5xXKIJSQaEJqfFCcryYbEJoSpyhXeFXXl5BREQ4sjiUxzQHBnAwOxu9Xk9VVSUzZ87k6quvJjHh2K4P0tELUCOiKLLvSCnrth9h6958HHVOOfNTnkzzeoEmPWk9IrloUDKDeidg0J9g15Eu8thjjzFlyhTWr1/PiBEjTuu+OkKSJMSta6C0ECmqtZjcdPAwHy9bzfKde8kttxEaFMjwXsk8d/sNpMVGt1hXMJiQgsNh/3aIToCebbTGu0Cocflw+ySCjV13UP3www+UlZXhdVRgL87jb2980O66GpUKW/2ZsfQK1nBZyPm87XZp+fDlv/GXGW/yybyFVDtq6NcrhY9e+AsRlkBcHk/LTj5NXyu3CyEoGHR62b2r1sjZ6W187+WbkhAIDJbrVjbUILka5KQSqbFurd6EYAwEY4DcUaaDzPS22Hu4hP3VIgmxUQwaFIy/vpot+3OxO+x4PV5cThcGo6HFNlaLFVNAANt27uTrhQt59aknmLdqI34Eav3yd0WjVqPTqtm6N797glJrAEn+DrZ185Wfn8/cb7/F5XRy7bXX0rdvXzbv2tOtYxa6kfCjcG6gCEqFk8bn81NWVUuZrQanW3Y/BRh1RIVZCA8ORK0+TyIrJLGxR3fblsK6+gZeeuUVNmzazMYtW6murub9WW8x/fZpzev85tHHqKmtZfRFFxEbE01pWRmffjmH/QcO8sqLL3DnHbczf/48PvjgA4YNG8748ePQNV0IjxFElfY6vv15O6u3ZuPx+AgPCSQ1IRyNpqVoEkWR2no3Ow8Wsm1fPn1TY7lh4mBSEiNOz3sEXH755aSkpPDqq6+eVUFJQTbSoZ0QHI7QhjXjpW8WsHbfQa6/aDh9e8RTanfw5oKfGPr4M6x5+a/0SYxvsb5gCoT6GsStq1FFJSAYL8wLmtsvW9mbYh99Ph8ulwun04nT6cTr9bJjxw6cja/ZKirYu3cvWo2GnB1rGXfNzcQlpbY7vkYlUO85Q+5KkxnBHIpkL0MKsLYpbgx6Pf/64+P86/eP0uQJ8Pv9bNy0kSNHDpPRO6PF+pLXLVsSQ6IQBLW8jc8rnx80+nZvJgVBAGMgGANPaeCKJEkczCsj0KSnyKXF4VXRO1DN6GEWPl+0kCq7ne1bNxMSHkliYgJ6vR6Q0KqgX0o8f5rxXwZl9CY0LYuKNrL3gwIM5JdU4fG2H4vaCr1RtiD6fS3qgIqiyIoVK1i1ahXx8fFMv/NOrFZrN4+38bPTQX1LhXMTRVAqnBCSJFFQWs3m3bms234Ee20D9U6PfNeKfHINNOkItQQwclAKQzITiQ5vP1bodOF1ufB7vajUarRGY8euzKa2ikLbrhabrZLn/vkiCfHx9O/bh+UrV7Va56brr+PdDz/irdnvUFlVRVBQIIMHDuDF5//GVVdeBcj1ADds2MDSpcs4dOggN95wA1FRUc2C8kBOKe9/u5acQhsJ0SFYgto/sapUKixBRixBRlxuL7sOFZFXXMmNlw9h7PBep8V1q1KpePTRR3nyySd5+eWXiY2NPeX76AxJkhAP7EQQ/WBquy3b49dM4pP/eRid9uhp7saLsxjwyP/yr6+/56MnH2o9bkgkQlkBUv4hhF79T9v8TzV+vx+73U5VVRXV1dXNv499vnr1asrLy3nssccI6j2SyvxDOJ3OFoW0CwoKcNbXM2/ePLRaLQaDAY/Hg0ajoWDPJqorK7D59fzjH/8gNDSU3Nxc/H4/O3buJCw0lNDQUEB9xmoVCIIAUT3AWSv39G4riaa5w9XRPoNqtZqknkns27+fmBgH1sZYUEkUweNCCI2BAGvLUBe/H3B3KCpPB7X1Lqrs9QSaZEtqnV/NZoeBMJ0Wr0qHTqdlWGYq1dWV1BYeQhMcTFhYGJJKw9oj+Ww7eJjLrr6LA/V6pDakbqBJT6W9nvKq2lbL2kVvQjAENnYqkgVlVVUVc+fOpbikhLFjxzJq1CgEQeCNj77AXltLcZmcbb9g2QqKGrv4PHLHzViCjvufeVwIOgOY2k6IUjh3UQSlQrepqXOyYPlOlm86hKO2AavZRLDZRFxkcLM10u8XqWtwY7PX8cl36/lh5S4uG5nBxIsyMRnbb5V2svg8Hop27qb0QDblh7KpKStH8ssFlU0WMxFpKYSnJJEwsB/GYxMKmlofdmBbiI6JpiT3MFER4WzespWhF49ptc7NN1zPzTdc3/JFSTqmpp2ASlAxImsEqalpLF78IytXrqDSXsudd99DYXktM79cSUVVLRnJ0d2y7hr0WnonRVFUZuej79YjShLjs9JPi6icPn06zzzzDDNnzuRvf/vbKR+/U6rKkYrzwBzS7n9sZO/WLrzUmCgyE2LZX9B23JmgViOptZC9Bym170nVGOwukiRRW1vboShs77Wampo2x9RqtQQHBxMSEtK8TkRYCIERESSEBWE0GuWHwYDBYGRW/m6Kcn08/fTTaDQavF4vL730EsOHDmb7t+9w+Q23M2jMJKrt1VRXVeNqaMAvinz5yYeo1Bq0BhMRiano/Q38WJtLTU0N5eXlZGdn06NHDzSaU3/JEfQmiOqBVHgQyVXfOpHmODHZRERkJEXFxWRnZzN48CAQJertVRS5tJTVuXHs340oSmg1asKDA4kOCyI2LAg1KllEnSFR6fb48PlFTIaj500JgQqPhhqfGpdfxX51AvqQCA7u38/eVeuxhkYw6KJLePGDT4nq0Ye1Ow+TNb5tC6RWo8bnF/F4um6hFFQqCI6UE5Ekke3bd7Doxx8JDAzknrvvbnGT+cq7H5FXdDTD+9vFy/h28TIAbrt6SgtBKUmSHGIQkSjHpyqcVyiCUqFbZOeV8+F36ziYU0ZUuJn4qJg2BYtafdRyJkkSZZU1fLloM3uyi7nzmpHERwWf0nn5vV4OrVzD3sVLseXlI/p86AMC0AcGoNLrkESR2gobtpw8pB9/IigigtTRI+kzaYIsLEUR+aLTvoDQ6/VERcd0v0Vi09tzzDVt+r338eHHnwDQIzGRCpuNV159i5FXPYSoMtKrZ+QJCUFBEIiLCqao3M6cRZuJDrfw9P88xPz58wHIzMxk9+7d3R73eMxmM3fddRezZs3i6aefxmAwdL7RKUSylSK4nUgh3XPtS5JEmd1BRkJc+ysFWaCyDOocYO7e51SSJJxOZ5eE4PHL7XY7fn/rz5YgCFitVkJCQggODia40QKVmpra4rWm58e+FhAQ0Pw5mj59OsuXL2fGC8/z/d5yAvUaDJqWn3edTodKUDULv0OHDuH1eomLicHZUM/CT99h4afvtJrjzgUf03/kWK797TOU1fmo3LeBjRs3Yrfb2bRpE6mpqWi1WlJSUujVqxe9evUiPT29+XlIO9nKXcYSgUoUEUuOyFnUhkBZ9DQlw7QV+whExcTyp3/9h0P/epNdBw9T31DPyIl3EN97RPP71vS1NRl09IgO5uJBSQzul0xQUFczok8OlappHm3bfSWgyqsGAghKHUzf2Aw8Hg+LFi+goa6GG+59mnfe+4A9e47GMHq8PjxeP5Ik4fPJglvVjU5JAJjDcHGYTUsW8cv6zQwcNIjLJ05Ep2spBI+s+KHrY7qdoNUjBJ++kB2F04ciKBW6zMHcMt76YgXllTWkJ0Wh1XQtC08QBKLCLASbA9hzqJg3P/uFB28ZQ0L0SV5EGqkuKmbz51+Ts2ETWqORsJ6JaDsQOH6fj9qyCjZ/OZeCbTsZesv1xPfp3TTZLhxQU81JulE9o6lF49HtwsJCmfHSv7CGhpGSmsZVt/+ezz75kBB9PUu8ddhKi7AEh/Hk8++1Gq3GXsnib9+nKPcQtY4qVCoVoRExDL/kCgZkjSM2wsr+I2V8tXgLDzz4MNdffz3PP/98VyfbJR555BFeffVVvvjiC6ZPn35Kx+4MyW4DhG6L7s+Wr6Gospq/3nZ9+yvpjYjVNuw5h7EZgrptMWyvRmdgYGAr4RcbG9umGDxWFFoslhZFrE8Ws0GDUavG6fW3EpTHs2fPHqKiouiRnMLTr37Qavn3n77D/u2b+f1LMwkJjyS1Tx9Caz2MvWoUKS/9mR49epCcnMxTTz3FgQMHmh+ff/45+flHC8qHhYU1i8tjBWdSUhLaLpQ0EgQBQqJRafVIpblIDQ7Z0qzRtmtlliQJe00dHy/4CVOAmQBLFPUNhwkNDiIzOarFZ0sUJeqdbg4X2dibU0rSxkNcP3EoA3rHn/aKAEEBBox6LS63F7rgBTaZjKgEkRWLvmTYJZMxmQzEx0SxcuVqdN5qfH6RBT+tRRLUaA2B+Hx+1Go1C5bvxOP1I3axVu6ylav491+f5s7xw7ntphtISc/ofKMOkPw+8HkQYlIQDG2HsSic2yiCUqFLVFTV8s7Xq6moqiU9KeqETqJ6nYb0pCj255Tx7terefKuCZgDTy7wuuLwEZa/+Q6VObmEJSehD+g8kUKt0WCNjSYoMhxbdg7L/vsWl//hMSJ7JnStDKQgIDVepCSaenrTgRgVjvb9Pqb/d0BAANPunA6CioO5ZYy67DpqPnuFstz9aI0WTIHtx5w21NVQU20jc9BFWEPC8ft9HN63nbkfzcBWVsiEa+4kKT6U/UdKGTngIqZNnMA777yDzWbrwgF2jdTUVCZPnsxrr73KHTdMRXDVy9mtnoajXUYMAbJL0mRGOJVt1KptcqmfDlbx+324XW5cbhdut5vdufk8/Mb79I2LJkkPP/205JhkFBcul7P5eVqgjpl/m8EvRZUtxtTr9a2EX3Jycrti8NjnXRFGZwKNSqBniJFtRTVYDRpyD+5lwy+LASjJz6G+roYvZv4bv9/P1t37mTrtbgxGEyMundxqrPXLFnFw59bmZQ6Xj0C9mhjz0cxpo9HIhAkTmDBhQottGxoaOHToEAcOHGD//v0cOHCAHTt2MGfOHOrq6uS5ajQkJSW1Epu9evUiPDy81XlICAqRE2MqS+TWiM46+Z5P3dj2EUEOb/H7KLM7+XpDCVNufRqXx41e4+GHL15Fo1G1GlelEggKMBAUYMDr9ZNTVMlrnyxj0iV9mTp+QKtkuVOJTqshPjqEXQcLu7yNs6EOj9vJ6iXfsHrJN62Wb/v+X4TGZZI5djoOjxNBkFi97TA1dU4O5ZazZtthRvTv2eaNjNvt5umnn+aVV15h/PjxjL9hGlZfPZLPc8JuasnvA2ctgjUSITS68w0UzkkUQanQKaIo8s1PW5nz/ivk7V0HQER0Ao/+5c1ujbN26XwWfT27+e+YkB+5/9bLTvgO315cwvI336E6v4DozN6oulm3TK3REJmeSlVeAXmbtmIyBxIU3kErtmOob5C7OKzbsIEhgwYQbLWiUqlRadQYDAZMRhNarQbhWH+3KIFKRC4ppDrmN2zcmUODy8sdv/k9TreX779fSP7uZeh8TrxeH1pty69qVFxP7vndCy1eyxpzJZ+8+Szrl3/P+KumodNqCDDqWLnlEGOGdaMkSBeRJJE/P/YA8z54m/INPxMeFiovOPbC7bDJNfk0OgRzGEJwFEKAudOxfT4fNTU1OBwO7HY7DoejxfM+hbsJaKilxCvicsmC0eVyNz534XK5WySbqE0B/HfDHlSSxKWhRjZu2IDRaMRgMGI0GggKCiQ8PKwxntBIJB7+duPd+FP7tRCFxs4Su84TeoYY2VdWR4NX5PDeXXzyasvPUtPfoT3SyczomuVJkiRq3T76Rwdh0nX+XTSZTPTv35/+/VsmP0mSRElJSQuL5oEDB/jmm2/Izc1tLhweHBzcptBMSUlBH5GAZA5BqK1GcjvBVSf3ngYEtZZyn4FZ6wvZb1czYPBAysuK2bFlXZeOU6tRk5YYjs3h5Nuft+Hzidx4+eDTWs0iLTGSjTtz2i3TczwBQRZuuu9/KS53UGqrwevzU1pSiGQ/jLe+gr5jbkdvMqPXyeeVpPgw+qTE8KNahcvtZeYXK9h9sIgbLh9MiOWoa3/v3r3ceuut7N27l5dffpknnngCAQmp5DBSZYksDHXd+45IHhd4nHKh99jUbteSVTh3UASlQqfsOFDEum1HCDTqMAWamXT9fRhNR08yoiiyefWPbFq1iKqKErQ6AzHxyYyZfDMJyb2b10vNHIQp8En2bl/Lvu3rWLU1m3GjBpCaGNntOfl9PjZ99hWVOXlEZ6Z3W0weS0hiPD6vh6q8fHQBAehNnVs5DY0B8pFRUZRW2LBVVmExB6HValGpVHJTRpUKvU6HTqcjKCiQ2voGnF4/YRGRcvedRuoa3GzclUtYcABmqwUzcPfdd/P6P3ZRUVrAzFkzuebqq4mPj297MsdgDY3E69mM3+dDpVMTHW4hr6iSg7llnW7bHSR3A1JZLkOjgyjvn8GG7bu48upr5GWShMfjaRR3HlxOJ6LHhcqbTb3Hy/6KGrbllWGrbi0Um57X19e3u2+DwcCfhqaRGWqhQlJjMOjR6/VYLBYMegN6gx6D3oDBID/3inDba++BVsuyvz1F/+SenV/winNJumgUqvQBp+5NOwcQRRGbzYZarSYlLIBdpbWMvfomLp16c6t158yZg8PhIDi4/TjSJ/7xGk/84zUAqp0+LAYN6REB2O12fD7fMXVTu44gCMTExBATE8PYsWNbLHO5XGRnZ7cQmvv372f+/PnY7XZArkIweNBA/v6XZzAYjZgCAgkLCyU0KoGAwAB8PpErJ1zD5nVy+8WI6AQe/t//sG+3/viptDNBWLvsexbNlUNRPn8ZTEvWcfWErG4fa1cZ0Due75fvoLqmAU9tOft3bgCgqqIEl7Oe5T98Acg3mun9hqNSaXHp4qhRGQlPTMBk0GGwRHNwXR4IAhE9+gJyLKVGrSIm3CofmiBgMuqIDjezdP1+yqtreeDG0YQFB/LWW2/x5JNP0rNnTzZu3MiAAQOOTjA6BXQmpIp8qHcg6Y3yTWQ73zNJkuQOR+4GUGnk3ujhCV3qcKVw7qL89xQ6RJIkVm/Nxuf3o9Nq0OkMDBje8iS/eO57rF06j/7DxjJs9BRczjo2rfqRd//9FPf9/l/E9ZD75YZHxRMeFU9VRTH7tq+j3ulm/Y6cExKUh1auIWfDZsKSe7YrJr0+H5/+8jPLd26nzuWkR2QUt42dwMDklFbragwGfG4PJXv3kzhk4DGWxbbRNJ74kpOSmTD+UmQLpIhf8uNyunG73TQ4G6hx1JBbUIBapeK5f77IsuVyZ5GmwPXbb7+dkKie7CxSkZwYhTvIgF6vR6USCA4OxlVfjdFg5L333mfEiCzGjh3Xwlrp9bjxeFx43C5yD+5m27qfie+ZjlYnXxwNei0+v5/ickeX3ldJkmhoaGgWd8eLPYfDgcbTQL9QA4FaFYU2OwWlNqqrqsg+koPb45FjCNuJw4oKsRITEUqQo5zVu7NR641yv+JevbBYLFitViwWS/Pj+L8tFgt6vR7/hmWwYz3EJLa5nyZcHg+X/+VFcsorWfz3pxiQktT5e+CXC9urAju3pJ5vFBQUEB4eTmZmJhu37qC0zk1FvYfIwJYXf7fbzaFDhxhznKBrjwaPH49fZGh8MFajlgEjxrBjxw4A+vXrd8rmbzAY6NOnD3369GnxuiRJlJeXN4tMR3UVRqORXXv2YLPZEEX586jX6ylvMJBfYkNvDGD05TdjtliRgLhY+YZtx+ZVLF80hxpHJWZLKINGjOfiCdehPuY8k9p7IKY7Hmfvjg3s27GOH1buZtiA3qetNFpcpJUB6fGs3HwIT0U2S7//pMXypr8HZo2nV99h7DpURE6RjWCzqblsVlRUFAcFmi28kiThqHURERpIqLVlgpE50Eh6UiS7DxYz4/0f2br0IxYvWsDDDz/Mv/71L0zH3XQLKhVCeBxSoAWpohCptqqxY1BTRnxTS1qxscWlH9QahKBQhPA4aKeGqML5hSIoFTqkpMLBroNFRIaZ2dfGcr/fz6aVi8gcdBHX3/Vk8+t9Bo3i33++lx0blzcLyuMJsQSwYWcOV43t32GtxePxeTzsW7IMjUHfYczkf+Z/w9q9u7lq+EiiQ0NZtn0bz332Ic/feQ8ZCT1arOupb0BrMlKVX0hEajImSycXhibBJPrlYujyi6hREWA0EmAyEBJshehoMnrLXVe+HzmKg9lHOHToEP/85z85ePAgR44cYeEvW6nTxLPmlyoATAEBhIaEUlVWitfrJSsri8LCAjZu3MTBg4e4+uqriY+Xs5TX/fIdP837sHlaPdP6MenG31BZWdXs/i0uruKLb76nsLCQmpoaHn/88VYi8di/j3UVH4tKpaJ/WhKPXDMBj97KXkcDOoOBmJgYHA4HFouF9PT0ZsugQS+LY4Oh0Vqo18s9o/1+rnDW8HtzGEJ8ersdTjpCCA5DQurQBej3i9zyr9dZvz+buc88wYj09otxt8DtRDAYwRLa7Xmdy/zhD39g2jS5CH9gYCAmnZqRCVaWH6mirK6lqDx46BA+n69L7u4Gjx+7y0efyEBSw+Tv46xZs6itlesahncxjORkEASByMhIIiMjGT16tPy99Lq4+OLR+EWRans1NlslOfnFvDV3KwIigkqNqDZjrxNZtWoV+OQwliP7t5OaOYw+Q8ZiK81n6YLPqLKVMfW2R5rfn/CoOMKj4qiylbFvxzpKbTUsWbOXO685tYX+myzKGo2GK8f2Z9/hEjxBQ/jbWwsAmPvhDLatP2ppvfbOJygorSa3qApLoLFFDVatVktcvylUVVXJN45ODzqtmt5J0bhd9Yiiv0Ufcp1Wg9pfy2uzF6JxFtOzZ0/eeOMN3njjDaZMmcKCBQta/x+MQRCfjuBugNpqJGctNNTKvdGR22VisiCYgiDQCsYgRUheQCiCUqFDCkqrqa13ERdpbXO56Pfh9boJDGq5PCDIiiCo0GrbdyOFmAMosTspLKvulqAs2rUHW24eoT0S2l3nYFEBq3bv5K4JlzN15MUAjOs/kEfefJUPflrMv+75TYv16+01SKKIRqfDXlTSsaCUpMYyQ9BcyR2O628rtFxfAJNWw4C+mQzo35+FCxdSVVXFmjVr+HHVHt75egURFi02m43y8gpsNhvFLjcel5tvvvm6eaiqqkree+9d4uLi0el01DmqsCYOwe1swF1bTm5uLrNmzkTQHM1yF3QW1jhtUJWLIAj8/PPPzda/qKioNq2DbVkKA4x6yN2DVO+AgJa9wxcvXsyOnTsZNmxY57UG1Wokkxmpxgbl+RCd1O2LihAWjWQwQUMdBLSd+vr79z7l+w1buWLYQKpr6/j0l9Utlt82dlTbY9c5ICqh3XHPVzIyMsg4TiBGmfWMTgpmdY6d4hoPYQFa9BoVe3bvJjY2tsMuJ6IkUdngxS9K9IkKZGi8BXVj6Znhw4efzkPpGo1FFdRqNWGhYYSFhlHsEDCZ84mKCMNdU8pFF11Eg7OBhoYG9myRGxWExSSR3O8S/H6RmKBo6hvcbFu/FF1QNKGRcXJ4hdmMVquloLAxUcbXwC/rdzNxVG+iwqyn7BCOtSjv3r2bq8cP4INv11LlqG+ObTw2DMnl9rL/SAm1ZYcoLd+PozyPekcZhgArF9/0F2JjYygtLaGktByNzkRGSjRhwYG88fyjlBbmAOCoruC5317PkIn3sGnTRhKSepE18jeMTg8gQC/xxBNPdDhnQRDAECAn5CEXixeaSq2p1Ge0tqvCmUURlAodUlLhkBN226lRptXpievRi23rlxKflE5iSiauhnqWL/oCoymQIaMub3dsjVaF3++n1OYgMyWmy3MqO5CN6PN1WBpozd49qAQVEwcPbX5Np9EyYeAQPl62hAqHnXCLtXmZp8GJo7SCoIgQHMUlRGf0atPt/fqbb2KvtlNcIhfG/v6HHylsLNr76IO/wWKxICEhiiI+nw+vz4cAVFXbcTqdSEgcOpzDxo0bqaioYOLEieRVipS5LPgaKnC7XM1WAr/H3cJioFKpmmPSVCoVBoMBqzUJvb53YxyhgT0bFlFWeIgb7vg/AoPMGAx6Smz19O+dyA8f/xObzXbCdSjF0hykertsYThOAA4dOpTVa9dy3x//wk/rNlHtqKVfeirPPfEwE0a1ji0TVGoknRGpqljumRzUzRJSwWEQ1xPh8N52hd/2I3kALNi4jQUbt7Va3paglPw+BL8PVWqfX82FL8ZsYGKvULYU1pBTJbdezC8uZdSItkWhT5Socflo8PoJMWoZGGsmKdTY3MrxnOG46UiSxJrtORj0GppOZ1qtBovWjMVsZptTLvwel5iGKEoMzxqOSlARGxXCR4e24K23ERU5GLdb/l6WlZWRkyOLsIXffYPKGMUnb/6NKLNIfHw8cXFxxMXFtXgeFxdHTExMlwq8H29RBhg7rBe26jq++2UnXp8fCalFGNKRQhuOOhd1pXspy9lOUGgsetPRm+PAwEACg6wUlVQwZtRgevWQw42uuvUR6mvsfPvxf/C4Xfh8XrZt28qkSZMZOnQoew+XoLYkMu36UTzzzDPd+zeoVC1ixk8Wye+V61X6GwvWqzVyItAJeDoUTi2KoFTokOqaejTqji8U19/1JHPeeZGv33+l+TVTUDCjr7yH0opqKu11aLUatFotWq0Wp1POtnS73IiihKPW2a05lWcfQWvs2KJ5pLSY2NBQTPqWojMtVnYV55SWtBCUAJWFxQSFhSCoBLxOF2qdrrmfscvlxOP28OLL/6awqKh5m7nzv2Pu/O8A6JPZm4iwULw+H1JjzFaw1YLT5WLF6jU4nS45MzU1BZPRgCiKBAUFkRYcirbaQGx4GkajoTHz2MjP38ykvLQAS0goVVWVWK3BDB48iP79BxDQjqs/NEjDh6/9BclbQ1SU7OItrXJh7YYFuC0kjxOpqgS0hjaFVkhICMt2HmTjnoM8fvc0Unsk8NE333HFvY+y9JO3GTVkYKttBJ0Bqd6NZCuCwOBuWSkFQUCV1g9/3iGor0VoQ1Qu+2f3LnwAQmUZhEVDfHK3tz2fsRi0jEkOoWeIizlLVqExBhLRM53iGjdNX39ROlr632LU0jcqkOQwE0H6c/Ay0lwr9mjt15p6FyW2GoLb+S74/XKoR2hYOCqVQM6RHNLTe2FpPE/UVJfRs2dPeWVJAkFFTcURlv/wOdPvvIsjxTX0CL+EuKAGCgoKKCwsZPfu3RQUFLRIMlOpVERFRbUpNpv+jomJadOirFaruGHiYIx6LQtW7KKm1tVc8FwURfKKK9GqVaQMmULGxTehUqnZtmQ2ddUl+P0i9lonwaHh5GfvJiZkZHNmenzPXiz+9n0EtQ5Rqwd3Nffff39zuEJEaCBb9uRx5dhTFw/bHSSfB2qqkOzlSO568PlAarR6CipQaxEMJgRLOJhDETrwjCmcPs7BM4HCuYTfL7W60z8evcFIeEwC8UnpxCVl8t28r2lwFPLjV2+hDk1HULW8c/TXyoLs1ddeRTBFMveDlzF4SzCZTBiNxha/j3/NqNcjrNuKRq1GX1qMVqNtFqqaJtGq0VJRXY3FJGebqtVqvF4vLqeLuupqALbt3o27zIbT5cTlPCoah48fw6iJ45n5+utUNTQ0z1mlUjF86BCWfDcXW1UVarUarUbep0ajaX6u1WjQND6XM7y1eP0S/QYOwqA3yHXdJIkvvp6LrbKKr7/+mv1HSvnH2z+QGBOKTqshPz+PzZu3UFRUhOhzER0dzRVXXEGPHj06rbvu9XoAcDmPzt0viiREn2Q8YE2l3BItwNrm4o07drN+134uHZTJI7dcS2JiIndMvYJ+k27gqRf/w+qvPmxzO/RGpHo7grMWTN1MgontiZA+AHZuQDIYTzpDVKqrAUFAPfhiOYbyV4ZKkOtTrv70Nfw+mNL3tzhcXurdfvyAXq3CYtRgNWgID9Ch66Qo+llFEGSr2DFdrUpttdQ1uAmNbjtr3drYdcleWcqwviM4ePAQMbEx5B3eC8jNBIBjQlyE5u9jeEQYgsFKVLiF5x69usW4kiThcDgoLCyksLCwWWw2PV+yZAkFBQXNtTfloeWY0PYsnf2S4ugZewmbl3xAmU9k/5FSDHot9poGAox6DHrZHe73i/j9IqIoUeWox2o2MbRPIl/kbmHL5s1cccUUAPKOHGTNT98iWJMJs2qoLq1rEfsaaglk35FScgpPXR3briCJIlSXyIk+HqcsHjU60Bsby5Mhhx/5vUj1DqTaagS9ASk0FiE0RilBdIZRBKVCh5gMWllUtoPf7+f9/z5Dz7S+XHHTAwAMGDYaW1kRr/3tYYZmJnLx5Tfj83nxeuXHhl/ms31tMVdfdTUldj8Dk8eREqmloUGOZXI6nS1+NzQ0UFpaSkNDA666OuIKyvH6/DSIPrxeHz5/6yQSGx7qqqv573//S3xcXHOsk7vxarBz925qTbnH1CI0YjabKTp4hOo+mUy8fCJuQK83YDQaMAcFEmAwoNao6S20PElt2ryFWZ++zy8rV5Kbl09oSAhZw4by9788Q1qvtKN1GZtougpJEoh+YiIs6DQCK1dv4MC+7VTabISEhBIaFoa7wcH111/X6vjqax0EBLWO89yyZolcdqXRwubx+lCrVERHnHj2qSRJSI4KOSuzHUX7zY8/o1armTBiCBs2biQxMRGDXs/dN1zN06+8TkFxKfExUa03VGvBVQ919m4LSkEQUA0YiWgrRSjOQ4qKP2FRKTnrEWqqoP+IX5118ljsdjuLFy/mpZdeIiWs8/JZ5zQqTYvWi/VODx6fH5225fd3/YqFuJz1OKorANi+cTlulwun20ONLY89m35CpVLja7xZg8ZWjkJLQa3XaaitcyGKYouC4E2tM61Wa6vs9GOpqalpJTabni9btoyCgoJWPdsNBiN+UWTXpl9wqazYnSqMBi06nQ6tRoNOp0NCQqVSMbRvT6LCzOi0aoYMHsyatWu49NLxHDmSw5x3/onaaOX2ex9l+6r52MtyWr6VjTECJRVdqxZxKpA8TqTiw3KstVorN0cQ2riJUavlh84gn6vcDVB8WD6nxCTLjRUUzgiKoFTokMgwc7s9ZAHyDu2mvDiPSdff2+L1sMhYwqPiKM4/hNnc0h15MNgKQEpqKrpyJ3fcOp7h/Xp2aT5el4s5TzyFIAgERch30JIoyfGKjYLV6/PyzGcfEmgwcvv4y5GQUKvUGI1GKhvqeOrj97hyyhQuHzKs1fh+r5eqfdlcfON1BIUGH71oiL5G71lrQfXiv2ewZt16brh2Kv36ZFJaVsbrM99m0EWjWb9qOX0y27iINI6Tk32IPz/3d77+eReSKZYe4TpiUyKxBlvZuXE3HldDqxpzACsWfUn+kX2kZAzCGhJOQ30de7etoSjvEFljriQ0Qo5JLalwEBsZ3BwrdUL4vXJxaHX7MUrb9u4nrUcCY0ZfzA8LFzZnfQ/tLx/79n0H2hSUgiAgqdRIztouNSlqtb0xANXoKYgrFiCU5CGFRnfLuihJEjiqEJx1kDkY1ZDRv+qs0/nz5+Pz+bj++g5aU54vqNTy91eUBWB757E1S+dhr6po/tvv87J7q5ygk6vWMHHqdFYs/gqd3nBMq1WhDc9NY8/tLrdjbYnZbCYzM5PMzMx216mpqaGoqKhZbL722mtkZ2cTra/kQHERte5gqpwOhKbmXKJPblPqdbJm+WLMZjNmsxmTyYjf5+PDDz+iOHcfoqua+/7nFRKSkti+qu19azWqMyYoJbcTqWCfnABoDOryjWJTQpDk98lC1OeRs84NZ6bv+q8dRVAqdEh0uBWtWo3b421zeV2tHWh0TRyH6Pcj+v2tXm+iweXBZNARFdZ165lGrycg2Iq9uLT5NUEloNVp0eqOCp7w4GCqampISm5Zd7D0iOxWCglqO5HD0+DE7/UhqTVysLfol10q0jF9uI/jd489wmcfvIdOp6UpZuumG66n75DhvPDSK3zywfst1ne6nFRUVFBXX8eqlcspKS7ikXtupNAZSk3RLhbNadmB6Ngac02CMq3vUKpsJWxd+xMNdTVotFoiY3sy9Y7HGZg1HgCf309NnYurxg3AoD+JgHW3U64d18FJubTcRnREOP379ePnn39m06ZNXHrppUSHhwFQXF7R7raoNeCsQ5LEti0QnSBYQlCNvRpx83KEw3vlHs7WUARt+23gJEkCVwNCdQWYAhGGjUPoM+RXX1h5zpw5jBo1itjY2LM9lZNHEOSbIMkDkoRRr0WrVuH1tTxXPfnc7BZ/S5JEeWkBroY6wqPi0Wp1LPrmPXqkZNJsnWwjjtjr9REUEHhaO+Y0CcLeveWGEStXrqS6upoff1zEguU7+WzhRpLjQqmtrWnsNFXDygWF1FS7EUWR/Px8ampqcLnkuPWSkmLE2gICQ3uwefse8orKcTgcSJKEKEotkjFVKhVuT9slxU4lkt+HVHhAFpMmywklxwlqDVKABam+BgoPQI8+J9wWUqHr/LrPngqdkhQXRkyElVJbTZvLQyPkC8+uzStJzRzc/Hpxfja2siKGjJrY7tjllbX07Z3cbkmithAEgYjUFMoPHe543pHR7MrJocHtapGYc6CoAICeUW33i3XV1mG0mAkMDz8ag+VpTBoS2jY9jBw+vHFZY8qCSkVqWhqZGRns238AkHt+FxQUsHnzFvbu3UNxcTEgMHToMK64eirW0HBmfbmSX1Dx7BvftdlD91hSeg8kpXfrRJdjyS2qJCk+nP6pkdhsNrzetm8KOqVJUHcg9pwuNzqdHMs6aOBA8vPz8Xq9GPRycLzL5W5/fEEli0lRhBO8GAtBFlSXXAGxSYi7N0FlKYgSksEIeoMsWiVki4XLieBxyct6pKMaMAIhoutVBi5UqqqqWLJkCTNmzDjbUzl1qBp7ePt9RIYEEmDUU9fQwWeRxvjF6KMlyQ7u2YwkiST3amwRKaja9FTUOT0M63f6a262h0atRpJAr9eh14cRFibfzO1eG4rPVcdtt93avK7H4+XAgQN8/dHrqFUSqf1HU11dzcGDB2koy0HyevnHP/5BaGgo4eHhhIeH4VMFEBd2+pNdpIpCpLpq2cV93Hlw0849fDT3e5av30RuUTGhVivDB/Tlb797mLSeLZscCIJKLk9W74DyghMqT9al+R4jvn/N3g1QBKVCJxj0WkYPSeWj+esQ2/DlxCamkNx7INvWL8XlaiCl90BqHdVsWP49Wp2OEeOubmNUGa/Xz8WDU7t9Rx+e3BNJkvD7fKjbKb8xMqMP365bzeItm5rrUHp9PpZu30pabHyrDO8mnHYHSVlDj3bfabogSY2CsS1/lgAI6sa4KgEQ5LIi5WX07pXO+g0b2LJlCxUVFYSEBDN27Fj2HzrM9p27yBgwmMyMDHbv2cO1lw0iu6CCwwU2UhLCT+rkVF5Vi4DAdZcN4rGHf8P8+fMBOnSntUvzNNq30hoNejyNVuwhQ4awbt069uzdi84klzsxGDq7EAltXqS7NU2VGtL6ouqZDsW5iIVHEMqLob4G3HJlATRaiIxDiIxFlZACYVG/+otAE/PmzcPv93Pdda1jds9bBEFO4kAiJMhAeHAAxd1w23o9bpYu+IwgczD9Bl8s32S2cWMlSRJ+v0hCdDfLX51CQqxy3cfjLYttodNpSUnuidRQgjU6jbFjRwPy6W3hnFkc2b+di7KGYnc4sNfUcuTIEZyigZULP0Z05GGz2bjuuuuaM9EzMjLo1asXhg5KuXUFqaEWqbIIdIY2E2r+Net91m7dwfWTLqVvr1TKbJW88fGXDLn6FtZ+/RF90lp2QRNUqsbyZCUIltB2kwq7g8frY092CblFNg4XVFBcbsfvl9CoVcRFBdMzLozk+HB6J0Wh0fy6koIUQanQKVn9e7J84wG2tHNnf9sDz7D657ns2ryK7D1bUWs0JKZkMP7K2wmPimt33OT4cAZndtw6ry3iB/bDHBVFTWk5wXFtW5Z6xcVzUUYfPlq6BHt9PdEhISzbsY1yezWPXjW1zW3c9fVodFqSRhwTW9kkIJutEo1/N2d6cvwTJCT++/obFBUVM3TQIJYsWULv3ulMmjSJnj16IAgCwcEhTL/9dpBEAoOCQJKIDDVz+1VZvD1nFYcLbCTHh52Q2CmvrKXKUc91lw1icEYCzz33HI888ghwtJ5dt1BrG6217VsQoyLCKC4tB+QSQsnJyWzetImeGXLP4JiIDiw3ol8u83EC7u62ELRaSExFnZgqu7addeD1ysegNyDoTu6id6EyZ84cLrnkEqKj27ben7cIAmj0CAiM7N+DD+ZvbDfO8Yt3/4XZEkJ4VDxul5Ot63+m2lbGtAeeQW8KPK55wVHsNQ1Ygozdqqd7qokKM2M06Kh3ugkK6Pwz7nLWIYl+qor28e9n7mm1fNk3r5LeP4u7HngGSZLYtjeXCUNieOZ392E2m3E4HLz77ruUlMh1eFUqFT179mwhMjMyMkhPT+/yeUeyl8tehHaE3xP3TOPTGf9sDC+SuXHKZfSffCMvznyfj//9fKttBJ0Bqc6OZC9HOAlB6fH6WLXlEMvWHyCvpAqfz49Br8Vk1KESBLw+H9v3F7BhVw5atZrkhHDGDe/FyAHJvxphqQhKhU4JtQYydcJA5n4kZ3XX1zlQqdQYG61PWp2esZNvYezkWzocx+v14HE7sTvklmxXju1PoKn7LhRDUBBpY0ax6bM5mCPDUWvbjg98Yur1fLrsZ5bv3Ead00WPyEj+fMsd9ElsnQAkSRKVOfnED+hLVHrasUuas0RlhBa/2uK1197gqaefoUdiAo8/9iiDBw8mMKBl/GFG795k9O4t97Y9hgHp8dx3w8V8MG8tuw+VkBQfKneo6QI+n58jhTY0GjXXXzaIq8b1RxCEk++lrDPKotLnlV3HbTCgdy+Wr99MTW0d5qBAhgwdwpdffMmRyrrm5e3i94Hl5Cyy7SEIApgurI43p4PKykp+/vlnXnvttbM9ldNDo6VyUJ8kvl+5B5e7MfzjuBvD2IQUtq5fxqY1S9BqdSQm9+aG6b8jOiG1Qwt6WWUtEy9JIybCeloPoyNiwi3ERFgoKrd3SVAGBFm46d6nmP/99yQmJDJokBxCs/6X7ynI2c8Nd/+eIItsca201xMRamXqlEt58f+CyMzMbG69aLfb2bdvH3v37m1+fP755+Tn5zfvKyEhoZXQ7N27d4tOTJLPA44K0OrbPReMHDSg1WupPRLJTE1m/+Gc1hs0oTMgOWxI4QkndEOZV1zJnB+3sHVvPiaDlh4xIR3GpTe4POQVVTLry1Vs21fADRMHn9XPxplCEZQKXSKrX09iIiwc2V3JC7+/jYjoBB79y5udb3gMm1YuYtHXRwPgeye3UUami2ROHE/Bth1UZB8hMj2tzROQTqPlrssmcddlkzodr6a0DKPFzOCbrj3q7j4BSktLeeW/rxISEszqX5adUHLDwN7xhAVfxjdLtrB5dz4IEtFhFsyBhlbHKUkSLreXElsNDU4PyQnh3DBxMP17xZ0ygSao1QimICSHTa7/1gbXXX4pr7zzEbO/nMuT995BWmoaxoAAZn/9PcP79227ZFDj/JEkBOMJWE4VThlz585FkiSuvfbasz2V04cgEBkRzKUjM1n0lQ9RlI65OZZv+C6+dCoXX9rowRCaOry0zuhuujn2emSvjSXQxGUjO+97fjrRaNSMHpLKu9+soSj/MId2bwKgqqIEl7O+VbUInc5An8GjKLN72LhxIzf0Hoxer2P/jvUU5R0kY8DRvuRllbWMHdaLqLDWpb2sVisjRoxgxIiWfczr6urYv39/C6E5f/58ZsyY0dwBLDo6ullgXjQgk0sSQwkMj6I7dgZJkiizVZKR2kG5L60eGhxyibJuCso92cW88/VqSiscJMWHYTR0ntxjMuhITgin3ulm7bYjFJXZ+c2No0lOOHsxtmcCRVAqdAmVSsXr/36Bz+ZPZPPufAIDTV2K1WnC7xcJjOrFhJufZET/JEYOTOmwT3BnGIKCGHrz9Sz9z5tU5uYR2iPxhAVUfVU1DVXVDJt2M5GpKcct7Xpsn8PhYNJV11BXX8+qZT93XUy2MX58VDAP3zKWLXvzWL01m/1HSikss4MkyTGnAoh+uRCKTqsmITqE0UNSGd6vJ+bAU1+UW7BEyHf4othm1uXwAX25ftIE/vTya5RXVpGcGM8nP6+lrLKaD19p7YZqxusCra77rRcVTilz5sxhzJgxREaeRHmp84TLL+7L38wB5O618cL/3infHD/z+tEVGuOgO/JCHH9zPOGi3iTFn32xMDgzkR9X72HTqg2sWvBJi2VtVYsAGDp0CGvWrGHHju0MG9a6lFqlvQ6TQcuowcefGzsmMDCQIUOGMGTIkBavO51ODh482EJo/vTTTxxcvwLVpNHszinEZDI1JgMdfYSFhREYFNTq3/Lp/B8oKivnr48/2O5cBEGQwxzc3evKlp1XzuyvVlFprycjJbrb15gAo57MlCgO5JQxa85KHp02jviotgvrXwgIknSiVbMUfo34/SIrNx9i3rLtlFQ4iAgJJDw4qN3EGp/fT1llLVX2ehKiQ5g6YSBZ/Xp2msXcVbLXrGfNux/hdbkIT+7ZLeuiJEnUlJbRUFVNv6umMOzWG1pvL0my6Okky9nlcnHZlCvYsnUbPy9ayIis1v2r20T0y27kDlqFSZJEfkk1ReXVlFY4sNc6EUWJAKOO6HAL0eEWkuLC0WpPX5yO5PchHd6O5HYitONCdrnd/GXGm3w6/weqHTVkpibROzqUR++5k6FDh7ZaX5IkqLcjhMWhik09bXNX6JiKigqioqJ46623uP/++8/2dM4IPy9fy9ufLcZmryUpIZoeKd2zLjqqKsjLy6G8soYB6fE8/6cHCTCd+e5K06dPZ9myZWzduhWNRoPVamX1lmxmfrmCmAhLl28u58z5ivLych5++KEWosnj9XEgp4yrx/Vn0kVp+P1+Bg0aRL9+/Zpd3qcKb1E2dTl7KbLXUVFho6KigoqKCiptNvyN5ef0BkMLkVnn9nDjb/9EZmoyK754D3UH53+pzo4QHocqpm1hPH36dD78UO7olZmZycZNW3n5g5/Yf7iE3sknl7wniiL7DpcyKDOR394+jhtvuL5FouTu3btPeOxzCUVQKpwQxeV2lq3fz4ZdudiqawEBk0GLtjH42O314XL7EICIMDMj+icxPiudsOBT79rM27yVjZ99hS0nD2tcDAEhnfeFdtfVU5mbj9Fipt9Vk+l3xeXti1GvWy5sLrS93O/3c+2NN/PDjz8y/+uvmDzp8q5NXJLkGEqNTs4+PseR7OVIBfuRdIYu13T7cs4cqioreeDBB1tZFiRnHYJGi9CzH0I7rnSF08/MmTN55JFHKCkpadFu70LnSEEFs79ezZGCChKiQ7B0sd+9KEoUlFbR4PIyZlga064Y3iU36OngeBG0e/du/H6R9+au4ed1+0iKD+tSDHZeXj4ffPA+06ZNIzlZdh17fX7255SRmRLD47ePY/SoEezYsQOAKVOmnHJBKZbmIJXntUqcEUURu93eLDArKiqosNnIKyhk1ndL8Ysij14/ibSknkRGRREVFUlUZBShoaEtDBdSvQMhNKbdm9fp06ezcOFCZsyYgdVqxWuI5ctFm1E7i9i/Yy2FOQeoKC3EEhzGk8+/12r7Gnsli799n6LcQ9Q6qlCpVIRGxDD8kisYkDUOl9vLkcJKpl8zAoPfRkFBAc8//zxqtVoRlAoKAFWOevZml1BUXs3hAhu19U4EQcASaCQ5PpyYSCt9UmJOixv2WOoqK9n2zXccWb8JZ7UdvTkIgzkIfYAJlUaDJIp4Gpy4a+tw2h1oDHqiM3ox+MZr23BzH4ffBz430Hb9ucef/B/++/obXDllCje20SZx2q3tJCs1lSLSGtoslHyuIUkSUuFBpKriLnevOHzkMJ98/Al333038fHxR8fyuBB8HoS4NITgE4+lVTh5xo0bh0ajYcmSJWd7KmecSnsd3/68nVVbDuHziUSGBRFsNrV5Q+r1+imrrKG6poHocAvXjB/AqEEpZzWDd+/evY01bWUXc1ajZ6TB6eH9b9eyasshosLMnd7ISxLMmjULs9nMrbfeQl2DmyOFNjKSo3ngpkuICjOzYcMGamvlhMrw8HD69+9/So9FKstDLM1BCLR2uq6jtpZxt95HXlExH/zzzwToNJSWlVFWWorDIZeFUms0RISHyyIzMpKekSEEJKYTlNK3zTGnT5/O8uXLyc3Npbqmgf977Tt8osj6H95j15ZVxMQnY6+uQCWo2hSUpYU5LJwzi4TkDKwh4fj9Pg7v287+nRsYPfEGJlxzJ/nFVViCjDz7yFWYjDrGjBmDzWZTBKWCwrmGJEnYi4rJ2bCZ/C3bqK2oxF1fj+QX5W46RiMmq4WYPhn0zBpKVK/UrrnIm9zeotSm8Bsz4TJWrGynXxlyG7E2x0SU+w1rdCddg/FMIfm8chcLRwUYAhE6saxKksRrr79OXFwc106dKru5G8UkEYkIkSce+6pw8pSWlhIbG8usWbO49957O9/gAkQURXYeLGLttsPsOFBITa0TCQGNRi5ULfolREnuzx0VZuaigcmMGJBMdHjXO3ydDZwuD/OW7uDndftwe3zER1s7tFZu3bqN7xcsZOoN09DqDWT1T+LmSUMIDzkzVRKk6jLE/H0QYOnwnOByu7l8+oNs2b2PJR/OZMSglsLW5XJRVlZGaVkZpaWllJWWUl5RQXpcFG8vWMahyjr69+9P//79GTBgAP379ycpKYm77767WVAuW7+ft79aRe+kKOprqwkIsqBWa/j4jWcpL85rU1C2xydvPkvOwV08/e8v8fklsvMrePS2cYwYkHTBCUolKUfhgkEQBILjYgmOi2XgtVfhdDioLa/A7/WhUqsxBVsJDA/rfvzmcS3cjhd/y386EctOY5Fwtea8EZOALCDj0kClll3gXjUYAtq9AAiCwJDBg1m2bBmXT5iAUWiMGY3qiRAer4jJs8zcuXNRqVRMndp2bdZfAyqVigHp8fTvFUdJhYOC0mpKKhzYquvw+f0Y9XKsclSYmeSE8C6X8TrbGA06bp48hD6pMcxftp1DeeV4PD4CA/QEBRjQ6+TLv9fnp67ejS4wAn1gOPk5B3jxz48walDKaW0j2Qq9UW4i0RRX3gZ+v5+bH/sj67bt4tuZ/24lJgEMBgOJiYkkJh6tcSz6vNRWlGLKzGLllh3s2LGD2bNnU1ZWBsjWXaPRiNPpZObMmewv16ISQK1WYbaGntRhWUMj8Xo24/f50Onkz86e7GJGDEjqZMvzD0VQKlyQCIKAyWrFdBKZ5C04poVbe67vLtPk6lZr5THPMwSNDuJ6IQRakcrzkeodSGq1nFik1rYQiZIoMrBPBkWH9pJ/cA/pg4YjRPU4qQLDCqeOL7/8kksvvZTQ0JO7aF4ICIJATIT1gqoXKAgCfdNiyUiO5kBuGVv25HEwrwxbdR2OWhcgodGosQYZGZSRgKHhEHO/eIfBvf9xZsUkyDemBhOSuwGMbVtF/+ef/+b7pSu4Ytxoquw1fDJvYYvl066Z0uZ2gs+DJTyKKSMmccVNtzW/XlZWxo4dO9i+fTszZ87EbrfzyKOPIURmgaAmxGwgMjJSjsuMisLn67yXudfjxuNx4XG7yD24m23rfia+ZzraRjEZFGDgcEEFoih2MtL5h+LyVlDoKpLUmKDjb7efb5fGOA9d3e0heVxQW4lUVYbkaWgU3BxTMFoAjZYv5i9k7rLVzPnh53YL0SucWYqLi4mLi+Pdd9/lrrvuOtvTUThDSJKEvdZJXYMbSZIw6rWEWgNQqVTk5eWRlJTE66+/zoMPtl+G57TNzVaEWHQQAqxtei/G3XovKzZuaXd7f/a21mM2VZOITkIV0X5ntqYYymUrN/Dki5/jaXBgr7I1us9Lcbtc+KsPgs9F0pCrmkVmZGQU4eHhzbG0Kxd/xU/zPmweN6lXf66943EsIXLCW5WjHqfLyz+emMrUqyYrLm8FhV8lgiDXTPR5ZFEpNdWr64IolJo67nDBiEmQ25oRGgvB0QheF7gbwOsBGsss6QygM5I4ys/cP/2DZcuXM2HChLM9bQXgm2++QaPRcM0115ztqSicQQRBINhsIthsarUsMTGRa665htdee40HHnjgzIekWMIQKouRnHVtdrha9tk73R/TVY+gNyFYIrq0ukqtxmq1EpOa2Jy9L0lQU+Pg81l/p7KsCJPJxMFDh9iwYQMAl1xyCWPGjAGg35BLiE1Ipb7OwYFdG6mrseP1eprH16hV+P0iHm/n1s7zDUVQKih0B0EFGj34vbI1ThKRVWIbwrLJ+N/k4lapjrq5LwAxeSyCSgV6k/xog4tGjaJPnz689dZbiqA8R/jyyy+57LLLCA6+cAstK3SfRx99lLFjx7J06VIuvfTSM7pvQauHyEQo2I/kdct/nwSSz4Mg+hEiUrpcmkwQVHIy1jHOW0EAi8VCQEAg9QYDN954AwBut4fy8rIWvcqtoRFYQ2Xx2m/oJcz/9DU++O8z/PavM9Hq9I0ljQVUF9g1AODcr1WioHCu0dgXGK1Brh8pCLKwFP0gHfNAlB+qRsumVn/eJeGcKgRB4IEHHuC7776jqKjobE/nV09hYSFr1qzhxhtvPNtTUTjHuOSSS+jTp8/Z6+tuCYeQGHA75f7eJ4jk88qtFkOiILhr1kkAa5ARg057tN97B+j1OuLj4zu8KcsceBGO6gpys2W3ttPtwajXYg7sfk/xcx1FUCoonCgq1VFhqTM0CkadbIVU62RLptYgP9TaDjvt/Bq4/fbbMRgMvPPOCbitFE4pX3/9NTqdjquvvvpsT0XhHEMQBB577DG+//57cnJyzsr+heieCGEx4G5ActXTnVQPSZLkxB5XPUJIDEJ0MkI3zr3mQAPhIUHU1rtPZPqtaHJ3u5wNANTWu0mIDkGvu/BiyX/dVzgFhVOBIMhubLVGtlg2db5Ray5I9/aJIhdNvpXZs2d3KVtS4fQxZ84cLr/8ciyWc7uWosLZ4bbbbsNqtfLGG28AcrUGyd2AVG9HqrMjNdQg+TzdEnrdQVCpEaJT5DaJggD1DiSPq8P9SZKE5HVDvUMO4Y5OQohN6VIDhhb7FgQykqOprXd36/jqax1tvr5lzRK5gkB8MpIk4XJ76dXzwmzmoMRQKigonDEefPBBZs+ezYIFC5RkkLNEfn4+69at45NPPjnbU1E4RzGZTNx37z2sWfIDrsN3ovM1up8be2rLtXk1CHojUlAogiUMoZ346RNFUKkgLA5VgBXJVohUUwX1diRBdfRmHUAU5Zj2xja2QnAEQlgcgsl8wvsekpnIkjV7qa130WAvZf9OOfmmqqIEl7Oe5T98AUBUXE/S+w0HYMWiL8k/so+UjEFYQ8JpqK9j77Y1FOUdImvMlYRGxFBpryPYbGJg7/h2930+owhKBQWFM8bAgQMZNmwYM2fOVATlacTn8VBTWoajpBRPg9ypSWcyYo6KZM4XX6DX67nyyivP8iwVzkWayuz88aYp/KhroGDXJpLS0mXPi65JMkjg88rZ2HV2pIpCWchFJMh1ak8hgjEQIT5ddmPXViM5a6GhFkmUxa2g0YI5BMEYCIHBoG+7dWZ3SIoPIzMlmk27cnFXZLP0+5Y3X01/D8wa3ywo0/oOpcpWwta1P9FQV4NGqyUytidT73icgVnjEUWJ4ooaxg9Pv6BqnR6LIigVFBTOKA888AB33303R44cISnpwusWcbaQJInKvHxyN2zh8Jp1NNgdzWKycQ10JhNrFy/mmr4D8VRWIQUFKd2KznWaSo5xrPu1sarEKf7fSaJfblZgK8KiFdCZg1m8egMP9h1Eqz3p1IBBFqBeN1JFgexujk5CCDz1lQOExioSAvJnXZAaC4M3ZmWfCkRRxGazodFouHbCQLLzK5DMQ/nbWws63Tal90BSeg9sd3l+SSXR4RauGtef2tpa3G43Xm/niT/nE0oMpYKCwhnlpptuwmq1MmvWrLM9lQsGZ00N6z/+goXPvsDmL7/BXd9AYEQY0Rm9iOnTm5g+vYnOSEfU66gsLyMFLQuefYH1H32Os6bmbE9f4XgkSa4a4XWD1yU/PMc8ml5rarRwCmIZJdGPVHwYqSxPdmcHWBg4aDAV5eXk5ea2u50gCHI9WpMFyVmHmL8PqabypOfTEYIgyHGWKvUpvSEqKCggPDycUaNG0SM2jCvH9qOm3kWVo/6kxi2vqsXj8XPtpQOICjNz++23Ex4eztq1a0/RzM8NlE45CgoKZ5zHH3+cTz/9lMLCQvT686M38rlKefZh1rz7MWX7D2KOiSIwLLTdi+yaNWtY/sty/uf3/4O3tg57UQlRvVIZec/tRKamnOGZK7SJ6Aeft7EjFzTXuW3FMVZLlaaxxu2J2YgkSUIqzUEqzweDqdltLQFvvfkmoWFh3NSFElOSJIGrDkGtRUjMOKk4xjPN3r17KS4uBuTe3llZWfj9InN+3Mz3y3cRYjESGWruloCVJImiMjv1Tg/XTRjI1eMHIAgCO3fupLy8vMW+LgQUQamgoHDG2b9/P7179+bTTz/l1ltvPdvTOW8pO5TN8tffxlFcSkRacqdtLWe//TZWq5UbGsWB3+ul/OBhzFERjHnkN0T1Sj0T01ZoC0k62jABCehie9emdq7CiTdOkGqrEPP2gForWxuPYc687/jba7Oo90mUV1ZjMhrISOnJk/feyZXjL2ljOhI0OBACgxES+yCo1d2ay7mG3y+ycMVOFq7cTV29m8TYEEyGzuNE6xrc5BVXEWw2cc34AUwY2fuCDy9RXN4KCgpnnPT0dMaMGcPMmTPP9lTOW+oqK1k1630cJaVE9U7rVExWV1VTXFJCZmaf5tfUWi1RGb2oKatg1dvvU2c7va5KhXaQ5CQX/E0xdV0Uk9C4nqpxDHdjxnM36jaKfqSyXJDEVmISwBhoxusXGT2wDzOe+T3PPHwfANf85nHe/uKbNqYjgDEIqbYaqku7PI9zFbVaxVXjBvDk9AlkpERTUFLN3sMllNoc1DW4EUX5vRZFidp6FyUVDvYcKqakwsGgjAT+cM9lXHZRxgUvJkGxUCooKJwl5syZw0033cSuXbvo06dP5xsoNCOKIqtnf8CeH38mpk9vVMdZgfLLy/hsxTIOFxdRXVeHXqvFotMTUNvAP/74v2iPK6os+v2U7N5HxsTxjLr/LlQn6DpVOEF8nkYx2Q0h2RaSCEhyU4Uu1l+UHDbZOmkMRFC1bU1csmQJ27dv54knnkCr1eL3+xl6za243B72Lvm27XGddQg6A0LKwHbHPd/wev3sO1LCuh1H2He4RC4r5PLQFJIQYNQRFGCgb1osWf2T6NUjErX61/NdUrK8FRQUzgrXXHMNkZGRzJo16+y1eTtPKd69l0Mr1xCSGN9KTAKUO+w43W7G9R9ISJAZt9fL3GU/Uyi6WbprG5cPHtZifZVaTUiPeA6tXEPPrKHED+h3pg5FQfQ3urlbZ21v2ryZDz/+hF9WrCQ3L4/Q0BCyhg3j73/9K2lpbYQnCKqjdRlVqi5155Ls5Y2bti/6hg4dyrr169m1ezeDBg5ErVYTFxXF5l172h9YbwRnHdRVgzms03mcD2i1avr1iqNfrzjcHi+ltlqqHPX4RRGNWkWoNZCoUDNa7YUhoLuLIigVFBTOCjqdjnvuuYfXX3+dF154gYCAgLM9pfOGI2s34HO7MVnb7nQzJLUXQ1J7Nf9dWVnJ1sVL0FuCmb9uTStBCWC0WKguLObwmvWKoDxTNMVNNsVMHseLL7/CmnXrueHaqfTr25fSsjJef2smg7JGsH7VCvpkZrYeUxBkUenzyu1gO9q934fUUAPajmMCg4ODSejRg2W/LMccEsaCpSv4ceUabpxyWbvbCCo1EhKCs/6CEZTHotdpSYwJITEm5GxP5Zzh12OLVVBQOOe47777qK2t5fPPPz/bUzlvqK2wkbd5G0GREV3eZu+evei1emLDw6l3udpdzxwZQf7WHdSUlZ+KqSp0hiTKFsp2XN2/++1j5B06wKsz/s29d9/FM//7FKuW/ozP5+OFl15ue8ym+pSiv9EF3gFupyw81Z33lf55yx7++OZH9Bp/Fb9/YQbXTBjLa//3VMcbCSokp1KW6teCYqFUUFA4a/To0YNJkyYxc+ZM7r333rM9nfOC6oJCnA4Hkelpna7r8njw+Lxs3LEdX6iFrYezubhP33bXNwVbKSs7SHVBIeZuCNbzkbq6OrZt20Z2djYejwej0Ujv3r3p16/fmStldWwrwzYYOWJEq9dSU1PIzMhg3/4DHQwsHBWrHcXw+dwg+Y+2MeyAZx57gFC9GlGlJq/SgV8U8XRWmFutkUWrwq8CRVAqKCicVR588EGuvPJKNm3axNChQ8/2dM557MUlSJLUZuzk8by35Ad+3LIJkLNvR/TO5DeT2m+5qFKrkSQJR0nZKZvvuYTT6eSLL77gjTfeYOvWrbSVk6pWq7nkkkt49NFHueKKK9BoTtNlUpJkMddmjcmONpMoKy8js3dG+ysJguxFF0Xo6GMiNa3e+Rx6J/fkN3fexsqVK3n8vjt5+LlXuPr+37Lum4873F6SJLmzza8gy/nXjuLyVlBQOKtMmjSJhIQEpYRQF3HX1rXswtcBU4ZkcXlSGkmCjl5RMbhcLtweT6fbNdgdJznLc49vv/2W+Ph47r77brZt29ammATw+/2sWLGCqVOnkp6ezrp1607TjJpaKnZPaH36+RcUFRVz0w3Xd7yi0Gil7KiQS6Pw7Gqxl4yMDCwWC998M5dJo0eyaeceDubktb+BJCGcwtaICuc2ioVSQUHhrKJWq7n//vt5/vnnefnllwkOPvV9gC8kRL/YqQaxVdjYsnULO3fswOl0EaZS4y+p4CBeHv7PS2SZwwgNDSEkJITgEPl3SHAIwSHBIAhIov/MHMwZwO12c8899/Dpp582CxtR7Di20N/ois7NzeWiiy7imWee4dlnnz21wqi5P3fnY/pFP+Xl5RQVF/Pwbx9nRNZw7rx9WidbCZ3Xo9QZZLe03weazuMoBUHg2muv5e3Zs1mzfj0Ajtq6DibugyAlaeXXglKHUkFB4axTWlpKfHw8r7zyCo899tjZns45zZav57H5i6+J6dPS5en1etm7Zy9bt24hv6AAk9HEgAEDGDRoECGhIdTW1PL9hjV8uW41tw8cDi4XVVXVVFVV4fEetVrGGEyIPeOJyBpCSkpK8yM5ORmLpe2s8nMVt9vNlVdeydKlSzsVkZ3x0EMP8frrr586USn65X7cxyXkSEg4HA4KC4soKiqksLCIkpIS7HY7n3/1DWqNmvUrVxATE9Px+E2CVWdot3yQJIpIBzchiX4EvanNdcorq4gIbSkKi4qLyZp6G7aaOso3ryAooO1tpTo7qphkhPD4jueqcEGgWCgVFBTOOlFRUUydOpWZM2fy6KOPKi6yDjBHRsjhd41xaaWlpWzdspVdu3bicrtJTkrihutvoFd6L9THxFmaLWaCzLIg7D94IGmxjRd5Cerr66mqqqKyqpKKA9lUx4Sze/du5s+fT1VVVfMYYWFhLQTmsYIzNLT9HuJni4cffviUiEmAN998k+TkZH73u9+dgplBk2XS5XFTVFTcLB6Lioqor68HwGq1EhcXS0JCAo//zx9wuV2sWrS0czEJHI2LaP9/IqhUSEGhUFkI7QjKB575O7V19Vw8dBAxkeGU2Sr57LtFFFfamTC4D3t372L48OGt9+7zysk+pqAuzFXhQkARlAoKCucEDzzwAOPHj2flypVccknrHsEKMtaYKASNhs3r1rNjz26KiosJCgxk6NBhDBw0kODgYOz1dS3EJIDP7+eXndvQabTEhx+TwS1AQGAAAYEBRISGEhMQxBV//V8iU1MAqKqq4vDhw2RnZzf/zs7O5qeffqKs7GjyjtlsbmXRbHoeHR19xsXmokWLePfdd0/pmE899RSTJ08mPT39hLb3er3s3LmTjRs3sm3rVsZdPJKqqirKK2wYDHpiY2MZPHgwsbGxxMbGEhgQgMvl4rIpV5Cbl8fPixaS0bsb++7Cey5Yw5CqSpB8XoQ23N43TrmM976ax8zPvqLS7iAowMSgPr355+8fwyB6WLxkCVFRUSQmJrbc0ONECLCA6fyyaiucOIrLW0FB4ZxAkiTS09MZNGiQUpeyDSRJYtOmTcyeNYu9H32JwecnMjWZQYMGk5qW2qJd4j++/IQGt5vMhB6Ems1U19WxYtcOCm0V3H3ZJK4ZMarNfVQcziEkIY4r//qnTnuDA9TW1nLkyJFmkXms4CwoKGhez2QykZSU1KbgjI+PbyV+Txafz0ePHj0oKSk5JdbJJjQaDRdffDHLli3rdF1JksjNzWXjxo1s2LCBDRs2sHXrVlwuFxqNhn79+vF/f3qKzIzeWKxWQkOOtfBKIIHf7+Xam27hhx+XMH/O50y+fKK8uKnWJKpGA2QbwlHyg0rTeXFzSULK24vkKIcAa7eEvyiKfPzxx1RUVHD//fdjNpvlMX0eBI8LIaE3giW8y+MpnN8oglJBQeGcYcaMGfzxj3+koKCAyMjIsz2dcwK73c4nn3zC7Nmz2blzJwkJCUwbcylhFdX0HNi/TeG3cvdOftq2mbyyMmqdDRh1epJjYrhi2AiG9+rd5n78Ph+l+w4w+jd3k3HZ+JOet8vlIicnp1lgHis4c3NzmxNftFotSUlJrVzoKSkpJCYmotN13MWlLebNm8fUqVNP+hjaY+/evfTu3fJ9tNvtbNq0qVk8bty4kfJyuUB8jx49GD58ePNj4MCBGI1GuUuO1yPHODYJuaZyQpLE4//zR/775ltcOXkSN153zPE0XrWn3Xpzo7g8rs2iJAFil3t6S656pJxdSH4fgjGwW+9FfX09b7/9NkFmM3dNn45KEKDBgRASgxCXds6FQSicPhRBqaCgcM5QVVVFbGws//d//8dTT3XSheMCRpIk1qxZw+zZs/nqq6/wer1ceeWV3HfffVx22WV4GxpY9I9XqMzNI7JXGz2dT4CyA4cISYhn0tP/g7HR0nS68Hq95OXltbBoNgnOw4cP42ksbaRSqUhMTGzTjZ6UlCSLsjaYOHEiS5cubRatpxKNRsPDDz/M7bff3iweN2zYwIEDcqFxi8XCsGHDmsXjsGHDiIhop0i8JIKnsXNRU8tESaQp+3vMxMmsWLW63blIDTXN6yKo5P7dNI6jEkBr6JLbG0CqKkUsOgRqdbsJOu1RXFzMe++9x6CBA5h0ySiEADNCQgaCztCtcRTObxRBqaCgcE4xffp0VqxYQXZ29il3hZ7r2Gw2PvroI9555x327dtHcnIy9957L9OnTycqKqrFugXbd/Lzv19HF2A66a42teUVuGrruPSJh0kYNOCkxjpZ/H4/RUVFrVzoTX83JawAxMbGtnKjJyUlcfHFF+N0nr4OLYIgIEkSGo2G/v37txCPaWlpLcIPOsXrkS2VxwjJxr10cQDp6O9mS6UEGl2XWio2jyJJSJVFSKU58guGAIR2ssPbYtf2bRzatY2kPgMYeMVNCIaAVut4vD4qquvwen0IggpzoAFrkFGxYl4gKIJSQUHhnGL9+vWMGDGCH374gUmTJp3t6Zx2RFHkl19+Yfbs2Xz77bcAXHvttdx3332MGTOmXXEiSRJbv5nP1q++JSAslKDwsBPaf22FjfqKSgbdcA2Drr/mnL64S5JEWVlZmzGb2dnZ2O32MzIPlUrFsmXLGDZsWLtW0i4jiuBpkH9DuyV+OkeSRamgkoWkVt9l62TzCJIENZVIZblIzlrZwqkzdNwJx+8DdwOCJPHl4l/4n3+9xrcLFzFs2DAAHLVOtu3LZ9u+AvJLqqitd+H3iwiCgF6vISw4kN49oxicmUhqYkT3xLjCOYUiKBUUFM4pJEli0KBBJCQkMH/+/LM9ndNGaWkp77//Pu+++y6HDx8mPT2d++67jzvuuIOwsK6JQ9HvZ+s337Fj/gIQBMJ6JnapJWPTtpU5eUiiSP+rr2DQ9Vd3edtzlaqqKj755BN++9vfnvZ95eXlkZCQcPID+X3gdTdaKGk0Up6AqG+qOykIspjUdD/2tHkorxupohAcFUgelzymWiOXAWrqwOPzybU0BQHBZEYIjcFjNDNm7DgKCwtZs3Y927NtLF2/n3JbDVqtmqAAA4EmPRqNGkmUcHm81Na7qK13YzRo6Z0UzdRLB5CaqMRPn48oglJBQeGcY9asWTz00EPk5OScmov2OYLf72fJkiXMnj2b77//Ho1Gw4033sh9993HRRdddELWQUmSyFm/kS1fzcOWk0tASAjmqIh2s7T9Ph81pWU0VFYT0iOBwTdMpWfW0AvGMrRw4UKuuOKK076f7OxskpOTT24QSZTFpCjJHm7Rj2xpFJpFZV1dHS/N+C8bNm1m45YtVFdX8/6st5h+bKccSQJBQu6mLIBa1WihPLn/qeR1Q20VUkMtNNTItSVBFpF6E5iC5NJAAVaExs9PUVERA4aOwpIwhMEjJxBiCSAqzIxa3fFcautdFJRUExRoYPLoPkwZ3ReN5vy+wfm1oQhKBQWFc47a2lpiY2N5/PHHee655872dE6agoIC3nvvPd577z3y8/Pp168f999/P7fddhtWq/WU7KOuspL9S1dyePU6HCWlSKKIWq9Do5ctVX6PF5/LjaBSYY6KIGXUSNLHX0JgWOgp2f+5wvLlyxk7duxp389LL73E0KFD6dWrF5GRkScWKnB8lrckHSMq5VVy8/Pp2bsPCfHxJPXswfKVq44KyqbLd1PpIFWjAJNEuZXiSVgpj0dqmpskgUqFoGpb7B3MLeMvMz7n2+8XM7hvCpMnXd6tfZRV1lBlb+CyizK47YrhaLWKqDxfUASlgoLCOclDDz3EvHnzyMvLQ9uFmojnGl6vl4ULFzJ79mx+/PFHjEYjt9xyC/fddx9Dhw49bbGKrro6Svbsw15UQsXhHJw1NSCB0WImPLknlpgoYvpkYAjsXnmY84WKior2s6pPESqVSk5iabx8ms1mevXq1eqRmprafoylKMqtF5viHpuQGn80urDdbhfVVQ6ioiLZvHUrQy8ew/sz32L6Hbc2usePye5uLj0kNrq+u57lfSooKrfznw9/pqTCgb08l8WLF3PttdfRt2+fbo3jqHVSWFrN1AkDuWHi4HM6rlfhKEqnHAUFhXOSBx54gLfeeovvvvuO66677mxPp8scOXKEd999l/fff5+SkhKGDh3KzJkzufnmmwkKOv1t6AyBgfQcPvS07+dcJTw8nOjoaEpKSk7L+IIgMH78eL7//nsOHz7MwYMHOXDgQPNj0aJFVFZWNq+bkJDQLDDT0tLo17cPvXulEWq1oGqyRtKUkNO8l6adodcbiYo2cjSbu3GxoJZLAx0rJI9doakEkXB6LHzTp0/nww8/BCAzM5Pt23fw9eIt5JdWk5kchdAziuLiEr777jsiIsK7VVfWEmTE4/OxePVeeidFc/uNU9ixYwcAU6ZMYcGCBaflmBRODkVQKigonJP069ePkSNH8tZbb53zgtLj8TBv3jxmz57Nzz//jMViYdq0adx3333079//bE/vV8e1117LrFmz8Pl8p3xsSZKYNGkSer2ejIwMMjIyWq1TWVnZQmQeOHCAVatWUVpUiF4QsRUXEhAQQHpaCvUNLowmIyajCZPJiNFkQqMSaLZSCirZlS1x1KWtUh993haCIK9/mh2QYWFhzJgxA6vVyrrtR9i4MxehvoD5n35FYc4BKkoLUWn0fPHll9x/3/0Yje3Xpdyx8Re+fv8VdHoDf/7P14QHB1FlL+PrxVv467PPUVdbwxNPPHFaj0fh5FAEpYKCwjnLgw8+yO23387BgwdJS0s729NpxYEDB5g9ezYffvghNpuNiy66iA8++IAbbrgBk6l7xaEVTh0PPvggb7zxxmkb/+9//zs1NTU8/PDDbWbkh4aGMnLkSEaOHCm/IIrg8yD6fdTW1VFWXoEk+tDq9HjsDux2e3MxdwCdXofJaMJsDsJisaBSqVBptHRLHgqN+z2NIYgBAQFMmzYNv1/k+Vk/oNWq2LdjLbu2rCImPpkgawhI4HK6mDt3LrfccgsqVWv3tdvlZPHc99HpWwrOHrGhZOdXMGXMeIb17cEzzzxz+g5G4aS5MNL6FBQULkiuv/56QkJCePvtt8/2VJpxOp18/PHHjB49mvT0dD744ANuv/129uzZw+rVq7nzzjsVMXmWyczM5IorrjjlhfFVKhX3338/t9xyCy+++CIJCQk89NBDZGdnt7+RKILPDZIflUqNxWIlLTWVXimpxERFMaD/AEaOGMGoUaMYNHgQvXunEx0djVanpaqqir379lFYUED2wQP4/d2wuErNP047B3LLOFxQQXS4hUuvvoNnZszhvt+/RFRsT1QqFddddx3Z2dmsWLG8ze1XLPoSvcFEev+sFq/rdRoEQWDttg7eX4VzBsVCqaCgcM5iMBi46667+OiTT7nvyWdoEFVU1Huoc/uRAJ1aIMykI9ikJSpIh9V4+pJ3du3axezZs/n444+x2+2MHTuWzz//nKlTp6LX60/bfhVOjJkzZ5Kenk59fT2nIvdUrVbTo0cP/vOf/2A0Gnn22Wd58803ee2115g5cyZTp07l97//PVlZx4giSQKfp7HGpKplrONxcY8atRpzYBDmwJZxthISbo8Hn9fL/v0HujnrM5PMklNow+3xEWDUg7H1dyElJZlx48aybNkyoqNjSE/v1byssryItcvmcetvnmb3ltZtJkODTWTnV1DX4D6tx6Bw8igWSgUFhXMWl9fP+JvvI3XSnXyyag+bCx0UOdw0eP24vH6qG7zsKatjVU41C/ZWsOJIFWW1p+7CU1dXx7vvvktWVhb9+vVjzpw5/OY3v+HQoUMsW7aMm2++WRGT5yixsbG8//77p2QslUqFVqvliy++aM7aDg0N5c9//jN5eXnMnDmT3bt3M6LR0jh//nxEUQSft7EMkKrNxBm328Mfn/kzMUmpGEPCGT56LD8tXXbcWgIGnZ7AgABatFns0sTPjKDMK65E20nNyFGjLiY9vTfffvstNltl8+s/fDWbnmn9SOvTdiJZkMlAbb2Lkgr7qZyywmlAEZQKCgrnJEUOF0sOVlLgC6Bnai/2bl5LjNlARKCOYKMWq1FLaICOaLOe6CAdWrXAwYoGlhysZFtRDR6/eML73rJlC7/5zW+IiYnhvvvuIzg4mG+++YaCggJeeOEFUlJSTuGRKpwurr/+et555x0EQTjhwu1qtRqdTsfChQsZMmRIq+VGo5H777+fffv2MW/ePARB4JprruHScePYv28PPlFsu3SPANPve4B/v/o6t918I/996UXUahWTp17H6rVr25hJY0Y3dJ5sIzV2zDnJwuZdpbDMjsnYcc1LQYBrrrmaIHMQX375JW63hwO7NpG9dxuTrr+33e30Og0ej49Ke3276yicGyiCUkFB4ZxCkiT2l9ezNLuKinoPUUE6BqQnU5CfR2lpWZvbCIJAoF5DdJAOjUpgU4GDlUeqcXn9Xd6vw+HgrbfeYtCgQQwZMoSFCxfy+OOPk5OTw6JFi7j22mvPy3qYv3buvvtuFi1aRHh4eLdjKgVBIC0tjXXr1jFu3LgO11WpVFx99dWsWrWKdevWccWUSezds4cZ//kvK1aupMHpbLH+xk2b+eLrb/jns3/lpX88z/333M2yRQtJTEjgD0//ub0Zyb+a2iy2S1PB8zNjofT5/Ki6sC+9Xs/NN91EXFwcot/Hoq9nM3T0JCKi2++GJQgCgiDgF5WS2ec6SgylgoLCOcXhSifr8+1oBIGoINmdnJaWRmBgIFu2bGbKlCntbisIAmaDBoNGxZHKBgQBRvcMRttO2zdJkli3bh2zZ89mzpw5uN1upkyZwnPPPcfll1+ORqOcIi8EJk6cyP79+/nzn//MO++8g9vtRhAE2S19HGq1Gr/fj9Vq5cknn+QPf/gDOl33Os5kDR9O1qD+OBwO9GvWsnr1KlavXsXAgQMZMWIEwdZgvv52Hmq1mvvvubPZomgwGLjnztv50/89S0FhIfFxcQC8/tYs7A4HxY21Nb//4QcKi0tAEHj0oQexWCzHzUACleaMWSh1WnWb72VbhIWFcfXVV7Fy8dc01NUw7orbOly/qYC8ppPWjQpnH+VsqaCgcNY4vjjyqo3b2FToQAUEm45aA9VqNYMGD2b9unVceumlncYt6jQqwgN0HLY5CTNp6R9jZsCAAc3FkSdMmMDkyZN555132LNnDz169OBPf/oTd911FzExMafteBXOHlarlddee42///3vfPrppyxbtowNGzZQWFgIyDcjycnJZGVlcfnll3P99defeHysJBcVt5gtTJk8mbFjx7Bp0yY2btzIpk2b6d27N+s3bCQtNRWz2dLC2Dis0a2+fcfOZkH58n9fJS8/v3mdufO/Z+787wGYdsstLQWlJCL38z5zl/f46BByiyo7X7ERl7OeFYu+ZNglk3G7GnC7GgBwu51IkkR1ZRlarZ5AsxWn24teryXMemF2drqQUASlgoLCWaWpOLLZYmFLoYNal4/SXev45Mf5HNi5lcIjBwmLimXGN8tYtXIlu3bvZsjgwW2O9cv3X/PKHx/CYDTx9ZZcAvVqdpXUEW028Pzzz7N27VpeeeUVli5dyvLly7n66quZMWMG48ePP+EYO4XzC4vFwkMPPcRDDz0EgN/vx+v1otPpTt1n4LgYR5PRxCWjL2HkyJHs2LGTdevWsv/AAcJCQykuLSM6MgJBAgSB6KgoAIpLSpu3z92/57gdNHbAOb64udRYDF2tPWPWSYDE6FB+Ebuege5sqMPjdrJ6yTesXvJNq+X/fuYe0vtncdsDz1BX7ybIpCc6/HgrrMK5hiIoFRQUzipNxZGLHC4WH7ARFqBjzg9zWbVoPskZfQmJkC+wFouFtLQ0Nm/axOBBg1r193XW1/H+K89hMB6tAWnWq8mpqOG1T+by5b//wqFDh9BoNKSlpbFixYrT3vNZ4dxHrVaf8nqVcpcbWmVZazVahgwezKBBA3lpxquoNWre//AjLh03hv59+2LQGzAYZKuo0+VsY9yjw8sK9NjXGls4qlSg0Z7RHt5J8WEY9Vpq610EBbTfDaeJgCALt/zm6Vavr//lewpy9nPD3b8nyBICQKW9nosGJXea9KNw9lEEpYKCwjnBkSonfgn0GhV3PP40jz77bzRaLc8+eBt5h/YDMGTIED799FOKioqIa3QHNvHlrBmYAgLpN+wi1i9dRHb2YbZu3UJecTlqnY7hF49l9uzZ3HnnnSQnJytiUuH0IdFhCUiVoMJsNhMRHsEdd9zOzp070eh0IEi4nC4AjAZjN/Ynya5ulQo0+jMqJgFSEsLp1SOSvYdLqa8uYf/ODQBUVZTgctaz/IcvAIiK60l6v+HodAYyBoxoNc7+HespyjvYvMzp9iKoBEYMSD5zB6NwwiiCUkFB4azj9okU2l0E6mRLUWijVfJ4kpOTsVqtbN68uYWgLMo9wrwPZ/HEi2/yw5xP8Hq9fPrpJ4SHhzNqxFCikzO4rHckqWEBZ+R4FH7lNLbi7khURkdFUVRcTHxcPPFx8bIoFP2UlMmu7pjotr8DLWjO9pZArQaN7oy6uptQqVSMGdaLPdklHDm0j6Xff9JiedPfA7PGk95veJfGlCSJnEIbmSkxZKZEn/I5K5x6FEGpoKBw1nG4fLh8IlZjx6ckQRAYPGQIy3/5hYkTJ2I0GhFFkf/8+QnCE5JYsXE75eVlCCoVd999D3FxsQiCQHGNm2pnN9rWKSicDE2irqkeZBsM6N+PX1asoKamBrPZLK+nUrNh89bG5X07qDfZJCRFeV9qbWNW95m1TIqiiM1mQ6PRMKxvD7YPSmaZ18f/vT4fzQmEEVx75xNce+cTAJTaaggKMHDDxME01NdR4/N1OZNc4eygRKErKCicdWrdPnyihLYLnT0GDhjQXO5n2S+/8MzvHmH/1g2kj7yMyZMnk5mZiUatJj4+rjnOUqsWqKz3nO7DUFCQEYRGcdd+7cTrr52K3+/n7XfebX7N7fHw/kcfM3zYUOLjExvHgaMCsukhgKCR3dtaQ2MSzpkVkwAFBQWyF2DUKLln94RBpCZGcDCnHP9JNBawVddhr3Vy5Zh+pPWIZMyYMYSHh1NQUHAKZ69wqlEslAoKCmcdvyjJfUA6uChWVlZSWFhIYWEhWq2WNWvWIAB5W1cx5qobefJ/nwFg1dwPW22rFgS8fqUwssKZQrY2IrZvFR8+bBg3XHct//vnv1BeUUFKcjIffvIJuXl5vDtrphwPieoYK2Xj7yarp85wVkRkE3/4wx+YNm0aAIGBckmf8JAg7r9hNLPmrGDv4VKS4kPl/t5dRJIkCkqrcbq8XD2uP5NH9wFg1qxZ1NbWyvsIDz/FR6JwqlAEpYKCwllHEFraclwuF0VFxRQWFVJUVITD4eD1118H5DJDFouFiooKSg9sx+Nq4P4/Ptvh+I0VWRQUzgxCk6D0d+j2/ui9d/nzX5/l488+p7q6mn59+7Dg27mMvnhUy7HkJ0djJtVn3r19PBkZGWRkZLR6PTEmhEdvG8eXizaxcVceJoOW6HALel37ckOSJKprGigqdxAZEsTNk4YyZlhacxmn4cO7FnepcHZRBKWCgsJZpygvl9ycKjbnH6KwoICKigoADAa5BIler2fatGnExsZiMBhYunQp9bUOivZsIiwpgyVLFjNyRBYqlQpnQz0SUFaUj95gxBoajtcvYtYrpzuFM4hKLVsZRT9IqjYFoMFg4KUX/slLL/yza2NKkjzmGSxafiJEh1t45NaxrNx8iCVr93Kk0IYoSgQF6Ak06dGoVUgSON0e6hrcON1erEEmxgxJ48px/YiLDD7bh6BwApzbn8qzjN8v4vHKLgudVoNaaf2koHDSVFZWsmHDBtavX8+SJUsoLS1l8qVjGDHtcYKMBhISEhg5ciRxcXGEhoby3EM7yWuoJTn5aOkQvygi+nz4PG5K92/j/b9u4/3j9nPPhCFkjbucZ17/CFGSCDEpfbgVziCCAGodiC46TfnuCpIkD3GGi5afKBqNmnFZ6YwcmMzOg0XszS4hO7+MKkcDPr8fQRAw6rX0TYsjLTGSgRnxxEZYOwx7UTi3UQTlMUiSRGGZnd2HisgptJFTaMPp9gJg0GnpGRdGz7hQ+qTGEh8VrHzwFRQ6wefzsWvXLtavX8/69etZt24dhw4dAuRYKL1ej8Vi4Ztv5lBpTaVeFAgP6LyAsej3YwwI5OlXPwCgrKyMtWvXotVqcZfncWTfLn7/0kxCwiPx+kXUgqpFK0cFhTOCSiWX8vG55TqRJyoEm4uWa1p3xznHMei1DOvbg2F9eyBJEjV1LtxeHypBIChAj16nfC8vFBRB2ciRggp+WLWbnQcKcdS60GnVBJr06HRqBATqXW7W7zzCyi0HsQQY6dsrjkmjMklJVIojK3Qdye8DtxM8TtkVBrLFQW8EnRHhPG//V1pa2iwe169fz6ZNm2hoaECj0TBgwAAmTpzIX//6V7KysujZsyd33XUXy5cvZ9y4sewpq2NNTjWiJJF3cC8bflkMQEl+DvV1NXwx898A9OyViSiK6AxGRlw6uXnfY6ZM5csvv2R9ttymrmlZRb2HsAAt0UEn2JdZQeFkUDXWh/R5QfIDbbu/2+TYOpMqTWOdyfPXkCEIApagbhRsVziv+NULSo/Xx5I1e1m4YhfVNQ3ERFg6tD5KkoS9poG127LZc6iIyZf0ZeJFGcpdlkK7SJIEDQ4kuw2pxnbMhaVpBUCtQdDqkYIjEMzhCAZTu+OdK3g8HrZv3866deuaBWRubi4AMTExjBgxgmeffZYRI0YwaNAgjMaOLySJVgO7DBrsTh+H9+7ik1dfaLG86e/x19xE6siJrfouW61W7r77bvav+oHKfB8//vgjY8ZditcvkRpmQt2FkkQKCqccQZDFoFYFPg+IIrLvWmhfHDYJyeaYSZ0sTM9jMalw4fOrFpRuj5ePvlvPsvUHCLaYyEyJ7tSNLQgCwZYArGYTpbYaPl+4iZJyB3deMwKDXhGVCi2RPE6ksjwke4UsIjV62RqpUjd/1iRJAr8PyeeBkiNItiKE0FiEsFiEcyT4XpIkCgsLm93W69evZ+vWrbjdbvR6PYMHD+baa68lKyuLrKws4uPjuzz2scWR+0cHsSbXzsVX3silU29ud5v58+e3EpQAWq2Wf388j02bN7P4xx+p9ghcPf4iUsJM2O12fEpxZIWzgSCAoJZrRvp9cjkhSWoUlyCLS47GSYLsHldp5ASc89xzofDr4Ny4Wp0FRFHks4UbWbpuPwkxIZi70ND+WARBIDrcQqBJz7INB1CrVdw1daSSuKPQjFRTiVRyGMlVD4YABE3bsYGCIIBGCxotkmQCjwupNAfq7RCbiqA/89ZKp9PJli1bWsQ+FhcXA9CjRw+ysrK4+eabycrKon///uj1J+5ObiqOnJmZyY6duyiqcXO4soGoQB2adr5PoiiibqcThyAIDB0yhMCwaH75+Seevvcm4me+ygMPPMCOHTsA6Nev3wnPV0HhhGn6rksaOaZSFOXfTbUmVchCUlApFkmF8w5Bktrt7XTBMH36dD78UC52nJmZye7du1m9NZuZX64kOsx80jEdNXVOissd3H/jxTx2743NF60pU6awYMGCk56/wvmH5LAhFh2U4yQNgd1O4JJEPzTUIJjMCPG9T6sLXJIkjhw50iL2cfv27fh8PkwmE0OHDiUrK4sRI0YwfPhwoqK60GO4i+zdu7dZqAYGBpKVlUWDx8/yw1UUOlyEBejQa1qLyq+//pqGhgbuuOOOVstESaKi3otOJdAr0Mdv77qZLVu28Lvf/Y7x48cDckJQ//79T9lxKCgoKPza+dVYKMPCwpgxYwZWqxVbdR3f/rwNW8E+9q3eQWHOASpKC7EEh/Hk8+91OtaOjb/w9fuvoNMb+PN/vsYcaKTK0cC3P2/nD//7DKLXxRNPPHFS85X8fnDWgrsByeMEvx8EAUHb6DI1BMhJHMod7DmH5KxFLD4k/8+M3ReTAIJKjRRgQap3QNFB6NHnlLm/a2tr2bRpUwsB2VT3MS0tjaysLO6++25GjBhBnz590GhO32mireLIJp2aMckhrMu3k1PlRK9WYTVqUB3zPrZloZQkCZdPpLLBS4hRy/AECwnBRpYvX85vf/tbXnjhBWw2G6+//vpJWVQVFBQUFFrzqxGUAQEBzW2ifli5i8LSasqObGX31tXExCcTZA3p0jhul5PFc99Hp2/pIk+IDmFPdjFBWVlcOaYfzzzzzAnNU/K4wFGBVF0mu0qb+4ccE2/XWItMCAoGayQEhSjC8hxBEv2yu9rjhgBLq/9LXX0DL8/+kA07drNp526qHTW8++KzTL/uqlZjCYIKyWRGqquGikKEqB7dno8oihw8eLBF4szu3bsRRRGz2czw4cN54IEHyMrKYvjw4YSGhp7ooZ9STDo1Y5JCiDU3sKO4lpIaNzq1CpNOjUGjQhRFVCoVkiTh9ku4vH7qPSJ6jUDviAAGxpoJaixkrtPpeOuttxg6dCgPPfQQO3fu5JtvviEuLu4sH6WCgoLChcOvRlA24fZ4WbXlEOZAAxOuuZNrbn8MtVrDx288S3lxXqfbr1j0JXqDiZ69+rF/x/rm11UqAUugkdVbDnFpVnq35yVJkiwky/KQXHVyKRljIEIbNcckSQKfR070cNhkURmZiKDrXhyowmnAXoFUW92uZdJWbedvr79NQkwU/dPTWL5hc4fDCSo1ks6AVFmEZA1DMAR2uH51dTUbN25sFpAbNmzAbrcjCAIZGRlkZWXx2GOPkZWVRXp6ertxiOcCapVAekQACVYD+XYXh2wNOFxeat0+VOZw1Go1JbUedGoBg1ZN/xgTPUNMhAdo23zv7777bvr27ct1113H4MGDmTNnDpdccslZODIFBQWFC49fnaDML6miuNxBXFQwxm5mZVeWF7F22Txu/c3T7N6yutXyiNAg8kuqyCuu6ta4kijKVq3KIiQECOi4W4AgCKDVg1YvZwZXFUNDDcT1Qggwd2vfCqcOSRKRqkvl0IR23NPR4WEUrfuJqPAwNu/aw/Cp0zofWGuAejuS3YYQdVRQ+v1+9uzZ0yJxZv/+/QCEhISQlZXF7373O0aMGMHQoUOxWCyn5DjPNCadmvSIAHqFm6j3+Klx+5j32jLMZguX3XkFZr2GIIMGTRfKAg0dOpTNmzdz0003MX78eF555RUee+wxxcKvoKCgcJL86gRlSYUDj9eHoYNG9e3xw1ez6ZnWj7Q+Q9sUlAa9Fq/PT0mFo8tjSpKIVHIEyVYIeqMcI9kNBI0OKeD/2Tvv+Krqu4+/z90j42ZvkgBhJBD2lKGCG5zgRMVRR+1wtD6ttXXVPrWP1VqtW6mKG1ygyBQU2WGPsBOy97h7/p4/TgjEbERZv/frFSX3nvO759wk537Od3y+eoSrEYp3QVp/FIsUlScElx3hskMHXdlGo4HEuNhuLasoCkJnwFVWyIr1W1m1Rh1buG7dOhwOB1qtltzcXM455xz++Mc/MmbMGHr37n3aiSRFUQgz6ggz6rAX7SEyNZX0qO431MXHx7N48WL+8Ic/cO+997J+/XpeffVVLJaT3/tTIpFITlbOOEFZVecA6NaHrRCCPds3sG/nJu55+PkuvIa96wdUV4GoKQGjBUXf+ci5tlAURa21czVC6T7IGIiik56YPzseJ4jgcWmeCYVClJeXU1xSQnFxMdUV5Vi08Ohbn+ISGsaMGcPDDz/M6NGjGT58OFar9TicwKlDIBBArz/233GdTsfTTz/N8OHDue2229ixYweffPIJmZmZx/EoJRKJ5MzhjBOUPl+gW9uHQoL/+79/4CnbSGxafwqLK/D4FYLBts2RNYqCt4uvIbwuArVEhAAAkc9JREFUROUh1eS6DTG5Y89+Hvv3y2zcsYvyqhosZhPZvTN54PabmTqpZe2XoigIc7jaFVx5CJJ6nnYRqpMd4XEd8752u53ikmKKi4opLi6mtLSUQCCARqslKTGRHpk9yUlPZuXNvySpX+4Z/7P1+/3Hpfv82muvJTs7myuuuIJhw4bx/vvvc8EFFxyHI5RIJJIzizNOUGq1GhBd/zAOhYKkRuvZWxxAG57C118vJBQKEqw/gPD5+eijj0lMTGz+CoZEu2bMP0TUlCK8LrDa2ny+sLQUu9PFTVdMJSk+DrfHwycLl3D5nffy0l8f5o5rr2qxvaLRIAxmRF05SnSiai0k+fnwe9RpGJ0QCAQoKytj1y613nHRokUUbt8EQERkJKmpqZw7aRJpqakkJiY2CyfhrEcTF3vGi0lQBeWPiVAeTW5uLhs2bOCGG27goosu4sknn+QPf/iDfJ8lEomkG5xxgjIqwnJktFUXCPi9HNixmjHnTmHkhIsJBoPU1tax7Iu3KTvUQENdFfv35ePzqxFLY0QSezd8SV1dHSUlJezYsYO+ffu2iqYIvxfRUAV6U7sfXBefPZ6Lzx7f4rF7bryGEZdfz7/enN1KUAJqs46zHtFQjSIF5c9LGzMCBFBXW6tGH4tLKCkupry8nFAoRJ3LC0BKSgpXT7+c1NRUwsPDO1i/+T9nPMdTUAJERUUxb948Hn30UR566CHWr1/PW2+91fHPQyKRSCTNnHGCMjE2Eo1GwR8Iotd1Hk1yuxz4vG5WLprLykVzWz1/aPNX9MsdzSXX3UtJaRn5+0uxiSKcTiebN29mwIABGI1GBgwYwODBg498ZSRj9nvB0r3OW61WS2piIhu27Wjz+cMNHNRXIuLSUOQM2J8PnQ6/z0tRWWVz7WNJcTFutxuAmJgYUlJTGTxkCKkpKRRV1vD83AXk5OTQv3//ztdXUMexSY67oAT1b+uJJ55g2LBh3HTTTYwcOZLPPvuMvn37HtfXkUgkktORM05Q9kiKJibSSk29g8TYzsWcNTyS6+78U6vH13wzj6KD+Uy/9feER0Zjs0XiDSqMjUvmid88ztBB6+jbty9/+tOf2Lx5M5s3b2bjxo28/fbb+P1+rj1nNDdeOJHGkLYpXZ5AYkIi4RERrQKoTpcbt8dDg93BvKUr+Prb77n6kvPbP2idHhHwofg9HXYcS34cfr+fbdu2sXat2nVtcdVyTv8MdhQUYzKbSU1JYdSoUaSkppCSnILZ3LIjuaS66/ZSIhQCFJBeo4BaNvBTTfC5/PLLWb9+PVdccQUjRozgnXfe4bLLLut0PxEMgKtpupXXBcGAehOgN6nz2E2WYxrDKZFIJKcCZ5ygjAw3Myo3ky+Wb0W4a9i9bR0AtVVleNxOln/1AQCJqZn0yx2FwWAie/CYVuvkb1lDSeGeFs9V1Tq4eMJAoiPVVLNer2fChAlMmDCheRufz0d+fj6BfZvxN9ZScfAQq1evxtMUxTJbLKrATEhorsv8y79f5bUP1OioRqPhivPP5flH/tD+SWr14HWB1y0F5XGkuLi42Sx8zZo15OXl4Xa70el0DBo0iGkXnMuIEQM455LLiI6N7U5lRecEfKDTy59nEz9FhPJo+vbty9q1a5k5cyaXX345Dz/8MI8++mibRvDC50HUV6qODV6XWvqgKOqXECCEWqig1aFYIyEqASJiZfZAIpGcVpxxghJg9KCerFi/hz07N7J03uwWzx3+fsjoSfTLHdXlNavq7IRbjYwZ3LHtiMFgIDc3l5DJh/B7GTH+bATQ2NBAeUU55eUVlJeXsys/n9WrVwNg9Dj5n5unExAKG3fvJxgM4vP7230NRVHUcr5Q9zrau4Pd6WHfoSrKqxsorazH4w2g1SrER4eTGBdJj6RoUuI7Nmg/mXE6neTl5bUQkKWlpQD06NGDUaNG8cQTTzB69GiGDh2K2WxGBPyIfRsRwWCHYvI/b39Avd1OaYU6P3v+shWUlFcA8KubriWyrbo9vxfFFge6Y7OWOt34qQUlQHh4OHPmzOGpp57ioYceIi8vj3fffZeoqCigjelWOkPH062CfoSjDmGvRYmMhYQMWecskUhOGxQh2ugkOM2YOXMmy5YtY+PGjeh0Omw2G3MW5vHxwo30zYzHoP9xutrnD7D7YCVXTB7MBWN6EwwGGTp0KLm5ucyfP7/NfUJ7NiD83g4/UDweDxUVFVRUVFBXX8/2bdtwOBy8t2w1QtEy5/n/pU9WH0ym1mlQ4ahHk56NYov/Uef2Q0oq61m1cR/fbz5AZY0dIQRajYJWqyEkBIFACCEEEWEmcvumctaQ3gzqm4LmJI7GhEIhdu/e3Swe165dy7Zt2wgGg1itVkaMGMGoUaOa510nJSW1v1Z5AaLiYIfTjnpOvJjCkrI2n9u//EsyUpNbPCaCARSvEyV9AErEyTFr+0QTFxfH/fffzx//+Mef5fUWLVrEtddeS3R0NJ9++ikDcnJaTrdqZ9RmW4hgANwOFKMZJSULJTz6Jz56iUQi+ek5YyKURUVFxMXFkZOTw/bt27lowgDyD1awbU8J/XomdKlBpy0CgSC7D1aSk5XMlLNzGTd2FFu2bAFUO5J20RvUlHQbCNTSK5PJRHp6Ounp6QCcf955lJWVYUfPs+98zGuz3iYuKpIePXrQp08f+vbpQ0xMDEKE1HTbcWzg8PuDrNiwh8+Xbqay1kG0zUKf9Dh0bbxvQgjqG12s3nSADdsKOGtYb66cPIQYW8dzqH8uqqurm6OOa9euZd26dTQ0NKAoCv3792f06NHcfffdjB49muzs7G7V6ilRCVBfgfA4wdz2+R5Y8VWX1xNCgNsBkTEQFtXl/U53fo4I5dGcf/755OXlccUVVzB27BgWvv0Ko3qmHNt0K60OYY1EuO1QvBtS+6GEy5+tRCI5tTkjIpQ7d+5sTleGhYUxevRoACpqGnnx/RXkHyinZ1oMVnP3Phhcbh/7i6rpkxnPL689m6S4SNauXYvdrk7KiYuLY9CgQW3uGyo/iKgoBGuk6l/o96l1cgH/kRosnV5NozXN7T4cAfn3f9/jvr/+H0vfeZlwg47de/Zw8MABAoEA0TEx5Gb3o09mBvFjzkd/HGZ7u9w+3vp8Nd/l7SXcaiI1oeup7Aa7m0NltfRMjeMX08fRMy3uRx9Pd/D5fGzevLmFgNy/fz+g/nwORx1HjRp13OZdi9pyRPFuhMF8zNOPmtdyO0CjRZM5EKUdgXomEhYWxl//+lfuvffen/V1XS4X//zz/9DLFCQlsxdnTTznmKPv6s2CHcVgRskciCIbriQSySnMGSEoO6Ky1s7sL9awYUchYRYjyfGR6NoovD+aQDBIWWUDdqeXYTnpzLh0FAkx3RNuodpyxIHNEBIQ9B1VyH/kw6myppb4qEj1cb0RzGH4NQbOmj6TXfsPUr52KWFWtUnD7/dz8OBBdu/Zg6u2ikOl5fx9ziIuuOACpk6dykUXXUR0dPdTax6vnzfmfs+3G/aQmRpLmKV7ohsgGAyxu6CC1IQo7rn+bNKTf5q0rRCCwsLCFnWPmzZtwuv1YjAYGDJkSLOAHD16NBkZGT9JjacQIUTpPkR1KZgsKMdY9yg8ThAhNMlZqlG9pBmj0cgzzzzDPffc87O+rvC6CR3Yyq7tW5nz5dekp6czfdq05jng3ZluBervCs4GlJgUNf19itYcSyQSyRkvKOFIOvfLFdsor25Er9NgC7cQZjVibKqv9PkD2F1eGuxuvL4AibERXDxhIOeM7Ite373UsvA4CZXug7L9an7bYII2ohxX/f5xGh0uxg8ZQEqMjfKaOt5f/B35BUU8/cf7ue+2G1uvLQQ46zngUnh34XLmzZvHxo0b0Wg0nHXWWUydOpWpU6fSt2/fVh9eM2fO5K233gJoLg34bMkmPlywgfSUmGMSk4cJhULsOlBOdu9kHrj5PMaOGdlcGnDJJZe0W2vaEY2Njaxfv75F9LGyshKAnj17tog+Dh48GKPx2I+/u4hQEFG2H1FTppYemKxdr7ELhcBtB60OTWImRCdJofEDNBoNL7/8MnfcccfP+rqh8gNNmQUbhw4d4uOPP0ar03HN1VeTnJzMV8u/4/m3PmDMkNwW062+W7+pzelWAMLvg4AXTeYglOOQUZBIJJITwRkpKCtqGjlQVE15dQMlFfX4/AH0Oi22CAsOl4eSigYaHG4cTg++QBAAg05LmMVIamIUowf1ZHC/NCLDzZ28UmuEs0FNh3qccFg46I1qFPIHfLhoOW9+vojt+wqoaWgk3GpmaJ9e/OqaS5k65ZI2a7eE1w0INL2GoBjV4yspKeHLL79k3rx5LFmyBI/HQ+/evZkyZQpTp05l/Pjx6PV6Zs6cyZdffsmzzz6LzWaj78ARPD1rMWUF2ynZu5Hig7upKi8mMiqWB558s9Nz3bLuG+bM+icGo4k//2sOXl+AvYWVXH3hMEz+cmpra7nvvvsYNWpUp4IyGAyyc+fOFtHHnTt3qg1AERGMHDmyhYCMi/t5U+ttIUIhtZ6yohDhc6s/Z4MJRWk7RSpCQbWuNhhAsUagJGaiyLrJVgSDQXQ6HW+++Sa33HLLz/a6IuBTu/hDIdVXEvWm5qOPP6a8vJxLLrmEIYMHt3m8Iy6/Ho/Xx85Fn7ZeVwg1ShmXhia51099GhKJRPKTcMYISiEEewoq+C5vH3k7CqlvdKnBQb0WrUbtUPb5AghUr8rsXkn0y0wkJcEGgMVkIDE2Eov52GvihNuOOLRLFX2WCAgFob4Sgn5VbHRpEcDvVesrI2NbpFNFKAguO0piJpqE9DZ3d7lcLFu2jHnz5jF//nxKS0uJiIjgwgsvpLS0lMLCQg4dOoQQghfeW86qjfvJX/U+2/NWkpzWi/q6KjSKplNB6fW4ee7RO/F6XAD8+V9zACirakAIeOxXU4mLDicjI4MBAwa0EpTl5eUtIo/r16/H4XCg0WgYOHBgi67rfv36ndRd5MLjQtSWqRYzPo/acaVojpQ3hIIghBqFNFnV9LYtAUX38zWdnEp4vV5MJhPvvPMOM2bM+NleV9RXETq0AywRLW4KgsEgXy1YwMa8PIYPH86FF17Yyq/y0l/8lg3bdlC6Zknba3tdKBotStYwFO0Z0yspkUhOI86IK5fT7WX+8m0sWb0Th8tHfEwY/XslodG0jgoKIahtcLF2y0G25Bdz9si+XHbuoGOKRrZYNxhAlB1QjY8tkap4aOr2pLFGnarRlQ8SBVV8+j3gqEdExjX5TgpVTIbZUGJT2t3dYrEwZcoUpkyZghCCTZs2MW/ePObNm0deXh4A48ePZ8K5F7G3PoKUpHjSLruZy2f8Bq1Wxzv/eYzK0sJOD3PFgg8xmixk9s0lf8ua5scTYiLYsa+MvB2HuHB8DqCmw1etWtVCQBYWqq+RlJTE6NGj+fOf/8yoUaMYNmwYYWGnVnOKYrKgJPdSR2E66xEeF3gc6o0Ean2sYg5TTcvDbG36GEqO4G/yYP2pJuW0i1e9OfphhFmr1TJ1yhRSkpP56quvKK+o4JIpU9Dp9N2YbmVA+NwoPjeY5fzwzvD7gxRX1FFW3UBVrQOfP4BGo2ALN5MYG0laYhQRYT/umi2RSLrHaS8oq2rtvD5nJZvzi0iMjei0IURRFGJsVmJsVmobnHy5YisHiqu5Y/o4kuNtx3wcoqYUYa8DS3jLejijBSx+HFXlPP3B56zbsZf1O3dT1+jgjb/cz81Tz2vjIFG7v70ucNsRpjBwNaKYw9TC/i5GOBRFYejQoQwdOpRHHnmEq6++mmXLlhEVFcUzL/6XYFgvIswh+vXpQ58+fUlP79GldWsqS1i17DOuv/NPbM9b2eo1QwEvr737OfM+eImysjIOHTrEggULMJlMDB8+nGnTpjVHH1NTU0+b+kFFbwBb/PGdoHMGclhQ/py2QdDUcd9OuQLA0KFDSUhI4MOPPuLK23/F2p17gS5Ot9JoIdhU8iAFZbs02N2s317Adxv2UlReh9t7eMDDYbM1gU6rJSrCwuhBmYwe1PNnd5aQSM5UTmtBWdfo4pWPvmXrnhL6ZiRgNHTvdKMjrYRbTeQfKOOlD1fwq+vP6XY3N6i1V9SWgU7fKvqkKArCGkl1STl/feMDeiTEkZvVkxV5WzteVKNRP4Qc9WrNXZgNJbXPj5q8YbFYCAsL44svvuCFd5fyydercdWVsnPnLtauXYvBaETrKCPo8+FyubFY2o4AfPXxa2T2yaXPgBFsXreCUCjEihUrKC4uoaSkBLcvBBotGeZK9Ho9ffr04a233mLgwIE/u0iQnHqcKEFJ0NehoARISUnhzjvuwBsUZKcnk96zN+t27iEYCnU+3UpBLX+QtEIIwYYdhXyyeBMHi6uxmPTEx0RgNRta3XD6/AFq6p18vmwLy9ftYfLY/lwycWC3beEkEkn3OHkLz7rJzJkzURQFRVEYMGAAoVCIj7/OU43LM7svJg+j12npl5nA7oMVfPDVegKBIIMHD25+rSlTpnS+SGOtWjdpbFuAKYpCUnomxcvncWDeWzx1d1P3tgipdkI/RAjVrzIYUL0rw20oGQNQTMcnFSyEoKi8nj69Mpgy5RLuu+8+7rjjTsaOGYPf78flcvH00//Hm2/OYuXK76mqqkIINXW9esUi9u7YiCGqJy+88B+2b9tGIBBgzZq1AIwcOZKrp13JVdOuYd6CpcTGxpKens7QoUOlmJR0iRMmKLsYW7ZarfzP/fdy47QrCDXWcPvUydgdTi6747ecISXrxxW/P8gHX63nP+8up6yqnn49E+iZFkeYxdhm9sKg15EUF8mArGRMJj1zF23kn/9dQllVwwk4eonkzOG0ilDGxsY2dyiv3VrAyo37CNmL+PKDOT+6Q7lXWizrthaQ22cff/vb35o7lLuCsNeCorTb3QtgMhlJSk1VG2vCStQHQyHV8Jwffgg1TcGxRqrb6I/d67AtAoEQTpcXv99HdXUNHo8Hj8dDbGysavwdcJPRqzdV1VUsW7aMpUuXoDcYCAWDeMs3obHEYXf56dmzJyZ/BaUFDh588MHmRnYhBDv3lx2VrpJIuk4goM6o/9lrKHWGLkcQNRoNEydOJCoqinnz5pEYYWbpqrXsOVhI354ZrbYXQqh/5rIhpwXBYIgPF6zny2+3kxgbQYyt6xkYRVGIjw7HFm5mx95SXvxgOfdcdw6JsdKaSSL5KTitrl5Wq5UZM2bg9wf568tfotHA/u2r2Zb3HclpvQi3dc3Y2+txs/CTWRiMRyZXWM1GzCY9C77bzqP3TMViNvDwww93upbqKehQu7K7gKLRNtv9YI2EyFg1EilEU3ewVl1Lq0fRahEeJ4rHgTjcJYz64eTxeKivr2/11dDQ0Obj9fX17Nq1C4fDQUREOIHYEeoxBFqOhwzWVUDAS1VVFcFQsKkhCPw+P5mJZg7VaPnNw08TYVPtbj6pyqesUGnDFamtxySSzjlREUrFHIZoqOzWPrm5ucTFxXHPQ48AsHvvvjYFZXNTXpMdkUTl4kuvYtFXnwEQn9SDX//lxW7tv2rp5yyY81rz99rQRzz0yysw6E+rjz6J5KTgtPyr2rG/lAMl1fRIjCL+spu4bMavj0uHcnJ8JPsOVbNldzFjBvfs2sH4vYigv8uCEo7EIz3+ANV2V3OEsMWX14vH40ETCqARIZ79/H4OlZU3i0afz9fm2lqtFpvN1vwVGRmJzWYjJSUFu91OaWkpjz32GMu22fEEIC0xCpPJ1Pw1+8XHKS06gNPlRIRCJCUlUVJSzNQpF/PlO08xcuLFBIM+6moqAPB63QghqKupQK83EhZhw+sLYNBrsf4ICybJmcsJS3mbrICCCAXb7cSvrKklPqbljWtsbCyF1Q0YdDrWff8dSTE2hg8f3jKBHvCpTVty/GIzJZX1HCqrxWQJ55Kr78BsORKdDAYDrFjwEZvXLKWxoYaIyBiGjj2P8RdMb2HZlJUzFEvYA+zcvIpdm1ezdXcxS9fkc9H4ASfilCSS05rTUlBu21NCwB/CbDJgNnVvzF9HHcoGvQ5Fgc27irouKEUQRAghwGG343A4cLqcOB1OnE4nDqf6f6fD0fxvu09N6S1c+DUV+3a1WE6j1bYQeFERYcRGhDModwBDRo5qIRZ/KBptNhtWa/sTW2bOnMny5cv5zW9+Q/in37NkVT7p6YkIAQcO7GfNmrUUFhZA0Me5Y88iNTWFDz74gJEjR5KZkYbP62blormsXDS31drPPHwb/QaN5oa7Hsbu8hBuNZEUZ+vaeyiRHMUJE5TWSBSTVa2Hbmeu+l0P/xW7w8n4EUNJToijorqG975YQP7+g/zjD/eRkxrPV19+SVlpKRdffDE6nU5Ndwd8EJsqLaOOYtH3O3B7/ZhMZgaPOqfFc3Nm/ZMdG1cydMx5JKf3pvjgbpbOm01DXRWX3fDr5u3iEtOIS0yjtqqUXZtXEx5mYsG32xmVm0l05LE3MEokktacdoJSCMGewgrCrMcW/Tq6Q/mHghIgwmpif1EVgUAQIQQul4vVq1dTUVFBRUUFlZWVLf6v+NzcMXkkxRXVOD3eFmsZTSasVithVivWsDDSoqMJs1opqaoFYMzoMVx/6UWYTCaMRiMmkwmdXt8isiECPgj4Oef2oUdS5ceB9KQYfH4/GzZsYO26dVRXVZGQmEhCQiJuRx2jRo3klVdeJTExifPPP59g0M91d/6p1TprvplH0cF8pt/6e8Ij1chNfaOb/j0Tf9QoR8mZy+Eayp9TUIZCIXwBgbBEo3MWoDGGUNow07/6kvN58+PPePm9j6mpbyDcamHogP787+9/w6WTzwYgKTmZefPmUVlZyTXXXEOYUQc6A0pk7M92Pic7VbV21m8rxGzU88NWmuKCPWzP+46zL76WSVNVY/uREy7GEhbBqqWfMWriFBJTM9tcNyEmgkOVdjbtOsSk0f1/4rOQSM4sTjtB2ejwUFPnPCaxkr91Hft2buK6ux/j4MEC6urrCAaDLF26TI0iOp002N04PX7+88SdeBy1HDp0iLFjxwJqIX5cXBzx8fEkJCSQmppKj+Qk+mX3YtBQMzqLFavFSlhYGBaLpd2mgg3bdgAQHx9HSnysaoAd8IPbBx4QGp2aQj/cJKDRqv8+ThQXF/P5x7NY8OUWvB4PGYkRpGQlEGmLZGuZE6/byWvPPYG9oYEJo6ah1WrRarVkDx7T+j3dsoaSwj3NzwWCQby+AGMGyxFzkmPj5zA2V50O6tixr5SDxdUcLK7G4wtAKIjZ10hmtIHMtHgGZsSQFHWk7vHaKRdy7ZQLO1x7UG4ucbGxfPjhh7z5xhvccMUUYrOH/SjLr9ONbXtKqG1wYmrDnaNwn3p9HDh8QovHBw6fwPdLPmVb3nftCkqtVsFs1LNq0wHOHdXvtPG4lUhOBk47Qenx+QkEg4R1Q2CtX7+B5Su+obFgLYophg/nfg5AsL4QEQyybds2rFYrVquVuLgY4rRmLr1+HC8+9w969erF66+/TkJCAtHR0a1GrgGE9m9CuB0oXTQsFsGmTlJnA9RVcKSq8vDFr+l7jVadAW6LV30pfyRVVVVUVVWRkZGB1Wpl/EUz0UZmoHcV8tns51ps6ylUfTIL9mxm6Jhz2lquTUorGkiKi2RI/7QffbySM5OfOuW9t7CCr1fuZNvuYhqdHvQ6LWEWIwa9FrRaGkIGVuZXs3xnFbYIC0N6xnLhsDR6xHXdkDw5OZk7fvEL1q9YyiuzPyRxZBW333mXFDhNHCqrQ6vRtPl+BAKHf/4tr/F6gxpEKD20r8O1bRFmyqoaaHR4fvQENIlEcoTTTlAeywU5Pj6e+DCBWwuXzvgV0TFxhIVZWfrZm+RvXcO99/62eVuX20d5dSO33jqVt17/D7GxsQwY0EmBtzUKHA0tOrHbQggBHifYaw8/AHoDbbZDC9TIpdcNjTWI0n0Qn64W9ncDv9/P3Llz+de//sXatWvR6XQ88cQTzJgxA60xnKfeWIjLHcMTL6mztg8eLOCdd95m/PjxnHNO50Lyypvv48qbVXslp9uLw+3j2otHEAp4qa52EgqFunW8EslPJSi9Pj9fr9zBV99up9HuITk+grSkqFZ/syIqHKItCHstNc4Ay7aWsK2glikj05k0KAWdtvObOxEKYSHA+PMvZHmJnTvu/iVrN+Txn//8B6NRloLsK6pst2kvNiEVgML9u4iKTWx+/HDksrG+psO1wywmauprKKtqkIJSIjmOnHaCMsxsxKjX4fEF6KrbWEJ8DIfy1zPq7EtI79E0B1v4CQR8bXQo+zEYdIRZui7clIgYRHWxKgDbiZwKEeI/r82ivq6Wsuo6AOZ/v4Hipn//6ppLiQw7KiWmoApNgwnM4er6rkZI7avOhe6EmpoaXn31Vf7zn/9QUlLCpEmTOPfcc1m2bBkPPfQQ7777Ltu3b+eKSYN5Y+731DY40WtCzJk7h4yMTCZOPLvL5w+qOfH+omrGDu7FhOFZDB8+jC1btgCqtYpE0lV+CkHp9vj472er+XbDHmJsVrJ7J7Z786coICwR6phWTT3RFi2l9iDvfLOb8lon103MUqOZbSCEAL8XfG4UayS6lD48/tQoemUP5M4772T79u3MnTuXlJSU43ZupxqhUAiH04OhnWEUfQYMxxYdz8JP3kBvMBKbmMbu7Zv4fuEHaDRaAv62HS4OY9Br8QWCuDwdbyeRSLrHaScoLWYDSfE29hVWEB/dtRSU2+XoRoeyl9io8O51CJrDUMJsiIZqhFXfOuIhBNhreebtDyksr2p+/NNvvufTb74H4IaLzm0pKIVQvetMYU12JgLhbISifOjRv916rJ07d/Lcc8/xzjvvEAqFmDFjBr/97W8ZOHAgO3fupLS0FICwMFWUjh+WRVlVI58v28z33y5Bo9Fw1VVXotF0PRLs8frZU1jJgKwUbrx0FDqdlldeeQW73Q5AXJyctSvpOsfb2DwQCPLOF2tZvm43mamxXaq/VhTAEq420zjrSdF4aNALvs47hEajYcY5WS18YREhVUj6vaqHbFwPlPgeKE12YjfffDPZ2dlceeWVDBs2jLlz53LWWWcdl/M71ehsmJBeb2DGPY/w4etP8cGrf1MfVDRceNVtfLfw4xb+wR2/jpxaJJEcT047QQnQNyOBLfnFnaaYD2MNj+xyh7LD6eWsIb26lVpXFAUSMhCuRjVFbfqBebGrEdwO9n/+367XQgb9qhGyNaLpWNSZ4MLZAKX7IH0ASlM9ZygU4uuvv+a5555j0aJFJCUl8dBDD3HnnXe2EHPZ2dlkZ2e3eBmtVsP0C4by4YfvU1lVx7mTLujWBbu8upHaeifDsntw21XjiLGpQnXUqFFdO0+J5Af8mAjlzJkzeeuttwDIyclh+/btfJe3jxXr95CeEtPtZj7FYETo4lF8bmwGByHRyNKNB+gTo+XvLzzLF003hDm9Mtk67z2I64FiiwNzeKtryIgRI9iwYQNXX30155xzDv/+97+58847z7i6So1GwWI2UlNnb3ebhOR0pt74ez549y0Meg1XX3sTiUlJLJz7BhlZHZcg+QNB9FotFpP0wZVIjienpaAc3C+Nr77dht3pwVVfTv5WdY50bVUZHreT5V99AEBiaib9ckdhMJi61KHsdHvR6bQMzU7v9jEp5jCUuB6Isv0IvxdFr35wCb9XFZQabbti0uvz8cgr7/DuV8uoszsY2CuDx++4nvMmndti5KKiKAhLOMJeBzUlOC3RvP322zz33HPs2bOH4cOHM3v2bKZPn47B0PWL6fz58/j8nWd54E9/wxzflz0FlRj0WhJiwgmzGNEcddxCCDy+ADV1DuoaXUTbrFw/dRTnjemPyShndUuOncPpYl3AS3pCLAaCiFDb9j0dcfSI1rKqBj5buom60t3kr9rc6YjWxvoaFn46i5KCvdgbatFoNMTEJzNq4hQGjTqX6PAoagsr+GyXg9tvv4tp06bxt3/9B3Q6lKxhzRHJ9khISGDJkiU88MAD3H333eTl5fHCCy+cVnWVIhQCn1vNsCDUa5/BjNI0dlJRFHqlxVJY2n4t5IYNeSxY8BXp6b2YPn0aZrOZPdvXI0SIXv0Gd/j6DpeXMKuRxLjI43hWEonktBSUPdNiye6VTN6OQjyV+1g6b3aL5w9/P2T0JPrldj1SVlxeT1ZGAv17Jna+cRsoscnq5JzqYvWiajCBy65a/+jbj/rd+tgzzF26kt9cdzlZKQm89eVSpv7uCZa8k8b4EUNbvoZGi93rY/uXc7nxL09TWFrOVVddxZtvvsnYsWO7He3Yv38/M2fO5IorruD/nvgDTrePvB2FfJe3l8LSGorK6496cSAERoOOmCgr55+VzYiBmaQlRnXrNSWSw4hQCJwNiMZqcDUifF76Gb08PvNKTKX5iNpDCEs4SngMhEc3i5KOODyiFeDTJZsoq26kbH8e2zeu7HREq8vRSGNdNTlDz8IWHUcwGGD/rs188vazVFcUc97lN9MzI5ldB8qZfM5Z3Dg2mzc++ozq6upOxeRh9Ho9//73vxk6dCh33XUX27ZtO+XrKkUwCI5aREPTzzHgPzIXXaNRywBMVtWLMyKG9OQYgsEQgpZpaTXbspD169cxYsRILrjgArRaDX6fl6VfzCY8MprcERPaOIIjNNjdpCZEYZMNORLJceW0EpShUIjq6mp0Oh1Tz8llT2EF0bZRzR3K3eXoDuWaegcGvZbLzx2Ew2EnEAh0u0NZUTSQlAk6PaKqSO3m9jpBq4d2dN66Hbv5cNEKnvr1rTxw7VTQaLnxqssYNO02/viP51j5sZq+E0BxURFr1qwhPz+fwb0z+OOv7uT8a28mPb37EVUAt9vNtGnTiI2NZdasWSiKQpjFyMQRfRg3tDdl1Q2UVTVQXefA5w+iURRs4WaS4iJJjrdhkaMVJceIEAIcdYjKQ2qpSCjUNMNehzMgKK2pR6M3IYIBqKtE1FWgGK0QmwJRiV2KWjrdXlZu3Ed0hIXzLr+Zy2/8TacjWhNTM7nt/r+3eGz02VOZ/eJjrFk+j0mXzkCr1WIxG/g2by9nj+h7zO/BzJkzycnJ4YorrmD48OHMmTPnlKurFEJAQ5X6c/Q4AEX9OeqNamQS1PrSoB/hqEM01qAYTfSPisQWbsLbNDUM1OvRxx/PobCwgHizCxxFbFy1CK/HxcZVi6mrLmfGPY9g/GFJ0VGEQgKHy8fYbpYtSSSSzjmtBGVRURFxcXHNtVEXjcvhw6/zsJgNRFiPfUau0+2lrKqRS8/JZWCfFIYMGXLMHcqKokGJ74GwRhI6uAUcftAKIARKk6+koqiV6UIwd/EKtFoNv5g6GQxmCLNh1hu5dfrl/OmfL1BQXEJjXQ1r16yltLSUmNhYLrroIgb37YUuPAqlRw8ANSLgagSvC+Fxqummpi5xxWhRG3t+UNf129/+lvz8fFavXk1kZMv0kFarITUhitQEGX2UHF9EMICoKETUlqpC0mRtEXn0B0O4vT40BqP6+2pUI5nC60KU7EGx10FSz04nRx0srqaiupGeabEY9D/uUmiLScDv20AwEEBjUMtBisvrKK6o69o5h4JHRex0zYJ4xIgR5OXlMX36dM455xyef/557rzzzh91rD8XIuBHlB+AugoEinp9aXO0pEatBzeYESKE8LpJDFQwJEHHQrfaiV1dXc1777+P2+3mxhtvpGjPBjauXsL6lV+j1xtI753D9Ft/T1JaxyNxq2odxEaFMzS7x09wxhLJmc1pIygffPDB5jTW4Q7liycOpKrewZJV+aQl2rBFtH/n2h6NTg+FJbWMG9abKyYPQVGU49KhrFgjISIWvF5V2Pk9qsgTIdRwpQBFw+Y9B+nTI5WIlAxV/DUJvty+WQA88dTT9Ii10atXL2644QZ69VLvvIXPg/C61PSSvQ7qKxA+txrKVBRQNOprhEJqUkmrRbFEQFQiRMbx9jvv8Nprr/HGG28wePDgYzpHiaS7iGAAUbIHUVeh1tWZW98IhoJBFEVpcfOjaDRgDlP3b6hUu6nT+qF0EK0qq2ogGBLHJCb9Pi8+nwef10PBnu1sWr2EtMx+zebaFpMBjzdAWfUPBwc2nacQR/423Y0Ij6vpb18tWxGmMBRLOIRHEx8fz9KlS7n//vu56667yMvL4/nnnz+p6ypFwIco2q2WKpisLWq9O0JRNGCyIoIBJmdF8IwSxOv18uorLxEREckdv/gFUVFRZGRkMP78aZ2u5/f78Hnd+H3q2NvaBiczzxtFXBcdQCQSSdc5bQRlWx3KBr2Omy4djUGnZema3VTXO8lMiUHbBePhUChEYWktPn+Qc0f35capozE3dQUejw5lIQSK24kwWVBMVrVWLBiAUKBJ9AEaHeX1dpISE5ujLRUVFaxdu5Yl36ndo+bwCH75y1+2FrZaHdhrEAe2qJEPnQHMEW2mAkWTBZFwNiAc9VTkb+PJPz/ELbfcwq233vqjz1Ui6QpChBCl+1UxaQ5vtx4yGAqhaWMiFYCi1TW5HTRCcT5kDGhXzFTW2NucGdAVVn/zBYs/e6v5+559B3HlTfceOY6mhatqHS32a07lVxerjgzBAGh06t9rU/ROhILq325DJVQdQgmLRheXyvPPP9+qrjI5OfnYTuAnRIRCiJJ9qpg0RzS7TXQHRasjIyOZGFOIPc4GcK4lLDGNqKjuZUTWf7uABXNea/4+u3cSF5yV3cEeEonkWDltBGV7GA16brx0NP16JvHJ4o3kHyjHaNQTHxNOmNnQokM5FBI43V6q6hy43D5S4m1cMXkIYwb3RKvV4HR78XhVy5IwixGj4Ud0LYuQ+sHR9PqKRgMaA9Dyw8/t8WLQ69m1axd79+1j08aNhEdEMG7sWP7z6SKysvq0EpNCqI0MuOzqh1V4dIf1QorSVNek0+N1Odmy8mseu+0aLr/7gWM/P4mku9RXQV15qxQ3wPqtO3j7k3ksX7OeA0XFGHU6tpU38MT999Ans2WNsKJoEJYIVbBVHILktuvl3F5/t/xUfT4/s2bNYsCAHLJyRpLSIwuno4Hd29bhaKzH38pQW+APBI98F/QjKg4dSeUbLSjm9q8hQggI+BD1lQhnPUpsKjNvvpmcnJwWfpVjx47t8jn8LNSVI+orm24KWotJr9fHI8+9xOzP5lPXYCe3XxaP33cP540b3bxNMBhk/pdfMjg1it69buaQx0Ryj+6nqXOGjCU2MZWi8nrio8O5bfq5zYEBiURyfDntBSWARqNhVG4m/TIT2bjzEN/m7aW4vJaiMrW+qSnBDIDVbCAl3saE4VkM6ptKRY2dj77OY9+hSipqGvEHgiiAwaCjR1I0vXvEM7hfKunJMd0s8u5828bGRkLBAPv27+ejjz6iT58+TJs2jf79+5O//yAAJlPLtJdqkl4Hbrua1jZZunxcAvjiqwXs23eQe265EUN1IcJsRglvv+tVIjkeCL8XUVmI0GjajCj+45VZrNq4hWkXTWaKbjQbt27ju/UbGX7Zdaya8zYD+vRusb2i0SCMFkRdGUpEDIS3jmzptNpumVv7fF7i4+P55pvlfIPqYzlixAimDZ/IF+89z3+fe5jfPvpyc9obFDTNf3tCTQE3VLWbyv8hiqKA3ojQGcDnRpQdAJ+HEcOHNddVnn322cdUVxkKhWh0evD7g+h0WiKspi5lbjpDeN2IykOg07cbYb7lf/7C3K+X8tuZ19M7owdvz/2CKbf/mqWzX2Xc8CE4nU4+/OgjSktLueOWG8nqmcX7y/NZXuChoKSGHklRLQIBHZ6nzopHn8hZ43L5xfTxpCfH/OhzlEgkbXNGCMrDRIabOWdUXyYMz6K8ppGyqgZq6hwEgiG0Gg3RNitJcZEkxoSzKb+Ylz78lv2HqvD7A1jMBsKsRkxNdUteX4Dte0tZv62Q+cu3MiArhaln59KrRxdrKhVFTc/5vS0eFkJw4MABNmzYwO49e9Ai8AZC3HXXXSQkJDRvV1ZVDUBy/A9ez+MAt0ONTCrBplrJrrFu3Tp27tjB1ddcTXh8MrjtiNL9kGlBMRx7U5NE0imN1WqzmNXW5tP33TaDd5/9XwwGPd+tXEm0QeGFvz/BoIuv5qmXZ/HOM0+22kfRG1WBU1cOYbZWN1axUdbmPpiuEBYWxhVXXM4FF5zPpk2b2bBhA1u3biExMYkeSYk01FVRsG87WdnDmvYQREVYAAF+nyomO0jlt4faeGRBaHWImlJQFOKTe7NkyZJu1VU6XF427yoi/2A5+4sqqbe7CYXU4Q9hZiM902Lpm5nAkP49ujcJ7Ggaa9Ra7XZ+juu2bOfD+Qv5xx/u44HbbwLgpiumkHvRdP7w1L+Y+8I/eP/99wkEg8y8+WZSU9W53TdNyCSrt5/Pt9axY18ZkeFmEmIiMLYxnjEUClHb4KKixo7JoOPi8QO4fPJgbOHdr6GXSCRd54wSlIfRajWkxNtIibe1eq7e7uLtL9bw7Ya9CCFITYhq1/4mIUYVgA0ON2u3HiD/YDmXTBzIhWfloG9nlu9hVBPyCKgtA8DlcrF582Y25OVRV1tLfEICF190EQ0aM8+//QFmS8sL/LrN2wEY3P+ILYkI+NVUt0ZpCoBqVUuiJo5OGxaUlBJjszFq8ECeuP8eLHotixYuZMyYMfTv119dzxyOcNZDZSGk9JE2G5KfBBEKqXWTWl27v2Njhw5u/ncoGESr0ZCVkU5OVq/maH2bGM0Iey1KGxOqEuMiQVEFSFcjXgAWi4WzzhrL2LFj2LdvP+vXr2fN6lUArF29muiEDMLCI9FptSTGRoDfp9ZKHoOYPBpFZ0AYUa8ZVhsGWxwvvPACQ4cO5e6772b79u3MmTOnVV2l2+Nj8aqdfLNuD+XVjWg0CuEWIxazAa1GQ0iopT6rNu/n2w17iY0K46whvbhowoBuiTARCqriXdt6vOxh5n69BK1Wyy+uubL5MZPRyK3TL+NP/3yBZ557nl4ZPbj22muJiIho3kZrMjMuXU+/wbms3V3Oyrx9FJTUEAgGAQWtRkEIQagp4GwLN3PuqL6MGdyTnN7J8tolkfwMnJGCsj1q6h28+tF3bM4vIi0pqksXU0VRsIVbiAwzU1bdyPvz11FVa2fG1FGdd4+arNRUV/PdomXs2LkThFB95y6/nNS0NBQgqDPyr1nv8tqHnzTf0Xu9Pv4793NGDRpIWvJRJutuu/rBpTdCwAd6U4smnKPThgP7ZlFRXcN/3vmQ4Zdex12XTaZfzwwmT57c4tyE0Yqor0SJTgLLkQu8RHLc8LnVLucOzP2P5nBTjhCCiuoasrN6tb9xU7oYj72VoOyRFI0t3ExNg5O4qK51/TrtDVjDVQstRVHIyupNVlZvZj23kwP1UFxRywsvvEBKeh9ycweQGK5VsxBNGYkf0tFN3g9rQwEUvUFdr6JAHbuqN3LrrbcyYMCANusq9xVW8sGC9WzfW4ot3EzfjHh0utY3u1FNDhjBYIiqOgefLd3M1j0lXH3hcIb0T+vSe4PXrUYnDe3bNW3amU+fjB5EhIc1PyYAo0ZVghqThVtuuaX1WM2mn2O8BS49ZxDnjenPwZIayqrqqahuxO31o9NqibFZSYyLJC0xioQYeb2SSH5OpKBswuX28fqclWzKL6JvRkKbqZSOUBSF5LhIwswGFn2/E71Oy4ypo9q8M7bb7cyePZuP332ba0f2x2i2cO455zB48GAslpYfeqMGD2TaRefx0NPPU1lTS6/0NN75ZB4FJWW89r+PNG8nggHwuo4yCxaqt+RRHJ02PMz0i88n98KrWJq3jT//z+9bR2p0evA6EfVVqq2QRHK88TaN4TN1Lc16OEL57udfUVJRyaP33t3utoqiqJauHlerquX46HCG5aSzbE0+QWd1pyNaAVYs+JBDB3bRO3sotug4XE4HOzd9T0nhXkafPZULrrqNHTt28N26HXz58Zv8uW4lboejOXL2Q9q9yWunNhQAsxXhbEBprIEYNRo5cuRINmzY0FxX+cILLzDm7Et47ePvqK53kJUe36VrmlarITE2gtgoKweLa3jp/eXceOloxg/P6nRfvC4IBo9cg9qgvLKapKPKdPx+P1988QX783cBkJHVp80Z7Ud+jm4UwGwykN0riexeSZ0fl0Qi+VmQgrKJBd9t4+VnH6dg52oA4pN68Ou/vNitNVYt/bzZouLDZyDx2zzOG39kNOLWrVt56aWXmD17Ni6Xi6lTpzLmwqlkx0dCWFS7aZm3nn6Cvzz7IrM/+5K6hkZy+2XxxavPMWHksCMb+b1HopPBgJrq/oGx89Fpw8OUFRUSGxmOHw3h4a2jNIqiIPRGtcYtIeOYLEAkkg7xe0Ghy2nJUChEVX0jf3nj74wZksvNV07teAeNRhU7bTB2SC9Wbd7P3t0buzSitc/AEdRWl7Fx1WJcjkZ0ej0JKZlccdO9DBk9CUVRSEjJ5LKpPbh8zO0YD65l8Zo86hwu5s6dy4gRI0jr0aNZ3LZ1k3f1Jed3XBuqaBAanZpePmoqUGJiIkuXLuW+++7jrl8/yMCzNzFg0DD690zsdspXp9WSlR7PobJa3v5iDWazgeE5nUzcCviajq/913J7vBgMeoQQFBYWsmjxYqqrqrj00qm8NG8ZHo+33X3RaNRos0QiOSmRghLYW1jBwpU7MRn1WMIiuGjaL1rULAaDAVYs+IjNa5bS2FBDRGQMQ8eex/gLpqM9SmBl5QzFEvYAOzevYtfm1cxfvpVB2T1ZtGA+L730EqtWrSIpKYn777+f22+/nbS0NITHiTi4TTUhbydCYzIa+ccf7uMff7iv/ZNoupgjhOo7GWFrZyrFEQ4cOMA333yDXwiSj2r4aYXOgPC5UXxuMIe1v51Ecix0o9MawO0L8Nq8JUSGh/HRC//X4m+wbRTVpqeJo0e09u+ZyNkj+vKly8sjz3/eZjr4aHr3H0Lv/kPafd7r81Nd5+Cai4ZzVv8o3KZGomPj8FNDWVkZs2bNIj4+nhEjRpCbm9vmTV7XakNNCI8Txeti5t2/4q23VE/MnJwc1m/YSFkgiS8Xr6KhppLUa64mPPzY/m57JEWz71AlHy3YQEZyDJPPGdc8JeySSy5h/vyjxtoK0a55hdfrpbikmFAwQOGhQ/z973/H5/ORlZXFpVOnUmt3Aq1dK1rRzXG3Eonk50MKSuC7vH3YnR5MRh0Gg4nBo85p8fycWf9kx8aVDB1zHsnpvSk+uJul82bTUFfFZTf8unm7uMQ04hLTqK0qZdfm1Xy99Hvefvkf1JfuYtKkScyZM4dLL720RUpHMVkhvgeiZC/C70PRH6NHWsAHKOr/jRYwdfwB0tjYyNy5c6lw+qiua+DqS85vf2ONVk1lSUEp+SlQlCO+XZ3QYLfz4D9fxOF0sfTd10lOiO/CXqJFGvaHI1ovO3cQ+w5VsPtgBf16Jh6zfY4/EGRPYRWD+6Zy4bgcrrtiKp9/vQiAnKxe3POrX1Fw8CDr16/nqwULWLx4MYMGDWLEiBEtvGS7VBuq0al/k141YhcbG8uzzz6LzWZjyZp8DGEJnD28F8sXzuXphxci/C4io+J44Mk3Oz2PLeu+Yc6sf2Iwmvjzv+aQmRLLzv1lfL5sM3/729+ora3lvvvauLltcpQQQH1dHYeKiihq+qqsrAQh0CnQ4HAxfsIE0lJTSU1NRavVsuOAWm7QyrXiaISA42BtJJFIfhrOeEFZVWtnw/ZC4mLC2d3G7XVxwR62533H2Rdfy6Sp6mjHkRMuxhIWwaqlnzFq4hQSUzMBNfKxZ88etmzZCkDRoUKGjpzMa//7Cf379Wv/IKISUTwudXoGAkV/DCPVgkEI+lUh2YmRud/vZ/HixdQ6XHywaEWnaUNFURCKor6GRHK8MRhBaZoe1cHvrcfr5bI7fktxZRU3njeuY8F1NEI1EYe2R7RGhpv5xfQJvPTBcnYdKKdXjzjMxu4NLXC6vewvqia7VzK3TRuH2WTg0fvv4e4rzkcxWQmzWFCAzMxMMjMzaWxsJG/jRvLy8li/fj3pGRmMGDGc3r168/GCJV2rDVVQR7YCVquVGTNm4HB5eeT5L7CFm9lTtIuQqxq9KQJvwI/X90Pj9dZ4PW4WfjILg/FIg5RWqyE5PpJ12wr4yy+nkBJv4+GHH25+3uPxkJeXx/5N68jUeVizdScOhzohKC4ujrS0NMaMHk1aWhoOYwTPzXqX3NxBLRpz2nKtaIUQKMZjtDOSSCQ/OWe8oNxfVEVdo4v+PRPbfL5w3w4ABg6f0OLxgcMn8P2ST9mW9x3WyFg2btxI3saN2BsbsRAA4KbrpxPUmIiMbnvtwygaDST1BEVB1JQg/D4wW9W5tp0ghACfR61D0xshMrZDa5JgMMgHH37Irt17+HDFBiLDw7uWNuwgnSWR/CgMFnX0YNCvdvO2QTAY5Nrf/A+rN23jnw/+mpqigwSDwU5/b4UQIGie6d3WiFaAtMQo7rn+HGZ/sYbN+cXYwk0kxkZ2Gq0MBIKUVjbgcHsZO7gnN0w5Mic6t28WIiESxRrZar+IiAjOOftsJowfT/7ufNav38D8efMprqjiza+/pVdqEjY9qudmVBTR0dFERUVhMh3VCS9olQLenF9EWVUDWRnxTL7sJi6b8WtA4V+P/4b66jLmz/+Siy66sN33bcWCDzGaLGT2zSV/y5rmx6MjrZRWlrJhewHa7ERcLhe7du1i7Nix5OXl4fP56J2WzL/vvY0xI4YTn5xCampqy+MFpl04mWdef7trrhVH0WxAb5RekhLJycoZLyjLqhoQgnZHsAUC6qhF/Q9S0bqmKOLGdStZvaUQrU5L7sBchg8fxq68ZXzz5W4iwi0UV7kpq2oguQ3Py6M5LCoVaySiokCdq63RgcHUpj+fCAVVEen3qh/CkXEQCnQoJkOhEHPmzmX33n3MW7cdu8vFivff6DRtKA6LyR/hoSeRtIvRhGIKQ7ga2xWUv/vfZ5i3dAVTzp2A2+tj64Ei/jvn82Yj7xmXX9L22n4v6A1g7twWKCXexr03TWLJ6nwWrtzBrgPlmIx6IsNNhFtMGPRahACfP4Dd5aW+0YU/ECIpLoJrLh7OxOF9WtZgdlLDDKDVasnJziEnO4c9+w9w3k13ER5m5fc3X0NNdTX79uzB7T7SiGK2WJoFZt/UBCrzC6msrCQYDCKEYPfBclBAr9Oitx2ZChMfH4/P1cDmzZuoqKjg6qtb11XWVJawatlnXH/nn9ietxJQx9FWVlZSVFRE/v4Sli2YQ3X+YgAcDgejRo3i+uuvZ+zYseQOHIDm0E6Eq7FdR4iuula0wudRb5hlyY1EctJyxiuEkop6DPr2oxCxCeqkhsL9u4iKTcTj8bBp0ya+W/wpAB5nIxdddgG5uYOaC8p3Ne2r1SoIoKbe2aVjURQFImNVf7mGakRdBcLjAE+wdYmZRqOmxhPSUSLjwV5LqOxAu2sLIfjiiy/YsXMnizbvpqC0jEVvvdy1tGHQr4pJGR2Q/AQoigaiEhCOeoQItRmZ37JzNwDzl33L/GXfAvDZ93nNz7crKH0elJhkFGP73ohHYzTouWTiQMYO6cXGnYWs3XKQ0qoGisvr8QXUzINBryPcYmRAVgqjB2UyuF8aEWGt11cMpi6Pdmyw27nu3odweX2seP+NFn+XHo+H2tpa6urqqK2tpbbp/wUFbv7v/Xl8t019b8LCw4nsNQlLRAwlByKIioomOjqa6OgoQGAwGLhm5kw+/OgjXn31Va6++mrS0lKbX+erj18jvfcAtOZoysvL8fsDPPXUU/h8XjQaDbEJaaRl9uWff7qFP/3xQQYNGsR7773X4jxEVKL6cwyFWnjgHk2XXCuOXlMI8HtQYtPkxC6J5CTmjBeUPn8AbQdTMvoMGI4tOp6Fn7yB3mDEHB7DonkfIRyHUDQaIiLCGTlyZLv7K6jF+t1B0RlUf7moRBSvUy2893nUWjAUNeJiNIPRiqJTa72E36OmzEPBVt3dAljw9dds2ryF7/cUsWX3Pj59+RnGDB3UtQPy+9QLeReNpyWSbhMRg2IOU8cvthFNXPbe683/rqio4OWXX+b2228nJSWl3SWFz6NG96O60rjTkqgIC5NG92fS6P7YnR4qqhtxeXwoioLFZCAxLgKruZNa5yYR29Xa0D0FhW3e5JlMJpKTk1tMwDnsOzvpjt9z3a2/YPXq1fz2vt/z0fIC7I317Ny1i4b6BoRQU+LBun0oIQ8rVnxLVu8sDhw8wKxZsxg7dixxcXFs3bCSPdvz0MYOYPbs2eBQR7uOHz+etLQ0kpOT8QdDlFU1MOGc89ovNYiIQbGEqTfC7UQpu+RacTQ+N+iMKFEdOFFIJJITzhkvKPU6LaEOogh6vYEZ9zzCh68/xQev/g0ArU7PBVfcwoqvP2pRvN4WAtAdY2eiotGoH65dSNdhtaGYrOqH6A/sh75Ztoz169axr9bB8nUbmXLuBGrrG5n92ZcttmsryiOEUCOUth7tRhwkkh+LojNAQjri0C6E39thY5rZrAo1t6d9T0IRUl0JlIR0sLSuYewO4VYT4dZjuJkyhak3f36vWrrSBkfXhnbvJs+LYjBjtqm1lRaLhbvuvpsi72eEWY3Ywi0EgyEaGuqpra1jwYcv0FBTjkajoai4CIfdgRAh1qxZQyDgg7pdxKfnMP7Ca0hLS2P5/LfZuel7xo07q/klQ8JPKCQIBNq37lF0ekjIQBTuQvg8PzqiKIIB9YY2qSeKpWvTjCQSyYnhjBeUSXGR+PwdRxATktP59Z//Q2XZITwuB3FJPdDrDSyY8zoZWQPa3S8UEihAVORP35moaHUIWzyU7UeEzM3i7/tVq/juu+847/zzWfH8G0DLtOHRtJk29LlBb0SJjP1Jj18iISIWJTpZdTtQFFVktsHhRg+P29Pm8yIUAlcjSni0miY9QXOcFaMZJTwGUVvWrqA8uja0Wzd5AR/EpbaomdZptSgahVDTWB6tVtOU8o7GZrPhczVw3XXXNq9ht9t5c9Ys6kvyCQZ8DB57Ebm5g9BolDb770IhgUZROrdVCo9BiUlGVBUhFM0xW6GJYBDcdpTIOJSY9iPREonk5EAKyngbIDqtdVIUhYTkI5Mi9mxfjxAhevUb3O4+Lo8Pi9lAYuyxjywUQlBT76SsqoHqOgeBYBCNRp0fnhQXSUJMRPMFXolOhIbq5nTThrw8lixezISJExk7ZgzLxozp3muHgk3RgUwUWT8p+YlRFAWSMkGEEDWlCH0ADOZWglBvMKBoNHg8rQWlCPjA40QJi0JJ7dtcEnKiUKISEA2V7UZd26oNPZo2b/K86txzJbKlZ2O41UiE1UyD3UV0JzexiqIQERHBxPFn8cnrS4lNy2bp4oVs37qZSZMn4fW6EUJQV1OBXm8kLMKGy+PHbDIQFdnxtUBRFEjMBCFU14qgH4yWbgl74feC16WKyZQ+ckKXRHIKcMYLyoyUGCLCzNQ1tj2arS38Pi9Lv5hNeGQ0uSMmtLtdbb2TjPRUkmK7n3Jze3xszi/m+0372FdYid3lbY54CtTaTKvFSFJcJOOH9WZYTrr6IZKYgSjcyd4dW/nyyy8ZNWoUZ599drdfX4ijojwyOiD5mVA0WkjuBQYjoqoYnA0IkwW0+mZBos5yNuE+SlAerilUAKKTURIzjs3P9XhjjVSjrlWHEFp9q7KRo2tDu4IIBiDoR5Oc1eomT6PR0DMtlu827O3yej3SUkCEqD6k+kCWVsM7OxY3P//Mw7fRb9BobrjrYRwuD8nxUUS20YD0Q5pdK4xmQpWH1J+j0Qw6Q4fCUgT8qmDWaFDieqDE9zjhNwUSiaRrnPGCMjkukkF9U/l+4/52t/ngtb8TERlNXFIPvB4XG1ctpq66nBn3PILR1P7dusvjY8KwLPT6rt9dCyHYub+MjxduZE9BOVqNhrjoMBJiI9AfZUkSDIZwur0UV9Txxtzv+erb7VwxeTBjB/diXUE5B9as5pwxIxk/6fxu20eKUFAVk5YIlJSsDq2IJJLjjaLRosSnI6xRqhBz1IPHqdpo6XSg0RIbZUMT8CHcDggGmuqNw1BiUyEy7oSluX+IoigQnwauRoSrAWGJ6JK/bFuof5d2FFsctONt2zcjgeVrdxMMhro08Sc8MoqhE69i69ZtTJ06FYPRwO783Wxdt4SQz8HZU2fSp18OQggaHV4uOCu5y++totFAbAoaa6Sa/rbXgteFUDSg0x+xVQqF1DrtUFBtogqPUn+OYVEnzc9RIpF0zhmvFBRFYdzQ3qzfVoDXF2hzm5T03mxcvYT1K79GrzeQ3juH6bf+nqS0nh2unRATwfAB6R1uczTBYIh532xh/opteH0BeveIw6Bv+0ek1WqICDMTEWYmFApRVF7Hqx99x9z53/Dy3+/noTtv5Npx49QPMnNYl0ThYXsOfJ6mlGEfmeqWnDAUawRYclDcDkRjjfq77HVBwE+sLZxgwK+OLrWEo4RFqQLkJGwcU3QGSO0LRfmqv6w5vNs3ac2p/MgYNQXcjsfl4P5pxEWHU1lrR/HWkr9VHWlYW1WGx+1k+VcfAJCYmkm/3FEYDCYuuvw6dh0op8ED54w5iwFDz8LnqGTXljWsXLeNOqdAa44h3Grs1vWs+fzNYZDWD8XrAnud6jfqdqgCGQGKBiU8CsxNP0dLhBSSEskpyBkvKAEG9klh4oi+LP/cR0iEcDoa0Gi0mC2qie7486cx/vxpna7j9/vwed04nWr6/OKJA4ixdc2INxQKMWfRRr5YtoVom4WMlJjOd2pCo9GQnhzD7r0HeXX2QnqPmMqvH/sHWoOCqDioXsShySS9ZdpNCKFGBvw+tdBfp0dJyET5QcG/RHIiUBRFFYxNHb5qyjfAu2uewmiyMPGOB08J8aGYLNCjv9o011iN0OrV+tBOBLAIBcHjQkGoqfykzHablQBs4RbGDevN3EUb8VTuZem82S2eP/z9kNGT6Jc7ClCbnAYPHsz6DRsYN248er0Oo9GIXq/jsiuu5OuFC9lzqJrLzhtFWmLUsZ2/oqjuEyarWrYTCqGEmpohNZp2BbJEIjl1kIoB9WJ3+eRBPPt3EwV11fz99zcQn9SDX//lxW6ts/7bBSyY81rz96MGth3BnDlzJm+99RYAOTk5bN++nRXr9zJ/+VbiY8KJsXW/K7y8vIJPP/mIxLhE+g2dyGfLtnHLFWO58t4/8/kXX6iv1TuTLXNnIQ7bpB/uQ9Jo1XqzmGSUyFg1oiCRnIQoWh1odWiMFkorq04JMXkYxWiGHtkodWWIqhKEqxGhKOp0IJ0ODqfCD6eAA35AoJjCUOJ7dJjKD4VCVFdXo9PpuHBcDtv2lFCg1/H4i/O69B6NHj2K9evXs23bVoYOHcqVN9/HlTerPpGm8Fg2b1zPB6/9Lwc2fMHTTz9NKNS+dVCX3guNBk7CaLJEIjl2pKBswhZu4dn/e5LXP1hEaUU96andN9FN6T2YiVfeS3bvJC6eMKBpQkXbxMbG8uyzz2Kz2SitrOezZZupKc5n58rNFB/cTVV5MZFRsTzw5Jut9m2sr2Hhp7MoKdiLvaEWFIWA0BKZ0Ivrr/stXn+IFev3MCArhfvuv59p06fz5JNPgkaDJjNXtQIKBUFRQKtvMkm3yIik5JTBZrOxd2/Xm09OFhSNBmJSIDIexV6DaKhW60N9HjjsNKFo1CikLUq16wqL7rTLuaioiLi4uOYb1OkXDOM/7y+nsLSW9OToTkVldHQ0ffr0Yc2atQwZMpTDm1fUNKJotDz/twfAdT0XXHABEyaojYg5OTk/+v2QSCSnD1JBHMW5E8bQv38273+5jg3bCzlUWktSfGSLZpi2cHt8FJXXo9VYuPWma5h2/lAs5o6916xWKzNmzADg9TkrKatqoGx/Hts3riQ5rRfhtuh293U5GmmsqyZn6FkYTGGs+v57FE8ddYc2s3Lhh5x3+c1U1zv5bOlmHvnlJUycqOf111+nurparVXi2NJWEsnJQlRUFHV1dSf6MI4ZRadXJ2FFJarTrXxuCAYBRR1zajB1uR70wQcfbL6WhIWp2YXcvqncdNkY3v58NfsOVZGZGoOuE1E6evRo3n77LQ4cOEBmZiZF5bX4/UGmXTCMCcOzUJQ+LF68mNdee43333+fHTt2sGTJEiZPnnxM78Fh83m8bgg21a9rdE03uGaZBpdITjGkoPwBSXGR/PqGc1m+fjdfr9zB3oJKtDoNEVYTYRYjep0WAXh9fhxOL40OD1qdhp6pcVx27iCG9O+ekXJ5dSN5OwpJiosg4/KbufzG36DV6njnP49RWVrY5j6JqZncdv/fcTgcvDlrFpaYdG699VE+f+cZ1iyfx6RLZ5CWaONAcQ1b95QwYkDGcXlvJJKThVNdUB6NotGqU3WOkezsbLKzs1s9ftaQXlhMBj5csJ6d+8tJiosg1hbW7vUpIyOD+IREvlu1DlfIRGJsBFdOHdIkJtV9xo8fz/jx4/nTn/7EnXfeyXnnnceMGTN45plniIuLa3PdoxFCqBHZhmpoqET4faqYPHxIAtBqUXQGRGSc6rVpbv+YJRLJyYMUlG2g12s5b2w2Ywb3YnN+ERt3HqKgpJraBid+fwgUMBp02MItjBiYwbCcdHJ6JXfLHugwW3cXU9foIrtXEhpN1y+abrebd96Zjd/v59ZbbiE8PBxbTAJ+3waCgQBGgxEErNtWIAWl5LTDZrPR0NBAKBRCI2vx2mVI/zTSk6OZ980WVm85yPa9ZVjNesKsJqxmA1qNhpAQuNw+HC4vPXrnkrd+NdenRnDXDReQHG9rc92+ffvyzTff8N///pff/e53fPXVVzz99NPMnDmzXfEnAn7VBqq2vKkB0AB6o9qo07TP4SZBEfBB5SFETak6wzs+/Zgn7kgkkp8HKSg7IMxiZNzQ3owb2hu/P0hlnR2v14+iKFgtRmJt1h/9YXagqAqdTtMtMen1+nj33fdobKjnumuvhpCPTauXsmn1EtIy+6E3qIbOtggz+wor8XcyWlIiOdWIiopSvREbG7HZbCf6cE5qoiOt3Hz5WC4YN4C8HYVs2V1MWWU9FTV2QkGBRqNgNulJTYxi8uip/Gb1e1TuXk5y/DUdrqsoCrfccgtTpkzhgQce4NZbb+Wtt97ilVdeoW/fvi22FS47onQvwtkABjNYbW0KT0VpSvlrdQiDGQI+RLVqcE9KbxSr7Xi+NRKJ5DgiBWUX0eu1pLRzt36shEIhDhRXE27p+kSPQCDABx98QFVVFQN7x/PaU79pfq5n30FcedO9zd+HWYzU1Dspr2k8noctkZxwoqLUOuC6ujopKLtIYmwEl0wcyCUTB+J0e6mucxIMBtFqNURFWAi3mlAUhT13zuTvf/87f/vbk0RHt1/LfZi4uDjefvttbrrpJu666y5yc3N56KGH+MMf/oDRaFTFZNEuhMcFlsgu14YqigJ6I0KnR7jsUJQPqf1Qwmw/8p2QSCQ/BTJXdAJxe/043T6Mhq6PFvvyy68oLi7m+uuvZ9y5U5j5m78y/dbfkztiIqB6YR7GZNTj9QVwurzH/dglkhPJYRFZX19/Qo/jVMVqNpKeHE3PtDjSk9Xxs4cjhnfddRehUIhXX321W2tOnjyZbdu28bvf/Y6//vWvDBo0iJXLlyFK9qhi0tp1MXk0iqIBSwTC51XX8rq7vYZEIvnpkYLyBNLsEtKNevNx48Zx3XXXkp7eA1tMPL36DyZ3xESm3/p7ouMS+e9zD+P3qQLy8Nzv0OEXkkhOE46OUEqOL/Hx8dxwww288MIL+P3+bu1rNpt58skn2bx5MzExMbzx1KPkrVyOR6NvM8XtcLp49F8vcdEt9xA7bCLa3kP479wvWm2nGtxHIDxOREUBQvw4H0yJRHL8kYLyBGLU69BpNfgDXa9xjImJpmfPtg3Tc4acRUNdFQX7tgPgDwTRaTWYDLKyQXJ6cVhQygjlT8O9995LSUkJc+bMOab9c3Jy+PbrefzPHTNZt3UHL7z4Etu2beOHt7bVdfU88cKr5O8/wKB+fTpcU522EwYNVWCvPabjkkgkPx1SaZxA9HotaUlRbN9belzWO5zu9rjV0Y8Ol5cwi5H4mIjjsr5EcrIQGRkJyAjlT8XAgQOZPHkyz//7Oa655HwUj1OtY/S61NSKRgNmK4opDCzham3kDyKQSmM1WT17ktyzD19//TWffPIJm7dsYcollzTfECTFxVKyejGJcbFs2LaDUVfM6PC4FJ1enedeVwnhMdJOSCI5iZARyhNMr7Q43N7upZWc9oY2H8/7fhGKopCc1guARoeH5LhIwrrR9CORnApotVoiIiKkoPyJEKEgf73/Hi7JTqMqbzmhsgMIe41q/RMKIPxeRF0lodL9hA5sQxzciqivUm1/QH2+oQYMRsLCwpg2bRrX33A9NTU1vPjii6xcuZJgMIjRaCAxLrZ7B2cwIRx1qiG6RCI5aZARyhNMdq8kLEY9dqcHZ10Z+VvXAlBbVYbH7WT5Vx8Aqpl5v9xRAKxY8CGHDuyid/ZQbNFxuJwOdm76npLCvYw+eyox8ckEgyHcXj8jBmacqFOTSH5SoqKiZMr7J0C4HYjygwxPtlHSK4PvN2zm8iuvan/7gF+1A3I2gD0BEtJVsRfwgTm8ebus3lnc88tfsnzFCpZ98w3btm1jypQppKWlde8AdYamCTtOMFmO9TQlEslxRgrKE0xWejx9MhLYub8MZ/l+ls6b3eL5w98PGT2pWVD2GTiC2uoyNq5ajMvRiE6vJyElkytuupchoycBUFlrJzYqjKHZPX7eE5JIfiZsNpuMUB5nhL3uSCe1OYzUXn356quvOPvcSe3aMyk6Pej0qhl5bSl4nGCNBCFadXXr9XrOmzyZgQMGMG/+fN6cNYvhw4YxadKkLh+joihqQ6OMUEokJxVSUJ4gQqEQ1dXV6HQ6Lhw/gD0FFWRkj+GJlzqfi9u7/xB69x/S7vNeX4CaeifXXDQcg1ZQXV3d7W5NieRk53Qav3gyIJwNiOLdqjC0qjWRgwYNYumyZaxbt47zzz+/w/0VnQFh1SGcjeCsP2Jj0QaJiYncftttrF+/nqVLl5Kfn09mv9bjI9t/MTWtLisoJZKTB1lDeYIoKioiLi6OcePGMbhfKmeP7EtJRT1e348TfqGQYF9hFQOykrlwXA433ngjcXFxrFq16jgduURyciBT3scPEfAjyvYj/B4whzc3u+j1eoYNG8bGjRvx+XydrNLkGWmNUJt3PM7mmsq2t1UYOXIk99xzD71792bRosUA+LvwOkdM0SQSycmCjFCeAB588EFmzFC7GcPCwlAUhSsmD6asuoGNOw/RJz0ek7HrZueHCYVC7D5YQUpCJDOmjsJsMvD444/zq1/9qvm1JJLTBZvNxq5du070YZwWiOoitQ6yjW7t8OhY3l28kv98vpQ6uwOL2UR270weuP1mpk6a2GotRdEgDBaw16jpb3PH152IiAguvewy3AJe+/Ibli1bxsThufTJ6sBGSAjQyI8vieRkQv5FngCys7PJzm6Z3okIM3PH9PG8PmcleTsOkRATTlx0WJdtMexODwWlNWQkx/CLaePJSFE7J3Nzc4/78UskJwMy5X18ED4PorYC9KY2J9nUNDSiN5oYmBjHFVOn4PZ4+WThEi6/815e+uvD3HFtGw07BpM6scHViDBZ1MhlByhA7169AYi02Xj/vfcZMmQIF1xwAUZjS5eKw1FPxWg+thOWSCQ/CTLlfRIRHWnlV9efw9UXDsXj9bNzfzlVdXZCobZTO0IIGh1udh+soKyqkbOH9+H+mefROz3+Zz5yieTnR6a8jxONNeD3qCKwDS4+ezzzXnuOUX0ymDBkAL+ZeT1LZ7/GoP59+Nebs9vcB50OtDrwe8Hn6dbhjB49mksvvZQdO3bw4ksvcfDgwZYbhIKqD6ZRdnhLJCcTMkJ5kmExG7jq/GEM7JPKtxv2krejkF0HykCA0ahHq1EQQuDxBhCAxWQgt28qE4ZnMTwnHa1W3iNIzgwORyiFENLg+kcgGqtBo+vwPUxJSSEtLY3Va9bQt29ftFotqYmJbNi2o+0ddHowmMFlB5+3Q/H3n7c/oN5up7SiCoD5y1ZQUt4Ptz4Mm8XE22+/zYiRIzlv8mT0ej343Cgma6ep9B/i8wfwB4JoFAWTse1RkBKJ5NiRgvIkpU9GAn0yEphydi77i6ooq6znUHkdHq8fvVZDUlwkKQlRpCdHk5kaKy+OkjMOm82Gz+fD7XZjscho1bEggn518oyu85rt3CGD+fijOazJ28iaLTv5+tvvufqStju/FRSEyQpue6cRyn++8TaFJWXN33+6cBmfLlwGwL5v5lNVVsLiJUvYt28fV1x2GanR4ShRiSgabYfrBgJBdh0oZ/fBcvYXVVFa2UAgGEJR1BKjrPQ4MlNiGdQvjagI+fsjkfxYFNFRG55EIpGcpHz11VdccskllJSUkJycfKIP55REuO2E9m8GgxlF23F84a6H/8prH8wFQKPRcMX55/LKk38mKrLt0a5ChKC6VDU4T8hosz6zq9TU1PDZZ59hEgFSevZm7HW/wBTW9usGgyHWbD3I4lU7OVBUhc8fxGzSE2YxotVoEAg8Hj8Ol49QKERcdDhjBvfkwvEDpLCUSH4EMkIpkUhOSQ7Pg66rq5OC8lgJhdSO6S5kOO695QZyMlLYsmMnJXUOgqEQvg78bRVFg7BGQEO1aiPUzRT10cTExHDrjOvZtX0rdzz+DA3/epO33nqL4cOHt9iuqtbOnIV5fL9pPzqdhtSEKCxmQ7vrBoMhKmvtfLp0M1t2FzPtgmEMy+4hMz4SyTEgC+4kEskpyeHJLbLT+0fQDeHUr1cmd908g+weycy86GwcTheX3fHbDr0m0RtVIRn0I3zHPtlG+L0Q8JI94XxefX8ORqOR0aNH88gjjzT7Y5ZU1vPvd5fxzfo9JCfY6N0jvkMxCaBtKh/K7pVIeXUjL72/giWrd3V8ThKJpE2koJRIJKckhyOUstP7R6DTg0YLwWCXNtfr9Vxw/vnk5+czYVgu67fuYM/BwvZ3CAYhzAaJmRAIINx2NRXeRYQQCLcdxe9FieuBEp/OgIEDWbt2LQ8//DBPPvkko0ePZuXqDbzy4Qr2FlSS3TORCGvbHevtodNq6d0jDoNBy3vz17Eyb1+39pdIJFJQSiSSUxQZoTwO6E0oeiMEuz6hKzsnh8zMTDZt3gJAg93R/sZBP4olHE18Opoe/VEMZnA2IDxORKh9YSlCIYTHBc56FL0RJa0vSmImikbDzJkzMRgMPPbYY6Snp+Pxepl0xe3MW7iSPunx6HQdN+t0REq8DZ1Ow8cL8yiprGfw4MEoioKiKEyZMuWY15VIzgRkDaVEIjklMZlMmEwmKSh/BIqiIKyRUF3S7jaVNbXEx0Qf2QeYfN55PPTCLIwGPdm9e7a5nxACRAjFHKHWJEbGgiUcasuhvqIpWilUT8nDxucipNZ1KqjiMyYDJToJ5QcembGxsTz77LPYbDYiE7O4588vsnX1Avat/RijJkBtVRmRUbE88OSbnb4HW9Z9w5xZ/8RgNPHnf82hR1I02/eVMWdhHn/961+pr6/nvvvu6/zNlEjOcKSglEgkpyzS3PzHo0TGImrLEMFAm53edz38V+wOJ+NHDCU5IY6K6hre+2IBZbX1XDByEMFAO9FNv1etoYw4SozqjSgJ6YjYFBRHPXhdCLcd/E3zu3UGFEuY6ltptaG0Y2dktVqZMWMGoVCIv7++kMGDBuMpWcfe7btw6q0Yu9gA5PW4WfjJLAzGI4JVURTSk6PZnF/EhbdfSN/MRB5++OEurSeRnMlIQSmRSE5Z5PjF44A1EsUaiXDUIywRrTqcr77kfN78+DNefu9jauobCLdaGDqgP0/c90sKdm5l4cKFXH311S32EUKoBuSxqWqk8QcoWp0asUSNeB4rewsr2VtQQXJ8JJdffzd64wN8881y1iyaTcDhoL6+vrk0oi1WLPgQo8lCZt9c8resaX48wmriUGkda7cW0Dcz8UccoURy5iAFpUQiOWWJjLRRU1tHKBRC8yN8Ds9kFEUDCekIt6NpBGNLAXjtlAu5dsqFbe67PTWRuXPnsv/Afnr17HXkCY8DxWRFiUv7KQ+dvYWVuL1+wixGsKgzvy+++CKKdiyn9NB+XnzpJS684AKGDBnaqqG9prKEVcs+4/o7/8T2vJWt1o6KNLM5v4jrLh7xk56DRHK6IK/AEonklEEIwcHiahZ8t52XP1hBtaYnaw7A/U99zOMvzuf9L9excuM+Gh3HblFzJqJYbSixqeDzIgK+Lu+XM2AA6RkZLPhqAcGmTnHhdYMQKAnprWofjzcFJTXo9a2bcCwWC+Hh4QzIGcC8efN47733sNvtLbb56uPXyOyTS58BbQvGcKuJRoebitrGn+TYJZLTDRmhlEgkJz1CCLbvLWXxqp3s3F+Gw+VFp9Og0ZtwORz4A0EKS2vIP1AOQHxsBGcN7snksdly+kkXUeLSIOBFVJciDKEuiUEFuPiii3j5lVdYvXo1Zw0fghIKEojtQZnXQPmOQuwODyERwqjXExcdRlJcJBFhrdPgx8KhslrC2vGaVBSFSy+dSr9+/fhi3he8+OJLXHzxRQwYMJA929ezb+cm7nn4+XbXDjMbKCqro7qugy52iUTSjBSUEonkpMbh8jLvmy0sWb0LtzdASnwk6cnRKIrCgV1G7LXlJMVFNm8fCAapqLEzZ9FGNu4qYtr5Qxkqp590iqLRQFJv0OpUUelsAHNYpzOz4+PjGT92DFUF+yhISWe3N5KVSzZRVWfH4fKpNZKKOpBHr9MSbjUxICuZsUN6kdMr6ZhtfoQQ+PwBtNqOE219+mTxy7t/yYIFC1i7dh19+/ZlwZzXGDHhIuKTerS7n0ajAQH+QNc8OiWSMx0pKCUSyUlLXaOL1+esZMOOApJiI8lMbdm9azab8Hg8LR7TabWkxNtIiAmnoKSGF99fztUXDuf8s7KlqOwERaOBhEwUaxSi4iC47AhQu7W1OtBoVashISAUgIAf/D5GDh7Er5ds5fFv59Fv8HDCLSaibVbSEqOaa1sPC8BGh4fvNuxl1ab9DO6XxrQLhpGeHN3hcbWHVqPB5w90up3FYuaqq67E5/Ox5psvcDkaOXfKDR3uI4RAKAKtrM2VSLqEFJQSieSkxOn2qmJyewFZ6fGYjK0tZEwmM25P2/WS6vSTeEqrGnj/y/UY9DrOGdX3pz7sUx5FUSA8CqwRYK+D+kqEqwG8bggFVYGpoIpLnYEafRRvrSlkHxns3PsdQ4YOICMlpc11jQY9cdF64qLDcbq9rN9ewMHiaq6+aBjjh2V1S/ArikJCbAS79pd1eZ9Q0M+KBR8ycuLFeD0uvB4XAF6vGyEEdTUV6PVGwiJsuD1+zEa9LJmQSLqIvPWSSCQnnJkzZzZPJBkwYAAAC77dTt6OwnbFJKjm5n6fj2Cw/akryXGRGA1a5izKo7C0hssvv7zVa0lao2i0KJGxaNKz0fQZgabXIDQZA9Bk5Kj/7zWE2vj+vPJtMet2lzN+zBB6JMXy9YKvmxt0OsJqNpLTOwmfP8CsT1exdE1+t2do9+4Rh8fb9Sk/bpcDn9fNykVzeebh25q/dm5ahd/n5ZmHb+Pz914AwO7yEGYxkRgb0a1jkkjOVGSEUiKRnBQcPf0k/0A5C7/fiaf2IAvWfEzxwd1UlRe3mn5iNquNI9WVpXz79QeUFOzF3lCLRqMhJj6ZUROnMHj0uaQmRrFzXxkffZ3Hb37zG6ZNm8aTTz55ok71lEPR6pj5y9/w1ltvAZCTk8OmTVt4Z943bN1TQr/MBAx6HRdffDGvvPIKa9as4ayzzup8XUWhR3I0JRX1fLhgA3HR4Qzqm8rgwYPZskUd7XjJJZcwf/78NvfvkRyDVqvB6wtgNHT+cWYNj+S6O//U6vE138yj6GA+02/9PeGRavq9rsHFqEE9MZvabvqRSCQtkYJSIpGcFByefgLw0vsrcDi9FOavZXveSpLTehFua11nZzKp3cJ1tdU01lWTM/QsbNFxBIMB9u/azCdvP0t1RTHnXX4zGakxbN1dzAVnnc+5557L66+/TnV19c96jqc6R4v+FRv2sH57ARpXCV9+MKdZ9BtMVlas0DFw4EAiItqP7v1w5OGegkrmLMwjMyWGv/3tb9TW1nY68nBA72TSkqIor27AGGokf+taAGqryvC4nSz/6gMAElMz6Zc7CoPBRPbgMa3Wyd+yhpLCPc3PeX1q1HP0oMxjep8kkjMRKSglEslJRUllPZt3F5EYF0HaZTdz+YzfoNXqeOc/j1FZWthiW5NJjVCG2+K47f6/t3hu9NlTmf3iY6xZPo9Jl87AajYSDIVYtXk/uX1Tf7bzOZ04LPprG5w89uJ8wq0m1q/8nm153zWLfgUFDAYWLlzE9OnT2lynrZGHmakx5B8s55t1u7ns4osBOh15aDLqmTi8L299toqK8j0snTe7xfOHvx8yehL9ckd1+TwLSmrpmRZLbp/WtaASiaRtpKCUSCQnFXsLKmh0uElNsKEo1g63PZzy/mGn92FsMQn4fRsIBgJoDFpibWFs31uK0+097sd9JrFx5yEqqhvp3zORyZfdxGUzft1C9E8+bzKfffYZBw4Mo2fP1lG+tkYe6nVabGFmVubt47wx2Vja8ZcECIVCVFdXo9PpmDgii7ydhezQKDz+4rxj6uS/8ub7uPJmNRpaU+9Ar9cy7fxhuF1O7I0BQqH2a3QlEomKbMqRSCQnFaWV9SgoXRIGh1PebrcqKP0+L05HA3U1FWxavZRNq5eQltkPvUEdyxceZsLh9FJW2fDTncBpjhCC7/L2YTbp0Wo1RNhi0GpbxiZycweRltaDBQsWtGrQOTzy8KJpt6H9gcdlQmwEpZUNbN9X2uExFBUVERcXx7hx4zCbDFxz4XCiI60cKKrudmPP0TQ6PZRVNXL+2GwG9knh7LPPJi4ujqKiomNeUyI5U5ARSolEclJxsKQGs6ntru4fYjAYUBQNnibroNXffMHiz95qfr5n30FcedO9zd+bDDq8fj+VdfYfLiXpIjX1TiqqG4iObD96rChw8cUX8+qrr7B27VrGjh3b/NzRIw9/OEPboNcREoKSijoYmNHm2g8++GBzrW1YmOpL2js9nluuGMsbc79nT2ElvdJi0Wm7Z5heVWunosbOpDH9uPK8ISiKwiuvvNI8sjEuLq5b60kkZxpSUEokkpMKj9ePrpPpJ4ex2xsxGAzs3LmLYcOGkzt8Iik9snA6Gti9bR2Oxnr8/iOzqQ/bBfn9cvrJsVJe3YDd5SWhEzudxMQERowYwfIVKxg4cCDh4eHs3tb5yEOjQcv+ovabpbKzs8nOzm71+LCcdAx6He99uY5d+9XpSTE2a6eRbrfHR2FpHSajjivPG8LlkwZj0KsfjaNGdb3uUiI505Epb4lEclKh1WoIdSFt6Xa7mfXf/+L1ejh48AALF35NZHQ8vfoPJnfERKbf+nui4xL573MP4/cdqZkUAjRyYs4x0+j0EAoJ9F0YmXjOOeeg1+tZtuwbAgF/l0Yemgx6auqPbX72wD4p/M/tF3DJxFzcXj/b95ZSUFJDTb0Tr89PIBjEHwjS6HBTWlnPzv1lHCqro09GPPfdPJnpFwxrFpMSiaR7yL8ciURyUpEYE8G+Q5UdbuP3+3nvvfdx2B2AQu/evVm7di2KonD++RdwWC/mDDmLDSsXUrBvO1nZwwgEgmgUBZucfnLMdKdE0WQycfX0q4mJiWbV0s+7NPJQUSAUOvY6SFu4hZsuG83kMf3YsKOQvB2HqKq1U9vgJBAMoVEUTEY9EWEmhvTvwcjcTLJ7JqHXH9tMcYlEoiIFpUQiOalIT4lh+fo9rR7XKKrY0GoU3vt4DhUVFVgsFtweN4mJCfTpk8VXX32Fomg477zzUBSa090etzpiz+HyEmY1yuknPwJTk4F4KCTQaDqP9Kan98DjdnZ55KE/EMLaQYd3V0mOt3FpvI2pZ+fS4HBTVWvH51dvKCLCzSREh6PrQpRVIpF0DSkoJRLJSUVaYhQGvRafP0BGko2YCDMxEWYW2iw0VOvoE6fhF9PPxRIexSfzvmZPYTket5NJkyYhhGDBggUoisLkyZPJ+34RiqKQnNYLUBtK0lNiibF1bEckaZ/4mAisZgNOt5dwq6nzHWg58nDlormtnn/m4dvoN2g0N9z1MC63j56pscfteBVFwRZuwRYuo9ISyU+JFJQSieSkol9GApNH9iHeZsLdUM7S+Z8TCoUoOnSIxsZGZs16jfi4WHr36s3dN15Gg8PNy6+8zCtP3Uev/kPpnxnPykVz2PTN+9jrKhh99lRi4pMJBkN4vH4mDOuNRiPLx4+VxJgIIsLMNDo8XRaUXR15KIRAIEhJiDrehy2RSH5ipKCUSCQnD6EQOgJcOLo3uw6Ws3zDRp5//tkWm3w57xMAho8cS1xSBiaDhmmXX8Knn33GljVLsTfWo9FosHsN9BtxARdNvwOAovI6kuIjGZrTfkOIpHP0ei0jBmTw2bLNJMdHUlFScNxGHlbXOYgMt9C/V9LPd0ISieS4IAWlRCI5KQiFQlSXl6DTaoi2RaLT6Rk+djLLv7+c8vJydu/eTUZGBhkZGbhcLtatW0dMbCwHCwqITkjnpZdeQwjBtgOVHCxrYNWqVSxevJhvv13BsBGj8Xj93HTZaLQEqa6uxu/3n+hTPmUZOTCDJat30WB3U1q0/7iMPBRCUFHdyLmj+8kaV4nkFEQKSolEcuIRQp1+ktKDnOxstm/KI6d3Eo0ONwVF5Rw6uIfk5BTS0zMAqKqqRqPVEhUVTUFBIcFgiDq7h3CLgYE94/EHQowdOxYhBEuWfkNVY5A7b7yUs4b05qqrruTzzz8HICcn5wSe9KnH4ZGH0eE6Rg/KZPHqXQwaeS5Dx0w+pvWOHnlYXt1IZLiZc0f1o76+nkBAjjyUSE4lpKCUSCQnFiF48P77mHHNdEAhLFydfmILt5AQqSNvYwERUfH06tWr2Q6ourqKmOhotFoNiqI0j9uzu3zYwkxkZ8RRZ/cwcNBQyup8bF+3jPKRUWi1Z/P444/zq1/9CjgyaUXSNQ6PPMzJyWH5d2vYW1jJgeJqeveIO6YZ2odxur3U1ju5fuooevWIY/DgwWzZsgWA3Nzc43X4EonkJ0QKSolEcmIJBcnul0V2v75wlCgpKy9n4VefkpScTmJ6D/71r3+wcvkiHHY7cfGJ3HL7L8nJyWkSlEeWq3d4iIs0Ex9hYmN+Mb+86TKKhkXwxGN/wWzU8cc//vEEnOSpzw9HHsZGhXH9lJG88uG3HCiqpmda7DGJSqfby4GiasYNy+K8Mf0B5MhDieQURBGiOza1EolEchwRAvweCAk4qvO6tq6WN954E5stkptuuokbb7mNTz/7nKmXX4MlLJJvv/ma0uJCnv336wSFBrPZTO+sLHz+AB6vH5NBR1xUGIrBxJDsdDQaDY8//jiPPPIITz31FA8++OAJPOnTiw07Cvnvp6uorXfSMy0Wk7Frc9iFEJRWNVDf6Gbc0N7MvGIMVrPxJz5aiUTyUyEFpUQiOXGEguD3AkpzdNLucPDmm2+g1Wq55ZZb2bFjB6PGTeAf//s37rjzbma/PxdfSMc//vdhIiJs3PHrh9BpdaT3SMNg0BEZbiYtMZqk2DD0eiPoj5hkP/LIIzz++OM8/fTTPPDAAyfopE8/DhZX89HXG9iSX4zRoCMpLhJLO+bkoVCIqjoHlTUOom0WpkzMZfKYfhgNXROiEonk5ESmvCUSyYkjGAQEKGp00uP1MHv2bILBIDNnzsRqsTDnk0/RarXcefttKMJPVck+Lrv8Mhpvv5VHH3+coL2E+KRkJgzPIsxqxKBruqyJEIigGgVtEquPPvoowWCQ3/3ud2g0Gu67774TdOKnF5mpsdx70yRWbTrAig17OFBUjc8fQKfVYDLq1alFgRBerx8UhehICxdPGMDEEVlkpBw/E3OJRHLikIJSIpGcQEIgFFDAH/Dz/vvv09jYwK233kpkRCQAmzZvoU9WFhEREazfsB6NRkO/vv2orakDoLy0kPSUeKIjfzj9RmkaPC3Uf6NOTXniiScIhULcf//9aDQafvvb33bpSEXosDjVoEhj9FYYDXrOGdWX8cN6s6ewkqKyWg6V1VJZaycUElhMBjJSYkiMi6RvRgKxUbIhSiI5nZCCUiKRnBiEgFAIFDUNOmfOHEpLy7jpppuIiz3SiFFWXk5SYiIAO3fuIjMzE7PJRFKS+lhDQwNCtGMvI0STCDzykKIoPPnkkwSDQe699160Wm1z13eLXYMBqK1A2OugsQbhdqJGUxUUcziER6FERENUPIpWXkoPo9Npye6VRLY0J5dIzijkVVAikRwXhN8LdZUIRwM01oLPrT6h00N4NIo1AmxxKJbwlvsBX8ybx969+7juuutIS01t8bzb7cZoNKoj+VJSSEpShYrJqI798/u771eoKAp///vfCQaD/PrXv0aj0fDLX/5SPZ5gAFF6EMoLEM4GVZDq9OqXokY9RWM11Jar34fZICkTEjNQtNruv3ESiURyGiAFpUQi+VEIrxtRegAqDiE8DlUh6vSg1QIK+DzQWKt6RRpMKDFJKMk9UcLVec1r1qxh8+bNXHnllWT17t1qfbPZjNfrRUFh8qRJzY97vB4AjEYjoVD3ewsVReH//u//CIVC3HPPPWi1Wu64bjri4HZEbYXazBMe1WH0UQQD4LIj9m5EqS2HzAEoYZHdPhaJRCI51ZGCUiKRHBNCCKguRRTsVNPCJjNExLZbXyiEAK8bUXYQUVOGkprFuoMl7N6zh4suupDcgQPb3C8pMZGS0tJWj5eVlQMQHR3VfoRSUVp4W7Z+WuGf//wnoVCIF598hLP0dvpnpkNEdJfS2IpWB+FRiIAfUV0KLjv0HYZik96JEonkzEIKSolE0m2EEIiiPYiCneoDtrhOG1UURQGTBWE0g9tBwTfzyd+1nxHTbiJn0JB29xs8KJdvVqygsbGRiIgjM57Xrl8PQM/MjHZqKA93d3dstq0oCs88+jDfpZjZvG4tXkXLkCHxHe7Tag2dHmGLQzTWwO48yB7VHIGVSCSSMwHZqiiRSLqNKNkHB7eD3oASEd2trmdFUdhbVMrchUsZnZlMP2NQTR23w7QrryAYDPLq6280P+b1epn11tuMGjmCuNi4diKUTXZEnUxvEX4fHNzGuBHDiEzL5Isv5rF58+Yun8/R50VEDMJlRxzY1uE5SSQSyemGjFBKJJJuIRqqEYW7QG9EMXff+uVQYSEfz5lDVlYWWUNGQnUJRERDcs82tx81ciTTr7qSP/75L1RWVdG7Vy/emj2bgsJCXn/5RRpra9CGgoiAH0XXZI59eF5DF9LWongvor4KImK5+OKLEULw+eefoygKPp2Rt+d9zfL1mykoLSfGFsGogdk8cc9t9ElPa7WWoiiIiGi1BrNkP0qPvt1+fyQSieRURE7KkUgkXUYEA4htqxB1lWBrPbt5x/6DPPbyf9m4aw/lNbVYTEayMzN44OZrmTpxLBUVFcyaNYukpCRuuOEGdDodwl6Hoigo2aPbbWjxeDz8+dHHmP3+B9TV1ZHbrw+P3X0LFwzqS+H+fbjdbvr2649itjbZ+USpdj4GS4cRSuF1IzYuQwjR3H0uhGD+/Pls3LiR74tr2VFQxLTJZzMwqycVNbX858NPcbjcrHr7RQb0blsEC2cDis6AMvRcFH3bE2MkEonkdEIKSolE0mVEVTGhHWva7X7+6rs1PP/BXMbk5pAUF4vb4+GTJd/y3aatPHP/3QQqiwkLC2PmzJkYjercZhEKQV05SmpvNBkD2hWAwuNElOxHVJeplkQaDegMFBQV43Q6ycnuDwE/+P2gUVAiY1FSsyAutf1GodIDhHbnNYnjI9sIIZg3bx7zlq7g7pkzGDrkSI3n3sJiBl19C1dNnsg7Tz7c9rqhIDTWoOk3EiUxvcvvr0QikZyqSEEpkUi6hBACsWO12qEd2fVxecFgkGHX3k5FVRUPXXUBt95yC9awlqly4WxEQaAMHIdiNLcQlWo3eQni0G6EsxHMVjBamqOje/fupaGxgeHDhjdPxhGhEHhcKCIE8WkomTkoph9O0oHQ9lWImnKUyJg2z/eLL75gy5YtXHXlleQMGND83Ijr7wBg/Xuvtv9+1VehJGag6Te8y++VRCKRnKrIGkqJRNI1vC5EQw20Icw6IuD3I/xeXF4/N86Y0UpMAmAOQzRUoTjqwGgEoTbTCCEQxfugaDdCUdRu8h9EMJWm7ZrHLCpaFL0eDCbVbL2sANwO6Deiham6CAbB0QB6Y5vHrSgKl06dSigUYu4nn6AoCtk5OQghqKipJbtXZscnrjeCvU5Np3fSGCSRSCSnOlJQSiSSruGyg98LXWjEcbrduD1eahoaefzZF9h5qIzLzh6LLaptKx1Fo0GggN+ndmaHQoCCKC2AQ/kIg7HNCCOATqcj2mZTv9FoW3R2K3qjaufTUAX56yFnjBoBBVUgB3xw+Pt2juvyyy5DCMGcuXOZrijkHSympLKaR+++teM3QadH+DwoXjeYLB1vK5FIJKc4UlBKJJKu4XEBoksWQb/754u8OnceoLpAXjh2BK89+oeOd9JoEC47it4EAR+isQZRtBu0OhSj5UjndgsERoOBg2Wl9OrTr836S0WjQUTGqZ3cBTuhz1A1YhgKNs0S78Q/U6PhissvV7u/Fy7m73O+ZkxuDjdPvaDT80GE1C+JRCI5zZGCUiKRdI1QUB2r2AV+e8M0suKjWLdpC5W+EEaTCZ/f3/FOGo3aVKMoCK0eUbwfAj6IOFzfePSLKzjcbp5+52MWrlzD9v0FuHx+3njsf5h56UWtllY0GkRYJKK8ECU6EeJSjkzR6UIZuaLRMPqs8fzy37eiVWD2k39C29ncbiFQ5bRMd0skktMfaWwukUi6iNJlbRRwNGIvK+KBW29g2RvP43C5uey3D9FhD6DgSISxvgpRX6mOQNTpVT9J7eH/q1/VjU6eeO0dCsorSYrqfH62YjCBEOrox6a54mh10AUD8ga7g0vvfYggcNO4oWzJW9+FNyGgHrvB1Pm2EolEcoojBaVEIukaBiMIOhaFQFVlJV/Mm0dubi7Dh48A4KrJE1m/I589hUXt7xgMgEmtzxRVxRAKoeiaPBwPRxMVTXONZFJcDCWL5/LBI/dzybDsrp2DJRzRUA32WhS9UW3S8Xs73MXj9XLZbx9iT2Ex8/79FDdfO53Nmzeza+fOjl8r4ANrBEpnkUyJRCI5DZCCUiKRdA1zWFNEr/3Utdfr5cOPPiIqKoopl1zS3N3s8aqircHhbHO/wyJVsYYjAn5EbXmnjSxGg4HE2Bi1y7vN0YttoDeoQq+xTv3eFqfWa7YjkoPBINf+z+Os3raDD//xKGMG5TBo0CD69+/PvPnzsTc2tn8+QT+KLa5rxyWRSCSnOFJQSiSSrmEJVzutPe42nxZC8M77H+BwOLj66qvRG9Toot8f4J35izCbjGT3bMfkO+ADnR6skarFj9+nir8uoNFo2pnl3RqlKcopHPXq9zFJqr2Pz9Pm9r975kXmrfieC8eOoraxkdlfLuLdrxbj1FvYcqiMzz7/vG0x6nWDwQwxSV06LolEIjnVkU05EomkSyhaHSKhB+zfihARrbwV16xZwzMfzcMWHYNvzjyS42KpqKnlvQVLyD94iKfv/yVhlnaiji47SlQChEdBdama/tbqu3RcGo1CqDvzGXQGcDao/w6zoUQnIioKEQZTq3PasnsfAPO/XcX8b1e1WqpPnI21a9cyevTo5seEEOr5pPRq4XspkUgkpzNSUEokki6jxCYjSvapUcSjxNKhwkIWL17MFeeMY/3+Il7++HNqGhoJt1gY2r8P//ubO7n07LPaXFP4fYBASUxvMilXo41dNQM3GAzEx3UjtaxRmhtxFEWB9H7QUK1O4fnBLPFlrz/X4VILFy5kyZIl9MzMJD4hQX3QUY9ijUDp0bfrxySRSCSnOFJQSiSSLqNYI1BSsxD7tyKMZhStDofDwcdz5tCjRw9uuukmNF3wqTyMEAIcdSjxPSA2pelF1G7yrk6Ycbvd1NTUdP0khFAtiprPKRLS+8PeTQiPC6UbJuSTJk3iwIEDzP3kE37xi1+g9XtAhFDS+6N0wQBeIpFIThdkDaVEIukWSkovlJhEaKwhFPAzZ84cAKZNm9Z9MdlYi2KJQMnIPmKYbjCBolV9L7uAz+dHr+9aehyAQKBFdBWApExI74/idSGcjZ12sh9Gp9Nx5ZVXUlNTw8bvvkHxe1EyciChR9ePRyKRSE4DZIRSIpF0C0Wrgz5DYdc6tn/3DVXlZVxz/Q2EtTWjux1EKKRa9xhMKH2GoFgjjjxpCVcbcvw+tau8E/x+PzpdNy5loSBKWMsRkGrquz9Cp4fCfNUHM8yG0oXGoPhoG9ecfw5Lv1+Nvs8Qhqb1aY6sCiGoa3RRVtVAXaMLERLodFriosJIjIskzNL2HHGJRCI51ZCCUiKR4HL72HmgjNLKegqKq6m3uxECIsJM/H97dxoc5Xmme/z/dqvVklqtrbULIbSAQWJfzBowOARvGLDxjCdewsTZPOM5GU8qqZpzOFOxK55T55ypuCZbxTPJTOLJxBk7hmBDgvECZjO2BQgsFgmQAO1Sa0FLS72+86FBRkYIiRY2RteviirofvrVI32gLj3LfeePSyU7PYkpBZk4HeEi3UaMg21nWtj5p3f4+rp7yHUlYpohjGu0MTRNM3wD2tOFkZCCUTTjitI6hs2OkZCC6a4fVg9sn89H1DBXKM2AP7zdHX9lIXTDMMLb+YmpmGePY7Y3YXYHwyumtujwZZ5LnXUCvnDg9fWC1UbRwmV8f+s+/vGb3+bo0eXY7HGUnahhz6HT1DS00eXxEgx+fBPdbosi3mGnuDCLhTMLmVqUjc2mepUi8vllmMPd2xGRW057p4d3P6xk36HT1LdcIBgyiY6yYI8O/67p8wfx+YMYBmS4Elg8q5Bl8ybR7m5g7ty53HPXKn77w/8DtZWYvT3hFUV7LNiiMSzhgGSaoXD48nvB2wfRMRiZ4zHGTw53rxmE2VxL6PgBcKYMWRj8p7/bxL4DH9Dc3sHOoydZt2IpsyYXAfDUww+Q6By4amp2tmE4EjFmLeuf36BfPxSCzlbMljpob8L09YXbQnKxnWJUdHjuKRkYaTmQ4KKuro5p06czZ9FdzL7jQWoa2rDZrKQmxxMfZyfaFnXx52HS5wvQ1dNHa3sPFotBcVEWf7ZqLoXjVbdSRD6fFChFxiDTNCk9do5Nbx6mqqaFpIQ4Ml0JV10lCwSCNLV20Xahh6zUBLa+9GOs/lZKP/wQp9OJ6e2F1oZw+R3PxTqShD5upxhlw7DHQto4jNSccAeZIS7cmAE/5pHdmN0dGImpVx1XcM+fc66hadD3zmx7iQnZH9eBNAN+6G7HcttcjKz8Yf2c4GK47OsBrye8OmlYwiun9riPz30CvX0+vvPsz/nX/9zKwoULWLFkLlFR11517O3zUVXbSqIzlrV3zmDV4pJh33AXEblZKFCKjDGhUIit737E5jcPYwITclKIGmZ7wEAwxG9feZ3amlp+8Pff4Nt/eT9W68ehyjTNcJFwT1d4Rc80wWoNd9mJcQwIYNditjYQOnYA7DEY9qtvfb/44ovExcWxfv36qz/LNKGjBSM1G6N4wai3Q+zt8/Fvm/azu7SSEx+VcrryOE9+61skJydf+8MX51fffIHuXi/rvzSb+5fPUKgUkc8V3fIWGUNM0+SPu8t5ZftBnI4YisanDTtMAhw+dJDqijKWL1tEaUUrm946POBGtGEYGPZYjOR0jLQcjPRxGK4sjDjniMIkACmZGNkF4OnGHKLfts/nIzr66pdnwrfJWzHi4jHySyIOkxs2bAh/n4bB1KlTMU2T3+84xO7SUxTkprLmvrtwxDnYvPkPI+rgk5ORRJIzls1vlbG/rAqAtWvXDvhaIiI3K13KEblFbdiwgV//+tcAlJSUUF5ezvEzDWx5p4xEZwzprpF1camtrWP79je4/fb5LLx9Fu72bra9+xEF41J54pE1HDlyBIB7772XrVu3Rjx/wzAgvwSCAcz6KsxYR7j14yf4/VcvG2SGguHSRPY4jEmzMeKTIp4XQGpqKs8//zxJSUmUnazlnfdPErhwlh3vv0JtdQWtjTW4LTb2FhWydOnSAZ9taazh0P43OX3iMG0tjUTbY8geX8iK+x4hJ28iPb1uNr15iIl56Tz99NOsX7+e5557blTmLSJyoyhQitzCLg8+Pb1eXnnjIFUnyuioL6e2uoKWxloSk1P5znP/NuRzeno8/Mcvf4Sv8Rgfbi/j7rvvIjU5nvZOD7/fcYj/ufEf8PV5ePrpp0d1/oY1Copmgs2OWXcG0+sGRyJG1McBcrAVStM0w+cee3swklIxCqcPeRZzpBwOB48++ig+f4Af/HwbwWCI6uPv89HBPWTnFuJMcuHz+ti1610KCwvJycnp/+zBfTs4uG8HJbMWc/vSe/H29vDh3u38y//7Do8/9Sz5t02n/HQD2/eU8/iaZQD84he/wO12j9r8RURGmwKlyC3sUvAB2F1aSUV1E+7zZRw/vO9i8Em55jNCIZNXXv4dvS2nsEXbufxoX/44Fyermrhj3iJWLSlh48aNo/49GFYr5JdgJKeHy/l0toYvylwq5xMKYrfZwpduAj7wecPnN2PiwgXTcycNq57k9Sg/VU9VjZsJOS4y1zzOmkf/Bqs1iv/46TM01Z8jMSuLTZs2881vfqM/9E6bu4zl934Ze0xs/3NmL1rJj555kne2/ZavT5lJhsvJ+0eruWfpNFKT1XFHRG5+OkMpMgYEgyH2lJ4m2mZl1boNbHz+Zb7+3f9PZs61bzvv2rWL6mPvkZCYxJSZCwe8F2W14oiNZs+h0/j8gRs1/fA5wuR0jBlLsUxbEu7WY7ODz0uWM47UGGv4IpBpYiS4sEyahWX2ciwFU29YmAT44Gg1pmkSY7eRkOTCelkhdgN44IF1dHZ18sYbO/pfz8krGhAmAeLiE8grKqGlsQaAtOR4Wjt6OFJRc8PmLiIymhQoRcaA2qYOqmrdZKYmXBF8hlJZeYrdO3dg9jZz/188iXWQ2o2ZqQnUNLRRXXvjt2QNiwUjJQPv+Kmcy5pFecJk/n5LKW+0x9BZNB9jzhexzFyKMW7ioOctR5PfH6TyXBNJCVe/ge5yubhr1V0cOnSQioqKIZ/X3dlO3MWOQRaLhSirheraEfQoFxH5DGnLW2QMaGjpwNPnIz7u2lvcl7S3d7Bp8yZiQ61kTp7BpKnzKD+494pxMXYbPn+ARnfnaE75Cp5eH2UVNbx/pJrqWjfdHi89vX3UWQvZfPgCp7y7SEtxsmBGPnNK8khPGdmlo5Fqauuks7sPV9LQwXX27NlUVlay5bXX+Ksnnxy0ReXZU+XUVJ9k2d1/3v9afJyd0+ebh31TXETks6QVSpExoLmtCxNz2LUN/f4AL7/8MtZAD56OJu5e/7WrjjUMA0xodF8YrekOEAqF2Hf4DM/87HV+/JudHDp+HhOTjFQneVlJmN42Ml3x2KOjqG1s41d/2M/3f/I6L28vpaf36uWGItXV3UefL0CMfei2j4YB999/PxbDwrZtf7zi/e7ODl75938iyZXBkpUP9r8eY7fR7fHS571xRwlEREaLVihFxgCvL4BhDr9Qdl1dHW3trdg8dcxbejfpWeOHHG+1WvD0+SKd5hU6u3v53R9L2XPwFFFRFibmpfW3MATo6OgDwBFnx5XkwJXkIBQyaWnv4tUdhzh+ppHHVs+/IS0NQ6YZPrM5jB+rwxEuvB4XN/DspM/bx29+9gy+vl6+9p3/O+Bs5aW24SH1nhCRzwGtUIqMAeGVyeEHkwkT8pg/LR9fXw8r7nvkmuNN08RijO5/Jxe6ennh5T28feAEWWkJFOYODJMAfn84xNouu3hjsRhkuBK4LT+DyupGfvrSLiqqG0d1bgB2WxRWq4VAYHhb0hMm5JGent7/70DAz0svPEdT3Vm+/K2NZORMGDDeHwgRZbVgt+n3fhG5+SlQiowBzjh7+NrxMPX19rDvzVeZs2QV3j4P7a1NtLc24fX2Ypom7a1NdHd29I8PhswhL6eMVCAQ5MXXDlBafpaJeekkxMcOOs7n8wMQHX3ltnO0LYrJBZk0t3byy1f3jfoZz3SXk/g4O92ekW+rh0IhXv3VD6mqOML6r36X/EnTrhjT4/GSk5F01f7qIiI3EwVKkTEgKy0Ri2EhEAgOa3yvpxuft5e9O17lhxuf6P9z/PB+/D4vP9z4BFt++xMgXKfSMAyy0hKva26fbGUIsLv0FAfKqijITR3yjOJgK5SXs1gMJk1I51x9G6/uOMSaNWtGrZWh0xFDRmoinT19I/7stv96gfKDe7jv4b+iZNaiQcf0ev0U3YCtehGRG0F7KSJjwLjMZBKdsbR1eoZ1+9nhTOQvvvm/rnj9wM7Xqak+yUNf/S7OxPCN8Y4uD05HDDkZSdc9v8s7+rjbu9my8wjtDRWc3F82ZEcfn8+PGfSx49UXaKo7S9eFNiwWC670bOYvu4+ZC1ZgsViYkJPCgSNVrFr9MA899NCotDI0DIN5U/M4drqOUMikuf4sJ4++D0BbSwN9vT3s+uPvAMgcl8/k6fMB2P/2Fj7YvY3cgsnYou2Uvb9zwHOLZy7EFzSIibYxuSAr4nmKiHwaFChFxoCURAdzSsbz9nsnCXnc1ww+0dExFH+iiDnAySMHqDtXOeC9JncXC2YWkH2dK5QwsKPPG3uP0eTupOH0QcoP7R2yo4/f74NQgO7ODkpmLyYpJY1gMMCZE2VsevF53E21rFz7FZyOGDAu0GNx8a0vf3HUWhnOKcnj9Z1HaWnvor7mDG+//psB71/696wFd/YHysbaKgBqqk5SU3Xyimfm/eCXNHfB5AmZ3DYhI+I5ioh8GhQoRcaIhTML2XvoNKcrTwwr+AxHV08fVquFRTMLhl2SaCiBQJDdB0/hiI1m5dqvsPax/9HfyrC5/twV430+P4Ytjif+7n9jsXx8gmfBHav5zc+e4cCu17nz/kexWKxkpSZwsqphVIqFh0Ih3G430VFRLJ07kc1vHWba3OXMXvjFa372ga88zQNfuXrP844uDwbdrFxcjMfTg9frxe/3RzxnEZEbSYFS5BZ2KfhERUUxpSCTpXMnsr3Xx/d/8hpW68iPUF8ehkKhEGfrW7lj3m3kZzlxu90RF+FubO2kubUTV3I8CY6Ya473+31YrdYBYfKSJFcGfl8pwUAAS7QVpyOG8w3tnG9oi2iOADU1NaSlpVFSUsJ775dy4kwDp863MKUgI6Jg7fMHqGloZ+WiYuZNzWPdunVs2bIFgJKSkojnLSJyoyhQitzCLg8+5eXlrL1zFqfONVN5tpnb8jOwWK4v/JimyalzLeRmpPDAylmsWLGUI0eOADB9+vTrnm+ju5Nuj4/czORhjff5/P0Xcvw+Lz5fHz5vH2cryzn83lvk5ofPKUL4zKPFMKhrar/u+QF873vf69+ej4+Px+mI4ZHV8/npS7uoPNfMpLz06wqVPn+Aiuompk7K4cEvzcYwDJ599lmeeuqp/q8lInKzUqAUuUV9MvgAJCfE8bUHl/Czl3ZxsqqRiXnpIy5LEwgGOXW2hdRkB088uJgMVwIvvPACXV1dAKSlXf/N5I5OD8CgK46D8ft92C6WDHpv52u8+Ydf979XcNsMHnj8bweMt9ujaGiJrKNPcXExxcXFA16bNCGDbzz0BX7x+70cO91AwbhU4mIHv3k+mNaOHuqbO5g+aRxf/7MvkHyxBFMk4VxE5NOkQClyixos+AAU5Kbx119ezr9v3sfJ6kay0hJxJTmuuapmmibtnR7qmjooyE1jw9qF3JafCcD8+cM/dzmUUGhkXWGKi0vIzs4GYPrcZeSMn0hP9wUqPvqA7s6O/rJCl1gMg8AN6o1dUpTN321YySvbSyk9do5om5WstEQcsfZBx5umSUdXL40tndijo1h9x3TuXzHjqjU3RURuZgqUImNQ/rhUvvvVVWzddZSdH1TQcOoCyQlxJCXEERcT3b8Vbpomnj4fHV29tF3w4Iyzc8/Saay5cwZJztErZH6JLWpkq6UZGelkZIS7zyS50klyhf8+fd4ytvznj/nVP2/k29//ef+2dzAUIvYavbcjkZuZzN88soL9ZWd498NKztS04PMHsVqM/p9rIBjC0+cnFArhdMQwf0Y+d8ybxLRJOaNysUlE5LOgQCkyRjkdMTx8zzwWzSqktPws+8uqaGnrvqInd2yMjcT4WNbdOZN5UydQkJt6w4JPWko8VouBPxAccbj8pJJZiynd+wZnT5czsXgOAF5vgNzMwUsQjRabzcqyeZNYMruIirNNnKtv5VxdK/XuCwQDIWLsNsZnpZCbmUzh+HTGZyUrSIrI554CpcgYZhgGedku8rJdrF4+g0Z3J43uTjy94XaCMXYbWWmJZLgShuxYM1oyUxOJd8TQ1dNHSqIjomdd2u7u6w2fywyFTDAMstKvv17mSFitFooLsyguVHFyEbn1KVCKCBDufT0+K4XxWTd2BW8oriQHE/PSKTtRM+xA2dN1AYfzypB4cN8ODMMgO7cQAHdHN8kJcRSNTx/VOYuIiAKliNxEDMNg8axCDh47z/nq01SdKAWGbmX47p/+i/NVJygqnk1SShqenm6OH95H3blTLLhjNa70bEzTpKW1iy8tKR5W60kRERkZBUoRuanMnJzL5PwM/rR1Hwf+dO2OPpOmzaPN3cCh/W/i6e4kymYjIyefdY//LbMW3AlAU2sXCc5YvjB74qf7zYiIjBEKlCLymbu8o09SUhIPrZpDbWM7cxatJDM1YcjPFk2ZRdGUWVd9v9frx93ezcN3zyUjJRa3261WhiIio2zkvddEREbZpY4+S5YsAWBKYRarV8ygo9ODu737up/b5/Vz+lwzt0+bwKolJTz22GOkpaWxf//+0Zq6iIgAhmmaI6skLCIyio4fP059fT0Q7uizYMECILxqufmtw2x55yjRNivjs5KH3UEHwN3eTUPLBW6fls8T6xeT5Izj6NGjNDc3X/G1REQkMgqUInLTCoVC7Dt0hs1vl1Hb1E6Gy0lacvxVg6VpmnT19FHXdIEYu40vLpzM6uUziI8bvFuNiIiMDgVKEbnpNbV2sn1POR98dJbWjh6sFgvxcdHY7TYMwB8I0u3x4vMHccTamVKYyarFJUydmK2i4SIinwIFShH53HC3d3O0opaz9a2cPt9Cd08fJhBtszIhx8WE7FSKC7NuaDcfERG5kgKliHwumaaJPxAkFDKxRVmxWnXHUETks6JAKSIiIiIR0a/0IiIiIhIRBUoRERERiYgCpYiIiIhERIFSRERERCKiQCkiIiIiEVGgFBEREZGIKFCKiIiISEQUKEVEREQkIgqUIiIiIhIRBUoRERERiYgCpYiIiIhERIFSRERERCKiQCkiIiIiEVGgFBEREZGIKFCKiIiISEQUKEVEREQkIgqUIiIiIhIRBUoRERERiYgCpYiIiIhERIFSRERERCKiQCkiIiIiEVGgFBEREZGIKFCKiIiISEQUKEVEREQkIgqUIiIiIhIRBUoRERERiYgCpYiIiIhERIFSRERERCKiQCkiIiIiEVGgFBEREZGIKFCKiIiISEQUKEVEREQkIgqUIiIiIhIRBUoRERERiYgCpYiIiIhERIFSRERERCKiQCkiIiIiEflvzOypo4Oe0ZMAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tree = tree_search(agent, qs, 3, entropy_prune_threshold=0.0)\n", + "plot_plan_tree(tree)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 59131c6c1860ed7b5d4893b13e80682e4a7a0881 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Fri, 14 Jun 2024 11:15:37 +0200 Subject: [PATCH 121/196] Unit test for ovf smoothing using sparse tensors --- pymdp/jax/inference.py | 92 +++++++++--------- test/test_jax_sparse_backend.py | 159 ++++++++++++++++++++------------ 2 files changed, 142 insertions(+), 109 deletions(-) diff --git a/pymdp/jax/inference.py b/pymdp/jax/inference.py index bd7ca3cc..d16561cc 100644 --- a/pymdp/jax/inference.py +++ b/pymdp/jax/inference.py @@ -9,21 +9,33 @@ from jax.experimental.sparse._base import JAXSparse from jax.experimental.sparse import sparsify from jaxtyping import Array +import copy + + +def to_dense(x: JAXSparse): + """ + Create a dense array from a jax sparse array in case the _validate for normal densify fails + """ + dense = jnp.zeros(x.shape) + for val, idcs in zip(x.data.reshape(-1), x.indices.reshape(-1, len(x.shape))): + dense = dense.at[*idcs].set(val) + return dense + def update_posterior_states( - A, - B, - obs, - past_actions, - prior=None, - qs_hist=None, - A_dependencies=None, - B_dependencies=None, - num_iter=16, - method='fpi' - ): - - if method == 'fpi' or method == "ovf": + A, + B, + obs, + past_actions, + prior=None, + qs_hist=None, + A_dependencies=None, + B_dependencies=None, + num_iter=16, + method="fpi", +): + + if method == "fpi" or method == "ovf": # format obs to select only last observation curr_obs = jtu.tree_map(lambda x: x[-1], obs) qs = run_factorized_fpi(A, curr_obs, prior, A_dependencies, num_iter=num_iter) @@ -33,7 +45,7 @@ def update_posterior_states( if past_actions is not None: nf = len(B) actions_tree = [past_actions[:, i] for i in range(nf)] - + # move time steps to the leading axis (leftmost) # this assumes that a policy is always specified as the rightmost axis of Bs B = jtu.tree_map(lambda b, a_idx: jnp.moveaxis(b[..., a_idx], -1, 0), B, actions_tree) @@ -41,25 +53,26 @@ def update_posterior_states( B = None # outputs of both VMP and MMP should be a list of hidden state factors, where each qs[f].shape = (T, batch_dim, num_states_f) - if method == 'vmp': - qs = run_vmp(A, B, obs, prior, A_dependencies, B_dependencies, num_iter=num_iter) - if method == 'mmp': + if method == "vmp": + qs = run_vmp(A, B, obs, prior, A_dependencies, B_dependencies, num_iter=num_iter) + if method == "mmp": qs = run_mmp(A, B, obs, prior, A_dependencies, B_dependencies, num_iter=num_iter) - + if qs_hist is not None: - if method == 'fpi' or method == "ovf": + if method == "fpi" or method == "ovf": qs_hist = jtu.tree_map(lambda x, y: jnp.concatenate([x, jnp.expand_dims(y, 0)], 0), qs_hist, qs) else: - #TODO: return entire history of beliefs + # TODO: return entire history of beliefs qs_hist = qs else: - if method == 'fpi' or method == "ovf": + if method == "fpi" or method == "ovf": qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), qs) else: qs_hist = qs - + return qs_hist + @multimethod def joint_dist_factor(b: Array, filtered_qs, actions): qs_last = filtered_qs[-1] @@ -73,63 +86,49 @@ def joint_dist_factor(b: Array, filtered_qs, actions): qs_joint = time_b * jnp.expand_dims(qs_filter, -1) # cond dist - timestep x s_{t} | s_{t+1} - qs_backward_cond = jnp.moveaxis( - qs_joint / qs_joint.sum(-2, keepdims=True), -2, -1 - ) + qs_backward_cond = jnp.moveaxis(qs_joint / qs_joint.sum(-2, keepdims=True), -2, -1) # tranpose_idx = list(range(len(qs_joint.shape[:-2]))) + [qs_joint.ndim-1, qs_joint.ndim-2] # qs_backward_cond = (qs_joint / qs_joint.sum(-2, keepdims=True).todense()).transpose(tranpose_idx) def step_fn(qs_smooth_past, backward_b): qs_joint = backward_b * qs_smooth_past qs_smooth = qs_joint.sum(-1) - + return qs_smooth, (qs_smooth, qs_joint) # seq_qs will contain a sequence of smoothed marginals and joints - _, seq_qs = lax.scan( - step_fn, - qs_last, - qs_backward_cond, - reverse=True, - unroll=2 - ) + _, seq_qs = lax.scan(step_fn, qs_last, qs_backward_cond, reverse=True, unroll=2) # we add the last filtered belief to smoothed beliefs qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0) return qs_smooth_all, seq_qs[1] + @multimethod def joint_dist_factor(b: JAXSparse, filtered_qs, actions): qs_last = filtered_qs[-1] qs_filter = filtered_qs[:-1] # conditional dist - timestep x s_{t+1} | s_{t} - time_b = b[...,actions].transpose([b.ndim-1] + list(range(b.ndim-1))) + time_b = b[..., actions].transpose([b.ndim - 1] + list(range(b.ndim - 1))) # joint dist - timestep x s_{t+1} x s_{t} qs_joint = time_b * jnp.expand_dims(qs_filter, -1) # cond dist - timestep x s_{t} | s_{t+1} - tranpose_idx = list(range(len(qs_joint.shape[:-2]))) + [qs_joint.ndim-1, qs_joint.ndim-2] + tranpose_idx = list(range(len(qs_joint.shape[:-2]))) + [qs_joint.ndim - 1, qs_joint.ndim - 2] qs_backward_cond = (qs_joint / qs_joint.sum(-2, keepdims=True).todense()).transpose(tranpose_idx) def step_fn(qs_smooth_past, t): qs_joint = qs_backward_cond[t] * qs_smooth_past qs_smooth = qs_joint.sum(-1) - - return qs_smooth.todense(), (qs_smooth.todense(), qs_joint) + + return qs_smooth.todense(), (qs_smooth.todense(), to_dense(qs_joint)) # seq_qs will contain a sequence of smoothed marginals and joints - _, seq_qs = lax.scan( - step_fn, - qs_last, - jnp.arange(qs_backward_cond.shape[0]), - reverse=True, - unroll=2 - ) + _, seq_qs = lax.scan(step_fn, qs_last, jnp.arange(qs_backward_cond.shape[0]), reverse=True, unroll=2) # we add the last filtered belief to smoothed beliefs - qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0) return qs_smooth_all, seq_qs[1] @@ -147,6 +146,3 @@ def smoothing_ovf(filtered_post, B, past_actions): marginals_and_joints.append(marginals_and_joints_f) return marginals_and_joints - - - diff --git a/test/test_jax_sparse_backend.py b/test/test_jax_sparse_backend.py index c4d312d6..2155d0d8 100644 --- a/test/test_jax_sparse_backend.py +++ b/test/test_jax_sparse_backend.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- """ Unit Tests -__author__: Conor Heins, Toon van der Maele, Ozan Catal +__author__: Conor Heins, Toon Van de Maele, Ozan Catal """ import os @@ -17,115 +17,152 @@ from pymdp.jax.inference import smoothing_ovf from pymdp import utils, maths +from pymdp.control import construct_policies + +from jax.experimental import sparse from typing import Any, List, Dict + def make_model_configs(source_seed=0, num_models=4) -> Dict: """ This creates a bunch of model configurations (random amounts of num states, num obs, num controls, etc.) - that will be looped over and used as inputs for each unit test. This is intended to test each function on a variety of - differently-dimensioned generative models + that will be looped over and used as inputs for each unit test. This is intended to test each function on a variety of + differently-dimensioned generative models """ "" rng_keys = jr.split(jr.PRNGKey(source_seed), num_models) - num_factors_list = [ jr.randint(key, (1,), 1, 7)[0].item() for key in rng_keys ] # list of total numbers of hidden state factors per model - num_states_list = [ jr.randint(key, (nf,), 2, 5).tolist() for nf, key in zip(num_factors_list, rng_keys) ] - num_controls_list = [ jr.randint(key, (nf,), 1, 3).tolist() for nf, key in zip(num_factors_list, rng_keys) ] + num_factors_list = [ + jr.randint(key, (1,), 1, 7)[0].item() for key in rng_keys + ] # list of total numbers of hidden state factors per model + num_states_list = [jr.randint(key, (nf,), 2, 5).tolist() for nf, key in zip(num_factors_list, rng_keys)] + num_controls_list = [jr.randint(key, (nf,), 1, 3).tolist() for nf, key in zip(num_factors_list, rng_keys)] rng_keys = jr.split(rng_keys[-1], num_models) - num_modalities_list = [ jr.randint(key, (1,), 1, 10)[0].item() for key in rng_keys ] - num_obs_list = [ jr.randint(key, (nm,), 1, 5).tolist() for nm, key in zip(num_modalities_list, rng_keys) ] + num_modalities_list = [jr.randint(key, (1,), 1, 10)[0].item() for key in rng_keys] + num_obs_list = [jr.randint(key, (nm,), 1, 5).tolist() for nm, key in zip(num_modalities_list, rng_keys)] rng_keys = jr.split(rng_keys[-1], num_models) A_deps_list, B_deps_list = [], [] for nf, nm, model_key in zip(num_factors_list, num_modalities_list, rng_keys): modality_keys_model_i = jr.split(model_key, nm) - num_f_per_modality = [jr.randint(key, shape=(), minval=1, maxval=nf+1).item() for key in modality_keys_model_i] # this is the number of factors that each modality depends on - A_deps_model_i = [sorted(jr.choice(key, a=nf, shape=(num_f_m,), replace=False).tolist()) for key, num_f_m in zip(modality_keys_model_i, num_f_per_modality)] + num_f_per_modality = [ + jr.randint(key, shape=(), minval=1, maxval=nf + 1).item() for key in modality_keys_model_i + ] # this is the number of factors that each modality depends on + A_deps_model_i = [ + sorted(jr.choice(key, a=nf, shape=(num_f_m,), replace=False).tolist()) + for key, num_f_m in zip(modality_keys_model_i, num_f_per_modality) + ] A_deps_list.append(A_deps_model_i) factor_keys_model_i = jr.split(modality_keys_model_i[-1], nf) - num_f_per_factor = [jr.randint(key, shape=(), minval=1, maxval=nf+1).item() for key in factor_keys_model_i] # this is the number of factors that each factor depends on - B_deps_model_i = [sorted(jr.choice(key, a=nf, shape=(num_f_f,), replace=False).tolist()) for key, num_f_f in zip(factor_keys_model_i, num_f_per_factor)] + num_f_per_factor = [ + jr.randint(key, shape=(), minval=1, maxval=nf + 1).item() for key in factor_keys_model_i + ] # this is the number of factors that each factor depends on + B_deps_model_i = [ + sorted(jr.choice(key, a=nf, shape=(num_f_f,), replace=False).tolist()) + for key, num_f_f in zip(factor_keys_model_i, num_f_per_factor) + ] B_deps_list.append(B_deps_model_i) - return {'nf_list': num_factors_list, - 'ns_list': num_states_list, - 'nc_list': num_controls_list, - 'nm_list': num_modalities_list, - 'no_list': num_obs_list, - 'A_deps_list': A_deps_list, - 'B_deps_list': B_deps_list - } - -def make_A_full(A_reduced: List[np.ndarray], A_dependencies: List[List[int]], num_obs: List[int], num_states: List[int]) -> np.ndarray: - """ + return { + "nf_list": num_factors_list, + "ns_list": num_states_list, + "nc_list": num_controls_list, + "nm_list": num_modalities_list, + "no_list": num_obs_list, + "A_deps_list": A_deps_list, + "B_deps_list": B_deps_list, + } + + +def make_A_full( + A_reduced: List[np.ndarray], A_dependencies: List[List[int]], num_obs: List[int], num_states: List[int] +) -> np.ndarray: + """ Given a reduced A matrix, `A_reduced`, and a list of dependencies between hidden state factors and observation modalities, `A_dependencies`, return a full A matrix, `A_full`, where `A_full[m]` is the full A matrix for modality `m`. This means all redundant conditional independencies between observation modalities `m` and all hidden state factors (i.e. `range(len(num_states))`) are represented as lagging dimensions in `A_full`. """ - A_full = utils.initialize_empty_A(num_obs, num_states) # initialize the full likelihood tensor (ALL modalities might depend on ALL factors) - all_factors = range(len(num_states)) # indices of all hidden state factors + A_full = utils.initialize_empty_A( + num_obs, num_states + ) # initialize the full likelihood tensor (ALL modalities might depend on ALL factors) + all_factors = range(len(num_states)) # indices of all hidden state factors for m, A_m in enumerate(A_full): # Step 1. Extract the list of the factors that modality `m` does NOT depend on - non_dependent_factors = list(set(all_factors) - set(A_dependencies[m])) + non_dependent_factors = list(set(all_factors) - set(A_dependencies[m])) - # Step 2. broadcast or tile the reduced A matrix (`A_reduced`) along the dimensions of corresponding to `non_dependent_factors`, to give it the full shape of `(num_obs[m], *num_states)` + # Step 2. broadcast or tile the reduced A matrix (`A_reduced`) along the dimensions of corresponding to + # `non_dependent_factors`, to give it the full shape of `(num_obs[m], *num_states)` expanded_dims = [num_obs[m]] + [1 if f in non_dependent_factors else ns for (f, ns) in enumerate(num_states)] tile_dims = [1] + [ns if f in non_dependent_factors else 1 for (f, ns) in enumerate(num_states)] A_full[m] = np.tile(A_reduced[m].reshape(expanded_dims), tile_dims) - + return A_full - + + class TestJaxSparseOperations(unittest.TestCase): def test_sparse_smoothing(self): - cfg = {'source_seed': 0, - 'num_models': 4 - } + cfg = {"source_seed": 1, "num_models": 4} gm_params = make_model_configs(**cfg) - num_states_list, num_obs_list = gm_params['ns_list'], gm_params['no_list'] - - for (num_states, num_obs) in zip(num_states_list, num_obs_list): + num_states_list, num_obs_list = gm_params["ns_list"], gm_params["no_list"] + num_controls_list, B_deps_list = gm_params["nc_list"], gm_params["B_deps_list"] - # Make numpy versions of each generative model component and observatiosn - prior = utils.random_single_categorical(num_states) - A = utils.random_A_matrix(num_obs, num_states) + num_states_list = num_states_list - obs = utils.obj_array(len(num_obs)) - for m, obs_dim in enumerate(num_obs): - obs[m] = utils.onehot(np.random.randint(obs_dim), obs_dim) + n_time = 8 + n_batch = 1 - # extract B's, D',s etc. + for num_states, num_obs, num_controls in zip(num_states_list, num_obs_list, num_controls_list): - # dense jax version - prior = [jnp.array(prior_f) for prior_f in prior] - A = [jnp.array(a_m) for a_m in A] - obs = [jnp.array(o_m) for o_m in obs] - # ... finish making generative model - # .... put the dense version of smoothing_ovf here + # Randomly create a B matrix that contains a lot of zeros + B = utils.random_B_matrix(num_states, num_controls) + B = [jnp.array(x.astype(np.float32)) for x in B] + # Map all values below the mean to 0 to create a B tensor with zeros + B = jtu.tree_map(lambda x: jnp.array(utils.norm_dist(jnp.clip((x - x.mean()), 0, 1))), B) + # Create a sparse array B + sparse_B = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b), B) - # sparse jax version - prior = [jnp.array(prior_f) for prior_f in prior] - A = [jnp.array(a_m) for a_m in A] - obs = [jnp.array(o_m) for o_m in obs] - # ... finish making generative model - # .... put the sparse version of smoothing_ovf here + # Construct a random list of actions + policies = construct_policies(num_states, num_controls, policy_len=1) + acs = [None for _ in range(n_time - 1)] + for t in range(n_time - 1): + pol = policies[np.random.randint(len(policies))] + # Get rid of the policy length index, and insert batch dim + pol = jnp.expand_dims(pol[0], 0) + # Broadcast to add in the batch dim + pol = jnp.broadcast_to(pol, (n_batch, 1, len(num_controls))) + acs[t] = pol + action_hist = jnp.concatenate(acs, axis=1) - # for example, something like this - for f, (dense_out, sparse_out) in enumerate(zip(smoothed_beliefs_dense, smoothed_beliefs_sparse)): - self.assertTrue(np.allclose(dense_out[f], sparse_out[f])) + # Construct a random list of beliefs + beliefs = [None for _ in range(len(num_states))] + for m, ns in enumerate(num_states): + beliefs[m] = np.random.uniform(0, 1, size=(n_batch, n_time, ns)) + beliefs[m] /= beliefs[m].sum(axis=-1, keepdims=True) + beliefs[m] = jnp.array(beliefs[m]) + # Take the ith element from the pytree (not testing batched here) + take_i = lambda pytree, i: jtu.tree_map(lambda leaf: leaf[i], pytree) + for i in range(n_batch): + smoothed_beliefs_dense = smoothing_ovf(take_i(beliefs, i), B, action_hist[i]) -if __name__ == "__main__": - unittest.main() + # sparse jax version + smoothed_beliefs_sparse = smoothing_ovf(take_i(beliefs, i), sparse_B, action_hist[i]) + # for example, something like this + for f, (dense_out, sparse_out) in enumerate(zip(smoothed_beliefs_dense, smoothed_beliefs_sparse)): + qs_smooth_dense, qs_joint_dense = dense_out + qs_smooth_sparse, qs_joint_sparse = sparse_out + self.assertTrue(np.allclose(qs_smooth_dense, qs_smooth_sparse)) + self.assertTrue(np.allclose(qs_joint_dense, qs_joint_sparse)) - - +if __name__ == "__main__": + unittest.main() From 0a3faae14d71505f7a349af2829e59451e6a20c1 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Fri, 14 Jun 2024 11:19:07 +0200 Subject: [PATCH 122/196] updated docstring for todense hack --- pymdp/jax/inference.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pymdp/jax/inference.py b/pymdp/jax/inference.py index d16561cc..aa7b7abe 100644 --- a/pymdp/jax/inference.py +++ b/pymdp/jax/inference.py @@ -14,7 +14,8 @@ def to_dense(x: JAXSparse): """ - Create a dense array from a jax sparse array in case the _validate for normal densify fails + Workaround for the case when .todense() on jax sparse array fails due to validate estimating n_dense + to be smaller than 0 """ dense = jnp.zeros(x.shape) for val, idcs in zip(x.data.reshape(-1), x.indices.reshape(-1, len(x.shape))): From a0967ddb4b6255cad6acf89e9e0e22c8a60f5bb5 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Fri, 14 Jun 2024 11:30:11 +0200 Subject: [PATCH 123/196] get the inference methods comparison notebook to work with latest hackathon version --- .../inference_methods_comparison.ipynb | 35 +++++--- pymdp/jax/agent.py | 81 ++++++++++--------- 2 files changed, 68 insertions(+), 48 deletions(-) diff --git a/examples/inference_and_learning/inference_methods_comparison.ipynb b/examples/inference_and_learning/inference_methods_comparison.ipynb index 4c51f20c..cd4398e9 100644 --- a/examples/inference_and_learning/inference_methods_comparison.ipynb +++ b/examples/inference_and_learning/inference_methods_comparison.ipynb @@ -99,7 +99,8 @@ " inference_algo=\"ovf\",\n", " num_iter=16,\n", " learn_A=False,\n", - " learn_B=False)\n" + " learn_B=False,\n", + " apply_batch=False)\n" ] }, { @@ -137,7 +138,19 @@ "cell_type": "code", "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'Agent' object has no attribute 'update_empirical_prior'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[5], line 8\u001b[0m\n\u001b[1;32m 6\u001b[0m beliefs \u001b[38;5;241m=\u001b[39m agents\u001b[38;5;241m.\u001b[39minfer_states(first_obs, past_actions\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, empirical_prior\u001b[38;5;241m=\u001b[39mprior, qs_hist\u001b[38;5;241m=\u001b[39mqs_hist)\n\u001b[1;32m 7\u001b[0m actions \u001b[38;5;241m=\u001b[39m jnp\u001b[38;5;241m.\u001b[39mbroadcast_to(agents\u001b[38;5;241m.\u001b[39mpolicies[\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m0\u001b[39m], (\u001b[38;5;241m2\u001b[39m, \u001b[38;5;241m2\u001b[39m))\n\u001b[0;32m----> 8\u001b[0m prior, qs_hist \u001b[38;5;241m=\u001b[39m \u001b[43magents\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupdate_empirical_prior\u001b[49m(actions, beliefs)\n\u001b[1;32m 9\u001b[0m action_hist\u001b[38;5;241m.\u001b[39mappend(actions)\n\u001b[1;32m 11\u001b[0m beliefs \u001b[38;5;241m=\u001b[39m jtu\u001b[38;5;241m.\u001b[39mtree_map(\u001b[38;5;28;01mlambda\u001b[39;00m x, y: jnp\u001b[38;5;241m.\u001b[39mconcatenate([x[:, \u001b[38;5;28;01mNone\u001b[39;00m], y], \u001b[38;5;241m1\u001b[39m), agents\u001b[38;5;241m.\u001b[39mD, beliefs)\n", + "\u001b[0;31mAttributeError\u001b[0m: 'Agent' object has no attribute 'update_empirical_prior'" + ] + } + ], "source": [ "prior = agents.D\n", "qs_hist = None\n", @@ -146,7 +159,7 @@ " first_obs = jtu.tree_map(lambda x: jnp.moveaxis(x[:t+1], 0, 1), obs)\n", " beliefs = agents.infer_states(first_obs, past_actions=None, empirical_prior=prior, qs_hist=qs_hist)\n", " actions = jnp.broadcast_to(agents.policies[0, 0], (2, 2))\n", - " prior, qs_hist = agents.update_empirical_prior(actions, beliefs)\n", + " prior, qs_hist = agents.infer_empirical_prior(actions, beliefs)\n", " action_hist.append(actions)\n", "\n", "beliefs = jtu.tree_map(lambda x, y: jnp.concatenate([x[:, None], y], 1), agents.D, beliefs)\n", @@ -156,7 +169,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -165,7 +178,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -174,7 +187,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -207,7 +220,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -229,7 +242,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -359,7 +372,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -368,7 +381,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -413,7 +426,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.3" } }, "nbformat": 4, diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 0dbdf61e..dc85698d 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -77,7 +77,7 @@ class Agent(Module): inductive_depth: int = field(static=True) # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) policies: Array = field(static=True) - policies_multi: Array = field(static=True) + # policies_multi: Array = field(static=True) # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy use_utility: bool = field(static=True) # flag for whether to use state information gain ("salience") when computing expected free energy @@ -141,7 +141,7 @@ def __init__( ): if B_action_dependencies is not None: assert num_controls is not None, "Please specify num_controls for complex action dependencies" - + # extract high level variables self.num_modalities = len(A) self.num_factors = len(B) @@ -150,12 +150,10 @@ def __init__( # extract dependencies for A and B matrices ( - self.A_dependencies, - self.B_dependencies, + self.A_dependencies, + self.B_dependencies, self.B_action_dependencies, - ) = self._construct_dependencies( - A_dependencies, B_dependencies, B_action_dependencies, A, B - ) + ) = self._construct_dependencies(A_dependencies, B_dependencies, B_action_dependencies, A, B) # extract A and B tensors A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] @@ -166,11 +164,11 @@ def __init__( self.action_maps = None self.num_controls_multi = num_controls if B_action_dependencies is not None: - self.policies_multi = control.construct_policies( + policies_multi = control.construct_policies( self.num_controls_multi, self.num_controls_multi, policy_len, control_fac_idx ) B, self.action_maps = self._flatten_B_action_dims(B, self.B_action_dependencies) - policies = self._construct_flattend_policies(self.policies_multi, self.action_maps) + policies = self._construct_flattend_policies(policies_multi, self.action_maps) self.sampling_mode = "full" # extract shapes from A and B @@ -266,7 +264,7 @@ def __init__( # validate model self._validate() - + @vmap def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mask=None): """ @@ -334,7 +332,9 @@ def infer_policies(self, qs: List): Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. """ - latest_belief = jtu.tree_map(lambda x: x[-1], qs) # only get the posterior belief held at the current timepoint + latest_belief = jtu.tree_map( + lambda x: x[-1], qs + ) # only get the posterior belief held at the current timepoint q_pi, G = control.update_posterior_policies_inductive( self.policies, latest_belief, @@ -358,10 +358,10 @@ def infer_policies(self, qs: List): return q_pi, G @vmap - def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1., lr_pB=1., **kwargs): + def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1.0, lr_pB=1.0, **kwargs): agent = self beliefs_B = beliefs_A if beliefs_B is None else beliefs_B - if self.inference_algo == 'ovf': + if self.inference_algo == "ovf": smoothed_marginals_and_joints = inference.smoothing_ovf(beliefs_A, self.B, actions) marginal_beliefs = smoothed_marginals_and_joints[0] joint_beliefs = smoothed_marginals_and_joints[1] @@ -382,19 +382,15 @@ def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1 onehot_obs=self.onehot_obs, lr=lr_pA, ) - + agent = tree_at(lambda x: (x.A, x.pA), agent, (E_qA, qA)) - + if self.learn_B: assert beliefs_B[0].shape[0] == actions.shape[0] + 1 qB, E_qB = learning.update_state_transition_dirichlet( - self.pB, - joint_beliefs, - actions, - num_controls=self.num_controls, - lr=lr_pB + self.pB, joint_beliefs, actions, num_controls=self.num_controls, lr=lr_pB ) - + # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece if self.use_inductive and self.H is not None: I_updated = control.generate_I_matrix(self.H, E_qB, self.inductive_threshold, self.inductive_depth) @@ -433,7 +429,7 @@ def sample_action(self, q_pi: Array, rng_key=None): action = control.sample_policy( q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key ) - + return action @vmap @@ -468,7 +464,7 @@ def decode_multi_actions(self, action): """Decode flattened actions to multiple actions""" if self.action_maps is None: return action - + action_multi = jnp.zeros((self.batch_size, len(self.num_controls_multi))).astype(action.dtype) for f, action_map in enumerate(self.action_maps): if action_map["multi_dependency"] == []: @@ -477,22 +473,24 @@ def decode_multi_actions(self, action): action_multi_f = utils.index_to_combination(action[..., f], action_map["multi_dims"]) action_multi = action_multi.at[..., action_map["multi_dependency"]].set(action_multi_f) return action_multi - + def encode_multi_actions(self, action_multi): """Encode multiple actions to flattened actions""" if self.action_maps is None: return action_multi - + action = jnp.zeros((self.batch_size, len(self.num_controls))).astype(action_multi.dtype) for f, action_map in enumerate(self.action_maps): if action_map["multi_dependency"] == []: action = action.at[..., f].set(jnp.zeros_like(action_multi[..., 0])) continue - - action_f = utils.get_combination_index(action_multi[..., action_map["multi_dependency"]], action_map["multi_dims"]) + + action_f = utils.get_combination_index( + action_multi[..., action_map["multi_dependency"]], action_map["multi_dims"] + ) action = action.at[..., f].set(action_f) return action - + def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_dependencies, A, B): if A_dependencies is not None: A_dependencies = A_dependencies @@ -507,7 +505,7 @@ def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_depen _, B_dependencies = get_dependencies(A, B) else: B_dependencies = [[f] for f in range(self.num_factors)] - + """TODO: check B action shape""" if B_action_dependencies is not None: B_action_dependencies = B_action_dependencies @@ -517,36 +515,45 @@ def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_depen def _flatten_B_action_dims(self, B, B_action_dependencies): assert hasattr(B[0], "shape"), "Elements of B must be tensors and have attribute shape" - action_maps = [] # mapping from multi action dependencies to flat action dependencies for each B + action_maps = [] # mapping from multi action dependencies to flat action dependencies for each B B_flat = [] for i, (B_f, action_dependency) in enumerate(zip(B, B_action_dependencies)): if action_dependency == []: B_flat.append(jnp.expand_dims(B_f, axis=-1)) - action_maps.append({"multi_dependency": [], "multi_dims": [], "flat_dependency": [i], "flat_dims": [1]}) + action_maps.append( + {"multi_dependency": [], "multi_dims": [], "flat_dependency": [i], "flat_dims": [1]} + ) continue dims = [self.num_controls_multi[d] for d in action_dependency] - target_shape = list(B_f.shape)[:-len(action_dependency)] + [pymath.prod(dims)] + target_shape = list(B_f.shape)[: -len(action_dependency)] + [pymath.prod(dims)] B_flat.append(B_f.reshape(target_shape)) - action_maps.append({"multi_dependency": action_dependency, "multi_dims": dims, "flat_dependency": [i], "flat_dims": [pymath.prod(dims)]}) + action_maps.append( + { + "multi_dependency": action_dependency, + "multi_dims": dims, + "flat_dependency": [i], + "flat_dims": [pymath.prod(dims)], + } + ) return B_flat, action_maps - + def _construct_flattend_policies(self, policies, action_maps): policies_flat = [] - for action_map in action_maps: + for action_map in action_maps: if action_map["multi_dependency"] == []: policies_flat.append(jnp.zeros_like(policies[..., 0])) continue policies_flat.append( utils.get_combination_index( - policies[..., action_map["multi_dependency"]], + policies[..., action_map["multi_dependency"]], action_map["multi_dims"], ) ) policies_flat = jnp.stack(policies_flat, axis=-1) return policies_flat - + def _get_default_params(self): method = self.inference_algo default_params = None From 2edabf67f2d0b285237ff9fb2260c5fee6027b4f Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Fri, 14 Jun 2024 15:10:41 +0200 Subject: [PATCH 124/196] benchmarking notebook --- .../inference_methods_comparison.ipynb | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/examples/inference_and_learning/inference_methods_comparison.ipynb b/examples/inference_and_learning/inference_methods_comparison.ipynb index 4c51f20c..c2876651 100644 --- a/examples/inference_and_learning/inference_methods_comparison.ipynb +++ b/examples/inference_and_learning/inference_methods_comparison.ipynb @@ -63,6 +63,23 @@ "E = jnp.ones((n_batch, 1))\n" ] }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 (2, 2, 3, 2)\n" + ] + } + ], + "source": [ + "print(len(A), A[0].shape)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -72,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -99,7 +116,10 @@ " inference_algo=\"ovf\",\n", " num_iter=16,\n", " learn_A=False,\n", - " learn_B=False)\n" + " learn_B=False,\n", + " apply_batch=False\n", + "\n", + ")\n" ] }, { @@ -118,7 +138,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -135,7 +155,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -146,7 +166,7 @@ " first_obs = jtu.tree_map(lambda x: jnp.moveaxis(x[:t+1], 0, 1), obs)\n", " beliefs = agents.infer_states(first_obs, past_actions=None, empirical_prior=prior, qs_hist=qs_hist)\n", " actions = jnp.broadcast_to(agents.policies[0, 0], (2, 2))\n", - " prior, qs_hist = agents.update_empirical_prior(actions, beliefs)\n", + " prior, qs_hist = agents.infer_empirical_prior(actions, beliefs)\n", " action_hist.append(actions)\n", "\n", "beliefs = jtu.tree_map(lambda x, y: jnp.concatenate([x[:, None], y], 1), agents.D, beliefs)\n", @@ -156,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -413,7 +433,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.11.7" } }, "nbformat": 4, From 37b253d01ca267c9297592de0f258ba34e34162f Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Mon, 17 Jun 2024 13:48:33 +0200 Subject: [PATCH 125/196] fix multimethod matching --- pymdp/jax/maths.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pymdp/jax/maths.py b/pymdp/jax/maths.py index c4a40a01..983f3ca7 100644 --- a/pymdp/jax/maths.py +++ b/pymdp/jax/maths.py @@ -5,7 +5,7 @@ from jax import tree_util, nn, jit from opt_einsum import contract from multimethod import multimethod -from jaxtyping import Array +from jaxtyping import ArrayLike from jax.experimental import sparse from jax.experimental.sparse._base import JAXSparse @@ -18,7 +18,7 @@ def log_stable(x): @multimethod @partial(jit, static_argnames=["keep_dims"]) -def factor_dot(M: Array, xs: List[Array], keep_dims: Optional[Tuple[int]] = None): +def factor_dot(M: ArrayLike, xs: list[ArrayLike], keep_dims: Optional[tuple[int]] = None): """Dot product of a multidimensional array with `x`. Parameters ---------- From 787fb005a3bc7b62de4cc814376644ed1646b1d3 Mon Sep 17 00:00:00 2001 From: Ozan Catal Date: Tue, 18 Jun 2024 09:13:14 +0200 Subject: [PATCH 126/196] change array->arraylike in all type signatures --- pymdp/jax/maths.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pymdp/jax/maths.py b/pymdp/jax/maths.py index 983f3ca7..40d05334 100644 --- a/pymdp/jax/maths.py +++ b/pymdp/jax/maths.py @@ -36,7 +36,7 @@ def factor_dot(M: ArrayLike, xs: list[ArrayLike], keep_dims: Optional[tuple[int] @multimethod -def factor_dot(M: JAXSparse, xs: List[Array], keep_dims: Optional[Tuple[int]] = None): +def factor_dot(M: JAXSparse, xs: List[ArrayLike], keep_dims: Optional[Tuple[int]] = None): d = len(keep_dims) if keep_dims is not None else 0 assert M.ndim == len(xs) + d keep_dims = () if keep_dims is None else keep_dims @@ -45,7 +45,7 @@ def factor_dot(M: JAXSparse, xs: List[Array], keep_dims: Optional[Tuple[int]] = def spm_dot_sparse( - X: JAXSparse, x: List[Array], dims: Optional[List[Tuple[int]]], keep_dims: Optional[List[Tuple[int]]] + X: JAXSparse, x: List[ArrayLike], dims: Optional[List[Tuple[int]]], keep_dims: Optional[List[Tuple[int]]] ): if dims is None: dims = (jnp.arange(0, len(x)) + X.ndim - len(x)).astype(int) From d21d8b0e360090bfd3b531511475b8316b221664 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Fri, 21 Jun 2024 18:28:49 +0200 Subject: [PATCH 127/196] unit tests for learning + B_dependencies in update_state_transition_dirichlet --- pymdp/jax/learning.py | 573 ++++++++++++++++++++------------------ test/test_learning_jax.py | 357 +++++++++++++++++++++--- 2 files changed, 610 insertions(+), 320 deletions(-) diff --git a/pymdp/jax/learning.py b/pymdp/jax/learning.py index c075aab6..bf93ad6c 100644 --- a/pymdp/jax/learning.py +++ b/pymdp/jax/learning.py @@ -2,14 +2,13 @@ # -*- coding: utf-8 -*- # pylint: disable=no-member -import numpy as np -from .maths import multidimensional_outer +from .maths import multidimensional_outer, dirichlet_expected_value from jax.tree_util import tree_map -from jax import vmap -import jax.numpy as jnp +from jax import vmap, nn + def update_obs_likelihood_dirichlet_m(pA_m, obs_m, qs, dependencies_m, lr=1.0): - """ JAX version of ``pymdp.learning.update_obs_likelihood_dirichlet_m`` """ + """JAX version of ``pymdp.learning.update_obs_likelihood_dirichlet_m``""" # pA_m - parameters of the dirichlet from the prior # pA_m.shape = (no_m x num_states[k] x num_states[j] x ... x num_states[n]) where (k, j, n) are indices of the hidden state factors that are parents of modality m @@ -26,18 +25,30 @@ def update_obs_likelihood_dirichlet_m(pA_m, obs_m, qs, dependencies_m, lr=1.0): dfda = vmap(multidimensional_outer)([obs_m] + relevant_factors).sum(axis=0) - return pA_m + lr * dfda - -def update_obs_likelihood_dirichlet(pA, obs, qs, A_dependencies, lr=1.0): - """ JAX version of ``pymdp.learning.update_obs_likelihood_dirichlet`` """ + new_pA_m = pA_m + lr * dfda + + return new_pA_m, dirichlet_expected_value(new_pA_m) + + +def update_obs_likelihood_dirichlet(pA, obs, qs, *, A_dependencies, onehot_obs, num_obs, lr): + """JAX version of ``pymdp.learning.update_obs_likelihood_dirichlet``""" + + obs_m = lambda o, dim: nn.one_hot(o, dim) if not onehot_obs else o + update_A_fn = lambda pA_m, o_m, dim, dependencies_m: update_obs_likelihood_dirichlet_m( + pA_m, obs_m(o_m, dim), qs, dependencies_m, lr=lr + ) + result = tree_map(update_A_fn, pA, obs, num_obs, A_dependencies) + qA = [] + E_qA = [] + for r in result: + qA.append(r[0]) + E_qA.append(r[1]) - update_A_fn = lambda pA_m, obs_m, dependencies_m: update_obs_likelihood_dirichlet_m(pA_m, obs_m, qs, dependencies_m, lr=lr) - qA = tree_map(update_A_fn, pA, obs, A_dependencies) + return qA, E_qA - return qA -def update_state_likelihood_dirichlet_f(pB_f, actions_f, current_qs, qs_seq, dependencies_f, lr=1.0): - """ JAX version of ``pymdp.learning.update_state_likelihood_dirichlet_f`` """ +def update_state_transition_dirichlet_f(pB_f, actions_f, joint_qs_f, lr=1.0): + """JAX version of ``pymdp.learning.update_state_likelihood_dirichlet_f``""" # pB_f - parameters of the dirichlet from the prior # pB_f.shape = (num_states[f] x num_states[f] x num_actions[f]) where f is the index of the hidden state factor @@ -50,265 +61,279 @@ def update_state_likelihood_dirichlet_f(pB_f, actions_f, current_qs, qs_seq, dep # \otimes is a multidimensional outer product, not just a outer product of two vectors # \kappa is an optional learning rate - past_qs = tree_map(lambda f_idx: qs_seq[f_idx][:-1], dependencies_f) - dfdb = vmap(multidimensional_outer)([current_qs[1:]] + past_qs + [actions_f]).sum(axis=0) + dfdb = vmap(multidimensional_outer)(joint_qs_f + [actions_f]).sum(axis=0) qB_f = pB_f + lr * dfdb - return qB_f - -def update_state_likelihood_dirichlet(pB, beliefs, actions_onehot, B_dependencies, lr=1.0): - - update_B_f_fn = lambda pB_f, action_f, qs_f, dependencies_f: update_state_likelihood_dirichlet_f(pB_f, action_f, qs_f, beliefs, dependencies_f, lr=lr) - qB = tree_map(update_B_f_fn, pB, actions_onehot, beliefs, B_dependencies) - - return qB - - -def update_state_prior_dirichlet( - pD, qs, lr=1.0, factors="all" -): - """ - Update Dirichlet parameters of the initial hidden state distribution - (prior beliefs about hidden states at the beginning of the inference window). - - Parameters - ----------- - pD: ``numpy.ndarray`` of dtype object - Prior Dirichlet parameters over initial hidden state prior (same shape as ``qs``) - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint - lr: float, default ``1.0`` - Learning rate, scale of the Dirichlet pseudo-count update. - factors: ``list``, default "all" - Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include - in learning. Defaults to "all", meaning that factor-specific sub-vectors of ``pD`` - are all updated using the corresponding hidden state distributions. - - Returns - ----------- - qD: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs``), after having updated it with state beliefs. - """ - - num_factors = len(pD) - - qD = copy.deepcopy(pD) - - if factors == "all": - factors = list(range(num_factors)) - - for factor in factors: - idx = pD[factor] > 0 # only update those state level indices that have some prior probability - qD[factor][idx] += (lr * qs[factor][idx]) - - return qD - -def _prune_prior(prior, levels_to_remove, dirichlet = False): - """ - Function for pruning a prior Categorical distribution (e.g. C, D) - - Parameters - ----------- - prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - The vector(s) containing the priors over hidden states of a generative model, e.g. the prior over hidden states (``D`` vector). - levels_to_remove: ``list`` of ``int``, ``list`` of ``list`` - A ``list`` of the levels (indices of the support) to remove. If the prior in question has multiple hidden state factors / multiple observation modalities, - then this will be a ``list`` of ``list``, where each sub-list within ``levels_to_remove`` will contain the levels to prune for a particular hidden state factor or modality - dirichlet: ``Bool``, default ``False`` - A Boolean flag indicating whether the input vector(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. - @TODO: Instead, the dirichlet parameters from the pruned levels should somehow be re-distributed among the remaining levels - - Returns - ----------- - reduced_prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - The prior vector(s), after pruning, that lacks the hidden state or modality levels indexed by ``levels_to_remove`` - """ - - if utils.is_obj_array(prior): # in case of multiple hidden state factors - - assert all([type(levels) == list for levels in levels_to_remove]) - - num_factors = len(prior) - - reduced_prior = utils.obj_array(num_factors) - - factors_to_remove = [] - for f, s_i in enumerate(prior): # loop over factors (or modalities) - - ns = len(s_i) - levels_to_keep = list(set(range(ns)) - set(levels_to_remove[f])) - if len(levels_to_keep) == 0: - print(f'Warning... removing ALL levels of factor {f} - i.e. the whole hidden state factor is being removed\n') - factors_to_remove.append(f) - else: - if not dirichlet: - reduced_prior[f] = utils.norm_dist(s_i[levels_to_keep]) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) - - - if len(factors_to_remove) > 0: - factors_to_keep = list(set(range(num_factors)) - set(factors_to_remove)) - reduced_prior = reduced_prior[factors_to_keep] - - else: # in case of one hidden state factor - - assert all([type(level_i) == int for level_i in levels_to_remove]) - - ns = len(prior) - levels_to_keep = list(set(range(ns)) - set(levels_to_remove)) - - if not dirichlet: - reduced_prior = utils.norm_dist(prior[levels_to_keep]) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) - - return reduced_prior - -def _prune_A(A, obs_levels_to_prune, state_levels_to_prune, dirichlet = False): - """ - Function for pruning a observation likelihood model (with potentially multiple hidden state factors) - :meta private: - Parameters - ----------- - A: ``numpy.ndarray`` with ``ndim >= 2``, or ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - obs_levels_to_prune: ``list`` of int or ``list`` of ``list``: - A ``list`` of the observation levels to remove. If the likelihood in question has multiple observation modalities, - then this will be a ``list`` of ``list``, where each sub-list within ``obs_levels_to_prune`` will contain the observation levels - to remove for a particular observation modality - state_levels_to_prune: ``list`` of ``int`` - A ``list`` of the hidden state levels to remove (this will be the same across modalities) - dirichlet: ``Bool``, default ``False`` - A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. - @TODO: Instead, the dirichlet parameters from the pruned columns should somehow be re-distributed among the remaining columns - - Returns - ----------- - reduced_A: ``numpy.ndarray`` with ndim >= 2, or ``numpy.ndarray ``of dtype object - The observation model, after pruning, which lacks the observation or hidden state levels given by the arguments ``obs_levels_to_prune`` and ``state_levels_to_prune`` - """ - - columns_to_keep_list = [] - if utils.is_obj_array(A): - num_states = A[0].shape[1:] - for f, ns in enumerate(num_states): - indices_f = np.array( list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) - columns_to_keep_list.append(indices_f) - else: - num_states = A.shape[1] - indices = np.array( list(set(range(num_states)) - set(state_levels_to_prune)), dtype = np.intp ) - columns_to_keep_list.append(indices) - - if utils.is_obj_array(A): # in case of multiple observation modality - - assert all([type(o_m_levels) == list for o_m_levels in obs_levels_to_prune]) - - num_modalities = len(A) - - reduced_A = utils.obj_array(num_modalities) - - for m, A_i in enumerate(A): # loop over modalities - - no = A_i.shape[0] - rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune[m])), dtype = np.intp) - - reduced_A[m] = A_i[np.ix_(rows_to_keep, *columns_to_keep_list)] - if not dirichlet: - reduced_A = utils.norm_dist_obj_arr(reduced_A) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - else: # in case of one observation modality - - assert all([type(o_levels_i) == int for o_levels_i in obs_levels_to_prune]) - - no = A.shape[0] - rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune)), dtype = np.intp) - - reduced_A = A[np.ix_(rows_to_keep, *columns_to_keep_list)] - - if not dirichlet: - reduced_A = utils.norm_dist(reduced_A) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - - return reduced_A - -def _prune_B(B, state_levels_to_prune, action_levels_to_prune, dirichlet = False): - """ - Function for pruning a transition likelihood model (with potentially multiple hidden state factors) - - Parameters - ----------- - B: ``numpy.ndarray`` of ``ndim == 3`` or ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at `t` to hidden states at `t+1`, given some control state `u`. - Each element B[f] of this object array stores a 3-D tensor for hidden state factor `f`, whose entries `B[f][s, v, u] store the probability - of hidden state level `s` at the current time, given hidden state level `v` and action `u` at the previous time. - state_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` - A ``list`` of the state levels to remove. If the likelihood in question has multiple hidden state factors, - then this will be a ``list`` of ``list``, where each sub-list within ``state_levels_to_prune`` will contain the state levels - to remove for a particular hidden state factor - action_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` - A ``list`` of the control state or action levels to remove. If the likelihood in question has multiple control state factors, - then this will be a ``list`` of ``list``, where each sub-list within ``action_levels_to_prune`` will contain the control state levels - to remove for a particular control state factor - dirichlet: ``Bool``, default ``False`` - A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. - @TODO: Instead, the dirichlet parameters from the pruned rows/columns should somehow be re-distributed among the remaining rows/columns - - Returns - ----------- - reduced_B: ``numpy.ndarray`` of `ndim == 3` or ``numpy.ndarray`` of dtype object - The transition model, after pruning, which lacks the hidden state levels/action levels given by the arguments ``state_levels_to_prune`` and ``action_levels_to_prune`` - """ - - slices_to_keep_list = [] - - if utils.is_obj_array(B): - - num_controls = [B_arr.shape[2] for _, B_arr in enumerate(B)] - - for c, nc in enumerate(num_controls): - indices_c = np.array( list(set(range(nc)) - set(action_levels_to_prune[c])), dtype = np.intp) - slices_to_keep_list.append(indices_c) - else: - num_controls = B.shape[2] - slices_to_keep = np.array( list(set(range(num_controls)) - set(action_levels_to_prune)), dtype = np.intp ) - - if utils.is_obj_array(B): # in case of multiple hidden state factors - - assert all([type(ns_f_levels) == list for ns_f_levels in state_levels_to_prune]) - - num_factors = len(B) - - reduced_B = utils.obj_array(num_factors) - - for f, B_f in enumerate(B): # loop over modalities - - ns = B_f.shape[0] - states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) - - reduced_B[f] = B_f[np.ix_(states_to_keep, states_to_keep, slices_to_keep_list[f])] - - if not dirichlet: - reduced_B = utils.norm_dist_obj_arr(reduced_B) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - - else: # in case of one hidden state factor - - assert all([type(state_level_i) == int for state_level_i in state_levels_to_prune]) - - ns = B.shape[0] - states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune)), dtype = np.intp) - - reduced_B = B[np.ix_(states_to_keep, states_to_keep, slices_to_keep)] - - if not dirichlet: - reduced_B = utils.norm_dist(reduced_B) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - - return reduced_B + return qB_f, dirichlet_expected_value(qB_f) + + +def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_controls, lr, B_dependencies=None): + + nf = len(pB) + if B_dependencies is None: + B_dependencies = list(range(nf)) + + actions_onehot_fn = lambda f, dim: nn.one_hot(actions[..., f], dim, axis=-1) + + update_B_f_fn = lambda pB_f, joint_qs_f, f, na: update_state_transition_dirichlet_f( + pB_f, actions_onehot_fn(f, na), joint_qs_f, lr=lr + ) + result = tree_map(update_B_f_fn, pB, joint_beliefs, B_dependencies, num_controls) + + qB = [] + E_qB = [] + for r in result: + qB.append(r[0]) + E_qB.append(r[1]) + + return qB, E_qB + + +# def update_state_prior_dirichlet( +# pD, qs, lr=1.0, factors="all" +# ): +# """ +# Update Dirichlet parameters of the initial hidden state distribution +# (prior beliefs about hidden states at the beginning of the inference window). + +# Parameters +# ----------- +# pD: ``numpy.ndarray`` of dtype object +# Prior Dirichlet parameters over initial hidden state prior (same shape as ``qs``) +# qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object +# Marginal posterior beliefs over hidden states at current timepoint +# lr: float, default ``1.0`` +# Learning rate, scale of the Dirichlet pseudo-count update. +# factors: ``list``, default "all" +# Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include +# in learning. Defaults to "all", meaning that factor-specific sub-vectors of ``pD`` +# are all updated using the corresponding hidden state distributions. + +# Returns +# ----------- +# qD: ``numpy.ndarray`` of dtype object +# Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs``), after having updated it with state beliefs. +# """ + +# num_factors = len(pD) + +# qD = copy.deepcopy(pD) + +# if factors == "all": +# factors = list(range(num_factors)) + +# for factor in factors: +# idx = pD[factor] > 0 # only update those state level indices that have some prior probability +# qD[factor][idx] += (lr * qs[factor][idx]) + +# return qD + +# def _prune_prior(prior, levels_to_remove, dirichlet = False): +# """ +# Function for pruning a prior Categorical distribution (e.g. C, D) + +# Parameters +# ----------- +# prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object +# The vector(s) containing the priors over hidden states of a generative model, e.g. the prior over hidden states (``D`` vector). +# levels_to_remove: ``list`` of ``int``, ``list`` of ``list`` +# A ``list`` of the levels (indices of the support) to remove. If the prior in question has multiple hidden state factors / multiple observation modalities, +# then this will be a ``list`` of ``list``, where each sub-list within ``levels_to_remove`` will contain the levels to prune for a particular hidden state factor or modality +# dirichlet: ``Bool``, default ``False`` +# A Boolean flag indicating whether the input vector(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. +# @TODO: Instead, the dirichlet parameters from the pruned levels should somehow be re-distributed among the remaining levels + +# Returns +# ----------- +# reduced_prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object +# The prior vector(s), after pruning, that lacks the hidden state or modality levels indexed by ``levels_to_remove`` +# """ + +# if utils.is_obj_array(prior): # in case of multiple hidden state factors + +# assert all([type(levels) == list for levels in levels_to_remove]) + +# num_factors = len(prior) + +# reduced_prior = utils.obj_array(num_factors) + +# factors_to_remove = [] +# for f, s_i in enumerate(prior): # loop over factors (or modalities) + +# ns = len(s_i) +# levels_to_keep = list(set(range(ns)) - set(levels_to_remove[f])) +# if len(levels_to_keep) == 0: +# print(f'Warning... removing ALL levels of factor {f} - i.e. the whole hidden state factor is being removed\n') +# factors_to_remove.append(f) +# else: +# if not dirichlet: +# reduced_prior[f] = utils.norm_dist(s_i[levels_to_keep]) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) + + +# if len(factors_to_remove) > 0: +# factors_to_keep = list(set(range(num_factors)) - set(factors_to_remove)) +# reduced_prior = reduced_prior[factors_to_keep] + +# else: # in case of one hidden state factor + +# assert all([type(level_i) == int for level_i in levels_to_remove]) + +# ns = len(prior) +# levels_to_keep = list(set(range(ns)) - set(levels_to_remove)) + +# if not dirichlet: +# reduced_prior = utils.norm_dist(prior[levels_to_keep]) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) + +# return reduced_prior + +# def _prune_A(A, obs_levels_to_prune, state_levels_to_prune, dirichlet = False): +# """ +# Function for pruning a observation likelihood model (with potentially multiple hidden state factors) +# :meta private: +# Parameters +# ----------- +# A: ``numpy.ndarray`` with ``ndim >= 2``, or ``numpy.ndarray`` of dtype object +# Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of +# stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store +# the probability of observation level ``i`` given hidden state levels ``j, k, ...`` +# obs_levels_to_prune: ``list`` of int or ``list`` of ``list``: +# A ``list`` of the observation levels to remove. If the likelihood in question has multiple observation modalities, +# then this will be a ``list`` of ``list``, where each sub-list within ``obs_levels_to_prune`` will contain the observation levels +# to remove for a particular observation modality +# state_levels_to_prune: ``list`` of ``int`` +# A ``list`` of the hidden state levels to remove (this will be the same across modalities) +# dirichlet: ``Bool``, default ``False`` +# A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. +# @TODO: Instead, the dirichlet parameters from the pruned columns should somehow be re-distributed among the remaining columns + +# Returns +# ----------- +# reduced_A: ``numpy.ndarray`` with ndim >= 2, or ``numpy.ndarray ``of dtype object +# The observation model, after pruning, which lacks the observation or hidden state levels given by the arguments ``obs_levels_to_prune`` and ``state_levels_to_prune`` +# """ + +# columns_to_keep_list = [] +# if utils.is_obj_array(A): +# num_states = A[0].shape[1:] +# for f, ns in enumerate(num_states): +# indices_f = np.array( list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) +# columns_to_keep_list.append(indices_f) +# else: +# num_states = A.shape[1] +# indices = np.array( list(set(range(num_states)) - set(state_levels_to_prune)), dtype = np.intp ) +# columns_to_keep_list.append(indices) + +# if utils.is_obj_array(A): # in case of multiple observation modality + +# assert all([type(o_m_levels) == list for o_m_levels in obs_levels_to_prune]) + +# num_modalities = len(A) + +# reduced_A = utils.obj_array(num_modalities) + +# for m, A_i in enumerate(A): # loop over modalities + +# no = A_i.shape[0] +# rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune[m])), dtype = np.intp) + +# reduced_A[m] = A_i[np.ix_(rows_to_keep, *columns_to_keep_list)] +# if not dirichlet: +# reduced_A = utils.norm_dist_obj_arr(reduced_A) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) +# else: # in case of one observation modality + +# assert all([type(o_levels_i) == int for o_levels_i in obs_levels_to_prune]) + +# no = A.shape[0] +# rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune)), dtype = np.intp) + +# reduced_A = A[np.ix_(rows_to_keep, *columns_to_keep_list)] + +# if not dirichlet: +# reduced_A = utils.norm_dist(reduced_A) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) + +# return reduced_A + +# def _prune_B(B, state_levels_to_prune, action_levels_to_prune, dirichlet = False): +# """ +# Function for pruning a transition likelihood model (with potentially multiple hidden state factors) + +# Parameters +# ----------- +# B: ``numpy.ndarray`` of ``ndim == 3`` or ``numpy.ndarray`` of dtype object +# Dynamics likelihood mapping or 'transition model', mapping from hidden states at `t` to hidden states at `t+1`, given some control state `u`. +# Each element B[f] of this object array stores a 3-D tensor for hidden state factor `f`, whose entries `B[f][s, v, u] store the probability +# of hidden state level `s` at the current time, given hidden state level `v` and action `u` at the previous time. +# state_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` +# A ``list`` of the state levels to remove. If the likelihood in question has multiple hidden state factors, +# then this will be a ``list`` of ``list``, where each sub-list within ``state_levels_to_prune`` will contain the state levels +# to remove for a particular hidden state factor +# action_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` +# A ``list`` of the control state or action levels to remove. If the likelihood in question has multiple control state factors, +# then this will be a ``list`` of ``list``, where each sub-list within ``action_levels_to_prune`` will contain the control state levels +# to remove for a particular control state factor +# dirichlet: ``Bool``, default ``False`` +# A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. +# @TODO: Instead, the dirichlet parameters from the pruned rows/columns should somehow be re-distributed among the remaining rows/columns + +# Returns +# ----------- +# reduced_B: ``numpy.ndarray`` of `ndim == 3` or ``numpy.ndarray`` of dtype object +# The transition model, after pruning, which lacks the hidden state levels/action levels given by the arguments ``state_levels_to_prune`` and ``action_levels_to_prune`` +# """ + +# slices_to_keep_list = [] + +# if utils.is_obj_array(B): + +# num_controls = [B_arr.shape[2] for _, B_arr in enumerate(B)] + +# for c, nc in enumerate(num_controls): +# indices_c = np.array( list(set(range(nc)) - set(action_levels_to_prune[c])), dtype = np.intp) +# slices_to_keep_list.append(indices_c) +# else: +# num_controls = B.shape[2] +# slices_to_keep = np.array( list(set(range(num_controls)) - set(action_levels_to_prune)), dtype = np.intp ) + +# if utils.is_obj_array(B): # in case of multiple hidden state factors + +# assert all([type(ns_f_levels) == list for ns_f_levels in state_levels_to_prune]) + +# num_factors = len(B) + +# reduced_B = utils.obj_array(num_factors) + +# for f, B_f in enumerate(B): # loop over modalities + +# ns = B_f.shape[0] +# states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) + +# reduced_B[f] = B_f[np.ix_(states_to_keep, states_to_keep, slices_to_keep_list[f])] + +# if not dirichlet: +# reduced_B = utils.norm_dist_obj_arr(reduced_B) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) + +# else: # in case of one hidden state factor + +# assert all([type(state_level_i) == int for state_level_i in state_levels_to_prune]) + +# ns = B.shape[0] +# states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune)), dtype = np.intp) + +# reduced_B = B[np.ix_(states_to_keep, states_to_keep, slices_to_keep)] + +# if not dirichlet: +# reduced_B = utils.norm_dist(reduced_B) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) + +# return reduced_B diff --git a/test/test_learning_jax.py b/test/test_learning_jax.py index cdb3b86c..f67cc1cc 100644 --- a/test/test_learning_jax.py +++ b/test/test_learning_jax.py @@ -11,47 +11,48 @@ import numpy as np import jax.numpy as jnp import jax.tree_util as jtu +from jax import nn from pymdp.learning import update_obs_likelihood_dirichlet as update_pA_numpy from pymdp.learning import update_obs_likelihood_dirichlet_factorized as update_pA_numpy_factorized -from pymdp.jax.learning import update_obs_likelihood_dirichlet as update_pA_jax from pymdp import utils, maths +from pymdp.learning import update_state_likelihood_dirichlet as update_pB_numpy +from pymdp.learning import update_state_likelihood_dirichlet_interactions as update_pB_interactions_numpy + + +# Temporary to make the mapping +from pymdp.jax.learning import update_state_likelihood_dirichlet as update_pB_jax_old + +from pymdp.jax.learning_dimi import update_obs_likelihood_dirichlet as update_pA_jax +from pymdp.jax.learning_dimi import update_state_transition_dirichlet as update_pB_jax + + class TestLearningJax(unittest.TestCase): def test_update_observation_likelihood_fullyconnected(self): """ - Testing JAX-ified version of updating Dirichlet posterior over observation likelihood parameters (qA is posterior, pA is prior, and A is expectation - of likelihood wrt to current posterior over A, i.e. $A = E_{Q(A)}[P(o|s,A)]$. + Testing JAX-ified version of updating Dirichlet posterior over observation likelihood parameters (qA is + posterior, pA is prior, and A is expectation of likelihood wrt to current posterior over A, i.e. + $A = E_{Q(A)}[P(o|s,A)]$. - This is the so-called 'fully-connected' version where all hidden state factors drive each modality (i.e. A_dependencies is a list of lists of hidden state factors) + This is the so-called 'fully-connected' version where all hidden state factors drive each modality + (i.e. A_dependencies is a list of lists of hidden state factors) """ - num_obs_list = [ [5], - [10, 3, 2], - [2, 4, 4, 2], - [10] - ] - num_states_list = [ [2,3,4], - [2], - [4,5], - [3] - ] + num_obs_list = [[5], [10, 3, 2], [2, 4, 4, 2], [10]] + num_states_list = [[2, 3, 4], [2], [4, 5], [3]] - A_dependencies_list = [ [ [0,1,2] ], - [ [0], [0], [0] ], - [ [0,1], [0,1], [0,1], [0,1] ], - [ [0] ] - ] + A_dependencies_list = [[[0, 1, 2]], [[0], [0], [0]], [[0, 1], [0, 1], [0, 1], [0, 1]], [[0]]] - for (num_obs, num_states, A_dependencies) in zip(num_obs_list, num_states_list, A_dependencies_list): + for num_obs, num_states, A_dependencies in zip(num_obs_list, num_states_list, A_dependencies_list): # create numpy arrays to test numpy version of learning # create A matrix initialization (expected initial value of P(o|s, A)) and prior over A (pA) A_np = utils.random_A_matrix(num_obs, num_states) - pA_np = utils.dirichlet_like(A_np, scale = 3.0) + pA_np = utils.dirichlet_like(A_np, scale=3.0) - # create random observations + # create random observations obs_np = utils.obj_array(len(num_obs)) for m, obs_dim in enumerate(num_obs): obs_np[m] = utils.onehot(np.random.randint(obs_dim), obs_dim) @@ -75,37 +76,27 @@ def test_update_observation_likelihood_fullyconnected(self): def test_update_observation_likelihood_factorized(self): """ - Testing JAX-ified version of updating Dirichlet posterior over observation likelihood parameters (qA is posterior, pA is prior, and A is expectation - of likelihood wrt to current posterior over A, i.e. $A = E_{Q(A)}[P(o|s,A)]$. + Testing JAX-ified version of updating Dirichlet posterior over observation likelihood parameters (qA is + posterior, pA is prior, and A is expectation of likelihood wrt to current posterior over A, i.e. + $A = E_{Q(A)}[P(o|s,A)]$. - This is the factorized version where only some hidden state factors drive each modality (i.e. A_dependencies is a list of lists of hidden state factors) + This is the factorized version where only some hidden state factors drive each modality (i.e. A_dependencies is + a list of lists of hidden state factors) """ - num_obs_list = [ [5], - [10, 3, 2], - [2, 4, 4, 2], - [10] - ] - num_states_list = [ [2,3,4], - [2, 5, 2], - [4,5], - [3] - ] + num_obs_list = [[5], [10, 3, 2], [2, 4, 4, 2], [10]] + num_states_list = [[2, 3, 4], [2, 5, 2], [4, 5], [3]] - A_dependencies_list = [ [ [0,1] ], - [ [0, 1], [1], [1, 2] ], - [ [0,1], [0], [0,1], [1] ], - [ [0] ] - ] + A_dependencies_list = [[[0, 1]], [[0, 1], [1], [1, 2]], [[0, 1], [0], [0, 1], [1]], [[0]]] - for (num_obs, num_states, A_dependencies) in zip(num_obs_list, num_states_list, A_dependencies_list): + for num_obs, num_states, A_dependencies in zip(num_obs_list, num_states_list, A_dependencies_list): # create numpy arrays to test numpy version of learning # create A matrix initialization (expected initial value of P(o|s, A)) and prior over A (pA) A_np = utils.random_A_matrix(num_obs, num_states, A_factor_list=A_dependencies) - pA_np = utils.dirichlet_like(A_np, scale = 3.0) + pA_np = utils.dirichlet_like(A_np, scale=3.0) - # create random observations + # create random observations obs_np = utils.obj_array(len(num_obs)) for m, obs_dim in enumerate(num_obs): obs_np[m] = utils.onehot(np.random.randint(obs_dim), obs_dim) @@ -125,15 +116,289 @@ def test_update_observation_likelihood_factorized(self): qA_jax_test = update_pA_jax(pA_jax, obs_jax, qs_jax, A_dependencies, lr=l_rate) for modality, obs_dim in enumerate(num_obs): - self.assertTrue(np.allclose(qA_jax_test[modality],qA_np_test[modality])) + self.assertTrue(np.allclose(qA_jax_test[modality], qA_np_test[modality])) -if __name__ == "__main__": - unittest.main() + def test_update_state_likelihood_single_factor_no_actions(self): + """ + Testing the JAXified version of updating Dirichlet posterior over transition likelihood parameters. + qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the + current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)] + """ + + num_states = [3] + num_controls = [1] + + l_rate = 1.0 + + # Create random variables to run the update on + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + + B = utils.random_B_matrix(num_states, num_controls) + pB = utils.obj_array_ones([B_f.shape for B_f in B]) + action = np.array([np.random.randint(c_dim) for c_dim in num_controls]) + + pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors="all") + + pB_jax = [jnp.array(b) for b in pB] + B_deps = [[0]] + + # Add the batch dim + action_jax = jnp.array([action]) + + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + add batch dim + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = jnp.array([qs_prev[..., f].tolist()]) + belief_jax.append([q_f, q_prev_f]) + pB_updated_jax, _ = update_pB_jax( + pB_jax, belief_jax, action_jax, num_controls=num_controls, B_dependencies=B_deps, lr=l_rate + ) + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + + def test_update_state_likelihood_single_factor_with_actions(self): + """ + Testing the JAXified version of updating Dirichlet posterior over transition likelihood parameters. + qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the + current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)] + """ + + num_states = [3] + num_controls = [3] + + l_rate = 1.0 + + # Create random variables to run the update on + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + + B = utils.random_B_matrix(num_states, num_controls) + pB = utils.obj_array_ones([B_f.shape for B_f in B]) + action = np.array([np.random.randint(c_dim) for c_dim in num_controls]) + + pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors="all") + + # Add the batch dim + action_jax = jnp.array([action]) + + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + add batch dim + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = jnp.array([qs_prev[..., f].tolist()]) + belief_jax.append([q_f, q_prev_f]) + + pB_jax = [jnp.array(b) for b in pB] + + B_deps = [[i] for i, _ in enumerate(B)] + pB_updated_jax, _ = update_pB_jax( + pB_jax, belief_jax, action_jax, num_controls=num_controls, B_dependencies=B_deps, lr=l_rate + ) + + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + + def test_update_state_likelihood_multi_factor_all_factors_no_actions(self): + """ + Testing the JAXified version of updating Dirichlet posterior over transition likelihood parameters. + qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the + current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)]$ + """ + num_states = [3, 4] + num_controls = [1, 1] + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + l_rate = 1.0 + B = utils.random_B_matrix(num_states, num_controls) + pB = utils.obj_array_ones([B_f.shape for B_f in B]) + action = np.array([np.random.randint(c_dim) for c_dim in num_controls]) + pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors="all") + # Add the batch dim + action_jax = jnp.array([action]) + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + add batch dim + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = jnp.array([qs_prev[..., f].tolist()]) + belief_jax.append([q_f, q_prev_f]) + + # Also add the time and batch dimension + # action = jnp.expand_dims(jnp.array(action), 0) + pB_jax = [jnp.array(b) for b in pB] + + pB_updated_jax, _ = update_pB_jax( + pB_jax, belief_jax, action_jax, num_controls=num_controls, B_dependencies=None, lr=l_rate + ) + + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + + def test_update_state_likelihood_multi_factor_all_factors_with_actions(self): + """ + Testing the JAXified version of updating Dirichlet posterior over transition likelihood parameters. + qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the + current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)]$ + """ + num_states = [3, 4] + num_controls = [3, 5] + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + l_rate = 1.0 + + B = utils.random_B_matrix(num_states, num_controls) + pB = utils.obj_array_ones([B_f.shape for B_f in B]) + + action = np.array([np.random.randint(c_dim) for c_dim in num_controls]) + + pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors="all") + + # Add the batch dim + action_jax = jnp.array([action]) + + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + add batch dim + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = jnp.array([qs_prev[..., f].tolist()]) + belief_jax.append([q_f, q_prev_f]) + + pB_jax = [jnp.array(b) for b in pB] + + B_deps = [[i] for i, _ in enumerate(B)] + pB_updated_jax, _ = update_pB_jax( + pB_jax, belief_jax, action_jax, num_controls=num_controls, B_dependencies=B_deps, lr=l_rate + ) + + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + + def test_update_state_likelihood_multi_factor_some_factors_no_action(self): + """ + Testing the JAXified version of updating Dirichlet posterior over transition likelihood parameters. + qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the + current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)]$ + """ + np.random.seed(0) + + num_states = [3, 4, 2] + num_controls = [3, 5, 5] + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + l_rate = 1.0 + + B = utils.random_B_matrix(num_states, num_controls) + pB = utils.obj_array_ones([B_f.shape for B_f in B]) + + action = list(np.array([np.random.randint(c_dim) for c_dim in num_controls])) + + factors_to_update = np.random.choice(list(range(len(B))), replace=False, size=(2,)).tolist() + + pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors=factors_to_update) + + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + add batch dim + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = jnp.array([qs_prev[..., f].tolist()]) + belief_jax.append([q_f, q_prev_f]) + + pB_jax = [jnp.array(b) for b in pB] + + # Add the batch dim + action_jax = jnp.array([action]) + + # Selective update of factors is not implemented within the method, and could be performed like this: + pB_jax_update = [pB_jax[f] for f in factors_to_update] + belief_jax_update = [belief_jax[f] for f in factors_to_update] + action_jax_update = jnp.concatenate([action_jax[..., f : f + 1] for f in factors_to_update], axis=-1) + num_controls_update = [num_controls[f] for f in factors_to_update] + + pB_updated_jax_factors, _ = update_pB_jax( + pB_jax_update, + belief_jax_update, + action_jax_update, + num_controls=num_controls_update, + B_dependencies=None, + lr=l_rate, + ) + + pB_updated_jax = [] + for f, _ in enumerate(num_states): + if f in factors_to_update: + pB_updated_jax.append(pB_updated_jax_factors[factors_to_update.index(f)]) + else: + pB_updated_jax.append(pB_jax[f]) + + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + + def test_update_state_likelihood_with_interactions(self): + """ + Test for `learning.update_state_likelihood_dirichlet_factorized`, which is the learning function updating prior + Dirichlet parameters over the transition likelihood (pB) in the case that there are allowable interactions + between hidden state factors, i.e. the dynamics of factor `f` may depend on more than just its control factor + and its own state. + """ + + """ Test version with interactions """ + num_states = [3, 4, 5] + num_controls = [2, 1, 1] + B_factor_list = [[0, 1], [0, 1, 2], [1, 2]] + + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + + B = utils.random_B_matrix(num_states, num_controls, B_factor_list=B_factor_list) + pB = utils.dirichlet_like(B, scale=1.0) + l_rate = np.random.rand() # sample some positive learning rate + + action = np.array([np.random.randint(c_dim) for c_dim in num_controls]) + + pB_updated_numpy = update_pB_interactions_numpy( + pB, B, action, qs, qs_prev, B_factor_list, lr=l_rate, factors="all" + ) + + # Add the batch dim + action_jax = jnp.array([action]) + + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + add batch dim + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = jnp.array([qs_prev[..., f].tolist()]) + belief_jax.append([q_f, q_prev_f]) + + pB_jax = [jnp.array(b) for b in pB] + + pB_updated_jax, _ = update_pB_jax( + pB_jax, belief_jax, action_jax, B_dependencies=B_factor_list, lr=l_rate, num_controls=num_controls + ) + + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + + +if __name__ == "__main__": + TestLearningJax().test_update_state_likelihood_single_factor_no_actions() + TestLearningJax().test_update_state_likelihood_single_factor_with_actions() + TestLearningJax().test_update_state_likelihood_multi_factor_all_factors_no_actions() + TestLearningJax().test_update_state_likelihood_multi_factor_all_factors_with_actions() + TestLearningJax().test_update_state_likelihood_multi_factor_some_factors_no_action() + TestLearningJax().test_update_state_likelihood_with_interactions() + # unittest.main() From b7bbbf978de8423092a42abf5b1b7bedf009a854 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Sat, 22 Jun 2024 17:55:29 +0200 Subject: [PATCH 128/196] added learning from main + added docstring + unit tested jax implementation against numpy counterpart --- pymdp/jax/learning.py | 32 ++++++++++--- test/test_learning_jax.py | 94 ++++++++++++--------------------------- 2 files changed, 56 insertions(+), 70 deletions(-) diff --git a/pymdp/jax/learning.py b/pymdp/jax/learning.py index bf93ad6c..db1997a2 100644 --- a/pymdp/jax/learning.py +++ b/pymdp/jax/learning.py @@ -67,18 +67,40 @@ def update_state_transition_dirichlet_f(pB_f, actions_f, joint_qs_f, lr=1.0): return qB_f, dirichlet_expected_value(qB_f) -def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_controls, lr, B_dependencies=None): - +def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_controls, lr): + """ + Updates the Dirichlet distribution over the state transition matrix. + + Parameters + ---------- + pB: + Prior Dirichlet parameters over transition model. Same shape as B: (state modality, *state dependencies, action) + joint_beliefs: + A list of beliefs over state for each index of the transition matrix, i.e. joint_beliefs[i] points to the belief + over the state modality of pB[i]. This implicitly covers the dependencies covered using B_factors_list. + Each element should also contain the time dimension. + actions: + An array of actions of shape (time, len(num_controls)) + num_controls: + List containing the amount of actions for each state modality. + lr: + learning rate: scale of the Dirichlet pseudo-count update + + Returns + ---------- + qB + The posterior over the Dirichlet parameters over the transition model + E_qB + The expected value of the transition model B + """ nf = len(pB) - if B_dependencies is None: - B_dependencies = list(range(nf)) actions_onehot_fn = lambda f, dim: nn.one_hot(actions[..., f], dim, axis=-1) update_B_f_fn = lambda pB_f, joint_qs_f, f, na: update_state_transition_dirichlet_f( pB_f, actions_onehot_fn(f, na), joint_qs_f, lr=lr ) - result = tree_map(update_B_f_fn, pB, joint_beliefs, B_dependencies, num_controls) + result = tree_map(update_B_f_fn, pB, joint_beliefs, list(range(nf)), num_controls) qB = [] E_qB = [] diff --git a/test/test_learning_jax.py b/test/test_learning_jax.py index f67cc1cc..1aff2de0 100644 --- a/test/test_learning_jax.py +++ b/test/test_learning_jax.py @@ -20,24 +20,18 @@ from pymdp.learning import update_state_likelihood_dirichlet as update_pB_numpy from pymdp.learning import update_state_likelihood_dirichlet_interactions as update_pB_interactions_numpy - -# Temporary to make the mapping -from pymdp.jax.learning import update_state_likelihood_dirichlet as update_pB_jax_old - -from pymdp.jax.learning_dimi import update_obs_likelihood_dirichlet as update_pA_jax -from pymdp.jax.learning_dimi import update_state_transition_dirichlet as update_pB_jax +from pymdp.jax.learning import update_obs_likelihood_dirichlet as update_pA_jax +from pymdp.jax.learning import update_state_transition_dirichlet as update_pB_jax class TestLearningJax(unittest.TestCase): def test_update_observation_likelihood_fullyconnected(self): """ - Testing JAX-ified version of updating Dirichlet posterior over observation likelihood parameters (qA is - posterior, pA is prior, and A is expectation of likelihood wrt to current posterior over A, i.e. - $A = E_{Q(A)}[P(o|s,A)]$. + Testing JAX-ified version of updating Dirichlet posterior over observation likelihood parameters (qA is posterior, pA is prior, and A is expectation + of likelihood wrt to current posterior over A, i.e. $A = E_{Q(A)}[P(o|s,A)]$. - This is the so-called 'fully-connected' version where all hidden state factors drive each modality - (i.e. A_dependencies is a list of lists of hidden state factors) + This is the so-called 'fully-connected' version where all hidden state factors drive each modality (i.e. A_dependencies is a list of lists of hidden state factors) """ num_obs_list = [[5], [10, 3, 2], [2, 4, 4, 2], [10]] @@ -69,19 +63,19 @@ def test_update_observation_likelihood_fullyconnected(self): obs_jax = jtu.tree_map(lambda x: jnp.array(x)[None], list(obs_np)) qs_jax = jtu.tree_map(lambda x: jnp.array(x)[None], list(qs_np)) - qA_jax_test = update_pA_jax(pA_jax, obs_jax, qs_jax, A_dependencies, lr=l_rate) + qA_jax_test, E_qA_jax_test = update_pA_jax( + pA_jax, obs_jax, qs_jax, A_dependencies=A_dependencies, onehot_obs=True, num_obs=num_obs, lr=l_rate + ) for modality, obs_dim in enumerate(num_obs): self.assertTrue(np.allclose(qA_jax_test[modality], qA_np_test[modality])) def test_update_observation_likelihood_factorized(self): """ - Testing JAX-ified version of updating Dirichlet posterior over observation likelihood parameters (qA is - posterior, pA is prior, and A is expectation of likelihood wrt to current posterior over A, i.e. - $A = E_{Q(A)}[P(o|s,A)]$. + Testing JAX-ified version of updating Dirichlet posterior over observation likelihood parameters (qA is posterior, pA is prior, and A is expectation + of likelihood wrt to current posterior over A, i.e. $A = E_{Q(A)}[P(o|s,A)]$. - This is the factorized version where only some hidden state factors drive each modality (i.e. A_dependencies is - a list of lists of hidden state factors) + This is the factorized version where only some hidden state factors drive each modality (i.e. A_dependencies is a list of lists of hidden state factors) """ num_obs_list = [[5], [10, 3, 2], [2, 4, 4, 2], [10]] @@ -113,7 +107,9 @@ def test_update_observation_likelihood_factorized(self): obs_jax = jtu.tree_map(lambda x: jnp.array(x)[None], list(obs_np)) qs_jax = jtu.tree_map(lambda x: jnp.array(x)[None], list(qs_np)) - qA_jax_test = update_pA_jax(pA_jax, obs_jax, qs_jax, A_dependencies, lr=l_rate) + qA_jax_test, E_qA_jax_test = update_pA_jax( + pA_jax, obs_jax, qs_jax, A_dependencies=A_dependencies, onehot_obs=True, num_obs=num_obs, lr=l_rate + ) for modality, obs_dim in enumerate(num_obs): self.assertTrue(np.allclose(qA_jax_test[modality], qA_np_test[modality])) @@ -141,21 +137,17 @@ def test_update_state_likelihood_single_factor_no_actions(self): pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors="all") pB_jax = [jnp.array(b) for b in pB] - B_deps = [[0]] - # Add the batch dim action_jax = jnp.array([action]) belief_jax = [] for f in range(len(num_states)): - # Extract factor + add batch dim + # Extract factor q_f = jnp.array([qs[..., f].tolist()]) q_prev_f = jnp.array([qs_prev[..., f].tolist()]) belief_jax.append([q_f, q_prev_f]) - pB_updated_jax, _ = update_pB_jax( - pB_jax, belief_jax, action_jax, num_controls=num_controls, B_dependencies=B_deps, lr=l_rate - ) + pB_updated_jax, _ = update_pB_jax(pB_jax, belief_jax, action_jax, num_controls=num_controls, lr=l_rate) for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): self.assertTrue(pB_np.shape == pB_jax.shape) @@ -183,22 +175,18 @@ def test_update_state_likelihood_single_factor_with_actions(self): pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors="all") - # Add the batch dim action_jax = jnp.array([action]) belief_jax = [] for f in range(len(num_states)): - # Extract factor + add batch dim + # Extract factor q_f = jnp.array([qs[..., f].tolist()]) q_prev_f = jnp.array([qs_prev[..., f].tolist()]) belief_jax.append([q_f, q_prev_f]) pB_jax = [jnp.array(b) for b in pB] - B_deps = [[i] for i, _ in enumerate(B)] - pB_updated_jax, _ = update_pB_jax( - pB_jax, belief_jax, action_jax, num_controls=num_controls, B_dependencies=B_deps, lr=l_rate - ) + pB_updated_jax, _ = update_pB_jax(pB_jax, belief_jax, action_jax, num_controls=num_controls, lr=l_rate) for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): self.assertTrue(pB_np.shape == pB_jax.shape) @@ -224,23 +212,18 @@ def test_update_state_likelihood_multi_factor_all_factors_no_actions(self): pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors="all") - # Add the batch dim action_jax = jnp.array([action]) belief_jax = [] for f in range(len(num_states)): - # Extract factor + add batch dim + # Extract factor q_f = jnp.array([qs[..., f].tolist()]) q_prev_f = jnp.array([qs_prev[..., f].tolist()]) belief_jax.append([q_f, q_prev_f]) - # Also add the time and batch dimension - # action = jnp.expand_dims(jnp.array(action), 0) pB_jax = [jnp.array(b) for b in pB] - pB_updated_jax, _ = update_pB_jax( - pB_jax, belief_jax, action_jax, num_controls=num_controls, B_dependencies=None, lr=l_rate - ) + pB_updated_jax, _ = update_pB_jax(pB_jax, belief_jax, action_jax, num_controls=num_controls, lr=l_rate) for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): self.assertTrue(pB_np.shape == pB_jax.shape) @@ -265,22 +248,18 @@ def test_update_state_likelihood_multi_factor_all_factors_with_actions(self): pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors="all") - # Add the batch dim action_jax = jnp.array([action]) belief_jax = [] for f in range(len(num_states)): - # Extract factor + add batch dim + # Extract factor q_f = jnp.array([qs[..., f].tolist()]) q_prev_f = jnp.array([qs_prev[..., f].tolist()]) belief_jax.append([q_f, q_prev_f]) pB_jax = [jnp.array(b) for b in pB] - B_deps = [[i] for i, _ in enumerate(B)] - pB_updated_jax, _ = update_pB_jax( - pB_jax, belief_jax, action_jax, num_controls=num_controls, B_dependencies=B_deps, lr=l_rate - ) + pB_updated_jax, _ = update_pB_jax(pB_jax, belief_jax, action_jax, num_controls=num_controls, lr=l_rate) for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): self.assertTrue(pB_np.shape == pB_jax.shape) @@ -311,14 +290,13 @@ def test_update_state_likelihood_multi_factor_some_factors_no_action(self): belief_jax = [] for f in range(len(num_states)): - # Extract factor + add batch dim + # Extract factor q_f = jnp.array([qs[..., f].tolist()]) q_prev_f = jnp.array([qs_prev[..., f].tolist()]) belief_jax.append([q_f, q_prev_f]) pB_jax = [jnp.array(b) for b in pB] - # Add the batch dim action_jax = jnp.array([action]) # Selective update of factors is not implemented within the method, and could be performed like this: @@ -328,12 +306,7 @@ def test_update_state_likelihood_multi_factor_some_factors_no_action(self): num_controls_update = [num_controls[f] for f in factors_to_update] pB_updated_jax_factors, _ = update_pB_jax( - pB_jax_update, - belief_jax_update, - action_jax_update, - num_controls=num_controls_update, - B_dependencies=None, - lr=l_rate, + pB_jax_update, belief_jax_update, action_jax_update, num_controls=num_controls_update, lr=l_rate ) pB_updated_jax = [] @@ -373,21 +346,18 @@ def test_update_state_likelihood_with_interactions(self): pB, B, action, qs, qs_prev, B_factor_list, lr=l_rate, factors="all" ) - # Add the batch dim action_jax = jnp.array([action]) belief_jax = [] for f in range(len(num_states)): - # Extract factor + add batch dim + # Extract factor q_f = jnp.array([qs[..., f].tolist()]) - q_prev_f = jnp.array([qs_prev[..., f].tolist()]) - belief_jax.append([q_f, q_prev_f]) + q_prev_f = [jnp.array([qs_prev[..., fi].tolist()]) for fi in B_factor_list[f]] + belief_jax.append([q_f, *q_prev_f]) pB_jax = [jnp.array(b) for b in pB] - pB_updated_jax, _ = update_pB_jax( - pB_jax, belief_jax, action_jax, B_dependencies=B_factor_list, lr=l_rate, num_controls=num_controls - ) + pB_updated_jax, _ = update_pB_jax(pB_jax, belief_jax, action_jax, lr=l_rate, num_controls=num_controls) for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): self.assertTrue(pB_np.shape == pB_jax.shape) @@ -395,10 +365,4 @@ def test_update_state_likelihood_with_interactions(self): if __name__ == "__main__": - TestLearningJax().test_update_state_likelihood_single_factor_no_actions() - TestLearningJax().test_update_state_likelihood_single_factor_with_actions() - TestLearningJax().test_update_state_likelihood_multi_factor_all_factors_no_actions() - TestLearningJax().test_update_state_likelihood_multi_factor_all_factors_with_actions() - TestLearningJax().test_update_state_likelihood_multi_factor_some_factors_no_action() - TestLearningJax().test_update_state_likelihood_with_interactions() - # unittest.main() + unittest.main() From 6b7d50f675ee1bf8fe007aca22f1e2673b696ef7 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Sat, 22 Jun 2024 18:09:18 +0200 Subject: [PATCH 129/196] selective update of factors for learning the transition parameters --- pymdp/jax/learning.py | 12 ++++++--- test/test_learning_jax.py | 57 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 64 insertions(+), 5 deletions(-) diff --git a/pymdp/jax/learning.py b/pymdp/jax/learning.py index db1997a2..988e61b1 100644 --- a/pymdp/jax/learning.py +++ b/pymdp/jax/learning.py @@ -67,7 +67,7 @@ def update_state_transition_dirichlet_f(pB_f, actions_f, joint_qs_f, lr=1.0): return qB_f, dirichlet_expected_value(qB_f) -def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_controls, lr): +def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_controls, lr, factors_to_update=None): """ Updates the Dirichlet distribution over the state transition matrix. @@ -85,6 +85,8 @@ def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_control List containing the amount of actions for each state modality. lr: learning rate: scale of the Dirichlet pseudo-count update + factors_to_update: + A list of the modalities for which to perform the update Returns ---------- @@ -94,13 +96,15 @@ def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_control The expected value of the transition model B """ nf = len(pB) + if factors_to_update is None: + factors_to_update = list(range(nf)) actions_onehot_fn = lambda f, dim: nn.one_hot(actions[..., f], dim, axis=-1) - update_B_f_fn = lambda pB_f, joint_qs_f, f, na: update_state_transition_dirichlet_f( - pB_f, actions_onehot_fn(f, na), joint_qs_f, lr=lr + update_B_f_fn = lambda f: update_state_transition_dirichlet_f( + pB[f], actions_onehot_fn(f, num_controls[f]), joint_beliefs[f], lr=lr ) - result = tree_map(update_B_f_fn, pB, joint_beliefs, list(range(nf)), num_controls) + result = tree_map(update_B_f_fn, factors_to_update) qB = [] E_qB = [] diff --git a/test/test_learning_jax.py b/test/test_learning_jax.py index 1aff2de0..ad32522f 100644 --- a/test/test_learning_jax.py +++ b/test/test_learning_jax.py @@ -299,7 +299,7 @@ def test_update_state_likelihood_multi_factor_some_factors_no_action(self): action_jax = jnp.array([action]) - # Selective update of factors is not implemented within the method, and could be performed like this: + # Method to apply the selective update without using the implemented way pB_jax_update = [pB_jax[f] for f in factors_to_update] belief_jax_update = [belief_jax[f] for f in factors_to_update] action_jax_update = jnp.concatenate([action_jax[..., f : f + 1] for f in factors_to_update], axis=-1) @@ -320,6 +320,61 @@ def test_update_state_likelihood_multi_factor_some_factors_no_action(self): self.assertTrue(pB_np.shape == pB_jax.shape) self.assertTrue(np.allclose(pB_np, pB_jax)) + def test_update_state_likelihood_multi_factor_some_factors_no_action_2(self): + """ + Testing the JAXified version of updating Dirichlet posterior over transition likelihood parameters. + qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the + current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)]$ + """ + np.random.seed(0) + + num_states = [3, 4, 2] + num_controls = [3, 5, 5] + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + l_rate = 1.0 + + B = utils.random_B_matrix(num_states, num_controls) + pB = utils.obj_array_ones([B_f.shape for B_f in B]) + + action = list(np.array([np.random.randint(c_dim) for c_dim in num_controls])) + + factors_to_update = np.random.choice(list(range(len(B))), replace=False, size=(2,)).tolist() + + pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors=factors_to_update) + + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = jnp.array([qs_prev[..., f].tolist()]) + belief_jax.append([q_f, q_prev_f]) + + pB_jax = [jnp.array(b) for b in pB] + + action_jax = jnp.array([action]) + + # Selective update of factors is not implemented within the method, and could be performed like this: + pB_jax_update = [pB_jax[f] for f in factors_to_update] + belief_jax_update = [belief_jax[f] for f in factors_to_update] + action_jax_update = jnp.concatenate([action_jax[..., f : f + 1] for f in factors_to_update], axis=-1) + num_controls_update = [num_controls[f] for f in factors_to_update] + + pB_updated_jax_factors, _ = update_pB_jax( + pB_jax, belief_jax, action_jax, num_controls=num_controls, lr=l_rate, factors_to_update=factors_to_update + ) + + pB_updated_jax = [] + for f, _ in enumerate(num_states): + if f in factors_to_update: + pB_updated_jax.append(pB_updated_jax_factors[factors_to_update.index(f)]) + else: + pB_updated_jax.append(pB_jax[f]) + + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + def test_update_state_likelihood_with_interactions(self): """ Test for `learning.update_state_likelihood_dirichlet_factorized`, which is the learning function updating prior From 03b2cd13b07a089e69c31bc9ab3909e139874f99 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Sun, 23 Jun 2024 19:00:04 +0200 Subject: [PATCH 130/196] return all transition matrices when factors_to_update is not all --- pymdp/jax/learning.py | 12 ++++++++---- test/test_learning_jax.py | 13 +------------ 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/pymdp/jax/learning.py b/pymdp/jax/learning.py index 988e61b1..f957d1e5 100644 --- a/pymdp/jax/learning.py +++ b/pymdp/jax/learning.py @@ -4,7 +4,7 @@ from .maths import multidimensional_outer, dirichlet_expected_value from jax.tree_util import tree_map -from jax import vmap, nn +from jax import vmap, nn, lax def update_obs_likelihood_dirichlet_m(pA_m, obs_m, qs, dependencies_m, lr=1.0): @@ -96,15 +96,19 @@ def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_control The expected value of the transition model B """ nf = len(pB) + if factors_to_update is None: factors_to_update = list(range(nf)) actions_onehot_fn = lambda f, dim: nn.one_hot(actions[..., f], dim, axis=-1) - update_B_f_fn = lambda f: update_state_transition_dirichlet_f( - pB[f], actions_onehot_fn(f, num_controls[f]), joint_beliefs[f], lr=lr + update_B_f_fn = lambda pB_f, joint_qs_f, f, na: ( + update_state_transition_dirichlet_f(pB_f, actions_onehot_fn(f, na), joint_qs_f, lr=lr) + if f in factors_to_update + else (pB_f, dirichlet_expected_value(pB_f)) ) - result = tree_map(update_B_f_fn, factors_to_update) + + result = tree_map(update_B_f_fn, pB, joint_beliefs, list(range(nf)), num_controls) qB = [] E_qB = [] diff --git a/test/test_learning_jax.py b/test/test_learning_jax.py index ad32522f..c680ec69 100644 --- a/test/test_learning_jax.py +++ b/test/test_learning_jax.py @@ -355,23 +355,12 @@ def test_update_state_likelihood_multi_factor_some_factors_no_action_2(self): action_jax = jnp.array([action]) # Selective update of factors is not implemented within the method, and could be performed like this: - pB_jax_update = [pB_jax[f] for f in factors_to_update] - belief_jax_update = [belief_jax[f] for f in factors_to_update] - action_jax_update = jnp.concatenate([action_jax[..., f : f + 1] for f in factors_to_update], axis=-1) - num_controls_update = [num_controls[f] for f in factors_to_update] pB_updated_jax_factors, _ = update_pB_jax( pB_jax, belief_jax, action_jax, num_controls=num_controls, lr=l_rate, factors_to_update=factors_to_update ) - pB_updated_jax = [] - for f, _ in enumerate(num_states): - if f in factors_to_update: - pB_updated_jax.append(pB_updated_jax_factors[factors_to_update.index(f)]) - else: - pB_updated_jax.append(pB_jax[f]) - - for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax_factors): self.assertTrue(pB_np.shape == pB_jax.shape) self.assertTrue(np.allclose(pB_np, pB_jax)) From 568900d368b9e03b798e1025896ea759157023c2 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Sun, 23 Jun 2024 19:00:51 +0200 Subject: [PATCH 131/196] return all transition matrices when factors_to_update is not all --- pymdp/jax/learning.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pymdp/jax/learning.py b/pymdp/jax/learning.py index f957d1e5..5a7be739 100644 --- a/pymdp/jax/learning.py +++ b/pymdp/jax/learning.py @@ -86,7 +86,7 @@ def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_control lr: learning rate: scale of the Dirichlet pseudo-count update factors_to_update: - A list of the modalities for which to perform the update + A list of the modalities for which to perform the update. Default updates all factors Returns ---------- From 02cd58c03865ca5e4cebceb24e3b026c0cae5399 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Sun, 23 Jun 2024 19:02:12 +0200 Subject: [PATCH 132/196] remove legacy comment --- test/test_learning_jax.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/test_learning_jax.py b/test/test_learning_jax.py index c680ec69..0587ee1f 100644 --- a/test/test_learning_jax.py +++ b/test/test_learning_jax.py @@ -354,8 +354,6 @@ def test_update_state_likelihood_multi_factor_some_factors_no_action_2(self): action_jax = jnp.array([action]) - # Selective update of factors is not implemented within the method, and could be performed like this: - pB_updated_jax_factors, _ = update_pB_jax( pB_jax, belief_jax, action_jax, num_controls=num_controls, lr=l_rate, factors_to_update=factors_to_update ) From 2a1c34be79bfb9a0ae21cadeec0ebe69c6c32f39 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 27 Jun 2024 11:38:53 +0200 Subject: [PATCH 133/196] add imageio dependency --- poetry.lock | 61 +++++++++++++++++++++++++++++++++++++++++++++++++- pyproject.toml | 2 ++ 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/poetry.lock b/poetry.lock index 99700dc6..f990ea4e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -944,6 +944,38 @@ files = [ {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] +[[package]] +name = "imageio" +version = "2.34.1" +description = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats." +optional = false +python-versions = ">=3.8" +files = [ + {file = "imageio-2.34.1-py3-none-any.whl", hash = "sha256:408c1d4d62f72c9e8347e7d1ca9bc11d8673328af3913868db3b828e28b40a4c"}, + {file = "imageio-2.34.1.tar.gz", hash = "sha256:f13eb76e4922f936ac4a7fec77ce8a783e63b93543d4ea3e40793a6cabd9ac7d"}, +] + +[package.dependencies] +numpy = "*" +pillow = ">=8.3.2" + +[package.extras] +all-plugins = ["astropy", "av", "imageio-ffmpeg", "pillow-heif", "psutil", "tifffile"] +all-plugins-pypy = ["av", "imageio-ffmpeg", "pillow-heif", "psutil", "tifffile"] +build = ["wheel"] +dev = ["black", "flake8", "fsspec[github]", "pytest", "pytest-cov"] +docs = ["numpydoc", "pydata-sphinx-theme", "sphinx (<6)"] +ffmpeg = ["imageio-ffmpeg", "psutil"] +fits = ["astropy"] +full = ["astropy", "av", "black", "flake8", "fsspec[github]", "gdal", "imageio-ffmpeg", "itk", "numpydoc", "pillow-heif", "psutil", "pydata-sphinx-theme", "pytest", "pytest-cov", "sphinx (<6)", "tifffile", "wheel"] +gdal = ["gdal"] +itk = ["itk"] +linting = ["black", "flake8"] +pillow-heif = ["pillow-heif"] +pyav = ["av"] +test = ["fsspec[github]", "pytest", "pytest-cov"] +tifffile = ["tifffile"] + [[package]] name = "imagesize" version = "1.4.1" @@ -2350,6 +2382,33 @@ examples = ["arviz", "jupyter", "matplotlib", "pandas", "scikit-learn", "seaborn test = ["importlib-metadata (<5.0)", "pyro-api (>=0.1.1)", "pytest (>=4.1)", "ruff (>=0.1.8)", "scipy (>=1.9)"] tpu = ["jax[tpu] (>=0.4.14)"] +[[package]] +name = "opencv-python" +version = "4.10.0.82" +description = "Wrapper package for OpenCV python bindings." +optional = false +python-versions = ">=3.6" +files = [ + {file = "opencv-python-4.10.0.82.tar.gz", hash = "sha256:dbc021eaa310c4145c47cd648cb973db69bb5780d6e635386cd53d3ea76bd2d5"}, + {file = "opencv_python-4.10.0.82-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:5f78652339957ec24b80a782becfb32f822d2008a865512121fad8c3ce233e9a"}, + {file = "opencv_python-4.10.0.82-cp37-abi3-macosx_12_0_x86_64.whl", hash = "sha256:e6be19a0615aa8c4e0d34e0c7b133e26e386f4b7e9b557b69479104ab2c133ec"}, + {file = "opencv_python-4.10.0.82-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b49e530f7fd86f671514b39ffacdf5d14ceb073bc79d0de46bbb6b0cad78eaf"}, + {file = "opencv_python-4.10.0.82-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955c5ce8ac90c9e4636ad7f5c0d9c75b80abbe347182cfd09b0e3eec6e50472c"}, + {file = "opencv_python-4.10.0.82-cp37-abi3-win32.whl", hash = "sha256:ff54adc9e4daaf438e669664af08bec4a268c7b7356079338b8e4fae03810f2c"}, + {file = "opencv_python-4.10.0.82-cp37-abi3-win_amd64.whl", hash = "sha256:2e3c2557b176f1e528417520a52c0600a92c1bb1c359f3df8e6411ab4293f065"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.21.2", markers = "python_version >= \"3.10\""}, + {version = ">=1.21.4", markers = "python_version >= \"3.10\" and platform_system == \"Darwin\""}, + {version = ">=1.23.5", markers = "python_version >= \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, + {version = ">=1.19.3", markers = "python_version >= \"3.6\" and platform_system == \"Linux\" and platform_machine == \"aarch64\" or python_version >= \"3.9\""}, + {version = ">=1.17.0", markers = "python_version >= \"3.7\""}, + {version = ">=1.17.3", markers = "python_version >= \"3.8\""}, +] + [[package]] name = "openpyxl" version = "3.1.3" @@ -3856,4 +3915,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "e11c27bafde36c4c7992e0d8fed795bffd84bc0ce6b9bde87c8ab720914e40ba" +content-hash = "4c2a1f1768cd9362bee70dd2371d3a34c7bcef346c24421d64b92d824e39d5b7" diff --git a/pyproject.toml b/pyproject.toml index a80150b8..7a11e22e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,6 +33,8 @@ arviz = "^0.13" optax = "^0.1" matplotlib = "^3.9" networkx = "^3.3" +opencv-python = "^4.10.0.82" +imageio = "^2.34.1" [tool.black] From 8d3bc80979f8da7647158f9c5783a88f24f2b795 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 27 Jun 2024 11:39:16 +0200 Subject: [PATCH 134/196] also allow to use Distribution for C and D --- examples/{ => api}/distribution_api.ipynb | 88 +++++++++++++---------- pymdp/jax/agent.py | 7 +- pymdp/jax/distribution.py | 2 +- 3 files changed, 59 insertions(+), 38 deletions(-) rename examples/{ => api}/distribution_api.ipynb (90%) diff --git a/examples/distribution_api.ipynb b/examples/api/distribution_api.ipynb similarity index 90% rename from examples/distribution_api.ipynb rename to examples/api/distribution_api.ipynb index de9a5a32..6595acbd 100644 --- a/examples/distribution_api.ipynb +++ b/examples/api/distribution_api.ipynb @@ -27,6 +27,7 @@ "outputs": [], "source": [ "import numpy as np\n", + "import jax.tree_util as jtu\n", "from jax import numpy as jnp\n", "\n", "np.set_printoptions(precision=2, suppress=True)\n", @@ -34,35 +35,6 @@ "from pymdp.jax.agent import Agent\n", "from pymdp.jax.distribution import Distribution, compile_model\n", "\n", - "action = jnp.array([1])\n", - "action = jnp.broadcast_to(action, (1, 1))\n", - "\n", - "observation = jnp.array([0])\n", - "observation = jnp.broadcast_to(observation, (1, 1))\n", - "\n", - "qs_init = jnp.array([1.0, 0.0, 0.0, 0.0])\n", - "qs_init = jnp.broadcast_to(qs_init, (1, 1, 4))\n", - "\n", - "policies = jnp.array([[0, 0, 0, 0], [1, 1, 1, 1]])\n", - "policies = jnp.expand_dims(policies, -1)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "goal state: D\n", - "initial state: A\n", - "action taken: up\n" - ] - } - ], - "source": [ "observations = [\"A\", \"B\", \"C\", \"D\"]\n", "states = [\"A\", \"B\", \"C\", \"D\"]\n", "controls = [\"up\", \"down\"]\n", @@ -75,7 +47,6 @@ "A[\"C\", \"C\"] = 1.0\n", "A[\"D\", \"D\"] = 1.0\n", "\n", - "\n", "data = np.zeros((len(states), len(states), len(controls)))\n", "B = Distribution({\"states\": states}, {\"states\": states, \"controls\": controls}, data)\n", "\n", @@ -89,12 +60,50 @@ "B[\"B\", \"C\", \"down\"] = 1.0\n", "B[\"C\", \"D\", \"down\"] = 1.0\n", "\n", - "C = jnp.array([0.0, 0.0, 0.0, 1.0])\n", "\n", - "agent = Agent([A], [B], [C], policies=policies, apply_batch=True)\n", - "print(f\"goal state: {states[jnp.argmax(C)]}\")\n", + "C = Distribution({\"observations\": observations})\n", + "C[\"D\"] = 1.0\n", + "\n", + "D = Distribution({\"states\": states})\n", + "D[\"A\"] = 1.0\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can use these A,B,C tensors to create an agent, and infer states and actions" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "goal state: D\n", + "initial state: A\n", + "action taken: up\n" + ] + } + ], + "source": [ + "agent = Agent([A], [B], [C], [D], apply_batch=True)\n", + "print(f\"goal state: {states[jnp.argmax(agent.C[0])]}\")\n", + "\n", + "# infer state given action and observation\n", + "action = jnp.array([1])\n", + "action = jnp.broadcast_to(action, (1, 1))\n", + "\n", + "observation = jnp.array([0])\n", + "observation = jnp.broadcast_to(observation, (1, 1))\n", "\n", - "prior, _ = agent.infer_empirical_prior(action, [qs_init])\n", + "# qs needs a time dimension for infer_empirical_prior, so expand dims of D\n", + "qs_init = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), agent.D)\n", + "prior, _ = agent.infer_empirical_prior(action, qs_init)\n", "qs = agent.infer_states([observation], None, prior, None)\n", "print(f\"initial state: {states[jnp.argmax(qs[0])]}\")\n", "\n", @@ -156,10 +165,10 @@ "Bs[0][\"C\", \"D\", \"down\"] = 1.0\n", "\n", "Cs = [jnp.array([0.0, 0.0, 0.0, 1.0])]\n", - "agent = Agent(As, Bs, Cs, policies=policies, apply_batch=True)\n", + "agent = Agent(As, Bs, Cs, apply_batch=True)\n", "print(f\"goal state: {states[jnp.argmax(Cs[0])]}\")\n", "\n", - "prior, _ = agent.infer_empirical_prior(action, [qs_init])\n", + "prior, _ = agent.infer_empirical_prior(action, qs_init)\n", "qs = agent.infer_states([observation], None, prior, None)\n", "print(f\"initial state: {states[jnp.argmax(qs[0])]}\")\n", "\n", @@ -251,6 +260,13 @@ "\n", "agent = Agent(As, Bs, apply_batch=True)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 2f223500..00b98b26 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -155,9 +155,14 @@ def __init__( self.B_action_dependencies, ) = self._construct_dependencies(A_dependencies, B_dependencies, B_action_dependencies, A, B) - # extract A and B tensors + # extract A, B, C and D tensors from optional Distributions A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] B = [jnp.array(b.data) if isinstance(b, Distribution) else b for b in B] + if C is not None: + C = [jnp.array(c.data) if isinstance(c, Distribution) else c for c in C] + if D is not None: + D = [jnp.array(d.data) if isinstance(d, Distribution) else d for d in D] + self.batch_size = A[0].shape[0] if not apply_batch else 1 # flatten B action dims for multiple action dependencies diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index a4f8ba59..02a773c1 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -4,7 +4,7 @@ class Distribution: - def __init__(self, event: dict, batch: dict, data: np.ndarray = None): + def __init__(self, event: dict, batch: dict = {}, data: np.ndarray = None): self.event = event self.batch = batch From 2ad121f8ea092f54a12b8b43f857c1e9bd530a93 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Thu, 27 Jun 2024 11:50:51 +0200 Subject: [PATCH 135/196] Added Leaf class to register arbitrary objects as leaf --- .../sparse_benchmark.ipynb | 372 ++++++++++++++++++ pymdp/jax/inference.py | 100 +++-- pymdp/jax/utils.py | 165 +++++--- 3 files changed, 548 insertions(+), 89 deletions(-) create mode 100644 examples/inference_and_learning/sparse_benchmark.ipynb diff --git a/examples/inference_and_learning/sparse_benchmark.ipynb b/examples/inference_and_learning/sparse_benchmark.ipynb new file mode 100644 index 00000000..17179d0f --- /dev/null +++ b/examples/inference_and_learning/sparse_benchmark.ipynb @@ -0,0 +1,372 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sparse Array Benchmarking" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp\n", + "from jax import tree_util as jtu, nn, vmap, lax\n", + "from jax.experimental import sparse\n", + "from pymdp.jax.agent import Agent\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "import time\n", + "import sys\n", + "\n", + "from pymdp.jax.inference import smoothing_ovf\n", + "import numpy as np\n", + "import jax.profiler \n", + "\n", + "import tracemalloc\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def sizeof(x):\n", + " return np.prod(x.shape)\n", + "\n", + "\n", + "def sizeof_sparse(x):\n", + " return np.prod(x.data.shape) + np.prod(x.indices.shape)\n", + "\n", + "\n", + "def get_matrices(n_batch, num_obs, n_states):\n", + "\n", + " A_1 = jnp.ones((num_obs[0], n_states[0]))\n", + " A_1 = A_1.at[-1, :-1].set(0)\n", + " A_2 = jnp.ones((num_obs[0], n_states[1]))\n", + " A_2 = A_2.at[-1, 1:].set(0)\n", + "\n", + " A_tensor = A_1[..., None] * A_2[:, None]\n", + " A_tensor /= A_tensor.sum(0)\n", + "\n", + " A = [jnp.broadcast_to(A_tensor, (n_batch, *A_tensor.shape))]\n", + "\n", + " # create two transition matrices, one for each state factor\n", + " B_1 = jnp.eye(n_states[0])\n", + " B_1 = B_1.at[:, 1:].set(B_1[:, :-1])\n", + " B_1 = B_1.at[:, 0].set(0)\n", + " B_1 = B_1.at[-1, 0].set(1)\n", + " B_1 = jnp.broadcast_to(B_1, (n_batch, n_states[0], n_states[0]))\n", + "\n", + " B_2 = jnp.eye(n_states[1])\n", + " B_2 = B_2.at[:, 1:].set(B_2[:, :-1])\n", + " B_2 = B_2.at[:, 0].set(0)\n", + " B_2 = B_2.at[-1, 0].set(1)\n", + " B_2 = jnp.broadcast_to(B_2, (n_batch, n_states[1], n_states[1]))\n", + "\n", + " B = [B_1[..., None], B_2[..., None]]\n", + " C = [jnp.zeros((n_batch, num_obs[0]))] # flat preferences\n", + " D = [jnp.ones((n_batch, n_states[0])) / n_states[0], jnp.ones((n_batch, n_states[1])) / n_states[1]] # flat prior\n", + " E = jnp.ones((n_batch, 1))\n", + "\n", + " return A, B, C, D, E" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def profile(fun, *args): \n", + " tracemalloc.start()\n", + " tracemalloc.reset_peak()\n", + " bt = time.time()\n", + " res = fun(*args)\n", + " et = time.time()\n", + " size, peak = tracemalloc.get_traced_memory()\n", + "\n", + " stats = {'time': et - bt}\n", + " return res, stats\n", + "\n", + "def experiment(n_states):\n", + " results = {}\n", + "\n", + " n_batch = 1\n", + " num_obs = [2]\n", + "\n", + " A, B, C, D, E = get_matrices(n_batch=n_batch, num_obs=num_obs, n_states=n_states)\n", + "\n", + " # for the single modality, a sequence over time of observations (one hot vectors)\n", + " obs = [\n", + " jnp.broadcast_to(\n", + " jnp.array(\n", + " [\n", + " [1.0, 0.0], # observation 0 is ambiguous with respect state factors\n", + " [1.0, 0], # observation 0 is ambiguous with respect state factors\n", + " [1.0, 0], # observation 0 is ambiguous with respect state factors\n", + " [0.0, 1.0],\n", + " ]\n", + " )[:, None],\n", + " (4, n_batch, num_obs[0]),\n", + " )\n", + " ] # observation 1 provides information about exact state of both factors\n", + "\n", + " agents = Agent(\n", + " A=A,\n", + " B=B,\n", + " C=C,\n", + " D=D,\n", + " E=E,\n", + " pA=None,\n", + " pB=None,\n", + " policy_len=3,\n", + " control_fac_idx=None,\n", + " policies=None,\n", + " gamma=16.0,\n", + " alpha=16.0,\n", + " use_utility=True,\n", + " onehot_obs=True,\n", + " action_selection=\"deterministic\",\n", + " sampling_mode=\"full\",\n", + " inference_algo=\"ovf\",\n", + " num_iter=16,\n", + " learn_A=False,\n", + " learn_B=False,\n", + " apply_batch=False\n", + " )\n", + "\n", + " sparse_B = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b, n_batch=n_batch), agents.B)\n", + "\n", + "\n", + " prior = agents.D\n", + " qs_hist = None\n", + " action_hist = []\n", + " for t in range(len(obs[0])):\n", + " first_obs = jtu.tree_map(lambda x: jnp.moveaxis(x[:t+1], 0, 1), obs)\n", + " beliefs = agents.infer_states(first_obs, past_actions=None, empirical_prior=prior, qs_hist=qs_hist)\n", + " actions = jnp.broadcast_to(agents.policies[0, 0], (n_batch, 2))\n", + " prior, qs_hist = agents.infer_empirical_prior(actions, beliefs)\n", + " action_hist.append(actions)\n", + "\n", + " beliefs = jtu.tree_map(lambda x, y: jnp.concatenate([x[:, None], y], 1), agents.D, beliefs)\n", + "\n", + " take_first = lambda pytree: jtu.tree_map(lambda leaf: leaf[0], pytree)\n", + " beliefs_single = take_first(beliefs)\n", + "\n", + " # ======\n", + " # Dense implementation\n", + " smoothed_beliefs_dense, run_stats = profile(\n", + " smoothing_ovf, *(beliefs_single, take_first(agents.B), jnp.stack(action_hist, 1)[0])\n", + " )\n", + " results.update({k+'_dense': v for k, v in run_stats.items()})\n", + " results[\"size_dense\"] = sum([sizeof(sB) for sB in agents.B])\n", + " # ======\n", + "\n", + " sparse_B_single = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b[0]), agents.B)\n", + " actions_single = jnp.stack(action_hist, 1)[0]\n", + "\n", + " # ======\n", + " # Sparse implementation\n", + " smoothed_beliefs_sparse, run_stats = profile(\n", + " smoothing_ovf, *(beliefs_single, sparse_B_single, actions_single)\n", + " )\n", + " results.update({k+'_sparse': v for k, v in run_stats.items()})\n", + " results[\"size_sparse\"] = sum([sizeof_sparse(sB) for sB in sparse_B_single])\n", + " # ======\n", + "\n", + " return results, [beliefs_single, smoothed_beliefs_dense, smoothed_beliefs_sparse]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Running the experiment and visualizing the results" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1, 5, 2)\n", + "[(5, 2), (5, 3)]\n", + "[(2, 2, 1), (3, 3, 1)]\n", + "[(2,), (2,), (2,), (2,)]\n", + "(4, 2)\n", + "[BCOO(float32[2, 2, 1], nse=2), BCOO(float32[3, 3, 1], nse=3)]\n" + ] + }, + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'smoothed beliefs sparse')" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqIAAAF2CAYAAAC1RvpXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAvAklEQVR4nO3deXRTdf7/8Vfa0nQPIJS27ILIIotWARFapUoHFcURcERl+yooFUXcHf3hMmNFVBSQ1a+KzCjjAuj41WGz4uiAbFZHHRQVGUakCEiBAsE2n98fnmYI3ZKS9nNbno9zeg69ubl535u8mleT2+AyxhgBAAAAtSzC9gAAAAA4OVFEAQAAYAVFFAAAAFZQRAEAAGAFRRQAAABWUEQBAABgBUUUAAAAVlBEAQAAYAVFFAAAAFZQRIPw/fffy+Vy6cUXX/Qve/DBB+VyuewNFaJg5z3//PN1xhlnhPW227Rpo1GjRvm/f//99+VyufT+++9Xa3vr169Xnz59FB8fL5fLpfz8/LDMCWeqicdkRVwulx588MFK1yl9/L7++uthu90XX3xRLpdL33//vX/Z+eefr/PPP79a2ysuLtZdd92lli1bKiIiQoMHDw7LnMcq7+ci6iYyFrrayNjJgiKq/z5Ay/u65557gt7Oo48+qqVLl9bcoNAvv/yioUOHau/evZo2bZoWLlyo1q1b2x4LJ2jHjh168MEH+aUiTJ5//nlNnTpVQ4YM0YIFC3TbbbfZHgmWkbHwImPhE2V7ACd5+OGH1bZt24BlZ5xxhlq3bq3Dhw+rQYMGlV7/0Ucf1ZAhQ/jNqAoZGRk6fPiwoqOjQ77ut99+q23btmn+/Pm6/vrra2A62LBjxw499NBDatOmjXr06GF7HEdYvnx5ta/73nvvqXnz5po2bVoYJ0JdRsbKImPOQBE9xsCBA3X22WeXe1lMTEwtT/OrI0eOKDo6WhER9efF64iIiGofz127dkmSGjZsGMaJAOepzi9qpXbt2kVGgCqQsbIOHTqkuLi4Wr3N+tNualAw50K5XC4VFRVpwYIF/rf1jz0v8ocfftCYMWPUrFkzud1udenSRc8//3zANkrPi1m0aJHuv/9+NW/eXHFxcdq/f78k6eOPP9ZvfvMbeTwexcXFKTMzUx999FGZWT788EOdc845iomJUbt27TR37tyQ93njxo3q06ePYmNj1bZtW82ZM6fMOl6vV5MnT1b79u3ldrvVsmVL3XXXXfJ6vZVuu6JzRKvav1GjRikzM1OSNHToULlcLv/5PTt37tTo0aPVokULud1upaam6vLLLw84H+hkceDAAU2cOFFt2rSR2+1WcnKyLrroIm3atMm/Tuk5YZ999pkyMzMVFxen9u3b+8/JWr16tXr16qXY2FidfvrpWrlyZZnb+eSTTzRw4EAlJSUpISFBWVlZWrt2bZn1vvvuOw0dOlSNGzdWXFycevfurf/7v//zX/7+++/rnHPOkSSNHj3an5/j8/bll1/qggsuUFxcnJo3b67HH3+8zG0F+5j0er267bbb1LRpUyUmJuqyyy7Tf/7zn+APsqSSkhLdd999SklJUXx8vC677DJt3769zHrB5vZ45Z2/VtX+lf6sysvL0xdffOE/lqVZW7RokdLT05WYmKikpCR17dpVzzzzTJWz7Nu3T6NGjZLH41HDhg01cuRI7du3r9x1N2/erCFDhqhx48aKiYnR2WefrbfeeitgndLToT766CNNmjRJTZs2VXx8vK644gr99NNPAetu2LBB2dnZatKkif/n0ZgxYwLW8fl8evrpp9WlSxfFxMSoWbNmGjdunH7++ecq9606yBgZC3fGqrpeaWY++OADjRs3TqeccoqSkpI0YsSIMo/zN998U5dcconS0tLkdrvVrl07PfLIIyopKSmz/2eccYY2btyojIwMxcXF6b777pNUy7kzMC+88IKRZFauXGl++umngC9jjNm6dauRZF544QX/dSZPnmyOPXwLFy40brfb9OvXzyxcuNAsXLjQ/OMf/zDGGLNz507TokUL07JlS/Pwww+b2bNnm8suu8xIMtOmTfNvIy8vz0gynTt3Nj169DBPPfWUyc3NNUVFRWbVqlUmOjranHvuuebJJ58006ZNM926dTPR0dHm448/9m/js88+M7GxsaZVq1YmNzfXPPLII6ZZs2amW7duJpi7OzMz06SlpZnk5GRz8803m+nTp5u+ffsaSeZ///d//euVlJSYAQMGmLi4ODNx4kQzd+5cc/PNN5uoqChz+eWXB2yzdevWZuTIkWX2My8vz78smP37xz/+Ye677z4jydxyyy1m4cKFZvny5cYYY/r06WM8Ho+5//77zXPPPWceffRRc8EFF5jVq1dXuc/1zfDhw010dLSZNGmSee6558yUKVPMoEGDzJ/+9Cf/OqX3c8uWLc2dd95pZsyYYTp37mwiIyPNokWLTEpKinnwwQfN008/bZo3b248Ho/Zv3+///qff/65iY+PN6mpqeaRRx4xjz32mGnbtq1xu91m7dq1/vV27txpmjVrZhITE83vf/9789RTT5nu3bubiIgIs3jxYv86Dz/8sJFkxo4d68/Pt99+W2bWW2+91cyaNcv079/fSDLvvPOO/7ZCeUxee+21RpIZPny4mTlzpvntb3/rz8jkyZMrPb6lj9+uXbuabt26maeeesrcc889JiYmxnTo0MEcOnTIv26wuS39GbR169aA+ygzMzOk/Tt48KBZuHCh6dixo2nRooX/WO7cudMsX77cSDJZWVnm2WefNc8++6y5+eabzdChQyvdX5/PZzIyMkxERIQZP368mTFjhunfv7//eB37c/Hzzz83Ho/HdO7c2UyZMsXMnDnTZGRkGJfL5b+/j93fM8880/Tv39/MmDHD3H777SYyMtIMGzbMv15BQYFp1KiR6dChg5k6daqZP3+++f3vf286deoUMOP1119voqKizA033GDmzJlj7r77bhMfH2/OOeccc/To0Ur3rzrIGBkLZ8aCuV7p/F27djX9+vUz06dPNzk5OSYiIsJkZGQYn8/nX3fw4MFm2LBhZurUqWb27Nlm6NChRpK54447Am43MzPTpKSkmKZNm5oJEyaYuXPnmqVLl9Z67iii5r93cHlfxgRXRI0xJj4+PqBwlfqf//kfk5qaanbv3h2w/He/+53xeDz+UJWG79RTTw0Ims/nM6eddprJzs4OeLAdOnTItG3b1lx00UX+ZYMHDzYxMTFm27Zt/mVffvmliYyMDLqISjJPPvmkf5nX6zU9evQwycnJ/gfXwoULTUREhPn73/8ecP05c+YYSeajjz7yL6uqiIayf6XXfe211/zLfv75ZyPJTJ06tcr9Oxl4PB6Tk5NT6Tql9/PLL7/sX7Z582YjyURERAQ80S1btqzM43/w4MEmOjra/0RmjDE7duwwiYmJJiMjw79s4sSJRlLA4+TAgQOmbdu2pk2bNqakpMQYY8z69evL3Mbxs7700kv+ZV6v16SkpJgrr7zSvyzYx2R+fr6RZMaPHx+w3vDhw0N6kmzevHlAcXj11VeNJPPMM88YY0J7XAfzJBlK5jIzM02XLl0C1rv11ltN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LJTrbdmyRRdccIH/+4MHD+rHH3/UxRdfLOnXT0jYs2ePFi9erIyMDP96W7duDXlfait3nCMaRvHx8WU+0iQyMlJXXnml3njjDX3++edlrnP8R5WUJz09Xe3atdMTTzyhgwcPVriNyMhIZWdna+nSpfr3v//tv/xf//qXli1bFvR+FBcXB3zk09GjRzV37lw1bdpU6enpkn59ReCHH37Q/Pnzy1z/8OHDKioqCvr2gt2/ihw6dEhHjhwJWNauXTslJibW6qvETlBSUlLmrZfk5GSlpaWF7VhERkZqwIABevPNNwPeDiooKNDLL7+svn37KikpSZJ08cUXa926dVqzZo1/vaKiIs2bN09t2rRR586dJcn/S09FHwkUjGAfk6VFYfr06QHrPP300yHd3ksvvaQDBw74v3/99df1448/+rd/oo/r451o5vbs2RPwfUREhP8JvbLHxsUXX6zi4mLNnj3bv6ykpEQzZswIWC85OVnnn3++5s6dqx9//LHMdkLdX+nXt6qPf5Ww9JWv0pmHDRumkpISPfLII2WuX1xcfEKPqfKQMTJWkepmLJTrzZs3L+C8zdmzZ6u4uNh/TEpf2T42N0ePHtWsWbMqnf1YtZ07XhENo/T0dK1cuVJPPfWU0tLS1LZtW/Xq1UuPPfaY8vLy1KtXL91www3q3Lmz9u7dq02bNmnlypXau3dvpduNiIjQc889p4EDB6pLly4aPXq0mjdvrh9++EF5eXlKSkrSX//6V0nSQw89pL/97W/q16+fxo8fr+LiYs2YMUNdunQJONenMmlpaZoyZYq+//57dejQQX/5y1+Un5+vefPm+U+Svu666/Tqq6/qxhtvVF5ens477zyVlJRo8+bNevXVV7Vs2bKgz7cNZf/K8/XXXysrK0vDhg1T586dFRUVpSVLlqigoCDgDwVOBgcOHFCLFi00ZMgQde/eXQkJCVq5cqXWr1+vJ598Mmy384c//EErVqxQ3759NX78eEVFRWnu3Lnyer0Bnz14zz336JVXXtHAgQN1yy23qHHjxlqwYIG2bt2qN954w/8fNbRr104NGzbUnDlzlJiYqPj4ePXq1avM+dKVCfYx2aNHD1199dWaNWuWCgsL1adPH61atUrffPNNSMegcePG6tu3r0aPHq2CggI9/fTTat++vW644QZJJ/64ru7+VeT666/X3r171b9/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eGStYnUla3X+HNHo6Gilp6dr1apV/mU+n0+rVq2yfl6GkxhjdPPNN2vJkiV677331LZtW9sjleHz+eT1eq3cdlZWlv75z38qPz/f/3X22WfrmmuuUX5+viPCahtZq1pdyJlE1pyOrFWNrFWtrmStzr8iKkmTJk3SyJEjdfbZZ6tnz556+umnVVRUpNGjR1ub6eDBg/rmm2/832/dulX5+flq3LixWrVqVevz5OTk6OWXX9abb76pxMRE7dy5U5Lk8XgUGxtb6/Pce++9GjhwoFq1aqUDBw7o5Zdf1vvvv69ly5bV+iySlJiYWObcovj4eJ1yyinWzzlyEqdljZxVjazVTWStcmStanUma5b/aj9sZsyYYVq1amWio6NNz549zdq1a63Ok5eXZySV+Ro5cqSVecqbRZJ54YUXrMwzZswY07p1axMdHW2aNm1qsrKyzPLly63MUhEnfsyFEzgpa+SsamSt7iJrFSNr1ePErLmMMabG2y4AAABwnDp/jigAAADqJoooAAAArKCIAgAAwAqKKAAAAKygiAIAAMAKiigAAACsoIgCAADACoooAAAArKCIAgAAwAqKKAAAAKygiAIAAMAKiigAAACs+P/KiBcpA9JJYgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "res, (beliefs, smoothed_dense, smoothed_sparse) = experiment([2, 3])\n", + "\n", + "fig, axes = plt.subplots(2, 3, figsize=(8, 4), sharex=True)\n", + "\n", + "sns.heatmap(beliefs[0].mT, ax=axes[0, 0], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(beliefs[1].mT, ax=axes[1, 0], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "\n", + "sns.heatmap(smoothed_dense[0][0].mT, ax=axes[0, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(smoothed_dense[1][0].mT, ax=axes[1, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "\n", + "sns.heatmap(smoothed_sparse[0][0].mT, ax=axes[0, 2], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(smoothed_sparse[1][0].mT, ax=axes[1, 2], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "\n", + "axes[0, 0].set_title('Filtered beliefs')\n", + "axes[0, 1].set_title('smoothed beliefs dense')\n", + "axes[0, 2].set_title('smoothed beliefs sparse')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Benchmarking runtime and memory performance" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 1\n", + "\t [1000, 3000]\n", + "(1, 5, 1000)\n", + "[(5, 1000), (5, 3000)]\n", + "[(1000, 1000, 1), (3000, 3000, 1)]\n", + "[(2,), (2,), (2,), (2,)]\n", + "(4, 2)\n", + "[BCOO(float32[1000, 1000, 1], nse=1000), BCOO(float32[3000, 3000, 1], nse=3000)]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-06-14 11:53:36.827341: E external/xla/xla/service/slow_operation_alarm.cc:65] \n", + "********************************\n", + "[Compiling module jit_scan] Very slow compile? If you want to file a bug, run with envvar XLA_FLAGS=--xla_dump_to=/tmp/foo and attach the results.\n", + "********************************\n", + "2024-06-14 12:51:19.453611: E external/xla/xla/service/slow_operation_alarm.cc:133] The operation took 59m42.628272s\n", + "\n", + "********************************\n", + "[Compiling module jit_scan] Very slow compile? If you want to file a bug, run with envvar XLA_FLAGS=--xla_dump_to=/tmp/foo and attach the results.\n", + "********************************\n" + ] + } + ], + "source": [ + "n_steps = 10\n", + "\n", + "res = []\n", + "for i in range(1, n_steps):\n", + " print(f\"Step {i}\")\n", + " num_states = [1000 * i, 3000 * i]\n", + " print('\\t', num_states)\n", + " results, bel = experiment(num_states)\n", + " res += [results]\n", + " print('\\t', res[-1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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af/wMjIyqFGjRlS1alWqUKECtWzZkm7evElERBcvXiQnJydq37497d27Vzh2xowZFB0dbRQTXxXs0V+xYkVq164dXb16VXjxEhGdP3/e6PMs2J5vvfUW1alTh8LCwqhTp0506tQpIiL677//jD7PggoWuQ0bNqTq1auTSCSili1b0smTJ4kov7/U4MGDjXqkXME32sDAQOrQoYNwn/b1nZ6eToMGDTLqPAv+rYaGhlKrVq2oW7duVLVqVRo4cKBw/4IFC8jW1pY++OAD2r17N6WlpdGiRYuoXLlyz11CM0Ta121WVhYNHTqUDh06JOSmvS89Pd3oX7cFTZgwgUQiEbVp00anINL+fUqlUqPNs+DfZ4UKFahFixbk7u5OkydPFvYx5PY062JI+4eXlZVFlSpVoh49etClS5do1apVFB4eTjt37hT2/e+//ygyMpJq1apFderUoYEDB5KVlZVwys8YqNVqGjRoEHXq1EnYFh8fT1evXqU7d+4QUX6FXr16daPOMycnh6pUqULdu3enM2fO0K+//kqtWrUiOzs72r59OxHl52ns7VmQTCajiIgI6tOnD507d074T+vdd98V9snNzaWJEyca9Ui5zMxM8vX1pV69egnbHj169Nx/lOPHjzfqPJVKJXXs2JG6dOlCRPltN2nSJHr//fd19lu9ejU1adKEXFxcqFKlSuTu7m5Ueebk5FB0dDSJRCKKioqikydPPne51xRet1rTpk0TPmuaNm1Kf/31l3BfXl4effnll0aZp7bNMjIyyNfXl7p160ZERJMnT6aqVavStWvXhH0NtT1FRESlP5uR4VKpVOjduzdUKhXWrVsHS0tLAECbNm3wzjvvwM/PD56enggJCcGdO3dw9OhR7NmzB+XLl0eTJk3QokULEJEwQZ+ha9WqFfr3748+ffpg6NChOH36NB48eACNRoMff/wR3bp1w927d3HkyBGjzXPdunVYvHgxtm7dKkze9fPPP2PIkCGwtrbG5s2b0bJlS9y9exdHjx7F7t27jTJPLY1Gg0mTJuHff//F8uXL4eLiAgDYsmULhg0bhnPnzsHNzU3I6fjx44iLi0NeXh5q1KiBunXrGkXOarUaAwYMwKpVq4QJMD/66COcPXsWp06dQqNGjdC5c2d89NFHEIvFOHbsGK5fv250eQJASkoK2rdvj0mTJqFt27YAgNmz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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "keys = list(set(r.replace(\"_dense\", \"\").replace(\"_sparse\", \"\") for r in res[0].keys())) \n", + "n_plots = len(keys)\n", + "\n", + "fig, ax = plt.subplots(n_plots, 1, figsize=(6, 3 * n_plots))\n", + "for i, a in enumerate(ax.flatten()):\n", + " k = keys[i]\n", + " a.plot([r[k + \"_dense\"] for r in res], label=f\"{k.replace('_', ' ').capitalize()} dense\")\n", + " a.plot([r[k + \"_sparse\"] for r in res], label=f\"{k} sparse\")\n", + " a.set_xticks(list(range(0, len(res))))\n", + " a.set_xticklabels([f\"[{1000*i}, {3000*i}]\" for i in range(1, n_steps)], rotation=45)\n", + " m = max([r[k + \"_dense\"] for r in res] + [r[k + \"_sparse\"] for r in res]) * 1.05\n", + " a.set_ylim([0, m])\n", + "\n", + "plt.tight_layout()\n", + "[a.legend() for a in ax.flatten()]\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/pymdp/jax/inference.py b/pymdp/jax/inference.py index aa7b7abe..b80e9a82 100644 --- a/pymdp/jax/inference.py +++ b/pymdp/jax/inference.py @@ -4,6 +4,7 @@ import jax.numpy as jnp from .algos import run_factorized_fpi, run_mmp, run_vmp +from .utils import Leaf from jax import tree_util as jtu, lax from multimethod import multimethod from jax.experimental.sparse._base import JAXSparse @@ -12,17 +13,6 @@ import copy -def to_dense(x: JAXSparse): - """ - Workaround for the case when .todense() on jax sparse array fails due to validate estimating n_dense - to be smaller than 0 - """ - dense = jnp.zeros(x.shape) - for val, idcs in zip(x.data.reshape(-1), x.indices.reshape(-1, len(x.shape))): - dense = dense.at[*idcs].set(val) - return dense - - def update_posterior_states( A, B, @@ -39,7 +29,9 @@ def update_posterior_states( if method == "fpi" or method == "ovf": # format obs to select only last observation curr_obs = jtu.tree_map(lambda x: x[-1], obs) - qs = run_factorized_fpi(A, curr_obs, prior, A_dependencies, num_iter=num_iter) + qs = run_factorized_fpi( + A, curr_obs, prior, A_dependencies, num_iter=num_iter + ) else: # format B matrices using action sequences here # TODO: past_actions can be None @@ -49,19 +41,43 @@ def update_posterior_states( # move time steps to the leading axis (leftmost) # this assumes that a policy is always specified as the rightmost axis of Bs - B = jtu.tree_map(lambda b, a_idx: jnp.moveaxis(b[..., a_idx], -1, 0), B, actions_tree) + B = jtu.tree_map( + lambda b, a_idx: jnp.moveaxis(b[..., a_idx], -1, 0), + B, + actions_tree, + ) else: B = None # outputs of both VMP and MMP should be a list of hidden state factors, where each qs[f].shape = (T, batch_dim, num_states_f) if method == "vmp": - qs = run_vmp(A, B, obs, prior, A_dependencies, B_dependencies, num_iter=num_iter) + qs = run_vmp( + A, + B, + obs, + prior, + A_dependencies, + B_dependencies, + num_iter=num_iter, + ) if method == "mmp": - qs = run_mmp(A, B, obs, prior, A_dependencies, B_dependencies, num_iter=num_iter) + qs = run_mmp( + A, + B, + obs, + prior, + A_dependencies, + B_dependencies, + num_iter=num_iter, + ) if qs_hist is not None: if method == "fpi" or method == "ovf": - qs_hist = jtu.tree_map(lambda x, y: jnp.concatenate([x, jnp.expand_dims(y, 0)], 0), qs_hist, qs) + qs_hist = jtu.tree_map( + lambda x, y: jnp.concatenate([x, jnp.expand_dims(y, 0)], 0), + qs_hist, + qs, + ) else: # TODO: return entire history of beliefs qs_hist = qs @@ -87,7 +103,9 @@ def joint_dist_factor(b: Array, filtered_qs, actions): qs_joint = time_b * jnp.expand_dims(qs_filter, -1) # cond dist - timestep x s_{t} | s_{t+1} - qs_backward_cond = jnp.moveaxis(qs_joint / qs_joint.sum(-2, keepdims=True), -2, -1) + qs_backward_cond = jnp.moveaxis( + qs_joint / qs_joint.sum(-2, keepdims=True), -2, -1 + ) # tranpose_idx = list(range(len(qs_joint.shape[:-2]))) + [qs_joint.ndim-1, qs_joint.ndim-2] # qs_backward_cond = (qs_joint / qs_joint.sum(-2, keepdims=True).todense()).transpose(tranpose_idx) @@ -98,13 +116,37 @@ def step_fn(qs_smooth_past, backward_b): return qs_smooth, (qs_smooth, qs_joint) # seq_qs will contain a sequence of smoothed marginals and joints - _, seq_qs = lax.scan(step_fn, qs_last, qs_backward_cond, reverse=True, unroll=2) + _, seq_qs = lax.scan( + step_fn, qs_last, qs_backward_cond, reverse=True, unroll=2 + ) # we add the last filtered belief to smoothed beliefs - qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0) + qs_smooth_all = jnp.concatenate( + [seq_qs[0], jnp.expand_dims(qs_last, 0)], 0 + ) return qs_smooth_all, seq_qs[1] +def scan(f, init, xs, length=None, reverse=False): + if xs is None: + xs = [None] * length + if reverse: + xs = xs[::-1] + + carry = init + ys = [] + for x in xs: + carry, y = f(carry, x) + ys.append(y) + + lists = [[] for _ in range(len(ys[0]))] + for y in ys: + for i, yi in enumerate(y): + lists[i].append(yi) + + return carry, lists + + @multimethod def joint_dist_factor(b: JAXSparse, filtered_qs, actions): qs_last = filtered_qs[-1] @@ -117,20 +159,30 @@ def joint_dist_factor(b: JAXSparse, filtered_qs, actions): qs_joint = time_b * jnp.expand_dims(qs_filter, -1) # cond dist - timestep x s_{t} | s_{t+1} - tranpose_idx = list(range(len(qs_joint.shape[:-2]))) + [qs_joint.ndim - 1, qs_joint.ndim - 2] - qs_backward_cond = (qs_joint / qs_joint.sum(-2, keepdims=True).todense()).transpose(tranpose_idx) + tranpose_idx = list(range(len(qs_joint.shape[:-2]))) + [ + qs_joint.ndim - 1, + qs_joint.ndim - 2, + ] + qs_backward_cond = ( + qs_joint / qs_joint.sum(-2, keepdims=True).todense() + ).transpose(tranpose_idx) def step_fn(qs_smooth_past, t): qs_joint = qs_backward_cond[t] * qs_smooth_past qs_smooth = qs_joint.sum(-1) - return qs_smooth.todense(), (qs_smooth.todense(), to_dense(qs_joint)) + return qs_smooth.todense(), (qs_smooth.todense(), Leaf(qs_joint)) # seq_qs will contain a sequence of smoothed marginals and joints - _, seq_qs = lax.scan(step_fn, qs_last, jnp.arange(qs_backward_cond.shape[0]), reverse=True, unroll=2) + # _, seq_qs = lax.scan(step_fn, qs_last, jnp.arange(qs_backward_cond.shape[0]), reverse=True, unroll=2) + _, seq_qs = scan( + step_fn, qs_last, jnp.arange(qs_backward_cond.shape[0]), reverse=True + ) # we add the last filtered belief to smoothed beliefs - qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0) + qs_smooth_all = jnp.concatenate( + [jnp.array(seq_qs[0]), jnp.expand_dims(qs_last, 0)], 0 + ) return qs_smooth_all, seq_qs[1] diff --git a/pymdp/jax/utils.py b/pymdp/jax/utils.py index 8086c293..c58ca57f 100644 --- a/pymdp/jax/utils.py +++ b/pymdp/jax/utils.py @@ -8,49 +8,84 @@ import jax import jax.numpy as jnp +import jax.tree_util as jtu import numpy as np -from typing import (Any, Callable, List, NamedTuple, Optional, Sequence, Union, Tuple) - -Tensor = Any # maybe jnp.ndarray, but typing seems not to be well defined for jax +from typing import ( + Any, + Callable, + List, + NamedTuple, + Optional, + Sequence, + Union, + Tuple, +) + +Tensor = ( + Any # maybe jnp.ndarray, but typing seems not to be well defined for jax +) Vector = List[Tensor] Shape = Sequence[int] ShapeList = list[Shape] + +class Leaf: + """A Leaf class to wrap a value as a leaf node""" + + def __init__(self, value): + self.value = value + + +def leaf_flatten(leaf): + return [], leaf.value + + +def leaf_unflatten(aux_data, children): + return Leaf(aux_data) + + +jtu.register_pytree_node(Leaf, leaf_flatten, leaf_unflatten) + + def norm_dist(dist: Tensor) -> Tensor: - """ Normalizes a Categorical probability distribution""" - return dist/dist.sum(0) + """Normalizes a Categorical probability distribution""" + return dist / dist.sum(0) + def list_array_uniform(shape_list: ShapeList) -> Vector: - """ + """ Creates a list of jax arrays representing uniform Categorical distributions with shapes given by shape_list[i]. The shapes (elements of shape_list) can either be tuples or lists. """ arr = [] for shape in shape_list: - arr.append( norm_dist(jnp.ones(shape)) ) + arr.append(norm_dist(jnp.ones(shape))) return arr + def list_array_zeros(shape_list: ShapeList) -> Vector: - """ + """ Creates a list of 1-D jax arrays filled with zeros, with shapes given by shape_list[i] """ arr = [] for shape in shape_list: - arr.append( jnp.zeros(shape) ) + arr.append(jnp.zeros(shape)) return arr -def list_array_scaled(shape_list: ShapeList, scale: float=1.0) -> Vector: - """ + +def list_array_scaled(shape_list: ShapeList, scale: float = 1.0) -> Vector: + """ Creates a list of 1-D jax arrays filled with scale, with shapes given by shape_list[i] """ arr = [] for shape in shape_list: - arr.append( scale * jnp.ones(shape) ) - + arr.append(scale * jnp.ones(shape)) + return arr + def get_combination_index(x, dims): """ Find the index of an array of categorical values in an array of categorical dimensions @@ -61,13 +96,13 @@ def get_combination_index(x, dims): ``numpy.ndarray`` or ``jax.Array`` of categorical values to be converted into combination index dims: ``list`` of ``int`` ``list`` of ``int`` of categorical dimensions used for conversion - + Returns ---------- index: ``np.ndarray`` or `jax.Array` of shape `(batch_size)` ``np.ndarray`` or `jax.Array` index of the combination """ - assert isinstance(x, jax.Array) or isinstance(x, np.ndarray) + assert isinstance(x, jax.Array) or isinstance(x, np.ndarray) assert x.shape[-1] == len(dims) index = 0 @@ -77,6 +112,7 @@ def get_combination_index(x, dims): product *= dims[i] return index + def index_to_combination(index, dims): """ Convert the combination index according to an array of categorical dimensions back to an array of categorical values @@ -87,7 +123,7 @@ def index_to_combination(index, dims): ``np.ndarray`` or `jax.Array` index of the combination dims: ``list`` of ``int`` ``list`` of ``int`` of categorical dimensions used for conversion - + Returns ---------- x: ``numpy.ndarray`` or ``jax.Array`` of shape `(batch_size, act_dims)` @@ -97,10 +133,11 @@ def index_to_combination(index, dims): for base in reversed(dims): x.append(index % base) index = index // base - + x = np.flip(np.stack(x, axis=-1), axis=-1) return x + # def onehot(value, num_values): # arr = np.zeros(num_values) # arr[value] = 1.0 @@ -137,22 +174,22 @@ def index_to_combination(index, dims): # def random_single_categorical(shape_list): # """ -# Creates a random 1-D categorical distribution (or set of 1-D categoricals, e.g. multiple marginals of different factors) and returns them in an object array +# Creates a random 1-D categorical distribution (or set of 1-D categoricals, e.g. multiple marginals of different factors) and returns them in an object array # """ - + # num_sub_arrays = len(shape_list) # out = obj_array(num_sub_arrays) # for arr_idx, shape_i in enumerate(shape_list): # out[arr_idx] = norm_dist(np.random.rand(shape_i)) - + # return out # def construct_controllable_B(num_states, num_controls): # """ -# Generates a fully controllable transition likelihood array, where each -# action (control state) corresponds to a move to the n-th state from any +# Generates a fully controllable transition likelihood array, where each +# action (control state) corresponds to a move to the n-th state from any # other state, for each control factor # """ @@ -169,7 +206,7 @@ def index_to_combination(index, dims): # def dirichlet_like(template_categorical, scale = 1.0): # """ # Helper function to construct a Dirichlet distribution based on an existing Categorical distribution -# """ +# """ # if not is_obj_array(template_categorical): # warnings.warn( @@ -181,7 +218,7 @@ def index_to_combination(index, dims): # n_sub_arrays = len(template_categorical) # dirichlet_out = obj_array(n_sub_arrays) - + # for i, arr in enumerate(template_categorical): # dirichlet_out[i] = scale * arr @@ -199,7 +236,7 @@ def index_to_combination(index, dims): # num_modalities = len(num_obs) # else: # num_obs, num_modalities = None, None - + # if B is not None: # num_states = [b.shape[0] for b in B] if is_obj_array(B) else [B.shape[0]] # num_factors = len(num_states) @@ -209,7 +246,7 @@ def index_to_combination(index, dims): # num_factors = len(num_states) # else: # num_states, num_factors = None, None - + # return num_obs, num_states, num_modalities, num_factors # def get_model_dimensions_from_labels(model_labels): @@ -233,14 +270,12 @@ def index_to_combination(index, dims): # return num_obs, num_modalities, num_states, num_factors - - # def norm_dist_obj_arr(obj_arr): # normed_obj_array = obj_array(len(obj_arr)) # for i, arr in enumerate(obj_arr): # normed_obj_array[i] = norm_dist(arr) - + # return normed_obj_array # def is_normalized(dist): @@ -258,7 +293,7 @@ def index_to_combination(index, dims): # else: # column_sums = dist.sum(axis=0) # out = np.allclose(column_sums, np.ones_like(column_sums)) - + # return out # def is_obj_array(arr): @@ -279,7 +314,7 @@ def index_to_combination(index, dims): # def process_observation_seq(obs_seq, n_modalities, n_observations): # """ -# Helper function for formatting observations +# Helper function for formatting observations # Observations can either be `int` (converted to one-hot) # or `tuple` (obs for each modality), or `list` (obs for each modality) @@ -293,9 +328,9 @@ def index_to_combination(index, dims): # def process_observation(obs, num_modalities, num_observations): # """ -# Helper function for formatting observations +# Helper function for formatting observations # USAGE NOTES: -# - If `obs` is a 1D numpy array, it must be a one-hot vector, where one entry (the entry of the observation) is 1.0 +# - If `obs` is a 1D numpy array, it must be a one-hot vector, where one entry (the entry of the observation) is 1.0 # and all other entries are 0. This therefore assumes it's a single modality observation. If these conditions are met, then # this function will return `obs` unchanged. Otherwise, it'll throw an error. # - If `obs` is an int, it assumes this is a single modality observation, whose observation index is given by the value of `obs`. This function will convert @@ -325,28 +360,28 @@ def index_to_combination(index, dims): # def convert_observation_array(obs, num_obs): # """ # Converts from SPM-style observation array to infer-actively one-hot object arrays. - + # Parameters # ---------- # - 'obs' [numpy 2-D nd.array]: -# SPM-style observation arrays are of shape (num_modalities, T), where each row -# contains observation indices for a different modality, and columns indicate -# different timepoints. Entries store the indices of the discrete observations -# within each modality. +# SPM-style observation arrays are of shape (num_modalities, T), where each row +# contains observation indices for a different modality, and columns indicate +# different timepoints. Entries store the indices of the discrete observations +# within each modality. # - 'num_obs' [list]: -# List of the dimensionalities of the observation modalities. `num_modalities` -# is calculated as `len(num_obs)` in the function to determine whether we're -# dealing with a single- or multi-modality +# List of the dimensionalities of the observation modalities. `num_modalities` +# is calculated as `len(num_obs)` in the function to determine whether we're +# dealing with a single- or multi-modality # case. # Returns # ---------- -# - `obs_t`[list]: -# A list with length equal to T, where each entry of the list is either a) an object -# array (in the case of multiple modalities) where each sub-array is a one-hot vector +# - `obs_t`[list]: +# A list with length equal to T, where each entry of the list is either a) an object +# array (in the case of multiple modalities) where each sub-array is a one-hot vector # with the observation for the correspond modality, or b) a 1D numpy array (in the case -# of one modality) that is a single one-hot vector encoding the observation for the +# of one modality) that is a single one-hot vector encoding the observation for the # single modality. # """ @@ -378,13 +413,13 @@ def index_to_combination(index, dims): # def reduce_a_matrix(A): # """ # Utility function for throwing away dimensions (lagging dimensions, hidden state factors) -# of a particular A matrix that are independent of the observation. +# of a particular A matrix that are independent of the observation. # Parameters: # ========== # - `A` [np.ndarray]: # The A matrix or likelihood array that encodes probabilistic relationship # of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) -# and observations (leading dimension, rows). +# and observations (leading dimension, rows). # Returns: # ========= # - `A_reduced` [np.ndarray]: @@ -412,10 +447,10 @@ def index_to_combination(index, dims): # original_factor_idx.append(factor_i) # else: # level_counter += 1 - + # if break_flag is False: # excluded_factor_idx.append(factor_i+1) - + # A_reduced = A.mean(axis=tuple(excluded_factor_idx)).squeeze() # return A_reduced, original_factor_idx @@ -429,7 +464,7 @@ def index_to_combination(index, dims): # - `A_reduced` [np.ndarray]: # The reduced A matrix or likelihood array that encodes probabilistic relationship # of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) -# and observations (leading dimension, rows). +# and observations (leading dimension, rows). # - `original_factor_idx` [list]: # List of hidden state indices in terms of the full hidden state factor list, that comprise # the lagging dimensions of `A_reduced` @@ -441,15 +476,15 @@ def index_to_combination(index, dims): # - `A` [np.ndarray]: # The full A matrix, containing all the lagging dimensions that correspond to hidden state factors, including # those that are statistically independent of observations - -# @ NOTE: This is the "inverse" of the reduce_a_matrix function, + +# @ NOTE: This is the "inverse" of the reduce_a_matrix function, # i.e. `reduce_a_matrix(construct_full_a(A_reduced, original_factor_idx, num_states)) == A_reduced, original_factor_idx` # """ # o_dim = A_reduced.shape[0] # dimensionality of the support of the likelihood distribution (i.e. the number of observation levels) # full_dimensionality = [o_dim] + num_states # full dimensionality of the output (`A`) # fill_indices = [0] + [f+1 for f in original_factor_idx] # these are the indices of the dimensions we need to fill for this modality -# fill_dimensions = np.delete(full_dimensionality, fill_indices) +# fill_dimensions = np.delete(full_dimensionality, fill_indices) # original_factor_dims = [num_states[f] for f in original_factor_idx] # dimensionalities of the relevant factors # prefilled_slices = [slice(0, o_dim)] + [slice(0, ns) for ns in original_factor_dims] # these are the slices that are filled out by the provided `A_reduced` @@ -458,9 +493,9 @@ def index_to_combination(index, dims): # for item in itertools.product(*[list(range(d)) for d in fill_dimensions]): # slice_ = list(item) -# A_indices = insert_multiple(slice_, fill_indices, prefilled_slices) #here we insert the correct values for the fill indices for this slice +# A_indices = insert_multiple(slice_, fill_indices, prefilled_slices) #here we insert the correct values for the fill indices for this slice # A[tuple(A_indices)] = A_reduced - + # return A # def create_A_matrix_stub(model_labels): @@ -512,7 +547,7 @@ def index_to_combination(index, dims): # cell_values = np.zeros((num_rows, num_state_action_combos)) # next_state_list = state_labels[factor] - + # B_matrix_f = pd.DataFrame(cell_values, index = next_state_list, columns=prev_state_action_combos) # B_matrices[factor] = B_matrix_f @@ -537,7 +572,7 @@ def index_to_combination(index, dims): # level_counts = {} # for sheet_name, raw_table in all_sheets.items(): - + # level_counts[sheet_name] = { # "index": raw_table.iloc[0, :].dropna().index[0]+1, # "header": raw_table.iloc[0, :].dropna().index[0]+2, @@ -552,13 +587,13 @@ def index_to_combination(index, dims): # header=list(range(level_counts_sheet["header"])) # ).astype(np.float64) # stub_dict[sheet_name] = sheet_f - + # return stub_dict # def convert_A_stub_to_ndarray(A_stub, model_labels): # """ # This function converts a multi-index pandas dataframe `A_stub` into an object array of different -# A matrices, one per observation modality. +# A matrices, one per observation modality. # """ # num_obs, num_modalities, num_states, num_factors = get_model_dimensions_from_labels(model_labels) @@ -582,7 +617,7 @@ def index_to_combination(index, dims): # B = obj_array(num_factors) # for f, factor_name in enumerate(B_stubs.keys()): - + # B[f] = B_stubs[factor_name].to_numpy().reshape(num_states[f], num_states[f], num_controls[f]) # assert (B[f].sum(axis=0) == 1.0).all(), 'B matrix not normalized! Check your initialization....\n' @@ -592,7 +627,7 @@ def index_to_combination(index, dims): # """ # This function constructs array-ified (not nested) versions -# of the posterior belief arrays, that are separated +# of the posterior belief arrays, that are separated # by policy, timepoint, and hidden state factor # """ @@ -614,14 +649,14 @@ def index_to_combination(index, dims): # for policy_i in range(num_policies): # for timestep in range(num_timesteps): # belief_array[policy_i, :, timestep] = qx[policy_i][timestep][0] - + # return belief_array # def build_xn_vn_array(xn): # """ # This function constructs array-ified (not nested) versions -# of the posterior xn (beliefs) or vn (prediction error) arrays, that are separated +# of the posterior xn (beliefs) or vn (prediction error) arrays, that are separated # by iteration, hidden state factor, timepoint, and policy # """ @@ -643,6 +678,6 @@ def index_to_combination(index, dims): # xn_array = np.zeros( (num_itr, num_states, infer_len, num_policies) ) # for policy_i in range(num_policies): # for itr in range(num_itr): -# xn_array[itr,:,:,policy_i] = xn[policy_i][itr][0] - +# xn_array[itr,:,:,policy_i] = xn[policy_i][itr][0] + # return xn_array From 92b5e4d5a335cacd1b8de120698b29b6eb50eaeb Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Thu, 27 Jun 2024 11:51:26 +0200 Subject: [PATCH 136/196] comment policies multi --- pymdp/jax/agent.py | 148 ++++++++++++++++++++++++--------------------- 1 file changed, 79 insertions(+), 69 deletions(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 0dbdf61e..0f6d9c8e 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -77,7 +77,7 @@ class Agent(Module): inductive_depth: int = field(static=True) # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) policies: Array = field(static=True) - policies_multi: Array = field(static=True) + # policies_multi: Array = field(static=True) # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy use_utility: bool = field(static=True) # flag for whether to use state information gain ("salience") when computing expected free energy @@ -141,7 +141,7 @@ def __init__( ): if B_action_dependencies is not None: assert num_controls is not None, "Please specify num_controls for complex action dependencies" - + # extract high level variables self.num_modalities = len(A) self.num_factors = len(B) @@ -150,12 +150,10 @@ def __init__( # extract dependencies for A and B matrices ( - self.A_dependencies, - self.B_dependencies, + self.A_dependencies, + self.B_dependencies, self.B_action_dependencies, - ) = self._construct_dependencies( - A_dependencies, B_dependencies, B_action_dependencies, A, B - ) + ) = self._construct_dependencies(A_dependencies, B_dependencies, B_action_dependencies, A, B) # extract A and B tensors A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] @@ -165,12 +163,14 @@ def __init__( # flatten B action dims for multiple action dependencies self.action_maps = None self.num_controls_multi = num_controls - if B_action_dependencies is not None: - self.policies_multi = control.construct_policies( + if ( + B_action_dependencies is not None + ): # note, this only works when B_action_dependencies is not the trivial case of [[0], [1], ...., [num_factors-1]] + policies_multi = control.construct_policies( self.num_controls_multi, self.num_controls_multi, policy_len, control_fac_idx ) B, self.action_maps = self._flatten_B_action_dims(B, self.B_action_dependencies) - policies = self._construct_flattend_policies(self.policies_multi, self.action_maps) + policies = self._construct_flattend_policies(policies_multi, self.action_maps) self.sampling_mode = "full" # extract shapes from A and B @@ -227,20 +227,20 @@ def __init__( if pB is not None and apply_batch: pB = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pB) - if C is not None and apply_batch: - C = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), C) - else: + if C is None: C = [jnp.ones((self.batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities)] + elif apply_batch: + C = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), C) - if D is not None and apply_batch: - D = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), D) - else: + if D is None: D = [jnp.ones((self.batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors)] + elif apply_batch: + D = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), D) - if E is not None and apply_batch: - E = jnp.broadcast_to(E, (self.batch_size,) + E.shape) - else: + if E is None: E = jnp.ones((self.batch_size, len(self.policies))) / len(self.policies) + elif apply_batch: + E = jnp.broadcast_to(E, (self.batch_size,) + E.shape) if self.use_inductive and self.H is not None: I = control.generate_I_matrix(H, B, self.inductive_threshold, self.inductive_depth) @@ -258,6 +258,7 @@ def __init__( self.I = I self.pA = pA self.pB = pB + self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) @@ -266,7 +267,7 @@ def __init__( # validate model self._validate() - + @vmap def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mask=None): """ @@ -334,7 +335,9 @@ def infer_policies(self, qs: List): Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. """ - latest_belief = jtu.tree_map(lambda x: x[-1], qs) # only get the posterior belief held at the current timepoint + latest_belief = jtu.tree_map( + lambda x: x[-1], qs + ) # only get the posterior belief held at the current timepoint q_pi, G = control.update_posterior_policies_inductive( self.policies, latest_belief, @@ -358,49 +361,45 @@ def infer_policies(self, qs: List): return q_pi, G @vmap - def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1., lr_pB=1., **kwargs): + def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1.0, lr_pB=1.0, **kwargs): agent = self - beliefs_B = beliefs_A if beliefs_B is None else beliefs_B - if self.inference_algo == 'ovf': - smoothed_marginals_and_joints = inference.smoothing_ovf(beliefs_A, self.B, actions) - marginal_beliefs = smoothed_marginals_and_joints[0] - joint_beliefs = smoothed_marginals_and_joints[1] - else: - marginal_beliefs = beliefs_A - if self.learn_B: - nf = len(beliefs_B) - joint_fn = lambda f: [beliefs_B[f][1:]] + [beliefs_B[f_idx][:-1] for f_idx in self.B_dependencies[f]] - joint_beliefs = jtu.tree_map(joint_fn, list(range(nf))) - if self.learn_A: - qA, E_qA = learning.update_obs_likelihood_dirichlet( - self.pA, - outcomes, - marginal_beliefs, - A_dependencies=self.A_dependencies, - num_obs=self.num_obs, - onehot_obs=self.onehot_obs, - lr=lr_pA, - ) - + o_vec_seq = jtu.tree_map(lambda o, dim: nn.one_hot(o, dim), outcomes, self.num_obs) + qA = learning.update_obs_likelihood_dirichlet(self.pA, o_vec_seq, beliefs_A, self.A_dependencies, lr=lr_pA) + E_qA = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qA) agent = tree_at(lambda x: (x.A, x.pA), agent, (E_qA, qA)) - + if self.learn_B: - assert beliefs_B[0].shape[0] == actions.shape[0] + 1 - qB, E_qB = learning.update_state_transition_dirichlet( - self.pB, - joint_beliefs, - actions, - num_controls=self.num_controls, - lr=lr_pB + beliefs_B = beliefs_A if beliefs_B is None else beliefs_B + # as many elements as there are control factors, where each element is a jnp.ndarray of shape (n_timesteps, ) + actions_seq = [actions[..., i] for i in range(actions.shape[-1])] + assert beliefs_B[0].shape[0] == actions_seq[0].shape[0] + 1 + actions_onehot = jtu.tree_map(lambda a, dim: nn.one_hot(a, dim, axis=-1), actions_seq, self.num_controls) + qB = learning.update_state_likelihood_dirichlet( + self.pB, beliefs_B, actions_onehot, self.B_dependencies, lr=lr_pB ) - + E_qB = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), qB) + # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece if self.use_inductive and self.H is not None: I_updated = control.generate_I_matrix(self.H, E_qB, self.inductive_threshold, self.inductive_depth) else: I_updated = self.I + agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) + + # if self.learn_C: + # self.qC = learning.update_C(self.C, *args, **kwargs) + # self.C = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), self.qC) + # if self.learn_D: + # self.qD = learning.update_D(self.D, *args, **kwargs) + # self.D = jtu.tree_map(lambda x: maths.dirichlet_expected_value(x), self.qD) + # if self.learn_E: + # self.qE = learning.update_E(self.E, *args, **kwargs) + # self.E = maths.dirichlet_expected_value(self.qE) + + return agent + @partial(vmap, in_axes=(0, 0, 0)) def infer_empirical_prior(self, action, qs): # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t @@ -433,7 +432,7 @@ def sample_action(self, q_pi: Array, rng_key=None): action = control.sample_policy( q_pi, self.policies, self.num_controls, self.action_selection, self.alpha, rng_key=rng_key ) - + return action @vmap @@ -468,7 +467,7 @@ def decode_multi_actions(self, action): """Decode flattened actions to multiple actions""" if self.action_maps is None: return action - + action_multi = jnp.zeros((self.batch_size, len(self.num_controls_multi))).astype(action.dtype) for f, action_map in enumerate(self.action_maps): if action_map["multi_dependency"] == []: @@ -477,22 +476,24 @@ def decode_multi_actions(self, action): action_multi_f = utils.index_to_combination(action[..., f], action_map["multi_dims"]) action_multi = action_multi.at[..., action_map["multi_dependency"]].set(action_multi_f) return action_multi - + def encode_multi_actions(self, action_multi): """Encode multiple actions to flattened actions""" if self.action_maps is None: return action_multi - + action = jnp.zeros((self.batch_size, len(self.num_controls))).astype(action_multi.dtype) for f, action_map in enumerate(self.action_maps): if action_map["multi_dependency"] == []: action = action.at[..., f].set(jnp.zeros_like(action_multi[..., 0])) continue - - action_f = utils.get_combination_index(action_multi[..., action_map["multi_dependency"]], action_map["multi_dims"]) + + action_f = utils.get_combination_index( + action_multi[..., action_map["multi_dependency"]], action_map["multi_dims"] + ) action = action.at[..., f].set(action_f) return action - + def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_dependencies, A, B): if A_dependencies is not None: A_dependencies = A_dependencies @@ -507,7 +508,7 @@ def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_depen _, B_dependencies = get_dependencies(A, B) else: B_dependencies = [[f] for f in range(self.num_factors)] - + """TODO: check B action shape""" if B_action_dependencies is not None: B_action_dependencies = B_action_dependencies @@ -517,36 +518,45 @@ def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_depen def _flatten_B_action_dims(self, B, B_action_dependencies): assert hasattr(B[0], "shape"), "Elements of B must be tensors and have attribute shape" - action_maps = [] # mapping from multi action dependencies to flat action dependencies for each B + action_maps = [] # mapping from multi action dependencies to flat action dependencies for each B B_flat = [] for i, (B_f, action_dependency) in enumerate(zip(B, B_action_dependencies)): if action_dependency == []: B_flat.append(jnp.expand_dims(B_f, axis=-1)) - action_maps.append({"multi_dependency": [], "multi_dims": [], "flat_dependency": [i], "flat_dims": [1]}) + action_maps.append( + {"multi_dependency": [], "multi_dims": [], "flat_dependency": [i], "flat_dims": [1]} + ) continue dims = [self.num_controls_multi[d] for d in action_dependency] - target_shape = list(B_f.shape)[:-len(action_dependency)] + [pymath.prod(dims)] + target_shape = list(B_f.shape)[: -len(action_dependency)] + [pymath.prod(dims)] B_flat.append(B_f.reshape(target_shape)) - action_maps.append({"multi_dependency": action_dependency, "multi_dims": dims, "flat_dependency": [i], "flat_dims": [pymath.prod(dims)]}) + action_maps.append( + { + "multi_dependency": action_dependency, + "multi_dims": dims, + "flat_dependency": [i], + "flat_dims": [pymath.prod(dims)], + } + ) return B_flat, action_maps - + def _construct_flattend_policies(self, policies, action_maps): policies_flat = [] - for action_map in action_maps: + for action_map in action_maps: if action_map["multi_dependency"] == []: policies_flat.append(jnp.zeros_like(policies[..., 0])) continue policies_flat.append( utils.get_combination_index( - policies[..., action_map["multi_dependency"]], + policies[..., action_map["multi_dependency"]], action_map["multi_dims"], ) ) policies_flat = jnp.stack(policies_flat, axis=-1) return policies_flat - + def _get_default_params(self): method = self.inference_algo default_params = None From bee88723583f5747e482e46efc6ead9cbe205c0f Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 27 Jun 2024 12:35:23 +0200 Subject: [PATCH 137/196] add demo notebooks for the two jax envs --- examples/envs/generalized_tmaze_demo.ipynb | 590 +++++++++++++++++++++ examples/envs/graph_worlds_demo.ipynb | 256 +++++++++ examples/generalized_tmaze_demo.ipynb | 211 -------- examples/graph_worlds_demo.ipynb | 340 ------------ 4 files changed, 846 insertions(+), 551 deletions(-) create mode 100644 examples/envs/generalized_tmaze_demo.ipynb create mode 100644 examples/envs/graph_worlds_demo.ipynb delete mode 100644 examples/generalized_tmaze_demo.ipynb delete mode 100644 examples/graph_worlds_demo.ipynb diff --git a/examples/envs/generalized_tmaze_demo.ipynb b/examples/envs/generalized_tmaze_demo.ipynb new file mode 100644 index 00000000..81b9d6bd --- /dev/null +++ b/examples/envs/generalized_tmaze_demo.ipynb @@ -0,0 +1,590 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generalized T-Maze environment" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", + "from pymdp.jax.envs.generalized_tmaze import (\n", + " GeneralizedTMazeEnv, parse_maze, render \n", + ")\n", + "from pymdp.jax.envs.rollout import rollout\n", + "from pymdp.jax.agent import Agent\n", + "\n", + "import numpy as np \n", + "import jax.random as jr \n", + "import jax.numpy as jnp\n", + "import jax.tree_util as jtu " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create the environment\n", + "\n", + "In this example we create a simple square environment, where multiple cues are present, and multiple reward pairs. Each cue indicates the location of one of the reward pairs. \n", + "\n", + "The agent is can move in the grid world using actions up, down, left and right, and observes the current tile it is at. \n", + "\n", + "The grid world is specified by a matrix using the following labels: \n", + "\n", + "```\n", + "0: Empty space\n", + "1: The initial position of the agent\n", + "2: Walls\n", + "3 + i: Cue for reward i\n", + "4 + i: Potential reward location i 1\n", + "4 + i: Potential reward location i 2\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0], [1], [2], [3]]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB220lEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zYU79nJMxc89znvMcwzRNExERERHxCkt1FyAiIiJyKVH4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4Eq/55z//iWEYHtPi4uIYNWqUV+uYOXMmhmGwb98+r+5Xzo1+PyJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7f8dxcXHn8JsRkYuVWr6qyfz582nWrBlXXHHFOa+zdetWrrrqKho2bMjjjz9OYGAgn3zyCYMHD2bu3LkMGTLEY/k//elPhIeH8+STT7Jv3z5eeeUVxo0bx5w5c9zLvP/++4wcOZJ+/frx3HPPkZuby7Rp07j66qv59ddfPf7IFxcX069fP66++mr+85//EBAQAMCnn35Kbm4uDz74IJGRkaxZs4ZXX32VgwcP8umnn1bovJx+uQ/g73//OykpKQQFBVXoPBw5coRrrrmG4uJi93JvvfWWV1tL7rjjDm644Qb27NlD06ZNAdclpFtuuQUfH59Syy9evJi9e/cyevRooqOj2bp1K2+99RZbt27l559/xjCMMi+LFhUVMWHCBHx9fd3Tli5dyo033kjXrl158sknsVgszJgxg2uvvZYffviByy+//Kz15+bmcvz48VLTw8LCsNlO/vnYvXs3t9xyC2PGjGHkyJG8++67jBo1iq5du9K2bVu6detGkyZN+OSTTxg5cqTHtubMmVNuGD3Vb7/9xvDhw/njH//IfffdR8uWLTl69Cg9evQgNzeX8ePHExkZyXvvvcf//d//8dlnn5X6f2LKlClYLBYeffRRMjIyeP755xkxYgS//PKLx3JpaWncfPPN3H777dx6661MmzaN22+/nQ8//JBHHnmEBx54gDvuuIMXXniBW265haSkJIKDgwE4evQoV155JYZhMG7cOKKioliwYAFjxowhMzOz1KXDs9X0//7f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9datW5c+ffowffp0kpOTSy1f1hASZ9OvXz9CQkJ49tlnKSoqOq9tlnxrP7Ve0zT573//W+F6AGbMmMH06dN5/fXXywylFTkPN910Ez///DNr1qzxmP/hhx+eV22na9OmDX379nW/unbtWu6y9957L08++SQvvvhiucuUdS6BMkc2f+qpp1i0aBEfffRRmZfjunbtStOmTfnPf/5T5uXt83m/VIbWrVvTvn175syZw5w5c6hfvz69evU67+3ddNNNrFmzhp9++sk9LScnh7feeou4uLhSfdOqmtVqZejQocydO7fMlu3zPe+BgYHnfQlfRC4+avmqJs2bN2f27NkMHz6cli1buke4N02TxMREZs+ejcVi8ehj9frrr3P11VfTvn177rvvPpo0acLRo0f56aefOHjwIBs3bqxQDSEhIUybNo277rqLLl26cPvttxMVFcWBAwf45ptvuOqqq3jttdfOuI1WrVrRtGlTHn30UQ4dOkRISAhz5849r/4qx48f56GHHqJNmzbY7XY++OADj/lDhgwhMDDwnM/DX//6V95//3369+/Pww8/7B5qIjY21uuPboqNjeWf//znGZcJCQmhV69ePP/88xQVFdGwYUO+++47EhMTPZbbvHkzzzzzDL169SIlJaXUebrzzjuxWCz873//48Ybb6Rt27aMHj2ahg0bcujQIZYtW0ZISAhff/31WevesGFDqe2Dq2Wte/fuZz/wMgwbNownnngCPz8/xowZc0EDCT/++ON89NFH3HjjjYwfP56IiAjee+89EhMTmTt3brUMUjxlyhSWLVvGFVdcwX333UebNm1ITU1lw4YNLFmyhNTU1Apvs2vXrsyZM4eJEydy2WWXERQUxMCBA6ugehHxBoWvajRo0CA2b97Miy++yHfffce7776LYRjExsYyYMAAHnjgATp27Ohevk2bNqxbt46nnnqKmTNncuLECerWrUvnzp09LlNVxB133EGDBg2YMmUKL7zwAgUFBTRs2JCePXsyevTos67v4+PD119/zfjx45k8eTJ+fn4MGTKEcePGedR+LrKzs8nPz2fbtm3uuxtPlZiYSGBg4Dmfh/r167Ns2TL+9Kc/MWXKFCIjI3nggQdo0KCBu8P3xWb27Nn86U9/4vXXX8c0TW644QYWLFhAgwYN3MucOHEC0zRZsWIFK1asKLWNkkuhffr04aeffuKZZ57htddeIzs7m+joaK644gr++Mc/nlM9H330kftOzVONHDnygsLX3//+d3Jzc8/pLsczqVevHj/++COPPfYYr776Kvn5+XTo0IGvv/6aAQMGXNC2L6SmNWvW8PTTT/P555/zxhtvEBkZSdu2bXnuuefOa5sPPfQQCQkJzJgxg5dffpnY2FiFL5EazDDVq1NERETEa9TnS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvMjr43w5nU4OHz5McHCwHpkhIiLnzTRNsrKyaNCgQbUMqCtyvrwevg4fPkxMTIy3dysiIrVUUlKSx9NARC52Xg9fwcHBgOt/lpCQEG/vXkREaonMzExiYmLcnysiNYXXw1fJpcaQkBCFLxERuWDqwiI1jS6Si4iIiHiRwpeIiIiIFyl8iYiIiHiR1/t8iYiIeIvD4aCoqKi6y5BazsfHB6vVes7LK3yJiEitY5omR44cIT09vbpLkUtEWFgY0dHR53QDiMKXiIjUOiXBq27dugQEBOiOSKkypmmSm5tLSkoKAPXr1z/rOgpfIiJSqzgcDnfwioyMrO5y5BLg7+8PQEpKCnXr1j3rJUh1uBcRkVqlpI9XQEBANVcil5KS99u59DFU+BIRkVpJlxrFmyryflP4EhEREfEihS8RERERL1L4EhEROU1hYeEFzb9QR44c4U9/+hNNmjTBbrcTExPDwIED+f7776t0v+IdCl8iIiKnmDNnDu3btycpKanM+UlJSbRv3545c+ZUyf737dtH165dWbp0KS+88AKbN29m4cKFXHPNNYwdO7ZK9inepfAlIiLyu8LCQp544gl27txJnz59SgWwpKQk+vTpw86dO3niiSeqpAXsoYcewjAM1qxZw9ChQ2nRogVt27Zl4sSJ/Pzzz+zbtw/DMEhISHCvk56ejmEYLF++3D1ty5Yt3HjjjQQFBVGvXj3uuusujh8/Xun1SsUpfImIiPzO19eXJUuW0KRJE/bu3esRwEqC1969e2nSpAlLlizB19e3UvefmprKwoULGTt2LIGBgaXmh4WFndN20tPTufbaa+ncuTPr1q1j4cKFHD16lNtuu61S65Xzo/AlIiJyipiYGJYvX+4RwH788UeP4LV8+XJiYmIqfd+7d+/GNE1atWp1Qdt57bXX6Ny5M88++yytWrWi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cCCxsbG8/fbbNGjQAKfTSbt27dwd4P39S980VFnKqqcynOn8ZGdnU79+fY/LnyXCwsKqpJ4KtXylpKRw991307JlS6677jrWrl3LokWLuP7666ukOJHaJtQeStd6XUnNT3V3lC8uKmbqA1PL7Fx/eif8qQ9MpbCwkOScZFpHtqZRUKPqPByR2sPH39XRPje1YuvlprrW86m6QAKwdOlSNm/eXOqS4KlCQkIYNmwYb7/9NnPmzGHu3LmkprqOx8fHB4ej/P6mJU6cOMFvv/3G3//+d6677jpat25NWprn2IMdOnQgISHBve3T+fr6ltpX69atS/Wz2rZtG+np6We8aa8ylXd+unTpwpEjR7DZbDRr1szjVadOnXKP6UJUqOXrnXfeqbQdi1yq+sT0YXf6bvZn7nc929HHxs0P3sz8afMZ/+b4Un27SgLY1AemMuCBARzJP0KUfxT94vqVewlCRCrIMKBxdzi03nUJ8VxasooLABNie1RqZ/uCggKOHDmCw+Hg6NGjLFy4kMmTJ3PzzTdz9913l7nOSy+9RP369encuTMWi4VPP/2U6Ohod8tNXFwc33//PVdddRV2u53w8NI38QCEh4cTGRnJW2+9Rf369Tlw4ACPP/64xzLDhw/n2WefZfDgwUyePJn69evz66+/0qBBA7p3705cXByJiYkkJCTQqFEjgoOD6du3L+3bt2fEiBG88sorFBcX89BDD9G7d2+6detW4XO0bds2CgsLSU1NJSsri4SEBIByx+I60/np27cv3bt3Z/DgwTz//PO0aNGCw4cP88033zBkyBC6detW5jFdyDAferajiJcF+QYxqNkgIvwi2JuxF4fTQdd+Xfl/n/6/Mu9qBFcAm/TJJOr2qIuP1YeBTQdSN6CulysXqeWi20NEvKsD/dme4WiakJboWr5eu0otY+HChdSvX5+4uDj69+/PsmXLmDp1KvPmzSv3DsDg4GCef/55unXrxmWXXca+ffv49ttvsVhcH/MvvvgiixcvJiYmhs6dO5e7b4vFwscff8z69etp164dEyZM4IUXXvBYxtfXl++++466dety00030b59e6ZMmeKubejQofTv359rrrmGqKgoPvroIwzDYN68eYSHh9OrVy/69u1LkyZNmDNnznmdo5tuuonOnTvz9ddfs3z5cjp37nzG4zrT+TEMg2+//ZZevXox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Jit3HmPh1iOk5xZRN8ROmL8Pxu+P2ihhmibpuUUczconIsCX/u3r07NZHSwWo5wti1TM/sz95BRV/PFcgT6BxIbEVkFFckkxTTi4FrbMdQWqwCjX6/QxwEzT1dqVlQw+/tCsL7T+P7Cd+YtrVbsYPk9EzsclGb5KJKXmsnRHClsPZ5CZX4wB+FgtmJgUF5uYQIi/jXYNQ7m2VV0ahQdUa70iIlUi+xjs+g6S1rjuYATXWGCGAY4iwHQNTxHVGlrcAHVbV2u5JS6mzxORirikw1eJIxn5JB7P4UhGHqk5hWBAZKCdeiF+NIkKpF6IhpQQkUtAbioc+83VwpV91DUavl8YhDSA8DjXy7h4Wv4vxs8TkXNx5gv8l4joUD+iQxWwROQSFxABsd2ruwqRWu+S63AvIiIiUp0UvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yFbdBUjtYJom6blFHMsuIK/QgcUwCAvwISrYjp+PtbrLk0uFowiyj0LOcTAdYLVDUD0IiASLvmuKyMVB4UsuSF6hg00H01mTmEpSWi45BQ4cphMw8LNZCPHzoUNMKF0ahxNfJxDDMKq7ZKmNMg5C0lpI+gXy0qAo1zXdsIBvEARHQ9xV0LAr+IVWb60icskzTNM0vbnDzMxMQkNDycjIICQk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auXKTQVHPkQ0hbZDXH29dLOHiFQTXXaUC5Jf5GDLoQzWJKZyIDWXnIJiihxODMPA38dKsJ+NTo3D6dI4jNjIwLNvUOR8ZB6Gg+vgwM+uuxiLclwtYRab65JkSEOI7QENu5R6NJHUXPo8kZpK4UsqhWmaZBUUk5JZQH6RA8OAsABfooLs+Np0dVu8xFEMOccg97irX5jN7hpE1T9cLV21kD5PpKbS9R+pFIZhEOLnoxHrpXpZbRBS3/USEblIqUlCRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts3t6haZoAZGZmenvXIiJSi5R8jpR8rojUFF4PX1lZWQDExMR4e9ciIlILZWVlERoaWt1liJwzw/TyVwan08nhw4cJDg7GMAxv7vqcZGZmEhMTQ1JSEiEhIdVdTo2kc3jhdA4vjM7fhasJ59A0TbKysmjQoAEWi3rRSM3h9ZYvi8VCo0aNvL3bCgsJCblo/+DUFDqHF07n8MLo/F24i/0cqsVLaiJ9VRARERHxIoUvERERES9S+DqN3W7nySefxG63V3cpNZbO4YXTObwwOn8XTudQpOp4vcO9iIiIyKVMLV8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl+neP3114mLi8PPz48rrriCNWvWVHdJNcrKlSsZOHAgDRo0wDAMvvzyy+ouqUaZPHkyl112GcHBwdStW5fBgwfz22+/VXdZNcq0adPo0KGDe2DQ7t27s2DBguouq8aaMmUKhmHwyCOPVHcpIrWKwtfv5syZw8SJE3nyySfZsGEDHTt2pF+/fqSkpFR3aTVGTk4OHTt25PXXX6/uUmqkFStWMHbsWH7++WcWL15MUVERN9xwAzk5OdVdWo3RqFEjpkyZwvr161m3bh3XXnstgwYNYuvWrdVdWo2zdu1apk+fTocOHaq7FJFaR0NN/O6KK67gsssu47XXXgNcz6CMiYnhT3/6E48//ng1V1fzGIbBF198weDBg6u7lBrr2LFj1K1blxUrVtCrV6/qLqfGioiI4IUXXmDMmDHVXUqNkZ2dTZcuXXjjjTf417/+RadOnXjllVequyyRWkMtX0BhYSHr16+nb9++7mkWi4W+ffvy008/VWNlcinLyMgAXOFBKs7hcPDxxx+Tk5ND9+7dq7ucGmXs2LEMGDDA42+iiFQerz9Y+2J0/PhxHA4H9erV85her149duzYUU1VyaXM6XTyyCOPcNVVV9GuXbvqLqdG2bx5M927dyc/P5+goCC++OIL2rRpU91l1Rgff/wxGzZsYO3atdVdikitpfAlchEaO3YsW7ZsYdWqVdVdSo3TsmVLEhISyMjI4LPPPmPkyJGsWLFCAewcJCUl8fDDD7N48WL8/PyquxyRWkvhC6hTpw5Wq5WjR496TD969CjR0dHVVJVcqsaNG8f8+fNZuXIljRo1qu5yahxfX1+aNWsGQNeuXVm7di3//e9/mT59ejVXdvFbv349KSkpdOnSxT3N4XCwcuVKXnvtNQoKCrBardVYoUjtoD5fuP5Yd+3ale+//949zel08v3336uviHiNaZqMGzeOL774gqVLlxIfH1/dJdUKTqeTgoKC6i6jRrjuuuvYvHkzCQkJ7le3bt0YMWIECQkJCl4ilUQtX7+bOHEiI0eOpFu3blx++eW88sor5OTkMHr06OourcbIzs5m9+7d7p8TExNJSEggIiKCxo0bV2NlNcPYsWOZPXs28+bNIzg4mCNHjgAQGhqKv79/NVdXM0yaNIkbb7yRxo0bk5WVxezZs1m+fDmLFi2q7tJqhODg4FJ9DAMDA4mMjFTfQ5FKpPD1u2HDhnHs2DGeeOIJjhw5QqdOnVi4cGGpTvhSvnXr1nHNNde4f544cSIAI0eOZObMmdVUVc0xbdo0APr06eMxfcaMGYwaNcr7BdVAKSkp3H333SQnJxMaGkqHDh1YtGgR119/fXWXJiLipnG+RERERLxIfb5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSL/j+ISD+Fp1HZzAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def get_maze_matrix(small=False):\n", + " if small:\n", + " M = np.zeros((3, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + "\n", + " # Set the initial position\n", + " M[2,3] = 1\n", + " else:\n", + "\n", + " M = np.zeros((5, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + " M[4,1] = 10\n", + " M[4,3] = 11\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + " M[3,2] = 9\n", + "\n", + " # Set the initial position\n", + " M[2,2] = 1\n", + " return M\n", + "\n", + "M = get_maze_matrix(small=False)\n", + "env_info = parse_maze(M)\n", + "tmaze_env = GeneralizedTMazeEnv(env_info)\n", + "_ = render(env_info, tmaze_env)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Create the agent. \n", + "\n", + "The PyMDPEnv class consists of a params dict that contains the A, B, and D vectors of the environment. We initialize our agent using the same parameters. This means that the agent has full knowledge about the environment transitions, and likelihoods. We initialize the agent with a flat prior, i.e. it does not know where it, or the reward is. Finally, we set the C vector to have a preference only over the rewarding observation of cue-reward pair 1 (i.e. C[1][1] = 1 and zero for other values). " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", + "B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", + "A_dependencies = tmaze_env.dependencies[\"A\"]\n", + "B_dependencies = tmaze_env.dependencies[\"B\"]\n", + "\n", + "# [position], [cue], [reward]\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "\n", + "rewarding_modality = 1 + env_info[\"num_cues\"]\n", + "C[rewarding_modality] = C[rewarding_modality].at[:,1].set(2.0)\n", + "C[rewarding_modality] = C[rewarding_modality].at[:,2].set(-3.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) for b in B]\n", + "\n", + "agent = Agent(\n", + " A, B, C, D, \n", + " None, None, None, \n", + " policy_len=7,\n", + " A_dependencies=A_dependencies, \n", + " B_dependencies=B_dependencies,\n", + " apply_batch=False\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Rollout an agent episode \n", + "\n", + "Using the rollout function, we can run an active inference agent in this environment over a specified number of discrete timesteps using the parameters previously set. " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "key = jr.PRNGKey(0)\n", + "T = 20\n", + "_, info, _ = rollout(agent, tmaze_env, num_timesteps=T, rng_key=key)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=0\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB22klEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zYU79nJMxc89znvMcwzRNExERERHxCkt1FyAiIiJyKVH4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4Eq/55z//iWEYHtPi4uIYNWqUV+uYOXMmhmGwb98+r+5Xzo1+PyJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7f8dxcXHn8JsRkYuVWr6qyfz582nWrBlXXHHFOa+zdetWrrrqKho2bMjjjz9OYGAgn3zyCYMHD2bu3LkMGTLEY/k//elPhIeH8+STT7Jv3z5eeeUVxo0bx5w5c9zLvP/++4wcOZJ+/frx3HPPkZuby7Rp07j66qv59ddfPf7IFxcX069fP66++mr+85//EBAQAMCnn35Kbm4uDz74IJGRkaxZs4ZXX32VgwcP8umnn1bovJx+uQ/g73//OykpKQQFBVXoPBw5coRrrrmG4uJi93JvvfWWV1tL7rjjDm644Qb27NlD06ZNAdclpFtuuQUfH59Syy9evJi9e/cyevRooqOj2bp1K2+99RZbt27l559/xjCMMi+LFhUVMWHCBHx9fd3Tli5dyo033kjXrl158sknsVgszJgxg2uvvZYffviByy+//Kz15+bmcvz48VLTw8LCsNlO/vnYvXs3t9xyC2PGjGHkyJG8++67jBo1iq5du9K2bVu6detGkyZN+OSTTxg5cqTHtubMmVNuGD3Vb7/9xvDhw/njH//IfffdR8uWLTl69Cg9evQgNzeX8ePHExkZyXvvvcf//d//8dlnn5X6f2LKlClYLBYeffRRMjIyeP755xkxYgS//PKLx3JpaWncfPPN3H777dx6661MmzaN22+/nQ8//JBHHnmEBx54gDvuuIMXXniBW265haSkJIKDgwE4evQoV155JYZhMG7cOKKioliwYAFjxowhMzOz1KXDs9X0//7f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9datW5c+ffowffp0kpOTSy1f1hASZ9OvXz9CQkJ49tlnKSoqOq9tlnxrP7Ve0zT573//W+F6AGbMmMH06dN5/fXXywylFTkPN910Ez///DNr1qzxmP/hhx+eV22na9OmDX379nW/unbtWu6y9957L08++SQvvvhiucuUdS6BMkc2f+qpp1i0aBEfffRRmZfjunbtStOmTfnPf/5T5uXt83m/VIbWrVvTvn175syZw5w5c6hfvz69evU67+3ddNNNrFmzhp9++sk9LScnh7feeou4uLhSfdOqmtVqZejQocydO7fMlu3zPe+BgYHnfQlfRC4+avmqJs2bN2f27NkMHz6cli1buke4N02TxMREZs+ejcVi8ehj9frrr3P11VfTvn177rvvPpo0acLRo0f56aefOHjwIBs3bqxQDSEhIUybNo277rqLLl26cPvttxMVFcWBAwf45ptvuOqqq3jttdfOuI1WrVrRtGlTHn30UQ4dOkRISAhz5849r/4qx48f56GHHqJNmzbY7XY++OADj/lDhgwhMDDwnM/DX//6V95//3369+/Pww8/7B5qIjY21uuPboqNjeWf//znGZcJCQmhV69ePP/88xQVFdGwYUO+++47EhMTPZbbvHkzzzzzDL169SIlJaXUebrzzjuxWCz873//48Ybb6Rt27aMHj2ahg0bcujQIZYtW0ZISAhff/31WevesGFDqe2Dq2Wte/fuZz/wMgwbNownnngCPz8/xowZc0EDCT/++ON89NFH3HjjjYwfP56IiAjee+89EhMTmTt3brUMUjxlyhSWLVvGFVdcwX333UebNm1ITU1lw4YNLFmyhNTU1Apvs2vXrsyZM4eJEydy2WWXERQUxMCBA6ugehHxBoWvajRo0CA2b97Miy++yHfffce7776LYRjExsYyYMAAHnjgATp27Ohevk2bNqxbt46nnnqKmTNncuLECerWrUvnzp09LlNVxB133EGDBg2YMmUKL7zwAgUFBTRs2JCePXsyevTos67v4+PD119/zfjx45k8eTJ+fn4MGTKEcePGedR+LrKzs8nPz2fbtm3uuxtPlZiYSGBg4Dmfh/r167Ns2TL+9Kc/MWXKFCIjI3nggQdo0KCBu8P3xWb27Nn86U9/4vXXX8c0TW644QYWLFhAgwYN3MucOHEC0zRZsWIFK1asKLWNkkuhffr04aeffuKZZ57htddeIzs7m+joaK644gr++Mc/nlM9H330kftOzVONHDnygsLX3//+d3Jzc8/pLsczqVevHj/++COPPfYYr776Kvn5+XTo0IGvv/6aAQMGXNC2L6SmNWvW8PTTT/P555/zxhtvEBkZSdu2bXnuuefOa5sPPfQQCQkJzJgxg5dffpnY2FiFL5EazDDVq1NERETEa9TnS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvMjr43w5nU4OHz5McHCwHpkhIiLnzTRNsrKyaNCgQbUMqCtyvrwevg4fPkxMTIy3dysiIrVUUlKSx9NARC52Xg9fwcHBgOt/lpCQEG/vXkREaonMzExiYmLcnysiNYXXw1fJpcaQkBCFLxERuWDqwiI1jS6Si4iIiHiRwpeIiIiIFyl8iYiIiHiR1/t8iYiIeIvD4aCoqKi6y5BazsfHB6vVes7LK3yJiEitY5omR44cIT09vbpLkUtEWFgY0dHR53QDiMKXiIjUOiXBq27dugQEBOiOSKkypmmSm5tLSkoKAPXr1z/rOgpfIiJSqzgcDnfwioyMrO5y5BLg7+8PQEpKCnXr1j3rJUh1uBcRkVqlpI9XQEBANVcil5KS99u59DFU+BIRkVpJlxrFmyryflP4EhEREfEihS8RERERL1L4EhEROU1hYeEFzb9QR44c4U9/+hNNmjTBbrcTExPDwIED+f7776t0v+IdCl8iIiKnmDNnDu3btycpKanM+UlJSbRv3545c+ZUyf737dtH165dWbp0KS+88AKbN29m4cKFXHPNNYwdO7ZK9inepfAlIiLyu8LCQp544gl27txJnz59SgWwpKQk+vTpw86dO3niiSeqpAXsoYcewjAM1qxZw9ChQ2nRogVt27Zl4sSJ/Pzzz+zbtw/DMEhISHCvk56ejmEYLF++3D1ty5Yt3HjjjQQFBVGvXj3uuusujh8/Xun1SsUpfImIiPzO19eXJUuW0KRJE/bu3esRwEqC1969e2nSpAlLlizB19e3UvefmprKwoULGTt2LIGBgaXmh4WFndN20tPTufbaa+ncuTPr1q1j4cKFHD16lNtuu61S65Xzo/AlIiJyipiYGJYvX+4RwH788UeP4LV8+XJiYmIqfd+7d+/GNE1atWp1Qdt57bXX6Ny5M88++yytWrWi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cCCxsbG8/fbbNGjQAKfTSbt27dwd4P39S980VFnKqqcynOn8ZGdnU79+fY/LnyXCwsKqpJ4KtXylpKRw991307JlS6677jrWrl3LokWLuP7666ukOJHaJtQeStd6XUnNT3V3lC8uKmbqA1PL7Fx/eif8qQ9MpbCwkOScZFpHtqZRUKPqPByR2sPH39XRPje1YuvlprrW86m6QAKwdOlSNm/eXOqS4KlCQkIYNmwYb7/9NnPmzGHu3LmkprqOx8fHB4ej/P6mJU6cOMFvv/3G3//+d6677jpat25NWprn2IMdOnQgISHBve3T+fr6ltpX69atS/Wz2rZtG+np6We8aa8ylXd+unTpwpEjR7DZbDRr1szjVadOnXKP6UJUqOXrnXfeqbQdi1yq+sT0YXf6bvZn7nc929HHxs0P3sz8afMZ/+b4Un27SgLY1AemMuCBARzJP0KUfxT94vqVewlCRCrIMKBxdzi03nUJ8VxasooLABNie1RqZ/uCggKOHDmCw+Hg6NGjLFy4kMmTJ3PzzTdz9913l7nOSy+9RP369encuTMWi4VPP/2U6Ohod8tNXFwc33//PVdddRV2u53w8NI38QCEh4cTGRnJW2+9Rf369Tlw4ACPP/64xzLDhw/n2WefZfDgwUyePJn69evz66+/0qBBA7p3705cXByJiYkkJCTQqFEjgoOD6du3L+3bt2fEiBG88sorFBcX89BDD9G7d2+6detW4XO0bds2CgsLSU1NJSsri4SEBIByx+I60/np27cv3bt3Z/DgwTz//PO0aNGCw4cP88033zBkyBC6detW5jFdyDAferajiJcF+QYxqNkgIvwi2JuxF4fTQdd+Xfl/n/6/Mu9qBFcAm/TJJOr2qIuP1YeBTQdSN6CulysXqeWi20NEvKsD/dme4WiakJboWr5eu0otY+HChdSvX5+4uDj69+/PsmXLmDp1KvPmzSv3DsDg4GCef/55unXrxmWXXca+ffv49ttvsVhcH/MvvvgiixcvJiYmhs6dO5e7b4vFwscff8z69etp164dEyZM4IUXXvBYxtfXl++++466dety00030b59e6ZMmeKubejQofTv359rrrmGqKgoPvroIwzDYN68eYSHh9OrVy/69u1LkyZNmDNnznmdo5tuuonOnTvz9ddfs3z5cjp37nzG4zrT+TEMg2+//ZZevXox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OZ2Q/CvsWw3Hdvw+DEXJnzXD1brlHwaNLoe4qyA8rvpqlUqlzxOpqRS+pFLkFBRzOD2PlKwC8godWCwQ6u9LvRA7DUL9sWhICalqJZcVs5Ih5wSYDteArEH1XGODaTDVWkefJ1JT6bKjVIpAu43m9YJpXi/47AuLVAXDgJAGrpeIyEVM14BEREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLbNVdgNQOWflFHEzL41hWAXlFDiyGQViAD/WC/WgY7o/VYlR3iVLbmSZkHoLMZMg9Dk4H2OwQVBdCYyAgororFBEBFL7kAh3JyOenvSdYvz+VtJxCHKZrugGYgL+PhcYRgVzRJIJusRH42tTYKpXM6YBDG2DfD3B8JxTmeM43DPALg4ZdIe5qiGxaLWWKiJRQ+JLz4nSa/LjnBAu2JHMsq4CIQF/iIgOxWU+GK9M0yS10kHg8h10pWSQkpTOoU0MahvlXY+VSq+ScgC2fwYGfXT8H1YPQxq7AVcLpgLxU2L0YktZAy/7QvB/YfKunZhG55Cl8SYU5nCbzNx1m8baj+NmstIoOxjBKX1Y0DINAu414u438IgebkjI4llXA3d3jiK8TWA2VS62SdQR+eQuO7YDwOLAHl72cxQqBURBQB7KPwqZPIOsodLnLdVlS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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=1\n" + ] + }, + { + "data": { + "image/png": "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emvXrk2vXr2YOnUqycnJJZYvbQiJs+nTpw8hISE899xzFBUVndc2T3xrP7Ve0zT53//+V+56AKZNm8bUqVN54403Sg2l5TkPN910E7/88gurV6/2mP/xxx+fV22na9WqFb1793a/OnfuXOay9957L0899RQvvfRSmcuUdi6BUkc2f/rpp1m4cCGffPJJqZfjOnfuTOPGjfnvf/9b6uXt83m/VISWLVvStm1bZs+ezezZs6lbty49evQ47+3ddNNNrF69mp9//tk9LScnh7fffpu4uLgSfdMqm9VqZfDgwcyZM6fUlu3zPe+BgYHnfQlfRC4+avmqIk2bNmXmzJkMHTqU5s2bu0e4N02TxMREZs6cicVi8ehj9cYbb3D11VfTtm1b7rvvPho1asSRI0f4+eefOXDgABs2bChXDSEhIUyZMoW77rqLTp06cfvttxMVFcX+/fv59ttvueqqq3j99dfPuI0WLVrQuHFjHnvsMQ4ePEhISAhz5sw5r/4qx44d46GHHqJVq1bY7XY++ugjj/mDBg0iMDDwnM/D3/72Nz788EP69u3LI4884h5qIjY21uuPboqNjeVf//rXGZcJCQmhR48evPDCCxQVFVG/fn2+//57EhMTPZbbtGkTzz77LD169CAlJaXEebrzzjuxWCy8++673HjjjbRu3ZqRI0dSv359Dh48yNKlSwkJCeGbb745a93r168vsX1wtax17dr17AdeiiFDhvDkk0/i5+fHqFGjLmgg4SeeeIJPPvmEG2+8kbFjxxIREcEHH3xAYmIic+bMqZJBiidNmsTSpUu54ooruO+++2jVqhWpqamsX7+exYsXk5qaWu5tdu7cmdmzZzN+/Hguu+wygoKC6N+/fyVULyLeoPBVhQYMGMCmTZt46aWX+P7773n//fcxDIPY2Fj69evHAw88QPv27d3Lt2rVirVr1/L0008zffp0jh8/Tu3atenYsaPHZaryuOOOO6hXrx6TJk3ixRdfpKCggPr169O9e3dGjhx51vV9fHz45ptvGDt2LBMnTsTPz49BgwYxZswYj9rPRXZ2Nvn5+WzdutV9d+OpEhMTCQwMPOfzULduXZYuXcrDDz/MpEmTiIyM5IEHHqBevXruDt8Xm5kzZ/Lwww/zxhtvYJomN9xwA/Pnz6devXruZY4fP45pmixfvpzly5eX2MaJS6G9evXi559/5tlnn+X1118nOzub6OhorrjiCv785z+fUz2ffPKJ+07NUw0fPvyCwtc//vEPcnNzz+kuxzOpU6cOP/30E48//jivvfYa+fn5tGvXjm+++YZ+/fpd0LYvpKbVq1fzzDPP8MUXX/Dmm28SGRlJ69atef75589rmw899BAJCQlMmzaNV155hdjYWIUvkWrMMNWrU0RERMRr1OdLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yOvjfDmdTg4dOkRwcLAemSEiIufNNE2ysrKoV69elQyoK3K+vB6+Dh06RExMjLd3KyIiNVRSUpLH00BELnZeD1/BwcGA63+WkJAQb+9eRERqiMzMTGJiYtyfKyLVhdfD14lLjSEhIQpfIiJywdSFRaobXSQXERER8SKFLxEREREvUvgSERER8SKv9/kSERHxFofDQVFRUVWXITWcj48PVqv1nJdX+BIRkRrHNE0OHz5Menp6VZcil4iwsDCio6PP6QYQhS8REalxTgSv2rVrExAQoDsipdKYpklubi4pKSkA1K1b96zrKHyJiEiN4nA43MErMjKyqsuRS4C/vz8AKSkp1K5d+6yXINXhXkREapQTfbwCAgKquBK5lJx4v51LH0OFLxERqZF0qVG8qTzvN4UvERERES9S+BIRERHxIoUvERGR0xQWFl7Q/At1+PBhHn74YRo1aoTdbicmJob+/fvzww8/VOp+xTsUvkRERE4xe/Zs2rZtS1JSUqnzk5KSaNu2LbNnz66U/e/du5fOnTuzZMkSXnzxRTZt2sSCBQu45pprGD16dKXsU7xL4UtEROQPhYWFPPnkk+zYsYNevXqVCGBJSUn06tWLHTt28OSTT1ZKC9hDDz2EYRisXr2awYMH06xZM1q3bs348eP55Zdf2Lt3L4ZhkJCQ4F4nPT0dwzBYtmyZe9rmzZu58cYbCQoKok6dOtx1110cO3aswuuV8lP4EhER+YOvry+LFy+mUaNG7NmzxyOAnQhee/bsoVGjRixevBhfX98K3X9qaioLFixg9OjRBAYGlpgfFhZ2TttJT0/n2muvpWPHjqxdu5YFCxZw5MgRbrvttgqtV86PwpeIiMgpYmJiWLZsmUcA++mnnzyC17Jly4iJianwfe/atQvTNGnRosUFbef111+nY8eOPPfcc7Ro0YKO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/P396du3r7tWgG+//Zb69et7rGe32895HzWNwpeIiMgfQkLAYjm3AGaxuJavTJMmTaJDhw40b97cPa1Tp05s3bqVJk2alLpO8+bNKS4u5rfffqNz586AqwXq1Lsn161bh9Pp5KWXXsJicXX//vTTTz224+vri8PhOGuN3bp1IyYmhtmzZzN//nxuvfVWfHx8AGjVqhV2u539+/fTs2fP8h18DabwJSIi8gd/fxgwwHVX4+md7U9ls7mWq6xWrxPatm3LsGHDmDx5snva448/zpVXXsmYMWO49957CQwMZOvWrSxatIjXX3+dFi1a0Lt3b+6//36mTJmCj48Pf/nLX/D393ePFdakSROKiop47bXX6N+/P6tWreKt027hjIuLIzs7mx9++IH27dsTEBBQZovYHXfcwVtvvcWOHTtYunSpe3pwcDCPPfYY48aNw+l0cvXVV5ORkcGqVasICQlh+PDhlXDWLn6621FEROQU48fD2Rp8HA4YN8479TzzzDM4T2mKa9euHcuXL2fHjh10796djh078uSTT1KvXj33MjNmzKBOnTr06NGDQYMGcd999xEcHIyfnx8A7du35+WXX+b555+nTZs2fPzxxyWGtujWrRsPPPAAQ4YMISoqihdeeKHMGocNG8bWrVupX78+V111lce8Z599ln/+859MnDiRli1b0rdvX7799lvi4+Mr4vRUS4ZpmqY3d5iZmUloaCgZGRmEVHZ7rYiI1FhlfZ7k5+eTmJhIfHy8O2yU11tvuYaTsFo9W8BsNlfwevNNeOCBCz0C7zlw4AAxMTEsXryY6667rqrLqZHK875Ty5eIiMhpHngAfvzRdWnxjy5RWCyun3/88eIPXkuWLOHrr78mMTGRn376idtvv524uDh69OhR1aUJ6vMlIiJSqquucr3y8lx3NYaEVH4fr4pSVFTE3//+d/bs2UNwcDDdunXj448/dneEl6ql8CUiInIG/v7VJ3Sd0KdPH/r06VPVZUgZdNlRRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIt0t6OIiAiwL3MfOUU55V4v0CeQ2JDYSqhIaiqFLxERueTty9zHzV/efN7rzxs0TwFMzpkuO4qIyCXvfFq8KnL90/38889YrVb69etXods9V3v37sUwDBISEqpk/zWdwpeIiMhF5r333uPhhx9mxYoVHDp0qKrLkQqm8CUiInIRyc7OZvbs2Tz44IP069eP6dOne8z/+uuvadq0KX5+flxzzTV88MEHGIZBenq6e5mVK1fSvXt3/P39iYmJYezYseTknGydi4uL47nnnuOee+4hODiYhg0b8vbbb7vnx8fHA9CxY0cMw6BXr16VeciXHIUvERGRi8inn35KixYtaN68OXfeeSfvv/8+pmkCkJiYyC233MLAgQPZsGEDf/7zn/m///s/j/V3795N3759GTx4MBs3bmT27NmsXLmSMWPGeCz30ksv0aVLF3777TceeughHnzwQX7//XcAVq9eDcDixYtJTk7miy++8MKRXzoUvkRERC4i7733HnfeeScAffv2JSMjg+XLlwMwdepUmjdvzosvvkjz5s25/fbbGTFihMf6EydOZNiwYTz66KM0bdqUbt26MXnyZGbMmEF+fr57uZtuuomHHnqIJk2a8Pjjj1OrVi2WLl0KQFRUFACRkZFER0cTERHhhSO/dCh8iYiIXCR+//13Vq9ezdChQwGw2WwMGTKE9957zz3/sssu81jn8ssv9/h5w4YNTJ8+naCgIPerT58+OJ1OEhMT3cu1a9fO/d+GYRAdHU1KSkplHZqcQkNNiIiIXCTee+89iouLqVevnnuaaZrY7XZef/31c9pGdnY2f/7znxk7dmyJeQ0bNnT/t4+Pj8c8wzBwOp3nWbmUh8KXiIjIRaC4uJgZM2bw0ksvccMNN3jMGzhwIJ988gnNmzfnu+++85i3Zs0aj587derE1q1badKkyXnX4uvrC4DD4TjvbUjZFL5EREQuAvPmzSMtLY1Ro0YRGhrqMW/w4MG89957fPrpp7z88ss8/vjjjBo1ioSEBPfdkIZhAPD4449z5ZVXMmbMGO69914CAwPZunUrixYtOufWs9q1a+Pv78+CBQto0KABfn5+JWqS86c+XyIiIheB9957j969e5cacgYPHszatWvJysri888/54svvqBdu3ZMmTLFfbej3W4HXH25li9fzo4dO+jevTsdO3bkySef9LiUeTY2m43JkyczdepU6tWrx4ABAyrmIAUAwzxx/6qXZGZmEhoaSkZGBiEhId7ctYiI1CBlfZ7k5+eTmJhIfHw8fn5+57Strce3MmTekPOuZfbNs2kV2eq8178Q//nPf3jrrbdISkqqkv2LS3ned7rsKCIi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LxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SJbVRcgNUNWfhEH0vI4mlVAXpEDi2EQFuBDnWA/6of7Y7UYVV2i1HSmCZkHITMZco+B0wE2OwTVhtAYCIio6gpFRACFL7lAhzPy+XnPcdbtSyUtpxCH6ZpuACbg72OhYUQgVzSKoEtsBL42NbZKBXM64OB62PsjHNsBhTme8w0D/MKgfmeIuxoiG1dJmSIiJyh8yXlxOk1+2n2c+ZuTOZpVQESgL3GRgdisJ8OVaZrkFjpIPJbDzpQsEpLSGdChPvXD/KuwcqlRco7D5s9h/y+un4PqQGhDV+A6wemAvFTYtQiSVkPzvtC0D9h8q6ZmEbnkKXxJuTmcJvM2HmLR1iP42ay0iA7GMEpeVjQMg0C7jXi7jfwiBxuTMjiaVcDdXeOIrxVYBZVLjZJ1GH59G45uh/A4sAeXvpzFCoFREFALso/Axk8h6wh0ust1WVJExMt0DUjK7cedR/l+yxEiAn2pH+5favA6nZ+Plaa1gziSkc/MX/dxPLvAC5VKjVWYC2unwfEdULtl2cHrVIYBwdGu/l97lsHmL139xEREvEzhS8rlQFouCzcfJtBuJTyg9Ms21oJ8AtKOYS3I95husRg0igpi//FcvtuUjNOpDz45TzsWwpHNENkULCUb8PMKbBxJDSCvoJTGfXuwK4TtWQKHN3mhWBERT+d12fGNN97gxRdf5PDhw7Rv357XXnuNyy+/vKJrk4vQih1HOZ5TSIvoki0N9TavpdOc6TT++QcsTidOi4XdXa9j/S0jOdS6MwBWi0G9cH/W7Uuja+NaNKkd5O1DkOouO8UVnAKjwOr5BWDlpga8/NnlzP2pKU6nBYvFyYBuO/nLbb9yVZuDJxcMiIScY64Q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RES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yObtHZqmCUBmZqa3dy0iIjXIic+RE58rItWF18NXVlYWADExMd7etYiI1EBZWVmEhoZWdRki58wwvfyVwel0cujQIYKDgzEMw5u7PieZmZnExMSQlJRESEhIVZdTLekcXjidwwuj83fhqsM5NE2TrKws6tWrh8WiXjRSfXi95ctisdCgQQNv77bcQkJCLto/ONWFzuGF0zm8MDp/F+5iP4dq8ZLqSF8VRERERLxI4UtERETEixS+TmO323nqqaew2+1VXUq1pXN44XQOL4zO34XTORSpPF7vcC8iIiJyKVPLl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHC1yneeOMN4uLi8PPz44orrmD16tVVXVK1smLFCvr370+9evUwDIOvvvqqqkuqViZOnMhll11GcHAwtWvXZuDAgfz+++9VXVa1MmXKFNq1a+ceGLRr167Mnz+/qsuqtiZNmoRhGDz66KNVXYpIjaLw9YfZs2czfvx4nnrqKdavX0/79u3p06cPKSkpVV1atZGTk0P79u154403qrqUamn58uWMHj2aX375hUWLFlFUVMQNN9xATk5OVZdWbTRo0IBJkyaxbt061q5dy7XXXsuAAQPYsmVLVZdW7axZs4apU6fSrl27qi5FpMbRUBN/uOKKK7jssst4/fXXAdczKGNiYnj44Yd54oknqri66scwDL788ksGDhxY1aVUW0ePHqV27dosX76cHj16VHU51VZERAQvvvgio0aNqupSqo3s7Gw6derEm2++yb///W86dOjAq6++WtVlidQYavkCCgsLWbduHb1793ZPs1gs9O7dm59//rkKK5NLWUZGBuAKD1J+DoeDWbNmkZOTQ9euXau6nGpl9OjR9OvXz+NvoohUHK8/WPtidOzYMRwOB3Xq1PGYXqdOHbZv315FVcmlzOl08uijj3LVVVfRpk2bqi6nWtm0aRNdu3YlPz+foKAgvvzyS1q1alXVZVUbs2bNYv369axZs6aqSxGpsRS+RC5Co0ePZvPmzaxcubKqS6l2mjdvTkJCAhkZGXz++ecMHz6c5cuXK4Cdg6SkJB555BEWLVqEn59fVZcjUmMpfAG1atXCarVy5MgRj+lHjhwhOjq6iqqSS9WYMWOYN28eK1asoEGDBlVdTrXj6+tLkyZNAOjcuTNr1qzhf//7H1OnTq3iyi5+69atIyUlhU6dOrmnORwOVqxYweuvv05BQQFWq7UKKxSpGdTnC9cf686dO/PDDz+4pzmdTn744Qf1FRGvMU2TMWPG8OWXX7JkyRLi4+OruqQawel0UlBQUNVlVAvXXXcdmzZtIiEhwf3q0qULw4YNIyEhQcFLpIKo5esP48ePZ/jw4XTp0oXLL7+cV199lZycHEaOHFnVpVUb2dnZ7Nq1y/1zYmIiCQkJRERE0LBhwyqsrHoYPXo0M2fOZO7cuQQHB3P48GEAQkND8ff3r+LqqocJEyZw44030rBhQ7Kyspg5cybLli1j4cKFVV1atRAcHFyij2FgYCCRkZHqeyhSgRS+/jBkyBCOHj3Kk08+yeHDh+nQoQMLFiwo0QlfyrZ27VquueYa98/jx48HYPjw4UyfPr2Kqqo+pkyZAkCvXr08pk+bNo0RI0Z4v6BqKCUlhbvvvpvk5GRCQ0Np164dCxcu5Prrr6/q0kRE3DTOl4iIiIgXqc+XiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh40f8HwVy3u0pRXqYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=2\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB22klEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zYU79nJMxc89znvMcwzRNExERERHxCkt1FyAiIiJyKVH4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4Eq/55z//iWEYHtPi4uIYNWqUV+uYOXMmhmGwb98+r+5Xzo1+PyJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7f8dxcXHn8JsRkYuVWr6qyfz582nWrBlXXHHFOa+zdetWrrrqKho2bMjjjz9OYGAgn3zyCYMHD2bu3LkMGTLEY/k//elPhIeH8+STT7Jv3z5eeeUVxo0bx5w5c9zLvP/++4wcOZJ+/frx3HPPkZuby7Rp07j66qv59ddfPf7IFxcX069fP66++mr+85//EBAQAMCnn35Kbm4uDz74IJGRkaxZs4ZXX32VgwcP8umnn1bovJx+uQ/g73//OykpKQQFBVXoPBw5coRrrrmG4uJi93JvvfWWV1tL7rjjDm644Qb27NlD06ZNAdclpFtuuQUfH59Syy9evJi9e/cyevRooqOj2bp1K2+99RZbt27l559/xjCMMi+LFhUVMWHCBHx9fd3Tli5dyo033kjXrl158sknsVgszJgxg2uvvZYffviByy+//Kz15+bmcvz48VLTw8LCsNlO/vnYvXs3t9xyC2PGjGHkyJG8++67jBo1iq5du9K2bVu6detGkyZN+OSTTxg5cqTHtubMmVNuGD3Vb7/9xvDhw/njH//IfffdR8uWLTl69Cg9evQgNzeX8ePHExkZyXvvvcf//d//8dlnn5X6f2LKlClYLBYeffRRMjIyeP755xkxYgS//PKLx3JpaWncfPPN3H777dx6661MmzaN22+/nQ8//JBHHnmEBx54gDvuuIMXXniBW265haSkJIKDgwE4evQoV155JYZhMG7cOKKioliwYAFjxowhMzOz1KXDs9X0//7f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9datW5c+ffowffp0kpOTSy1f1hASZ9OvXz9CQkJ49tlnKSoqOq9tlnxrP7Ve0zT573//W+F6AGbMmMH06dN5/fXXywylFTkPN910Ez///DNr1qzxmP/hhx+eV22na9OmDX379nW/unbtWu6y9957L08++SQvvvhiucuUdS6BMkc2f+qpp1i0aBEfffRRmZfjunbtStOmTfnPf/5T5uXt83m/VIbWrVvTvn175syZw5w5c6hfvz69evU67+3ddNNNrFmzhp9++sk9LScnh7feeou4uLhSfdOqmtVqZejQocydO7fMlu3zPe+BgYHnfQlfRC4+avmqJs2bN2f27NkMHz6cli1buke4N02TxMREZs+ejcVi8ehj9frrr3P11VfTvn177rvvPpo0acLRo0f56aefOHjwIBs3bqxQDSEhIUybNo277rqLLl26cPvttxMVFcWBAwf45ptvuOqqq3jttdfOuI1WrVrRtGlTHn30UQ4dOkRISAhz5849r/4qx48f56GHHqJNmzbY7XY++OADj/lDhgwhMDDwnM/DX//6V95//3369+/Pww8/7B5qIjY21uuPboqNjeWf//znGZcJCQmhV69ePP/88xQVFdGwYUO+++47EhMTPZbbvHkzzzzzDL169SIlJaXUebrzzjuxWCz873//48Ybb6Rt27aMHj2ahg0bcujQIZYtW0ZISAhff/31WevesGFDqe2Dq2Wte/fuZz/wMgwbNownnngCPz8/xowZc0EDCT/++ON89NFH3HjjjYwfP56IiAjee+89EhMTmTt3brUMUjxlyhSWLVvGFVdcwX333UebNm1ITU1lw4YNLFmyhNTU1Apvs2vXrsyZM4eJEydy2WWXERQUxMCBA6ugehHxBoWvajRo0CA2b97Miy++yHfffce7776LYRjExsYyYMAAHnjgATp27Ohevk2bNqxbt46nnnqKmTNncuLECerWrUvnzp09LlNVxB133EGDBg2YMmUKL7zwAgUFBTRs2JCePXsyevTos67v4+PD119/zfjx45k8eTJ+fn4MGTKEcePGedR+LrKzs8nPz2fbtm3uuxtPlZiYSGBg4Dmfh/r167Ns2TL+9Kc/MWXKFCIjI3nggQdo0KCBu8P3xWb27Nn86U9/4vXXX8c0TW644QYWLFhAgwYN3MucOHEC0zRZsWIFK1asKLWNkkuhffr04aeffuKZZ57htddeIzs7m+joaK644gr++Mc/nlM9H330kftOzVONHDnygsLX3//+d3Jzc8/pLsczqVevHj/++COPPfYYr776Kvn5+XTo0IGvv/6aAQMGXNC2L6SmNWvW8PTTT/P555/zxhtvEBkZSdu2bXnuuefOa5sPPfQQCQkJzJgxg5dffpnY2FiFL5EazDDVq1NERETEa9TnS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvMjr43w5nU4OHz5McHCwHpkhIiLnzTRNsrKyaNCgQbUMqCtyvrwevg4fPkxMTIy3dysiIrVUUlKSx9NARC52Xg9fwcHBgOt/lpCQEG/vXkREaonMzExiYmLcnysiNYXXw1fJpcaQkBCFLxERuWDqwiI1jS6Si4iIiHiRwpeIiIiIFyl8iYiIiHiR1/t8iYiIeIvD4aCoqKi6y5BazsfHB6vVes7LK3yJiEitY5omR44cIT09vbpLkUtEWFgY0dHR53QDiMKXiIjUOiXBq27dugQEBOiOSKkypmmSm5tLSkoKAPXr1z/rOgpfIiJSqzgcDnfwioyMrO5y5BLg7+8PQEpKCnXr1j3rJUh1uBcRkVqlpI9XQEBANVcil5KS99u59DFU+BIRkVpJlxrFmyryflP4EhEREfEihS8RERERL1L4EhEROU1hYeEFzb9QR44c4U9/+hNNmjTBbrcTExPDwIED+f7776t0v+IdCl8iIiKnmDNnDu3btycpKanM+UlJSbRv3545c+ZUyf737dtH165dWbp0KS+88AKbN29m4cKFXHPNNYwdO7ZK9inepfAlIiLyu8LCQp544gl27txJnz59SgWwpKQk+vTpw86dO3niiSeqpAXsoYcewjAM1qxZw9ChQ2nRogVt27Zl4sSJ/Pzzz+zbtw/DMEhISHCvk56ejmEYLF++3D1ty5Yt3HjjjQQFBVGvXj3uuusujh8/Xun1SsUpfImIiPzO19eXJUuW0KRJE/bu3esRwEqC1969e2nSpAlLlizB19e3UvefmprKwoULGTt2LIGBgaXmh4WFndN20tPTufbaa+ncuTPr1q1j4cKFHD16lNtuu61S65Xzo/AlIiJyipiYGJYvX+4RwH788UeP4LV8+XJiYmIqfd+7d+/GNE1atWp1Qdt57bXX6Ny5M88++yytWrWi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cCCxsbG8/fbbNGjQAKfTSbt27dwd4P39S980VFnKqqcynOn8ZGdnU79+fY/LnyXCwsKqpJ4KtXylpKRw991307JlS6677jrWrl3LokWLuP7666ukOJHaJtQeStd6XUnNT3V3lC8uKmbqA1PL7Fx/eif8qQ9MpbCwkOScZFpHtqZRUKPqPByR2sPH39XRPje1YuvlprrW86m6QAKwdOlSNm/eXOqS4KlCQkIYNmwYb7/9NnPmzGHu3LmkprqOx8fHB4ej/P6mJU6cOMFvv/3G3//+d6677jpat25NWprn2IMdOnQgISHBve3T+fr6ltpX69atS/Wz2rZtG+np6We8aa8ylXd+unTpwpEjR7DZbDRr1szjVadOnXKP6UJUqOXrnXfeqbQdi1yq+sT0YXf6bvZn7nc929HHxs0P3sz8afMZ/+b4Un27SgLY1AemMuCBARzJP0KUfxT94vqVewlCRCrIMKBxdzi03nUJ8VxasooLABNie1RqZ/uCggKOHDmCw+Hg6NGjLFy4kMmTJ3PzzTdz9913l7nOSy+9RP369encuTMWi4VPP/2U6Ohod8tNXFwc33//PVdddRV2u53w8NI38QCEh4cTGRnJW2+9Rf369Tlw4ACPP/64xzLDhw/n2WefZfDgwUyePJn69evz66+/0qBBA7p3705cXByJiYkkJCTQqFEjgoOD6du3L+3bt2fEiBG88sorFBcX89BDD9G7d2+6detW4XO0bds2CgsLSU1NJSsri4SEBIByx+I60/np27cv3bt3Z/DgwTz//PO0aNGCw4cP88033zBkyBC6detW5jFdyDAferajiJcF+QYxqNkgIvwi2JuxF4fTQdd+Xfl/n/6/Mu9qBFcAm/TJJOr2qIuP1YeBTQdSN6CulysXqeWi20NEvKsD/dme4WiakJboWr5eu0otY+HChdSvX5+4uDj69+/PsmXLmDp1KvPmzSv3DsDg4GCef/55unXrxmWXXca+ffv49ttvsVhcH/MvvvgiixcvJiYmhs6dO5e7b4vFwscff8z69etp164dEyZM4IUXXvBYxtfXl++++466dety00030b59e6ZMmeKubejQofTv359rrrmGqKgoPvroIwzDYN68eYSHh9OrVy/69u1LkyZNmDNnznmdo5tuuonOnTvz9ddfs3z5cjp37nzG4zrT+TEMg2+//ZZevXox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OZ2Q/CvsWw3Hdvw+DEXJnzXD1brlHwaNLoe4qyA8rvpqlUqlzxOpqRS+pFLkFBRzOD2PlKwC8godWCwQ6u9LvRA7DUL9sWhICalqJZcVs5Ih5wSYDteArEH1XGODaTDVWkefJ1JT6bKjVIpAu43m9YJpXi/47AuLVAXDgJAGrpeIyEVM14BEREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLbNVdgNQOWflFHEzL41hWAXlFDiyGQViAD/WC/WgY7o/VYlR3iVLbmSZkHoLMZMg9Dk4H2OwQVBdCYyAgororFBEBFL7kAh3JyOenvSdYvz+VtJxCHKZrugGYgL+PhcYRgVzRJIJusRH42tTYKpXM6YBDG2DfD3B8JxTmeM43DPALg4ZdIe5qiGxaLWWKiJRQ+JLz4nSa/LjnBAu2JHMsq4CIQF/iIgOxWU+GK9M0yS10kHg8h10pWSQkpTOoU0MahvlXY+VSq+ScgC2fwYGfXT8H1YPQxq7AVcLpgLxU2L0YktZAy/7QvB/YfKunZhG55Cl8SYU5nCbzNx1m8baj+NmstIoOxjBKX1Y0DINAu414u438IgebkjI4llXA3d3jiK8TWA2VS62SdQR+eQuO7YDwOLAHl72cxQqBURBQB7KPwqZPIOsodLnLdVlS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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=3\n" + ] + }, + { + "data": { + "image/png": "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Wd80TebMmcOAAQMwTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAEOHDuWqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrvjjjuYMmUKGzZsYNasWdx+++2l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMCwYcOYMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz2b06NGA65JjnTp1yn0PniohIaHUtPL+jVu1auWe37Zt23LrPP3/RImGDRuW+jcKDQ0t1QczNDTUY/1jx46Rnp7OW2+9xVtvvVXmcZz+73quNYlI7aHwVQ1CQ0OpV68emzdvLjWv5IPk9PGjSlopHn300XL7xjRt2tTj5/LuGDNN02Ob77//fqmhEACPPj3gujPx9LsvHQ4H119/PampqTz22GO0bNmSwMBADh48yMiRI8+rc3thYSG33HILdrudTz75xKOO8zkPVeXhhx/26EDeq1cvli1bVmq5K664giZNmvDII4+QlJTEHXfcUe42b7vtNn788Uf+8pe/0LFjR4KCgnA6nfTr16/UuUxLS2PIkCE0b96c//3vfx7zSpZ94YUX6NixY5n7qsx+Q2d7r5UYOnQo//73vzl+/DjBwcF89dVXDBs2rNR7rSyV0VfvXOssb7lz/T915513lht827dvf141iUjtofBVTfr378///vc/Vq9efU4dnxs3bgyAj4/PObVEnIuSDuDR0dHnvc1NmzaxY8cO3nvvPe6++2739EWLFp13XePGjSMxMZEVK1ZQt25dj3kVOQ9xcXHuFqBT/fbbb+dd26n++te/erROnqkVadiwYfzrX/+iVatW5YahtLQ0vv/+e5566imeeOIJ9/SyjsHpdDJ8+HDS09NZvHix++aHEiX/tiEhIZX2fqkMQ4cO5amnnmLOnDnUrVuXzMxMj8t7FRUXF1fmv+f27dvd870pKiqK4OBgHA5HpZ738lpKRaRmUp+vavLXv/6VgIAA7rnnHo4ePVpq/unfeqOjo+nduzfTpk3j8OHDpZYvawiJs+nbty8hISE8++yzFBUVndc2S761n1qvaZr897//rXA9ANOnT2fatGm8/vrrZYbSipyHm266iZ9//pnVq1d7zP/www/Pq7bTtW7dmj59+rhfXbp0KXfZe++9lyeffJIXX3yx3GXKOpdAmSObP/XUUyxcuJCPPvqozMtxXbp0oUmTJvznP/8p8/L2+bxfKkOrVq1o164ds2fPZvbs2dSrV4+ePXue9/ZuuukmVq9ezU8//eSelpOTw1tvvUV8fHypvmlVzWq1MmTIEObMmVNmy/b5nvfAwMDzvoQvIhcftXxVk2bNmjFr1iyGDRtGixYt3CPcm6ZJUlISs2bNwmKxePSxev3117n66qtp164d9913H40bN+bo0aP89NNPHDhwgA0bNlSohpCQEKZOncpdd91F586duf3224mKimL//v188803XHXVVbz22mtn3EbLli1p0qQJjz76KAcPHiQkJIQ5c+acV3+V48eP89BDD9G6dWvsdjsffPCBx/zBgwcTGBh4zufhr3/9K++//z79+vXj4Ycfdg81ERcX5/VHN8XFxfHPf/7zjMuEhITQs2dPnn/+eYqKimjQoAHfffcdSUlJHstt2rSJZ555hp49e5KSklLqPN15551YLBb+97//ceONN9KmTRtGjRpFgwYNOHjwIEuXLiUkJISvv/76rHWvX7++1PbB1bLWrVu3sx94GYYOHcoTTzyBn58fo0ePvqCBhB9//HE++ugjbrzxRsaNG0dERATvvfceSUlJzJkzp1oGKZ48eTJLly7liiuu4L777qN169akpqayfv16Fi9eTGpqaoW32aVLF2bPns2ECRO47LLLCAoKYsCAAVVQvYh4g8JXNRo4cCCbNm3ixRdf5LvvvuPdd9/FMAzi4uLo378/DzzwAB06dHAv37p1a9auXctTTz3FjBkzOHHiBNHR0XTq1MnjMlVF3HHHHdSvX5/JkyfzwgsvUFBQQIMGDejRowejRo066/o+Pj58/fXXjBs3jkmTJuHn58fgwYMZO3asR+3nIjs7m/z8fLZu3eq+u/FUSUlJBAYGnvN5qFevHkuXLuVPf/oTkydPJjIykgceeID69eu7O3xfbGbNmsWf/vQnXn/9dUzT5IYbbmD+/PnUr1/fvcyJEycwTZPly5ezfPnyUtsouRTau3dv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ahuFLxERkTKsXAl/+AMEBUFMjOvPP/wBVq2q2v36+fnx3HPPkZaWVrU7Ok9RUVEEBARUdxk1msKXiIjIaaZOhZ494euvXY91BNefX38NPXq4nrtdVfr06UNMTAyTJk0qd5mVK1fSo0cP/P39iY2NZdy4ceTk5LjnHz58mP79++Pv709CQgKzZs0qdbnwpZdeol27dgQGBhIbG8tDDz1EdnY24Hpu86hRo8jIyMAwDAzD4J///CfgednxjjvuYOjQoR61FRUVUadOHWbOnAmA0+lk0qRJJCQk4O/vT4cOHfjss88q4UzVXApfIiIip1i5EsaMAdOE4mLPecXFrukPPVR1LWBWq5Vnn32WV199lQMHDpSav3v3bvr168eQIUPYuHEjs2fPZuXKlYwdO9a9zN13382hQ4dYtmwZc+bM4a233iIlJcVjOxaLhSlTprBlyxbee+89lixZwl//+lcAunfvziuvvEJISAiHDx/m8OHDPProo6VqGT58OF9//bU7tAEsXLiQ3NxcBg8eDMCkSZOYOXMmb775Jlu2bGH8+PHceeedLF++vFLOV41kellGRoYJmBkZGd7etYiI1CLlfZ7k5eWZW7duNfPy8s5ru4MHm6bNZpqumFX2y2YzzSFDKuMoPI0YMcIcOHCgaZqmeeWVV5r33HOPaZqm+cUXX5glH9mjR48277//fo/1fvjhB9NisZh5eXnmtm3bTMBcs2aNe/7OnTtNwHz55ZfL3fenn35qRkZGun+ePn26GRoaWmq5uLg493aKiorMOnXqmDNnznTPHzZsmDl06FDTNE0zPz/fDAgIMH/88UePbYwePdocNmzYmU9GDVOR950GWRUREfldXh7MnXvyUmN5iovhiy9cy1fV87afe+45rr322lItThs2bGDjxo18+OGH7mmmaeJ0OklKSmLHjh3YbDY6d+7snt+0aVPCw8M9trN48WImTZrE9u3byczMpLi4mPz8fHJzc8+5T5fNZuO2227jww8/5K677iInJ4e5c+fy8ccfA7Br1y5yc3O5/vrrPdYrLCykU6dOFToftYnCl4iIyO8yM88evEo4na7lqyp89ezZk759+zJx4kRGjhzpnp6dnc0f//hHxo0bV2qdRo0asWPHjrNue+/evdx88808+OCD/Pvf/yYiIoKVK1cyevRoCgsLK9Shfvjw4fTq1YuUlBQW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n9OwYUOefvppDh8+zOHDhy/o3FYndbgXEZFLXn6Rk30ncggP8KnQeuEBPuw7kUN+kRN/38q5+3HevHkEBQVRXFxMQUEBFouF1157DYCCggKeffZZFi9eTLdu3QBo3LgxK1euZNq0afTq1YvevXvzzjvv4HA42Lx5M76+vgwdOpRly5bRr18/li1bRq9evdz7u+eee9x/b9y4MVOmTOGyyy4jOzuboKAg97ynn36a66+/HoDs7GzeeecdPvjgA6677joA3nvvPRo2bHjGY9u/fz9/+ctfaNmyJQDNmjVzz5s0aRLDhw/nkUcecc+bMmUKvXr1YurUqURERGC1Wt0tdDWZWr5EROSSV+hw4nCa2KwV+1i0WgwcTpNCh7PSarnmmmtITEzkl19+YcSIEYwaNYohQ4YAsGvXLnJzc7n++usJCgpyv2bOnMnu3bsB6NGjB1lZWfz6668sX77cHchKWsOWL19O79693ftbt24dAwYMoFGjRgQHB7uD2f79+z3q6tq1q/vvu3fvprCwkCuuuMI9LSIighYtWpzx2CZMmMC9995Lnz59mDx5srtmcF2SnDFjhsdx9e3bF6fTSVJSUsVP5EVMLV8iInLJ87VasFoMiisYokrG//KtYGg7k8DAQPclwXfffZcOHTrwzjvvMHr0aHe/rW+++YYGDRp4rGe32wEICwujQ4cOLFu2jJ9++onrr7+enj17MnToUHbs2MHOnTvdASsnJ4e+ffvSt29fPvzwQ6Kioti/fz99+/alsLCwVF0X6p///Cd33HEH33zzDfPnz+fJJ5/k448/ZvDgwWRnZ/PHP/6RcePGlVqvUaNGF7zvi4lavkRE5JLn52MhLjKQtNyiCq2XlltEXGQgfj5V83FqsVj429/+xt///nfy8vJo3bo1drud/fv307RpU49XbGyse71evXqxdOlSVqxYQe/evYmIiKBVq1b8+9//pl69ejRv3hyA7du3c+LECSZPnkyPHj1o2bKlR2f78jRp0gQfHx9++eUX97S0tDR27Nhx1nWbN2/O+PHj+e677/jDH/7A9OnTAejcuTNbt24tdVxNmzZ193nz9fXF4ajcu0urg8KXiIhc8gzD4LKECExMCovPrfWrsNiJicnlCRFVeufdrbfeitVq5fXXXyc4OJhHH32U8ePH895777F7927Wr1/Pq6++ynvvvedep3fv3ixcuBCbzebuX9W7d28+/PBDj/5ejRo1wtfXl1dffZU9e/bw1Vdf8cwzz5y1pqCgIEaPHs1f/vIXlixZwubNmxk5ciQWS/mxIi8vj7Fjx7Js2TL27dvHqlWrWLNmDa1atQLgscce48cff2Ts2LEkJiayc+dO5s6d6+5wD65xvlasWMHBgwc5fvx4hc/lxULhS0REBGhdL8Q9fMTZ7l40TdM9LEWreiFVWpfNZmPs2LE8//zz5OTk8Mwzz/CPf/yDSZMm0apVK/r168c333xDQkKCe50ePXrgdDo9glbv3r1xOBwe/b2ioqKYMWMGn376Ka1bt2by5Mkew1ScyQsvvECPHj0YMGAAffr04eqrr6ZLly7lLm+1Wjlx4gR33303zZs357bbbuPGG2/kqaeeAqB9+/YsX76cHTt20KNHDzp16sQTTzxB/fr13dt4+umn2bt3L02aNCEqKupcT+FFxzCr6v7YcmRmZhIaGkpGRgYhIVX7hhURkdqrvM+T/Px8kpKSSEhIwM/Pr0LbLBnh/lhWAXGRgWUOO1FY7LozMirYzj1XJxAXqUcMScXed+pwLyIi8rv4OoGMuiqh1LMdS+5qTMstwsQkrk4gt18Wq+Al50XhS0RE5BTxdQJ5+LpmbDucyeqkVPadyKGoyInVYtC+YSiXJ0TQql4Ifj6VM66XXHoUvkQuAmn5aWxL3caBrAMcyDpAgaMAm8VG/aD6xAbH0iK8BXUD61Z3mSKXDD8fK50ahdMxNoz8IieFDie+Vgt+PpYa/VgbuTgofIlUo+zCbJYlL2Pt0bWkF6RjM2z42/yxWqzkFefxa8qvrDmyhhDfENrWaUufuD5E+EVUd9kilwzDMPD3teKPWrmk8ih8iVSTfZn7+GLnF+zN3EuEXwRNw5piMUp37jVNk/SCdFYdWkVSRhIDmgygdWTraqhYREQqg8KXSDXYn7mfWdtmcSzvGI1DG2OzlP9f0TAMwv3CCbGHcCDrALO3z+a2lrfRJrKNFyu+OO3L3EdOUU6F1wv0CSQuJK4KKhIROTuFLxEvyynK4YtdX7iDV1mtXWWxGlYaBTdif9Z+5u6aS92AutTxr1PF1V689mXu4+Yvbj7v9ecNnqcAJiLVQoOsinjZigMr2JO+h7iQOI/gVVxUfMb1iouKMQyD2OBYjuYc5bu93511IMja7HxavCpzfblEmCYU5kJeuuvPS/j/nFSeCoWvqVOn0r59e0JCQggJCaFbt27Mnz+/qmoTqXUyCjJYe2QtEX4R+Fh83NPXLVzHv2/9N2lH0spcL+1IGv++9d+sW7gOi2GhXmA9tpzYwsHsg94qXeTSUpQPyWvgx1dh4d/gu3+4/vzxVdf0ovzqrlBqsAqFr4YNGzJ58mTWrVvH2rVrufbaaxk4cCBbtmypqvpEapUdaTtIzU8lwv/kHYvFRcXMmzqPlH0pvHLfK6UCWNqRNF657xVS9qUwb+o8iouKCfYNJqcoh20ntnn7EERqvxO7Yflk+Ok1OLgeDAv4BLj+PLjeNX35ZNdy1cgwDL788stqrUHOT4XC14ABA7jpppto1qwZzZs359///jdBQUH8/PPPVVWfSK1yMPsghmFgNU7etm7zsTHuzXHUaViH4weOewSwkuB1/MBx6jSsw7g3x2HzsWEYBn5WP/Zl7quuQxGpnU7shl/ehNQkiGgMUS0gMAr8w1x/RrVwTU9Nci1XyQFs5MiRGIaBYRj4+PhQt25drr/+et59912cTs8Hfh8+fJgbb7zxnLbrzaD2z3/+k44dO1bZ9vPz8xk5ciTt2rXDZrMxaNCgKttXico+pvPu8+VwOPj444/JycmhW7dulVaQSG12MOsg/jb/UtPDY8J55O1HPALYnsQ9HsHrkbcfITwm3L1OgE8AR3KOUOQs8uYhiNReRfnw6/uQnQJ1WoDVt+zlrL6u+dkpruUr+RJkv379OHz4MHv37mX+/Plcc801PPzww9x8880UF5/sGxoTE4Pdbq+0/RYWFlbatipDefU4HA78/f0ZN24cffr08XJVlaPC4WvTpk0EBQVht9t54IEH+OKLL2jduvwxhwoKCsjMzPR4iVyqChwFHq1epzo9gL046sVygxe47n50mA6KnWfuqC8i5+jIppMtXmcbxd4wIDzBtfzRzZVaht1uJyYmhgYNGtC5c2f+9re/MXfuXObPn8+MGTNOKeFka1ZhYSFjx46lXr16+Pn5ERcXx6RJkwCIj48HYPDgwRiG4f65pDXnf//7n8fDoBcsWMDVV19NWFgYkZGR3Hzzzeze7dnCd+DAAYYNG0ZERASBgYF07dqVX375hRkzZvDUU0+xYcMGdwteSc379+9n4MCBBAUFERISwm233cbRo0fd2yyvntMFBgYydepU7rvvPmJiYs7pnJ7p/ACkp6dz7733EhUVRUhICNdeey0bNmwAOOMxna8KDzXRokULEhMTycjI4LPPPmPEiBEsX7683AA2adIknnrqqQsqUqS2sFvtOExHufPDY8IZ8cwIXhz1onvaiGdGlApeAA7TgdWwnnGMMBE5R6YJ+38CjPJbvE5ns7uW3/cjNOhy9sB2Aa699lo6dOjA559/zr333ltq/pQpU/jqq6/45JNPaNSoEcnJySQnJwOwZs0aoqOjmT59Ov369cNqPfkFcNeuXcyZM4fPP//cPT0nJ4cJEybQvn17srOzeeKJJxg8eDCJiYlYLBays7Pp1asXDRo04KuvviImJob169fjdDoZOnQomzdvZsGCBSxevBiA0NBQnE6nO3gtX76c4uJixowZw9ChQ1m2bNkZ66kMZzo/ALfeeiv+/v7Mnz+f0NBQpk2bxnXXXceOHTvKPaYLUeHf2r6+vjRt2hSALl26sGbNGv773/8ybdq0MpefOHEiEyZMcP+cmZlJbGzseZYrUrM1CG7A7ozy+4ikHUnjvX+85zHtvX+8V2bLV25RLo3DGnvcNSki56koD1L3QEAFH98VEOFarygPfAOqprbftWzZko0bN5Y5b//+/TRr1oyrr74awzCIizs5hl1UVBQAYWFhpVqKCgsLmTlzpnsZgCFDhngs8+677xIVFcXWrVtp27Yts2bN4tixY6xZs4aICNf5KskFAEFBQdhsNo99LVq0iE2bNpGUlOTOADNnzqRNmzasWbOGyy67rNx6KsOZzs/KlStZvXo1KSkp7su4//nPf/jyyy/57LPPuP/++8s8pgtxweN8OZ1OCgoKyp1vt9vdQ1OUvEQuVfUC62GaZpmtX6d3rv/z9D+X2QkfXI8cyi/OJz4k3ovVi9RijkJwOqCiX2YsNtd6jqrvL2WaZrkP9R45ciSJiYm0aNGCcePG8d13353TNuPi4koFnZ07dzJs2DAaN25MSEiI+zLl/v37AUhMTKRTp07u4HUutm3bRmxsrEfjS+vWrQkLC2PbtpN3bZdVT2U40/nZsGED2dnZREZGEhQU5H4lJSWVutxaWSrU8jVx4kRuvPFGGjVqRFZWFrNmzWLZsmUsXLiwSooTqW1aRrQkzB5Gal4qUQEnf8GcHrxKWroeefsR9/RX7nvFPT27KJsAnwBaRbaqxqMRqUWsvmCxQkVvYHEWu9Y710uVF2Dbtm0kJCSUOa9z584kJSUxf/58Fi9ezG233UafPn347LPPzrjNwMDAUtMGDBhAXFwcb7/9NvXr18fpdNK2bVt3B3h//9I3DVWWsuqpDGc6P9nZ2dSrV8/j8meJsLCwKqmnQi1fKSkp3H333bRo0YLrrruONWvWsHDhQq6//voqKU6ktgm1h9KlbhdS81PdHeWLi4qZ8sCUMjvXn94Jf8oDUygsLORwzmFaRbaiYVDD6jwckdrDx9/V0T43tWLr5aa61vOpukACsGTJEjZt2lTqkuCpQkJCGDp0KG+//TazZ89mzpw5pKa6jsfHxweHo/z+piVOnDjBb7/9xt///neuu+46WrVqRVqa59iD7du3JzEx0b3t0/n6+pbaV6tWrUr1s9q6dSvp6elnvGmvMpV3fjp37syRI0ew2Ww0bdrU41WnTp1yj+lCVKjl65133qm0HYtcqnrH9mZX+i72Ze5zPVTbx8bND97MvKnzGPfmuFJ9u0oC2JQHptD/gf4cyT9ClH8UfeP7lnsJQkQqyDCgUTc4uM51CfFcWrKKCwAT4rpXamf7goICjhw5gsPh4OjRoyxYsIBJkyZx8803c/fdd5e5zksvvUS9evXo1KkTFouFTz/9lJiYGHfLTXx8PN9//z1XXXUVdrud8PDSN/EAhIeHExkZyVtvvUW9evXYv38/jz/+uMcyw4YN49lnn2XQoEFMmjSJevXq8euvv1K/fn26detGfHw8SUlJJCYm0rBhQ4KDg+nTpw/t2rVj+PDhvPLKKxQXF/PQQw/Rq1cvunbtWuFztHXrVgoLC0lNTSUrK4vExESAcsfiOtP56dOnD926dWPQoEE8//zzNG/enEOHDvHNN98wePBgunbtWuYxXcgwH3q2o4iXBfkGMbDpQCL8ItiTsQeH00GXvl34f5/+vzLvagRXAJv4yUSiu0fjY/VhQJMBRAdEe7lykVouph1EJLg60J/tGY6mCWlJruXrtq3UMhYsWEC9evWIj4+nX79+LF26lClTpjB37txy7wAMDg7m+eefp2vXrlx22WXs3buXb7/9FovF9TH/4osvsmjRImJjY+nUqVO5+7ZYLHz88cesW7eOtm3bMn78eF544QWPZXx9ffnuu++Ijo7mpptuol27dkyePNld25AhQ+jXrx/XXHMNUVFRfPTRRxiGwdy5cwkPD6dnz5706dOHxo0bM3v27PM6RzfddBOdOnXi66+/ZtmyZXTq1OmMx3Wm82MYBt9++y09e/Zk1KhRNG/enNtvv519+/ZRt27dco/pQhiml5/Mm5mZSWhoKBkZGep8L5e0PRl7+HLnl+zL2keUfxRh9jCPB22XME2TzMJMjuYeJTogmgGNB9Auql01VHxx2Ze5j5u/uPm81583eB5xIXFnX1AuWuV9nuTn55OUlHTGsaLKVTLCfXaKaxwvWxmtG8UFruAVFA1XPui67CiXvIq87zRAkEg1aRzamHvb38uS/Uv49eiv7ErfhY/FB3+bPzaLDafpJLcolwJHAcG+wVweczk3xN9AHf861V36RSEuJI55g+eRU5RT4XUDfQIVvKRskU3gigdcI9enJgGGazgJi83VuT43FTBdLV6d71bwkvOi8CVSjUJ8QxjUdBBXN7iabSe2sT9rPweyDlDkLMLX6kvj0MbEBsfSMqIlMYEx6uN1GgUoqRKRTaDX466R6/f9eHIcL4sVGnR29fGq2xZ8KtiqJvI7hS+Ri0Ad/zr0aNgDcF1mdJpOLIZFYUukuvj4QcOurpHri/JOdsL38a/Skezl0qDwJXKRMQyj3Oc/ioiXGcbvI9dX7ej1cmnR3Y4iIiIiXqTwJSIiIuJFCl8iIiIiXqQ+XyIiIuUwTZN8Rz5FziJ8LD74Wf10I4xcMIUvERGR0xQ4Ctieup31R9eTnJWMw+nAarESGxxL57qdaRnRErv1/B8vI5c2hS8REZFT7M/cz+c7Pyc5KxnDMAizh+Fr86XYLGbLiS1sPr6Z2OBY/tDsDzQKaVRtdRqGwRdffMGgQYOqrQY5P+rzJSIi8rv9mfv5YNsH7M/aT6PgRjQObUyEXwQh9hAi/CJoHNqYRsGN2J/1+3KZ+yt1/yNHjsQwDAzDwMfHh7p163L99dfz7rvv4nQ6PZY9fPgwN9544zlt1zAMvvzyy0qttTz//Oc/y33AdWVYtmwZAwcOpF69egQGBtKxY0c+/PDDKtsfuP5dKjPkKnyJiIjgutT4+c7POZ53nCahTfCx+pS5nI/VhyahTTied5zPd35OgaOgUuvo168fhw8fZu/evcyfP59rrrmGhx9+mJtvvpni4mL3cjExMdjtlXfps7CwsNK2VRnKq+fHH3+kffv2zJkzh40bNzJq1Cjuvvtu5s2b5+UKz5/Cl4iICLA9dTvJWcnEBcedtVO9YRg0Cm5EclYyv6X+Vql12O12YmJiaNCgAZ07d+Zvf/sbc+fOZf78+cyYMcOjhpLWrMLCQsaOHUu9evXw8/MjLi6OSZMmARAfHw/A4MGDMQzD/XNJC9X//vc/j4dBL1iwgKuvvpqwsDAiIyO5+eab2b17t0eNBw4cYNiwYURERBAYGEjXrl355ZdfmDFjBk899RQbNmxwt+CV1Lx//34GDhxIUFAQISEh3HbbbRw9etS9zfLqOd3f/vY3nnnmGbp3706TJk14+OGH6devH59//nm55zQtLY3hw4cTFRWFv78/zZo1Y/r06e75ycnJ3HbbbYSFhREREcHAgQPZu3evu6733nuPuXPnuo9p2bJlZ/onPCv1+RIRkUueaZqsP7redbmvnBav0/lafcGAdUfX0a5Ouyq9C/Laa6+lQ4cOfP7559x7772l5k+ZMoWvvvqKTz75hEaNGpGcnExycjIAa9asITo6munTp9OvXz+s1pNP0Ni1axdz5szh888/d0/PyclhwoQJtG/fnuzsbJ544gkGDx5MYmIiFouF7OxsevXqRYMGDfjqq6+IiYlh/fr1OJ1Ohg4dyubNm1mwYAGLFy8GIDQ0FKfT6Q5ey5cvp7i4mDFjxjB06FCPIFNWPeciIyODVq1alTv/H//4B1u3bmX+/PnUqVOHXbt2kZeXB0BRURF9+/alW7du/PDDD9hsNv71r3/Rr18/Nm7cyKOPPsq2bdvIzMx0B7aIiIhzrq0sCl8iInLJy3fkk5yVTJg9rELrhdvDSc5KJt+Rj7/Nv2qK+13Lli3ZuHFjmfP2799Ps2bNuPrqqzEMg7i4kw+dj4qKAiAsLIyYmBiP9QoLC5k5c6Z7GYAhQ4Z4LPPuu+8SFRXF1q1badu2LbNmzeLYsWOsWbPGHUKaNm3qXj4oKAibzeaxr0WLFrFp0yaSkpKIjY0FYObMmbRp04Y1a9Zw2WWXlVvP2XzyySesWbOGadOmlbvM/v376dSpE127dgVOtgYCzJ49G6fTyf/+9z93gJ4+fTphYWEsW7aMG264AX9/fwoKCkqdv/Oly44iInLJK3IW4XA6sBkVa5OwGlYcTgdFzqIqquwk0zTLbV0bOXIkiYmJtGjRgnHjxvHdd9+d0zbj4uJKBZ2dO3cybNgwGjduTEhIiDuo7N/vurkgMTGRTp06Vaj1Z9u2bcTGxrqDF0Dr1q0JCwtj27ZtZ6znTJYuXcqoUaN4++23adOmTbnLPfjgg3z88cd07NiRv/71r/z444/ueRs2bGDXrl0EBwcTFBREUFAQERER5Ofnl7rcWlnU8iUiIpc8H4sPVouVYrP47AufwmG6xv/ysZzbpcoLsW3bNhISEsqc17lzZ5KSkpg/fz6LFy/mtttuo0+fPnz22Wdn3GZgYGCpaQMGDCAuLo63336b+vXr43Q6adu2rbsDvL9/1bXwlVVPeZYvX86AAQN4+eWXufvuu8+47I033si+ffv49ttvWbRoEddddx1jxozhP//5D9nZ2XTp0qXMOyYrEgQrQi1fIiJyyfOz+hEbHEt6QXqF1ksrSCM2OBY/a9mdwyvLkiVL2LRpU6lLgqcKCQlh6NChvP3228yePZs5c+aQmpoKgI+PDw6H46z7OXHiBL/99ht///vfue6662jVqhVpaWkey7Rv357ExET3tk/n6+tbal+tWrXy6IcGsHXrVtLT02nduvVZ6zrdsmXL6N+/P8899xz333//Oa0TFRXFiBEj+OCDD3jllVd46623AFdw3blzJ9HR0TRt2tTjFRoaWu4xXQiFLxERueQZhkHnup0xTZMix7ldQix0FIIJXep2qdTO9gUFBRw5coSDBw+yfv16nn32WQYOHMjNN99cbgvPSy+9xEcffcT27dvZsWMHn376KTExMYSFhQGuPk7ff/89R44cKRWmThUeHk5kZCRvvfUWu3btYsmSJUyYMMFjmWHDhhETE8OgQYNYtWoVe/bsYc6cOfz000/ufSUlJZGYmMjx48cpKCigT58+tGvXjuHDh7N+/XpWr17N3XffTa9evdz9sM7V0qVL6d+/P+PGjWPIkCEcOXKEI0eOlBsGAZ544gnmzp3Lrl272LJlC/PmzXN30B8+fDh16tRh4MCB/PDDDyQlJbFs2TLGjRvHgQMH3Me0ceNGfvvtN44fP05R0YVdZlb4EhERAVpGtCQ2OJZ9WfswTfOMy5qmyf6s/cQGx9IiokWl1rFgwQLq1atHfHw8/fr1Y+nSpUyZMoW5c+eWewdgcHAwzz//PF27duWyyy5j7969fPvtt1gsro/5F198kUWLFhEbG0unTp3K3bfFYuHjjz9m3bp1tG3blvHjx/PCCy94LOPr68t3331HdHQ0N910E+3atWPy5Mnu2oYMGUK/fv245ppriIqK4qOPPsIwDObOnUt4eDg9e/akT58+NG7cmNmzZ1f4/Lz33nvk5uYyadIk6tWr53794Q9/KHcdX19fJk6cSPv27enZsydWq5WPP/4YgICAAFasWEGjRo34wx/+QKtWrRg9ejT5+fmEhIQAcN9999GiRQu6du1KVFQUq1atqnDdpzLMs73DKllmZiahoaFkZGS4D0pERKSiyvs8yc/PJykp6YxjRZWnZIT743nHaRTcyDWcxGkKHYXsz9pPHf863NXqLmJDYsvYklxqKvK+U4d7ERGR3zUKacSdre50P9sRwzWchNWw4jAdpBWkgQmNghsxpNkQBS85LwpfIiIip2gU0ogHOz7Ib6m/se7oOpKzkilyFGG1WGkb2ZYudbvQIqIFdmvlPdpHLi0KXyIiIqexW+20j2pPuzrtyHfkU+Qswsfig5/Vr0pHspdLg8KXiIhIOQzDwN/mjz9VO3q9XFp0t6OIiNRKXr6fTC5xFXm/KXyJiEit4uPjGm0+Nze3miuRS0nJ+63k/XcmuuwoIiK1itVqJSwsjJSUFMA1jpP6aUlVMU2T3NxcUlJSCAsLK3cstlMpfImISK0TExMD4A5gIlUtLCzM/b47G4UvERGpdQzDoF69ekRHR1/wo2BEzsbHx+ecWrxKKHyJiEitZbVaK/ShKOIN6nAvIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKXyIiIiJeZKvuAi4mOQXFZBcUYwBBfjYCfHV6ROQSVJQP+elgmuAbAPYQMIzqrkqk1rjk00VKVj4bkzPYfCiDo5n5FBY7AfC1Wagb4ke7BqG0bxhGVLC9misVEalCeWlw6FfXK+OAK4BhgtUXAutA3XbQsAuExiqIiVwgwzRN05s7zMzMJDQ0lIyMDEJCQry5aw/5RQ6Wbk9h+Y5jpOYUEuBrJchuw+5jBaCgyEF2QTF5RQ7CA3y5pkUUvVpE4/f7fBGRWsFRDHtXwPZvIOso2Oyuli4ff8AARwEUZENhlmt6/NXQ6mbwC63uyi+azxORirokW75OZBcw65f9bD6UQUSgLy1jgjFO+yYXZLcRGWTHaZoczyrgi18PsjMlh+FXNCI80LeaKhcRqUSFObD+fdj/E/gEQlRLsJz+BTMIAiJdlyDzUuG3b+HETugyCsLjqqVskZrukutwn5lfxMyf9rHpYAYJdQKJDvYrFbxOZTEMokP8iK8TyMYD6cz8aS9Z+UVerFhEpAoUF8K692DvDxDaEMJiywhepzAMVwiLagkndsPqtyDzsPfqFalFLqnwZZom8zcdZtvhTJpGB2G3uX7RFBcVnnG94qJC7DYrTaKC2HIok4VbjuDlq7UiIpVr9xJXi1d4AvgGAVBYVHzGVQqLisFigzotIG0vbPoUHPoyKlJRl1T42n4ki592n6BeqB8+Vteh/7rsW1744wDSUsr+BpeWcpgX/jiAX5d9i6/NQkyoH6t2HWdnSrY3SxcRqTyZh12XD/3CwDcQgNlLN9Ju9BSSU9LLXCU5JZ12o6cwe+lGVwtZeGM4uA6Sf/Fe3SK1RIXC16RJk7jssssIDg4mOjqaQYMG8dtvv1VVbZVu7d5UCoqdhAW4+mwVFxWyYOZ/OXZgL2/85a5SASwt5TBv/OUujh3Yy4KZ/6W4qJDwAF/yi5ys2ZtaHYcgInLhDq6F3BMQXA9wtWg9MX0xOw4cp/f4/5UKYMkp6fQe/z92HDjOE9MXu1rAfANcrWB7V4LTUQ0HIVJzVSh8LV++nDFjxvDzzz+zaNEiioqKuOGGG8jJyamq+ipNem4hWw5lEnlKZ3mbjy8PTJ5BZL1YThxO9ghgJcHrxOFkIuvF8sDkGdh8XOtGBPqy+WAGmer7JSI1jdMB+3/2GLvL18fG4v/cQ+N6Eew5nOoRwEqC157DqTSuF8Hi/9yDr8/v92oFx7j6f6Xvq6aDEamZKhS+FixYwMiRI2nTpg0dOnRgxowZ7N+/n3Xr1lVVfZXmaGYBWfnFhPj7eEwPj67HQy+87xHAkras9wheD73wPuHR9dzrhPj5kJ1fTEpmvrcPQ0TkwuQcd43pddpQEbHRYSx7+V6PAPbj5n0ewWvZy/cSGx12ciWfQCjOg6wj3j0GkRrugvp8ZWRkABAREVHuMgUFBWRmZnq8qkNqTiFO03T39TrV6QHs1fHDyg1e4BqAtdhpkpqjli8RqWFyT0Bhrruv16lOD2BXjZtWfvCC31vODNc2ReScnXf4cjqdPPLII1x11VW0bdu23OUmTZpEaGio+xUbG3u+u7wgZ7s7MTy6Hnf89XmPaXf89flSwetUDqfueBSRGsZ0Ak4wyv71HxsdxvsTb/WY9v7EW0sHr5MbVJ8vkQo67/A1ZswYNm/ezMcff3zG5SZOnEhGRob7lZycfL67vCB2HwumWX4IS0s5zKzn/+oxbdbzfy3zLsiSbdh9LqmbRUWkNrD5gcUHHGUPsZOcks5dkz71mHbXpE/LvQsSDNc2ReScnVd6GDt2LPPmzWPp0qU0bNjwjMva7XZCQkI8XtUhKsgPPx8L+UXOUvNO71z/p5c/KrMTfoncQgd+Plai9bxHEalpgqJdlxwLS98odXrn+lVT/lhmJ3w3p8N16TG4rndqF6klKhS+TNNk7NixfPHFFyxZsoSEhISqqqvSRYfYiQj0JTXX89ve6cHroRfeJ6FN51Kd8E8NYGm5hdQJ8iU6WN/2RKSGsQe7HguU6zlczunBa9nL99K9bVypTvgeASwv1dVxP7R6upOI1FQVCl9jxozhgw8+YNasWQQHB3PkyBGOHDlCXl5eVdVXafx8rFyREEFmXhHO3/tqFRcV8ubjI8vsXH96J/w3Hx9JcVEhDqdJdkExVyRE4mvTZUcRqWEMAxp1B7PYfemxsKiYPo++W2bn+tM74fd59F3XOF+mCdkpUL8LBNapxgMSqXkqlB6mTp1KRkYGvXv3pl69eu7X7Nmzq6q+StUlPoL6Yf4cSHeFRZuPL/3ufpiohvFl3tVYEsCiGsbT7+6Hsfn4ciAtlwZh/nSOC6+OQxARuXD1O7oeEZSaBKaJr4+Np0f1oXnDOmXe1VgSwJo3rMPTo/q4xvnKPgr+YZDQozqOQKRGM0wvP6QwMzOT0NBQMjIyqqX/1y97TvDBz/sIC/AlIvDkSPclA6iWpWT+iewCMvOLuatbHJfFlz+8hojIRS9lO/z4quvvoa6+u4VFxScHUC2De35BJmQcgPa3QasB3qi2TNX9eSJyvi6562aXxUfQt00MqTmFHMnIxzTNMwYvAKvNh8MZeaTnFdGvTQxd1eolIjVddEtXeHIW/94C5jxj8ALXSPjkHHMFrybXQrO+XipWpHY58/+0WshiMbipXT2C7DYWbDnCjqPZRIfYCfP3wfj9URslTNMkPbeIo1n5RAT4cmvXWHo0rVNqORGRGimhJ/j4w+Y5kLIVAqNcr9PHADNNV2tX1mHX8q0HQqv/A9uZv7iKSNkuucuOp0pOzWXJ9hS2HMogM78YA/CxWjAxKS42MYEQfxttG4RybctoGoYHVGu9IiJVIvsY7PwOkle77mAE11hghgGOIsB0DU8R1Qqa3wDRraq13BIX0+eJSEVc0uGrxJGMfJKO53AkI4/UnEIwIDLQTt0QPxpHBVI3RENKiMglIDcVjv3mauHKPuoaDd8vDELqQ3i863URtfxfjJ8nIufikrvsWJaYUD9iQhWwROQSFxABcd2quwqRWu+S63AvIiIiUp0UvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yFbdBUjtYJom6blFHMsuIK/QgcUwCAvwISrYjp+PtbrLk0uFowiyj0LOcTAdYLVDUF0IiASLvmuKyMVB4UsuSF6hg40H0lmdlEpyWi45BQ4cphMw8LNZCPHzoX1sKJ0bhZNQJxDDMKq7ZKmNMg5A8hpI/gXy0qAo1zXdsIBvEATHQPxV0KAL+IVWb60icskzTNM0vbnDzMxMQkNDycjIICQkxJu7lkq2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vavg2Pbfh6Eo+bVmuFq3/MOg4eUQfxWEx1dfrVKp9HkiNZXCl1SKnIJiDqXnkZJVQF6hA4sFQv19qRtip36oPxYNKSFVreSyYtZhyDkBpsM1IGtQXdfYYBpMtdbR54nUVLrsKJUi0G6jWd1gmtUNPvvCIlXBMCCkvuslInIR0zUgERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIlt1FyC1Q1Z+EQfS8jiWVUBekQOLYRAW4EPdYD8ahPtjtRjVXaLUdqYJmQch8zDkHgenA2x2CIqG0FgIiKjuCkVEAIUvuUBHMvL5ac8J1u1LJS2nEIfpmm4AJuDvY6FRRCBXNI6ga1wEvjY1tkolczrg4HrY+wMc3wGFOZ7zDQP8wqBBF4i/GiKbVEuZIiIlFL7kvDidJj/uPsH8zYc5llVARKAv8ZGB2Kwnw5VpmuQWOkg6nsPOlCwSk9MZ2LEBDcL8q7FyqVVyTsDmz2D/z66fg+pCaCNX4CrhdEBeKuxaBMmroUU/aNYXbL7VU7OIXPIUvqTCHE6TeRsPsWjrUfxsVlrGBGMYpS8rGoZBoN1Ggt1GfpGDjckZHMsq4O5u8STUCayGyqVWyToCv7wFx7ZDeDzYg8tezmKFwCgIqAPZR2HjJ5B1FDrf5bosKSLiZboG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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=4\n" + ] + }, + { + "data": { + "image/png": "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IyPD7bJ3yf8FEblEmeJxGRkZJmAOGjSo1Ly0tDTz2LFjrldubq5r3nXXXWe2bt3azM/Pd01zOBxm165dzSZNmrimTZ8+3QTMPn36mA6HwzV9woQJptVqNdPT003TNM2srCwzNDTUvP/++91qOHLkiBkSEuI2fcSIESZgPvHEE6VqPrXGEpMmTTINwzAPHDjgmvb000+bp7/lYmNjzREjRpRav8RLL71kAuasWbMqfB7Gjx9vAuYvv/zimpaSkmKGhISYgJmYmFjufk/Xv39/MzY29pyXj42NNfv3728WFxeb0dHR5vPPP2+apmlu377dBMyVK1e6/p3WrVvnWq+sc/nxxx+bgPnDDz+Uu7+HH37YtFqt5rJly0zTdJ6PJk2amH379nV7D+Tm5prx8fHm9ddff8b6ExMTTaDc108//eR2rKfXl5KSYtpsNvPRRx91TXvyySdNb29vMzU11TWtoKDADA0NNe+9917XtJLzcuq/T8k+Fi1a5FZnyb/xjz/+6JqWlZVlxsfHm3FxcabdbjdN0zSXL19uAmaLFi3MgoIC17L/+c9/TMDcsmWLa1rPnj1NwJw9e7Zr2s6dO03AtFgs5s8//+yavnjxYhMwp0+f7po2evRos06dOubx48fdar3jjjvMkJAQ179xRWqq6PtPRC5uuuxYDTIzM4Gyv7326tWLyMhI1+utt94CIDU1lWXLlnH77beTlZXF8ePHOX78OCdOnKBv377s3r2bw4cPu23rgQcecLsM1b17d+x2OwcOHACcrSzp6ekMGzbMtb3jx49jtVq56qqrWL58ean6HnrooVLTTm1JysnJ4fjx43Tt2hXTNPn111/P4ww5LV++nCeffJI///nP3H333RU+D99++y1XX321WwtPZGSk63KpJ1itVm6//XY+/vhjwNnRPiYmhu7du5e5/KnnMj8/n+PHj3P11VcDsHHjxjLXmTVrFm+//TYvvfQSvXv3BiAhIYHdu3dz5513cuLECdd5ysnJ4brrruOHH344p8uvDzzwAEuWLCn1atmypdtyLVu2dDumyMhImjVrxr59+1zThg4dSlFREV988YVr2nfffUd6ejpDhw49ay3x8fGlWse+/fZbrrzySq655hrXtMDAQB544AH279/P9u3b3ZYfNWqUW+tgSc2n1lmyjTvuuMP1c7NmzQgNDaVFixZurdUlfy9Z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4vnnn+fNN98kOzub6OhorrrqKv70pz+dUz0ff/yx607NU40YMeKCwtff//53cnNzz+kuxzOpXbs2a9as4fHHH+eNN94gPz+fNm3a8PXXX9O/f/8L2vaF1LR27Vqee+45vvjiC95++20iIiK44oorePHFF89rmw8//DAJCQlMnz6d1157jdjYWIUvkUuYYapXp4iIiIjHqM+XiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMfH+XI4HPz+++8EBQXpkRkiInLeTNMkKyuLunXrVsuAuiLny+Ph6/fffycmJsbTuxURkRoqKSnJ7WkgIhc7j4evoKAgwPmfJTg42NO7FxGRGiIzM5OYmBjX54rIpcLj4avkUmNwcLDCl4iIXDB1YZFLjS6Si4iIiHiQwpeIiIiIByl8iYiIiHiQx/t8iYiIeIrdbqeoqKi6y5AaztvbG6vVes7LK3yJiEiNY5omR44cIT09vbpLkctEaGgo0dHR53QDiMKXiIjUOCXBKyoqCn9/f90RKVXGNE1yc3NJSUkBoE6dOmddR+FLRERqFLvd7gpeERER1V2OXAb8/PwASElJISoq6qyXINXhXkREapSSPl7+/v7VXIlcTkreb+fSx1DhS0REaiRdahRPqsj7TeFLRERExIMUvkREREQ8SOFLRETkNIWFhRc0/0IdOXKEP//5zzRs2BCbzUZMTAwDBgzg+++/r9L9imcofImIiJxizpw5tG7dmqSkpDLnJyUl0bp1a+bMmVMl+9+/fz8dO3Zk2bJlvPzyy2zZsoVFixbRu3dvxowZUyX7FM9S+BIREflDYWEhTz31FLt27aJXr16lAlhSUhK9evVi165dPPXUU1XSAvbwww9jGAZr165lyJAhNG3alCuuuIKJEyfy888/s3//fgzDICEhwbVOeno6hmGwYsUK17StW7dy4403EhgYSO3atbn77rs5fvx4pdcrFafwJSIi8gcfHx+WLl1Kw4YN2bdvn1sAKwle+/bto2HDhixduhQfH59K3X9qaiqLFi1izJgxBAQElJofGhp6TttJT0/n2muvpX379qxfv55FixZx9OhRbr/99kqtV86PwpeIiMgpYmJiWLFihVsAW7NmjVvwWrFiBTExMZW+7z179mCaJs2bN7+g7bz55pu0b9+eF154gebNm9O+fXs+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U9i2bRszZ85k2bJl/PWvfwWga9euvP766wQHB5OcnExycjKPPfZYqVqGDx/O119/7QptAIsXLyY3N5fBgwcDMGnSJGbNmsU777zDtm3bmDBhAnfddRcrV66slPN1STI9LCMjwwTMjIwMT+9aRERqkPI+T/Ly8szt27ebeXl557XdwYNN08vLNJ0xq+yXl5dpDhlSGUfhbsSIEebAgQNN0zTNq6++2rz33ntN0zTNL7/80iz5yB49erT5wAMPuK33448/mhaLxczLyzN37NhhAua6detc83fv3m0C5muvvVbuvj/77DMzIiLC9fP06dPNkJCQUsvFxsa6tlNUVGTWqlXLnDVrlmv+sGHDzKFDh5qmaZr5+fmmv7+/uWbNGrdtjB492hw2bNiZT8YlpiLvOw2yKiIi8oe8PJg37+SlxvIUF8OXXzqXr6rnbb/44otce+21pVqcNm3axObNm/noo49c00zTxOFwkJiYyK5du/Dy8qJDhw6u+Y0bNyYsLMxtO0uXLmXSpEns3LmTzMxMiouLyc/PJzc395z7dHl5eXH77bfz0Ucfcffdd5OTk8O8efP45JNPANizZw+5ublcf/31busVFhbSvn37Cp2PmkThS0RE5A+ZmWcPXiUcDufyVRW+evToQd++fXnyyScZOXKka3p2djZ/+tOfGDduXKl1GjRowK5du8667f3793PzzTfz0EMP8a9//Yvw8HBWrVrF6NGjKSwsrFCH+uHDh9OzZ09SUlJYsmQJfn5+9OvXz1UrwDfffEO9evXc1rPZbOe8j5pG4UtEROQPwcFgsZxbALNYnMtXpcmTJ9OuXTuaNWvmmtahQwe2b99O48aNy1ynWbNmFBcX8+uvv9KxY0fA2QJ16t2TGzZswOFw8Morr2CxOLt/f/rpp27b8fHxwW63n7XGrl27EhMTw5w5c1i4cCG33XYb3t7eALRs2RKbzcbBgwfp2bNnxQ6+BlP4EhER+YOfHwwc6Lyr8fTO9qfy8nIuV1WtXiVat27N8OHDmTJlimva448/ztVXX83YsWO57777CAgIYPv27SxZsoQ333yT5s2b06dPHx544AGmTp2Kt7c3jz76KH5+fq6xwho3bkxRURFvvPEGAwYMYPXq1bxz2i2ccXFxZGdn8/3339O2bVv8/f3LbRG78847eeedd9i1axfLly93TQ8KCuKxxx5jwoQJOBwOrrnmGjIyMli9ejXBwcGMGDGiCs7axU93O4qIiJxi4kQ4W4OP3Q4TJnimnueeew7HKU1xbdq0YeXKlezatYvu3bvTvn17nnrqKerWretaZtasWdSuXZsePXowePBg7r//foKCgvD19QWgbdu2vPrqq7z44ou0atWKjz76qNTQFl27duXBBx9k6NChREZG8tJLL5Vb4/Dhw9m+fTv16tWjW7dubvOef/55/vGPfzBp0iRatGhBv379+Oabb4iPj6+M03NJMkzTND25w8zMTEJCQsjIyCC4qttrRUSkxirv8yQ/P5/ExETi4+NdYaOi3nnHOZyE1ereAubl5Qxeb78NDz54oUfgOYcOHSImJoalS5dy3XXXVXc5NVJF3ndq+RIRETnNgw/Cjz86Ly3+0SUKi8X5848/XvzBa9myZcyfP5/ExETWrFnDHXfcQVxcHD169Kju0gT1+RIRESlTt27OV16e867G4OCq7+NVWYqKivjb3/7Gvn37CAoKomvXrnz00UeujvBSvRS+REREzsDP79IJXSX69u1L3759q7sMKYcuO4qIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kO52FBERAQ5kHiCnKKfC6wV4BxAbHFsFFUlNpfAlIiKXvQOZB7j5y5vPe/0FgxcogMk502VHERG57J1Pi1dlrn+6n376CavVSv/+/St1u+dq//79GIZBQkJCtey/plP4EhERuci8//77/PnPf+aHH37g999/r+5ypJIpfImIiFxEsrOzmTNnDg899BD9+/dnxowZbvPnz59PkyZN8PX1pXfv3sycORPDMEhPT3cts2rVKrp3746fnx8xMTGMGzeOnJyTrXNxcXG88MIL3HvvvQQFBdGgQQPeffdd1/z4+HgA2rdvj2EY9OrVqyoP+bKj8CUiInIR+fTTT2nevDnNmjXjrrvu4oMPPsA0TQASExO59dZbGTRoEJs2beJPf/oT/+///T+39ffu3Uu/fv0YMmQImzdvZs6cOaxatYqxY8e6LffKK6/QqVMnfv31Vx5++GEeeughfvvtNwDWrl0LwNKlS0lOTuaLL77wwJFfPhS+RERELiLvv/8+d911FwD9+vUjIyODlStXAjBt2jSaNWvGyy+/TLNmzbjjjjsYOXKk2/qTJk1i+PDhjB8/niZNmtC1a1emTJnCrFmzyM/Pdy1300038fDDD9O4cWMef/xxatWqxfLlywGIjIwEICIigujoaMLDwz1w5JcPhS8REZGLxG+//cbatWsZNmwYAF5eXgwdOpT333/fNb9z585u61x55ZVuP2/atIkZM2YQGBjoevXt2xeHw0FiYqJruTZt2rj+bhgG0dHRpKSkVNWhySk01ISIiMhF4v3336e4uJi6deu6ppmmic1m48033zynbWRnZ/OnP/2JcePGlZrXoEED19+9vb3d5hmGgcPhOM/KpSIUvkRERC4CxcXFzJo1i1deeYUbbrjBbd6gQYP4+OOPadasGd9++63bvHXr1rn93KFDB7Zv307jxo3PuxYfHx8A7Hb7eW9DyqfwJSIichFYsGABaWlpjB49mpCQELd5Q4YM4f333+fTTz/l1Vdf5fHHH2f06NEkJCS47oY0DAOAxx9/nKuvvpqxY8dy3333ERAQwPbt21myZMk5t55FRUXh5+fHokWLqF+/Pr6+vqVqkvOnPl8iIiIXgffff58+ffqUGXKGDBnC+vXrycrK4vPPP+eLL76gTZs2TJ061XW3o81mA5x9uVauXMmuXbvo3r077du356mnnnK7lHk2Xl5eTJkyhWnTplG3bl0GDhxYOQcpABhmyf2rHpKZmUlISAgZGRkEBwd7ctciIlKDlPd5kp+fT2JiIvHx8fj6+p7Ttraf2M7QBUPPu5Y5N8+hZUTL817/QvzrX//inXfeISkpqVr2L04Ved/psqOIiMgl5O2336Zz585ERESwevVqXn755VJjeMnFTeFLRETkErJ7927++c9/kpqaSoMGDXj00Ud58sknq7ssqQCFLxERuewFeAdU6/oV8dprr/Haa695bH9S+RS+RETkshcbHMuCwQvIKco5+8KnCfAOIDY4tgqqkppK4UtERAQUoMRjNNSEiIiIiAcpfImIiIh4kC47ioiIlMM0TfKLHBTaHfhYLfh6W1wjyYucL4UvERGR0+QX2dmenMm6xFQOnMjB7jCxWgxiIwLoHB9OyzrB+Hpbq7tMuUQpfImIiJxi//Ec5qxP4sCJHAwMwvy98fGxUmx3sPlQBpsOpRMbEcDQTjHE1fLcEBOXgl69etGuXTtef/316i7loqY+XyIiIn/YfzyH6asTOXA8h9jwABpHBRIRaCPEz5uIQBuNowKJDQ/gwB/L7T9e8aEpzmTk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4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg7yquwCpGUzTJD23iGPZBeQV2rEYBqH+3kQG2fD1tlZ3eXK5sBdB9lHIOQ6mHaw2CKwN/hFg0XdNEbk4KHzJBckrtLP5UDprE1NJSsslp8CO3XQABr5eFoJ9vWkTE0KHBmHE1wrAMIzqLllqooxDkLQOkn6BvDQoynVONyzgEwhB0RDXDep1BN+Q6q1VRC57hmmapid3mJmZSUhICBkZGQQHB3ty11LJ9qRkMT/hd3anZONlNQj39yHA5oW31YJpmuQV2cnKLyYtt4hAm5VrmkRyfcvaBNqU+aWSFBfAnqXw2yLISwXfMPALAW9/Z/ByFENhNuSmQnEehMZBq8FQtwPoi8AlT58ncqlS+JLz8su+E8zdeIjsgmJiwwPw8TrzJZ3UnEJSsvK5om4Id10dS3iAj4cqlRqrMAc2zISDa8AvHAKjzxyoHMWQtt8Zyq4YBM1uUgC7xOnzRC5V6gQhFbb5UDqfrk/C7jBpHBl41uAFEB7gQ8NagWw9nMFHPx8gr9DugUqlxrIXw6//gwOrITQeguqcPUhZvCCisfMy5JbPYd9yz9QqInIahS+pkPTcQuYn/E6R3UH9MP8y+3AVFhhkpVkpLHCf5+NloWFkAFt/z2TZzqOeKllqogOr4cAa52VEH//S8wuKIDXL+efpAqOclyW3z4f0g1VeqojI6dT5Ripk1e7jHEzNpWntoFLz9m31ZeXcMLb+FIjpMDAsJq26ZNPr1jTir8gHwOZlJSLAh5W7jtG+QRh1Q/08fQhyqcvPhJ0LwNsPbIHu87bsh89W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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=5\n" + ] + }, + { + "data": { + "image/png": "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msybN48BAwZgmqbH/6u+ffuSnp5e4t/xfGsSkZpDlx2rQPHliaysrBLzpk+fTmZmJseOHfPo6Lxnzx5M0+Qf//gH//jHP0rdbnJyMvXr13f/3LBhQ4/54eHhgOuSCsDu3bsBuO6660rdXkhIiMfPNpuNBg0alFju4MGDPPHEE3z55ZfubRdLT08vddvncujQIYYOHco111zDSy+95J5envNw4MCBUi/rNm/e/IJqOlN6erpHvzZfX18iIiJKLHfnnXcydepUNm3axJw5c7jjjjtK9M0qlpKSwlNPPcVHH31EcnJyif2dKSEhgQcffJBhw4YxceJE9/Tif9szL/Gdub3i90RZmjZtWuZwGac7870Grvfb6e+H9u3b06JFC+bOncvo0aMB1yXHWrVqlfkePF18fHyJaWX9G7ds2dI9v02bNmXWeeb/iWINGjQo8W8UGhpaog9maGiox/rHjx8nLS2Nt956i7feeqvU4zjz3/V8axKRmkPhqwqEhoZSt25dtm7dWmJe8QfJmeNHFbdSPProo2X2jWnSpInHz2XdMWaapsc233///RJDIQAefXrAdWfimXdfOhwObrjhBlJSUnjsscdo0aIFgYGBHD58mJEjR15Q5/aCggJuvfVW7HY7H3/8sUcdF3IeKssjjzzi0YG8Z8+erFixosRyV111FY0bN2b8+PEkJiZy5513lrnN22+/nR9++IG//OUvdOjQgaCgIJxOJ/369StxLlNTUxkyZAjNmjXjnXfe8ZhXvOwLL7xAhw4dSt1XRfYbOtd7rdjQoUP597//zYkTJwgODubLL79k2LBhJd5rpamIvnrnW2dZy53v/6m77rqrzODbrl27C6pJRGoOha8q0r9/f9555x3Wrl17Xh2fGzVqBICPj895tUScj+IO4LVr177gbW7ZsoVdu3Yxa9Ys7rnnHvf0JUuWXHBd48aNIyEhgVWrVlGnTh2PeeU5D7Gxse4WoNP9+uuvF1zb6f761796tE6erRVp2LBh/Otf/6Jly5ZlhqHU1FS+++47nnrqKZ544gn39NKOwel0Mnz4cNLS0li6dKn75odixf+2ISEhFfZ+qQhDhw7lqaeeYt68edSpU4eMjAyPy3vlFRsbW+q/586dO93zvSkqKorg4GAcDkeFnveyWkpFpHpSn68q8te//pWAgADuvfdejh07VmL+md96a9euTa9evZg+fTpHjhwpsXxpQ0icS9++fQkJCeHZZ5+lsLDwgrZZ/K399HpN0+S///1vuesBmDFjBtOnT+f1118vNZSW5zzcfPPN/PTTT6xdu9Zj/gcffHBBtZ2pVatW9OnTx/3q3Llzmcved999PPnkk7z44otlLlPauQRKHdn8qaeeYvHixXz44YelXo7r3LkzjRs35j//+U+pl7cv5P1SEVq2bEnbtm2ZO3cuc+fOpW7duvTo0eOCt3fzzTezdu1afvzxR/e07Oxs3nrrLeLi4kr0TatsVquVIUOGMG/evFJbti/0vAcGBl7wJXwRufSo5auKNG3alDlz5jBs2DCaN2/uHuHeNE0SExOZM2cOFovFo4/V66+/zrXXXkvbtm25//77adSoEceOHePHH3/k0KFDbNq0qVw1hISEMG3aNO6++246derEHXfcQVRUFAcPHuTrr7/mmmuu4bXXXjvrNlq0aEHjxo159NFHOXz4MCEhIcybN++C+qucOHGChx9+mFatWmG32/nf//7nMX/w4MEEBgae93n461//yvvvv0+/fv145JFH3ENNxMbGev3RTbGxsfzzn/886zIhISH06NGD559/nsLCQurXr8+3335LYmKix3JbtmzhmWeeoUePHiQnJ5c4T3fddRcWi4V33nmHm266idatWzNq1Cjq16/P4cOHWb58OSEhIXz11VfnrHvjxo0ltg+ulrWuXbue+8BLMXToUJ544gn8/PwYPXr0RQ0k/Pjjj/Phhx9y0003MW7cOCIiIpg1axaJiYnMmzevSgYpnjJlCsuXL+eqq67i/vvvp1WrVqSkpLBx40aWLl1KSkpKubfZuXNn5s6dy8SJE7niiisICgpiwIABlVC9iHiDwlcVGjhwIFu2bOHFF1/k22+/5b333sMwDGJjY+nfvz8PPvgg7du3dy/fqlUr1q9fz1NPPcXMmTM5efIktWvXpmPHjh6XqcrjzjvvpF69ekyZMoUXXniB/Px86tevT/fu3Rk1atQ51/fx8eGrr75i3LhxTJ48GT8/PwYPHszYsWM9aj8fWVlZ5OXlsX37dvfdjadLTEwkMDDwvM9D3bp1Wb58OX/605+YMmUKkZGRPPjgg9SrV8/d4ftSM2fOHP70pz/x+uuvY5omN954IwsXLqRevXruZU6ePIlpmqxcuZKVK1eW2EbxpdBevXrx448/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7Fiu81GTKHyJiIj8LiPj3MGrmNPpWr6ywlePHj3o27cvkyZNYuTIke7pWVlZ/PGPf2TcuHEl1mnYsCG7du0657b379/PLbfcwkMPPcS///1vIiIiWL16NaNHj6agoKBcHeqHDx9Oz549SU5OZsmSJfj7+9OvXz93rQBff/019evX91jPbref9z5qGoUvERGR34WEgMVyfgHMYnEtX5mmTJlChw4daN68uXtap06d2L59O02aNCl1nebNm1NUVMQvv/xC586dAVcL1Ol3T27YsAGn08mLL76IxeLq/v3xxx97bMfX1xeHw3HOGrt160ZMTAxz585l4cKF3Hbbbfj4+ADQqlUr7HY7Bw8epGfPnuU7+BpM4UtEROR3/v4wcKDrrsYzO9ufzmZzLVdZrV7F2rZty/Dhw5k6dap72mOPPcbVV1/N2LFjue+++wgMDGT79u0sWbKE1157jRYtWtCnTx8eeOABpk2bho+PD3/+85/x9/d3jxXWpEkTCgsLefXVVxkwYABr1qzhzTNu4YyLiyMrK4vvvvuO9u3bExAQUGaL2J133smbb77Jrl27WL58uXt6cHAwjz76KBMmTMDpdHLttdeSnp7OmjVrCAkJYcSIEZVw1i59uttRRETkNBMnwrkafBwOmDDBO/U8/fTTOE9rimvXrh0rV65k165ddO/enY4dO/LEE09Qr1499zKzZ8+mTp069OjRg8GDB3P//fcTHByMn58fAO3bt+ell17iueeeo02bNnzwwQclhrbo1q0bDz74IEOHDiUqKornn3++zBqHDx/O9u3bqV+/Ptdcc43HvGeeeYZ//OMfTJ48mZYtW9KvXz++/vpr4uPjK+L0VEuGaZqmN3eYkZFBaGgo6enphFR2e62IiNRYZX2e5OXlkZiYSHx8vDtslNebb7qGk7BaPVvAbDZX8HrjDXjwwYs9Au85dOgQMTExLF26lOuvv76qy6mRyvO+U8uXiIjIGR58EL7/3nVp8fcuUVgsrp+///7SD17Lli3jyy+/JDExkR9++IE77riDuLg4evToUdWlCerzJSIiUqprrnG9cnNddzWGhFR+H6+KUlhYyN/+9jf27dtHcHAw3bp144MPPnB3hJeqpfAlIiJyFv7+1Sd0Fevbty99+/at6jKkDLrsKCIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIi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9ttvqV27NjfffDNt27ZlypQp7tqGDBlCv3796N27N1FRUXz44YcYhsH8+fMJDw+nR48e9OnTh0aNGjF37txyn59Zs2aRk5PD5MmTqVu3rvv1hz/8ocx1fH19mTRpEu3ataNHjx5YrVY++ugjAAICAli1ahUNGzbkD3/4Ay1btmT06NHk5eUREhICwP3330/z5s3p0qULUVFRrFmzptx1n84wz/UOq2AZGRmEhoaSnp7uPigREZHyKuvzJC8vj8TExLOOFVWW4hHuT+SeoGFwQ9dwEmcocBRwMPMgtfxrcXfLu4kJiSllS3K5Kc/7Th3uRUREftcwpCF3tbzL/WxHDNdwElbDisN0kJqfCiY0DG7IkKZDFLzkgih8iYiInKZhSEMe6vAQv6b8yoZjG0jKTKLQUYjVYqVNZBs61+lM84jm2K0V92gfubwofImIiJzBbrXTLqodbWu1Jc+RR6GzEB+LD35Wv0odyV4uDwpfIiIiZTAMA3+bP/5U7uj1cnnR3Y4iIlIjefl+MrnMlef9pvAlIiI1io+Pa7T5nJycKq5ELifF77fi99/Z6LKjiIjUKFarlbCwMJKTkwHXOE7qpyWVxTRNcnJySE5OJiwsrMyx2E6n8CUiIjVOdHQ0gDuAiVS2sLAw9/vuXBS+RESkxjEMg7p161K7du2LfhSMyLn4+PicV4tXMYUvERGpsaxWa7k+FEW8QR3uRURERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2xVXcClJDu/iKz8IgwgyM9GgK9Oj4hchgrzIC8NTBN8A8AeAoZR1VWJ1BiXfbpIzsxjc1I6W39L51hGHgVFTgB8bRbqhPjRtn4o7RqEERVsr+JKRUQqUW4q/PaL65V+yBXAMMHqC4G1oE5baNAZQmMUxEQukmGapunNHWZkZBAaGkp6ejohISHe3LWH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VyuQq+Ij6BQbjs+5hgMQKS+nE478AvvXwPGdvw9DUfxrzXC1bvmHQYMrIe4aCI+rulqlQunzRKorhS+pENn5RfyWlktyZj65BQ4sFgj196VOiJ16of5YNKSEVLbiy4qZRyD7JJgO14CsQXVcY4NpMNUaR58nUl3psqNUiEC7jaZ1gmlaJ/jcC4tUBsOAkHqul4jIJUzXgERERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExItsVV2A1AyZeYUcSs3leGY+uYUOLIZBWIAPdYL9qB/uj9ViVHWJUtOZJmQchowjkHMCnA6w2SGoNoTGQEBEVVcoIgIofMlFOpqex4/7TrLhQAqp2QU4TNd0AzABfx8LDSMCuapRBF1iI/C1qbFVKpjTAYc3wv7v4cQuKMj2nG8Y4BcG9TtD3LUQ2bhKyhQRKabwJRfE6TT5Ye9JFm49wvHMfCICfYmLDMRmPRWuTNMkp8BB4olsdidnkpCUxsAO9akf5l+FlUuNkn0Stn4KB39y/RxUB0IbugJXMacDclNgzxJIWgvN+0HTvmDzrZqaReSyp/Al5eZwmizY/BtLth/Dz2alRXQwhlHysqJhGATabcTbbeQVOticlM7xzHzu6RpHfK3AKqhcapTMo/DzW3B8J4THgT249OUsVgiMgoBakHUMNn8Mmceg092uy5IiIl6ma0BSbt/vPs63244REehL/XD/UoPXmfx8rDStHcSx9Dzm/HyAk1n5XqhUaqyCHFg/A07ugtotyw5epzMMCI529f/atwK2fu7qJyYi4mUKX1Iuh1JzWLz1KIF2K+EBpV+2sebnEZB6Amt+nsd0i8WgUVQQB0/m8M2WIzid+uCTC7RrMRzbCpFNwVKyAT8338axlABy80tp3LcHu0LYvmVwdIsXihUR8XRBlx1ff/11XnjhBY4ePUr79u159dVXufLKKyu6NrkErdp1nJPZBbSILtnSUG/rejrNm0njH7/D4nTitFjY2/V6Nt46it9adwbAajGoF+7PhgOpdG1ciya1g7x9CFLdZSW7glNgFFg9vwCs3tKAlz65kvk/NMXptGCxOBnYbTd/vv1nrmlz+NSCAZGQfcIV4uq0AYu+h4qI95T7N87cuXOZOHEiTz75JBs3bqR9+/b07duX5OTkyqhPLiEnsvLZfCid2sH2Epca2301h9sn3kWjn5ZhcToBsDidNPppGbdPGE67BR+6lw3x8yG30MEvB1O9Wr/UEL/9AjkprvB1mmnzO9Ljkbv46scmOJ2uX21Op4WvfmxC93F38+aXHT23E1LPdXdkyl5vVS4iAlxA+HrppZe4//77GTVqFK1ateLNN98kICCA9957rzLqk0vIwZQc0nMLCQ/0bG2ot3U91736NAYmVofDY57V4cDA5LqpT1Fv2wb39DB/X7YfycChS49SXse2gs0fjFO/vlZvacCY//bFxKDIYfVYvMhhxcTg4Vf6smZr/VMz7MFQlAup+71UuIiIS7nCV0FBARs2bKBPnz6nNmCx0KdPH3788ccKL04uLckZrk7yljNavTrNm4nTeva3ktNqoeO8me6fA+1WMnML1fFeyqcwD9IPlehg/9InV2K1Os+6qtXq5OVPzugeYVgh7WBFVykiclbl6vN14sQJHA4HderU8Zhep04ddu7cWeo6+fn55Oef+oDNyMi4gDLlUpCVX1RimjU/z93H62ysDgdNfliKNT8Ph90PX5uFAoeT7ALHWdcT8VCYA45C8D01VEluvs3dx+tsihxWPl/TjNx8G/7239/LNj/XGGAiIl5U6b1MJ0+eTGhoqPsVExNT2buUSlLagBL2nKxzBq9iFqcTe06W6wcTDAz01CG5IKddrc7I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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=6\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1C0lEQVR4nO3dd3hUZf7+8feZmWTSGwRCCUmQXqVYAGmKAiJfQFREVEDUVWER0F11f2vfFdS1LBbEQnNFUVFBFBCkKEWlGOnSAgQEAqT3ZOb8/hgzMCQBAsmEhPt1XXNBTv3MYcjc8zzPecYwTdNERERERLzCUtkFiIiIiFxKFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL7Ea5555hkMw/BYFhsby4gRI7xax4wZMzAMg3379nn1vHJu9O8jItWdwlclS0hIYMyYMTRp0oSAgAACAgJo0aIFo0ePZtOmTZVd3iVp3759GIZxTo/SAkJsbCyGYdCrV68S17/33nvuY6xfv74Cn835Ods1mDRpUmWXeEmZPXs2r7/+emWXISLlxFbZBVzKFixYwJAhQ7DZbAwbNoy2bdtisVjYsWMHX3zxBVOmTCEhIYGYmJjKLrXC/P7771gsF9dngMjISD788EOPZa+88goHDx7ktddeK7Ztafz8/Fi+fDlHjhwhKirKY91HH32En58fubm55Vd4BRg6dCg33nhjseXt2rWrsHPedddd3H777djt9go7R1Uze/ZstmzZwrhx4yq7FBEpBwpflWTPnj3cfvvtxMTE8P3331OnTh2P9S+++CJvv/32RRdMTpWVlUVgYOAFHeNifIMNDAzkzjvv9Fj2ySefkJKSUmz5mXTp0oV169YxZ84cHn74YffygwcP8uOPPzJo0CDmzp1bbnVXhPbt25fpOZcHq9WK1Wo94zamaZKbm4u/v7+XqhIRKT8X7zt7NffSSy+RlZXF9OnTiwUvAJvNxtixY4mOjvZYvmPHDm655RYiIiLw8/OjY8eOzJ8/32ObojEzq1evZsKECURGRhIYGMigQYM4duxYsXMtXLiQrl27EhgYSHBwMP369WPr1q0e24wYMYKgoCD27NnDjTfeSHBwMMOGDQPgxx9/5NZbb6VBgwbY7Xaio6MZP348OTk5Z70Op4/5OtcuvnO5DgBbt27l2muvxd/fn/r16/Ovf/0Lp9N51rrKg5+fHzfffDOzZ8/2WP7xxx8THh5O7969i+2zadMmRowYQcOGDfHz8yMqKop77rmHEydOuLc5W5fgqX7++Wf69OlDaGgoAQEBdO/endWrV5fr84yNjeWmm25i1apVXHnllfj5+dGwYUNmzZrl3mb9+vUYhsHMmTOL7b948WIMw2DBggVAyWO+is6xePFiOnbsiL+/P1OnTgVg79693HrrrURERBAQEMDVV1/NN99843GOFStWYBgGn376Kf/+97+pX78+fn5+XHfddezevdtj2x49etCqVSs2bdpE9+7dCQgIoFGjRnz++ecArFy5kquuugp/f3+aNm3K0qVLiz2nQ4cOcc8991C7dm3sdjstW7Zk2rRp51VTjx49+Oabb9i/f7/73zg2NvYc/mVE5GKllq9KsmDBAho1asRVV111zvts3bqVLl26UK9ePR5//HECAwP59NNPGThwIHPnzmXQoEEe2//1r38lPDycp59+mn379vH6668zZswY5syZ497mww8/ZPjw4fTu3ZsXX3yR7OxspkyZwjXXXMOvv/7q8Uu+sLCQ3r17c8011/Cf//yHgIAAAD777DOys7N58MEHqVGjBr/88gtvvPEGBw8e5LPPPivTdTm9uw/gn//8J0lJSQQFBZXpOhw5coSePXtSWFjo3u7dd9/1amvJHXfcwQ033MCePXu47LLLAFcX0i233IKPj0+x7ZcsWcLevXsZOXIkUVFRbN26lXfffZetW7fy008/YRhGid2iBQUFjB8/Hl9fX/eyZcuW0bdvXzp06MDTTz+NxWJh+vTpXHvttfz4449ceeWVZ60/Ozub48ePF1seFhaGzXby18fu3bu55ZZbGDVqFMOHD2fatGmMGDGCDh060LJlSzp27EjDhg359NNPGT58uMex5syZU2oYPdXvv//O0KFD+ctf/sJ9991H06ZNOXr0KJ07dyY7O5uxY8dSo0YNZs6cyf/93//x+eefF/s/MWnSJCwWC48++ihpaWm89NJLDBs2jJ9//tlju5SUFG666SZuv/12br31VqZMmcLtt9/ORx99xLhx43jggQe44447ePnll7nllltITEwkODgYgKNHj3L11VdjGAZjxowhMjKShQsXMmrUKNLT04t1HZ6tpv/3//4faWlp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Rw+mTp3K4cOHi21f0hQSZ9O7d29CQkJ44YUXKCgoOK9jFn1qP7Ve0zT573//W+Z6AKZPn87UqVN56623SgylZbkON954Iz/99BO//PKLx/qPPvrovGo7XYsWLejVq5f70aFDh1K3vffee3n66ad55ZVXSt2mpGsJlDiz+bPPPsvixYv5+OOPS+yO69ChA5dddhn/+c9/SuzePp/XS3lo3rw5rVu3Zs6cOcyZM4c6derQrVu38z7ejTfeyC+//MLatWvdy7Kysnj33XeJjY0tNjatolmtVgYPHszcuXNLbNk+3+seGBh43l34InLxUctXJWncuDGzZ89m6NChNG3a1D3DvWmaJCQkMHv2bCwWi8cYq7feeotrrrmG1q1bc99999GwYUOOHj3K2rVrOXjwIL/99luZaggJCWHKlCncddddtG/fnttvv53IyEgOHDjAN998Q5cuXXjzzTfPeIxmzZpx2WWX8eijj3Lo0CFCQkKYO3fueY1XOX78OA899BAtWrTAbrfzv//9z2P9oEGDCAwMPOfr8Pe//50PP/yQPn368PDDD7unmoiJifH6VzfFxMTwzDPPnHGbkJAQunXrxksvvURBQQH16tXju+++IyEhwWO7zZs38/zzz9OtWzeSkpKKXac777wTi8XC+++/T9++fWnZsiUjR46kXr16HDp0iOXLlxMSEsLXX3991ro3btxY7Pjgalnr1KnT2Z94CYYMGcJTTz2Fn58fo0aNuqCJhB9//HE+/vhj+vbty9ixY4mIiGDmzJkkJCQwd+7cSpmkeNKkSSxfvpyrrrqK++67jxYtWpCcnMzGjRtZunQpycnJZT5mhw4dmDNnDhMmTOCKK64gKCiI/v37V0D1IuINCl+VaMCAAWzevJlXXnmF7777jmnTpmEYBjExMfTr148HHniAtm3burdv0aIF69ev59lnn2XGjBmcOHGCWrVq0a5dO49uqrK44447qFu3LpMmTeLll18mLy+PevXq0bVrV0aOHHnW/X18fPj6668ZO3YsEydOxM/Pj0GDBjFmzBiP2s9FZmYmubm5bNu2zX1346kSEhIIDAw85+tQp04dli9fzl//+lcmTZpEjRo1eOCBB6hbt657wPfFZvbs2fz1r3/lrbfewjRNbrjhBhYuXEjdunXd25w4cQLTNFm5ciUrV64sdoyirtAePXqwdu1ann/+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bBhff/21O7QBLF68mOzsbAYNGgTAxIkTmTVrFu+88w5bt25l/Pjx3HnnnaxcubJcrleVZHpZWlqaCZhpaWnePrWIiFQjpb2f5OTkmNu2bTNzcnLO67iDBpmmzWaarphV8sNmM83Bg8vjWXgaPny4OWDAANM0TfPqq68277nnHtM0TfPLL780i96yR40aZd5///0e+/3444+mxWIxc3JyzO3bt5uAuW7dOvf6Xbt2mYD52muvlXruzz77zKxRo4b75+nTp5uhoaHFtouJiXEfp6CgwKxZs6Y5a9Ys9/qhQ4eaQ4YMMU3TNHNzc82AgABzzZo1HscYNWqUOXTo0DNfjCqmLK87TbIqIiLyp5wcmDfvZFdjaQoL4csvXdtX1Pdtv/jii1x77bXFWpx+++03Nm3axEcffeReZpomTqeThIQEdu7cic1mo3379u71jRo1Ijw83OM4S5cuZeLEiezYsYP09HQKCwvJzc0lOzv7nMd02Ww2brvtNj766CPuuususrKymDdvHp988gkAu3fvJjs7m+uvv95jv/z8fNq1a1em61GdKHyJiIj8KT397MGriNPp2r6iwle3bt3o3bs3TzzxBCNGjHAvz8zM5C9/+Qtjx44ttk+DBg3YuXPnWY+9b98+brrpJh588EH+/e9/ExERwapVqxg1ahT5+fllGlA/bNgwunfvTlJSEkuWLMHf358+ffq4awX45ptvqFevnsd+drv9nM9R3Sh8iYiI/CkkBCyWcwtgFotr+4o0adIkLr/8cpo2bepe1r59e7Zt20ajRo1K3Kdp06YUFhby66+/0qFDB8DVAnXq3ZMbNmzA6XTyyiuvYLG4hn9/+umnHsfx9fXF4XCctcbOnTsTHR3NnDlzWLhwIbfeeis+Pj4AtGjRArvdzoEDB+jevXvZnnw1pvAlIiLyJ39/GDDAdVfj6YPtT2WzubarqFavIq1bt2bYsGFMnjzZveyxxx7j6quvZsyYMdx7770EBgaybds2lixZwptvvkmzZs3o1asX999/P1OmTMHHx4dHHnkEf39/91xhjRo1oqCggDfeeIP+/fuzevVq3jntFs7Y2FgyMzP5/vvvadu2LQEBAaW2iN1xxx2888477Ny5k+XLl7uXBwcH8+ijjzJ+/HicTifXXHMNaWlprF69mpCQEIYPH14BV+3ip7sdRURETjFhApytwcfh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Z66v2Nnr5dKiux1FREREvEjhS0RERMSLFL5EREREvEhjvkREREphmia5jlwKnAX4WHzws/rpRhi5YApfIiIip8lz5LEjeQcbj24kMSMRh9OB1WIlOjia9rXb0yyiGXbr+X+9jFzaFL5EREROcSD9AF/s+oLEjEQMwyDMHoavzZdCs5CtJ7ay5fgWooOjubnxzTQIaVBpdRqGwZdffsnAgQMrrQY5PxrzJSIi8qcD6Qf43/b/cSDjAA2CG9AwtCERfhGE2EOI8IugYWhDGgQ34EDGn9ulHyjX848YMQLDMDAMAx8fH2rXrs3111/PtGnTcDqdHtsePnyYvn37ntNxDcPgq6++KtdaS/PMM8+U+gXX5WHFihUMGDCAOnXqEBgYyOWXX85HH31UYecD179LeYZchS8RERFcXY1f7PqC4znHuSz0MnysPiVu52P14bLQyziec5wvdn1BniOvXOvo06cPhw8fZt++fSxcuJCePXvy8MMPc9NNN1FYWOjeLioqCru9/Lo+8/Pzy+1Y5aG0etasWUObNm2YO3cumzZtYuTIkdx9990sWLDAyxWeP4UvERERYEfyDhIzEokJjjnroHrDMGgQ3IDEjER+T/69XOuw2+1ERUVRr1492rdvzz/+8Q/mzZvHwoULmTFjhkcNRa1Z+fn5jBkzhjp16uDn50dMTAwTJ04EIDY2FoBBgwZhGIb756IWqvfff9/jy6AXLVrENddcQ1hYGDVq1OCmm25iz549HjUePHiQoUOHEhERQWBgIB07duTnn39mxowZPPvss/z222/uFryimg8cOMCAAQMICgoiJCSE2267jaNHj7qPWVo9p/vHP/7B888/T+fOnbnssst4+OGH6dOnD1988UWp1zQlJYVhw4YRGRmJv78/jRs3Zvr06e71iYmJ3HbbbYSFhREREcGAAQPYt2+fu66ZM2cyb94893NasWLFmf4Jz0pjvkRE5JJnmiYbj250dfeV0uJ1Ol+rLxiw4egGWtdsXaF3QV577bW0bduWL774gnvvvbfY+smTJzN//nw+/fRTGjRoQGJiIomJiQCsW7eOWrVqMX36dPr06YPVevIbNHbv3s3cuXP54osv3MuzsrKYMGECbdq0ITMzk6eeeopBgwYRHx+PxWIhMzOT7t27U69ePebPn09UVBQbN27E6XQyZMgQtmzZwqJFi1i6dCkAoaGhOJ1Od/BauXIlhYWFjB49miFDhngEmZLqORdpaWk0b9681PVPPvkk27ZtY+HChdSsWZPdu3eTk5MDQEFBAb1796ZTp078+OOP2Gw2/vWvf9GnTx82bdrEo48+yvbt20lPT3cHtoiIiHOurSQKXyIicsnLdeSSmJFImD2sTPuF28NJzEgk15GLv82/Yor7U7Nmzdi0aVOJ6w4cOEDjxo255pprMAyDmJgY97rIyEgAwsLCiIqK8tgvPz+fWbNmubcBGDx4sMc206ZNIzIykm3bttGqVStmz57NsWPHWLdunTuENGrUyL19UFAQNpvN41xLlixh8+bNJCQkEB0dDcCsWbNo2bIl69at44orrii1nrP59NNPWbduHVOnTi11mwMHDtCuXTs6duwInGwNBJgzZw5Op5P333/fHaCnT59OWFgYK1as4IYbbsDf35+8vLxi1+98qdtRREQueQXOAhxOBzajbG0SVsOKw+mgwFlQQZWdZJpmqa1rI0aMID4+nqZNmzJ27Fi+++67czpmTExMsaCza9cuhg4dSsOGDQkJCXEHlQMHXDcXxMfH065duzK1/mzfvp3o6Gh38AJo0aIFYWFhbN++/Yz1nMny5csZOXIk7733Hi1btix1uwcffJBPPvmEyy+/nL///e+sWbPGve63335j9+7dBAcHExQURFBQEBEREeTm5hbrbi0vavkSEZFLno/FB6vFSqFZePaNT+EwXfN/+VjOravyQmzfvp24uLgS17Vv356EhAQWLlzI0qVLue222+jVqxeff/75GY8ZGBhYbFn//v2JiYnhvffeo27dujidTlq1auUeAO/vX3EtfCXVU5qVK1fSv39/XnvtNe6+++4zbtu3b1/279/Pt99+y5IlS7juuusYPXo0//nPf8jMzKRDhw4l3jFZliBYFmr5EhGRS56f1Y/o4GhS81LLtF9KXgrRwdH4WUseHF5eli1bxubNm4t1CZ4qJCSEIUOG8N577zFnzhzmzp1LcnIyAD4+PjgcjrOe58SJE/z+++/885//5LrrrqN58+akpKR4bNOmTRvi4+Pdxz6dr69vsXM1b97cYxwawLZt20hNTaVFixZnret0K1asoF+/frz44ovcf//957RPZGQkw4cP53//+x+vv/467777LuAKrrt27aJWrVo0atTI4xEaGlrqc7oQCl8iInLJMwyD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ERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIltlFyDVg2mapGYXcCwzj5x8BxbDICzAh8hgO34+1souTy4VjgLIPApZx8F0gNUOQbUhoAZY9FlTRC4OCl9yQXLyHWw6mMovCckkpmSTlefAYToBAz+bhRA/H9pEh9K+QThxNQMxDKOyS5bqKO0gJK6DxJ8hJwUKsl3LDQv4BkFwFMR2gXodwC+0cmsVkUueYZqm6c0TpqenExoaSlpaGiEhId48tZSz3UkZzI//g11JmdisBhEBvgTabfhYLZimSU6Bg4zcQlKyCwiyW7mmcSTXt6hNkF2ZX8pJYR7sXgq/L4KcZPALB/9Q8AlwBS9nIeRnQnYyFOZAWCy0GgR124M+CFR5ej+RqkrhS87Lz3tPMHfjQTLzComJCMTXduYuneSsfJIycmlZN5Q7r44hItDXS5VKtZWfBRtmwoE14B8BQVFnDlTOQkjZ5wplLQdC0xsVwKo4vZ9IVaVBEFJmmw6m8un6RBxOk0aRQWcNXgARgb40rBnElkNpfPTTfnLyHV6oVKotRyH8+j/YvxrC4iC4ztmDlMUGNRq5uiE3fw57l3unVhGR0yh8SZmkZuczP/4PChxO6ocHlDiGKz/PICPFSn6e5zpfm4WGkYFs+SOdZTuOeqtkqY72r4b9a1zdiL4BxdfnFUByhuvP0wXVcnVLbpsPqQcqvFQRkdNp8I2UyapdxzmQnE2T2sHF1u3d4sfKueFsWRuE6TQwLCatOmXS45YU4lrmAmC3WakR6MvKncdo1yCcumH+3n4KUtXlpsOOBeDjD/Ygz3Wb98Fnq2DNdnCaYDGgc3O4rSu0ijm5XUg9OLYNdnwLV/1F3Y8i4lVl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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=7\n" + ] + }, + { + "data": { + "image/png": "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Wd80TebMmcOAAQMwTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAEOHDuWqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrvjjjuYMmUKGzZsYNasWdx+++2l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMCwYcOYMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz2b06NGA65JjnTp1yn0PniohIaHUtPL+jVu1auWe37Zt23LrPP3/RImGDRuW+jcKDQ0t1QczNDTUY/1jx46Rnp7OW2+9xVtvvVXmcZz+73quNYlI7aHwVQ1CQ0OpV68emzdvLjWv5IPk9PGjSlopHn300XL7xjRt2tTj5/LuGDNN02Ob77//fqmhEACPPj3gujPx9LsvHQ4H119/PampqTz22GO0bNmSwMBADh48yMiRI8+rc3thYSG33HILdrudTz75xKOO8zkPVeXhhx/26EDeq1cvli1bVmq5K664giZNmvDII4+QlJTEHXfcUe42b7vtNn788Uf+8pe/0LFjR4KCgnA6nfTr16/UuUxLS2PIkCE0b96c//3vfx7zSpZ94YUX6NixY5n7qsx+Q2d7r5UYOnQo//73vzl+/DjBwcF89dVXDBs2rNR7rSyV0VfvXOssb7lz/T915513lht827dvf141iUjtofBVTfr378///vc/Vq9efU4dnxs3bgyAj4/PObVEnIuSDuDR0dHnvc1NmzaxY8cO3nvvPe6++2739EWLFp13XePGjSMxMZEVK1ZQt25dj3kVOQ9xcXHuFqBT/fbbb+dd26n++te/erROnqkVadiwYfzrX/+iVatW5YahtLQ0vv/+e5566imeeOIJ9/SyjsHpdDJ8+HDS09NZvHix++aHEiX/tiEhIZX2fqkMQ4cO5amnnmLOnDnUrVuXzMxMj8t7FRUXF1fmv+f27dvd870pKiqK4OBgHA5HpZ738lpKRaRmUp+vavLXv/6VgIAA7rnnHo4ePVpq/unfeqOjo+nduzfTpk3j8OHDpZYvawiJs+nbty8hISE8++yzFBUVndc2S761n1qvaZr897//rXA9ANOnT2fatGm8/vrrZYbSipyHm266iZ9//pnVq1d7zP/www/Pq7bTtW7dmj59+rhfXbp0KXfZe++9lyeffJIXX3yx3GXKOpdAmSObP/XUUyxcuJCPPvqozMtxXbp0oUmTJvznP/8p8/L2+bxfKkOrVq1o164ds2fPZvbs2dSrV4+ePXue9/ZuuukmVq9ezU8//eSelpOTw1tvvUV8fHypvmlVzWq1MmTIEObMmVNmy/b5nvfAwMDzvoQvIhcftXxVk2bNmjFr1iyGDRtGixYt3CPcm6ZJUlISs2bNwmKxePSxev3117n66qtp164d9913H40bN+bo0aP89NNPHDhwgA0bNlSohpCQEKZOncpdd91F586duf3224mKimL//v188803XHXVVbz22mtn3EbLli1p0qQJjz76KAcPHiQkJIQ5c+acV3+V48eP89BDD9G6dWvsdjsffPCBx/zBgwcTGBh4zufhr3/9K++//z79+vXj4Ycfdg81ERcX5/VHN8XFxfHPf/7zjMuEhITQs2dPnn/+eYqKimjQoAHfffcdSUlJHstt2rSJZ555hp49e5KSklLqPN15551YLBb+97//ceONN9KmTRtGjRpFgwYNOHjwIEuXLiUkJISvv/76rHWvX7++1PbB1bLWrVu3sx94GYYOHcoTTzyBn58fo0ePvqCBhB9//HE++ugjbrzxRsaNG0dERATvvfceSUlJzJkzp1oGKZ48eTJLly7liiuu4L777qN169akpqayfv16Fi9eTGpqaoW32aVLF2bPns2ECRO47LLLCAoKYsCAAVVQvYh4g8JXNRo4cCCbNm3ixRdf5LvvvuPdd9/FMAzi4uLo378/DzzwAB06dHAv37p1a9auXctTTz3FjBkzOHHiBNHR0XTq1MnjMlVF3HHHHdSvX5/JkyfzwgsvUFBQQIMGDejRowejRo066/o+Pj58/fXXjBs3jkmTJuHn58fgwYMZO3asR+3nIjs7m/z8fLZu3eq+u/FUSUlJBAYGnvN5qFevHkuXLuVPf/oTkydPJjIykgceeID69eu7O3xfbGbNmsWf/vQnXn/9dUzT5IYbbmD+/PnUr1/fvcyJEycwTZPly5ezfPnyUtsouRTau3dv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ahuFLxERkTKsXAl/+AMEBUFMjOvPP/wBVq2q2v36+fnx3HPPkZaWVrU7Ok9RUVEEBARUdxk1msKXiIjIaaZOhZ494euvXY91BNefX38NPXq4nrtdVfr06UNMTAyTJk0qd5mVK1fSo0cP/P39iY2NZdy4ceTk5LjnHz58mP79++Pv709CQgKzZs0qdbnwpZdeol27dgQGBhIbG8tDDz1EdnY24Hpu86hRo8jIyMAwDAzD4J///CfgednxjjvuYOjQoR61FRUVUadOHWbOnAmA0+lk0qRJJCQk4O/vT4cOHfjss88q4UzVXApfIiIip1i5EsaMAdOE4mLPecXFrukPPVR1LWBWq5Vnn32WV199lQMHDpSav3v3bvr168eQIUPYuHEjs2fPZuXKlYwdO9a9zN13382hQ4dYtmwZc+bM4a233iIlJcVjOxaLhSlTprBlyxbee+89lixZwl//+lcAunfvziuvvEJISAiHDx/m8OHDPProo6VqGT58OF9//bU7tAEsXLiQ3NxcBg8eDMCkSZOYOXMmb775Jlu2bGH8+PHceeedLF++vFLOV41kellGRoYJmBkZGd7etYiI1CLlfZ7k5eWZW7duNfPy8s5ru4MHm6bNZpqumFX2y2YzzSFDKuMoPI0YMcIcOHCgaZqmeeWVV5r33HOPaZqm+cUXX5glH9mjR48277//fo/1fvjhB9NisZh5eXnmtm3bTMBcs2aNe/7OnTtNwHz55ZfL3fenn35qRkZGun+ePn26GRoaWmq5uLg493aKiorMOnXqmDNnznTPHzZsmDl06FDTNE0zPz/fDAgIMH/88UePbYwePdocNmzYmU9GDVOR950GWRUREfldXh7MnXvyUmN5iovhiy9cy1fV87afe+45rr322lItThs2bGDjxo18+OGH7mmmaeJ0OklKSmLHjh3YbDY6d+7snt+0aVPCw8M9trN48WImTZrE9u3byczMpLi4mPz8fHJzc8+5T5fNZuO2227jww8/5K677iInJ4e5c+fy8ccfA7Br1y5yc3O5/vrrPdYrLCykU6dOFToftYnCl4iIyO8yM88evEo4na7lqyp89ezZk759+zJx4kRGjhzpnp6dnc0f//hHxo0bV2qdRo0asWPHjrNue+/evdx88808+OCD/Pvf/yYiIoKVK1cyevRoCgsLK9Shfvjw4fTq1YuUlBQW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n9OwYUOefvppDh8+zOHDhy/o3FYndbgXEZFLXn6Rk30ncggP8KnQeuEBPuw7kUN+kRN/38q5+3HevHkEBQVRXFxMQUEBFouF1157DYCCggKeffZZFi9eTLdu3QBo3LgxK1euZNq0afTq1YvevXvzzjvv4HA42Lx5M76+vgwdOpRly5bRr18/li1bRq9evdz7u+eee9x/b9y4MVOmTOGyyy4jOzuboKAg97ynn36a66+/HoDs7GzeeecdPvjgA6677joA3nvvPRo2bHjGY9u/fz9/+ctfaNmyJQDNmjVzz5s0aRLDhw/nkUcecc+bMmUKvXr1YurUqURERGC1Wt0tdDWZWr5EROSSV+hw4nCa2KwV+1i0WgwcTpNCh7PSarnmmmtITEzkl19+YcSIEYwaNYohQ4YAsGvXLnJzc7n++usJCgpyv2bOnMnu3bsB6NGjB1lZWfz6668sX77cHchKWsOWL19O79693ftbt24dAwYMoFGjRgQHB7uD2f79+z3q6tq1q/vvu3fvprCwkCuuuMI9LSIighYtWpzx2CZMmMC9995Lnz59mDx5srtmcF2SnDFjhsdx9e3bF6fTSVJSUsVP5EVMLV8iInLJ87VasFoMiisYokrG//KtYGg7k8DAQPclwXfffZcOHTrwzjvvMHr0aHe/rW+++YYGDRp4rGe32wEICwujQ4cOLFu2jJ9++onrr7+enj17MnToUHbs2MHOnTvdASsnJ4e+ffvSt29fPvzwQ6Kioti/fz99+/alsLCwVF0X6p///Cd33HEH33zzDfPnz+fJJ5/k448/ZvDgwWRnZ/PHP/6RcePGlVqvUaNGF7zvi4lavkRE5JLn52MhLjKQtNyiCq2XlltEXGQgfj5V83FqsVj429/+xt///nfy8vJo3bo1drud/fv307RpU49XbGyse71evXqxdOlSVqxYQe/evYmIiKBVq1b8+9//pl69ejRv3hyA7du3c+LECSZPnkyPHj1o2bKlR2f78jRp0gQfHx9++eUX97S0tDR27Nhx1nWbN2/O+PHj+e677/jDH/7A9OnTAejcuTNbt24tdVxNmzZ193nz9fXF4ajcu0urg8KXiIhc8gzD4LKECExMCovPrfWrsNiJicnlCRFVeufdrbfeitVq5fXXXyc4OJhHH32U8ePH895777F7927Wr1/Pq6++ynvvvedep3fv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lyovwLZt20hISChzXufOnUlKSmL+/PksXryY2267jT59+vDZZ5+dcZuBgYGlpg0YMIC4uDjefvtt6tevj9PppG3btu4O8P7+pW8aqixl1VMZznR+srOzqVevnsflzxJhYWFVUk+FWr5SUlK4++67adGiBddddx1r1qxh4cKFXH/99VVSnEhtE2oPpUvdLqTmp7o7yhcXFTPlgSlldq4/vRP+lAemUFhYyOGcw7SKbEXDoIbVeTgitYePv6ujfW5qxdbLTXWt51N1gQRgyZIlbNq0qdQlwVOFhIQwdOhQ3n77bWbPns2cOXNITXUdj4+PDw5H+f1NS5w4cYLffvuNv//971x33XW0atWKtDTPsQfbt29PYmKie9un8/X1LbWvVq1alepntXXrVtLT0894015lKu/8dO7cmSNHjmCz2WjatKnHq06dOuUe04WoUMvXO++8U2k7FrlU9Y7tza70XezL3Od6qLaPjZsfvJl5U+cx7s1xpfp2lQSwKQ9Mof8D/TmSf4Qo/yj6xvct9xKEiFSQYUCjbnBwnesS4rm0ZBUXACbEda/UzvYFBQUcOXIEh8PB0aNHWbBgAZMmTeLmm2/m7rvvLnOdl156iXr16tGpUycsFguffvopMTEx7pab+Ph4vv/+e6666irsdjvh4aVv4gEIDw8nMjKSt956i3r16rF//34ef/xxj2WGDRvGs88+y6BBg5g0aRL16tXj119/pX79+nTr1o34+HiSkpJITEykYcOGBAcH06dPH9q1a8fw4cN55ZVXKC4u5qGHHqJXr1507dq1wudo69atFBYWkpqaSlZWFomJiQDljsV1pvPTp08funXrxqBBg3j++edp3rw5hw4d4ptvvmHw4MF07dq1zGO6kGE+9GxHES8L8g1iYNOBRPhFsCdjDw6ngy59u/D/Pv1/Zd7VCK4ANvGTiUR3j8bH6sOAJgOIDoj2cuUitVxMO4hIcHWgP9szHE0T0pJcy9dtW6llLFiwgHr16hEfH0+/fv1YunQpU6ZMYe7cueXeARgcHMzzzz9P165dueyyy9i7dy/ffvstFovrY/7FF19k0aJFxMbG0qlTp3L3bbFY+Pjjj1m3bh1t27Zl/PjxvPDCCx7L+Pr68t133xEdHc1NN91Eu3btmDx5sru2IUOG0K9fP6655hqioqL46KOPMAyDuXPnEh4eTs+ePenT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NmTIEPr168c111xDVFQUH330EYZhMHfuXMLDw+nZsyd9+vShcePGzJ49u8Ln57333iM3N5dJkyZRr1499+sPf/hDuev4+voyceJE2rdvT8+ePbFarXz88ccABAQEsGLFCho1asQf/vAHWrVqxejRo8nPzyckJASA++67jxYtWtC1a1eioqJYtWpVhes+lWGe7R1WyTIzMwkNDSUjI8N9UCIiIhVV3udJfn4+SUlJZxwrqjwlI9wfzztOo+BGruEkTlPoKGR/1n7q+NfhrlZ3ERsSW8aW5FJTkfedOtyLiIj8rlFII+5sdaf72Y4YruEkrIYVh+kgrSANTGgU3IghzYYoeMl5UfgSERE5RaOQRjzY8UF+S/2NdUfXkZyVTJGjCKvFStvItnSp24UWES2wWyvv0T5yaVH4EhEROY3daqd9VHva1WlHviOfImcRPhYf/Kx+VTqSvVwaFL5ERETKYRgG/jZ//Kna0evl0qK7HUVEpFby8v1kcomryPtN4UtERGoVHx/XaPO5ubnVXIlcSkrebyXvvzPRZUcREalVrFYrYWFhpKSkAK5xnNRPS6qKaZrk5uaSkpJCWFhYuWOxnUrhS0REap2YmBgAdwATqWphYWHu993ZKHyJiEitYxgG9erVIzo6+oIfBSNyNj4+PufU4lVC4UtERGotq9VaoQ9FEW9Qh3sRERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEiW3UXcDHJKSgmu6AYAwjysxHgq9MjIpegonzITwfTBN8AsIeAYVR3VSK1xiWfLlKy8tmYnMHmQxkczcynsNgJgK/NQt0QP9o1CKV9wzCigu3VXKmISBXKS4NDv7peGQdcAQwTrL4QWAfqtoOGXSA0VkFM5AIZpmma3txhZmYmoaGhZGRkEBIS4s1de8gvcrB0ewrLdxwjNaeQAF8rQXYbdh8rAAVFDrILiskrchAe4Ms1LaLo1SIav9/ni4jUCo5i2LsCtn8DWUfBZne1dPn4AwY4CqAgGwqzXNPjr4ZWN4NfaHVXftF8nohU1CXZ8nUiu4BZv+xn86EMIgJ9aRkTjHHaN7kgu43IIDtO0+R4VgFf/HqQnSk5DL+iEeGBvtVUuYhIJSrMgfXvw/6fwCcQolqC5fQvmEEQEOm6BJmXCr99Cyd2QpdREB5XLWWL1HSXXIf7zPwiZv60j00HM0ioE0h0sF+p4HUqi2EQHeJHfJ1ANh5IZ+ZPe8nKL/JixSIiVaC4ENa9B3t/gNCGEBZbRvA6hWG4QlhUSzixG1a/BZmHvVevSC1ySYUv0zSZv+kw2w5n0jQ6CLvN9YumuKjwjOsVFxVit1lpEhXElkOZLNxyBC9frRURqVy7l7havMITwDcIgMKi4jOuUlhUDBYb1GkBaXth06fg0JdRkYq6pMLX9iNZ/LT7BPVC/fCxug7912Xf8sIfB5CWUvY3uLSUw7zwxwH8uuxbfG0WYkL9WLXrODtTsr1ZuohI5ck87Lp86BcGvoEAzF66kXajp5Cckl7mKskp6bQbPYXZSze6WsjCG8PBdZD8i/fqFqklKhS+Jk2axGWXXUZwcDDR0dEMGjSI3377rapqq3Rr96ZSUOwkLMDVZ6u4qJAFM//LsQN7eeMvd5UKYGkph3njL3dx7MBeFsz8L8VFhYQH+JJf5GTN3tTqOAQRkQt3cC3knoDgeoCrReuJ6YvZceA4vcf/r1QAS05Jp/f4/7HjwHGemL7Y1QLmG+BqBdu7EpyOajgIkZqrQuFr+fLljBkzhp9//plFixZRVFTEDTfcQE5OTlXVV2nScwvZciiTyFM6y9t8fHlg8gwi68Vy4nCyRwArCV4nDicTWS+WBybPwObjWjci0JfNBzPIVN8vEalpnA7Y/7PH2F2+PjYW/+ceGteLYM/hVI8AVhK89hxOpXG9CBb/5x58fX6/Vys4xtX/K31fNR2MSM1UofC1YMECRo4cSZs2bejQoQMzZsxg//79rFu3rqrqqzRHMwvIyi8mxN/HY3p4dD0eeuF9jwCWtGW9R/B66IX3CY+u514nxM+H7PxiUjLzvX0YIiIXJue4a0yv04aKiI0OY9nL93oEsB837/MIXstevpfY6LCTK/kEQnEeZB3x7jGI1HAX1OcrIyMDgIiIiHKXKSgoIDMz0+NVHVJzCnGapruv16lOD2Cvjh9WbvAC1wCsxU6T1By1fIlIDZN7Agpz3X29TnV6ALtq3LTygxf83nJmuLYpIufsvMOX0+nkkUce4aqrrqJt27blLjdp0iRCQ0Pdr9jY2PPd5QU5292J4dH1uOOvz3tMu+Ovz5cKXqdyOHXHo4jUMKYTcIJR9q//2Ogw3p94q8e09yfeWjp4ndyg+nyJVNB5h68xY8awefNmPv744zMuN3HiRDIyMtyv5OTk893lBbH7WDDN8kNYWsphZj3/V49ps57/a5l3QZZsw+5zSd0sKiK1gc0PLD7gKHuIneSUdO6a9KnHtLsmfVruXZBguLYpIufsvNLD2LFjmTdvHkuXLqVhw4ZnXNZutxMSEuLxqg5RQX74+VjIL3KWmnd65/o/vfxRmZ3wS+QWOvDzsRKt5z2KSE0TFO265FhY+kap0zvXr5ryxzI74bs5Ha5Lj8F1vVO7SC1RofBlmiZjx47liy++YMmSJSQkJFRVXZUuOsRORKAvqbme3/ZOD14PvfA+CW06l+qEf2oAS8stpE6QL9HB+rYnIjWMPdj1WKBcz+FyTg9ey16+l+5t40p1wvcIYHmpro77odXTnUSkpqpQ+BozZgwffPABs2bNIjg4mCNHjnDkyBHy8vKqqr5K4+dj5YqECDLzinD+3leruKiQNx8fWWbn+tM74b/5+EiKiwpxOE2yC4q5IiESX5suO4pIDWMY0Kg7mMXuS4+FRcX0efTdMjvXn94Jv8+j77rG+TJNyE6B+l0gsE41HpBIzVOh9DB16lQyMjLo3bs39erVc79mz55dVfVVqi7xEdQP8+dAuiss2nx86Xf3w0Q1jC/zrsaSABbVMJ5+dz+MzceXA2m5NAjzp3NceHUcgojIhavf0fWIoNQkME18fWw8PaoPzRvWKfOuxpIA1rxhHZ4e1cc1zlf2UfAPg4Qe1XEEIjWaYXr5IYWZmZmEhoaSkZFRLf2/ftlzgg9+3kdYgC8RgSdHui8ZQLUsJfNPZBeQmV/MXd3iuCy+/OE1REQueinb4cdXXX8PdfXdLSwqPjmAahnc8wsyIeMAtL8NWg3wRrVlqu7PE5HzdcldN7ssPoK+bWJIzSnkSEY+pmmeMXgBWG0+HM7IIz2viH5tYuiqVi8RqemiW7rCk7P49xYw5xmDF7hGwifnmCt4NbkWmvX1UrEitcuZ/6fVQhaLwU3t6hFkt7FgyxF2HM0mOsROmL8Pxu+P2ihhmibpuUUczconIsCXW7vG0qNpnVLLiYjUSAk9wccfNs+BlK0QGOV6nT4GmGm6WruyDruWbz0QWv0f2M78xVVEynbJXXY8VXJqLku2p7DlUAaZ+cUYgI/VgolJcbGJCYT422jbIJRrW0bTMDygWusVEakS2cdg53eQvNp1ByO4xgIzDHAUAaZreIqoVtD8BohuVa3llriYPk9EKuKSDl8ljmTkk3Q8hyMZeaTmFIIBkYF26ob40TgqkLohGlJCRC4Bualw7DdXC1f2Uddo+H5hEFIfwuNdr4uo5f9i/DwROReX3GXHssSE+hETqoAlIpe4gAiI61bdVYjUepdch3sRERGR6qTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFtuouQGoH0zRJzy3iWHYBeYUOLIZBWIAPUcF2/Hys1V2eXCocRZB9FHKOg+kAqx2C6kJAJFj0XVNELg4KX3JB8godbDyQzuqkVJLTcskpcOAwnYCBn81CiJ8P7WND6dwonIQ6gRiGUd0lS22UcQCS10DyL5CXBkW5rumGBXyDIDgG4q+CBl3AL7R6axWRS55hmqbpzR1mZmYSGhpKRkYGISEh3ty1VLJdKVl8lXiInSnZ2KwGEQG+BNpt+FgtmKZJXpGDrPxi0nKLCLJbubpZFNe3rkuQXZlfKklxAexaDL8tgLxU8AsH/1DwCXAFL2cxFGZDbioU50FYPLQdDPU7g74I1Hj6PJGaSuFLzssve04wZ/0BsguKiYsIxNd25ks6qTmFpGTl06Z+KHdeGUdEoK+XKpVaqzAH1r0H+38E/wgIijlzoHIWQ9peVyhrMwha3KQAVsPp80RqKnWCkArbeCCdT9Ym43CaNI0KOmvwAogI9KVxnSA2H8zgw5/3kVfo8EKlUms5iuHXD2DfKghLgOB6Zw9SFhtENnVdhtz0GexZ6p1aRUROo/AlFZKeW8hXiYcocjhpGB5QZh+uwgKDrDQrhQWe83xtFhpHBbL5UCZLth/1VslSG+1bBft+dF1G9A0oPb+gCFKzXH+eLijadVly61eQvr/KSxUROZ0630iFrNx5nP2puTSvG1xq3p7NfiyfE87mn4IwnQaGxaRtt2x635JGQpt8AOw2K5GBvizfcYxOjcKpH+bv7UOQmi4/E7bPAx9/sAd5ztu0Fz5dCT9uA6cJFgO6t4LbekDbuJPLhTSAY1th+7dwxR91+VFEvKrCLV8rVqxgwIAB1K9fH8Mw+PLLL6ugLLkYZRcUs3pvKuEBvlgtnh9Wq74O5bUJsWz52RW8AEynwZafg3h1fCw/zjt5h1mdIF/Sc4vYkJzuzfKltjicCFmHXQHqVHN/hoffgp+2u4IXuP78aTuMmwZf/XJyWcOAoHpwZCNkHvJa6SIicB7hKycnhw4dOvD6669XRT1yEUs6lsOxrALqBHl2lt+z2Y85r0YDBk6HZyhz/Wzw2ZRokrb4AWAYBsF+NhKT0/Hy/R5SGxzZBBYfVx+uEpv2wn+/cv3d4fRcvuTnV+bC5n0np/uHQ34GHN9RpeWKiJyuwpcdb7zxRm688caqqEUucilZ+Zimic3qmdmXzwnHYgXnGfrQW6yu5RLaHAYg2M+HtNxC0nKLdOejnDtHEaTtA/tpl70/XQlWS+ngdSqrxbVcyeVHwwDDChkHq65eEZEyVHmfr4KCAgoKCtw/Z2ZmVvUupYqk5xaV6mBfWGC4+3ididNhsOnHIAoLDHztJn4+FtJynGTmKXxJBRRkuQZQ9Qk8ZVrRyT5eZ+JwwqqtruXtPq5pNj/XiPgiIl5U5Xc7Tpo0idDQUPcrNja2qncpVaSsj7aCXMtZg5d7fadBQe7Jt5xZ5hZFzsGpb7mc/LMHrxJO07W8ezsGZb+zRUSqTpWHr4kTJ5KRkeF+JScnV/UupYoE2W2lPqbsAU4My7l9eBkWE3uA67JQYbETX6uFAF8991EqwCcArL6uke1LBPq57mo8FxbDtXyJ4nxX3y8RES+q8vBlt9sJCQnxeEnNFB1ixwCcp7Qy+Npdw0lYrGcOYBarSbvu2fjaXctlFxQT4u9DZJC9KkuW2sbHD0IbQEH2yWl2H9dwEtaz/DqzWuCq1icvOZomOJ0Q1qjq6hURKYMGWZVzFhcRQKi/D6m5hR7Tew1JO2Nne3B1xu81JM39c0ZeMa3rh5QaskLkrOq2cz2n0Tylc/2tV5+5sz245t969cmfC7NdYS48oWrqFBEpR4XDV3Z2NomJiSQmJgKQlJREYmIi+/drpOjaLjLITsfYMI5lF3gMEdG4bT63jEsBzFItYK6fTW4Zl+IeaDUzr4gAXwudGulyj5yH+p0gIBKyU05OaxcPjwx0/f30FrCSnx8Z6DnQauZBiGoBEY2rtFwRkdNV+G7HtWvXcs0117h/njBhAgAjRoxgxowZlVaYXJx6NI9i44EMDmfke4xO3/3mDOolFLB8TjibfvQc4b7XkJMj3DucJgfT8+jZPIqEyMDydiNSvqAoaHIdbPrE1V/L9vul6/+7AhrHuIaTWLXVc4T7W6/2DF45x113OjbvBxZdABAR7zJML49yqafQ13wrdhzjk7XJhAf4ljlMRGGB665Ge4DT3ccLXH3Fdh/LpkG4Pw/1bkq4hpiQ81WYCz++6hqhvk4LsPp4zi8oct3VGOh3so+Xe14mZCRD64HQ9hY9WqgG0+eJ1FT6yicVdnXTOvRtE0N6biEH0nJxnpbffe0mweEOj+CVV+hgR0oW9cL8uPPKOAUvuTC+AdB1FES1guO/uZ73eCq7D0QEewYv03Q9lijjoKvlrNVABS8RqRZ6sLZUmMVi0L9dPSKDfJm/6Qi/Hclyt4L52k4Zx8s0ySlwkJKdj8Np0qlROIM6NiAm1O8MWxc5R0HR0O0h2Pw57P/RFayC6oJfCBinfK90FEFeKuQcA/8I6HA7NO0DNn0BEJHqocuOckFSMvP5ZU8qa/alkppTSLHT9Bj/0t/HSnydQK5IiKBzXDg+ZxsOQKSinE44/CvsXQXHtv8+DEXJrzXD1brlHwYNL4f4qyA8vvpqlUqlzxOpqRS+pFLkFBRzKD2PlKwC8godWCwQ6u9L3RA79UP9sWhICalqJZcVsw5DzgkwHa4BWYPqusYG02CqtY4+T6Sm0mVHqRSBdhvN6gbTrG7w2RcWqQqGASH1XS8RkYuYrgGJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgX2aq7AKkdsvKLOJCWx7GsAvKKHFgMg7AAH+oG+9Eg3B+rxajuEqW2M03IPAiZhyH3ODgdYLNDUDSExkJARHVXKCICKHzJBTqSkc9Pe06wbl8qaTmFOEzXdAMwAX8fC40iArmicQRd4yLwtamxVSqZ0wEH18PeH+D4DijM8ZxvGOAXBg26QPzVENmkWsoUESmh8CXnxek0+XH3CeZvPsyxrAIiAn2JjwzEZj0ZrkzTJLfQQdLxHHamZJGYnM7Ajg1oEOZfjZVLrZJzAjZ/Bvt/dv0cVBdCG7kCVwmnA/JSYdciSF4NLfpBs75g862emkXkkqfwJRXmcJrM23iIRVuP4mez0jImGMMofVnRMAwC7TYS7DbyixxsTM7gWFYBd3eLJ6FOYDVULrVK1hH45S04th3C48EeXPZyFisERkFAHcg+Chs/gayj0Pku12VJEREv0zUgqbAfdh7juy1HiQj0pUG4f5nB63R+PlaaRQdxNCOfWb/s40R2gRcqlVqrMBfWTocTOyC6VfnB61SGAcExrv5fe5bB5i9c/cRERLxM4Usq5EBaLgs3HyHQbiU8oOzLNtaCfALSjmMtyPeYbrEYNI4KYv+JXL7ddBinUx98cp52LISjmyGyGVhKN+DnFdg4mhpAXkEZjfv2YFcI27MEjmzyQrEiIp7O67Lj66+/zgsvvMCRI0fo0KEDr776Kpdffnll1yYXoRU7jnEip5CWMaVbGupvXkvnOTNo8tP3WJxOnBYLu7tdx/pbRnGoTRcArBaD+uH+rNuXRrcmdWgaHeTtQ5CaLjvFFZwCo8Dq+QVg5aaGvPTp5cz9sRlOpwWLxcnA7jv5822/cFXbgycXDIiEnOOuEFe3LVj0PVREvKfCv3Fmz57NhAkTePLJJ1m/fj0dOnSgb9++pKSkVEV9chE5nl3AxgMZRAfbS11qbP/1LG6bcCeNf16CxekEwOJ00vjnJdw2fjjt533kXjbEz4e8Ige/7k/zav1SSxz6FXJTXeHrFFPndqLnw3fy9U9NcTpdv9qcTgtf/9SUHuPu4s2vOnluJ6S+6+7I1N3eqlxEBDiP8PXSSy9x3333MWrUKFq3bs2bb75JQEAA7777blXUJxeR/am5ZOQVER7o2dpQf/Narn31aQxMrA6Hxzyrw4GBybVTnqL+lnXu6WH+vmw9nIlDlx6loo5uBps/GCd/fa3c1JAx/+2LiUGxw+qxeLHDionBQ6/0ZdXmBidn2IOhOA/S9nqpcBERlwqFr8LCQtatW0efPn1ObsBioU+fPvz000+VXpxcXFIyXZ3kLae1enWeMwOn9cxvJafVQqc5M9w/B9qtZOUVqeO9VExRPmQcKNXB/qVPL8dqdZ5xVavVycufntY9wrBC+v7KrlJE5Iwq1Ofr+PHjOBwO6tat6zG9bt26bN++vcx1CgoKKCg4+QGbmZl5HmXKxSC7oLjUNGtBvruP15lYHQ6a/rgYa0E+DrsfvjYLhQ4nOYWOM64n4qEoFxxF4HtyqJK8Apu7j9eZFDusfLGqOXkFNvztv7+XbX6uMcBERLyoynuZTpo0idDQUPcrNja2qncpVaSsASXsudlnDV4lLE4n9txs1w8mGBjoqUNyXk65Wp2Z43vW4FXC6bSQmXPKZXPTdLV+iYh4UYXCV506dbBarRw9etRj+tGjR4mJiSlznYkTJ5KRkeF+JScnn3+1Uq3CAnwwTxsXqSAgCOc53inmtFgoCHDd3ZhX5MDuYyHEz6fS65RazB4CPgGuvlq/CwksxGI5xy8AFichgYUnJxTnu0bFFxHxogqFL19fX7p06cL333/vnuZ0Ovn+++/p1q1bmevY7XZCQkI8XlIz1Q3xw2IxKHac/KBz2P3Y3e06HNYztx44rFZ2de+Dw+4HuC5hhgf6Ehag8CUVYLW5RrMvONl9wd9ezMDuO7FZz3wJ22Z1MPiqHScvOZommE7XXY8iIl5U4cuOEyZM4O233+a9995j27ZtPPjgg+Tk5DBq1KiqqE8uIvF1AokKsnPstE7y64eMxOI4c8uDxeHk1yEjAdczH7Pzi+kUG3ZOo+OLeIhp53peo/NkH8QJt67G4TjzrzOHw8L4W1efnJCXBn6hENWiqioVESlThcPX0KFD+c9//sMTTzxBx44dSUxMZMGCBaU64UvtE2S3cVl8BOm5RRSf0s/rUNuuLBn3JCZGqRYwh9V1m/+ScU+6B1o9nl1IWIAPHWLDvFm+1Bb1O7paqzIOuCdd3e4AbzyyEAOzVAuYzeoa7uSNRxaeHGjVNCHrENTroJYvEfE6wzy9E08Vy8zMJDQ0lIyMDF2CrIEycot4belOjmTmkxAZ6NFyVX/LOjrNmUHTHxe7R7jf1b0Pvw4Z6Q5eBcUO9h7PYWDHBtzYrl51HYbUdEk/wNp3ILi+x7ATqzY34OVPL+eLVc3dI9wPvmoH429d7TnCfXqy66HaPf8MoQ2r4QCkMujzRGoqhS+psM0HM3jvx704nCYNy3iwtrUgH3tuNgUBQe4+XuAKXnuO5dChYRijeyTg56O7zOQ8OR2w9l3XA7LDEzyGngDX8BOZOb6EBBae7ONVIusIFGZD57ugcW+vlSyVT58nUlPpgWZSYW0bhDL0slh8bBZ2pWRTUOx5mcdh9yM3vI47eJmmyYnsApKO59C+YRjDr2yk4CUXxmKFjsMhvgek74PMQ65Lib/ztxdTNyLXM3g5i+HETtedku1ugYRe1VC4iMh5PlhbpGt8BBGBvny14RA7jmZhMQwiAnwJtNvwsRqYpms4iaz8YtJzCwn2s9G/XX36tI4mwFdvO6kEvgHQ9R6ISIDt30DKFlcHer9Q8Al0PX7IWexq5cpNBUc+RDSBNoNdfb10s4eIVBNddpQLkl/kYPPBDFYnpbI/NZecgmKKHE4Mw8Dfx0qwn42OjcLp3CiMuMjAs29Q5HxkHoIDa2H/z667GItyXC1hFpvrkmRIA4jrDg06l3o0kdRc+jyRmkrhSyqFaZpkFRSTkllAfpEDw4CwAF+iguz42nR1W7zEUQw5xyD3uKtfmM3uGkTVP1wtXbWQPk+kptL1H6kUhmEQ4uejEeulelltEFLP9RIRuUipSUJERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2ze3qFpmgBkZmZ6e9ciIlKLlHyOlHyuiNQUXg9fWVlZAMTGxnp71yIiUgtlZWURGhpa3WWInDPD9PJXBqfTyaFDhwgODsYwDG/u+pxkZmYSGxtLcnIyISEh1V1OjaRzeOF0Di+Mzt+Fqwnn0DRNsrKyqF+/PhaLetFIzeH1li+LxULDhg29vdsKCwkJuWh/4dQUOocXTufwwuj8XbiL/RyqxUtqIn1VEBEREfEihS8RERERL1L4Oo3dbufJJ5/EbrdXdyk1ls7hhdM5vDA6fxdO51Ck6ni9w72IiIjIpUwtXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKX6d4/fXXiY+Px8/PjyuuuILVq1dXd0k1yooVKxgwYAD169fHMAy+/PLL6i6pRpk0aRKXXXYZwcHBREdHM2jQIH777bfqLqtGmTp1Ku3bt3cPDNqtWzfmz59f3WXVWJMnT8YwDB555JHqLkWkVlH4+t3s2bOZMGECTz75JOvXr6dDhw707duXlJSU6i6txsjJyaFDhw68/vrr1V1KjbR8+XLGjBnDzz//zKJFiygqKuKGG24gJyenukurMRo2bMjkyZNZt24da9eu5dprr2XgwIFs2bKlukurcdasWcO0adNo3759dZciUutoqInfXXHFFVx22WW89tprgOsZlLGxsfzpT3/i8ccfr+bqah7DMPjiiy8YNGhQdZdSYx07dozo6GiWL19Oz549q7ucGisiIoIXXniB0aNHV3cpNUZ2djadO3fmjTfe4F//+hcdO3bklVdeqe6yRGoNtXwBhYWFrFu3jj59+rinWSwW+vTpw08//VSNlcmlLCMjA3CFB6k4h8PBxx9/TE5ODt26davucmqUMWPG0L9/f4/fiSJSebz+YO2L0fHjx3E4HNStW9djet26ddm+fXs1VSWXMqfTySOPPMJVV11F27Ztq7ucGmXTpk1069aN/Px8goKC+OKLL2jdunV1l1VjfPzxx6xfv541a9ZUdykitZbCl8hFaMyYMWzevJmVK1dWdyk1TosWLUhMTCQjI4PPPvuMESNGsHz5cgWwc5CcnMzDDz/MokWL8PPzq+5yRGothS+gTp06WK1Wjh496jH96NGjxMTEVFNVcqkaO3Ys8+bNY8WKFTRs2LC6y6lxfH19adq0KQBdunRhzZo1/Pe//2XatGnVXNnFb926daSkpNC5c2f3NIfDwYoVK3jttdcoKCjAarVWY4UitYP6fOH6Zd2lSxe+//579zSn08n333+vviLiNaZpMnbsWL744guWLFlCQkJCdZdUKzidTgoKCqq7jBrhuuuuY9OmTSQmJrpfXbt2Zfjw4SQmJip4iVQStXz9bsKECYwYMYKuXbty+eWX88orr5CTk8OoUaOqu7QaIzs7m127drl/TkpKIjExkYiICBo1alSNldUMY8aMYdasWcydO5fg4GCOHDkCQGhoKP7+/tVcXc0wceJEbrzxRho1akRWVhazZs1i2bJlLFy4sLpLqxGCg4NL9TEMDAwkMjJSfQ9FKpHC1++GDh3KsWPHeOKJJzhy5AgdO3ZkwYIFpTrhS/nWrl3LNddc4/55woQJAIwYMYIZM2ZUU1U1x9SpUwHo3bu3x/Tp06czcuRI7xdUA6WkpHD33Xdz+PBhQkNDad++PQsXLuT666+v7tJERNw0zpeIiIiIF6nPl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeNH/B2k+JUs07naKAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=8\n" + ] + }, + { + "data": { + "image/png": "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Wd80TebMmcOAAQMwTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAEOHDuWqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrvjjjuYMmUKGzZsYNasWdx+++2l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMCwYcOYMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz2b06NGA65JjnTp1yn0PniohIaHUtPL+jVu1auWe37Zt23LrPP3/RImGDRuW+jcKDQ0t1QczNDTUY/1jx46Rnp7OW2+9xVtvvVXmcZz+73quNYlI7aHwVQ1CQ0OpV68emzdvLjWv5IPk9PGjSlopHn300XL7xjRt2tTj5/LuGDNN02Ob77//fqmhEACPPj3gujPx9LsvHQ4H119/PampqTz22GO0bNmSwMBADh48yMiRI8+rc3thYSG33HILdrudTz75xKOO8zkPVeXhhx/26EDeq1cvli1bVmq5K664giZNmvDII4+QlJTEHXfcUe42b7vtNn788Uf+8pe/0LFjR4KCgnA6nfTr16/UuUxLS2PIkCE0b96c//3vfx7zSpZ94YUX6NixY5n7qsx+Q2d7r5UYOnQo//73vzl+/DjBwcF89dVXDBs2rNR7rSyV0VfvXOssb7lz/T915513lht827dvf141iUjtofBVTfr378///vc/Vq9efU4dnxs3bgyAj4/PObVEnIuSDuDR0dHnvc1NmzaxY8cO3nvvPe6++2739EWLFp13XePGjSMxMZEVK1ZQt25dj3kVOQ9xcXHuFqBT/fbbb+dd26n++te/erROnqkVadiwYfzrX/+iVatW5YahtLQ0vv/+e5566imeeOIJ9/SyjsHpdDJ8+HDS09NZvHix++aHEiX/tiEhIZX2fqkMQ4cO5amnnmLOnDnUrVuXzMxMj8t7FRUXF1fmv+f27dvd870pKiqK4OBgHA5HpZ738lpKRaRmUp+vavLXv/6VgIAA7rnnHo4ePVpq/unfeqOjo+nduzfTpk3j8OHDpZYvawiJs+nbty8hISE8++yzFBUVndc2S761n1qvaZr897//rXA9ANOnT2fatGm8/vrrZYbSipyHm266iZ9//pnVq1d7zP/www/Pq7bTtW7dmj59+rhfXbp0KXfZe++9lyeffJIXX3yx3GXKOpdAmSObP/XUUyxcuJCPPvqozMtxXbp0oUmTJvznP/8p8/L2+bxfKkOrVq1o164ds2fPZvbs2dSrV4+ePXue9/ZuuukmVq9ezU8//eSelpOTw1tvvUV8fHypvmlVzWq1MmTIEObMmVNmy/b5nvfAwMDzvoQvIhcftXxVk2bNmjFr1iyGDRtGixYt3CPcm6ZJUlISs2bNwmKxePSxev3117n66qtp164d9913H40bN+bo0aP89NNPHDhwgA0bNlSohpCQEKZOncpdd91F586duf3224mKimL//v188803XHXVVbz22mtn3EbLli1p0qQJjz76KAcPHiQkJIQ5c+acV3+V48eP89BDD9G6dWvsdjsffPCBx/zBgwcTGBh4zufhr3/9K++//z79+vXj4Ycfdg81ERcX5/VHN8XFxfHPf/7zjMuEhITQs2dPnn/+eYqKimjQoAHfffcdSUlJHstt2rSJZ555hp49e5KSklLqPN15551YLBb+97//ceONN9KmTRtGjRpFgwYNOHjwIEuXLiUkJISvv/76rHWvX7++1PbB1bLWrVu3sx94GYYOHcoTTzyBn58fo0ePvqCBhB9//HE++ugjbrzxRsaNG0dERATvvfceSUlJzJkzp1oGKZ48eTJLly7liiuu4L777qN169akpqayfv16Fi9eTGpqaoW32aVLF2bPns2ECRO47LLLCAoKYsCAAVVQvYh4g8JXNRo4cCCbNm3ixRdf5LvvvuPdd9/FMAzi4uLo378/DzzwAB06dHAv37p1a9auXctTTz3FjBkzOHHiBNHR0XTq1MnjMlVF3HHHHdSvX5/JkyfzwgsvUFBQQIMGDejRowejRo066/o+Pj58/fXXjBs3jkmTJuHn58fgwYMZO3asR+3nIjs7m/z8fLZu3eq+u/FUSUlJBAYGnvN5qFevHkuXLuVPf/oTkydPJjIykgceeID69eu7O3xfbGbNmsWf/vQnXn/9dUzT5IYbbmD+/PnUr1/fvcyJEycwTZPly5ezfPnyUtsouRTau3dv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ahuFLxERkTKsXAl/+AMEBUFMjOvPP/wBVq2q2v36+fnx3HPPkZaWVrU7Ok9RUVEEBARUdxk1msKXiIjIaaZOhZ494euvXY91BNefX38NPXq4nrtdVfr06UNMTAyTJk0qd5mVK1fSo0cP/P39iY2NZdy4ceTk5LjnHz58mP79++Pv709CQgKzZs0qdbnwpZdeol27dgQGBhIbG8tDDz1EdnY24Hpu86hRo8jIyMAwDAzD4J///CfgednxjjvuYOjQoR61FRUVUadOHWbOnAmA0+lk0qRJJCQk4O/vT4cOHfjss88q4UzVXApfIiIip1i5EsaMAdOE4mLPecXFrukPPVR1LWBWq5Vnn32WV199lQMHDpSav3v3bvr168eQIUPYuHEjs2fPZuXKlYwdO9a9zN13382hQ4dYtmwZc+bM4a233iIlJcVjOxaLhSlTprBlyxbee+89lixZwl//+lcAunfvziuvvEJISAiHDx/m8OHDPProo6VqGT58OF9//bU7tAEsXLiQ3NxcBg8eDMCkSZOYOXMmb775Jlu2bGH8+PHceeedLF++vFLOV41kellGRoYJmBkZGd7etYiI1CLlfZ7k5eWZW7duNfPy8s5ru4MHm6bNZpqumFX2y2YzzSFDKuMoPI0YMcIcOHCgaZqmeeWVV5r33HOPaZqm+cUXX5glH9mjR48277//fo/1fvjhB9NisZh5eXnmtm3bTMBcs2aNe/7OnTtNwHz55ZfL3fenn35qRkZGun+ePn26GRoaWmq5uLg493aKiorMOnXqmDNnznTPHzZsmDl06FDTNE0zPz/fDAgIMH/88UePbYwePdocNmzYmU9GDVOR950GWRUREfldXh7MnXvyUmN5iovhiy9cy1fV87afe+45rr322lItThs2bGDjxo18+OGH7mmmaeJ0OklKSmLHjh3YbDY6d+7snt+0aVPCw8M9trN48WImTZrE9u3byczMpLi4mPz8fHJzc8+5T5fNZuO2227jww8/5K677iInJ4e5c+fy8ccfA7Br1y5yc3O5/vrrPdYrLCykU6dOFToftYnCl4iIyO8yM88evEo4na7lqyp89ezZk759+zJx4kRGjhzpnp6dnc0f//hHxo0bV2qdRo0asWPHjrNue+/evdx88808+OCD/Pvf/yYiIoKVK1cyevRoCgsLK9Shfvjw4fTq1YuUlBQW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n9OwYUOefvppDh8+zOHDhy/o3FYndbgXEZFLXn6Rk30ncggP8KnQeuEBPuw7kUN+kRN/38q5+3HevHkEBQVRXFxMQUEBFouF1157DYCCggKeffZZFi9eTLdu3QBo3LgxK1euZNq0afTq1YvevXvzzjvv4HA42Lx5M76+vgwdOpRly5bRr18/li1bRq9evdz7u+eee9x/b9y4MVOmTOGyyy4jOzuboKAg97ynn36a66+/HoDs7GzeeecdPvjgA6677joA3nvvPRo2bHjGY9u/fz9/+ctfaNmyJQDNmjVzz5s0aRLDhw/nkUcecc+bMmUKvXr1YurUqURERGC1Wt0tdDWZWr5EROSSV+hw4nCa2KwV+1i0WgwcTpNCh7PSarnmmmtITEzkl19+YcSIEYwaNYohQ4YAsGvXLnJzc7n++usJCgpyv2bOnMnu3bsB6NGjB1lZWfz6668sX77cHchKWsOWL19O79693ftbt24dAwYMoFGjRgQHB7uD2f79+z3q6tq1q/vvu3fvprCwkCuuuMI9LSIighYtWpzx2CZMmMC9995Lnz59mDx5srtmcF2SnDFjhsdx9e3bF6fTSVJSUsVP5EVMLV8iInLJ87VasFoMiisYokrG//KtYGg7k8DAQPclwXfffZcOHTrwzjvvMHr0aHe/rW+++YYGDRp4rGe32wEICwujQ4cOLFu2jJ9++onrr7+enj17MnToUHbs2MHOnTvdASsnJ4e+ffvSt29fPvzwQ6Kioti/fz99+/alsLCwVF0X6p///Cd33HEH33zzDfPnz+fJJ5/k448/ZvDgwWRnZ/PHP/6RcePGlVqvUaNGF7zvi4lavkRE5JLn52MhLjKQtNyiCq2XlltEXGQgfj5V83FqsVj429/+xt///nfy8vJo3bo1drud/fv307RpU49XbGyse71evXqxdOlSVqxYQe/evYmIiKBVq1b8+9//pl69ejRv3hyA7du3c+LECSZPnkyPHj1o2bKlR2f78jRp0gQfHx9++eUX97S0tDR27Nhx1nWbN2/O+PHj+e677/jDH/7A9OnTAejcuTNbt24tdVxNmzZ193nz9fXF4ajcu0urg8KXiIhc8gzD4LKECExMCovPrfWrsNiJicnlCRFVeufdrbfeitVq5fXXXyc4OJhHH32U8ePH895777F7927Wr1/Pq6++ynvvvedep3fv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ZHdtQ4YMoV+/flxzzTVERUXx0UcfYRgGc+fOJTw8nJ49e9KnTx8aN27M7NmzK3x+3nvvPXJzc5k0aRL16tVzv/7whz+Uu46vry8TJ06kffv29OzZE6vVyscffwxAQEAAK1asoFGjRvzhD3+gVatWjB49mvz8fEJCQgC47777aNGiBV27diUqKopVq1ZVuO5TGebZ3mGVLDMzk9DQUDIyMtwHJSIiUlHlfZ7k5+eTlJR0xrGiylMywv3xvOM0Cm7kGk7iNIWOQvZn7aeOfx3uanUXsSGxZWxJLjUVed+pw72IiMjvGoU04s5Wd7qf7YjhGk7CalhxmA7SCtLAhEbBjRjSbIiCl5wXhS8REZFTNAppxIMdH+S31N9Yd3QdyVnJFDmKsFqstI1sS5e6XWgR0QK7tfIe7SOXFoUvERGR09itdtpHtaddnXbkO/IpchbhY/HBz+pXpSPZy6VB4UtERKQchmHgb/PHn6odvV4uLbrbUUREaiUv308ml7iKvN8UvkREpFbx8XGNNp+bm1vNlcilpOT9VvL+OxNddhQRkVrFarUSFhZGSkoK4BrHSf20pKqYpklubi4pKSmEhYWVOxbbqRS+RESk1omJiQFwBzCRqhYWFuZ+352NwpeIiNQ6hmFQr149oqOjL/hRMCJn4+Pjc04tXiUUvkREpNayWq0V+lAU8QZ1uBcRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES+yVXcBF5OcgmKyC4oxgCA/GwG+Oj0icgkqyof8dDBN8A0AewgYRnVXJVJrXPLpIiUrn43JGWw+lMHRzHwKi50A+Nos1A3xo12DUNo3DCMq2F7NlYqIVKG8NDj0q+uVccAVwDDB6guBdaBuO2jYBUJjFcRELpBhmqbpzR1mZmYSGhpKRkYGISEh3ty1h/wiB0u3p7B8xzFScwoJ8LUS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cORDRBNoM9jV10s3e4hINdFlR7kg+UUONh/MYHVSKvtTc8kpKKbI4cQwDPx9rAT72ejYKJzOjcKIiww8+wZFzkfmITiwFvb/7LqLsSjH1RJmsbkuSYY0gLju0KBzqUcTSc2lzxOpqRS+pFKYpklWQTEpmQXkFzkwDAgL8CUqyI6vTVe3xUscxZBzDHKPu/qF2eyuQVT9w9XSVQvp80RqKl3/kUphGAYhfj4asV6ql9UGIfVcLxGRi5SaJERERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yObtHZqmCUBmZqa3dy0iIrVIyedIyeeKSE3h9fCVlZUFQGxsrLd3LSIitVBWVhahoaHVXYbIOTNML39lcDqdHDp0iODgYAzD8Oauz0lmZiaxsbEkJycTEhJS3eXUSDqHF07n8MLo/F24mnAOTdMkKyuL+vXrY7GoF43UHF5v+bJYLDRs2NDbu62wkJCQi/YXTk2hc3jhdA4vjM7fhbvYz6FavKQm0lcFERERES9S+BIRERHxIoWv09jtdp588knsdnt1l1Jj6RxeOJ3DC6Pzd+F0DkWqjtc73IuIiIhcytTyJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwdYrXX3+d+Ph4/Pz8uOKKK1i9enV1l1SjrFixggEDBlC/fn0Mw+DLL7+s7pJqlEmTJnHZZZcRHBxMdHQ0gwYN4rfffqvusmqUqVOn0r59e/fAoN26dWP+/PnVXVaNNXnyZAzD4JFHHqnuUkRqFYWv382ePZsJEybw5JNPsn79ejp06EDfvn1JSUmp7tJqjJycHDp06MDrr79e3aXUSMuXL2fMmDH8/PPPLFq0iKKiIm644QZycnKqu7Qao2HDhkyePJl169axdu1arr32WgYOHMiWLVuqu7QaZ82aNUybNo327dtXdykitY6GmvjdFVdcwWWXXcZrr70GuJ5BGRsby5/+9Ccef/zxaq6u5jEMgy+++IJBgwZVdyk11rFjx4iOjmb58uX07NmzusupsSIiInjhhRcYPXp0dZdSY2RnZ9O5c2feeOMN/vWvf9GxY0deeeWV6i5LpNZQyxdQWFjIunXr6NOnj3uaxWKhT58+/PTTT9VYmVzKMjIyAFd4kIpzOBx8/PHH5OTk0K1bt+oup0YZM2YM/fv39/idKCKVx+sP1r4YHT9+HIfDQd26dT2m161bl+3bt1dTVXIpczqdPPLII1x11VW0bdu2usupUTZt2kS3bt3Iz88nKCiIL774gtatW1d3WTXGxx9/zPr161mzZk11lyJSayl8iVyExowZw+bNm1m5cmV1l1LjtGjRgsTERDIyMvjss88YMWIEy5cvVwA7B8nJyTz88MMsWrQIPz+/6i5HpNZS+ALq1KmD1Wrl6NGjHtOPHj1KTExMNVUll6qxY8cyb948VqxYQcOGDau7nBrH19eXpk2bAtClSxfWrFnDf//7X6ZNm1bNlV381q1bR0pKCp07d3ZPczgcrFixgtdee42CggKsVms1VihSO6jPF65f1l26dOH77793T3M6nXz//ffqKyJeY5omY8eO5YsvvmDJkiUkJCRUd0m1gtPppKCgoLrLqBGuu+46Nm3aRGJiovvVtWtXhg8fTmJiooKXSCVRy9fvJkyYwIgRI+jatSuXX345r7zyCjk5OYwaNaq6S6sxsrOz2bVrl/vnpKQkEhMTiYiIoFGjRtVYWc0wZswYZs2axdy5cwkODubIkSMAhIaG4u/vX83V1QwTJ07kxhtvpFGjRmRlZTFr1iyWLVvGwoULq7u0GiE4OLhUH8PAwEAiIyPV91CkEil8/W7o0KEcO3aMJ554giNHjtCxY0cWLFhQqhO+lG/t2rVcc8017p8nTJgAwIgRI5gxY0Y1VVVzTJ06FYDevXt7TJ8+fTojR470fkE1UEpKCnfffTeHDx8mNDSU9u3bs3DhQq6//vrqLk1ExE3jfImIiIh4kfp8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIF/1/ocUlS3F43cIAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=9\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1NklEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkKQqIfIFFRUQFRF0VFoF1V9nfrq66CupaFgtio6gIKiqIAoI0AZVm6EgLEBAIENL7zPn9MWZgSAIEkgkJ9+u65sKc+pnDyNx5nuc8xzBN00REREREPMJS0QWIiIiIXE0UvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvsRj/v3vf2MYhtuy2NhYhg8f7tE6pk+fjmEYHDhwwKPnlYujvx8RqeoUvipYQkICo0ePplGjRvj7++Pv70+zZs0YNWoUW7ZsqejyrkoHDhzAMIyLepUUEGJjYzEMg549exa7/r333nMdY8OGDeX4bi7Nha7BpEmTKrrEq8qsWbN4/fXXK7oMESkjtoou4Gq2YMECBg8ejM1mY+jQobRu3RqLxcKuXbv48ssvmTJlCgkJCcTExFR0qeXmt99+w2K5sn4HiIyM5KOPPnJb9sorr3D48GFee+21ItuWxNfXl+XLl3Ps2DGioqLc1n3yySf4+vqSk5NTdoWXgyFDhnDrrbcWWd62bdtyO+e9997LXXfdhY+PT7mdo7KZNWsW27ZtY+zYsRVdioiUAYWvCrJv3z7uuusuYmJi+OGHH6hZs6bb+hdffJG33377igsmZ8vMzCQgIOCyjnElfsEGBARwzz33uC2bPXs2p0+fLrL8fDp37sz69euZM2cOjz32mGv54cOH+fHHHxk4cCBz584ts7rLQ7t27Ur1nsuC1WrFarWedxvTNMnJycHPz89DVYmIlJ0r95u9invppZfIzMxk2rRpRYIXgM1mY8yYMURHR7st37VrF7fffjvh4eH4+vrSoUMH5s+f77ZN4ZiZNWvWMH78eCIjIwkICGDgwIGcOHGiyLkWLlxIly5dCAgIICgoiL59+7J9+3a3bYYPH05gYCD79u3j1ltvJSgoiKFDhwLw448/cscdd1C3bl18fHyIjo5m3LhxZGdnX/A6nDvm62K7+C7mOgBs376dG2+8ET8/P+rUqcN//vMfHA7HBesqC76+vvzpT39i1qxZbss//fRTwsLC6NWrV5F9tmzZwvDhw6lXrx6+vr5ERUVx//33c+rUKdc2F+oSPNsvv/xC7969CQkJwd/fn27durFmzZoyfZ+xsbHcdtttrF69mmuvvRZfX1/q1avHzJkzXdts2LABwzCYMWNGkf0XL16MYRgsWLAAKH7MV+E5Fi9eTIcOHfDz82Pq1KkA7N+/nzvuuIPw8HD8/f25/vrr+fbbb93OsWLFCgzD4LPPPuP555+nTp06+Pr6ctNNN7F37163bbt3706LFi3YsmUL3bp1w9/fnwYNGvDFF18AsHLlSq677jr8/Pxo3LgxS5cuLfKejhw5wv3330+NGjXw8fGhefPmfPjhh5dUU/fu3fn22285ePCg6+84Njb2Iv5mRORKpZavCrJgwQIaNGjAddddd9H7bN++nc6dO1O7dm2efPJJAgIC+OyzzxgwYABz585l4MCBbtv/5S9/ISwsjKeffpoDBw7w+uuvM3r0aObMmePa5qOPPmLYsGH06tWLF198kaysLKZMmcINN9zAr7/+6vaPfEFBAb169eKGG27gv//9L/7+/gB8/vnnZGVl8cgjjxAREcG6det44403OHz4MJ9//nmprsu53X0A//znP0lKSiIwMLBU1+HYsWP06NGDgoIC13bvvvuuR1tL7r77bm655Rb27dtH/fr1AWcX0u23346Xl1eR7ZcsWcL+/fsZMWIEUVFRbN++nXfffZft27fz888/YxhGsd2i+fn5jBs3Dm9vb9eyZcuW0adPH9q3b8/TTz+NxWJh2rRp3Hjjjfz4449ce+21F6w/KyuLkydPFlkeGhqKzXbmn4+9e/dy++23M3LkSIYNG8aHH37I8OHDad++Pc2bN6dDhw7Uq1ePzz77jGHDhrkda86cOSWG0bP99ttvDBkyhD//+c88+OCDNG7cmOPHj9OpUyeysrIYM2YMERERzJgxg//7v//jiy++KPL/xKRJk7BYLDz++OOkpqby0ksvMXToUH755Re37U6fPs1tt93GXXfdxR133MGUKVO46667+OSTTxg7diwPP/wwd999Ny+//DK33347iYmJBAUFAXD8+HGuv/56DMNg9OjRREZGsnDhQkaOHElaWlqRrsML1fT//t//IzU1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3bszdepUjh49WmT74qaQuJBevXoRHBzMCy+8QH5+/iUds/C39rPrNU2T//3vf6WuB2DatGlMnTqVt956q9hQWprrcOutt/Lzzz+zbt06t/WffPLJJdV2rmbNmtGzZ0/Xq3379iVu+8ADD/D000/zyiuvlLhNcdcSKHZm82eeeYbFixfz6aefFtsd1759e+rXr89///vfYru3L+XzUhaaNm1Ky5YtmTNnDnPmzKFmzZp07dr1ko936623sm7dOn766SfXsszMTN59911iY2OLjE0rb1arlUGDBjF37txiW7Yv9boHBARcche+iFx51PJVQRo2bMisWbMYMmQIjRs3ds1wb5omCQkJzJo1C4vF4jbG6q233uKGG26gZcuWPPjgg9SrV4/jx4/z008/cfjwYTZv3lyqGoKDg5kyZQr33nsv7dq146677iIyMpJDhw7x7bff0rlzZ958883zHqNJkybUr1+fxx9/nCNHjhAcHMzcuXMvabzKyZMnefTRR2nWrBk+Pj58/PHHbusHDhxIQEDARV+Hv//973z00Uf07t2bxx57zDXVRExMjMcf3RQTE8O///3v824THBxM165deemll8jPz6d27dp8//33JCQkuG23detWnnvuObp27UpSUlKR63TPPfdgsVh4//336dOnD82bN2fEiBHUrl2bI0eOsHz5coKDg/nmm28uWPemTZuKHB+cLWsdO3a88BsvxuDBg3nqqafw9fVl5MiRlzWR8JNPPsmnn35Knz59GDNmDOHh4cyYMYOEhATmzp1bIZMUT5o0ieXLl3Pdddfx4IMP0qxZM5KTk9m0aRNLly4lOTm51Mds3749c+bMYfz48VxzzTUEBgbSr1+/cqheRDxB4asC9e/fn61bt/LKK6/w/fff8+GHH2IYBjExMfTt25eHH36Y1q1bu7Zv1qwZGzZs4JlnnmH69OmcOnWK6tWr07ZtW7duqtK4++67qVWrFpMmTeLll18mNzeX2rVr06VLF0aMGHHB/b28vPjmm28YM2YMEydOxNfXl4EDBzJ69Gi32i9GRkYGOTk57Nixw3V349kSEhIICAi46OtQs2ZNli9fzl/+8hcmTZpEREQEDz/8MLVq1XIN+L7SzJo1i7/85S+89dZbmKbJLbfcwsKFC6lVq5Zrm1OnTmGaJitXrmTlypVFjlHYFdq9e3d++uknnnvu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7LMcPXqUo0ePXta1rUgacC8iIle9nHwHB09lEubvVar9wvy9OHgqk5x8B37eZXP344IFCwgMDKSgoIDc3FwsFgtvvvkmALm5ubzwwgssXbqUjh07AlCvXj1Wr17N1KlT6datG927d+eDDz7Abrezbds2vL29GTx4MCtWrKB3796sWLGCbt26uc53//33u/67Xr16TJ48mWuuuYaMjAwCAwNd65599lluvvlmADIyMvjggw/4+OOPuemmmwCYMWMGderUOe97O3ToEH/7299o0qQJAA0bNnStmzhxIkOHDmXs2LGudZMnT6Zbt25MmTKF8PBwrFarq4WuMlPLl4iIXPXy7A7sDhObtXRfi1aLgd1hkmd3lFktPXr0ID4+nl9++YVhw4YxYsQIBg0aBMDevXvJysri5ptvJjAw0PWaOXMm+/btA6BLly6kp6fz66+/snLlSlcgK2wNW7lyJd27d3edb+PGjfTr14+6desSFBTkCmaHDh1yq6tDhw6u/963bx95eXlcd911rmXh4eE0btz4vO9t/PjxPPDAA/Ts2ZNJkya5agZnl+T06dPd3levXr1wOBwkJCSU/kJewdTyJSIiVz1vqwWrxaCglCGqcP4v71KGtvMJCAhwdQl++OGHtG7dmg8++ICRI0e6xm19++231K5d220/Hx8fAEJDQ2ndujUrVqzgp59+4uabb6Zr164MHjyY3bt3s2fPHlfAyszMpFevXvTq1YtPPvmEyMhIDh06RK9evcjLyytS1+X697//zd133823337LwoULefrpp5k9ezYDBw4kIyODP//5z4wZM6bIfnXr1r3sc19J1PIlIiJXPV8vCzERAZzOyi/Vfqez8omJCMDXq3y+Ti0WC//4xz/45z//SXZ2Ns2aNcPHx4dDhw7RoEEDt1d0dLRrv27durF8+XJWrVpF9+7dCQ8Pp2nTpjz//PPUrFmTRo0aAbBr1y5OnTrFpEmT6NKlC02aNHEbbF+S+vXr4+XlxS+//OJadvr0aXbv3n3BfRs1asS4ceP4/vvv+dOf/sS0adMAaNeuHTt27Cjyvho0aOAa8+bt7Y3dXrZ3l1YEhS8REbnqGYbBNXHhmJjkFVxc61degQMTk2vjwsv1zrs77rgDq9XKW2+9RVBQEI8//jjjxo1jxowZ7Nu3j02bNvHGG28wY8YM1z7du3dn8eLF2Gw21/iq7t2788knn7iN96pbty7e3t688cYb7N+/n/nz5/Pcc89dsKbAwEBGjhzJ3/72N5YtW8a2bdsYPnw4FkvJsSI7O5vRo0ezYsUKDh48yJo1a1i/fj1NmzYF4IknnmDt2rWMHj2a+Ph49uzZw7x581wD7sE5z9eqVas4cuQIJ0+eLPW1vFIofImIiADNaga7po+40N2Lpmm6pqVoWjO4XOuy2WyMHj2al156iczMTJ577jn+9a9/MXHiRJo2bUrv3r359ttviYuLc+3TpUsXHA6HW9Dq3r07drvdbbxXZGQk06dP5/PPP6dZs2ZMmjTJbZqK83n55Zfp0qUL/fr1o2fPntxwww20b9++xO2tViunTp3ivvvuo1GjRtx555306dOHZ555BoBWrVqxcuVKdu/eTZcuXWjbti1PPfUUtWrVch3j2Wef5cCBA9SvX5/IyMiLvYRXHMMsr/tjS5CWlkZISAipqakEB5fvB1ZERKqukr5PcnJySEhIIC4uDl9f31Ids3CG+xPpucREBBQ77URegfPOyMggH+6/IY6YCD1iSEr3udOAexERkT/EVgtgROe4Is92LLyr8XRWPiYmMdUCuOuaaAUvuSQKXyIiImeJrRbAYzc1ZOfRNNYlJHPwVCb5+Q6sFoNWdUK4Ni6cpjWD8fUqm3m95Oqj8CVyBTidc5qdyTs5nH6Yw+mHybXnYrPYqBVYi+igaBqHNaZGQI2KLlPkquHrZaVt3TDaRIeSk+8gz+7A22rB18tSqR9rI1cGhS+RCpSRl8GKxBVsOL6BlNwUbIYNP5sfVouV7IJsfk36lfXH1hPsHUyLai3oGdOTcN/wii5b5KphGAZ+3lb8UCuXlB2FL5EKcjDtIF/t+YoDaQcI9w2nQWgDLEbRwb2maZKSm8Ka39eQkJpAv/r9aBbRrAIqFhGRsqCpJkQqwKG0Q8zaOYtD6YeoF1KPan7Vig1e4PzNO8w3jAahDUjOSWbOrjlsP7XdwxWLiEhZUfgS8bDM/Ey+2vsVJ7JPUC+kHjbLxTVAWw0rdYPqkmPPYd7eeZzMrrwTDIqIXM0UvkQ8bNXhVexP2U9McIxba1dBfsF59yvIL8AwDKKDojmeeZzvD3x/wYkgReQymSbkZUF2ivNP/T8nZaBU4WvKlCm0atWK4OBggoOD6dixIwsXLiyv2kSqnNTcVDYc20C4bzheFi/X8o2LN/L8Hc9z+tjpYvc7few0z9/xPBsXb8RiWKgZUJPtp7ZzJOOIp0oXubrk50Dielj7Biz+B3z/L+efa99wLs/PqegKpRIrVfiqU6cOkyZNYuPGjWzYsIEbb7yR/v37s327xp+IXIzdp3eTnJNMuN+ZOxYL8gtYMGUBSQeTeP3B14sEsNPHTvP6g6+TdDCJBVMWUJBfQJB3EJn5mew8tdPTb0Gk6ju1D1ZOgp/ehCObwLCAl7/zzyObnMtXTnJuV4EMw+Drr7+u0Brk0pQqfPXr149bb72Vhg0b0qhRI55//nkCAwP5+eefy6s+kSrlSMYRDMPAapy5bd3mZWPMO2OoVqcaJw+fdAtghcHr5OGTVKtTjTHvjMHmZcMwDHytvhxMO1hRb0Wkajq1D355B5ITILweRDaGgEjwC3X+GdnYuTw5wbldGQew4cOHYxgGhmHg5eVFjRo1uPnmm/nwww9xONwf+H306FH69OlzUcf1ZFD797//TZs2bcrt+Dk5OQwfPpyWLVtis9kYMGBAuZ2rUFm/p0se82W325k9ezaZmZl07NixzAoSqcqOpB/Bz+ZXZHlYVBhj3xvrFsD2x+93C15j3xtLWFSYax9/L3+OZR4j35HvybcgUnXl58CvH0FGElRrDFbv4rezejvXZyQ5ty/jLsjevXtz9OhRDhw4wMKFC+nRowePPfYYt912GwUFZ8aGRkVF4ePjU2bnzcvLK7NjlYWS6rHb7fj5+TFmzBh69uzp4arKRqnD19atWwkMDMTHx4eHH36Yr776imbNSp5zKDc3l7S0NLeXyNUq157r1up1tnMD2CsjXikxeIHz7ke7aafAcf6B+iJykY5tPdPidaFZ7A0DwuKc2x/fVqZl+Pj4EBUVRe3atWnXrh3/+Mc/mDdvHgsXLmT69OlnlXCmNSsvL4/Ro0dTs2ZNfH19iYmJYeLEiQDExsYCMHDgQAzDcP1c2Jrz/vvvuz0MetGiRdxwww2EhoYSERHBbbfdxr597i18hw8fZsiQIYSHhxMQEECHDh345ZdfmD59Os888wybN292teAV1nzo0CH69+9PYGAgwcHB3HnnnRw/ftx1zJLqOVdAQABTpkzhwQcfJCoq6qKu6fmuD0BKSgoPPPAAkZGRBAcHc+ONN7J582aA876nS1XqSVYbN25MfHw8qampfPHFFwwbNoyVK1eWGMAmTpzIM888c1lFilQVPlYf7Ka9xPVhUWEMe24Yr4x4xbVs2HPDigQvALtpx2pYL3qqChE5D9OEQz8BRsktXuey+Ti3P7gWare/cGC7DDfeeCOtW7fmyy+/5IEHHiiyfvLkycyfP5/PPvuMunXrkpiYSGJiIgDr16+nevXqTJs2jd69e2O1nvkFcO/evcydO5cvv/zStTwzM5Px48fTqlUrMjIyeOqppxg4cCDx8fFYLBYyMjLo1q0btWvXZv78+URFRbFp0yYcDgeDBw9m27ZtLFq0iKVLlwIQEhKCw+FwBa+VK1dSUFDAqFGjGDx4MCtWrDhvPWXhfNcH4I477sDPz4+FCxcSEhLC1KlTuemmm9i9e3eJ7+lylPpfbW9vbxo0aABA+/btWb9+Pf/73/+YOnVqsdtPmDCB8ePHu35OS0sjOjr6EssVqdxqB9VmX2rJY0ROHzvNjH/NcFs2418zim35ysrPol5oPbe7JkXkEuVnQ/J+8C/l47v8w5375WeDt3/51PaHJk2asGXLlmLXHTp0iIYNG3LDDTdgGAYxMTGudZGRkQCEhoYWaSnKy8tj5syZrm0ABg0a5LbNhx9+SGRkJDt27KBFixbMmjWLEydOsH79esLDnderMBcABAYGYrPZ3M61ZMkStm7dSkJCgisDzJw5k+bNm7N+/XquueaaEuspC+e7PqtXr2bdunUkJSW5unH/+9//8vXXX/PFF1/w0EMPFfueLsdlz/PlcDjIzc0tcb2Pj49raorCl8jVqmZATUzTLLb169zB9X+d9tdiB+GD85FDOQU5xAbHerB6kSrMngcOO5T2lxmLzbmfvfzHS5mmWeJDvYcPH058fDyNGzdmzJgxfP/99xd1zJiYmCJBZ8+ePQwZMoR69eoRHBzs6qY8dOgQAPHx8bRt29YVvC7Gzp07iY6Odmt8adasGaGhoezceeau7eLqKQvnuz6bN28mIyODiIgIAgMDXa+EhIQi3a1lpVQtXxMmTKBPnz7UrVuX9PR0Zs2axYoVK1i8eHG5FCdS1TQJb0KoTyjJ2clE+p/5B+bc4FXY0jX2vbGu5a8/+LpreUZ+Bv5e/jSNaFqB70akCrF6g8UKpb2BxVHg3O9iuyovw86dO4mLiyt2Xbt27UhISGDhwoUsXbqUO++8k549e/LFF1+c95gBAQFFlvXr14+YmBjee+89atWqhcPhoEWLFq4B8H5+RW8aKivF1VMWznd9MjIyqFmzplv3Z6HQ0NByqadULV9JSUncd999NG7cmJtuuon169ezePFibr755nIpTqSqCfEJoX2N9iTnJLsGyhfkFzD54cnFDq4/dxD+5Icnk5eXx9HMozSNaEqdwDoV+XZEqg4vP+dA+6zk0u2Xlezcz6v8AgnAsmXL2Lp1a5EuwbMFBwczePBg3nvvPebMmcPcuXNJTna+Hy8vL+z2ksebFjp16hS//fYb//znP7npppto2rQpp0+7zz3YqlUr4uPjXcc+l7e3d5FzNW3atMg4qx07dpCSknLem/bKUknXp127dhw7dgybzUaDBg3cXtWqVSvxPV2OUrV8ffDBB2V2YpGrVffo7uxN2cvBtIPOZzt62bjtkdtYMGUBY94ZU2RsV2EAm/zwZPo+3JdjOceI9IukV2yvErsgRKSUDAPqdoQjG51diBfTklWQC5gQ06lMB9vn5uZy7Ngx7HY7x48fZ9GiRUycOJHbbruN++67r9h9Xn31VWrWrEnbtm2xWCx8/vnnREVFuVpuYmNj+eGHH+jcuTM+Pj6EhRW9iQcgLCyMiIgI3n33XWrWrMmhQ4d48skn3bYZMmQIL7zwAgMGDGDixInUrFmTX3/9lVq1atGxY0diY2NJSEggPj6eOnXqEBQURM+ePWnZsiVDhw7l9ddfp6CggEcffZRu3brRoUOHUl+jHTt2kJeXR3JyMunp6cTHxwOUOBfX+a5Pz5496dixIwMGDOCll16iUaNG/P7773z77bcMHDiQDh06FPueLmeaDz3bUcTDAr0D6d+gP+G+4exP3Y/dYad9r/b8v8//X7F3NYIzgE34bALVO1XHy+pFv/r9qO5f3cOVi1RxUS0hPM45gP5Cz3A0TTid4Ny+RosyLWPRokXUrFmT2NhYevfuzfLly5k8eTLz5s0r8Q7AoKAgXnrpJTp06MA111zDgQMH+O6777BYnF/zr7zyCkuWLCE6Opq2bduWeG6LxcLs2bPZuHEjLVq0YNy4cbz88stu23h7e/P9999TvXp1br31Vlq2bMmkSZNctQ0aNIjevXvTo0cPIiMj+fTTTzEMg3nz5hEWFkbXrl3p2bMn9erVY86cOZd0jW699Vbatm3LN998w4oVK2jbtu1539f5ro9hGHz33Xd07dqVESNG0KhRI+666y4OHjxIjRo1SnxPl8MwPfxk3rS0NEJCQkhNTdXge7mq7U/dz9d7vuZg+kEi/SIJ9Ql1e9B2IdM0SctL43jWcar7V6dfvX60jGxZARWLXFlK+j7JyckhISHhvHNFlahwhvuMJOc8XrZiWjcKcp3BK7A6XP+Is9tRrnql+dxpgiCRClIvpB4PtHqAZYeW8evxX9mbshcvixd+Nj9sFhsO00FWfha59lyCvIO4Nupabom9hWp+1Sq6dJGqK6I+XPewc+b65ATAcE4nYbE5B9dnJQOms8Wr3X0KXnJJFL5EKlCwdzADGgzghto3sPPUTg6lH+Jw+mHyHfl4W72pF1KP6KBomoQ3ISogSmO8RDwhoj50e9I5c/3BtWfm8bJYoXY75xivGi3Aq5StaiJ/UPgSuQJU86tGlzpdAGc3o8N0YDEsClsiFcXLF+p0cM5cn599ZhC+l1+5zmQvVweFL5ErjGEYJT7/UUQ8zDD+mLm+fGevl6uL7nYUERER8SCFLxEREREPUvgSERER8SCN+RIRESmBaZrk2HPId+TjZfHC1+qrG2Hksil8iYiInCPXnsuu5F1sOr6JxPRE7A47VouV6KBo2tVoR5PwJvhYL/3xMnJ1U/gSERE5y6G0Q3y550sS0xMxDINQn1C8bd4UmAVsP7WdbSe3ER0UzZ8a/om6wXUrrE7DMPjqq68YMGBAhdUgl0ZjvkRERP5wKO0QH+/8mEPph6gbVJd6IfUI9w0n2CeYcN9w6oXUo25QXQ6l/7Fd2qEyPf/w4cMxDAPDMPDy8qJGjRrcfPPNfPjhhzgcDrdtjx49Sp8+fS7quIZh8PXXX5dprSX597//XeIDrsvCihUr6N+/PzVr1iQgIIA2bdrwySeflNv5wPn3UpYhV+FLREQEZ1fjl3u+5GT2SeqH1MfL6lXsdl5WL+qH1Odk9km+3PMlufbcMq2jd+/eHD16lAMHDrBw4UJ69OjBY489xm233UZBQYFru6ioKHx8yq7rMy8vr8yOVRZKqmft2rW0atWKuXPnsmXLFkaMGMF9993HggULPFzhpVP4EhERAXYl7yIxPZGYoJgLDqo3DIO6QXVJTE/kt+TfyrQOHx8foqKiqF27Nu3ateMf//gH8+bNY+HChUyfPt2thsLWrLy8PEaPHk3NmjXx9fUlJiaGiRMnAhAbGwvAwIEDMQzD9XNhC9X777/v9jDoRYsWccMNNxAaGkpERAS33XYb+/btc6vx8OHDDBkyhPDwcAICAujQoQO//PIL06dP55lnnmHz5s2uFrzCmg8dOkT//v0JDAwkODiYO++8k+PHj7uOWVI95/rHP/7Bc889R6dOnahfvz6PPfYYvXv35ssvvyzxmp4+fZqhQ4cSGRmJn58fDRs2ZNq0aa71iYmJ3HnnnYSGhhIeHk7//v05cOCAq64ZM2Ywb94813tasWLF+f4KL0hjvkRE5Kpnmiabjm9ydveV0OJ1Lm+rNxiw8fhGWlZrWa53Qd544420bt2aL7/8kgceeKDI+smTJzN//nw+++wz6tatS2JiIomJiQCsX7+e6tWrM23aNHr37o3VeuYJGnv37mXu3Ll8+eWXruWZmZmMHz+eVq1akZGRwVNPPcXAgQOJj4/HYrGQkZFBt27dqF27NvPnzycqKopNmzbhcDgYPHgw27ZtY9GiRSxduhSAkJAQHA6HK3itXLmSgoICRo0axeDBg92CTHH1XIzU1FSaNm1a4vp//etf7Nixg4ULF1KtWjX27t1LdnY2APn5+fTq1YuOHTvy448/YrPZ+M9//kPv3r3ZsmULjz/+ODt37iQtLc0V2MLDwy+6tuIofImIyFUvx55DYnoioT6hpdovzCeMxPREcuw5+Nn8yqe4PzRp0oQtW7YUu+7QoUM0bNiQG264AcMwiImJca2LjIwEIDQ0lKioKLf98vLymDlzpmsbgEGDBrlt8+GHHxIZGcmOHTto0aIFs2bN4sSJE6xfv94VQho0aODaPjAwEJvN5nauJUuWsHXrVhISEoiOjgZg5syZNG/enPXr13PNNdeUWM+FfPbZZ6xfv56pU6eWuM2hQ4do27YtHTp0AM60BgLMmTMHh8PB+++/7wrQ06ZNIzQ0lBUrVnDLLbfg5+dHbm5uket3qdTtKCIiV718Rz52hx2bUbo2Cathxe6wk+/IL6fKzjBNs8TWteHDhxMfH0/jxo0ZM2YM33///UUdMyYmpkjQ2bNnD0OGDKFevXoEBwe7gsqhQ86bC+Lj42nbtm2pWn927txJdHS0K3gBNGvWjNDQUHbu3Hnees5n+fLljBgxgvfee4/mzZuXuN0jjzzC7NmzadOmDX//+99Zu3ata93mzZvZu3cvQUFBBAYGEhgYSHh4ODk5OUW6W8uKWr5EROSq52XxwmqxUmAWXHjjs9hN5/xfXpaL66q8HDt37iQuLq7Yde3atSMhIYGFCxeydOlS7rzzTnr27MkXX3xx3mMGBAQUWdavXz9iYmJ47733qFWrFg6HgxYtWrgGwPv5lV8LX3H1lGTlypX069eP1157jfvuu++82/bp04eDBw/y3XffsWTJEm666SZGjRrFf//7XzIyMmjfvn2xd0yWJgiWhlq+RETkqudr9SU6KJqU3JRS7Xc69zTRQdH4WosfHF5Wli1bxtatW4t0CZ4tODiYwYMH89577zFnzhzmzp1LcnIyAF5eXtjt9gue59SpU/z222/885//5KabbqJp06acPn3abZtWrVoRHx/vOva5vL29i5yradOmbuPQAHbs2EFKSgrNmjW7YF3nWrFiBX379uXFF1/koYceuqh9IiMjGTZsGB9//DGvv/467777LuAMrnv27KF69eo0aNDA7RUSElLie7ocCl8iInLVMwyDdjXaYZom+faL60LMs+eBCe1rtC/Twfa5ubkcO3aMI0eOsGnTJl544QX69+/PbbfdVmILz6uvvsqnn37Krl272L17N59//jlRUVGEhoYCzjFOP/zwA8eOHSsSps4WFhZGREQE7777Lnv37mXZsmWMHz/ebZshQ4YQFRXFgAEDWLNmDfv372fu3Ln89NNPrnMlJCQQHx/PyZMnyc3NpWfPnrRs2ZKhQ4eyadMm1q1bx3333Ue3bt1c47Au1vLly+nbty9jxoxh0KBBHDt2jGPHjpUYBgGeeuop5s2bx969e9m+fTsLFixwDdAfOnQo1apVo3///vz4448kJCSwYsUKxowZw+HDh13vacuWLfz222+cPHmS/PzL62ZW+BIREQGahDchOiiag+kHMU3zvNuapsmh9ENEB0XTOLxxmdaxaNEiatasSWxsLL1792b58uVMnjyZefPmlXgHYFBQEC+99BIdOnTgmmuu4cCBA3z33XdYLM6v+VdeeYUlS5YQHR1N27ZtSzy3xWJh9uzZbNy4kRYtWjBu3Dhefvllt228vb35/vvvqV69OrfeeistW7Zk0qRJrtoGDRpE79696dGjB5GRkXz66acYhsG8efMICwuja9eu9OzZk3r16jFnzpxSX58ZM2aQlZXFxIkTqVmzpuv1pz/9qcR9vL29mTBhAq1ataJr165YrVZmz54NgL+/P6tWraJu3br86U9/omnTpowcOZKcnByCg4MBePDBB2ncuDEdOnQgMjKSNWvWlLrusxnmhT5hZSwtLY2QkBBSU1Ndb0pERKS0Svo+ycnJISEh4bxzRZWkcIb7k9knqRtU1zmdxDny7HkcSj9ENb9q3Nv0XqKDo4s5klxtSvO504B7ERGRP9QNrss9Te9xPdsRwzmdhNWwYjftnM49DSbUDarLoIaDFLzkkih8iYiInKVucF0eafMIvyX/xsbjG0lMTyTfno/VYqVFRAva12hP4/DG+FjL7tE+cnVR+BIRETmHj9WHVpGtaFmtJTn2HPId+XhZvPC1+pbrTPZydVD4EhERKYFhGPjZ/PCjfGevl6uL7nYUEZEqycP3k8lVrjSfN4UvERGpUry8nLPNZ2VlVXAlcjUp/LwVfv7OR92OIiJSpVitVkJDQ0lKSgKc8zhpnJaUF9M0ycrKIikpidDQ0BLnYjubwpeIiFQ5UVFRAK4AJlLeQkNDXZ+7C1H4EhGRKscwDGrWrEn16tUv+1EwIhfi5eV1US1ehRS+RESkyrJaraX6UhTxBA24FxEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD7JVdAFXkszcAjJyCzCAQF8b/t66PCJyFcrPgZwUME3w9gefYDCMiq5KpMq46tNFUnoOWxJT2fZ7KsfTcsgrcADgbbNQI9iXlrVDaFUnlMggnwquVESkHGWfht9/db5SDzsDGCZYvSGgGtRoCXXaQ0i0gpjIZTJM0zQ9ecK0tDRCQkJITU0lODjYk6d2k5NvZ/muJFbuPkFyZh7+3lYCfWz4eFkByM23k5FbQHa+nTB/b3o0jqRb4+r4/rFeRKRKsBfAgVWw61tIPw42H2dLl5cfYIA9F3IzIC/duTz2Bmh6G/iGVHTlV8z3iUhpXZXh61RGLlNW/8zOpBOE+HkR6u+N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9PR0AKKjoz19ahERqYLS09MJCQmp6DJELpphevhXBofDwe+//05QUBCGYXjy1BclLS2N6OhoEhMTCQ4OruhyKiVdw8una3h5dP0uX2W4hqZpkp6eTq1atbBYNIpGKg+Pt3xZLBbq1Knj6dOWWnBw8BX7D05loWt4+XQNL4+u3+W70q+hWrykMtKvCiIiIiIepPAlIiIi4kEKX+fw8fHh6aefxsfHp6JLqbR0DS+fruHl0fW7fLqGIuXH4wPuRURERK5mavkSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvg6y1tvvUVsbCy+vr5cd911rFu3rqJLqlRWrVpFv379qFWrFoZh8PXXX1d0SZXKxIkTueaaawgKCqJ69eoMGDCA3377raLLqlSmTJlCq1atXBODduzYkYULF1Z0WZXWpEmTMAyDsWPHVnQpIlWKwtcf5syZw/jx43n66afZtGkTrVu3plevXiQlJVV0aZVGZmYmrVu35q233qroUiqllStXMmrUKH7++WeWLFlCfn4+t9xyC5mZmRVdWqVRp04dJk2axMaNG9mwYQM33ngj/fv3Z/v27RVdWqWzfv16pk6dSqtWrSq6FJEqR1NN/OG6667jmmuu4c033wScz6CMjo7mL3/5C08++WQFV1f5GIbBV199xYABAyq6lErrxIkTVK9enZUrV9K1a9eKLqfSCg8P5+WXX2bkyJEVXUqlkZGRQbt27Xj77bf5z3/+Q5s2bXj99dcruiyRKkMtX0BeXh4bN26kZ8+ermUWi4WePXvy008/VWBlcjVLTU0FnOFBSs9utzN79mwyMzPp2LFjRZdTqYwaNYq+ffu6/ZsoImXH4w/WvhKdPHkSu91OjRo13JbXqFGDXbt2VVBVcjVzOByMHTuWzp0706JFi4oup1LZunUrHTt2JCcnh8DAQL766iuaNWtW0WVVGrNnz2bTpk2sX7++oksRqbIUvkSuQKNGjWLbtm2sXr26okupdBo3bkx8fDypqal88cUXDBs2jJUrVyqAXYTExEQee+wxlixZgq+vb0WXI1JlKXwB1apVw2q1cvz4cbflx48fJyoqqoKqkqvV6NGjWbBgAatWraJOnToVXU6l4+3tTYMGDQBo374969ev53//+x9Tp06t4MqufBs3biQpKYl27dq5ltntdlatWsWbb75Jbm4uVqu1AisUqRo05gvnP9bt27fnhx9+cC1zOBz88MMPGisiHmOaJqNHj+arr75i2bJlxMXFVXRJVYLD4SA3N7eiy6gUbrrpJrZu3Up8fLzr1aFDB4YOHUp8fLyCl0gZUcvXH8aPH8+wYcPo0KED1157La+//jqZmZmMGDGiokurNDIyMti7d6/r54SEBOLj4wkPD6du3boVWFnlMGrUKGbNmsW8efMICgri2LFjAISEhODn51fB1VUOEyZMoE+fPtStW5f09HRmzZrFihUrWLx4cUWXVikEBQUVGWMYEBBARESExh6KlCGFrz8MHjyYEydO8NRTT3Hs2DHatGnDokWLigzCl5Jt2LCBHj16uH4eP348AMOGDWP69OkVVFXlMWXKFAC6d+/utnzatGkMHz7c8wVVQklJSdx3330cPXqUkJAQWrVqxeLFi7n55psrujQRERfN8yUiIiLiQRrzJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHvT/ASgtS/wHX+QkAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=10\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB250lEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQiooCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIEXBQjN0pAUIEAiQ3pOZ8/tjzMCQBAgkExLu13XNBTn1cw5D5p7nPOc5hmmaJiIiIiLiFZbqLkBERETkUqLwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJV7zz3/+E8MwPKbFxcUxevRor9Yxa9YsDMNg3759Xt2vnBv9+4hIbafwVc0SExMZP348LVq0ICAggICAANq0acO4cePYtGlTdZd3Sdq3bx+GYZzTq7yAEBcXh2EY9O3bt8z5b731lnsb69atq8KjOT9nOwdTp06t7hIvKXPmzOHll1+u7jJEpJLYqruAS9mCBQsYPnw4NpuNkSNH0rFjRywWCzt27OCzzz5j+vTpJCYmEhsbW92lVpnffvsNi+Xi+g4QFRXFe++95zHthRde4ODBg7z00kulli2Pn58fy5cv58iRI0RHR3vM++CDD/Dz8yM/P7/yCq8CI0aM4MYbbyw1vXPnzlW2zzvvvJPbbrsNu91eZfuoaebMmcOWLVt4+OGHq7sUEakECl/VZM+ePdx2223Exsby3XffUb9+fY/5zz77LK+//vpFF0xOlZOTQ2Bg4AVt42L8gA0MDOSOO+7wmPbRRx+RlpZWavqZXHXVVaxdu5a5c+fy0EMPuacfPHiQH374gaFDhzJv3rxKq7sqdOnSpULHXBmsVitWq/WMy5imSX5+Pv7+/l6qSkSk8ly8n+y13HPPPUdOTg4zZ84sFbwAbDYbEyZMICYmxmP6jh07uPnmm4mIiMDPz49u3brx5ZdfeixT0mdm9erVTJo0iaioKAIDAxk6dCjHjh0rta+FCxfSs2dPAgMDCQ4OZuDAgWzdutVjmdGjRxMUFMSePXu48cYbCQ4OZuTIkQD88MMP3HLLLTRu3Bi73U5MTAwTJ04kLy/vrOfh9D5f53qJ71zOA8DWrVu59tpr8ff3p1GjRvzrX//C6XSeta7K4Ofnxx/+8AfmzJnjMf3DDz8kPDycfv36lVpn06ZNjB49miZNmuDn50d0dDR33303J06ccC9ztkuCp/rll1/o378/oaGhBAQE0Lt3b1avXl2pxxkXF8dNN93EqlWruPzyy/Hz86NJkybMnj3bvcy6deswDIN333231PqLFy/GMAwWLFgAlN3nq2Qfixcvplu3bvj7+zNjxgwA9u7dyy233EJERAQBAQFceeWVfP311x77WLFiBYZh8PHHH/Pvf/+bRo0a4efnx3XXXcfu3bs9lu3Tpw/t2rVj06ZN9O7dm4CAAJo1a8ann34KwMqVK7niiivw9/enZcuWLF26tNQxHTp0iLvvvpt69epht9tp27Yt77zzznnV1KdPH77++mv279/v/jeOi4s7h38ZEblYqeWrmixYsIBmzZpxxRVXnPM6W7du5aqrrqJhw4Y89thjBAYG8vHHHzNkyBDmzZvH0KFDPZb/05/+RHh4OE888QT79u3j5ZdfZvz48cydO9e9zHvvvceoUaPo168fzz77LLm5uUyfPp2rr76aX3/91eOXfHFxMf369ePqq6/mP//5DwEBAQB88skn5Obm8sADDxAZGcmaNWt45ZVXOHjwIJ988kmFzsvpl/sA/v73v5OSkkJQUFCFzsORI0e45pprKC4udi/35ptverW15Pbbb+eGG25gz549NG3aFHBdQrr55pvx8fEptfySJUvYu3cvY8aMITo6mq1bt/Lmm2+ydetWfv75ZwzDKPOyaFFRERMnTsTX19c9bdmyZQwYMICuXbvyxBNPYLFYmDlzJtdeey0//PADl19++Vnrz83N5fjx46Wmh4WFYbOd/PWxe/dubr75ZsaOHcuoUaN45513GD16NF27dqVt27Z069aNJk2a8PHHHzNq1CiPbc2dO7fcMHqq3377jREjRvDHP/6Re++9l5YtW3L06FF69OhBbm4uEyZMIDIyknfffZf/+7//49NPPy31f2Lq1KlYLBYeeeQRMjIyeO655xg5ciS//PKLx3JpaWncdNNN3Hbbbdxyyy1Mnz6d2267jQ8++ICHH36Y+++/n9tvv53nn3+em2++maSkJIKDgwE4evQoV155JYZhMH78eKKioli4cCFjx44lMzOz1KXDs9X0//7f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ZVHLl4iIXPJ8LD5YLVaKzeKzL3wKh+ka/8vHcm6XKi/E9u3biY+PL3Nely5dSExMZOHChSxdupRbb72Vvn378umnn55xm4GBgaWmDRo0iNjYWN566y0aNGiA0+mkXbt27g7w/v5V18JXVj3lWblyJYMGDeKll17irrvuOuOyAwYMYP/+/XzzzTcsWbKE6667jnHjxvGf//yH7OxsunbtWuYdkxUJghWhli8REbnk+Vn9iAmOIb0gvULrpRWkERMcg5+17M7hlWXZsmVs3ry51CXBU4WEhDB8+HDeeust5s6dy7x580hNTQXAx8cHh8Nx1v2cOHGC3377jb///e9cd911tG7dmrS0NI9lOnToQEJCgnvbp/P19S21r9atW3v0QwPYtm0b6enptGnT5qx1nW7FihUMHDiQZ599lvvuu++c1omKimLUqFG8//77vPzyy7z55puAK7ju2rWLunXr0qxZM49XaGhoucd0IRS+RETkkmcYBl3qdcE0TYoc53YJsdBRCCZ0rde1UjvbFxQUcOTIEQ4dOsSGDRt45plnGDx4MDfddFO5LTwvvvgiH374ITt27GDnzp188sknREdHExYWBrj6OH333XccOXKkVJg6VXh4OJGRkbz55pvs3r2bZcuWMWnSJI9lRowYQXR0NEOGDGH16tXs3buXefPm8dNPP7n3lZiYSEJCAsePH6egoIC+ffvSvn17Ro4cyYYNG1izZg133XUXvXv3dvfDOlfLly9n4MCBTJgwgWHDhnHkyBGOHDlSbhgEePzxx5k/fz67d+9m69atLFiwwN1Bf+TIkdSpU4fBgwfzww8/kJiYyIoVK5gwYQIHDx50H9OmTZv47bffOH78OEVFF3aZWeFLREQEaBXRipjgGPZn7cc0zTMua5omB7IOEBMcQ8uIlpVax6JFi6hfvz5xcXH079+f5cuXM23aNObPn1/uHYDBwcE899xzdOvWjcsuu4x9+/bxzTffYLG4PuZfeOEFlixZQkxMDJ07dy533xaLhY8++oj169fTrl07Jk6cyPPPP++xjK+vL99++y1169blxhtvpH379kydOtVd27Bhw+jfvz/XXHMNUVFRfPjhhxiGwfz58wkPD6dXr1707duXJk2aMHfu3Aqfn3fffZfc3FymTJlC/fr13a8//OEP5a7j6+vL5MmT6dChA7169cJqtfLRRx8BEBAQwPfff0/jxo35wx/+QOvWrRk7diz5+fmEhIQAcO+999KyZUu6detGVFQUq1evrnDdpzLMs73DKllmZiahoaFkZGS4D0pERKSiyvs8yc/PJzEx8YxjRZWnZIT743nHaRzc2DWcxGkKHYUcyDpAHf863Nn6TmJCYsrYklxqKvK+U4d7ERGR3zUOacwdre9wP9sRwzWchNWw4jAdpBWkgQmNgxszrPkwBS85LwpfIiIip2gc0pgHOj3Ab6m/sf7oepKykihyFGG1WGkX2Y6u9brSMqIldmvlPdpHLi0KXyIiIqexW+10iOpA+zrtyXfkU+Qswsfig5/Vr0pHspdLg8KXiIhIOQzDwN/mjz9VO3q9XFp0t6OIiNRKXr6fTC5xFXm/KXyJiEit4uPjGm0+Nze3miuRS0nJ+63k/XcmuuwoIiK1itVqJSwsjJSUFMA1jpP6aUlVMU2T3NxcUlJSCAsLK3cstlMpfImISK0THR0N4A5gIlUtLCzM/b47G4UvERGpdQzDoH79+tStW/eCHwUjcjY+Pj7n1OJVQuFLRERqLavVWqEPRRFvUId7ERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIlt1F3AxySkoJrugGAMI8rMR4KvTIyKXoKJ8yE8H0wTfALCHgGFUd1UitcYlny5SsvLZlJTBlsMZHM3Mp7DYCYCvzUK9ED/aNwylQ6MwooLt1VypiEgVykuDw7+6XhkHXQEME6y+EFgH6rWHRl0hNEZBTOQCGaZpmt7cYWZmJqGhoWRkZBASEuLNXXvIL3KwfEcKK3ceIzWnkABfK0F2G3YfKwAFRQ6yC4rJK3IQHuDLNS2j6N2yLn6/zxcRqRUcxbDve9jxNWQdBZvd1dLl4w8Y4CiAgmwozHJNj7saWt8EfqHVXflF83kiUlGXZMvXiewC5vxygC2H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abpau7KSXcu3GQyt/w9sZ/7iKiJlu+QuO54qKTWXZTtS2Ho4g8z8YgzAx2rBxKS42MQEQvxttGsYyrWt6tIoPKBa6xURqRLZx2DXt5C0xnUHI7jGAjMMcBQBpmt4iqjW0OIGqNu6WsstcTF9nohUxCUdvkocycgn8XgORzLySM0pBAMiA+3UC/GjSVQg9UI0pISIXAJyU+HYb64WruyjrtHw/cIgpAGEx7leF1HL/8X4eSJyLi65y45liQ71IzpUAUtELnEBERDbvbqrEKn1LrkO9yIiIiLVSeFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts1V2A1A6maZKeW8Sx7ALyCh1YDIOwAB+igu34+Viruzy5VDiKIPso5BwH0wFWOwTVg4BIsOi7pohcHBS+5ILkFTrYdDCdNYmpJKXlklPgwGE6AQM/m4UQPx86xITSpXE48XUCMQyjukuW2ijjICSthaRfIC8NinJd0w0L+AZBcDTEXQUNu4JfaPXWKiKXPMM0TdObO8zMzCQ0NJSMjAxCQkK8uWupZLtTsvgy4TC7UrKxWQ0iAnwJtNvwsVowTZO8IgdZ+cWk5RYRZLdydfMorm9TjyC7Mr9UkuIC2L0UflsEeangFw7+oeAT4ApezmIozIbcVCjOg7A4aDcUGnQB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PoIuseH4nG04AJGKcjoh+VfYt9p1KbIgm5MDpxqu1i3/MGh0OcRdBeFx1VerVCp9nkhNpfAllSKnoJjD6XmkZBWQV+jAYoFQf1/qhdhpEOqv/l1S9UouK2YlQ84JMB2uAVmD6rnGBtNgqrWOPk+kpqryZzvKpSHQbqN5vWCa1ws++8IiVcEwIKSB6yUichHTNSARERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEiW3UXILVDVn4RB9PyOJZVQF6RA4thEBbgQ71gPxqG+2O1GNVdotR2pgmZhyAzGXKPg9MBNjsE1YXQGAiIqO4KRUQAhS+5QEcy8vlp7wnW708lLacQh+mabgAm4O9joXFEIFc0iaBbbAS+NjW2SiVzOuDQBtj3AxzfCYU5nvMNA/zCoGFXiLsaIptWS5kiIiUUvuS8OJ0mP+45wcItyRzLKiAi0Je4yEBs1pPhyjRNcgsdJB7PYVdKFglJ6Qzu1JCGYf7VWLnUKjknYMuncOBn189B9SC0sStwlXA6IC8Vdi+BpDXQsj807wc23+qpWUQueQpfUmEOp8mCTYdZsu0ofjYrraKDMYzSlxUNwyDQbiPebiO/yMGmpAyOZRVwV/c44usEVkPlUqtkHYFf3oRjOyA8DuzBZS9nsUJgFATUgeyj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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=11\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB270lEQVR4nO3dd3hUZf7+8feZmWTSKwmhhCT03i2gFBUFBb7AoiKiArZVYVFYd5X97eqqu4K6lsWC6CqIiqKioiggSBMsNENHWoBQA6T3ZOb8/hgzMCQBAsmEhPt1XXNBTv2cw5C55znPeY5hmqaJiIiIiHiFpboLEBEREbmUKHyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJ1/zzn//EMAyPafHx8YwaNcqrdcyYMQPDMNi7d69X9yvnRv8+IlLbKXxVs6SkJMaOHUvz5s0JCAggICCA1q1bM2bMGDZu3Fjd5V2S9u7di2EY5/QqLyDEx8djGAZ9+vQpc/7bb7/t3sbatWur8GjOz9nOweTJk6u7xEvKrFmzeOWVV6q7DBGpJLbqLuBSNm/ePIYNG4bNZmPEiBF06NABi8XC9u3b+fzzz5k6dSpJSUnExcVVd6lV5rfffsNiubi+A0RFRfH+++97THvxxRc5cOAAL7/8cqlly+Pn58fSpUs5cuQIMTExHvM+/PBD/Pz8yM/Pr7zCq8Dw4cO56aabSk3v1KlTle3zzjvv5LbbbsNut1fZPmqaWbNmsXnzZh555JHqLkVEKoHCVzXZvXs3t912G3FxcXz//ffUq1fPY/5zzz3HG2+8cdEFk1Pl5OQQGBh4Qdu4GD9gAwMDueOOOzymffzxx6SlpZWafiZXXXUVa9asYfbs2Tz88MPu6QcOHOCHH35gyJAhzJkzp9LqrgqdO3eu0DFXBqvVitVqPeMypmmSn5+Pv7+/l6oSEak8F+8ney33/PPPk5OTw/Tp00sFLwCbzca4ceOIjY31mL59+3ZuvvlmIiIi8PPzo2vXrnz11Vcey5T0mVm1ahUTJkwgKiqKwMBAhgwZwrFjx0rta/78+fTo0YPAwECCg4Pp378/W7Zs8Vhm1KhRBAUFsXv3bm666SaCg4MZMWIEAD/88AO33HILjRo1wm63Exsby/jx48nLyzvreTi9z9e5XuI7l/MAsGXLFq699lr8/f1p2LAh//rXv3A6nWetqzL4+fnxhz/8gVmzZnlM/+ijjwgPD6dv376l1tm4cSOjRo2icePG+Pn5ERMTw913382JEyfcy5ztkuCpfvnlF/r160doaCgBAQH06tWLVatWVepxxsfHM2DAAFauXMnll1+On58fjRs3ZubMme5l1q5di2EYvPfee6XWX7hwIYZhMG/ePKDsPl8l+1i4cCFdu3bF39+fadOmAbBnzx5uueUWIiIiCAgI4Morr+Sbb77x2MeyZcswDINPPvmEf//73zRs2BA/Pz+uu+46du3a5bFs7969adu2LRs3bqRXr14EBATQtGlTPvvsMwCWL1/OFVdcgb+/Py1atGDx4sWljungwYPcfffd1K1bF7vdTps2bXj33XfPq6bevXvzzTffsG/fPve/cXx8/Dn8y4jIxUotX9Vk3rx5NG3alCuuuOKc19myZQtXXXUVDRo04PHHHycwMJBPPvmEwYMHM2fOHIYMGeKx/J/+9CfCw8N58skn2bt3L6+88gpjx45l9uzZ7mXef/99Ro4cSd++fXnuuefIzc1l6tSpXH311fz6668ev+SLi4vp27cvV199Nf/5z38ICAgA4NNPPyU3N5cHH3yQyMhIVq9ezauvvsqBAwf49NNPK3ReTr/cB/D3v/+dlJQUgoKCKnQejhw5wjXXXENxcbF7ubfeesurrSW33347N9xwA7t376ZJkyaA6xLSzTffjI+PT6nlFy1axJ49exg9ejQxMTFs2bKFt956iy1btvDzzz9jGEaZl0WLiooYP348vr6+7mlLlizhxhtvpEuXLjz55JNYLBamT5/Otddeyw8//MDll19+1vpzc3M5fvx4qelhYWHYbCd/fezatYubb76Ze+65h5EjR/Luu+8yatQounTpQps2bejatSuNGzfmk08+YeTIkR7bmj17drlh9FS//fYbw4cP549//CP33XcfLVq04OjRo3Tv3p3c3FzGjRtHZGQk7733Hv/3f//HZ599Vur/xOTJk7FYLDz66KNkZGTw/PPPM2LECH755ReP5dLS0hgwYAC33XYbt9xyC1OnTuW2227jww8/5JFHHuGBBx7g9ttv54UXXuDmm28mOTmZ4OBgAI4ePcqVV16JYRiMHTuWqKgo5s+fzz333ENmZmapS4dnq+n//b//R0ZGhsdl75L/CyJSQ5nidRkZGSZgDh48uNS8tLQ089ixY+5Xbm6ue951111ntmvXzszPz3dPczqdZvfu3c1mzZq5p02fPt0EzD59+phOp9M9ffz48abVajXT09NN0zTNrKwsMywszLzvvvs8ajhy5IgZGhrqMX3kyJEmYD7++OOlaj61xhKTJk0yDcMw9+3b55725JNPmqe/5eLi4syRI0eWWr/E888/bwLmzJkzK3weHnnkERMwf/nlF/e0lJQUMzQ01ATMpKSkcvd7uv79+5txcXHnvHxcXJzZv39/s7i42IyJiTGfeeYZ0zRNc+vWrSZgLl++3P3vtGbNGvd6ZZ3Ljz76yATMFStWlLu/hx56yLRareaSJUtM03Sdj2bNmpl9+/b1eA/k5uaaCQkJ5vXXX3/G+pOSkkyg3NdPP/3kcayn15eSkmLa7Xbzz3/+s3vaxIkTTR8fHzM1NdU9raCgwAwLCzPvvvtu97SS83Lqv0/JPhYsWOBRZ8m/8Q8//OCelpWVZSYkJJjx8fGmw+EwTdM0ly5dagJmq1atzIKCAvey//3vf03A3LRpk3tar169TMCcNWuWe9r27dtNwLRYLObPP//snr5w4UITMKdPn+6eds8995j16tUzjx8/7lHrbbfdZoaGhrr/jStSU0XffyJycdNlx2qQmZkJlP3ttXfv3kRFRblfr7/+OgCpqaksWbKEW2+9laysLI4fP87x48c5ceIEffv2ZefOnRw8eNBjW/fff7/HZagePXrgcDjYt28f4GplSU9PZ/jw4e7tHT9+HKvVyhVXXMHSpUtL1ffggw+WmnZqS1JOTg7Hjx+ne/fumKbJr7/+eh5nyGXp0qVMnDiRP/3pT9x5550VPg/ffvstV155pUcLT1RUlPtyqTdYrVZuvfVWPvroI8DV0T42NpYePXqUufyp5zI/P5/jx49z5ZVXArB+/foy15k5cyZvvPEGzz//PNdccw0AiYmJ7Ny5k9tvv50TJ064z1NOTg7XXXcdK1asOKfLr/fffz+LFi0q9WrdurXHcq1bt/Y4pqioKFq0aMGePXvc04YNG0ZRURGff/65e9p3331Heno6w4YNO2stCQkJpVrHvv32Wy6//HKuvvpq97SgoCDuv/9+9u7dy9atWz2WHz16tEfrYEnNp9ZZso3bbrvN/XOLFi0ICwujVatWHq3VJX8vWd80TebMmcPAgQMxTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAMOGDeOqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrv99tuZMmUKGzZsYNasWdx2222l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMDw4cOZMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz+aee+4BXJcc69SpU+578FQJCQmlppX3b9yqVSv3/LZt25Zb5+n/J0o0bNiw1L9RaGhoqT6YoaGhHusfO3aM9PR03nrrLd56660yj+P0f9dzrUlEag+Fr2oQGhpKvXr12Lx5c6l5JR8kp48fVdJK8eijj5bbN6Zp06YeP5d3x5hpmh7bfP/990sNhQB49OkB152Jp9996XA4uP7660lNTeWxxx6jZcuWBAYGcvDgQUaNGnVendsLCwu5+eabsdvtfPLJJx51nM95qCoPP/ywRwfyXr16sWzZslLLXXHFFTRp0oRHHnmEpKQkbr/99nK3eeutt/Ljjz/yl7/8hY4dOxIUFITT6aRfv36lzmVaWhpDhw6lefPm/O9///OYV7LsCy+8QMeOHcvcV2X2Gzrbe63EsGHD+Pe//83x48cJDg7mq6++Yvjw4aXea2WpjL5651pnecud6/+pO+64o9zg2759+/OqSURqD4WvatK/f3/+97//sXr16nPq+Ny4cWMAfHx8zqkl4lyUdACPjo4+721u2rSJHTt28N5773HXXXe5py9atOi86xo3bhyJiYmsWLGCunXresyryHmIi4tztwCd6rfffjvv2k7117/+1aN18kytSMOHD+df//oXrVq1KjcMpaWl8f333/PUU0/xxBNPuKeXdQxOp5MRI0aQnp7O4sWL3Tc/lCj5tw0JCam090tlGDZsGE899RRz5syhbt26ZGZmelzeq6i4uLgy/z23b9/unu9NUVFRBAcH43A4KvW8l9dSKiI1k/p8VZO//vWvBAQEcPfdd3P06NFS80//1hsdHU3v3r2ZNm0ahw8fLrV8WUNInE3fvn0JCQnh2Wefpaio6Ly2WfKt/dR6TdPkv//9b4XrAZg+fTrTpk3j9ddfLzOUVuQ83HTTTfz888+sXr3aY/6HH354XrWdrnXr1vTp08f96tKlS7nL3nvvvTz55JO8+OKL5S5T1rkEyhzZ/KmnnmLhwoV89NFHZV6O69KlC02aNOE///lPmZe3z+f9UhlatWpFu3btmD17NrNnz6ZevXr07NnzvLd30003sXr1an766Sf3tJycHN566y3i4+NL9U2ralarlaFDhzJnzpwyW7bP97wHBgae9yV8Ebn4qOWrmjRr1oxZs2YxfPhwWrRo4R7h3jRNkpKSmDVrFhaLxaOP1euvv87VV19Nu3btuO+++2jcuDFHjx7lp59+4sCBA2zYsKFCNYSEhDB16lTuvPNOOnfuzG233UZUVBT79+/nm2++4aqrruK111474zZatmxJkyZNePTRRzl48CAhISHMmTPnvPqrHD9+nIceeojWrVtjt9v54IMPPOYPGTKEwMDAcz4Pf/3rX3n//ffp168fDz/8sHuoibi4OK8/uikuLo5//vOfZ1wmJCSEnj178vzzz1NUVESDBg347rvvSEpK8lhu06ZNPPPMM/Ts2ZOUlJRS5+mOO+7AYrHwv//9jxtvvJE2bdowevRoGjRowMGDB1m6dCkhISF8/fXXZ617/fr1pbYPrpa1bt26nf3AyzBs2DCeeOIJ/Pz8uOeeey5oIOHHH3+cjz76iBtvvJFx48YRERHBe++9R1JSEnPmzKmWQYonT57M0qVLueKKK7jvvvto3bo1qamprF+/nsWLF5OamlrhbXbp0oXZs2czYcIELrvsMoKCghg4cGAVVC8i3qDwVY0GDRrEpk2bePHFF/nuu+949913MQyDuLg4+vfvzwMPPECHDh3cy7du3Zq1a9fy1FNPMWPGDE6cOEF0dDSdOnXyuExVEbfffjv169dn8uTJvPDCCxQUFNCgQQN69OjB6NGjz7q+j48PX3/9NePGjWPSpEn4+fkxZMgQxo4d61H7ucjOziY/P5+tW7e67248VVJSEoGBged8HurVq8fSpUv505/+xOTJk4mMjOSBBx6gfv367g7fF5tZs2bxpz/9iddffx3TNLnhhhuYP38+9evXdy9z4sQJTNNk+fLlLF++vNQ2Si6F9u7dm59++olnnnmG1157jezsbGJiYrjiiiv44x//eE71fPTRR+47NU81cuTICwpff//738nNzT2nuxzPpG7duvz444889thjvPrqq+Tn59O+fXu+/vpr+vfvf0HbvpCaVq9ezdNPP83nn3/OG2+8QWRkJG3atOG55547r20+9NBDJCYmMn36dF5++WXi4uIUvkRqMMNUr04RERERr1GfLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKvj/PldDo5dOgQwcHBemSGiIicN9M0ycrKon79+tUyoK7I+fJ6+Dp06BCxsbHe3q2IiNRSycnJHk8DEbnYeT18BQcHA67/LCEhId7evYiI1BKZmZnExsa6P1dEagqvh6+SS40hISEKXyIicsHUhUVqGl0kFxEREfEihS8RERERL1L4EhEREfEir/f5EhER8RaHw0FRUVF1lyG1nI+PD1ar9ZyXV/gSEZFaxzRNjhw5Qnp6enWXIpeIsLAwYmJizukGEIUvERGpdUqCV3R0NAEBAbojUqqMaZrk5uaSkpICQL169c66jsKXiIjUKg6Hwx28IiMjq7scuQT4+/sDkJKSQnR09FkvQarDvYiI1ColfbwCAgKquRK5lJS8386lj6HCl4iI1Eq61CjeVJH3m8KXiIiIiBcpfImIiIh4kcKXiIjIaQoLCy9o/oU6cuQIf/rTn2jcuDF2u53Y2FgGDhzI999/X6X7Fe9Q+BIRETnF7NmzadeuHcnJyWXOT05Opl27dsyePbtK9r937166dOnCkiVLeOGFF9i0aRMLFizgmmuuYcyYMVWyT/EuhS8REZHfFRYW8sQTT7Bjxw569+5dKoAlJyfTu3dvduzYwRNPPFElLWAPPfQQhmGwevVqhg4dSvPmzWnTpg0TJkzg559/Zu/evRiGQWJionud9PR0DMNg2bJl7mmbN2/mxhtvJCgoiLp163LnnXdy/PjxSq9XKk7hS0RE5He+vr4sXryYxo0bs2fPHo8AVhK89uzZQ+PGjVm8eDG+vr6Vuv/U1FQWLFjAmDFjCAwMLDU/LCzsnLaTnp7OtddeS6dOnVi7di0LFizg6NGj3HrrrZVar5wfhS8REZFTxMbGsmzZMo8A9uOPP3oEr2XLlhEbG1vp+961axemadKyZcsL2s5rr71Gp06dePbZZ2nZsiWdOnXi3XffZenSpezYsaOSqpXzpRHuRURETlMSwEoC11VXXQVQpcELXI+qqQwbNmxg6dKlBAUFlZq3e/dumjdvXin7kfOj8CUiIlKG2NhY3n//fXfwAnj//ferLHgBNGvWDMMw2L59e7nLWCyui1anBrXTR1XPzs5m4MCBPPfcc6XWP5dnD0rV0mVHERGRMiQnJ3PnnXd6TLvzzjvLvQuyMkRERNC3b19ef/11cnJySs1PT08nKioKgMOHD7unn9r5HqBz585s2bKF+Ph4mjZt6vEqqy+ZeJfCl4iIyGlO71y/atWqMjvhV4XXX38dh8PB5Zdfzpw5c9i5cyfbtm1jypQpdOvWDX9/f6688komT57Mtm3bWL58OX//+989tjFmzBhSU1MZPnw4a9asYffu3SxcuJDRo0fjcDiqrHY5NwpfIiIipzg9eC1btozu3buX6oRfVQGscePGrF+/nmuuuYY///nPtG3bluuvv57vv/+eqVOnAvDuu+9SXFxMly5deOSRR/jXv/7lsY369euzatUqHA4HN9xwA+3ateORRx4hLCzMfdlSqo9hVlbvvnOUmZlJaGgoGRkZhISEeHPXIiJSi5T3eZKfn09SUhIJCQn4+flVaJuFhYW0a9eOHTt2lNm5/tRg1rx5czZt2lTpw01IzVSR953ir4iIyO98fX15+umnad68eZl3NZbcBdm8eXOefvppBS85L7rbUURE5BTDhg1jyJAh5Qar2NhYtXjJBVHLl4iIyGnOFqwUvORCKHyJiIiIeJHCl4iIiIgXqc+XXDDTNDmYfZCD2QdJyU0huzAbq8VKpH8k0f7RNA5rTKCPBvWTqpVfnE9SRhIpuSkcyztGkaMIfx9/ogOiqRdYj7iQOCyGvm+KSPVT+JLzZpomO9N3surgKnal7SKnOAcDA5vFhmmaOEwHhmFQx78OXep2oXv97gT7Bld32VLL5Bfn8/Phn1lzZA1Hco7gMB1YDSsWw4LDdGCaJnarnfjQeLrV70a7Ou0UwkSkWil8yXkpcBSweO9iVh1aRb4jn7oBdakfVB/DMDyWK3YWcyL/BN/u+ZYtx7fQv3F/WkS0qKaqpbZJzkrm691fsyNtB0E+QTQKboSP1afUcrlFuexO382e9D10jenKTQk3EeRb+oHDIiLeoK9/UmEFjgLm7JjDov2LCPQJpGlYU4J9g0sFLwCbxUbdgLo0CWvC4ZzDzNo2i83HN1dD1VLb7M3YywdbP2Bn2k7iQ+KpH1S/zOAFEOATQEJoApH+kaw6tIqPtn9EVmGWlysWEXFR+JIKMU2T7/d9z+ojq2kY1JBwv/BzWs9msREfEk+Bo4Avdn7BoexDVVyp1GYZBRl8tvMzjucdp0lYE3yt53bbf7BvMPEh8Ww+vpmvd3+N03RWcaUiF4dly5ZhGAbp6elnXC4+Pp5XXnnFKzVdyhS+pEJ2p+9m1aFV1PGvQ4BPQJnLWPML8T+RiTW/0GO6YRjEBseSmp/K/KT5FDmLvFGy1DKmabJ432KSM5OJD4kvs/9WYb6VzBP+FOZbS82zW+00CG7Arym/kpiS6IWKpcbLy4OjR11/VrFRo0ZhGAaGYeDr60vTpk15+umnKS4uvqDtdu/encOHDxMaGgrAjBkzCAsLK7XcmjVruP/++y9oX3J2F9Tna/LkyUycOJGHH35YSfkSYJomPx3+idyiXBoENSg1P+bXXXT4YAkJyzZicZo4LQZJvduz4c7rONKxCeAKYA2DG7ItdRu703fTMqKltw9DarjDOYf5NeVX6gbWxWrxDFe7fo1hyQcd2LgsAdNpwbA4ad87ievu3ECTjkfcywX5BHHCOMEPB3+gXVQ7fCxlX66US9zKlfDSSzB3LjidYLHAoEHw5z/DVVdV2W779evH9OnTKSgo4Ntvv2XMmDH4+PgwceLE896mr68vMTExZ10uKirqvPch5+68W77WrFnDtGnTaN++fWXWIxexo7lH+S31N6IDokvNa/PJCobc8zIJyzdhcbqe1W5xmiQs38SQu1+izac/uJf1t/njNJ1qdZDzsvn4ZrKKsgj1DfWYvuKTNrx8zxA2LXcFLwDTaWHT8gReunsIP3zaxmP5ugF1OZB1gD3pe7xWu9QgU6dCz57w9deu4AWuP7/+Gnr0gDffrLJd2+12YmJiiIuL48EHH6RPnz589dVXpKWlcddddxEeHk5AQAA33ngjO3fudK+3b98+Bg4cSHh4OIGBgbRp04Zvv/0W8LzsuGzZMkaPHk1GRoa7le2f//wn4HnZ8fbbb2fYsGEetRUVFVGnTh1mzpz5+ylxMmnSJBISEvD396dDhw589tlnVXZuaovzCl/Z2dmMGDGCt99+m/Dwc+vzIzXfoexD5BTlEOIb4jE95tdd9Jw8G8MEi8OzD43F4cQwoeekj4lJ3O2eHuobyp70Pbr0KBW2K30XgbZAjxs8dv0aw+zJPcE0cDo8f605HRYwDT6e1JPdiSe/+fvZ/Ch2FnM457DXapcaYuVKGDMGTBNOv9xXXOya/tBDsGqVV8rx9/ensLCQUaNGsXbtWr766it++uknTNPkpptuoqjI9Xt0zJgxFBQUsGLFCjZt2sRzzz1HUFDpu3q7d+/OK6+8QkhICIcPH+bw4cM8+uijpZYbMWIEX3/9NdnZ2e5pCxcuJDc3lyFDhgAwadIkZs6cyZtvvsmWLVsYP348d9xxB8uXL6+is1E7nFf4GjNmDP3796dPnz6VXY9cxI7lHQModVdjhw+WYFrO/FYyLRY6fLDE/XOATwDZRdmcyDtR+YVKrZVblMvxvOOl+hsu+aADFot5xnUtFpMlH3TwmGaz2DiYfbDS65Qa7qWXwFq6v6AHqxVefrlKyzBNk8WLF7Nw4UIaNWrEV199xf/+9z969OhBhw4d+PDDDzl48CBffvklAPv37+eqq66iXbt2NG7cmAEDBtCzZ89S2/X19SU0NBTDMIiJiSEmJqbMkNa3b18CAwP54osv3NNmzZrF//3f/xEcHExBQQHPPvss7777Ln379qVx48aMGjWKO+64g2nTplXZeakNKtzn6+OPP2b9+vWsWbPmnJYvKCigoKDA/XNmZmZFdykXibzivFLBy5pf6O7jdSYWh5OEpRuw5hfi8PPFx+JDsbOYAkfBGdcTOVWho5BiZ7HHExMK863uPl5n4nRY2LA0gcJ8K75+DgB8LD5kF2afcT25xOTlnezjdSbFxfDFF67l/f0rtYR58+YRFBREUVERTqeT22+/nT/84Q/MmzePK664wr1cZGQkLVq0YNu2bQCMGzeOBx98kO+++44+ffowdOjQC+oaZLPZuPXWW/nwww+58847ycnJYe7cuXz88ccA7Nq1i9zcXK6//nqP9QoLC+nUqdN57/dSUKGWr+TkZB5++GE+/PBD/Pz8zmmdSZMmERoa6n7FxsaeV6FS/ayGFU7LWL45+WcNXiUsThPfnHzA9Y3OMAyNNC4VYhgGBobHEBH5Ob5nDV4lTKeF/JyTw1I4TSc2i8aallNkZp49eJVwOl3LV7JrrrmGxMREdu7cSV5eHu+9916Z4yie7t5772XPnj3ceeedbNq0ia5du/Lqq69eUC0jRozg+++/JyUlhS+//BJ/f3/69esH4L4c+c0335CYmOh+bd26Vf2+zqJCn3zr1q0jJSWFzp07Y7PZsNlsLF++nClTpmCz2XA4HKXWmThxIhkZGe5XcnJypRUv3hXuF455WvoqDPTDaTn7LwUAp8WgMNAV2nOLc/G3+RNmD6vsMqUWC/YNJtAnkLzik7f8+wUWYljO7cPSsDjxCzw5BEqBo4CYwLPfASaXkJAQ112N58JicS1fyQIDA2natCmNGjXCZnN9OWjVqhXFxcX88ssv7uVOnDjBb7/9RuvWrd3TYmNjeeCBB/j888/585//zNtvv13mPnx9fcv8zD5d9+7diY2NZfbs2Xz44Yfccsst+Pi47g5u3bo1drud/fv307RpU4+XGlrOrEJf+a677jo2bdrkMW306NG0bNmSxx57DGsZ18jtdjt2u/3CqpSLQpR/FFbDSqGj0D2opcPPl6Te7V13OTrK/wB0Wi0k9W6Pw8+1XnZRNg2CGhDko0e8yLmzGBYahTRi9ZHV7mm+fg7a905i0/KEUp3tPda1uoadKLnkWNJ6Vtbdu3IJ8/d3DSfx9delO9ufymZzLVfJlxzL06xZMwYNGsR9993HtGnTCA4O5vHHH6dBgwYMGjQIgEceeYQbb7yR5s2bk5aWxtKlS2nVqlWZ24uPjyc7O5vvv/+eDh06EBAQQEBA2WM33n777bz55pvs2LGDpUuXuqcHBwfz6KOPMn78eJxOJ1dffTUZGRmsWrWKkJAQRo4cWfknopaoUMtXcHAwbdu29XgFBgYSGRlJ27Ztq6pGuUjEh8YTExjj7nhfYsMd12KcpZnecDrZcMe1gOtDL684jw5RHc6pKV3kVK0jW2NgUOg42YJ17R0bcDrP/F5yOg2uvWOD++e0/DTC7GE0C2tWZbVKDTVhApytVcjhgPHjvVPP76ZPn06XLl0YMGAA3bp1wzRNvv32W3dLlMPhYMyYMbRq1Yp+/frRvHlz3njjjTK31b17dx544AGGDRtGVFQUzz//fLn7HTFiBFu3bqVBgwZcddr4Zs888wz/+Mc/mDRpknu/33zzDQkJCZV34LWQYZrmuXXYKUfv3r3p2LHjOQ+ympmZSWhoKBkZGYRUQXOtVK0VB1bw+c7PiQ+J93ikS5tPf6DnpI8xLRaPFjCn1YLhdLJi4m1suaUH4Bqyws/mx5iOY8758UQiJQocBbyR+AaHsw8THxrvnv7Dp234eFJPLBbTowXMYnXidBrcNnEFPW7ZAoDDdLArbRfXNLqGwU0He/kIpLKU93mSn59PUlISCQkJ59w/uZQ333QNJ2G1eraA2Wyu4PXGG/DAAxd4BFKbVOR9d8E9TZctW3ahm5Aa5LKYy9h8fDO70nbRJKyJu+Vqyy09ONGsvmuE+6UbPEe4v+Na9wj3OUU55Bbn0r9xfwUvOS92q50b4m/g/S3vk5af5n4f9bhlC/WbnWDJBx3YsNRzhPtr7zg5wr1pmiRnJdMgqAG9G/auxiORi9oDD0C7dq7hJL74wnOE+/Hjq3SEe6n9dJuPVIi/zZ8BjQfw/tb3ScpM8ni23pGOTTjSsQnW/EJ8c/IpDPRz9/ECV/A6mH2QK+tdyWUxl1XXIUgt0DqiNT0b9mTRvkUYhuG+caNJxyM06XiEwnwr+Tm++AUWuvt4gSt4Hcg+gN1qp3+T/oT5hVXPAUjNcNVVrldenuuuxpAQr/XxktpN9/lLhTUKacRtLW8jyj+KXem7yCrM8pjv8PMlLzLEHbwcpoND2Yc4knOEbvW6MbjpYN3eLxfEMAxuiL+BPo36kFGQwb7MfRQ7T14a8vVzEBKZ5xG88orz2JW+C3+bPzc3v5k2kW3K2rRIaf7+ULeugpdUGn0CynlpEtaEe9vdy8K9C9l0bBOHcw67hgGwBeJj9cE0TfKK88guyqbAUUB0QDQDmwykS90uCl5SKWwWGzc1vonYkFi+2/cdezP3YjWsBPsG42/zx2JYKHYWk1uUS2ZhJjaLjbZ12nJjwo3UD6pf3eWLyCVMn4Jy3iL9I7mt5W10q9+Njcc2siNtB1mFWRQVFmFg4Gfzo3FoY9pFtaNNZBtC7aFn36hIBRiGQfuo9jQNa8q21G1sPLaRg1kHSc9Px4kTm2EjyDeItlFtaV+nPU3Cmij8i0i1028huSAWw0JCaAIJoQk4TSfpBekUFBdgGAah9lD8bWqml6oX4BNAl7pd6FK3CwWOAlf4Mp34WH0It4djtZzlOX0iIl6k8CWVxmJYiPCLqO4y5BJnt9qpG1i3ussQESmXOtyLiIiIeJHCl4iIiIgXKXyJiIjIOYuPjz/np9pI2RS+REREziAvD44edf1Z1UaNGoVhGEyePNlj+pdffun1Z+HOmDGDsLCwUtPXrFnD/fff79VaahuFLxERkTKsXAl/+AMEBUFMjOvPP/wBVq2q2v36+fnx3HPPkZaWVrU7Ok9RUVEEBARUdxk1msKXiIjIaaZOhZ494euvXY91BNefX38NPXq4nrtdVfr06UNMTAyTJk0qd5mVK1fSo0cP/P39iY2NZdy4ceTk5LjnHz58mP79++Pv709CQgKzZs0qdbnwpZdeol27dgQGBhIbG8tDDz1EdnY24Hpu8+jRo8nIyMAwDAzD4J///Cfgednx9ttvZ9iwYR61FRUVUadOHWbOnAmA0+lk0qRJJCQk4O/vT4cOHfjss88q4UzVXApfIiIip1i5EsaMAdOE4mLPecXFrukPPVR1LWBWq5Vnn32WV199lQMHDpSav3v3bvr168fQoUPZuHEjs2fPZuXKlYwdO9a9zF133cWhQ4dYtmwZc+bM4a233iIlJcVjOxaLhSlTprBlyxbee+89lixZwl//+lcAunfvziuvvEJISAiHDx/m8OHDPProo6VqGTFiBF9//bU7tAEsXLiQ3NxchgwZAsCkSZOYOXMmb775Jlu2bGH8+PHccccdLF++vFLOV41kellGRoYJmBkZGd7etYiI1CLlfZ7k5eWZW7duNfPy8s5ru0OGmKbNZpqumFX2y2YzzaFDK+MoPI0cOdIcNGiQaZqmeeWVV5p33323aZqm+cUXX5glH9n33HOPef/993us98MPP5gWi8XMy8szt23bZgLmmjVr3PN37txpAubLL79c7r4//fRTMzIy0v3z9OnTzdDQ0FLLxcXFubdTVFRk1qlTx5w5c6Z7/vDhw81hw4aZpmma+fn5ZkBAgPnjjz96bOOee+4xhw8ffuaTUcNU5H2nQVZFRER+l5cHc+eevNRYnuJi+OIL1/JV9bzt5557jmuvvbZUi9OGDRvYuHEjH374oXuaaZo4nU6SkpLYsWMHNpuNzp07u+c3bdqU8PBwj+0sXryYSZMmsX37djIzMykuLiY/P5/c3Nxz7tNls9m49dZb+fDDD7nzzjvJyclh7ty5fPzxxwDs2rWL3Nxcrr/+eo/1CgsL6dSpU4XOR22i8CUiIvK7zMyzB68STqdr+aoKXz179qRv375MnDiRUaNGuadnZ2fzxz/+kXHjxpVap1GjRuzYseOs2967dy8DBgzgwQcf5N///jcRERGsXLmSe+65h8LCwgp1qB8xYgS9evUiJSWFRYsW4e/vT79+/dy1AnzzzTc0aNDAYz273X7O+6htFL5ERER+FxICFsu5BTCLxbV8VZo8eTIdO3akRYsW7mmdO3dm69atNG3atMx1WrRoQXFxMb/++itdunQBXC1Qp949uW7dOpxOJy+++CIWi6v79yeffOKxHV9fXxwOx1lr7N69O7GxscyePZv58+dzyy234OPjA0Dr1q2x2+3s37+fXr16VezgazGFLxERkd/5+8OgQa67Gk/vbH8qm821XFW1epVo164dI0aMYMqUKe5pjz32GFdeeSVjx47l3nvvJTAwkK1bt7Jo0SJee+01WrZsSZ8+fbj//vuZOnUqPj4+/PnPf8bf3989VljTpk0pKiri1VdfZeDAgaxatYo3T7uFMz4+nuzsbL7//ns6dOhAQEBAuS1it99+O2+++SY7duxg6dKl7unBwcE8+uijjB8/HqfTydVXX01GRgarVq0iJCSEkSNHVsFZu/jpbkcREZFTTJgAZ2vwcThg/Hjv1PP000/jPKUprn379ixfvpwdO3bQo0cPOnXqxBNPPEH9+vXdy8ycOZO6devSs2dPhgwZwn333UdwcDB+fn4AdOjQgZdeeonnnnuOtm3b8uGHH5Ya2qJ79+488MADDBs2jKioKJ5//vlyaxwxYgRbt26lQYMGXHXVVR7znnnmGf7xj38wadIkWrVqRb9+/fjmm29ISEiojNNTIxmmaZre3GFmZiahoaFkZGQQUtXttSIiUmuV93mSn59PUlISCQkJ7rBRUW++6RpOwmr1bAGz2VzB64034IEHLvQIvOfAgQPExsayePFirrvuuuoup1aqyPtOLV8iIiKneeAB+OEH16XF37tEYbG4fv7hh4s/eC1ZsoSvvvqKpKQkfvzxR2677Tbi4+Pp2bNndZcmqM+XiIhIma66yvXKy3Pd1RgSUvV9vCpLUVERf/vb39izZw/BwcF0796dDz/80N0RXqqXwpeIiMgZ+PvXnNBVom/fvvTt27e6y5By6LKjiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBfpbkcRERFgX+Y+copyKrxeoE8gcSFxVVCR1FYKXyIicsnbl7mPAV8MOO/15w2ZpwAm50yXHUVE5JJ3Pi1elbn+6X766SesViv9+/ev1O2eq71792IYBomJidWy/9pO4UtEROQi88477/Cn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zz+nYcOGPP300xw+fJjDhw9f0LmtTupwLyIil7z8Iif7TuQQHuBTofXCA3zYdyKH/CIn/r6Vc/fjvHnzCAoKori4mIKCAiwWC6+99hoABQUFPPvssyxevJhu3boB0LhxY1auXMm0adPo1asXvXv35p133sHhcLB582Z8fX0ZNmwYy5Yto1+/fixbtoxevXq593f33Xe7/964cWOmTJnCZZddRnZ2NkFBQe55Tz/9NNdffz0A2dnZvPPOO3zwwQdcd911ALz33ns0bNjwjMe2f/9+/vKXv9CyZUsAmjVr5p43adIkRowYwSOPPOKeN2XKFHr16sXUqVOJiIjAarW6W+hqMrV8iYjIJa/Q4cThNLFZK/axaLUYOJwmhQ5npdVyzTXXkJiYyC+//MLIkSMZPXo0Q4cOBWDXrl3k5uZy/fXXExQU5H7NnDmT3bt3A9CjRw+ysrL49ddfWb58uTuQlbSGLV++nN69e7v3t27dOgYOHEijRo0IDg52B7P9+/d71NW1a1f333fv3k1hYSFXXHGFe1pERAQtWrQ447FNmDCBe++9lz59+jB58mR3zeC6JDljxgyP4+rbty9Op5OkpKSKn8iLmFq+RETkkudrtWC1GBRXMESVjP/lW8HQdiaBgYHuS4LvvvsuHTp04J133uGee+5x99v65ptvaNCggcd6drsdgLCwMDp06MCyZcv46aefuP766+nZsyfDhg1jx44d7Ny50x2wcnJy6Nu3L3379uXDDz8kKiqK/fv307dvXwoLC0vVdaH++c9/cvvtt/PNN98wf/58nnzyST7++GOGDBlCdnY2f/zjHxk3blyp9Ro1anTB+76YqOVLREQueX4+FuIiA0nLLarQemm5RcRFBuLnUzUfpxaLhb/97W/8/e9/Jy8vj9atW2O329m/fz9Nmzb1eMXGxrrX69WrF0uXLmXFihX07t2biIgIWrVqxb///W/q1atH8+bNAdi+fTsnTpxg8uTJ9OjRg5YtW3p0ti9PkyZN8PHx4ZdffnFPS0tLY8eOHWddt3nz5owfP57vvvuOP/zhD0yfPh2Azp07s3Xr1lLH1bRpU3efN19fXxyOyr27tDoofImIyCXPMAwuS4jAxKSw+NxavwqLnZiYXJ4QUaV33t1yyy1YrVZef/11goODefTRRxk/fjzvvfceu3fvZv369bz66qu899577nV6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kCEYhuH+uaSF6n//+5/Hw6AXLFjA1VdfTVhYGJGRkQwYMIDdu3d71HjgwAGGDx9OREQEgYGBdO3alV9++YUZM2bw1FNPsWHDBncLXknN+/fvZ9CgQQQFBRESEsKtt97K0aNH3dssr57T/e1vf+OZZ56he/fuNGnShIcffph+/frx+eefl3tO09LSGDFiBFFRUfj7+9OsWTOmT5/unp+cnMytt95KWFgYERERDBo0iL1797rreu+995g7d677mJYtW3amf8KzUp8vERG55Jmmyfqj612X+8pp8Tqdr9UXDFh3dB3t6rSr0rsgr732Wjp06MDnn3/OvffeW2r+lClT+Oqrr/jkk09o1KgRycnJJCcnA7BmzRqio6OZPn06/fr1w2o9+QSNXbt2MWfOHD7//HP39JycHCZMmED79u3Jzs7miSeeYMiQISQmJmKxWMjOzqZXr140aNCAr776ipiYGNavX4/T6WTYsGFs3ryZBQsWsHjxYgBCQ0NxOp3u4LV8+XKKi4sZM2YMw4YN8wgyZdVzLjIyMmjVqlW58//xj3+wdetW5s+fT506ddi1axd5eXkAFBUV0bdvX7p168YPP/yAzWbjX//6F/369WPjxo08+uijbNu2jczMTHdgi4iIOOfayqLwJSIil7x8Rz7JWcmE2cMqtF64PZzkrGTyHfn42/yrprjftWzZko0bN5Y5b//+/TRr1oyrr74awzCIi4tzz4uKigIgLCyMmJgYj/UKCwuZOXOmexmAoUOHeizz7rvvEhUVxdatW2nbti2zZs3i2LFjrFmzxh1CmjZt6l4+KCgIm83msa9FixaxadMmkpKSiI2NBWDmzJm0adOGNWvWcNlll5Vbz9l88sknrFmzhmnTppW7zP79++nUqRNdu3YFTrYGAsyePRun08n//vc/d4CePn06YWFhLFu2jBtuuAF/f38KCgpKnb/zpcuOIiJyyStyFuFwOrAZFWuTsBpWHE4HRc6iKqrsJNM0y21dGzVqFImJibRo0YJx48bx3XffndM24+LiSgWdnTt3Mnz4cBo3bkxISIg7qOzf77q5IDExkU6dOlWo9Wfbtm3Exsa6gxdA69atCQsLY9u2bWes50yWLl3K6NGjefvtt2nTpk25yz344IN8/PHHdOzYkb/+9a/8+OOP7nkbNmxg165dBAcHExQURFBQEBEREeTn55e6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TLXW0eeJ1FS67CiVItBuo1ndYJrVDT77wiJVwTAgpL7rJSJyEdM1IBEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SJbdRcgtUNWfhEH0vI4llVAXpEDi2EQFuBD3WA/GoT7Y7UY1V2i1HamCZkHIfMw5B4HpwNsdgiKhtBYCIio7gpFRACFL7lARzLy+WnPCdbtSyUtpxCH6ZpuACbg72OhUUQgVzSOoGtcBL42NbZKJXM64OB62PsDHN8BhTme8w0D/MKgQReIvxoim1RLmSIiJRS+5Lw4nSY/7j7B/M2HOZZVQESgL/GRgdisJ8OVaZrkFjpIOp7DzpQsEpPTGdSxAQ3C/KuxcqlVck7A5s9g/8+un4PqQmgjV+Aq4XRAXirsWgTJq6FFP2jWF2y+1VOziFzyLtnwtS9zHzlFOWdf8DSBPoHEhcRVQUU1h8NpMm/jIRZtPYqfzUrLmGAMo/RlRcMwCLTbSLDbyC9ysDE5g2NZBdzVLZ6EOoHVULnUKllH4Je34Nh2CI8He3DZy1msEBgFAXUg+yhs/ASyjkLnO12XJUVEvOySDF/7Mvcx4IsB573+vCHzLukA9sPOY3y35SiRQb6EB5xb64Gfj5Vm0UHsPpbNrF/28UCvJkQG6YNPzlNhLqydDid2QHQr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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=12\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=13\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M033+SKK64gIiKCtWvX8uKLL5YYw0subQpfIiIi1ciePXv497//TUpKCg0bNuQvf/kLkyZNquqypBwUvkRE5LIX4BVQpeuXxyuvvMIrr7zisf1JxVP4EhGRy15McAwLBy8kuzD73AufIcArgJjgmEqoSmoqhS8RERFQgBKP0VATIiIiIh6k8CUiIiLiQbrsKCIiUgbTNMkrdFBgd+BtteDrZXGNJC9yoRS+REREzpBXaGdHUgbrE1I4eDIbu8PEajGIiQjgirhwWtUNxtfLWtVlSjWl8CUiInKaAyeymbshkYMnszEwCPP3wtvbSpHdwZbD6Ww+nEZMRABDu0QTW8tzQ0xUB71796ZDhw68+uqrVV3KJU19vkRERP5w4EQ2M9YmcPBENjHhATSpHUhEoA8hfl5EBPrQpHYgMeEBHPxjuQMnyj80xdmMHDkSwzAwDAMvLy/i4uL429/+Rl5eXoXup7qKjY2tEcFO4UtERATnpca5GxI5nplPk9qBeNtK/4j0tlloUjuQ45n5zN2QSF6hvULr6NevH0lJSezfv59XXnmF6dOn89RTT1XoPi6GaZoUFRVVdRnVmsKXiIgIsCMpg4Mns4mJCDhnp3rDcPb/Ongym51JGRVah4+PD1FRUURHRzNo0CD69OnD0qVLXfMdDgeTJ08mLi4OPz8/2rdvz+eff+6a36VLF/773/+6vh80aBBeXl5kZWUBcPjwYQzDYO/evQB8+OGHdOnShaCgIKKiorjrrrtITk52rb9y5UoMw2DRokV07twZHx8f1qxZQ3Z2Nvfeey+BgYHUrVuXl1566ZzHtnnzZq699lqCgoIIDg6mc+fObNiwwTV/zZo19OjRAz8/P6Kjoxk3bhzZ2c7Wxd69e3Pw4EEmTJjgah2srhS+RETksmeaJusTUjAwymzxOpO3zYKBwbqEFEzTrJS6tm3bxo8//oi3t7dr2uTJk5k1axZvvfUW27dvZ8KECdx9992sWrUKgF69erFy5UrAeVw//PADoaGhrFmzBoBVq1ZRv359mjRpAkBhYSHPPvssmzdv5ssvv+TAgQOMHDmyRC1PPPEEU6ZMYefOnbRr146//vWvrFq1igULFvDdd9+xcuVKNm3adNbjGT58OA0aNGD9+vVs3LiRJ554Ai8vLwD27dtHv379GDJkCFu2bGHu3LmsWbPG9dDw+fPn06BBA5555hmSkpJISkq6qHNbldThXkRELnt5hQ4OnswmzN+rXOuF+Xtx8GQ2eYUO/Lwr5u7HhQsXEhgYSFFREfn5+VgsFl5//XUA8vPzee6551i2bBldu3YFoFGjRqxZs4bp06fTq1cvevfuzXvvvYfdbmfbtm14e3szdOhQVq5cSb9+/Vi5ciW9evVy7e++++5z/btRo0ZMnTqVK664gqysLAIDA13znnnmGW644QYAsrKyeO+99/joo4+4/vrrAfjggw9o0KDBWY/t0KFD/PWvf6VFixYANG3a1DVv8uTJDB8+nPHjx7vmTZ06lV69ejFt2jTCw8OxWq2uFrrqTC1fIiJy2SuwO7A7TGzW8n0sWi0GdodJgd1RYbVce+21xMfH88svvzBixAhGjRrFkCFDANi7dy85OTnccMMNBAYGul6zZs1i3759APTo0YPMzEx+/fVXVq1a5Qpkxa1hq1atonfv3q79bdy4kQEDBtCwYUOCgoJcwezQoUNudXXp0sX173379lFQUMBVV13lmhYeHk7z5s3PemwTJ07k/vvvp0+fPkyZMsVVMzgvSc6cOdPtuPr27YvD4SAhIaH8J/ISppYvERG57HlbLVgtBkXlDFHF4395lzO0nU1AQIDrkuD7779P+/btee+99xg9erSr39Y333xD/fr13dbz8fEBIDQ0lPbt27Ny5Up++uknbrjhBnr27MnQoUPZvXs3e/bscQWs7Oxs+vbtS9++ffn444+JjIzk0KFD9O3bl4KCghJ1Xax//etf3HXXXXzzzTcsWrSIp556ijlz5jB48GCysrL405/+xLhx40qs17Bhw4ve96VELV8iInLZ8/WyEBMRQGpOYbnWS80pJCYiAF+vyvk4tVgs/P3vf+cf//gHubm5tGrVCh8fHw4dOkSTJk3cXtHR0a71evXqxYoVK1i9ejW9e/cmPDycli1b8p///Ie6devSrFkzAHbt2sXJkyeZMmUKPXr0oEWLFm6d7cvSuHFjvLy8+OWXX1zTUlNT2b179znXbdasGRMmTOC7777j1ltvZcaMGQB06tSJHTt2lDiuJk2auPq8eXt7Y7dX7N2lVUHhS0RELnuGYXBFXDgmJgVF59f6VVDkwMTkyrjwSr3z7vbbb8dqtfLGG28QFBTEY489xoQJE/jggw/Yt28fmzZt4rXXXuODDz5wrdO7d2+WLFmCzWZz9a/q3bs3H3/8sVt/r4YNG+Lt7c1rr73G/v37+eqrr3j22WfPWVNgYCCjR4/mr3/9K8uXL2fbtm2MHDkSi6XsWJGbm8vYsWNZuXIlBw8eZO3ataxfv56WLVsC8Pjjj/Pjjz8yduxY4uPj2bNnDwsWLHB1uAfnOF+rV6/myJEjnDhxotzn8lKh8CUiIgK0qhvsGj7iXHcvmqbpGpaiZd3gSq3LZrMxduxYXnjhBbKzs3n22Wf55z//yeTJk2nZsiX9+vXjm2++IS4uzrVOjx49cDgcbkGrd+/e2O12t/5ekZGRzJw5k88++4xWrVoxZcoUt2EqzubFF1+kR48eDBgwgD59+nDNNdfQuXPnMpe3Wq2cPHmSe++9l2bNmnHHHXdw00038fTTTwPQrl07Vq1axe7du+nRowcdO3bkySefpF69eq5tPPPMMxw4cIDGjRsTGRl5vqfwkmOYlXV/bBkyMjIICQkhPT2d4ODKfcOKiEjNVdbnSV5eHgkJCcTFxeHr61uubRaPcH88M5+YiIBSh50oKHLeGRkZ5MN918QRE6FHDEn53nfqcC8iIvKH2FoBjOoeV+LZjsV3NabmFGJiElMrgDuviFbwkgui8CUiInKa2FoBPHp9U3YmZbAuIYWDJ7MpLHRgtRi0axDClXHhtKwbjK9XxYzrJZcfhS+RS0BqXio7U3ZyOPMwhzMPk2/Px2axUS+wHtFB0TQPa06dgDpVXabIZcPXy0rHhmF0iA4lr9BBgd2Bt9WCr5elWj/WRi4NCl8iVSirIIuViSvZcGwDaflp2AwbfjY/rBYruUW5/Jr8K+uPrifYO5g2tdrQJ6YP4b7hVV22yGXDMAz8vK34oVYuqTgKXyJV5GDGQb7Y8wUHMg4Q7htOk9AmWIySnXtN0yQtP421v68lIT2BAY0H0CqiVRVULCIiFUFDTYhUgUMZh5i9czaHMg/RKKQRtfxqlRq8wPmXd5hvGE1Cm5CSl8LcXXPZfnK7hysWEZGKovAl4mHZhdl8sfcLjucep1FII2yW82uAthpWGgY1JM+ex4K9CziRW30HGBQRuZwpfIl42OrDq9mftp+Y4Bi31q6iwqKzrldUWIRhGEQHRXMs+xjfHfjunANBishFMk0oyIHcNOdX/Z+TClCu8DVt2jTatWtHcHAwwcHBdO3alUWLFlVWbSI1Tnp+OhuObiDcNxwvi5dr+sYlG/nP7f8h9WhqqeulHk3lP7f/h41LNmIxLNQNqMv2k9s5knXEU6WLXF4K8yBxPfz4Giz5O3z3T+fXH19zTi/Mq+oKpRorV/hq0KABU6ZMYePGjWzYsIHrrruOgQMHsn27+p+InI/dqbtJyUsh3O/UHYtFhUUsnLaQ5IPJvPrAqyUCWOrRVF594FWSDyazcNpCigqLCPIOIrswm50nd3r6EERqvpP7YNUU+Ol1OLIJDAt4+Tu/HtnknL5qinO5KmQYBl9++WWV1iAXplzha8CAAdx88800bdqUZs2a8Z///IfAwEB+/vnnyqpPpEY5knUEwzCwGqduW7d52Rj31jhqNajFicMn3AJYcfA6cfgEtRrUYtxb47B52TAMA1+rLwczDlbVoYjUTCf3wS9vQUoChDeCyOYQEAl+oc6vkc2d01MSnMtVcAAbOXIkhmFgGAZeXl7UqVOHG264gffffx+Hw/2B30lJSdx0003ntV1PBrV//etfdOjQodK2n5eXx8iRI2nbti02m41BgwZV2r6KVfQxXXCfL7vdzpw5c8jOzqZr164VVpBITXYk8wh+Nr8S08Oiwhj/zni3ALY/fr9b8Br/znjCosJc6/h7+XM0+yiFjkJPHoJIzVWYB79+CFnJUKs5WL1LX87q7ZyflexcvoIvQfbr14+kpCQOHDjAokWLuPbaa3n00Ue55ZZbKCo61Tc0KioKHx+fCttvQUFBhW2rIpRVj91ux8/Pj3HjxtGnTx8PV1Uxyh2+tm7dSmBgID4+Pjz00EN88cUXtGpV9phD+fn5ZGRkuL1ELlf59ny3Vq/TnRnAXhr1UpnBC5x3P9pNO0WOs3fUF5HzdHTrqRavc41ibxgQFudc/ti2Ci3Dx8eHqKgo6tevT6dOnfj73//OggULWLRoETNnzjythFOtWQUFBYwdO5a6devi6+tLTEwMkydPBiA2NhaAwYMHYxiG6/vi1px3333X7WHQixcv5pprriE0NJSIiAhuueUW9u1zb+E7fPgww4YNIzw8nICAALp06cIvv/zCzJkzefrpp9m8ebOrBa+45kOHDjFw4EACAwMJDg7mjjvu4NixY65tllXPmQICApg2bRoPPPAAUVFR53VOz3Z+ANLS0rj//vuJjIwkODiY6667js2bNwOc9ZguVLkHWW3evDnx8fGkp6fz+eefM2LECFatWlVmAJs8eTJPP/30RRUpUlP4WH2wm/Yy54dFhTHi2RG8NOol17QRz44oEbwA7KYdq2E976EqROQsTBMO/QQYZbd4ncnm41z+4I9Qv/O5A9tFuO6662jfvj3z58/n/vvvLzF/6tSpfPXVV3z66ac0bNiQxMREEhMTAVi/fj21a9dmxowZ9OvXD6v11B+Ae/fuZd68ecyfP981PTs7m4kTJ9KuXTuysrJ48sknGTx4MPHx8VgsFrKysujVqxf169fnq6++Iioqik2bNuFwOBg6dCjbtm1j8eLFLFu2DICQkBAcDocreK1atYqioiLGjBnD0KFDWbly5VnrqQhnOz8At99+O35+fixatIiQkBCmT5/O9ddfz+7du8s8potR7t/a3t7eNGnSBIDOnTuzfv16/ve//zF9+vRSl580aRITJ050fZ+RkUF0dPQFlitSvdUPqs++9LL7iKQeTeWDf37gNu2Df35QastXTmEOjUIbud01KSIXqDAXUvaDfzkf3+Uf7lyvMBe8/Suntj+0aNGCLVu2lDrv0KFDNG3alGuuuQbDMIiJiXHNi4yMBCA0NLRES1FBQQGzZs1yLQMwZMgQt2Xef/99IiMj2bFjB23atGH27NkcP36c9evXEx7uPF/FuQAgMDAQm83mtq+lS5eydetWEhISXBlg1qxZtG7dmvXr13PFFVeUWU9FONv5WbNmDevWrSM5Odl1Gfe///0vX375JZ9//jkPPvhgqcd0MS56nC+Hw0F+fn6Z8318fFxDUxS/RC5XdQPqYppmqa1fZ3au/8uMv5TaCR+cjxzKK8ojNjjWg9WL1GD2AnDYobx/zFhszvXsld9fyjTNMh/qPXLkSOLj42nevDnjxo3ju+++O69txsTElAg6e/bsYdiwYTRq1Ijg4GDXZcpDhw4BEB8fT8eOHV3B63zs3LmT6Ohot8aXVq1aERoays6dp+7aLq2einC287N582aysrKIiIggMDDQ9UpISChxubWilKvla9KkSdx00000bNiQzMxMZs+ezcqVK1myZEmlFCdS07QIb0GoTygpuSlE+p/6BXNm8Cpu6Rr/znjX9FcfeNU1PaswC38vf1pGtKzCoxGpQazeYLFCeW9gcRQ51zvfS5UXYefOncTFxZU6r1OnTiQkJLBo0SKWLVvGHXfcQZ8+ffj888/Pus2AgIAS0wYMGEBMTAzvvPMO9erVw+Fw0KZNG1cHeD+/kjcNVZTS6qkIZzs/WVlZ1K1b1+3yZ7HQ0NBKqadcLV/Jycnce++9NG/enOuvv57169ezZMkSbrjhhkopTqSmCfEJoXOdzqTkpbg6yhcVFjH1oamldq4/sxP+1IemUlBQQFJ2Ei0jWtIgsEFVHo5IzeHl5+xon5NSvvVyUpzreVVeIAFYvnw5W7duLXFJ8HTBwcEMHTqUd955h7lz5zJv3jxSUpzH4+Xlhd1edn/TYidPnuS3337jH//4B9dffz0tW7YkNdV97MF27doRHx/v2vaZvL29S+yrZcuWJfpZ7dixg7S0tLPetFeRyjo/nTp14ujRo9hsNpo0aeL2qlWrVpnHdDHK1fL13nvvVdiORS5XvaN7szdtLwczDjqf7ehl45aHb2HhtIWMe2tcib5dxQFs6kNT6f9Qf47mHSXSL5K+sX3LvAQhIuVkGNCwKxzZ6LyEeD4tWUX5gAkx3Sq0s31+fj5Hjx7Fbrdz7NgxFi9ezOTJk7nlllu49957S13n5Zdfpm7dunTs2BGLxcJnn31GVFSUq+UmNjaW77//nu7du+Pj40NYWMmbeADCwsKIiIjg7bffpm7duhw6dIgnnnjCbZlhw4bx3HPPMWjQICZPnkzdunX59ddfqVevHl27diU2NpaEhATi4+Np0KABQUFB9OnTh7Zt2zJ8+HBeffVVioqKeOSRR+jVqxddunQp9znasWMHBQUFpKSkkJmZSXx8PECZY3Gd7fz06dOHrl27MmjQIF544QWaNWvG77//zjfffMPgwYPp0qVLqcd0McN86NmOIh4W6B3IwCYDCfcNZ3/6fuwOO537dub/ffb/Sr2rEZwBbNKnk6jdrTZeVi8GNB5Abf/aHq5cpIaLagvhcc4O9Od6hqNpQmqCc/k6bSq0jMWLF1O3bl1iY2Pp168fK1asYOrUqSxYsKDMOwCDgoJ44YUX6NKlC1dccQUHDhzg22+/xWJxfsy/9NJLLF26lOjoaDp27Fjmvi0WC3PmzGHjxo20adOGCRMm8OKLL7ot4+3tzXfffUft2rW5+eabadu2LVOmTHHVNmTIEPr168e1115LZGQkn3zyCYZhsGDBAsLCwujZsyd9+vShUaNGzJ0794LO0c0330zHjh35+uuvWblyJR07djzrcZ3t/BiGwbfffkvPnj0ZNWoUzZo148477+TgwYPUqVOnzGO6GIbp4SfzZmRkEBISQnp6ujrfy2Vtf/p+vtzzJQczDxLpF0moT6jbg7aLmaZJRkEGx3KOUdu/NgMaDaBtZNsqqFjk0lLW50leXh4JCQlnHSuqTMUj3GclO8fxspXSulGU7wxegbXh6oedlx3lslee950GCBKpIo1CGnF/u/tZfmg5vx77lb1pe/GyeOFn88NmseEwHeQU5pBvzyfIO4gro67kxtgbqeVXq6pLF6m5IhrDVQ85R65PSQAM53ASFpuzc31OCmA6W7w63avgJRdE4UukCgV7BzOoySCuqX8NO0/u5FDmIQ5nHqbQUYi31ZtGIY2IDoqmRXgLogKi1MdLxBMiGkOvJ5wj1x/88dQ4XhYr1O/k7ONVpw14lbNVTeQPCl8il4BafrXo0aAH4LzM6DAdWAyLwpZIVfHyhQZdnCPXF+ae6oTv5VepI9nL5UHhS+QSYxhGmc9/FBEPM4w/Rq6v3NHr5fKiux1FREREPEjhS0RERMSDFL5EREREPEh9vkRERMpgmiZ59jwKHYV4WbzwtfrqRhi5aApfIiIiZ8i357MrZRebjm0iMTMRu8OO1WIlOiiaTnU60SK8BT7WC3+8jFzeFL5EREROcyjjEPP3zCcxMxHDMAj1CcXb5k2RWcT2k9vZdmIb0UHR3Nr0VhoGN6yyOg3D4IsvvmDQoEFVVoNcGPX5EhER+cOhjEN8tPMjDmUeomFQQxqFNCLcN5xgn2DCfcNpFNKIhkENOZT5x3IZhyp0/yNHjsQwDAzDwMvLizp16nDDDTfw/vvv43A43JZNSkripptuOq/tGobBl19+WaG1luVf//pXmQ+4rggrV65k4MCB1K1bl4CAADp06MDHH39cafsD58+lIkOuwpeIiAjOS43z98znRO4JGoc0xsvqVepyXlYvGoc05kTuCebvmU++Pb9C6+jXrx9JSUkcOHCARYsWce211/Loo49yyy23UFRU5FouKioKH5+Ku/RZUFBQYduqCGXV8+OPP9KuXTvmzZvHli1bGDVqFPfeey8LFy70cIUXTuFLREQE2JWyi8TMRGKCYs7Zqd4wDBoGNSQxM5HfUn6r0Dp8fHyIioqifv36dOrUib///e8sWLCARYsWMXPmTLcailuzCgoKGDt2LHXr1sXX15eYmBgmT54MQGxsLACDBw/GMAzX98UtVO+++67bw6AXL17MNddcQ2hoKBEREdxyyy3s27fPrcbDhw8zbNgwwsPDCQgIoEuXLvzyyy/MnDmTp59+ms2bN7ta8IprPnToEAMHDiQwMJDg4GDuuOMOjh075tpmWfWc6e9//zvPPvss3bp1o3Hjxjz66KP069eP+fPnl3lOU1NTGT58OJGRkfj5+dG0aVNmzJjhmp+YmMgdd9xBaGgo4eHhDBw4kAMHDrjq+uCDD1iwYIHrmFauXHm2H+E5qc+XiIhc9kzTZNOxTc7LfWW0eJ3J2+oNBmw8tpG2tdpW6l2Q1113He3bt2f+/Pncf//9JeZPnTqVr776ik8//ZSGDRuSmJhIYmIiAOvXr6d27drMmDGDfv36YbWeeoLG3r17mTdvHvPnz3dNz87OZuLEibRr146srCyefPJJBg8eTHx8PBaLhaysLHr16kX9+vX56quviIqKYtOmTTgcDoYOHcq2bdtYvHgxy5YtAyAkJASHw+EKXqtWraKoqIgxY8YwdOhQtyBTWj3nIz09nZYtW5Y5/5///Cc7duxg0aJF1KpVi71795KbmwtAYWEhffv2pWvXrvzwww/YbDb+/e9/069fP7Zs2cJjjz3Gzp07ycjIcAW28PDw866tNApfIiJy2cuz55GYmUioT2i51gvzCSMxM5E8ex5+Nr/KKe4PLVq0YMuWLaXOO3ToEE2bNuWaa67BMAxiYmJc8yIjIwEIDQ0lKirKbb2CggJmzZrlWgZgyJAhbsu8//77REZGsmPHDtq0acPs2bM5fvw469evd4WQJk2auJYPDAzEZrO57Wvp0qVs3bqVhIQEoqOjAZg1axatW7dm/fr1XHHFFWXWcy6ffvop69evZ/r06WUuc+jQITp27EiXLl2AU62BAHPnzsXhcPDuu++6AvSMGTMIDQ1l5cqV3Hjjjfj5+ZGfn1/i/F0oXXYUEZHLXqGjELvDjs0oX5uE1bBid9gpdBRWUmWnmKZZZuvayJEjiY+Pp3nz5owbN47vvvvuvLYZExNTIujs2bOHYcOG0ahRI4KDg11B5dAh580F8fHxdOzYsVytPzt37iQ6OtoVvABatWpFaGgoO3fuPGs9Z7NixQpGjRrFO++8Q+vWrctc7uGHH2bOnDl06NCBv/3tb/z444+ueZs3b2bv3r0EBQURGBhIYGAg4eHh5OXllbjcWlHU8iUiIpc9L4sXVouVIrPo3Aufxm46x//yspzfpcqLsXPnTuLi4kqd16lTJxISEli0aBHLli3jjjvuoE+fPnz++edn3WZAQECJaQMGDCAmJoZ33nmHevXq4XA4aNOmjasDvJ9f5bXwlVZPWVatWsWAAQN45ZVXuPfee8+67E033cTBgwf59ttvWbp0Kddffz1jxozhv//9L1lZWXTu3LnUOybLEwTLQy1fIiJy2fO1+hIdFE1aflq51kvNTyU6KBpfa+mdwyvK8uXL2bp1a4lLgqcLDg5m6NChvPPOO8ydO5d58+aRkpICgJeXF3a7/Zz7OXnyJL/99hv/+Mc/uP7662nZsiWpqaluy7Rr1474+HjXts/k7e1dYl8tW7Z064cGsGPHDtLS0mjVqtU56zrTypUr6d+/P88//zwPPvjgea0TGRnJiBEj+Oijj3j11Vd5++23AWdw3bNnD7Vr16ZJkyZur5CQkDKP6WIofImIyGXPMAw61emEaZoU2s/vEmKBvQBM6Fync4V2ts/Pz+fo0aMcOXKETZs28dxzzzFw4EBuueWWMlt4Xn75ZT755BN27drF7t27+eyzz4iKiiI0NBRw9nH6/vvvOXr0aIkwdbqwsDAiIiJ4++232bt3L8uXL2fixIluywwbNoyoqCgGDRrE2rVr2b9/P/PmzeOnn35y7SshIYH4+HhOnDhBfn4+ffr0oW3btgwfPpxNmzaxbt067r33Xnr16uXqh3W+VqxYQf/+/Rk3bhxDhgzh6NGjHD16tMwwCPDkk0+yYMEC9u7dy/bt21m4cKGrg/7w4cOpVasWAwcO5IcffiAhIYGVK1cybtw4Dh8+7DqmLVu28Ntvv3HixAkKCy/uMrPCl4iICNAivAXRQdEczDyIaZpnXdY0TQ5lHiI6KJrm4c0rtI7FixdTt25dYmNj6devHytWrGDq1KksWLCgzDsAg4KCeOGFF+jSpQtXXHEFBw4c4Ntvv8VicX7Mv/TSSyxdupTo6Gg6duxY5r4tFgtz5sxh48aNtGnThgkTJvDiiy+6LePt7c13331H7dq1ufnmm2nbti1Tpkxx1TZkyBD69evHtddeS2RkJJ988gmGYbBgwQLCwsLo2bMnffr0oVGjRsydO7fc5+eDDz4gJyeHyZMnU7duXdfr1ltvLXMdb29vJk2aRLt27ejZsydWq5U5c+YA4O/vz+rVq2nYsCG33norLVu2ZPTo0eTl5REcHAzAAw88QPPmzenSpQuRkZGsXbu23HWfzjDP9Q6rYBkZGYSEhJCenu46KBERkfIq6/MkLy+PhISEs44VVZbiEe5P5J6gYVBD53ASZyiwF3Ao8xC1/GpxT8t7iA6OLmVLcrkpz/tOHe5FRET+0DC4IXe3vNv1bEcM53ASVsOK3bSTmp8KJjQMasiQpkMUvOSCKHyJiIicpmFwQx7u8DC/pfzGxmMbScxMpNBeiNVipU1EGzrX6Uzz8Ob4WCvu0T5yeVH4EhEROYOP1Yd2ke1oW6stefY8Ch2FeFm88LX6VupI9nJ5UPgSEREpg2EY+Nn88KNyR6+Xy4vudhQRkRrJw/eTyWWuPO83hS8REalRvLyco83n5ORUcSVyOSl+vxW//85Glx1FRKRGsVqthIaGkpycDDjHcVI/LakspmmSk5NDcnIyoaGhZY7FdjqFLxERqXGioqIAXAFMpLKFhoa63nfnovAlIiI1jmEY1K1bl9q1a1/0o2BEzsXLy+u8WryKKXyJiEiNZbVay/WhKOIJ6nAvIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIeZKvqAi4l2flFZOUXYQCBvjb8vXV6ROQyVJgHeWlgmuDtDz7BYBhVXZVIjXHZp4vkzDy2JKaz7fd0jmXkUVDkAMDbZqFOsC9t64fQrkEokUE+VVypiEglyk2F3391vtIPOwMYJli9IaAW1GkLDTpDSLSCmMhFMkzTND25w4yMDEJCQkhPTyc4ONiTu3aTV2hnxa5kVu0+Tkp2Af7eVgJ9bPh4WQHIL7STlV9EbqGdMH9vrm0eSa/mtfH9Y76ISI1gL4IDq2HXN5B5DGw+zpYuLz/AAHs+5GdBQaZzeuw10PIW8A2p6sovmc8TkfK6LFu+TmblM/uXQ2z7PZ3wAG9aRAVhnPGXXKCPjYhAHxymyYnMfL749Qh7krMZflVDwgK8q6hyEZEKVJANmz6EQz+BVwBEtgDLmX9gBoJ/hPMSZG4K/PYtnNwDnUdBWEyVlC1S3V12He4z8gqZ9dNBth5JJ65WALWDfEsEr9NZDIPawb7E1gpgy+E0Zv10gMy8Qg9WLCJSCYoKYOMHcOAHCGkAodGlBK/TGIYzhEW2gJP7YN3bkJHkuXpFapDLKnyZpsmirUnsTMqgSe1AfGzOXzRFhQVnXa+osAAfm5XGkYFs/z2DJduP4uGrtSIiFWvfcmeLV1gceAcCUFBYdNZVCgqLwGKDWs0h9QBs/Qzs+mNUpLwuq/C162gmP+07Sd0QX7yszkP/deW3vPinAaQml/4XXGpyEi/+aQC/rvwWb5uFqBBf1u49wZ7kLE+WLiJScTKSnJcPfUPBOwCAuSu20Hb0VBKT00pdJTE5jbajpzJ3xRZnC1lYIziyERJ/8VzdIjVEucLX5MmTueKKKwgKCqJ27doMGjSI3377rbJqq3AbDqSQX+Qg1N/ZZ6uosIDFs/7H8cMHePOv95QIYKnJSbz513s4fvgAi2f9j6LCAsL8vckrdLD+QEpVHIKIyMU7sgFyTkJQXcDZovXkjGXsPnyC3hPeLRHAEpPT6D3hXXYfPsGTM5Y5W8C8/Z2tYAfWgMNeBQchUn2VK3ytWrWKMWPG8PPPP7N06VIKCwu58cYbyc7Orqz6KkxaTgHbf88g4rTO8jYvbx6aMpOIutGcTEp0C2DFwetkUiIRdaN5aMpMbF7OdcMDvNl2JJ0M9f0SkerGYYdDP7uN3eXtZWPZf++jUd1w9ieluAWw4uC1PymFRnXDWfbf+/D2+uNeraAoZ/+vtINVdDAi1VO5wtfixYsZOXIkrVu3pn379sycOZNDhw6xcePGyqqvwhzLyCczr4hgPy+36WG16/LIix+6BbCE7ZvcgtcjL35IWO26rnWCfb3IyisiOSPP04chInJxsk84x/Q6Y6iI6NqhrHzlfrcA9uO2g27Ba+Ur9xNdO/TUSl4BUJQLmUc9ewwi1dxF9flKT08HIDw8vMxl8vPzycjIcHtVhZTsAhym6errdbozA9hrE4aVGbzAOQBrkcMkJVstXyJSzeSchIIcV1+v050ZwLqPm1528II/Ws4M5zZF5LxdcPhyOByMHz+e7t2706ZNmzKXmzx5MiEhIa5XdHT0he7yopzr7sSw2nW5628vuE27628vlAhep7M7dMejiFQzpgNwgFH6r//o2qF8OOl2t2kfTrq9ZPA6tUH1+RIppwsOX2PGjGHbtm3MmTPnrMtNmjSJ9PR01ysxMfFCd3lRfLwsmGbZISw1OYnZL/zNbdrsF/5W6l2Qxdvw8bqsbhYVkZrA5gsWL7CXPsROYnIa90z+zG3aPZM/K/MuSDCc2xSR83ZB6WHs2LEsXLiQFStW0KBBg7Mu6+PjQ3BwsNurKkQG+uLrZSGv0FFi3pmd6//8yieldsIvllNgx9fLSm0971FEqpvA2s5LjgUlb5Q6s3P92ql/KrUTvovD7rz0GFTHM7WL1BDlCl+maTJ27Fi++OILli9fTlxcXGXVVeFqB/sQHuBNSo77X3tnBq9HXvyQuNadSnTCPz2ApeYUUCvQm9pB+mtPRKoZnyDnY4Fy3IfLOTN4rXzlfrq1iSnRCd8tgOWmODvuh1RNdxKR6qpc4WvMmDF89NFHzJ49m6CgII4ePcrRo0fJzc2trPoqjK+XlaviwsnILcTxR1+tosIC3npiZKmd68/shP/WEyMpKizA7jDJyi/iqrgIvG267Cgi1YxhQMNuYBa5Lj0WFBbR57H3S+1cf2Yn/D6Pve8c58s0ISsZ6nWGgFpVeEAi1U+50sO0adNIT0+nd+/e1K1b1/WaO3duZdVXoTrHhlMv1I/Dac6waPPypt+9jxLZILbUuxqLA1hkg1j63fsoNi9vDqfmUD/Uj04xYVVxCCIiF69eB+cjglISwDTx9rLxzKg+NGtQq9S7GosDWLMGtXhmVB/nOF9Zx8AvFOJ6VMURiFRrhunhhxRmZGQQEhJCenp6lfT/+mX/ST76+SCh/t6EB5wa6b54ANXSFM8/mZVPRl4R93SN4YrYsofXEBG55CXvgh9fc/47xNl3t6Cw6NQAqqVwzc/PgPTD0O4OaDnAE9WWqqo/T0Qu1GV33eyK2HD6to4iJbuAo+l5mKZ51uAFYLV5kZSeS1puIf1aR9FFrV4iUt3VbuEMT46iP1rAHGcNXuAcCZ/s487g1fg6aNrXQ8WK1Cxn/59WA1ksBje3rUugj43F24+y+1gWtYN9CPXzwvjjURvFTNMkLaeQY5l5hPt7c3uXaHo0qVViORGRaimuJ3j5wbZ5kLwDAiKdrzPHADNNZ2tXZpJz+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=14\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=15\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=16\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8kepK4UsuyC/7TzJv02Gy8ouICQ/A23b2Szop2QUkZ+bRul4Id18dQ3iAt4cqlRqrIBs2fgCHfgS/cAiMOnugchRB6gFnKGs9CJrfrABWzenzRKordYKQcttyOI1PNyRid5g0iQw8Z/ACCA/wplGtQLYdSefjnw+SW2D3QKVSY9mL4NeP4OBaCI2DoLrnDlIWG0Q0cV6G3Po57F/hmVpFRM6g8CXlkpZTwFfxv1Nod9AgzL/UPlwF+QaZqVYK8t3nedssNIoMYNvvGSzfdcxTJUtNdHAtHPzReRnR27/k/PxCSMl0fj1TYG3nZckdX0HaoUovVUTkTOp8I+WyZs8JDqXk0KxOUIl5+7f5smpeGNt+CsR0GBgWkzZds+h9WypxrfMA8LFZiQjwZtXu43RsGEa9UD9PH4JUd3kZsGshePmBT6D7vK0H4LM18ONOcJhgMaBbS7ijB7SJObVccH04vgN2fQtX/UmXH0XEo8rd8rV69WoGDBhAvXr1MAyDL7/8shLKkktRVn4R6w6kEObvjdXi/mG19usQXp8YzfafncELwHQYbP85kNcmRPPjwlN3mNUK9CYtp5DNiWmeLF9qiqR4yExyBqjTLfgZHn0bftrlDF7g/PrTLhg3Hb765dSyhgGBdeHoFsj43WOli4jABYSv7Oxs2rdvzxtvvFEZ9cglLOF4Nscz86kV6N5Zfv82X+a9VhswcNjdQ5nze4PPp9YmYbsvAIZhEORrIz4xDQ/f7yE1wdGtYPFy9uEqtvUA/O8r57/tDvfli79/dQFsO3hqul8Y5KXDid2VWq6IyJnKfdnxpptu4qabbqqMWuQSl5yZh2ma2KzumX3VvDAsVnCcpQ+9xepcLq51EgBBvl6k5hSQmlOoOx/l/NkLIfUg+Jxx2fuzNWC1lAxep7NanMsVX340DDCskH6k8uoVESlFpff5ys/PJz8/3/V9RkZGZe9SKklaTmGJDvYF+Yarj9fZOOwGW38MpCDfwNvHxNfLQmq2g4xchS8ph/xM5wCqXgGnTSs81cfrbOwOWLvDubyPl3Oazdc5Ir6IiAdV+t2OkydPJiQkxPWKjo6u7F1KJSntoy0/x3LO4OVa32GQn3PqLWeWukWR83D6Wy4779zBq5jDdC7v2o5B6e9sEZHKU+nha9KkSaSnp7teiYmJlb1LqSSBPrYSH1M+/g4My/l9eBkWEx9/52WhgiIH3lYL/t567qOUg5c/WL2dI9sXC/B13tV4PiyGc/liRXnOvl8iIh5U6eHLx8eH4OBgt5dUT7WDfTAAx2mtDN4+zuEkLNazBzCL1aRttyy8fZzLZeUXEeznRUSgT2WWLDWNly+E1If8rFPTfLycw0lYz/HrzGqB7q1OXXI0TXA4ILRh5dUrIlIKDbIq5y0m3J8QPy9ScgrcpvcaknrWzvbg7Izfa0iq6/v03CJa1QsuMWSFyDnVaet8TqN5Wuf62685e2d7cM6//ZpT3xdkOcNcWFzl1CkiUoZyh6+srCzi4+OJj48HICEhgfj4eA4d0kjRNV1EoA8dokM5npXvNkREozZ53DYuGTBLtIA5vze5bVyya6DVjNxC/L0tdGyoyz1yAep1BP8IyEo+Na1tLIwf6Pz3mS1gxd+PH+g+0GrGEYhsDuGNKrVcEZEzlftuxw0bNnDttde6vp84cSIAI0aMYObMmRVWmFyaejSLZMvhdJLS89xGp+92Szp14/JZNS+MrT+6j3Dfa8ipEe7tDpMjabn0bBZJXERAWbsRKVtgJDS+HrZ+6uyvZfvj0vX/XQWNopzDSazd4T7C/e3XuAev7BPOOx2b9QOLLgCIiGcZpodHudRT6Ku/1buP8+mGRML8vUsdJqIg33lXo4+/w9XHC5x9xfYdz6J+mB+P9G5CmIaYkAtVkAM/vuYcob5Wc7B6uc/PL3Te1Rjge6qPl2teBqQnQquB0OY2PVqoGtPniVRX+pNPyu2aJrXo2zqKtJwCDqfm4Dgjv3v7mASF2d2CV26Bnd3JmdQN9eXuq2MUvOTiePtDl1EQ2RJO/OZ83uPpfLwgPMg9eJmm87FE6UecLWctByp4iUiV0IO1pdwsFoP+besSEejNoq1H+e1opqsVzNt22jhepkl2vp3krDzsDpOODcMY1KE+USG+Z9m6yHkKrA1dH4Ft8+HQj85gFVgHfIPBOO3vSnsh5KZA9nHwC4f2d0KTPmDTHwAiUjV02VEuSnJGHr/sT2H9wRRSsgsocphu41/6eVmJrRXAVXHhdIoJw+tcwwGIlJfDAUm/woG1cHzXH8NQFP9aM5ytW36h0OBKiO0OYbFVV6tUKH2eSHWl8CUVIju/iN/TcknOzCe3wI7FAiF+3tQJ9qFeiB8WDSkhla34smJmEmSfBNPuHJA1sI5zbDANplrj6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=17\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L++++zYsUKdu/eXUHVyoXSCPciIiJnKA5gxYGre/fuAJUavMD5qJqKsHnzZlasWEFgYGCJefv27aNZs2YVsh+5MApfIiIipYiOjubDDz90BS+ADz/8sNKCF0DTpk0xDINdu3aVuYzF4rxodXpQO3NU9aysLAYMGMDzzz9fYv3zefagVC5ddhQRESlFYmIi99xzj9u0e+65p8y7ICtCeHg4ffv25Y033iA7O7vE/LS0NCIjIwFISkpyTT+98z1Ap06d2L59O7GxsTRp0sTtVVpfMvEshS8REZEznNm5fu3ataV2wq8Mb7zxBna7nSuvvJJ58+axZ88edu7cydSpU+natSt+fn5cffXVTJkyhZ07d7Jq1Sr+8Y9/uG1jzJgxpKSkMGzYMNavX8++fftYsmQJo0aNwm63V1rtcn4UvkRERE5zZvBauXIl3bp1K9EJv7ICWKNGjdi0aRPXXnstf/nLX2jTpg033HAD33//PdOmTQPg/fffp6ioiM6dOzN+/Hj+/e9/u22jXr16rF27Frvdzo033kjbtm0ZP348oaGhrsuWUnUMs6J6952njIwMQkJCSE9PJzg42JO7FhGRGqSsz5O8vDwSEhKIi4vD19e3XNssKCigbdu27N69u9TO9acHs2bNmrF169YKH25CqqfyvO8Uf0VERP7g7e3NM888Q7NmzUq9q7H4LshmzZrxzDPPKHjJBdHdjiIiIqcZOnQogwcPLjNYRUdHq8VLLopavkRERM5wrmCl4CUXQ+FLRERExIMUvkREREQ8SH2+5KKZpsmRrCMcyTpCck4yWQVZWC1WIvwiqO1Xm0ahjQjw0qB+UrnyivJISE8gOSeZ47nHKbQX4uflR23/2tQNqEtMcAwWQ39vikjVU/iSC2aaJnvS9rD2yFr2pu4luygbAwObxYZpmthNO4ZhUMuvFp3rdKZbvW4EeQdVddlSw+QV5fFz0s+sP7qeo9lHsZt2rIYVi2HBbtoxTRMfqw+xIbF0rdeVtrXaKoSJSJVS+JILkm/PZ9mBZaz9fS159jzq+NehXmA9DMNwW67IUcTJvJN8u/9btp/YTv9G/Wke3ryKqpaaJjEzka/3fc3u1N0EegXSMKghXlavEsvlFOawL20f+9P20yWqCzfH3Uygd8kHDouIeIL+/JNyy7fnM2/3PJYeWkqAVwBNQpsQ5B1UIngB2Cw26vjXoXFoY5Kyk5i9czbbTmyrgqqlpjmQfoCPdnzEntQ9xAbHUi+wXqnBC8Dfy5+4kDgi/CJY+/taPtn1CZkFmR6uWETESeFLysU0Tb4/+D3rjq6jQWADwnzDzms9m8VGbHAs+fZ8vtjzBb9n/V7JlUpNlp6fzud7PudE7gkahzbG23p+t/0HeQcRGxzLthPb+Hrf1zhMRyVXKnJpWLlyJYZhkJaWdtblYmNjefXVVz1S0+VM4UvKZV/aPtb+vpZafrXw9/IvdRlrXgF+JzOw5hW4TTcMg+igaFLyUliUsIhCR6EnSpYaxjRNlh1cRmJGIrHBsaX23yrIs5Jx0o+CPGuJeT5WH+oH1efX5F+JT473QMVS7eXmwrFjzq+VbOTIkRiGgWEYeHt706RJE5555hmKioouarvdunUjKSmJkJAQAGbOnEloaGiJ5davX8+DDz54UfuSc7uoPl9Tpkxh0qRJPProo0rKlwHTNPkp6SdyCnOoH1i/xPyoX/fS/qPlxK3cgsVh4rAYJPRux+Z7rudoh8aAM4A1CGrAzpSd7EvbR4vwFp4+DKnmkrKT+DX5V+oE1MFqcQ9Xe3+NYvlH7dmyMg7TYcGwOGjXO4Hr79lM4w5HXcsFegVy0jjJD0d+oG1kW7wspV+ulMvcmjXw8suwYAE4HGCxwMCB8Je/QPfulbbbfv36MWPGDPLz8/n2228ZM2YMXl5eTJo06YK36e3tTVRU1DmXi4yMvOB9yPm74Jav9evXM336dNq1a1eR9cgl7FjOMX5L+Y3a/rVLzGv96WoGj36FuFVbsTicz2q3OEziVm1l8H0v0/qzH1zL+tn8cJgOtTrIBdl2YhuZhZmEeIe4TV/9aWteGT2YraucwQvAdFjYuiqOl+8bzA+ftXZbvo5/HQ5nHmZ/2n6P1S7VyLRp0LMnfP21M3iB8+vXX0OPHvDWW5W2ax8fH6KiooiJieHhhx+mT58+fPXVV6SmpnLvvfcSFhaGv78/N910E3v27HGtd/DgQQYMGEBYWBgBAQG0bt2ab7/9FnC/7Lhy5UpGjRpFenq6q5XtX//6F+B+2fGuu+5i6NChbrUVFhZSq1YtZs2a9ccpcTB58mTi4uLw8/Ojffv2fP7555V2bmqKCwpfWVlZDB8+nHfeeYewsPPr8yPV3+9Zv5NdmE2wd7Db9Khf99JzylwMEyx29z40FrsDw4Sek+cQFb/PNT3EO4T9aft16VHKbW/aXgJsAW43eOz9NYq5U3qCaeCwu/9ac9gtYBrMmdyTffGn/vL3tflS5CgiKTvJY7VLNbFmDYwZA6YJZ17uKypyTn/kEVi71iPl+Pn5UVBQwMiRI9mwYQNfffUVP/30E6ZpcvPNN1NY6Pw9OmbMGPLz81m9ejVbt27l+eefJzCw5F293bp149VXXyU4OJikpCSSkpJ47LHHSiw3fPhwvv76a7KyslzTlixZQk5ODoMHDwZg8uTJzJo1i7feeovt27czYcIE7r77blatWlVJZ6NmuKDwNWbMGPr370+fPn0quh65hB3PPQ5Q4q7G9h8tx7Sc/a1kWiy0/2i563t/L3+yCrM4mXuy4guVGiunMIcTuSdK9Ddc/lF7LBbzrOtaLCbLP2rvNs1msXEk60iF1ynV3Msvg7Vkf0E3Viu88kqllmGaJsuWLWPJkiU0bNiQr776infffZcePXrQvn17Pv74Y44cOcKXX34JwKFDh+jevTtt27alUaNG3HLLLfTs2bPEdr29vQkJCcEwDKKiooiKiio1pPXt25eAgAC++OIL17TZs2fzf//3fwQFBZGfn89zzz3H+++/T9++fWnUqBEjR47k7rvvZvr06ZV2XmqCcvf5mjNnDps2bWL9+vXntXx+fj75+fmu7zMyMsq7S7lE5Bbllghe1rwCVx+vs7HYHcSt2Iw1rwC7rzdeFi+KHEXk2/PPup7I6QrsBRQ5ityemFCQZ3X18Tobh93C5hVxFORZ8fa1A+Bl8SKrIOus68llJjf3VB+vsykqgi++cC7v51ehJSxcuJDAwEAKCwtxOBzcdddd3HrrrSxcuJCrrrrKtVxERATNmzdn586dAIwbN46HH36Y7777jj59+jBkyJCL6hpks9m44447+Pjjj7nnnnvIzs5mwYIFzJkzB4C9e/eSk5PDDTfc4LZeQUEBHTt2vOD9Xg7K1fKVmJjIo48+yscff4yvr+95rTN58mRCQkJcr+jo6AsqVKqe1bDCGRnLOzvvnMGrmMVh4p2dBzj/ojMMQyONS7kYhoGB4TZERF629zmDVzHTYSEv+9SwFA7Tgc2isablNBkZ5w5exRwO5/IV7NprryU+Pp49e/aQm5vLBx98UOo4ime6//772b9/P/fccw9bt26lS5cuvPbaaxdVy/Dhw/n+++9JTk7myy+/xM/Pj379+gG4Lkd+8803xMfHu147duxQv69zKNcn38aNG0lOTqZTp07YbDZsNhurVq1i6tSp2Gw27HZ7iXUmTZpEenq665WYmFhhxYtnhfmGYZ6RvgoCfHFYzv1LAcBhMSgIcIb2nKIc/Gx+hPqEVnSZUoMFeQcR4BVAbtGpW/59AwowLOf3YWlYHPgGnBoCJd+eT1TAue8Ak8tIcLDzrsbzYbE4l69gAQEBNGnShIYNG2KzOf84aNmyJUVFRfzyyy+u5U6ePMlvv/1Gq1atXNOio6N56KGHmD9/Pn/5y1945513St2Ht7d3qZ/ZZ+rWrRvR0dHMnTuXjz/+mNtvvx0vL+fdwa1atcLHx4dDhw7RpEkTt5caWs6uXH/yXX/99WzdutVt2qhRo2jRogWPP/441lKukfv4+ODj43NxVcolIdIvEqthpcBe4BrU0u7rTULvds67HO1lfwA6rBYSerfD7utcL6swi/qB9Qn00iNe5PxZDAsNgxuy7ug61zRvXzvteiewdVVcic72butancNOFF9yLG49K+3uXbmM+fk5h5P4+uuSne1PZ7M5l6vgS45ladq0KQMHDuSBBx5g+vTpBAUF8cQTT1C/fn0GDhwIwPjx47npppto1qwZqamprFixgpYtW5a6vdjYWLKysvj+++9p3749/v7++PuXPnbjXXfdxVtvvcXu3btZsWKFa3pQUBCPPfYYEyZMwOFwcM0115Cens7atWsJDg5mxIgRFX8iaohytXwFBQXRpk0bt1dAQAARERG0adOmsmqUS0RsSCxRAVGujvfFNt99HcY5mukNh4PNd18HOD/0cotyaR/Z/rya0kVO1yqiFQYGBfZTLVjX3b0Zh+Ps7yWHw+C6uze7vk/NSyXUJ5SmoU0rrVappiZOhHO1CtntMGGCZ+r5w4wZM+jcuTO33HILXbt2xTRNvv32W1dLlN1uZ8yYMbRs2ZJ+/frRrFkz3nzzzVK31a1bNx566CGGDh1KZGQkL7zwQpn7HT58ODt27KB+/fp0P2N8s2effZZ//vOfTJ482bXfb775hri4uIo78BrIME3z/DrslKF379506NDhvAdZzcjIICQkhPT0dIIroblWKtfqw6uZv2c+scGxbo90af3ZD/ScPAfTYnFrAXNYLRgOB6sn3cn223sAziErfG2+jOkw5rwfTyRSLN+ez5vxb5KUlURsSKxr+g+ftWbO5J5YLKZbC5jF6sDhMLhz0mp63L4dALtpZ2/qXq5teC2Dmgzy8BFIRSnr8yQvL4+EhATi4uLOu39yCW+95RxOwmp1bwGz2ZzB68034aGHLvIIpCYpz/vuonuarly58mI3IdXIFVFXsO3ENvam7qVxaGNXy9X223twsmk95wj3Kza7j3B/93WuEe6zC7PJKcqhf6P+Cl5yQXysPtwYeyMfbv+Q1LxU1/uox+3bqdf0JMs/as/mFe4j3F9396kR7k3TJDEzkfqB9endoHcVHolc0h56CNq2dQ4n8cUX7iPcT5hQqSPcS82n23ykXPxsftzS6BY+3PEhCRkJbs/WO9qhMUc7NMaaV4B3dh4FAb6uPl7gDF5Hso5wdd2ruSLqiqo6BKkBWoW3omeDniw9uBTDMFw3bjTucJTGHY5SkGclL9sb34ACVx8vcAavw1mH8bH60L9xf0J9Q6vmAKR66N7d+crNdd7VGBzssT5eUrPpPn8pt4bBDbmzxZ1E+kWyN20vmQWZbvPtvt7kRgS7gpfdtPN71u8czT5K17pdGdRkkG7vl4tiGAY3xt5In4Z9SM9P52DGQYocpy4NefvaCY7IdQteuUW57E3bi5/Nj9ua3UbriNalbVqkJD8/qFNHwUsqjD4B5YI0Dm3M/W3vZ8mBJWw9vpWk7CTnMAC2ALysXpimSW5RLlmFWeTb86ntX5sBjQfQuU5nBS+pEDaLjZsb3Ux0cDTfHfyOAxkHsBpWgryD8LP5YTEsFDmKyCnMIaMgA5vFRptabbgp7ibqBdar6vJF5DKmT0G5YBF+EdzZ4k661uvKluNb2J26m8yCTAoLCjEw8LX50iikEW0j29I6ojUhPiHn3qhIORiGQbvIdjQJbcLOlJ1sOb6FI5lHSMtLw4EDm2Ej0DuQNpFtaFerHY1DGyv8i0iV028huSgWw0JcSBxxIXE4TAdp+WnkF+VjGAYhPiH42dRML5XP38ufznU607lOZ/Lt+c7wZTrwsnoR5hOG1XKO5/SJiHiQwpdUGIthIdw3vKrLkMucj9WHOgF1qroMEZEyqcO9iIiIiAcpfImIiIh4kMKXiIiInLfY2NjzfqqNlE7hS0RE5Cxyc+HYMefXyjZy5EgMw2DKlClu07/88kuPPwt35syZhIaGlpi+fv16HnzwQY/WUtMofImIiJRizRq49VYIDISoKOfXW2+FtWsrd7++vr48//zzpKamVu6OLlBkZCT+/v5VXUa1pvAlIiJyhmnToGdP+Ppr52Mdwfn166+hRw/nc7crS58+fYiKimLy5MllLrNmzRp69OiBn58f0dHRjBs3juzsbNf8pKQk+vfvj5+fH3FxccyePbvE5cKXX36Ztm3bEhAQQHR0NI888ghZWVmA87nNo0aNIj09HcMwMAyDf/3rX4D7Zce77rqLoUOHutVWWFhIrVq1mDVrFgAOh4PJkycTFxeHn58f7du35/PPP6+AM1V9KXyJiIicZs0aGDMGTBOKitznFRU5pz/ySOW1gFmtVp577jlee+01Dh8+XGL+vn376NevH0OGDGHLli3MnTuXNWvWMHbsWNcy9957L7///jsrV65k3rx5vP322yQnJ7ttx2KxMHXqVLZv384HH3zA8uXL+dvf/gZAt27dePXVVwkODiYpKYmkpCQee+yxErUMHz6cr7/+2hXaAJYsWUJOTg6DBw8GYPLkycyaNYu33nqL7du3M2HCBO6++25WrVpVIeerWjI9LD093QTM9PR0T+9aRERqkLI+T3Jzc80dO3aYubm5F7TdwYNN02YzTWfMKv1ls5nmkCEVcRTuRowYYQ4cONA0TdO8+uqrzfvuu880TdP84osvzOKP7NGjR5sPPvig23o//PCDabFYzNzcXHPnzp0mYK5fv941f8+ePSZgvvLKK2Xu+7PPPjMjIiJc38+YMcMMCQkpsVxMTIxrO4WFhWatWrXMWbNmueYPGzbMHDp0qGmappmXl2f6+/ubP/74o9s2Ro8ebQ4bNuzsJ6OaKc/7ToOsioiI/CE3FxYsOHWpsSxFRfDFF87lK+t5288//zzXXXddiRanzZs3s2XLFj7++GPXNNM0cTgcJCQksHv3bmw2G506dXLNb9KkCWFhYW7bWbZsGZMnT2bXrl1kZGRQVFREXl4eOTk5592ny2azcccdd/Dxxx9zzz33kJ2dzYIFC5gzZw4Ae/fuJScnhxtuuMFtvYKCAjp27Fiu81GTKHyJiIj8ISPj3MGrmMPhXL6ywlfPnj3p27cvkyZNYuTIka7pWVlZ/OlPf2LcuHEl1mnYsCG7d+8+57YPHDjALbfcwsMPP8x//vMfwsPDWbNmDaNHj6agoKBcHeqHDx9Or169SE5OZunSpfj5+dGvXz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=18\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=19\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6errbZe/i/wsiUk2Z4nHp6ekmYA4aNKjEvNTUVPP48eOuV05Ojmve9ddfb7Zt29bMy8tzTXM4HGa3bt3Mpk2buqbNmDHDBMw+ffqYDofDNX3ChAmm1Wo109LSTNM0zczMTDM0NNR84IEH3Go4evSoGRIS4jZ9xIgRJmA+8cQTJWo+vcZikydPNg3DMA8ePOia9tRTT5lnvuViYmLMESNGlFi/2AsvvGAC5qxZs8p9HsaPH28C5i+//OKalpycbIaEhJiAmZCQUOZ+z9S/f38zJibmvJePiYkx+/fvbxYVFZlRUVHms88+a5qmae7YscMEzFWrVrl+TuvXr3etV9q5/OSTT0zAXL16dZn7e+SRR0yr1WouX77cNE3n+WjatKnZt29ft/dATk6OGRcXZ95www1nrT8hIcEEynz99NNPbsd6Zn3Jycmmj4+P+Ze//MU1bdKkSaaXl5eZkpLimpafn2+Ghoaa9913n2ta8Xk5/edTvI/Fixe71Vn8M/7hhx9c0zIzM824uDgzNjbWtNvtpmma5ooVK0zAbNmypZmfn+9a9n//+58JmFu3bnVN69WrlwmYs2fPdk3btWuXCZgWi8X8+eefXdOXLFliAuaMGTNc00aPHm3WrVvXPHHihFutd955pxkSEuL6GZenpvK+/0Tk0qbLjlUgIyMDKP2v1969exMZGel6vfHGGwCkpKSwfPly7rjjDjIzMzlx4gQnTpzg5MmT9O3blz179nDkyBG3bT344INul6F69OiB3W7n4MGDgLOVJS0tjWHDhrm2d+LECaxWK1dddRUrVqwoUd/DDz9cYtrpLUnZ2dmcOHGCbt26YZomv/766wWcIacVK1YwadIk/vznP3PPPfeU+zx8++23XH311W4tPJGRka7LpZ5gtVq54447+OSTTwBnR/vo6Gh69OhR6vKnn8u8vDxOnDjB1VdfDcCmTZtKXWfWrFm8+eabvPDCC1x77bUAxMfHs2fPHu666y5OnjzpOk/Z2dlcf/31rF69+rwuvz744IMsXbq0xKtVq1Zuy7Vq1crtmCIjI2nevDn79+93TRs6dCiFhYXMnz/fNe27774jLS2NoUOHnrOWuLi4Eq1j3377LVdeeSXXXHONa1pgYCAPPvggBw4cYMeOHW7Ljxo1yq11sLjm0+ss3sadd97p+r558+aEhobSsmVLt9bq4n8Xr2+aJvPmzWPAgAGYpun2/6pv376kp6eX+Dmeb00iUnPosmMVKL48kZWVVWLe9OnTyczM5NixY24dnffu3Ytpmvzzn//kn//8Z6nbTU5Opn79+q7vGzZs6DY/LCwMcF5SAdizZw8A1113XanbCw4OdvveZrPRoEGDEssdOnSIJ598kq+++sq17WLp6emlbvtcDh8+zNChQ+nevTsvv/yya3p5zsPBgwdLvazbvHnzC6rpTOnp6W792ry9vQkPDy+x3F133cXUqVPZvHkzs2fP5s477yzRN6tYSkoKTz/9NHPmzCE5ObnE/s4UHx/PQw89xLBhw5g4caJrevHP9sxLfGdur/g9UZamTZuWOVzG6c58r4Hz/Xb6+6F9+/a0aNGCuXPnMnr0aMB5ybFWrVplvgdPFxcXV2JaWT/jli1buua3adOmzDrP/D9RrEGDBiV+RiEhISX6YIaEhLitf/z4cdLS0nj77bd5++23Sz2OM3+u51uTiNQcCl9VICQkhLp167Jt27YS84o/SM4cP6q4leKxxx4rs29MkyZN3L4v644x0zTdtvnhhx+WGAoBcOvTA847E8+8+9Jut3PDDTeQkpLC448/TosWLQgICODIkSOMHDnygjq3FxQUcNttt+Hj48Onn37qVseFnIfK8uijj7p1IO/VqxcrV64ssdxVV11F48aNGT9+PAkJCdx1111lbvOOO+7gxx9/5K9//SsdOnQgMDAQh8NBv379SpzL1NRUhgwZQrNmzXj33Xfd5hUv++KLL9KhQ4dS91WR/YbO9V4rNnToUP7zn/9w4sQJgoKC+Oqrrxg2bFiJ91ppKqKv3vnWWdZy5/t/6u677y4z+LZr1+6CahKRmkPhq4r079+fd999l3Xr1p1Xx+dGjRoB4OXldV4tEeejuAN47dq1L3ibW7duZffu3XzwwQfce++9rulLly694LrGjRtHfHw8q1evpk6dOm7zynMeYmJiXC1Ap/vtt98uuLbT/e1vf3NrnTxbK9KwYcP497//TcuWLcsMQ6mpqXz//fc8/fTTPPnkk67ppR2Dw+Fg+PDhpKWlsWzZMtfND8WKf7bBwcEV9n6pCEOHDuXpp59m3rx51KlTh4yMDLfLe+UVExNT6s9z165drvmeFBkZSVBQEHa7vULPe1ktpSJSPanPVxX529/+hr+/P/fddx/Hjh0rMf/Mv3pr165N7969mT59OklJSSWWL20IiXPp27cvwcHBPPfccxQWFl7QNov/aj+9XtM0+d///lfuegBmzJjB9OnTeeONN0oNpeU5DzfffDM///wz69atc5v/8ccfX1BtZ2rVqhV9+vRxvTp37lzmsvfffz9PPfUUL730UpnLlHYugVJHNn/66adZsmQJn3zySamX4zp37kzjxo3573//W+rl7Qt5v1SEli1b0rZtW+bOncvcuXOpW7cuPXv2vODt3Xzzzaxbt46ffvrJNS07O5u3336b2NjYEn3TKpvVamXIkCHMmzev1JbtCz3vAQEBF3wJX0QuPWr5qiJNmzZl9uzZDBs2jObNm7tGuDdNk4SEBGbPno3FYnHrY/XGG29wzTXX0LZtWx544AEaNWrEsWPH+Omnnzh8+DCbN28uVw3BwcFMmzaNe+65h06dOnHnnXcSGRnJoUOH+Oabb+jevTuvv/76WbfRokULGjduzGOPPcaRI0cIDg5m3rx5F9Rf5cSJEzzyyCO0atUKHx8fPvroI7f5gwcPJiAg4LzPw9/+9jc+/PBD+vXrx6OPPuoaaiImJsbjj26KiYnhX//611mXCQ4OpmfPnrzwwgsUFhZSv359vvvuOxISEtyW27p1K88++yw9e/YkOTm5xHm6++67sVgsvPvuu9x00020bt2aUaNGUb9+fY4cOcKKFSsIDg7m66+/PmfdmzZtKrF9cLasde3a9dwHXoqhQ4fy5JNP4uvry+jRoy9qIOEnnniCTz75hJtuuolx48YRHh7OBx98QEJCAvPmzauSQYqnTJnCihUruOqqq3jggQdo1aoVKSkpbNq0iWXLlpGSklLubXbu3Jm5c+cyceJErrjiCgIDAxkwYEAlVC8inqDwVYUGDhzI1q1beemll/juu+94//33MQyDmJgY+vfvz0MPPUT79u1dy7dq1YoNGzbw9NNPM3PmTE6ePEnt2rXp2LGj22Wq8rjrrruoV68eU6ZM4cUXXyQ/P5/69evTo0cPRo0adc71vby8+Prrrxk3bhyTJ0/G19eXwYMHM3bsWLfaz0dWVhZ5eXns2LHDdXfj6RISEggICDjv81C3bl1WrFjBn//8Z6ZMmUJERAQPPfQQ9erVc3X4vtTMnj2bP//5z7zxxhuYpsmNN97IokWLqFevnmuZkydPYpomq1atYtWqVSW2UXwptHfv3vz00088++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L++++zYsUKdu/eXUHVyoXSCPciIiJnKA5gxYGre/fuAJUavMD5qJqKsHnzZlasWEFgYGCJefv27aNZs2YVsh+5MApfIiIipYiOjubDDz90BS+ADz/8sNKCF0DTpk0xDINdu3aVuYzF4rxodXpQO3NU9aysLAYMGMDzzz9fYv3zefagVC5ddhQRESlFYmIi99xzj9u0e+65p8y7ICtCeHg4ffv25Y033iA7O7vE/LS0NCIjIwFISkpyTT+98z1Ap06d2L59O7GxsTRp0sTtVVpfMvEshS8REZEznNm5fu3ataV2wq8Mb7zxBna7nSuvvJJ58+axZ88edu7cydSpU+natSt+fn5cffXVTJkyhZ07d7Jq1Sr+8Y9/uG1jzJgxpKSkMGzYMNavX8++fftYsmQJo0aNwm63V1rtcn4UvkRERE5zZvBauXIl3bp1K9EJv7ICWKNGjdi0aRPXXnstf/nLX2jTpg033HAD33//PdOmTQPg/fffp6ioiM6dOzN+/Hj+/e9/u22jXr16rF27Frvdzo033kjbtm0ZP348oaGhrsuWUnUMs6J6952njIwMQkJCSE9PJzg42JO7FhGRGqSsz5O8vDwSEhKIi4vD19e3XNssKCigbdu27N69u9TO9acHs2bNmrF169YKH25CqqfyvO8Uf0VERP7g7e3NM888Q7NmzUq9q7H4LshmzZrxzDPPKHjJBdHdjiIiIqcZOnQogwcPLjNYRUdHq8VLLopavkRERM5wrmCl4CUXQ+FLRERExIMUvkREREQ8SH2+5KKZpsmRrCMcyTpCck4yWQVZWC1WIvwiqO1Xm0ahjQjw0qB+UrnyivJISE8gOSeZ47nHKbQX4uflR23/2tQNqEtMcAwWQ39vikjVU/iSC2aaJnvS9rD2yFr2pu4luygbAwObxYZpmthNO4ZhUMuvFp3rdKZbvW4EeQdVddlSw+QV5fFz0s+sP7qeo9lHsZt2rIYVi2HBbtoxTRMfqw+xIbF0rdeVtrXaKoSJSJVS+JILkm/PZ9mBZaz9fS159jzq+NehXmA9DMNwW67IUcTJvJN8u/9btp/YTv9G/Wke3ryKqpaaJjEzka/3fc3u1N0EegXSMKghXlavEsvlFOawL20f+9P20yWqCzfH3Uygd8kHDouIeIL+/JNyy7fnM2/3PJYeWkqAVwBNQpsQ5B1UIngB2Cw26vjXoXFoY5Kyk5i9czbbTmyrgqqlpjmQfoCPdnzEntQ9xAbHUi+wXqnBC8Dfy5+4kDgi/CJY+/taPtn1CZkFmR6uWETESeFLysU0Tb4/+D3rjq6jQWADwnzDzms9m8VGbHAs+fZ8vtjzBb9n/V7JlUpNlp6fzud7PudE7gkahzbG23p+t/0HeQcRGxzLthPb+Hrf1zhMRyVXKnJpWLlyJYZhkJaWdtblYmNjefXVVz1S0+VM4UvKZV/aPtb+vpZafrXw9/IvdRlrXgF+JzOw5hW4TTcMg+igaFLyUliUsIhCR6EnSpYaxjRNlh1cRmJGIrHBsaX23yrIs5Jx0o+CPGuJeT5WH+oH1efX5F+JT473QMVS7eXmwrFjzq+VbOTIkRiGgWEYeHt706RJE5555hmKioouarvdunUjKSmJkJAQAGbOnEloaGiJ5davX8+DDz54UfuSc7uoPl9Tpkxh0qRJPProo0rKlwHTNPkp6SdyCnOoH1i/xPyoX/fS/qPlxK3cgsVh4rAYJPRux+Z7rudoh8aAM4A1CGrAzpSd7EvbR4vwFp4+DKnmkrKT+DX5V+oE1MFqcQ9Xe3+NYvlH7dmyMg7TYcGwOGjXO4Hr79lM4w5HXcsFegVy0jjJD0d+oG1kW7wspV+ulMvcmjXw8suwYAE4HGCxwMCB8Je/QPfulbbbfv36MWPGDPLz8/n2228ZM2YMXl5eTJo06YK36e3tTVRU1DmXi4yMvOB9yPm74Jav9evXM336dNq1a1eR9cgl7FjOMX5L+Y3a/rVLzGv96WoGj36FuFVbsTicz2q3OEziVm1l8H0v0/qzH1zL+tn8cJgOtTrIBdl2YhuZhZmEeIe4TV/9aWteGT2YraucwQvAdFjYuiqOl+8bzA+ftXZbvo5/HQ5nHmZ/2n6P1S7VyLRp0LMnfP21M3iB8+vXX0OPHvDWW5W2ax8fH6KiooiJieHhhx+mT58+fPXVV6SmpnLvvfcSFhaGv78/N910E3v27HGtd/DgQQYMGEBYWBgBAQG0bt2ab7/9FnC/7Lhy5UpGjRpFenq6q5XtX//6F+B+2fGuu+5i6NChbrUVFhZSq1YtZs2a9ccpcTB58mTi4uLw8/Ojffv2fP7555V2bmqKCwpfWVlZDB8+nHfeeYewsPPr8yPV3+9Zv5NdmE2wd7Db9Khf99JzylwMEyx29z40FrsDw4Sek+cQFb/PNT3EO4T9aft16VHKbW/aXgJsAW43eOz9NYq5U3qCaeCwu/9ac9gtYBrMmdyTffGn/vL3tflS5CgiKTvJY7VLNbFmDYwZA6YJZ17uKypyTn/kEVi71iPl+Pn5UVBQwMiRI9mwYQNfffUVP/30E6ZpcvPNN1NY6Pw9OmbMGPLz81m9ejVbt27l+eefJzCw5F293bp149VXXyU4OJikpCSSkpJ47LHHSiw3fPhwvv76a7KyslzTlixZQk5ODoMHDwZg8uTJzJo1i7feeovt27czYcIE7r77blatWlVJZ6NmuKDwNWbMGPr370+fPn0quh65hB3PPQ5Q4q7G9h8tx7Sc/a1kWiy0/2i563t/L3+yCrM4mXuy4guVGiunMIcTuSdK9Ddc/lF7LBbzrOtaLCbLP2rvNs1msXEk60iF1ynV3Msvg7Vkf0E3Viu88kqllmGaJsuWLWPJkiU0bNiQr776infffZcePXrQvn17Pv74Y44cOcKXX34JwKFDh+jevTtt27alUaNG3HLLLfTs2bPEdr29vQkJCcEwDKKiooiKiio1pPXt25eAgAC++OIL17TZs2fzf//3fwQFBZGfn89zzz3H+++/T9++fWnUqBEjR47k7rvvZvr06ZV2XmqCcvf5mjNnDps2bWL9+vXntXx+fj75+fmu7zMyMsq7S7lE5Bbllghe1rwCVx+vs7HYHcSt2Iw1rwC7rzdeFi+KHEXk2/PPup7I6QrsBRQ5ityemFCQZ3X18Tobh93C5hVxFORZ8fa1A+Bl8SKrIOus68llJjf3VB+vsykqgi++cC7v51ehJSxcuJDAwEAKCwtxOBzcdddd3HrrrSxcuJCrrrrKtVxERATNmzdn586dAIwbN46HH36Y7777jj59+jBkyJCL6hpks9m44447+Pjjj7nnnnvIzs5mwYIFzJkzB4C9e/eSk5PDDTfc4LZeQUEBHTt2vOD9Xg7K1fKVmJjIo48+yscff4yvr+95rTN58mRCQkJcr+jo6AsqVKqe1bDCGRnLOzvvnMGrmMVh4p2dBzj/ojMMQyONS7kYhoGB4TZERF629zmDVzHTYSEv+9SwFA7Tgc2isablNBkZ5w5exRwO5/IV7NprryU+Pp49e/aQm5vLBx98UOo4ime6//772b9/P/fccw9bt26lS5cuvPbaaxdVy/Dhw/n+++9JTk7myy+/xM/Pj379+gG4Lkd+8803xMfHu147duxQv69zKNcn38aNG0lOTqZTp07YbDZsNhurVq1i6tSp2Gw27HZ7iXUmTZpEenq665WYmFhhxYtnhfmGYZ6RvgoCfHFYzv1LAcBhMSgIcIb2nKIc/Gx+hPqEVnSZUoMFeQcR4BVAbtGpW/59AwowLOf3YWlYHPgGnBoCJd+eT1TAue8Ak8tIcLDzrsbzYbE4l69gAQEBNGnShIYNG2KzOf84aNmyJUVFRfzyyy+u5U6ePMlvv/1Gq1atXNOio6N56KGHmD9/Pn/5y1945513St2Ht7d3qZ/ZZ+rWrRvR0dHMnTuXjz/+mNtvvx0vL+fdwa1atcLHx4dDhw7RpEkTt5caWs6uXH/yXX/99WzdutVt2qhRo2jRogWPP/441lKukfv4+ODj43NxVcolIdIvEqthpcBe4BrU0u7rTULvds67HO1lfwA6rBYSerfD7utcL6swi/qB9Qn00iNe5PxZDAsNgxuy7ug61zRvXzvteiewdVVcic72butancNOFF9yLG49K+3uXbmM+fk5h5P4+uuSne1PZ7M5l6vgS45ladq0KQMHDuSBBx5g+vTpBAUF8cQTT1C/fn0GDhwIwPjx47npppto1qwZqamprFixgpYtW5a6vdjYWLKysvj+++9p3749/v7++PuXPnbjXXfdxVtvvcXu3btZsWKFa3pQUBCPPfYYEyZMwOFwcM0115Cens7atWsJDg5mxIgRFX8iaohytXwFBQXRpk0bt1dAQAARERG0adOmsmqUS0RsSCxRAVGujvfFNt99HcY5mukNh4PNd18HOD/0cotyaR/Z/rya0kVO1yqiFQYGBfZTLVjX3b0Zh+Ps7yWHw+C6uze7vk/NSyXUJ5SmoU0rrVappiZOhHO1CtntMGGCZ+r5w4wZM+jcuTO33HILXbt2xTRNvv32W1dLlN1uZ8yYMbRs2ZJ+/frRrFkz3nzzzVK31a1bNx566CGGDh1KZGQkL7zwQpn7HT58ODt27KB+/fp0P2N8s2effZZ//vOfTJ482bXfb775hri4uIo78BrIME3z/DrslKF379506NDhvAdZzcjIICQkhPT0dIIroblWKtfqw6uZv2c+scGxbo90af3ZD/ScPAfTYnFrAXNYLRgOB6sn3cn223sAziErfG2+jOkw5rwfTyRSLN+ez5vxb5KUlURsSKxr+g+ftWbO5J5YLKZbC5jF6sDhMLhz0mp63L4dALtpZ2/qXq5teC2Dmgzy8BFIRSnr8yQvL4+EhATi4uLOu39yCW+95RxOwmp1bwGz2ZzB68034aGHLvIIpCYpz/vuonuarly58mI3IdXIFVFXsO3ENvam7qVxaGNXy9X223twsmk95wj3Kza7j3B/93WuEe6zC7PJKcqhf6P+Cl5yQXysPtwYeyMfbv+Q1LxU1/uox+3bqdf0JMs/as/mFe4j3F9396kR7k3TJDEzkfqB9endoHcVHolc0h56CNq2dQ4n8cUX7iPcT5hQqSPcS82n23ykXPxsftzS6BY+3PEhCRkJbs/WO9qhMUc7NMaaV4B3dh4FAb6uPl7gDF5Hso5wdd2ruSLqiqo6BKkBWoW3omeDniw9uBTDMFw3bjTucJTGHY5SkGclL9sb34ACVx8vcAavw1mH8bH60L9xf0J9Q6vmAKR66N7d+crNdd7VGBzssT5eUrPpPn8pt4bBDbmzxZ1E+kWyN20vmQWZbvPtvt7kRgS7gpfdtPN71u8czT5K17pdGdRkkG7vl4tiGAY3xt5In4Z9SM9P52DGQYocpy4NefvaCY7IdQteuUW57E3bi5/Nj9ua3UbriNalbVqkJD8/qFNHwUsqjD4B5YI0Dm3M/W3vZ8mBJWw9vpWk7CTnMAC2ALysXpimSW5RLlmFWeTb86ntX5sBjQfQuU5nBS+pEDaLjZsb3Ux0cDTfHfyOAxkHsBpWgryD8LP5YTEsFDmKyCnMIaMgA5vFRptabbgp7ibqBdar6vJF5DKmT0G5YBF+EdzZ4k661uvKluNb2J26m8yCTAoLCjEw8LX50iikEW0j29I6ojUhPiHn3qhIORiGQbvIdjQJbcLOlJ1sOb6FI5lHSMtLw4EDm2Ej0DuQNpFtaFerHY1DGyv8i0iV028huSgWw0JcSBxxIXE4TAdp+WnkF+VjGAYhPiH42dRML5XP38ufznU607lOZ/Lt+c7wZTrwsnoR5hOG1XKO5/SJiHiQwpdUGIthIdw3vKrLkMucj9WHOgF1qroMEZEyqcO9iIiIiAcpfImIiIh4kMKXiIiInLfY2NjzfqqNlE7hS0RE5Cxyc+HYMefXyjZy5EgMw2DKlClu07/88kuPPwt35syZhIaGlpi+fv16HnzwQY/WUtMofImIiJRizRq49VYIDISoKOfXW2+FtWsrd7++vr48//zzpKamVu6OLlBkZCT+/v5VXUa1pvAlIiJyhmnToGdP+Ppr52Mdwfn166+hRw/nc7crS58+fYiKimLy5MllLrNmzRp69OiBn58f0dHRjBs3juzsbNf8pKQk+vfvj5+fH3FxccyePbvE5cKXX36Ztm3bEhAQQHR0NI888ghZWVmA87nNo0aNIj09HcMwMAyDf/3rX4D7Zce77rqLoUOHutVWWFhIrVq1mDVrFgAOh4PJkycTFxeHn58f7du35/PPP6+AM1V9KXyJiIicZs0aGDMGTBOKitznFRU5pz/ySOW1gFmtVp577jlee+01Dh8+XGL+vn376NevH0OGDGHLli3MnTuXNWvWMHbsWNcy9957L7///jsrV65k3rx5vP322yQnJ7ttx2KxMHXqVLZv384HH3zA8uXL+dvf/gZAt27dePXVVwkODiYpKYmkpCQee+yxErUMHz6cr7/+2hXaAJYsWUJOTg6DBw8GYPLkycyaNYu33nqL7du3M2HCBO6++25WrVpVIeerWjI9LD093QTM9PR0T+9aRERqkLI+T3Jzc80dO3aYubm5F7TdwYNN02YzTWfMKv1ls5nmkCEVcRTuRowYYQ4cONA0TdO8+uqrzfvuu880TdP84osvzOKP7NGjR5sPPvig23o//PCDabFYzNzcXHPnzp0mYK5fv941f8+ePSZgvvLKK2Xu+7PPPjMjIiJc38+YMcMMCQkpsVxMTIxrO4WFhWatWrXMWbNmueYPGzbMHDp0qGmappmXl2f6+/ubP/74o9s2Ro8ebQ4bNuzsJ6OaKc/7ToOsioiI/CE3FxYsOHWpsSxFRfDFF87lK+t5288//zzXXXddiRanzZs3s2XLFj7++GPXNNM0cTgcJCQksHv3bmw2G506dXLNb9KkCWFhYW7bWbZsGZMnT2bXrl1kZGRQVFREXl4eOTk5592ny2azcccdd/Dxxx9zzz33kJ2dzYIFC5gzZw4Ae/fuJScnhxtuuMFtvYKCAjp27Fiu81GTKHyJiIj8ISPj3MGrmMPhXL6ywlfPnj3p27cvkyZNYuTIka7pWVlZ/OlPf2LcuHEl1mnYsCG7d+8+57YPHDjALbfcwsMPP8x//vMfwsPDWbNmDaNHj6agoKBcHeqHDx9Or169SE5OZunSpfj5+dGvXz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ims = []\n", + "for t in range(T): \n", + " print(f'Time t={t}')\n", + " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", + " ims.append(render(env_info, env_state))\n", + "ims = [np.array(i)[:,:,:3] for i in ims]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
\n", + "
T-maze
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import mediapy\n", + "\n", + "with mediapy.set_show_save_dir(\".\"):\n", + " mediapy.show_videos({\"T-maze\": ims}, fps=2, codec='gif')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "hackathon", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/envs/graph_worlds_demo.ipynb b/examples/envs/graph_worlds_demo.ipynb new file mode 100644 index 00000000..900110a9 --- /dev/null +++ b/examples/envs/graph_worlds_demo.ipynb @@ -0,0 +1,256 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Graph worlds\n", + "\n", + "This environment demonstrates agents that can navigate a graph and find an object. Object is only visible when agent is at the same location as the object." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp\n", + "from jax import random as jr\n", + "\n", + "key = jr.PRNGKey(0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Start by generating a graph of locations" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import networkx as nx\n", + "from pymdp.jax.envs import GraphEnv\n", + "\n", + "def generate_connected_clusters(cluster_size=2, connections=2):\n", + " edges = []\n", + " connecting_node = 0\n", + " while connecting_node < connections * cluster_size:\n", + " edges += [(connecting_node, a) for a in range(connecting_node + 1, connecting_node + cluster_size + 1)]\n", + " connecting_node = len(edges)\n", + " graph = nx.Graph()\n", + " graph.add_edges_from(edges)\n", + " return graph, {\n", + " \"locations\": [\n", + " (f\"hallway {i}\" if len(list(graph.neighbors(loc))) > 1 else f\"room {i}\")\n", + " for i, loc in enumerate(graph.nodes)\n", + " ]\n", + " }\n", + "\n", + "graph, _ = generate_connected_clusters(cluster_size=3, connections=2)\n", + "nx.draw(graph, with_labels=True, font_weight=\"bold\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can create a GraphEnv given this graph. We specify two object locations and two agent locations. This will effectively create the environment with a batch size of 2." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "env = GraphEnv(graph, object_locations=[3, 5], agent_locations=[0, 1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To create an Agent, we reuse the environment's A and B tensors, but give the agent a uniform initial belief about the object location, and a preference to find (see) the object." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.agent import Agent\n", + "\n", + "A = [a.copy() for a in env.params[\"A\"]]\n", + "B = [b.copy() for b in env.params[\"B\"]]\n", + "A_dependencies = env.dependencies[\"A\"]\n", + "B_dependencies = env.dependencies[\"B\"]\n", + "\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "C[1] = C[1].at[1].set(1.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", + "\n", + "agent = Agent(A, B, C, D, A_dependencies=A_dependencies, B_dependencies=B_dependencies, policy_len=2, apply_batch=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using the rollout function, we can easily simulate two agents in parallel for 10 timesteps..." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.envs.rollout import rollout\n", + "\n", + "last, result, env = rollout(agent, env, 10, key)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result dict contains the executed actions, observations, environment state and beliefs over states and policies." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['action', 'env', 'observation', 'qpi', 'qs'])" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result.keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The beliefs result is an array for each state factor, and the shape is [batch_size x time x factor_size]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n", + "(2, 10, 7)\n" + ] + } + ], + "source": [ + "print(len(result[\"qs\"]))\n", + "print(result[\"qs\"][0].shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can plot the agent's beliefs over time." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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0qqurpbL5ar35zbrasmPskAgoO+++04Oh0M2my2qj+31euV2u1VRUSGn0xnVx8blWO/4Yr3jjzWPL9a7bpZlqbq6Wh07dlRKSv3vlMf9DD0lJUWdOnWK6XM4nU7+MsQR6x1frHf8sebxxXpf7kpn5hfxoTgAAAxA0AEAMIBRQbfb7crPz5fdbk/0KM0C6x1frHf8sebxxXo3Ttw/FAcAAKLPqDN0AACaK4IOAIABCDoAAAYg6AAAGICgAwBgAGOCvmTJEnXt2lVpaWkaNGiQdu7cmeiRjFVQUKDbbrtNDodDmZmZmjBhgr788stEj9VszJ8/XzabTTNmzEj0KMb69ttvNWnSJLVr107p6enq06ePdu3aleixjOX3+/Xss8+qW7duSk9P1/XXX6/nnnvuqr+MBKGMCPqbb76pmTNnKj8/X2VlZerXr59Gjx6tY8eOJXo0I23ZskV5eXnasWOHNm7cqPPnz2vUqFGqqalJ9GjGKykp0SuvvKK+ffsmehRjff/99xo6dKhatmyp999/X/v379eLL76oNm3aJHo0Yy1YsECFhYVavHixPv/8cy1YsEB//etf9dJLLyV6tKRixHXogwYN0m233abFixdLuvALYNxut5544gnNmjUrwdOZ7/jx48rMzNSWLVv4LXoxdObMGfXv318vv/yynn/+ed1yyy1atGhRoscyzqxZs/Tpp5/q3//+d6JHaTbGjRun9u3b69VXXw3u++Uvf6n09HStWrUqgZMll6Q/Qz937pxKS0s1cuTI4L6UlBSNHDlS27dvT+BkzYfH45EktW3bNsGTmC0vL09jx44N+buO6Fu3bp1ycnL04IMPKjMzU7feequWL1+e6LGMNmTIEG3atEkHDhyQJO3Zs0effPKJxowZk+DJkkvcf9tatJ04cUJ+v1/t27cP2d++fXt98cUXCZqq+QgEApoxY4aGDh2q3r17J3ocYxUXF6usrEwlJSWJHsV4X3/9tQoLCzVz5kz9+c9/VklJiZ588km1atVKubm5iR7PSLNmzZLX61XPnj2Vmpoqv9+vuXPnauLEiYkeLakkfdCRWHl5edq7d68++eSTRI9irIqKCk2fPl0bN25UWlpaoscxXiAQUE5OjubNmydJuvXWW7V3714tXbqUoMfIP//5TxUVFWn16tXq1auXdu/erRkzZqhjx46seRiSPujXXXedUlNTdfTo0ZD9R48eVYcOHRI0VfMwbdo0vffee9q6dWvMf8d9c1ZaWqpjx46pf//+wX1+v19bt27V4sWL5fP5lJqamsAJzZKVlaXs7OyQfTfffLPefvvtBE1kvj/+8Y+aNWuWfvWrX0mS+vTpo8OHD6ugoICghyHp30Nv1aqVBgwYoE2bNgX3BQIBbdq0SYMHD07gZOayLEvTpk3T2rVrtXnzZnXr1i3RIxltxIgR+uyzz7R79+7glpOTo4kTJ2r37t3EPMqGDh162WWYBw4cUJcuXRI0kfl++OEHpaSE5ig1NVWBQCBBEyWnpD9Dl6SZM2cqNzdXOTk5GjhwoBYtWqSamhpNmTIl0aMZKS8vT6tXr9a7774rh8OhqqoqSZLL5VJ6enqCpzOPw+G47PMJrVu3Vrt27fjcQgw89dRTGjJkiObNm6eHHnpIO3fu1LJly7Rs2bJEj2as8ePHa+7cuercubN69eql//znP1q4cKEee+yxRI+WXCxDvPTSS1bnzp2tVq1aWQMHDrR27NiR6JGMJanObcWKFYkerdm46667rOnTpyd6DGOtX7/e6t27t2W3262ePXtay5YtS/RIRvN6vdb06dOtzp07W2lpaVb37t2tZ555xvL5fIkeLakYcR06AADNXdK/hw4AAAg6AABGIOgAABiAoAMAYACCDgCAAQg6AAAGIOgAABiAoAMAYACCDgCAAQg6AAAGIOgAABjg/wFnGIwE3fLWPQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "agent_idx = 0\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.title.set_text(\"Agent 1\")\n", + "\n", + "# we plot the agent location belief as blue dots\n", + "T = result[\"qs\"][0].shape[1]\n", + "locations = [jnp.argmax(result[\"qs\"][0][agent_idx, t, :]) for t in range(T)]\n", + "ax.scatter(\n", + " jnp.arange(T), locations, c=\"tab:blue\"\n", + ")\n", + "# and object location beliefs as greyscale intensity\n", + "ax.imshow(result[\"qs\"][1][agent_idx, :, :].T, cmap=\"gray_r\", vmin=0.0, vmax=1.0)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/generalized_tmaze_demo.ipynb b/examples/generalized_tmaze_demo.ipynb deleted file mode 100644 index c4d6f4f1..00000000 --- a/examples/generalized_tmaze_demo.ipynb +++ /dev/null @@ -1,211 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Generalized T-Maze environment" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "from pymdp.jax.envs.generalized_tmaze import (\n", - " GeneralizedTMazeEnv, parse_maze, render \n", - ")\n", - "from pymdp.jax.envs.rollout import rollout\n", - "from pymdp.jax.agent import Agent\n", - "\n", - "import numpy as np \n", - "import jax.random as jr \n", - "import jax.numpy as jnp\n", - "import jax.tree_util as jtu " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Create the environment\n", - "\n", - "In this example we create a simple square environment, where multiple cues are present, and multiple reward pairs. Each cue indicates the location of one of the reward pairs. \n", - "\n", - "The agent is can move in the grid world using actions up, down, left and right, and observes the current tile it is at. \n", - "\n", - "The grid world is specified by a matrix using the following labels: \n", - "\n", - "```\n", - "0: Empty space\n", - "1: The initial position of the agent\n", - "2: Walls\n", - "3 + i: Cue for reward i\n", - "4 + i: Potential reward location i 1\n", - "4 + i: Potential reward location i 2\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def get_maze_matrix(small=False):\n", - " if small:\n", - " M = np.zeros((3, 5))\n", - "\n", - " # Set the reward locations\n", - " M[0,1] = 4\n", - " M[1,1] = 5\n", - " M[1,3] = 7\n", - " M[0,3] = 8\n", - "\n", - " # Set the cue locations\n", - " M[2,0] = 3\n", - " M[2,4] = 6\n", - "\n", - " # Set the initial position\n", - " M[2,3] = 1\n", - " else:\n", - "\n", - " M = np.zeros((5, 5))\n", - "\n", - " # Set the reward locations\n", - " M[0,1] = 4\n", - " M[1,1] = 5\n", - " M[1,3] = 7\n", - " M[0,3] = 8\n", - " M[4,1] = 10\n", - " M[4,3] = 11\n", - "\n", - " # Set the cue locations\n", - " M[2,0] = 3\n", - " M[2,4] = 6\n", - " M[3,2] = 9\n", - "\n", - " # Set the initial position\n", - " M[2,2] = 1\n", - " return M\n", - "\n", - "M = get_maze_matrix(small=False)\n", - "env_info = parse_maze(M)\n", - "tmaze_env = GeneralizedTMazeEnv(env_info)\n", - "_ = render(env_info, tmaze_env)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Create the agent. \n", - "\n", - "The PyMDPEnv class consists of a params dict that contains the A, B, and D vectors of the environment. We initialize our agent using the same parameters. This means that the agent has full knowledge about the environment transitions, and likelihoods. We initialize the agent with a flat prior, i.e. it does not know where it, or the reward is. Finally, we set the C vector to have a preference only over the rewarding observation of cue-reward pair 1 (i.e. C[1][1] = 1 and zero for other values). " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", - "B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", - "A_dependencies = tmaze_env.dependencies[\"A\"]\n", - "B_dependencies = tmaze_env.dependencies[\"B\"]\n", - "\n", - "# [position], [cue], [reward]\n", - "C = [jnp.zeros(a.shape[:2]) for a in A]\n", - "\n", - "rewarding_modality = 2 + env_info[\"num_cues\"]\n", - "#rewarding_modality = -1\n", - "\n", - "C[rewarding_modality] = C[rewarding_modality].at[:,1].set(2.0)\n", - "C[rewarding_modality] = C[rewarding_modality].at[:,2].set(-3.0)\n", - "\n", - "\n", - "D = [jnp.ones(b.shape[:2]) for b in B]\n", - "\n", - "agent = Agent(\n", - " A, B, C, D, \n", - " None, None, None, \n", - " policy_len=7,\n", - " A_dependencies=A_dependencies, \n", - " B_dependencies=B_dependencies,\n", - " apply_batch=False\n", - ")\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Rollout an agent episode \n", - "\n", - "Using the rollout function, we can run an active inference agent in this environment over a specified number of discrete timesteps using the parameters previously set. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "key = jr.PRNGKey(0)\n", - "_, info, _ = rollout(agent, tmaze_env, num_timesteps=15, rng_key=key)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ims = []\n", - "for t in range(15): \n", - " print(f'Time t={t}')\n", - " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", - " ims.append(render(env_info, env_state))\n", - "ims = [np.array(i) for i in ims]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import imageio as io\n", - "\n", - "io.mimsave('tmp_dir/gif.gif', ims, format=\"GIF\", duration=1)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "hackathon", - "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.12.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/examples/graph_worlds_demo.ipynb b/examples/graph_worlds_demo.ipynb deleted file mode 100644 index 0a0d92d3..00000000 --- a/examples/graph_worlds_demo.ipynb +++ /dev/null @@ -1,340 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Graph worlds\n", - "\n", - "This environment demonstrates agents that can navigate a graph and find an object. Object is only visible when agent is at the same location as the object." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import jax.numpy as jnp\n", - "from jax import random as jr\n", - "\n", - "key = jr.PRNGKey(0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Start by generating a graph of locations" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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+BymvAH4hDFjxiglJUVms1k9e/bUokWLjI4EqKCgQKNGjdJ3332nzz//nDIJlINCCcBntG/fXsnJyRo+fLgmTJigBx54QMXFxUbHQoAqKSnRlClTtHXrVq1atUpXXXWV0ZEAn0WhBOBTateurQULFuiVV17RP//5Tw0YMEDHjh0zOhYCjMvl0t13360VK1Zo0aJFslqtRkcCfBqFEoDPMZlMuu+++xQXF6fU1FR169ZNW7ZsMToWAsjjjz+uf//735o7d65GjBhhdBzA51EoAfis2NhY7dy5U23atJHdbterr77K1kLwuldffVXPPfecZs2apZtvvtnoOEC1QKEE4NOaNm2qjRs36t5779X999+vyZMnKzc31+hY8FPz58/X/fffr4cfflgPPPCA0XGAaoNtgwBUG4sWLdKtt96qqKgoLVu2TO3atTM6EvzImjVrNHLkSN14442aO3euTCaT0ZGAaoMzlACqjfHjx2v79u1yOBzq0aOHli9fbnQk+ImtW7dq7NixGjZsmP71r39RJoGLRKEEUK1ceeWV2r59uwYNGqQxY8bokUcekcPhMDoWqrF9+/bp2muvVc+ePbVw4UIFBQUZHQmodpjyBlAtuVwuzZo1S4888oj69++vBQsWqHHjxkbHQjVz+PBhRUdHq1GjRtq8ebPq1atndCSgWqJQAqjW4uLiNGHCBIWEhGjJkiXq3bu30ZFQTfz000+KjY2Vw+FQYmKiLrnkEqMjAdUWU94AqjW73a6dO3eqRYsWslqtevPNN9laCOeVk5OjoUOH6uTJk1q3bh1lEnAThRJAtdeiRQtt3rxZd955p/785z/rlltuUX5+vtGx4KMKCws1atQopaamau3atbrsssuMjgRUe0x5A/ArH374oe644w61bdtWy5YtoyzgHCUlJZo4caJWrVqldevWyWazGR0J8AucoQTgV2644QZt27ZNeXl56t69uz799FOjI8FHuFwu3XPPPVq2bJk+/vhjyiTgQRRKAH7nqquu0pdffimbzaYRI0boiSeeUElJidGxYLAnn3xSb7/9tt555x1dd911RscB/ApT3gD8ltPp1PPPP6/HHntMgwcP1vz58xUREWF0LBjgn//8p+677z698MILevjhh42OA/gdCiUAv7du3TpNnjxZtWvX1tKlS9W9e3ejI6EKffTRR5oyZYoefPBB/eMf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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import networkx as nx\n", - "from pymdp.jax.envs import GraphEnv\n", - "\n", - "def generate_connected_clusters(cluster_size=2, connections=2):\n", - " edges = []\n", - " connecting_node = 0\n", - " while connecting_node < connections * cluster_size:\n", - " edges += [(connecting_node, a) for a in range(connecting_node + 1, connecting_node + cluster_size + 1)]\n", - " connecting_node = len(edges)\n", - " graph = nx.Graph()\n", - " graph.add_edges_from(edges)\n", - " return graph, {\n", - " \"locations\": [\n", - " (f\"hallway {i}\" if len(list(graph.neighbors(loc))) > 1 else f\"room {i}\")\n", - " for i, loc in enumerate(graph.nodes)\n", - " ]\n", - " }\n", - "\n", - "graph, _ = generate_connected_clusters(cluster_size=3, connections=2)\n", - "nx.draw(graph, with_labels=True, font_weight=\"bold\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can create a GraphEnv given this graph. We specify two object locations and two agent locations. This will effectively create the environment with a batch size of 2." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "env = GraphEnv(graph, object_locations=[3, 5], agent_locations=[0, 1])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To create an Agent, we reuse the environment's A and B tensors, but give the agent a uniform initial belief about the object location, and a preference to find (see) the object." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "from pymdp.jax.agent import Agent\n", - "\n", - "A = [a.copy() for a in env.params[\"A\"]]\n", - "B = [b.copy() for b in env.params[\"B\"]]\n", - "A_dependencies = env.dependencies[\"A\"]\n", - "B_dependencies = env.dependencies[\"B\"]\n", - "\n", - "C = [jnp.zeros(a.shape[:2]) for a in A]\n", - "C[1] = C[1].at[1].set(1.0)\n", - "\n", - "D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", - "\n", - "agent = Agent(A, B, C, D,None, None, None, A_dependencies=A_dependencies, B_dependencies=B_dependencies, policy_len=2)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Using the rollout function, we can easily simulate two agents in parallel for 10 timesteps..." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "from pymdp.jax.envs.rollout import rollout\n", - "\n", - "last, result, env = rollout(agent, env, 10, key)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The result dict contains the executed actions, observations, environment state and beliefs over states and policies." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "dict_keys(['action', 'env', 'observation', 'qpi', 'qs'])" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "result.keys()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The beliefs result is an array for each state factor, and the shape is [batch_size x time x factor_size]" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2\n", - "(2, 10, 7)\n" - ] - } - ], - "source": [ - "print(len(result[\"qs\"]))\n", - "print(result[\"qs\"][0].shape)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can plot the agent's beliefs over time." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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CYMyIADQOhp6xqJQKBx0/QMPPBCf//znj+g1/LkpALSeQXnG4ig+8gIAGAV8VwgAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkGZsswdoVYVCodkjpKjX680eAYARxBULACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACBNQ2GxatWqmD17dnR0dERHR0fMmzcv1q1bN1izAQAtpqGwmDZtWtx+++2xbdu22Lp1a3zsYx+LT37yk/H73/9+sOYDAFpIoV6v14/mBSZOnBjf/e5347rrrjui7avVapRKpahUKtHR0XE0h26qQqHQ7BFSHOXpB2CUONL377EDPUBvb2/89Kc/jf3798e8efMOuV2tVotarXbAYADAyNTww5vPP/98vP/9749isRhf/OIXY+3atXH66acfcvuenp4olUr9S7lcPqqBAYDhq+FbIe+880689tprUalU4mc/+1n84Ac/iI0bNx4yLg52xaJcLrsVMky4FQLAkTjSWyFH/YzFggUL4tRTT4177703dbDhTlgAMJoc6fv3UX+ORV9f3wFXJACA0auhhzeXL18eCxcujOnTp8fevXtjzZo18dRTT8WTTz45WPMBAC2kobDYs2dPfO5zn4t//OMfUSqVYvbs2fHkk0/Gxz/+8cGaDwBoIQ2Fxf333z9YcwAAI4DvCgEA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0oxt9gCtql6vN3sEABh2XLEAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIcVVjcfvvtUSgUYunSpUnjAACtbMBhsWXLlrj33ntj9uzZmfMAAC1sQGGxb9++WLRoUdx3331x7LHHvue2tVotqtXqAQsAMDINKCy6urrisssuiwULFhx2256eniiV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9evXx7vvvhuXXHJJ7N+/v9mjjWpbtmyJe++9N2bPnt3sUUatt99+O+bPnx/ve9/7Yt26dfGHP/whvve978Wxxx7b7NFGnTvuuCNWrVoVK1eujD/+8Y9xxx13xHe+85246667mj1ayxtRn2Mxd+7cmDNnTqxcuTIi/vcLz8rlctxwww2xbNmyJk83er355psxefLk2LhxY1x44YXNHmdU2rdvX5x77rnx/e9/P7797W/H2WefHStWrGj2WKPOsmXL4je/+U38+te/bvYoo94nPvGJmDJlStx///396z71qU/FhAkT4oc//GETJ2t9I+aKxTvvvBPbtm2LBQsW9K8bM2ZMLFiwIJ599tkmTkalUomIiIkTJzZ5ktGrq6srLrvssgP+/2DoPfbYY9HZ2RlXXXVVTJ48Oc4555y47777mj3WqHTBBRfEhg0b4qWXXoqIiN/97nfx9NNPx8KFC5s8Wesb8m83HSxvvfVW9Pb2xpQpUw5YP2XKlPjTn/7UpKno6+uLpUuXxvz582PWrFnNHmdUeuihh2L79u2xZcuWZo8y6v3lL3+JVatWRXd3d3zta1+LLVu2xI033hjjxo2LxYsXN3u8UWXZsmVRrVZj5syZ0dbWFr29vXHrrbfGokWLmj1ayxsxYcHw1NXVFS+88EI8/fTTzR5lVNq5c2csWbIk1q9fH+PHj2/2OKNeX19fdHZ2xm233RYREeecc0688MILcc899wiLIfaTn/wkfvSjH8WaNWvijDPOiB07dsTSpUtj6tSpzsVRGjFhcdxxx0VbW1vs3r37gPW7d++OE044oUlTjW7XX399PP7447Fp06aYNm1as8cZlbZt2xZ79uyJc889t39db29vbNq0KVauXBm1Wi3a2tqaOOHocuKJJ8bpp59+wLrTTjstfv7znzdpotHrK1/5Sixbtiw++9nPRkTEmWeeGX/729+ip6dHWBylEfOMxbhx4+K8886LDRs29K/r6+uLDRs2xLx585o42ehTr9fj+uuvj7Vr18avfvWrmDFjRrNHGrUuvvjieP7552PHjh39S2dnZyxatCh27NghKobY/Pnz/+tPr1966aU46aSTmjTR6PXvf/87xow58C2wra0t+vr6mjTRyDFirlhERHR3d8fixYujs7Mzzj///FixYkXs378/rr322maPNqp0dXXFmjVr4tFHH4329vbYtWtXRESUSqWYMGFCk6cbXdrb2//r2ZZjjjkmJk2a5JmXJrjpppviggsuiNtuuy0+/elPx3PPPRerV6+O1atXN3u0Uefyyy+PW2+9NaZPnx5nnHFG/Pa3v40777wzvvCFLzR7tNZXH2Huuuuu+vTp0+vjxo2rn3/++fXNmzc3e6RRJyIOujzwwAPNHo16vf6Rj3ykvmTJkmaPMWr94he/qM+aNateLBbrM2fOrK9evbrZI41K1Wq1vmTJkvr06dPr48ePr59yyin1r3/96/Vardbs0VreiPocCwCguUbMMxYAQPMJCwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANL8D2eqNJ/7/+Y6AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "\n", - "fig, ax = plt.subplots()\n", - "ax.imshow(result[\"qs\"][0][0, :, :].T, cmap=\"gray_r\", vmin=0.0, vmax=1.0)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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b7mff/758eKLL/bYt3Tp0pg5c2Z861vf+lDMIyIymUxkMplKlgEAKlRR0LPZbMyePbvHviOOOCImTJjwof0AwNDxTXEAkICK73L/v5555plBGAMAGAhX6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgARUF/fvf/37U1dX12GbOnFmt2QCAPhpd6QknnXRSPP300//zBKMrfgoAYJBVXOPRo0fH0UcfXY1ZAIB+qvgz9FdeeSWmTJkSxx13XCxevDh27dr1kceXSqUoFos9NgBgcFUU9Hnz5sV9990XTzzxRKxZsybeeOON+MxnPhP79u3r9ZyWlpbI5/PdW6FQGPDQAEBPdeVyudzfk99///045phj4rbbbotrrrnmkMeUSqUolUrdj4vFYhQKhWhra4tsNtvfpWtixowZtR4BgBGmWCxGPp+Pjo6OyOVyvR43oDvaPvnJT8anPvWpePXVV3s9JpPJRCaTGcgyAMBhDOj30Pfv3x+vvfZaTJ48ebDmAQD6oaKgf+Mb34jNmzfH3//+93juuefi8ssvj/r6+rjyyiurNR8A0AcVveX+j3/8I6688sr417/+FRMnToxPf/rTsXXr1pg4cWK15gMA+qCioG/YsKFacwAAA+C73AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQAEEHgAQIOgAkQNABIAGCDgAJEHQASICgA0ACBB0AEiDoAJAAQQeABAg6ACRA0AEgAYIOAAkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEhAxUF/66234qqrrooJEybEuHHj4uSTT45t27ZVYzYAoI9GV3Lwe++9FwsWLIjzzjsvHn/88Zg4cWK88sorceSRR1ZrPgCgDyoK+q233hqFQiHWrVvXvW/69OmDPhQAUJmK3nJ/5JFHorGxMa644opoaGiI0047Le65556PPKdUKkWxWOyxAQCDq6Kgv/76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meI1r8CwD/pRRx0V9fX1sWfPnh779+zZE0cffXSNphoZrr322njsscdiy5YtVf+TuCPZ9u3bY+/evXH66ad37+vs7IwtW7bEHXfcEaVSKerr62s4YVomT54cs2bN6rHvxBNPjN/85jc1mih93/zmN2PFihXxpS99KSIiTj755HjzzTejpaVF0Csw7D9DHzNmTJxxxhmxadOm7n1dXV2xadOmmD9/fg0nS1e5XI5rr702Nm7cGL/73e9i+vTptR4paeeff368+OKLsWPHju6tsbExFi9eHDt27BDzQbZgwYIP/Rrmyy+/HMccc0yNJkrfv//97xg1qmeO6uvro6urq0YTDU/D/go9IqK5uTmWLFkSjY2NceaZZ8bq1avjwIEDsXTp0lqPlqSmpqZYv359PPzww5HNZmP37t0REZHP52PcuHE1ni492Wz2Q/cnHHHEETFhwgT3LVTBDTfcEGeddVbccsst8YUvfCFeeOGFWLt2baxdu7bWoyXr0ksvjZtvvjmmTZsWJ510Uvzxj3+M2267La6++upajza8lBNx++23l6dNm1YeM2ZM+cwzzyxv3bq11iMlKyIOua1bt67Wo40Y55xzTnnZsmW1HiNZjz76aHn27NnlTCZTnjlzZnnt2rW1HilpxWKxvGzZsvK0adPKY8eOLR933HHl73znO+VSqVTr0YaVJH4PHQBGumH/GToAIOgAkARBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAgQdABIg6ACQAEEHgAQIOgAk4L8ACkSlhGiTsNsAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "ax.imshow(result[\"qs\"][1][0, :, :].T, cmap=\"gray_r\", vmin=0.0, vmax=1.0)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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Pcqo9corr8SVV14ZEydOjPHjx8dpp50WTz/9dN5jjTq9vb3xjW98I6ZPnx7jx4+Pk08+OW644YbD/oItDm9EhcUDDzwQy5cvj+uvvz527NgRp59+elx00UWxZ8+evEcbVTZv3hxdXV2xdevW2LBhQ7z11ltx4YUXxv79+/MebVTbtm1b3HXXXTF79uy8Rxm13njjjZg/f3685z3vifXr18cf//jH+N73vhdHH3103qONOrfcckusXr06br/99vjTn/4Ut9xyS3znO9+J2267Le/RWt6I+jkWc+fOjTlz5sTtt98eEf/9hWeVSiWuueaaWLFiRc7TjV6vvfZaTJo0KTZv3hznnXde3uOMSvv27Yuzzjorvv/978e3v/3tOOOMM2LVqlV5jzXqrFixIn7729/Gb37zm7xHGfU+/vGPx+TJk+Oee+7p3/fJT34yxo8fHz/60Y9ynKz1jZgnFm+++WZs3749FixY0L9vzJgxsWDBgnjyySdznIxqtRoRERMmTMh5ktGrq6srLr744gP+/2DoPfzww9HZ2RmXX355TJo0Kc4888y4++678x5rVDr33HNj48aN8fzzz0dExO9///t4/PHHY+HChTlP1vqG/LebNsvrr78evb29MXny5AP2T548Of785z/nNBV9fX2xbNmymD9/fsyaNSvvcUal+++/P3bs2BHbtm3Le5RR769//WusXr06li9fHl/72tdi27Ztce2118bYsWNj8eLFeY83qqxYsSJqtVrMmDEj2traore3N2688cZYtGhR3qO1vBETFgxPXV1d8eyzz8bjjz+e9yijUk9PTyxdujQ2bNgQ48aNy3ucUa+vry86OzvjpptuioiIM888M5599tm48847hcUQ++lPfxo//vGPY+3atXHqqafGzp07Y9myZTFlyhTXYpBGTFgcc8wx0dbWFrt37z5g/+7du+O4447LaarR7eqrr45HHnkktmzZElOnTs17nFFp+/btsWfPnjjrrLP69/X29saWLVvi9ttvj3q9Hm1tbTlOOLocf/zxMXPmzAP2nXLKKfGLX/wip4lGr6985SuxYsWK+MxnPhMREaeddlr8/e9/j+7ubmExSCPmHYuxY8fG2WefHRs3buzf19fXFxs3box58+blONnok2VZXH311bFu3br49a9/HdOnT897pFHrggsuiGeeeSZ27tzZv3V2dsaiRYti586domKIzZ8//x3fev3888/HCSeckNNEo9d//vOfGDPmwFtgW1tb9PX15TTRyDFinlhERCxfvjwWL14cnZ2dcc4558SqVati//79sWTJkrxHG1W6urpi7dq18dBDD0VHR0fs2rUrIiLK5XKMHz8+5+lGl46Ojne823LUUUfFxIkTvfOSg+uuuy7OPffcuOmmm+JTn/pUPPXUU7FmzZpYs2ZN3qONOpdccknceOONMW3atDj11FPjd7/7Xdx6663x+c9/Pu/RWl82wtx2223ZtGnTsrFjx2bnnHNOtnXr1rxHGnUi4qDbvffem/doZFn24Q9/OFu6dGneY4xav/zlL7NZs2ZlxWIxmzFjRrZmzZq8RxqVarVatnTp0mzatGnZuHHjspNOOin7+te/ntXr9bxHa3kj6udYAAD5GjHvWAAA+RMWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEjmfwDfu1bhIY2oGQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "ax.imshow(result[\"qs\"][0][1, :, :].T, cmap=\"gray_r\", vmin=0.0, vmax=1.0)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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w4ZoaWmJ5ubmWo+SvFdffTXWrFkTjY2N8a1vfSuam5vj+uuvj+HDh8eSJUtqPV6SVqxYEYVCIaZMmRJDhw6Nzs7OuPnmm2Px4sW1Hu2octQHndpqaGiIXbt2xdNPP13rUZLV2toay5YtiyeffDJGjBhR63GS19XVFbNmzYpbbrklIiLOOuus2LVrV9x1112CXiW/+MUv4oEHHoj169fHtGnTYufOnbF8+fIYP36857wMR33QTzjhhBg6dGjs3bu3x/69e/fGiSeeWKOpBodrr702Hn300di6dWvVvxJ3MNuxY0fs27cvzj777O59nZ2dsXXr1rjjjjuiWCzG0KFDazhhWsaNGxdTp07tse+0006LX//61zWaKH3f+MY3YsWKFfGFL3whIiJOP/30eP3116OpqUnQy3DUv4c+fPjwmDlzZmzatKl7X1dXV2zatCnmzp1bw8nSVSqV4tprr42NGzfG7373u5g0aVKtR0raBRdcEM8//3zs3Lmze5s1a1YsXrw4du7cKeb9bN68eR/4NcwXX3wxTjrppBpNlL5///vfMWRIzxwNHTo0urq6ajTR0emov0KPiGhsbIwlS5bErFmz4pxzzonVq1fHgQMHYunSpbUeLUkNDQ2xfv36ePjhhyObzcaePXsiIiKXy8XIkSNrPF16stnsB+5POOaYY2LUqFHuW6iCG264Ic4999y45ZZb4nOf+1w899xzsXbt2li7dm2tR0vWZZddFjfffHNMnDgxpk2bFn/84x/jtttui2uuuabWox1dSom4/fbbSxMnTiwNHz68dM4555S2bdtW65GSFRGH3NatW1fr0QaN888/v7Rs2bJaj5Gs3/72t6Xp06eXMplMacqUKaW1a9fWeqSkFQqF0rJly0oTJ04sjRgxonTKKaeUvv3tb5eKxWKtRzuqJPF76AAw2B3176EDAIIOAEkQdABIgKADQAIEHQASIOgAkABBB4AECDoAJEDQASABgg4ACRB0AEiAoANAAv4HDMm+YDGIbLUAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots()\n", - "ax.imshow(result[\"qs\"][1][1, :, :].T, cmap=\"gray_r\", vmin=0.0, vmax=1.0)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} From d1b5a0eb9f061e0cc186738a4b374cb849edf0d0 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 27 Jun 2024 14:33:15 +0200 Subject: [PATCH 138/196] refactor si code and examples --- examples/si/sophisticated_demo.ipynb | 279 +++++++++++++++ examples/si/sophisticated_tmaze.ipynb | 303 +++++++++++++++++ examples/sophisticated_demo.ipynb | 313 ----------------- examples/sophisticated_tmaze.ipynb | 392 ---------------------- pymdp/jax/envs/rollout.py | 18 +- pymdp/jax/{planning.py => planning/si.py} | 23 ++ 6 files changed, 620 insertions(+), 708 deletions(-) create mode 100644 examples/si/sophisticated_demo.ipynb create mode 100644 examples/si/sophisticated_tmaze.ipynb delete mode 100644 examples/sophisticated_demo.ipynb delete mode 100644 examples/sophisticated_tmaze.ipynb rename pymdp/jax/{planning.py => planning/si.py} (91%) diff --git a/examples/si/sophisticated_demo.ipynb b/examples/si/sophisticated_demo.ipynb new file mode 100644 index 00000000..c004c763 --- /dev/null +++ b/examples/si/sophisticated_demo.ipynb @@ -0,0 +1,279 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sophisticated inference\n", + "\n", + "This notebook demonstrates tree searching policies." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp\n", + "import jax.tree_util as jtu\n", + "from jax import random as jr\n", + "\n", + "key = jr.PRNGKey(0)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx\n", + "from pymdp.jax.envs import GraphEnv\n", + "\n", + "\n", + "def generate_connected_clusters(cluster_size=2, connections=2):\n", + " edges = []\n", + " connecting_node = 0\n", + " while connecting_node < connections * cluster_size:\n", + " edges += [(connecting_node, a) for a in range(connecting_node + 1, connecting_node + cluster_size + 1)]\n", + " connecting_node = len(edges)\n", + " graph = nx.Graph()\n", + " graph.add_edges_from(edges)\n", + " return graph, {\n", + " \"locations\": [\n", + " (f\"hallway {i}\" if len(list(graph.neighbors(loc))) > 1 else f\"room {i}\")\n", + " for i, loc in enumerate(graph.nodes)\n", + " ]\n", + " }\n", + "\n", + "\n", + "graph, _ = generate_connected_clusters(cluster_size=3, connections=2)\n", + "env = GraphEnv(graph, object_locations=[4], agent_locations=[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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sEKJamez2fTOO+8oKChId9xxh0pKSsyOBAC1zpIlS7R9+3aNHz/e7CjAGWOFEjVm5cqVuvzyyzVx4kT961//MjsOANQahmGoR48eioiI0PLly82OA5wxVihRY/r3769//etfmjBhgn766Sez4wBArbFs2TJt3ryZ1Un4LFYoUaNcLpcuvfRS7du3T5s3b1ajRo3MjgQApjIMQ3FxcQoODtYPP/xgdhzgrLBCiRrlcDi0YMECZWdn6+677xa/zwDwd99++63WrVvHnd3waaxQwhRLlizRjTfeqBkzZmj48OFmxwEAUxiGoYsvvlhFRUVau3atbDab2ZGAs0KhhGnuu+8+zZkzRwkJCewGAcAvff/99+rfv78+++wzXXfddWbHAc4ahRKmyc/PV2xsrFwul9avX6/Q0FCzIwFAjbr88st19OhRbdiwgdVJ+DSuoYRp6tSpow8++EApKSl6+OGHzY4DADXq559/1nfffadx48ZRJuHzWKGE6WbNmqWhQ4fqgw8+0C233GJ2HACoEddee61SU1O1ZcsW2e2s78C3UShhOsMwdNttt+mrr77S5s2b1a5dO7MjAUC1Wr9+vXr37q0FCxbo73//u9lxAI9RKFErHD9+XN26dVOzZs20evVqBQYGmh0JAKrNDTfcoF9//VW//PKLAgICzI4DeIw1dtQKDRo00KJFi7RhwwY9+eSTZscBgGqzZcsWffrppxo7dixlEpbBCiVqlRdffFFjxozR119/rSuvvNLsOADgdbfccovWr1+vHTt2cDYGlkGhRK3idrt1zTXXaMuWLUpMTFSzZs3MjgQAXvPrr78qJiZGb7/9toYOHWp2HMBrKJSodQ4fPqyuXbuqe/fu+uKLL7j7EYBl3Hnnnfr++++VnJys4OBgs+MAXsNPatQ6zZs317x58/T111/rlVdeMTsOAHhFcnKyFixYoCeeeIIyCcthhRK11uOPP65XX31VP//8s3r37m12HADwyJAhQ/TFF19o9+7dqlOnjtlxAK+iUKLWKioq0kUXXaSMjAxt2rRJ9evXNzsSAJyVlJQURUdH68UXX9QjjzxidhzA6zjljVorKChIixYtUnp6uoYPHy5+9wHgq1566SU1bNhQw4YNMzsKUC0olKjV2rdvr7ffflsLFy7U3LlzzY4DAGfswIEDmj17tkaNGqWwsDCz4wDVglPe8AlDhgwpHXx+zjnnmB0HAKrs4Ycf1nvvvaeUlBQu3YFlUSjhE3Jzc9WrVy8FBQUpPj5eISEhZkcCgNNKS0tTVFSURo8erQkTJpgdB6g2nPKGTwgLC9OiRYu0Y8cOPfbYY2bHAYAqmTJligIDA/Xggw+aHQWoVhRK+IyuXbtqypQpmjZtmj799FOz4wBApTIyMjR9+nQ98MADatSokdlxgGrFKW/4FMMwdOONN+qHH37Q5s2b1aZNG7MjAUC5xo8fr1deeUV79+5V48aNzY4DVCsKJXxOZmamunbtqnbt2um7776Tw+EwOxIAlHHs2DG1bdtWQ4cO1eTJk82OA1Q7TnnD54SHh2vBggX66aef9Oyzz5odBwBO8cYbb6ioqEiPPvqo2VGAGkGhhE/q16+fJkyYoIkTJ2rVqlVmxwGAUtnZ2Zo6daqGDh2q5s2bmx0HqBGc8obPKikp0eWXX67k5GQlJiYqIiLC7EgAoBdffFFPPvmkdu3apdatW5sdB6gRFEr4tP3796tr16668MIL9emnn8pms5kdCYAfy8vLU1RUlG688Ua99dZbZscBagynvOHTWrdurblz5+qzzz7TtGnTzI4DwM/9+9//VmZmpkaPHm12FKBGsUIJS3jooYf01ltvKT4+Xt26dTM7DgA/VFBQoPbt2+vqq6/WO++8Y3YcoEZRKGEJhYWFiouLU15enjZs2KC6deuaHQmAnzk5xPy3335TdHS02XGAGkWhhGXs2LFDPXv21M0338zqAIAaVVRUJKfTqX79+mn+/PlmxwFqHNdQwjI6deqkN998U3PnztWCBQvMjgPAj8ybN0/79+/Xv/71L7OjAKZghRKWYhiG7rzzTi1dulQbN26U0+k0OxIAi3O5XOrUqZN69Oihjz76yOw4gCkolLCc7Oxsde/eXY0aNdJPP/2koKAgsyMBsLB58+bpn//8pzZt2sRNgfBbFEpY0vr169W3b189+OCD7KMLoNqUlJQoJiZGHTt21NKlS82OA5iGayhhSb169dKkSZM0ZcoUffnll2bHAWBRixcv1o4dOzR+/HizowCmYoUSluV2u3Xddddp/fr1SkxMVIsWLcyOBMBC3G63unbtqlatWumrr74yOw5gKlYoYVl2u11z585VQECA7rzzTrndbrMjAbCQpUuXatu2baxOAmKFEn5gxYoVuvLKK/Xcc89pzJgxZscBYAGGYahXr15q0KCBvvvuO7PjAKZjhRKWd/nll2vMmDEaP3681qxZY3YcABbw5ZdfauPGjRo3bpzZUYBagRVK+IXi4mJdcsklOnjwoDZv3qyGDRuaHQmAjzIMQ3379pXdbtePP/4om81mdiTAdKxQwi8EBgZqwYIFOnbsmIYOHSp+jwJwtlasWKG1a9dq/PjxlEngv1ihhF9ZvHixbr75Zr399tu65557zI4DwAddeumlys3N1bp16yiUwH9RKOF3hg8frnfffVfr169XTEyM2XEA+JDVq1fr4osv1qeffqoBAwaYHQeoNSiU8Dv5+fnq3bu3JCkhIUF16tQxOREAX3HVVVcpLS1NmzdvZnUS+AOuoYTfqVOnjj744APt2rVLI0eONDsOAB8RHx+vb7/9VuPGjaNMAn/CCiX81ttvv63hw4dr8eLF+tvf/mZ2HAC13HXXXafdu3dr27ZtsttZjwH+iEIJv2UYhm655RYtX75cmzdvVtu2bc2OBKCW2rRpk3r06KH3339ft99+u9lxgFqHQgm/duzYMXXr1k0tW7bUqlWrFBgYaHYkALXQ3/72N23ZskW//vqrHA6H2XGAWoc1e/i1hg0bauHChVq3bp2eeuops+MAqIW2bdumTz75RGPGjKFMAhVghRKQ9Pzzz2vcuHFavny5LrvsMrPjAKhF/v73v2vNmjVKSkriLAZQAQolIKmkpERXX321fvnlFyUmJqpJkyZmRwJQC+zYsUPnnnuupk+fruHDh5sdB6i1KJTAfx06dEhdu3ZVr169tGzZMu7iBKC77rpLK1as0K5duxQcHGx2HKDW4icm8F8tWrTQu+++qy+//FJTp041Ow4Ak+3evVvz58/X448/TpkEToMVSuBPRo0apTfeeENr1qxRz549zY4DwCT33HOPPv30U6WkpLCjFnAaFErgT4qKitS3b18dP35cGzduVL169cyOBKCGpaamyul06rnnntNjjz1mdhyg1uOUN/AnQUFBWrRokQ4fPqx7771X/M4F+J+XXnpJ9evX17333mt2FMAnUCiBcjidTr311luaP3++3nvvPbPjAKhBhw4d0qxZszRy5EjVrVvX7DiAT+CUN1CJQYMG6aOPPtLGjRvVsWNHs+MAqAGjRo3SnDlzlJKSogYNGpgdB/AJFEqgEjk5OerVq5dCQ0O1Zs2acu/0zC10KSUjV0Uut4IcdkVFhCksmN00AF/0+++/KyoqSo8++qiefvpps+MAPoNCCZzG5s2bFRsbq3vvvbd0nFBSWrbmx6dq5Y4jSs3M0x+/iWySIsND1b9TU90eG6noZtzUA/iKMWPGaNq0adq7d6/Cw8PNjgP4DAolUAWvv/66HnroIc35cKm+y2qq1cnpCrDbVOKu+Nvn5OP9nI31/MAuahMeWoOJAZypzMxMtW3bViNGjNCkSZPMjgP4FAolUAWGYeiiu57Q/mYXyBEYpJIz+K4JsNvksNv09IAY3dY7svpCAvDIhAkT9PLLLyslJUVNmzY1Ow7gU7jLG6iCN79P1oFWl0gBgWdUJiWpxG2o0OXW6E+2atrKpOoJCMAjx48f1+uvv67hw4dTJoGzQKEETmNRQqomf7NTkmSz2Tw61uRvduqDhFRvxALgRW+++aby8/MZYg6cJU55A5XYl5mnK15dpUKXu9zHDVexstYtUe72lSo+dlj2wBAFt4lRgwtvU3BzZ7mvCXbYtXzkJVxTCdQSOTk5ioqK0m233aZp06aZHQfwSaxQApUYu2SrXBXceGO4S3Tko6d07If3VJyxTyoplrsgW/lJa3V43mPKT9lc7utcbkNjl2ytxtQAzsRbb72lrKwsPf7442ZHAXwWhRKoQFJatlYnp1d4J3f2xs9VsDdRkhTYpK2aDByrBn1vPfFgSbEyPp8qw1V8yutK3IZWJ6cr+Uh2tWUHUDX5+fmaPHmy7rrrLkVGctMccLYolEAF5senKsBe8TWTOZu+LP044poHFNqprxpefKdC2vWQJJVkpysveV25rw2w2/T+Wq6lBMw2c+ZMpaena8yYMWZHAXwahRKowModRypcnSzJzz5xmluS7A4FtYgufSy41bmlHxfu317+692GVu484r2wAM5YYWGhXnrpJd1+++1q37692XEAn0ahBMqRU+hSamZehY+7jqeVfhxQp55s9oD//Tnsf3v/uo6lqSKpGXnKLXR5mBTA2Zo7d64OHjyosWPHmh0F8HkUSqAcezNyVdn4A6O44H9/CCi7b7fN7ij/eX8+hqSUjNyzTAjAE8XFxZo0aZJuueUWderUyew4gM9znP4pgP8pqmBM0Em2wJDSj42SsjfeGG5Xuc87m/cBUD3ef/99paSkaOnSpWZHASyBFUqgHEGOyr81HA2alX7szs+W4S4p/XNJztH/Pa9hM1XmdO8DwPtcLpeef/55DRw4UF26dDE7DmAJ/DQDyhEVEabK9sQJqFNPgRFtTvzBXaKiQztLHys8+Fvpx8GtYyo+iGFozbdLlZSUJPYXAGrOhx9+qOTkZI0bN87sKIBlsFMOUIFLXl6pvZXcmJO1fqmOLv+3JCmwcaQa9rtDhWm7lPXzB5KkgHqN1WrYTNkcgeW+3pbzu1KmDZIkRUREKDY2VnFxcYqLi1OfPn3UoEGDcl8H4Oy53W516dJF7dq107Jly8yOA1gGhRKowFNLt2te/N4KRwcZ7hId+eDJ0uHmZQQEqunNE1Qnqlu5rw2w23RnbFs91K+l1q1bp7Vr15b+d+zYMdlsNp177rmKi4vTBRdcoLi4OJ177rkKCAgo93gAqmbx4sW6+eabtWbNGsXFxZkdB7AMCiVQgaS0bF059YdKn3NyL++c7d/JdSztxF7erc9Tg4v+XuFe3ictH3mxnE3rlfmc2+1WUlJSmYK5ZcsWud1u1atXT3369CldxYyNjVWTJk08/joBf2EYhrp3764mTZro22+/NTsOYCkUSqASA19foU0HciW791YGA+w29W0foXlDYqv0/JycHG3YsKG0YK5Zs0ZpaSfmW3bo0KG0YMbFxen8889XUFCQ17ICVrJ06VJdf/31WrVqlS6++GKz4wCWQqEEylFcXKyXX35Zz746Q00HvSEFlH8d5NkIdti1fOQlahMeelavNwxDqampZVYxN27cqKKiIoWEhKhnz55lSmbr1q29lh3wVYZhKDY2VnXq1NGqVavMjgNYDoUS+JPNmzdr8ODBSkxM1OOPP67z/nq3xn/22+lfWEUv3thFt/aO9NrxpBNbyG3atKlMydy7d68kqVWrVmUKZs+ePVWnTh2vvj9Q23399de65ppr9O233+qKK64wOw5gORRK4L8KCwv13HPP6YUXXtC5556rOXPmqFevXpKkaSuTNPmbnac5wuk9dlUnjehf+bWV3nLo0CHFx8eXFsyEhATl5eXJ4XCoa9euZUpmhw4dZLNVNigJ8F2GYahfv34qKSnRzz//zP/XgWpAoQQkrVu3ToMHD9aOHTs0btw4jRkz5pRrERclpGrC0u1yuY0K7/wuT4DdJofdpmcGxHh9ZfJMuFwubdu2rcwq5o4dOyRJjRs3LlMwe/furfr165uWFfCmlStX6rLLLtOyZcv0f//3f2bHASyJQgm/lp+frwkTJmjKlCnq3r275syZo/PPP7/C5+/LzNPYJVu1OjldAXZbpcXy5OP9nI31/MAuZ33NZHXKzMw8ZWzR8ePHZbPZFBMTU6ZknnvuubLb2QsBvueyyy7T8ePHtX79elYngWpCoYTf+vHHHzV48GClpqbq6aef1qhRo+RwVG17+6S0bM2PT9XKnUeUmpGnP34T2SRFRoSqf8emuiMu8pTRQLWZ2+3Wzp07yxTMrVu3yu12q379+qeMLWrcuLHZkYFK/fTTT7rooov0ySefaODAgWbHASyLQgm/k5OTo7Fjx2ratGmKi4vTnDlzdM4555z18XILXUrJyFWRy60gh11REWEKC65aMfUF2dnZWr9+fZmSeeTIEUmS0+k8ZWxRYKD37ogHPPWXv/xF+/fvV2JiIivsQDWiUMKvrFixQnfffbfS0tL0wgsv6P7772f3mTNkGIZSUlLKFMxNmzapuLhYISEh6tWrV5mS2apVK7Mjw08lJCSoT58+WrRokW699Vaz4wCWRqGEXzh+/Lgee+wxzZw5U5deeqlmzZqlDh06mB3LMgoKCk4ZW5SamipJat26den2kXFxcerRo4dCQkJMTgx/cP3112vHjh3avn07vzgC1YxCCcv7/PPPNWzYMGVlZenll1/W0KFDOfVVAw4ePHjK2KL8/HwFBgaqW7duZVYx27Vrx80S8KrExER169ZN7777rv75z3+aHQewPAolLCszM1MPP/yw5s2bp2uuuUZvv/22IiPNG9vj74qLi08ZW7Rz54nZnk2aNDllbFG9er5zMxNqn5tvvlkbN27Ujh07qnyzHYCzR6GEJX388ccaMWKECgsLNXXqVP3zn/9kBawWysjIKLOKGR8fr6ysLNlsNnXu3LlMyTznnHNYWUaV/PLLL+rcubP+/e9/6+677zY7DuAXKJSwlLS0NN1///1avHixrr/+es2YMUMtWrQwOxaqyO1267fffiuzirlt2zYZhqEGDRqcMrYoIiLC7Miohe644w6tXr1aSUlJp2xQAKB6UChhCYZhaOHChXrwwQdls9k0bdo03XLLLaxKWkB2drYSEhLKlMzff/9dkhQdHV3mhp8uXbpwetPPJSUl6ZxzztEbb7yh++67z+w4gN+gUMLnHThwQPfee68+++wz3XbbbXr99dfVpEkTs2OhmhiGoT179pwytsjlcik0NPSUsUWsUPuXwYMH66uvvtLu3buZJgDUIAolfJZhGHrnnXf0yCOPqE6dOpoxY4ZuuOEGs2PBBPn5+aeMLdq3b58kKTIyskzB7N69O0XDolJSUhQdHa2XXnpJI0eONDsO4FcolPBJe/fu1dChQ/Xtt99q0KBBmjJliho1amR2LNQiBw4cKFMw169fr4KCAgUGBqp79+5lSmZUVBSXR1jAvffeq48//lgpKSkKDQ01Ow7gVyiU8Clut1szZszQ6NGj1ahRI82cOVNXX3212bHgA4qLi7Vly5YyJTM5OVmS1LRp01PGFtWtW9fkxDgTBw4cUPv27fXMM8/oiSeeMDsO4HcolPAZSUlJGjJkiFavXq17771XkyZNUv369c2OBR+Wnp5+ytii7Oxs2e320rFFJ2/66dixI2OLarGHHnpI8+bN0969e5lhCpiAQolar6SkRFOnTtW4cePUsmVLzZo1S/379zc7FiyopKTklLFF27dvl2EYatiwoWJjY0tXMfv06aPw8HCzI0PS4cOH1a5dO40ZM0ZPPvmk2XEAv0ShRK32yy+/aPDgwVq3bp0eeughPfvsswoLCzM7FvxIVlbWKWOL0tPTJUmdOnUqc6q8c+fOjC0ywWOPPaZ///vf2rt3rxo2bGh2HMAvUShRKxUXF+ull17SM888o/bt22v27Nnq27ev2bEAGYah3bt3a82aNaUFMzExsXRsUe/evcuUzObNm5sd2dLS09MVFRWlhx9+WM8++6zZcQC/RaFErbN582YNGjRIW7du1eOPP64nn3ySMS+o1fLy8rRx48bSgrlmzRodPHhQktS2bdtTxhYFBwebnNg6xo0bp6lTpyolJUWNGzc2Ow7gtyiUqDUKCwv17LPPatKkSTrvvPM0Z84c9ezZ0+xYwFnZv39/mdPkGzZsUEFBgYKCgkrHFp284ScyMpKxRWfh2LFjatu2rYYNG6aXXnrJ7DiAX6NQolaIj4/X4MGDlZSUpHHjxmn06NHswQtLKSoqOmVs0a5duyRJzZs3L7OK2atXL64VroJnnnlGL7zwglJSUtSsWTOz4wB+jUIJU+Xn5+vJJ5/UK6+8oh49emjOnDnq0qWL2bGAGvH777+fMrYoJydHAQEB6tKlS5mSGR0dzdiiP8jKylJUVJTuvPNOvfbaa2bHAfwehRKmWb16tYYMGaLU1FQ988wzeuSRR7hDFn6tpKREv/76a+l1mGvXrtUvv/wiSWrUqNEpY4v8eXeoSZMmacKECdq9e7datWpldhzA71EoUeNycnI0ZswYTZs2TX379tWcOXPUqVMns2MBtdKxY8dOGVuUmZkpSTrnnHPKrGLGxMRY6pey3EKXUjJyVeRyK8hhV1REmMKCHcrNzVVUVJRuuukmzZgxw+yYAEShRA1bvny5hg4dqiNHjuiFF17QiBEjFBAQYHYswGcYhqHk5OQyBTMxMVElJSUKCwsrHVt0wQUXKDY21ueuLUxKy9b8+FSt3HFEqZl5+uMPKJukyPBQNcw/oG+mj9dv8d+rbdu2ZkUF8AcUStSI48eP69FHHy3d5WbWrFlq37692bEAS8jLy9OGDRvKjC06dOiQJKldu3ZlVjG7detWK29425eZp7FLtmp1croC7DaVuCv+0WS4S2SzB6ifs7GeH9hFbcJDazApgPJQKFHtli1bpuHDhysrK0uTJ0/W0KFDGZECVCPDMModW1RYWKjg4GD16NGjTMls06aNqd+TixJSNWHpdrncRqVF8s8C7DY57DY9PSBGt/WOrMaEAE6HQolqk5GRoYcffljvv/++/vKXv+jtt99WmzZtzI4F+KWioiIlJiaWueFnz549kqQWLVqUKZg9e/assbFF01YmafI3Oz0+zqNXddT9/aO9kAjA2aBQolp8/PHHuu+++1RUVKTXXntNd955J6uSQC2TlpZWZmzRunXrlJubq4CAAJ1//vmnjC3y9vfwooRUjf5kq9eO9+KNXXQrK5WAKSiU8Kq0tDTdf//9Wrx4sW644QZNnz5dLVq0MDsWgCooKSnR9u3by5wq//XXXyVJ4eHhZcYWxcbGqkGDBmf9Xvsy83TFq6tU6HKX+XzRkRRlxS9W4eFkleQclVFcIHtwmIKaRqnu+VcpLObSCo8Z7LBr+chLuKYSMAGFEl5hGIYWLFigBx98UAEBAZo2bZpuvvlmViUBH3fs2DGtW7euTMk8evSobDabzj333DKrmOedd16VpzbcOTteP+/OOOWayZxtK5WxbEqFr2t4yT/V4IJbyn0swG5T3/YRmjcktupfIACvoFDCYwcOHNDw4cO1bNky/f3vf9drr72mJk2amB0LQDUwDENJSUllCuaWLVtUUlKiunXrqk+fPmVWMZs2bXrKMZLSsnXl1B/KPX7+rgTl7Vyr4DadFVC3kdwFOcpO+I8KD/wmSQoIa6TWD8yrNOPykRfL2bSe518sgCqjUOKsGYah2bNna9SoUQoLC9OMGTN0/fXXmx0LQA3Lzc0tHVt08oafw4cPS5Lat29fZhWza9euev6rJM2L31vlO7qL0nbr0DsPSpJsgSGKHLW4wucG2G26M7atnhoQ4/kXBqDKKJQ4KykpKRo6dKiWL1+uQYMGacqUKX69DRyA/zEMQ6mpqWVWMTdu3KiioiIFBwer1fCZKqkTXoXjuFWSc1THf16knE1fSpLqdOitpjdPqPR1bSNCterR/l75WgBUDYUSZ8Ttdmv69OkaPXq0wsPDNXPmTF199dVmxwJQyxUWFmrz5s364ed4vZnWXjrN9dWH3hulooM7/vAZm+p06KWIax9SQFjDSl9rk7TtqasVFmydbSiB2s5udgD4jqSkJF166aV64IEH9M9//lPbtm2jTAKokuDgYMXGxuraW+86bZksl80m2QOkKqyBGJJSMnLP/D0AnDV+fcNplZSUaOrUqRo3bpxatWqllStX6tJLLzU7FgAfVPSnMUEVibjmfrkLcuTKSlfOpi9UeOBX5Set1ZHsDLX4f6967X0AeAeFEpXavn27Bg8erISEBI0cOVITJ05UaCgz3gCcnSBH1U6MBTVtV/pxaKcLtP+1f8hwFanocJKKMw8oMLyVV94HgHfwHYdyFRcX69lnn1WPHj2UlZWln376SVOmTKFMAvBIVESYKjvh7S4urOCR/73KXZBzmncxtGvzWh07duwM0wE4W6xQ4hSbNm3S4MGDtXXrVj3xxBMaP368QkJCzI4FwALCgh2KDA/V3sy8ch8//O5IBbXspJDW5ymgfhO5844re+PnMlwniqbNEazAiDaVvkfJ8TRd/393lxm+fsEFF5QOX7fbWUsBvI1CiVKFhYWaOHGiJk2apJiYGK1bt049evQwOxYAi+nfqWmFcyjdRQXK3fKtcrd8W+5rG102WPbgis+UBNhtuuuaWP3jod/KzMWcO3eu3G636tevrz59+pQWzLi4OIWHn36EEYDKMTYIkqT4+HgNHjxYSUlJGjdunEaPHq2goCCzYwGwoMp2ysna8Jnyk9epOH2fSvKOSzIUUDdCwa3OUb3uf1FIm86nPX55O+VkZ2dr/fr1pQVzzZo1Sk9PlyR17NixtGBecMEFiomJkcPBegtwJiiUfi4vL09PPvmkXn31VfXs2VNz5sxR586n/wcbADxR0V7enjiTvbwNw9Du3bvLFMzExESVlJQoLCysdAvJk0WT7WSBylEo/dgPP/ygIUOGaN++fZo4caJGjhzJb+UAasS+zDxd8eoqFXpxvE+ww67lIy9Rm/Czu3kwLy9P69evLy2Ya9asUVpamiSpQ4cOZQrm+eefr8DAQK9lB3wdhdIPZWdna8yYMXrzzTd14YUXavbs2erUqZPZsQD4mUUJqRr9yVavHe/FG7vo1t6RXjueYRjau3dvmWsxN23apOLiYtWpU0e9evUqc6q8efPmXntvwNdQKP3Mt99+q6FDh+r333/XpEmTNGLECO54BGCaaSuTNPmbnR4f57GrOmlEf6cXElWuoKBAGzduLHOq/MCBA5Kktm3blimY3bp141p0+A0KpZ84duyYHn30Uc2ePVuXXXaZZs6cqfbt25sdCwC0KCFVE5Zul8ttnNE1lQF2mxx2m54ZEOPVlckztX///jKrmBs2bFBhYaGCg4PVs2fPMqfKW7dubVpOoDpRKP3AsmXLNGzYMGVnZ2vKlCm6++4T89kAoLbYl5mnsUu2anVyugLstkqL5cnH+zkb6/mBXc76msnqUlhYqMTExDKrmHv37pUktW7dukzB7NGjB3N+YQkUSgvLyMjQQw89pPnz5+vaa6/VW2+9pTZtKh8IDABmSkrL1vz4VK3ceUSpGXn64w8om6TIiFD179hUd8RFnjIaqDY7dOiQ1q5dW1ow169fr/z8fAUGBqp79+5lTpVHRkbySz98DoXSohYvXqwRI0aouLhYr732mu644w7+gQLgU3ILXUrJyNXKVav1yMMPavva7xXdzrxT295UXFysLVu2lDlVvmvXLklS8+bNyxTMnj17su0taj0KpcUcPnxY999/vz7++GMNHDhQ06dP585DAD7tt99+07nnnquVK1fq0ksvNTtOtTly5Iji4+NLC+a6deuUm5srh8Ohrl27ljlV3r59exYJUKtQKC3CMAzNnz9fDz30kAICAvTmm2/qpptu4h8cAD6vsLBQoaGhevvtt3X33XebHafGuFwubd++vcy1mDt3nrgjvkmTJmUKZu/evVW3bl2TE8OfUSgtYP/+/Ro+fLg+//xz/eMf/9Brr72mxo0bmx0LALymXbt2uvXW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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "nx.draw(graph, with_labels=True, font_weight=\"bold\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's create an agent, we give the agent a prior on the object location to showcase the planning depth and pruning." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.agent import Agent\n", + "\n", + "A = [a.copy() for a in env.params[\"A\"]]\n", + "B = [b.copy() for b in env.params[\"B\"]]\n", + "A_dependencies = env.dependencies[\"A\"]\n", + "B_dependencies = env.dependencies[\"B\"]\n", + "\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "C[1] = C[1].at[1].set(1.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) for b in B]\n", + "D[0] = D[0].at[0, 0].set(100.0)\n", + "D[1] = D[1].at[0, 4].set(10.0)\n", + "D = jtu.tree_map(lambda x: x / x.sum(), D)\n", + "\n", + "agent = Agent(A, B, C, D, A_dependencies=A_dependencies, B_dependencies=B_dependencies, policy_len=1, apply_batch=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "obs, env = env.step(keys[1:])" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "empirical_prior = agent.D\n", + "\n", + "qs = agent.infer_states(\n", + " observations=obs,\n", + " past_actions=None,\n", + " empirical_prior=empirical_prior,\n", + " qs_hist=None,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.planning.si import tree_search\n", + "\n", + "tree = tree_search(agent, qs, 4)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "\n", + "def plot_plan_tree(\n", + " tree,\n", + " font_size=12,\n", + "):\n", + " root_node = tree.root()\n", + " print(root_node[\"n\"])\n", + "\n", + " colormap = plt.cm.Blues\n", + " colormap_policy = plt.cm.Reds\n", + "\n", + " # create graph\n", + " count = 0\n", + " G = nx.Graph()\n", + " to_visit = [(root_node, 0)]\n", + " labels = {}\n", + " colors = []\n", + "\n", + " G.add_node(count)\n", + " labels[0] = \"\"\n", + " colors.append((0.0, 0.0, 0.0, 1.0))\n", + " count += 1\n", + "\n", + " # visit children\n", + " while len(to_visit) > 0:\n", + " node, id = to_visit.pop()\n", + " for child in node[\"children\"]:\n", + " G.add_node(count)\n", + " G.add_edge(id, count)\n", + "\n", + " cm = colormap\n", + " if \"policy\" in child.keys():\n", + " labels[count] = child[\"policy\"][0]\n", + " cm = colormap_policy\n", + " elif \"observation\" in child.keys():\n", + " o = child[\"observation\"]\n", + " labels[count] = str(o[0][0]) + \" \" + str(o[1][0])\n", + " else:\n", + " labels[count] = \"\"\n", + "\n", + " r, g, b, a = cm(child.get(\"prob\", 0))\n", + " colors.append((r, g, b, a))\n", + "\n", + " to_visit.append((child, count))\n", + " count += 1.0\n", + "\n", + " # from networkx.drawing.nx_pydot import graphviz_layout\n", + "\n", + " # pos = graphviz_layout(G, prog=\"dot\")\n", + " nx.draw(\n", + " G,\n", + " with_labels=True,\n", + " font_size=font_size,\n", + " labels=labels,\n", + " node_color=colors,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + }, + { + "data": { + "image/png": "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RlVVSD3quNTdf7zw3sfo2l5El+tuLv+itHhUq3O7yE+cOMHSpUuZMmUKrVq1onXr1kydOpWDBw8yadIkfvjhBzIzM7n22mvJyclhxIgRDBkyxOn+3nNdFIo5D1QbtpMHMW19GcuhdU7fr+YkYNr6Mua9KwHQ6fTcd20Eny3+hC5durBp0yaH98+aNYugoCCWL18OqHB8DxzbrQXxJxMhMwVOJWn/DsdiIX436qlkVEtlasQL0fDpdDo++eQTBg0axPDhw/n3339ru0tCiBrW4CvlNBRqbmalRidPJKfS/uqbUBSFlk3D2L3+q/IvbhyGElC6xnZaWhq//PKLfQSyeJq6a9euXH755QwePJjLLrsMf3//EvdVpVzm33//zfXXX49H42YUth5Nbk425pyzid11fs1QDMZy77edTkI1a/XPde7e6HxC+fjJGxl3ZVcOHz7M7bffzq+//srUqVN55ZVX8PPzK/WMAwcOcCxuD2SlYtApDLrkogr7DWijloHNwS9QRiyFOMfp06cZPHgwiYmJUk1HiAZOAsp6Qk2Mq9TayXEznyD9VBZWq5WMzCzHAaXOAK26kpWVxa+//mrfib1nzx4A2rdvbw8gBw0aRGCga5Oj/+9//2PChAn07NmT7777jpP5MPzxLzmekl3pdEIGvQ43g44PH7+Rmwadrc5js9l4//33efTRRwkICOCjjz7iyivP1kFXVRukHoPcU2U91jmevhDWuswSkkJcqNLS0ujXrx86nU6q6QjRgMmUdz2gmosqFUz+9nc0K3/YxPxZDzl3g83CjDunEBAQwIgRI1i3bh19+vThiy++IDExkX379vHuu+8yatQolwaTqqry2muvMXr0aG688UZ+/vlnAgMDaRcRyI5P7ubem3qjAHpdxaN+Br32X7lfl+bELL6nRDAJ2hTctGnT2L17N23atOGqq67izjvvJDs7W1tOkHykesEkQMFpSDyA6opE9EI0EFJNR4gLg4xQ1gOVme62Wq30Gj6BPt278P7zTzL4lrsqHKE0Wyys27qDLMWTwYMH07JlSxf1vHwWi4X77ruPDz74gFmzZvHcc8+h05X+fHM48RQfrt7B4nUxZOeZzhxV0et0WG3af12DXscN/dtx9/CL6d8tosJpZ1VVWbRoEQ8//DD+/v78umoZrRqXXYqzSrz9UcJau+55QjQA0dHRDBw4kAEDBkg1HSEaIAkoHcjMyWffkWTyC4pwM+hp2TSgVkozqsUbQpzw7udf8dQb73Fg4zcEBTR2KqAEwMsPJbytC3pbsZycHG6++WZ+/vlnFi1axJQpUyq8x2ZTOZJ0iqtG3EpE6w4MHzkSf28PurYJpVOrIIzulU9YcOzYMea/+DyvP3g3unJGQXPz8nn1o6X8vTOWv3ftITM7h09eeprJN13v+OGhkSg+jSvdJyEaso0bNzJ06FDGjx/Pp59+KmuOhWhAJG3QfxyIT2XR11tYvWknCSmZpc438vFkwEVtuXNUf4b0bV/mqJrLObmL+GRmFk+/9QFP3XsHQQGVDGbO007lhIQEhg4dyvHjx/nxxx+dTiei0ym0aRZA3vHtDLmxDzNv7lvtvkRERDD/yQexFeaXe01GZhbPL/iQiPBQurVvy+ZtO5x7ePpxVO9GKIqsKhGi2JVXXsnixYu55ZZbCAsLk2o6QjQgElCekZSWxYwXV7B28270eh3WcuoAZucW8P2WWNZu3kWrpgG8/8wtXHaR66u7VMVT8xfSpJEf0ydWJZFwzQ9U79ixg+uvvx6j0cjWrVvp2LFjxTedw2w2k5aWRlhYmGs6VJgHRQXljk4ChAUFkrT1B0KDAvln9156j5zk3LOtFsjNAt8mrumrEA3E+PHjSUlJ4aGHHpJqOkI0IDJ8AnzzUwzdRjzP91u0Xc3lBZPFis8fTz7F1Xe+zUOvrMRiqcGNGPqKdw0fjD/Ohyu+YfqkMSSlpRN/Ion4E0kUmoowWyzEn0jiVFZ2+Q/Q1exni9WrV3PZZZcRERHBX3/9VelgEiA1NRXAdQHl6YwKLzEa3QkNquJGpJyKny/EhejBBx/k4YcfZubMmaxYsaK2uyOEcIELPqBc8u2f3PLIx+TmmyoMJP+reFPIwuWbGf/ox5jNrg0qVVXlwIEDbPr9rwqvTUxNw2azMeP514gcfIP9a9vOWA4cPU7k4Bt4bsFH5dytaJVfaoCqqrz11lsMHz6ca6+9ll9++YWQkKrVEE9O1vJSuiygdEUJS0cK85AlykKU7eWXX2b8+PFMmjSpwqIDQoi674Ke8v7x9z3c89wX1Z7sVVVYu3kXD778Fe88Na5azzp69Kg9kfgvv/xCUlISnaPasGvdcof3dW7bhlXvvVbq+Oz573E6L583n3qY1hHNyvsOwOjCXc5nWCwWHnjgARYsWMCjjz7Kiy++WK01p64MKFWbVSunWJNUm9aGu0fNtiNEPVRcTSc9PZ3hw4fz22+/0b1799rulhCiiup9QDl58mSWLFkCQKdOnYiNjXXqvsycfO58+nMUFCxZhzHHf28/5x41Gp1XcLn3mg5+g5qnVYLR+bXAPXIYqgof/e8Pbri8G1f2q3g6d+bMmbz11lsAGI1Gxo8fz6ZNmzh27Bg6nY6ePXtyyy23MHjwYPpfeilkJoC5sNznBTbxZ/iVg0odf2vxMoAyz9kpCpxTz1u12bSciqZ8KCrQ1gMqChjctcDTwwfF6Onw+8vNzWXs2LH88MMPfPDBB9x1110Or3dGcnIyOp3ONYmRz1e5REuRBJRClMPd3Z2VK1cyePBgrr32WqmmI0Q9Vu8DSoDAwEDmz59fqgTghg0bWLFiBdu2bWPfvn00b96c+Ph4AJ5esJpTWbnYVBWdVzBuEUOw5SVhPbnXqTYVY2MMIb3Azcd+TKdTuOvpz3ntnot5Ye7z7N27l+DgYKZMmcLs2bMxGAykpqayefNmjh8/TkhICKmpqZhMJnbs2MHw4cO5/PLLyyxnqKrBkH68On9N5fMLRNHpUS1FkJUG2ena6JoDqtELGgWDb+k0SomJiQwbNozDhw+zfv16rrrqKpd0Mzk5mZCQEPROrCkVQtQPvr6+rF+/nn79+nH11VdLNR0h6qkGEVB6e3szYcKEUseXLVvGihUr6NmzJ+HhZ2tVZ+bks+Tbv+xrIBV3H/RN2mnl95wMKDF4om/SrsQhm00l8chuRo96iUGDBvHOO++wfft25s6dy6pVq7DZbOzdqz2/Q4cO3HTTTezZs4ft27ezc+dOx+35Bmi5KC1FzvXvjF++WOT4AkWBRsGo2emQcaLCQNLOlA9p8ZCdjhrSEuXMKNzOnTsZOnSovcxaly5dKtVfR5KTk123fvJ8pHs6n+0IUY8VV9Pp168fw4YNY9OmTXh718y6biFEzWjQ73bz5s0jJyeHP/74g27dutmPL1v7N+Ya2pVtSdqK0TeIrl278t577/HRRx9hs9mIjY2lY8eOLFu2jKSkJPbu3cu7775Ly5YtnUruq+h0EFIDU0EBzeBUkjb66WwweS5THiTsRc3LZv369fTv35/Q0FC2bdvm0mAStIDy3A8G1aJ3g/NRc9vd8dIAIYSmdevWrF+/nr179zJ69GjM5vO0LEUI4RINOqAMDw8vs7zXL3/HURMFGmyFp1ALT2Hxbcf/Vn1Lt27d+PTTT/n7778B6NatG+PGjavyKJvi6QMBTV3XYW9/ba1kbukE7pWiqtgSD7LglRe44oor+PXXX103kniOpKQklz1XUZQa2YhUgpsR5XwErUI0EL169WLVqlX89NNP3HnnnZIlQYh6pEFMeVfW9th4bDbXv1Cp+ekA6LxC+OabpVzUqYX9XLNmzYiJial2G0rjUO1F9lRS9R7k01gbPavuc85QVRur3nsdt9bd0FewYaeqXDrlDdrfQcHpCi9bsHQFWTmnSUrT8kqu3fQbJ1K0nJjTJ42lka9P2Tf6SFJzISqrUtV0VBVs1nNmVxRt5kFRqJFRAyFEuS64gLLQZCbtZMVBRFWoFq2En+LmxaHjaSUCyrCwMJKSXBO8KU3CtE0xafHaDuxK3axAYHMt72TC/nIv27ztHy6fcHeZ57Z+9Sl9epScztbr9dpmmZMnUMPauLxGr9VqJTU11bUBpW8Tp9aNvv7x5xxLTLb/edWGX1i14RcAJtx4XfkBZaMqJkQX4gLnsJqOatOyNFiKHP/sGty1L5klEOK8uOACSlNRJQOwyrCdebaiL5Xk3MPDg5ycHJc1pXg3Qo3odGZXdpr2Kb3sKwFVCyR9A6FxCIqbETX5MM6UW5w+aSwXdy2ZBqlNi+bl35CfA4W54Onr9PdSHtVq0Tb/mE3k5eRwyw3X0L5VBKpqc0mNbEWnR20cAqeSHV53dPOayj/cNwDF4F7mKVVViU88yY69x4k9mEj26QL0eh3hwf707NCcHh0iaOQray/Fhe3BBx8kKSmJmTNnEhoays2jR2tBpIP0aSVYirQvvUGbjXHBa4YQonwXXEDpYazBb7m4fKFqxehesp3CwkI8PV0bJCh6AwSEozYJPRPI5WkBWPFOcJ0BPLzA6A3ejezr+VRLEeRlOdXGgIu6M+raIZXrWHZ6lQNK1WaF0ychK73EG4ePCotfeVb7w+EYVE8/8A8Cr0bVGw1tHKqtIS1y8k2qAlarFYuqYAwsHXTnFxSx/PvtvPflZvYc0oJYN4MOLegHq82GzaZi0OsYeWUP7h4zkL7dI13SLyHqo1deeYWUlBQee/QRrhnUHz+fKuz8tlq0pS1GL20znhCiRlxwAaXR3Y2mIf4kpma5/NmKQdvkoZrzad8qtMS55ORkevfu7fI2AW20zttf+3JGJTfhnM7Nw9PDiMHg5H+X3ExUm03bme4kVVW1QDI9ocxprFIxY0GO9uXmoaUtqmLpSEXRoYZGatP/Vdnlfg4VsKlw7ZRp3HL7VO644w77uS3/HOT22Z+RkJJZIgA2W0q3abHaWLUxhq9+2MGYay/ijcdG06SRpFARFx6dTscnH39EVkoiXh7G6j3MlA/uXmCQoFKImnBBzgH07twSvc71C7YVT23NnGLKoEPk2bV+SUlJnDhxou6UFSvMc/rS2554jkY9BuLZ+VIunzCVf3Y7mafTlO90G6rNCsmHIO1Y5YM6cyGc2I+amVLlHaGKuyc0jar2WitFUdCFt6F994u48847efTRR7Farcx9fx1X3fkWSWlZAE7103KmrvzKH6PpNvx5YvYlVKtvQtRLqoq7zUxQYKDzH2gdKcp3sDxICFEdF2RAeWW/jvak5q6k8wxA8WiMMe9giXzWCxcuRFEURo0a5fI2q6Sw4mDP3c2Nm66+nDdnPcS377/O8w/cw+4Dh7hs3J3E7Cl/M4+dkwGlarNC4gFtyr46TibCyapvelI8vKF5B/AoZ4NNRdw9oFl7DH5NeO+995g/fz6vvfYaXa+4jRc+0Mp6VuX/nNVmIzMnjytvny9BpbjwmE2g2srcsL19RzT3PfgInS7qg3dQOBHtOnPzxMkcOHjI8TNN+drucCGESzXoKe9du3axevVqAA4dOkR2djZz586lyGzBreAEZs9mLm/TENaP0/FaucGxY8cSGxvLggULuOOOO+jQoYPL26sSW8Ubk/r17Ea/nmeTwd9wxUBGXXMF3YaN5cnX3+X7T95xcLfiVBuqqkLq0UqNZjqUlYLqZkSp4u5qxc2I2jQKcjIgMxUsJgCmPPoMS75ZC0CntpHsXv/V2Zv0buAfDP4h9qlsRVGYOXMmyXlevL1yFwDWrCPVqhdPmxsYPv09dn4zG39f5/Jnnlsv3tvbm9zcXCf/JoSoA2xW+89gWV5+403++HMbo0feSNfOnUlJTWXB+x/S89KB/PXLRjp36lj2japNW2fuVs0pdCFECQ16hDI6OprZs2cze/Zs4uLiyMrKYvbs2Tz/3LO0apSDzsWpbfQ6He26XMzKlSs5deoU06dPZ9WqVTz55JO8++67Lm2rNrRp0ZwbrxjIL3/9g9Xqgmmj3FOQl13uaZOpiMdeeZuml16DV+dL6XPTrWz8/S/Hz8w4jmou/02oIoqioDQKghadILwt+IeAwUBgk8Z89trzvPjoDC3lUqNgCGvNhgPJ3PHwLLp06YJer6dly5YApGTksPiHA/aRleJ68fqAct7kyuqLsbF2T1APrDYbJzNzefS1/wGwevVqevbsiYeHBxERETz99NNYLCWD+IkTJ7J06VIGDBhQ5b8PIWpNBWVmH5x+L8f27+bt117hjsmTeOqxR9iy8XssFgsvvf5mBc82ySilEC7WIEYobTYbGRkZGAwG/P397ccnT57M5MmTy7wnv6CIXqNfICH5lPZGbCsCW2VKfdlQLQWg6FH0WnoYm6ry8dxb6d2lJSNHjnR4d15eHgUFBZhMVQ9+qkxnqPI6omZhIRSZzeTlF+BXXv5F1LM73su7wmbTNuA4MOWxZ1j548/MuHU8bVs2Z8mqtQy9cwabln5A/4u6l/NgVcstGda64m/GAUVRwMvvzFcjvH39mPjQU6Wu+/LLL8usFz/vg/XkFRTZ37NcUS/ealNZunobXcNV7r9nsr1e/O7du5k7dy5paWksXLjQfn2vXr3o1asXP/30E9HR0VX7ixCiNqhqhQFlvz6XlDrWtk1rOnVoz764uIqfb7PIrm8hXKhBjFAmJCQQFBRE//79nb7Hy9OdxfMmo9PpUE8fwxT7CZbELU7fr+alYIr9BPOxDfZjT9x5Db27tHTq/lmzZhEUFMTy5cudbtNlPKpecvBoQiIeRiM+3hU8o6KyhrmnHAa1f++MZfm6Dcx76D5efXwGd40dyc9LF9IiPIzHXnnb8bPzsrTUSOdBWfXic3ILWLpmG1Zr9XaNl8Wg1zFn9pN07dqVDRs2cOedd/L222/zxBNP8MEHH7B/vxPrW4Wo66r4gVdVVVLT0gkMCKj4YlfMsggh7Op9QPnoo4+yceNGNm7cyEcffVSpey/p2orlr9+Bm19TjG1uxK31Dbi1vgHF6O/wPreml9qvNYT1AWDqzQN46u7rnG572rRp9n6vXbu2Uv2uNidS7KSfLJ1aaOe+A6ze9BtX9b8EXUUpgSoKKLPTHZ5e+cPP6PV67hozwn7Mw2jkttE38mfMLhKSUxw/PyfD8XkXKate/KqNMRSaKjPa7byivAwy0xOZctvtJXa9Tps2DVVVWblyZY20K8R5VcWA8ovlX5GYlMSYm0ZUfLET67yFEM6r91PeHTt2pGNH59el/dd1l3Xhx08f59YnPiU5PdupGt/Fmyn0eh0K8Oz0G3hg0hWVSrAdFRVFVFRUVbtdPT6NtWlhB8bOfAJPo5G+PbsSHNCEvYeO8OGKb/Dy8ODFh6dX+HxHOShVm63CjTj/7o0jqmVEqWn13l07nTl/gOZhoWXdqimovQ0o23YdxaDX2VP/uFJxvfhGQSUTp4eHh7usXrwQta4KOWH3xx3g3gcfoe8lvbl1wvgaaUMIUb56P0LpCpf2aE3M/55i6s2X4e6mr3CzjkGv/bX17daKv1c8wYO3DnF57eqapBjcK0yCfuOQQWRkZjH/02Xc+8xLfLV+IyOvGsz2b5bSoU0rxw00CnJ83old3cnpGYQFl96tHRakHUtKczzCSWFelfNSVtf22PgaCSbhbL34lMzSoyuurBcvRH2SkpLK0JtuppGfHyu/WIJeL/W7hTjf6v0Ipav4envwxmOjmTX1Wj5b/RdrN+/m330J5BeeXYun1+mIahnMoN7tuP2mS+nUJtzBE+u4gKaoeVmUFwbff+tY7r91bOWf6+VXcS5HJ9Y3FhSaMLqXXjDvYXS3n3dItWlfyvl/Y0lOd13N9lLOTNNl5pb+/l1dL16I2uP8B/Ts7GyuHTGKrOxstmz4nvCwsIpvqmQbQoiKSUD5HwH+PjwwaQgPTBqCzWbjRGoW+QVFuBn0NA3xx8PYMHYF/rr1L3797itmT7vNdaOrig6CWzjxvIpHDj09jJiKSq9DLDQV2c9XqJZGKGt0ZPTM7vmiotIBZU3UixeiVjhZtrWwsJDrR4/lwKHD/LT2Wzp2aO/yNoQQzpGfKAd0Oh0RYU1oHxlK64igBhFM2mw2Xn75Za644gq27IrD5Fb1Hd+lhLXWptMrolT83y4sKJDktNIba5LTtWPhwRVMqzvZTk1o5FNzQd259eL/Kzk5uUTqIiHqLSfKoFqtVsZMmsKf27bz9dLF9L2kdyXbkPEUIVxJfqIuIJmZmUyaNIm1a9cya9Ysnn32WW23dupRyC29q9tpigKhrVG8/Jy73r3igKtbh3b8sm0HOadzS2zM2bYzFoDuHSvY0GRwd7gxqCb17BRBQsqpGinvWVwvXs1PK3G8uF78XXfd5fI2hTjvFJ32uuJgtP+hx2exet33XH/dNZzKzOTzL1eUOD9h3BjHbejl7U8IV5KfqAvEP//8w+jRo8nOzmbt2rUMHTrUfk4NaaWtfUxPqPzORw9vCG6J4u7h/D1uRu0Nw0Fbo665gtc/XsqiFd/w8B0TAa1yzuL/reGSbp0d7/Au7lct6dkxgm9//rdGnq3zDEAxNmbTD99ifelp++aDOlcvXojqUBQwGMFcWO4l/+7eDcCa9T+wZv0Ppc47DCh1eqdGQYUQzpOAso5KSMnk17/jiN6XwIH4VApNZjyMbkS1DKFXxwgG9o6iWUjjCp+jqiqLFi3i/vvvp2vXrvzyyy/28oDFFEUBv0BULz/IStNyOJaZB07Bvv7R6KXVsPZpUuk1mIqioHr7a8nNy3FJ986MvnYIT76+gLSTp2jTojmffbOW+MQkPpo3u+JGKtjF7ipl1YtP2rOJouTtKB4B6BtVsCO+kvQ6hR6DRhGz4aO6XS9eiOoyuIPZRHlrrjf/sK7qz5Y63kK4nASUdcxv/xzgzc9+5off96KqKm4GHWaL7ZzzB1losaIoCtcN6MTMSUPo36tNmc/Ky8vj7rvv5vPPP2fatGm88cYbGI3lv5AqBncIbIbaJBwKc6EwD4oKzgSXivYC7+EFHt4oTkxbO9QoyGFACbDk1WeJmB/G59+tJzP7NF3bt2HNoje5rHdPx8/W6cHHv3r9c1JxvfhzvfHaSwAYmrQHFweUVpvK04/di+3u63j22WeZPn06QUFBPPnkk8yZM8elbQlRqxRFWx5TVHGasUrRu0nJRSFqgKLWVrI+UUL26QIeff1/fPbdX04nxS6+bvKIvrz84Ej8ztkMsn//fkaNGsXRo0f58MMPGT/eiUS/55GqqpAYpwWtrhbQFKVxBVPilTB58mQ2bdpEdHR0qXrx5fl7dzyDbn3dvuNbtVnBVoQ18yCWxC24R422J8gvi+ngN4AN91bX2evF6/U6OrcJ5/fPH8FgqHi6rrhe/PTp01mzZg25ubWX7F2IKjPlg7X6ladUVdXWVXv4asGqEMKlZJd3HXD0RAYX3zyPL9ZsA3A6KXbxdZ999xcX3/wi8YnaDugVK1Zw8cUXY7PZ2L59e50LJuHMNHtwS9e/sLt7gn+Ia59J5evF9+7SkpmTrrAnybflVL9evAJ88sKtTgWTUMv14oVwFXfPam+gsVgsJCYlczLPJMGkEDVERihrWUJKJpdNfJX0zFys1aiuotfrCG7iy6CW2Xz64buMGzeORYsW4eNTQZLxWqbmZEDaMdc8TNFB8w6V2yDkhL1799or0Pj4+NCnTx+n7is0mbl26jts330US1E+toKzaZB0XiEo+vJTLNny01CtWq5JxeCJzjOQ92aPZ8rIfk73+8CBAxw/fhwAg8HAoEGDnL5XiDpFVcFiOrOmsvLyTUX07j+QRv6N+fnnn/HwcO1rhBBCAkqXmDx5MkuWLAGgU6dOxMbGOnWf1Wrj8ilvEL33OKaThzDHf28/58yUqJqnBTk6vxa4Rw4DVNS8VF6feTnT7rmnws0yM2fO5K233gLA29u71qZE1aw0yEio3kMUHTSNQqnF3d1lycktYPj0hfy182iVEp7rdAo2m8r8x0dz95iBNdBDIeoRm/Wcdd1OUBRw8wC9G39v387AgQO58cYbWbZsmZYyTQjhMvIT5SKBgYEsXbqUl156qcTxDRs2cPvtt9O5c2f0en2JHdbvLf+Vv3drdZ91XsG4RQxBH9DR6TYVY2PtnqAexUdQvENRGndkzZo19OzZEw8PDyIiInj66aexWErWf544cSJLly5lwIABVf22XULxD4bQ1lVP42H00kYm61gwCeDn48n3H0zn0duvQqdT0Oud/5HT6RRCA/1Y//50CSaFAO01wsNH+zIYy37NUHTaphujl7Ze0uAOikLv3r35/PPP+eqrr0ptpBNCVJ+MULrA5MmT2bx5M/Hx8WWeW7FiBT179uT48ePo9Xri4+PJLyiixZAnyM0vOYVjObkPS8ImJzdtgLHtiFLn3IuSOb3vGwYNGsS4cePYvXs37777LnfddRcLFy4ss48rV66s9U0bqtUCJxPh9ElsVisqWv30cukN0DgUGgW7rnxkDYrZl8DLH/3Ams27UFUtBdB/18sW7+oPaOTN1DGXMXPSFfh6y/ScEOX671tYBa8Fr732Go888ggff/wxt912Ww12TIgLi6QNqmHz5s3jww8/xM3NjWHDhtmnw7/+cUepYNJVTh/5heYt27BhwwYMBu2f2M/Pj3nz5jFjxgzat69EvdvzSNEbILgFOe5+zHngXu697VbaNAsrucPTzUNLWu7dCLz960UgWaxHh+Ysf/1OEtOyWLt5F9F7jxO99zg5uYXo9TqahTTm4i4tuKRrK67p3wl3N/nxFKJClXwNeOihhzh06BBTp06lRYsWXHHFFTXUMSEuLPKOVcPKq638xdptWoJvFw8Q2wpPoRZm4h1+hT2YBJg2bRovvPACK1eu5KmnnnJpm6624aefeWvxl8x8eh5Ky5Yl/o7qUwBZnqbB/ky9+bLa7oYQFyRFUViwYAHx8fHcdNNNbN26lY4dnV9qJIQom6yhrAU2m40de467PJgEUPPTAUjKcSvx/PDwcJo1a0ZMTIzL23S1NWvW0LlzZ/t6U0VR7F9CCFFdBoOBr776ioiICIYOHUpqamptd0mIek8Cylpw9MRJ8guLauTZqkWrKlFodeNY0skS58LCwuzpb+oqq9XK+vXrGTZsWG13RQjRgPn5+bFu3TpMJhM33HAD+fkursgjxAVGAspacDK7BqrDFLOd2cmt6DmZVbIdDw8PCgoKaq5tF9i2bRsZGRlcf/31td0VIUQD17x5c9asWUNsbCyTJk3CZqt6LmAhLnSyhrIW1OjMre7MP6lqLTVFXFhYiKdnNWtwu4iqqhxLOsnx5FOYLVa8PY10iAxjzZo1BAYGcskll9R2F4UQF4BevXrx5ZdfMnz4cB5//HFeeeWV2u6ScJHMnHy27TxKzL7jHE5Ix1RkwdPDjXatQunZIYLeXVvi7Wms7W42GBJQ1oJA/5qrXqMYvABQzfkE/Ked5ORkevfuXWNtV8RqtbFx6z4+WrmFLTsOkZNXWOoag1pIZPcRHDmRQdsWri+hKIQQ/3XDDTcwf/58Zs6cSevWrZk6dWptd0lUQ8y+BN5d9gtf/bADs8Vqz/+rqiq6M5thrTYVL093br2xL9PGDqRNi/LT9AnnSEBZC1o2DcDHy1gjaYMUz0AA3G2ZRIQ1th9PSkrixIkT3HXXXS5v0xmb/47jnueWEZ94Er1eV26ZSYviwaGT0HX489x4eTfeenIMIQF+57m3QogLzf3338+hQ4e49957admyJVdffXVtd0lUUl6BiTnvrGHhl5vR63X2PL/nvt/YOLtZNb+giEVfb+HDr7cw556hPHDrEAyGKhbYELKGsjYoisJFnVqg07l+7lvnGYBibIwua3+J9UALFy5EURRGjRrl8jYdMZutPPDSV1w79R2OJ58CqLBmue3Mz/vaX3fTbfjzrPllV013UwhxgVMUhfnz53PNNdcwevRo/t/encfZVP4BHP+cc+/sC7NhBmPLOpYshRB+NCXRJDKFSBiNXYtfhGRpoShJKIRKUbJH6ldEmygzJPvszMLs6733/P64XKbZ7szcmUHf9+s1r+rc85znuePc7tdznuf7DQsLq+ohiVKIjLtMx8Gv8f7GH9CgQNGIohiNJgxGE7Pf3c59o5aQnCabs8pKAsoKduzYMebNm8e8efM4c+YMKSkpzJs3D7esE+RdOVchfer97iHtciyBgYGsWrWKSZMmsWDBAkaNGkXz5s0rpM/C5OYZGPzsKlZ8fgAAk6l0aZKMRhOpGVkMfnYVH2//pSKGKIQQFnq9no0bN9KoUSP69u1LXFxcVQ9JWCEmPpleTy3mQmwSpjKm49OA38Ii6DNmKWmFLMcSJZOAsoIdOXKEmTNnMnPmTP7++2+Sk5OZOXMmmzasQJcRUSF9+vi34LPPPufy5ctMmDCBL7/8kunTp7Ns2bIK6a8okxZ8xtc/Hi9Xvk1NM697GT17A9/9fNKGoxNCiIJcXV3ZsWMHJpOJfv36kZFRgVk5hMWIESMs+YZbtmxpdTuj0cQTz33AxcQUcpPOkP3HMsuPKTO+2LY5p7dYzs09twOjyUTYqWgmzt9odf+TJ0+2jNvVteL2R9wKJKC0EZPJRGJiIsnJyfmOjxgxAk3TCv159733LedpJiOaIQtMeVjPhGbIQjPmz2k5f1IQgwYN5OjRo2RnZxMVFcXcuXOxs7PLd15GRgaJiYnk5BS9lrOsH/LdB8JZ+9VPaJqGIf7PfB9yzVB86qLs4+ss5+ZF7wfMO+OfnrmO1HTr0h4FBQWVadxCCFG7dm127tzJ33//zRNPPIHRaKzqIf0reHt7s379el577TXLsczMTJYtW0ZgYCC+vr64ubnRtm1bli9fjtFoZNmn3/Nr2AUMRhOqcw3s/Huj87K+8pHi4GFu49MWAKNJY+Puw+z4/hjbtm2jXbt2ODo64u/vz+zZszEYDPnaDxs2jPXr19OtWzfb/BJuYRJQ2khUVBQ+Pj507drV6jYjB3Sh+11N0OlUTKkR5ISvxhBzwOr2WsZFcsJXkxexFwCdTuU/HZsyPKizVe1nzJiBj48PGzcW/7exwj7k1xw6dIiuXbvi7OxMrVq1mDhxIolJVxj78seWNaKquz92/r1RqzW0+r0pLr7mD7lnU8D8uDzhchqvLN/Jhx9+SPPmzXF0dKRx48YsXbq0QPspU6awfv36m7ZuuRDi5tamTRs+++wzduzYwXPPPVfVw/lXcHFxYejQofkKW5w7d44JEyagaRpTp05l0aJFNGjQgNDQUIY9OZw5y3ZYzlXsXdF5NkVxrmV9p3ondJ5N0bnVthxSFYWxz79GUFAQ1atXZ+nSpQQFBTFv3jwmTJiQr3n79u0ZOnQoDRta//12u5Jd3jbwwgsvMHToUIBSTXkrisJHr46gx/A3icqrDY36X3/NoXqxbe1qd0EzmmcWFb0TOp2Kv68naxaMsLpEYWhoqOWDe2Pd73+69iH/pz/++INevXrRvHlz3nrrLaKjo1m0aBE/HDxMvKmd5TzV0QMcPTDlpECKdetGFftqlmDyGqNJY/l7y8m88B2PPvooU6dO5cCBA0ycOJHMzEymTZtmObd79+4AfPDBByQmJlrVpxBC3OjBBx9k6dKljBs3jkaNGjF+/PiqHtK/Tq1atQgLCyMgIMByLCQkhJEjR7JmzRrsmw9BLeH7srRMmkZs+Nc0vKMJe/futXw/uru7s2DBAiZNmiSTFYWQgNIGWrRoQYsW1k+x36imlzv7Vk+hb8hSTkc6Wr1xRXW+njNLVRQa+9dg14oJ1PB0s7rvJk2a0KRJk1KP+Zrp06fj4eHB999/j7u7ObVP/fr1GT16NA53+KC41i3ztQujmQxkRh2iVbvObN68GYDRo0djMpmYO3cuY8aMwcPDo4SrCCGE9UJDQzlz5gyTJk2iQYMG9O3bt6qH9K/i7e2Nt7d3geOPPPIIa9asgZwrYOuAMvsyWvYVvBs8lG+yJTQ0lPnz57N582Zeeuklm/Z5O5BH3jeB2jWqc+iTaYx/oicKoNdZ98ei16koisLEYf/h0Ccv4OtTrWIHeoPU1FS++eYbhg4dagkmAR4dNBhUOwyXT9u8T1N6NBiz8ax3V77j48aNIyMjg507d9q8TyGEWLhwIf369WPw4MH88ccfVT0cAUTHxJj/RWf76m9aZgIAsWn59x34+flRp04djh49avM+bwcSUN4knJ3sef3ZAfz48QsMeqC9JajU69TraxFVxXLcTq8j+MEOHPrkBV6d8ghOjvaVOt6wsDAMBgMdOnTId/zk+QQUJ29MWbZ/zKxlmq954Ur+27Z9+/aoqiofciFEhdDpdHz88cc0a9aMvn37Eh0dXdVD+lfLzc1l0aK3UOzdUZxtX+FGM5hzUcanGEhJy78R1NfXl9jYWJv3eTuQR943mXYt/Fk9bzgLn3uUQ0fPcfSvSE5HxJOda8DRXk/jejVo18Kfznc2LFBasTJdy8/m6+ub7/i5qAQUO2dM6bbP32b+kCtcSs7DYDBaKhrY29vj5eUlH3IhRIVxcXFh+/btdOrUiYceeogDBw7g5mb9EiNhO+PHj+fc2dPYNeyLolTAvJjp6k5uRUdScjrV3K7Pgjo6OpKammr7Pm8DElDepLyqu9KvZ2v69Wxd1UMpVFaW+W9tDg4O+Y7n5BlA0V//QNqSyQCKOYjMzTPmK5Hl6OhoGZMQQlQEX19fdu7cSZcuXQgODmbr1q3Fbmj8t9GMBsjNBs0Eigp2Dih6u5IblsLChQtZtWoVw0dP4LPfrKuGU2rq1T9TzVhgX0N2djZOTrZ/zH47kEfeokyufaD+mcPSycEONMP1D6QtqXrQzPngHOzzX18+5EKIytCyZUs2bdrEnj17mDRpUrkKN9wOtJxMtPgItPPH4PyfEPM3xJ42//PCMbTzf6JdPI+WlV7u39XatWuZNm0aY8eOZfykZ230DgpS9M4AaHmZeFRzzvdaXFwcfn5+Fdb3rUwCSlEm1x51/7M0WeP6NdHyMlHsXGzep/lDrlHH2xHdDRuXcnNzSUpKkg+5EKJSBAYGsnz5ct577z3efvvtqh5OldDyctBiTkHUX5CaCMYiinIYDZB+2RxgRv2FllO2Wtlbt25l1KhRDBgwgGXLlhHQyNeyv8DWFCfzrnJXNTXf0rLY2Fiio6O58847K6TfW50ElKJMWrZsiV6v5/Dhw/mON/H3RstKRHUqmOahvK59yP098letOHz4MCaTST7kQohKM3r0aF544QWmTp3K1q1bq3o4lUpLTYTI45CVVrqGuVnmoPJyXKlmK/fv309wcDD33nsvH3/8MaqqkpQYj5eb3lyf18ZUJy8UBw9Ml0/kq5K0fPlyFEVh4MCBNu/zdiABpSiTatWq0bt3bzZs2EBa2vX/qWz6fCOY8tB7NLZ5n6pbHdA5cPnCb/mOL1++HGdnZ8kPJ4SoVK+++ioDBgzgiSeeKPCX69uVduUixEeUL5C7HAsJkVYFlREREfTv3x9FUejTpw+hoaE0b96cunXrEvfHVkzZFVO4Qu93DymJMQQGBrJq1SomTZrEggULGDVqFM2bN6+QPm91sppYlNn8+fO555576N69O2PGjCE6Opo333yTO9t35qTRtknNARRVj2v9rvzx27cMGjSI+++/nwMHDrBhwwbmz5+Pp6enzfsUQoiiqKrK+vXr6dmzJ/369eOXX37B39+/qodVYbS0JEiKsc3FUhNBbw+evsWedvLkSVJSUgBzVbobGVLOY+/sA04+thnTDWo1aMVbb4xk/vy5TJgwAR8fH6ZPn86sWbNs3tftQmYoRZm1a9eOffv24eTkxJQpU1i5ciVPP/00332ziwa1vdDZeH2Lqig8P3UyK1euJCwsjHHjxnHw4EEWL17Miy++aNO+hBDCGk5OTmzduhVHR0f69u1rCX5uN5ohF+Iji3z9t2PHGT/ndVr2eQzX1l2pd29fBk/8L6fORxR90cuxaNnX11SaTCYSExNJTExk7969jBgxgkGDBgFw1113sWTJEmJjY9E0zfIz7cUZlnLDmsmIZsgCUxHrOQtlQjNkoRlz8x19ZXw/Bg4cwNGjR8nOziYqKoq5c+diZ5d/13pGRgaJiYkFNqj+G8kMpSjRtQ+5Xq+nevXq+V7r2rUrBw8eLNDmg3lP0vupxYC5ZCKmPPPub2tpV//HoOhRdHboVJWGdb154en7cXSwY/To0cU2T0tLIycnh7y80vyPRQghSq9mzZrs2rWLzp07M2jQIHbu3Fkg8LjlJUSZ0wEV4Y2VH3HwyJ8MfKA3rZs15mJCIss2bKJ90FB+2rSGlk3uKLxh/AW0uuZHyFFRUfj4+KDT6TAajTRu3Jhnn32Wxx9/vMgywTNC+vDVt39wLjqR3ORz5F3YXaq3pWVcJCd8Nap7PewbPoROp9LjriYMD+psVfsZM2ZYNma5uNh+M+qtRNH+7TkPRLFGjBjBRx99BEBAQADh4eFWt521dBsLV+/FEP8nhtgfLccdWo5E0Red4if7+DrIM6/L1Hm3wr5ud+z0Kt+tmUr7gHpW9R0UFGRZKF/acQshRFl899133H///Tz11FOsWLHCMnN2q9PyciCi+P+HHjryJx1atsDe/nogffpCJK37BjPwgV6sf3NukW3X7PmROW+8RWRkJB4eHgQGBvLcc8/Rvn17q36Hf52No8eIN0lPTSEvI95yXHWuiaIruoqcKTMezWieWVT0Tti71sCvRnV+WPcctbzdi2x3o1OnThEZaZ651ev19OjRw6p2tyMJKEWxTpw4YalA4+rqSqdOnaxuazKZGD9vI6s/24MpJ9lyXHX1Q1F0RbdLj0O7Opupc3DD3sWLz98aw/1dA6zu+9ixY8THx5dp3EIIUVZr1qxh5MiRvPHGGzz//PNVPRyb0JJi4MrFMrXtEDQUgMNfbSj09TyDgW3f7mfn4RMMGTKEnj17otMV/f1QlGN/R9MnZCkp6VkYjaVPeK6qCvX8vNizahJ1a3mUur2QgFJUME3TWLTmG+a8twMFMJTig66qCrVrVOejV5+i850NK26QQghhQy+99BLz589n06ZNt0WKGS3qLyhD/khN0/Dv1peAxg35es27RZ+nqCgN7yz3jO7FxFTGz/2EnfvD0akKRlPJ4Y1Op2I0mhg5oAuvTgnC3VUKZJSVbMoRFUpRFJ4fGcgvG//LXS3rA6DXFX/bKYqCvZ2O0Md7cPTLlySYFELcUl555RWCg4MZNmwYv/zyS1UPp1w0TYOcspW1/XjbbmIuxfPYg/cVe56imYpOjF4Ktbzd2bQkhM/eGk2nNubvDUUp+J1jd7Vsr6Io3N+lBd98MJllMx+XYLKcZIZSVKqwUzF8+OVBvv/1b05HxOerk+rsZE/bZnXp17M1w/p3wrPav3uBsxDi1pWdnU2vXr04c+YMP//8Mw0aNKjqIZWJNesnC3Py7AU6DRxOQONG7P90VcmPsf0aozhbt27R6jGcu8j+w6c5+lckf1+4RE6uAWdHewLu8KVtc396dmyKv6+km7MVCShFlcnMyiU2Ppk8gxEXZwfq1KyOqsqkuRDi9pCQkEDnzp2xt7fn4MGDeHjcemvztNxsc1WcUriYkEjXwU+TZzDw06a1+NW0Ik+k7x0oLtXKOEpxM5CAUgghhKggf//9N507d6Zt27bs3r0be/uidx3fjLS8XIgIs/r8lLR0eg4ZQ2TcJfZ/sooWja1csuTXBMXZrYyjFDcDmQ4SQgghKkjTpk356quvOHDgAGPHji1VDeubgt7OvBDRCtk5OfQfM4VTFyLZvnKx9cEkgL1jGQcobhYSUAohhBAV6N5772X16tWsWbOGV199taqHUyqKooCDc4nnGY1Ggie9yE9/HOPzd16jc9vW1nei06Pob7NE8P9CUilHCCGEqGBDhw7l7NmzzJgxg4YNGxIcHFzVQ7KeczXIzij2lGdfXcK2b/fT7z/duJySyoatu/K9PvThB4u/vrjlyRpKIYQQohJomsaTTz7Jpk2b+Pbbb+nSpUtVD8kqh3/5iTs99OiK2TTZc8gYfvj1SJGvm04fLrqDOs1QHCWrx61OAkohhBCikuTk5BAYGMjx48f5+eefueOOImpc3wR+/fVXZs+ezddff82WFUvo17MLqq3LSTq6oNRpZttriiohayiFEEKISuLg4MCWLVvw8vLiwQcfJCkpqaqHVMDvv//OQw89RMeOHYmIiOCzzz6j/1PPoOpsvUpOgRr1bXxNUVUkoBRCCCEqkaenJzt37uTKlSsMGDCAnJycqh4SAEePHuXhhx+mQ4cOnDlzhk8++YSwsDAee+wxVDt7qFnfth1610GR3d23DXnkLYQQQlSBgwcP0qtXLwYNGsS6devy1bLOMxjZ9dNpDh6L5PDJGC7EJZNnNOHiaE/rO2rSvqkvD3ZuQqtGNcs9jmPHjvHyyy+zZcsWGjduzKxZs3j88ccLrW6jpSZCfES5+8TDFzx9ISvN/JOdAXk5oGmgqODgCA4u4FINxYpd5qLqSUAphBBCVJGNGzfy+OOP8/LLLzN79myycvJY8tlPvLflNxKTM7HTqeQZTfnaqKqCAhhNGh1b1OG/w7ryQKfGpe47PDycl19+mS+++IKGDRsya9YshgwZgl5f/KNtLSMZLl0Ak7HUfaIo4FXH/O/Jl8CQW3IbB2fwqAUu1fMF3VVN0zSupGaSk2vAydGOaq5ON9X4KpsElEIIIUQVWrBgATNmzODlRav47PcsIi6mYLLyq1lVFUwmjcd7t2LRhPvxdHcqsc2JEyeYM2cOmzZtol69esycOZNhw4ZhZ2d9LkjNmAcJ0ZB+2eo2OLlD9RqQFAO5Wda3u8alOvj4V2nOyvjLaazf9jPf/XyS349HkpJ+/X14uDvToWU9Aru0YMhDHfFw/3fNrEpAKYQQQlQhTdPoNXgih+K90akqpjJ8K+tUhbo1q7Fn8ZP41yw8r+PJkyd55ZVX2LhxI3Xr1mXmzJkMHz68VIFkgbEbciElETJTICcL+Mfg7R3B2R3cfcyzkXFnzI+1y0pnB7WbVPray8Qr6cx4+ys+2fErJk1D07RC38a1GUo7vY6RA+5hzvh+uLuWHOTfDiSgFEIIIarQV/v/4omXN18ty1j2R6Y6nUodHzf2v/c0NTyu53U8ffo0r7zyCp988gl+fn689NJLPPXUUzavK65p2g3rIBXQ26NczV2pZaVBzGkKBJxlodNDneYodpVTF33H98cIeXkDKWnZGE2mkhtcpVMVani5s3rek/S4u2kFjvDmILu8hRBCiHIaMWIEiqKgKAotW7a0ul1UfAqjXt2KpoEx4STZ38+y/JhSY4ptm3N0teXc3GMbMBpNRMenMv7NHWiaxtmzZxkxYgTNmjXju+++Y+nSpZw5c4aQkBBLMDl58mTLuF1dXcv1O1AUBcXeEcXByfzPa8Gk0QAXz2GTYBLAaIBL5yulLvoHm3/ksSkruZKaVapgEsxrXC8lpfLQM++yac/vFTTCm4cElEIIIYQNeHt7s379el577TXLsczMTJYtW0ZgYCC+vr64ubnRtm1bli9fjsFgIHTRDrLzDACobn7YNXsUnW8Hq/tUnL3Nbeqaq+4YTRrbD56id/AkmjRpwscff4yqqqiqyqVLlwrs3B42bBjr16+nW7duNvgNFCExyhwEFuL7Xw6jNu5Q6M/PR8OKvmZ2OqQmVNCAzTbvPcKE+RvRoMzBq8mkYTRpjJi+ln0//WXbAd5kpJa3EEIIYQMuLi4MHTo037Fz584xYcIEevXqxdSpU3F3d2fPnj2EhoayY893fJfS2nKu4lgNXa02aJoJ4oopVXgjO1d0tdrkO6RpGgfDotE0jS5dujBkyBDCwsKYN28e8fHxLF++3HJu+/btad++Pfv27ePIkaJLJ5aVlpcDaSVv3JnwZDB3tW6R79gd9eoW3+hyHJq7T7E7q0eMGMFHH30EQEBAAOHh4SUPGoiJT+aZOR+jKGC4co68C7str9k3GYTqXKPItjmnt6BlxAKgutfDvuFDoMHIl9bx55aZVm3WmTx5Mm+//TZgvq/S09OtGndVkoBSCCGEqCC1atUiLCyMgIAAy7GQkBBGjhzJmjVrcO5cF5ODh037VBSFnIgfadi4Gfv27bOkAXJ3d2fBggVMmjSJZs0qqdxhinWziN063MnAPr1Ld22jATKSwbX435+3tzeLFy+mevXqlmOZmZmsWbOGrVu3EhYWRnp6OnfccQdjxoxhzJgxTFrwGdk5eWgaqM41sPPvjSkjFmPSCauGpjh4oK/ZHuzMywhMmsbl5HRefOtLHmznzssvv8yJEyeoUaMGTz31FDNnzsyXrmnYsGF06NCBlStXVkigXxHkkbcQQghRQby9vfMFk9c8/HAQAHlpl2zepykjHi0zgbqteuQLUkJDQ9E0jc2bN9u8zyJZMTtpOTU9A4Oh8Efj5bn+tZnjhx56yHLs2syxpmlMnTqVRYsW0aBBA0JDQ3n0scfZ+UMYhqv5PxV7V3SeTVGca1k/Lr0TOs+m6NxqWw4ZTRprN3xOUFAQ1atXZ+nSpQQFBTFv3jwmTJiQr3n79u0ZOnQoDRs2tL7PKiYzlEIIIUQlO3byLACKne1zFWrpcQAkGKrnO+7n50edOnU4evSozfssdBxGAxjzrDp35IuvkJ6RiU6no1uHO3lj2iQ6tGpRcsPsjDKNraSZY6eAYWh27mW6dnFyYw5Sq3YD9u7dW7UzxxVAZiiFEEKISpSbm8vK5ctQHD1QbpjBshUtJw2AC0l5BTaT+Pr6Ehsba/M+C5VTcvJyezs7Hr3/PyyZ8Sxfvf8mc6c8Q9ipM9z7+GiOHj9Zch/GPLQyVOwpaub4kUceAcCQmVTqa5bElH0ZLfsyTr6tq37muALIDKUQQghRicaPH090xFnsWg1FUQvWyy43k/mxscGk0qDhHSiYLBtXYmNj0TStwKPUhIQEMjMzCxwvTynBwC53896s54o95552bbin3fVNRf17dWfgA71o81Aw099cxu7VS0vsZ/tXW1DsHHB2di7wk5trLu2oaZpV7+X8hUgAFL3tk5Frmeb1pJfSHTAYjOj15j/7yp45rigSUAohhBCVZOHChaxatYpHhoayO7oUa/JKQ7361W4y8vjjwag3xFFr1qxBVVUef/zxfE22b9/OyZMnCQ4OLvHy1qbQaebva/WQb3RHvbo83Ks7X+79H0ajsUCqo38KGTuWiwnFzyja2dkVGnC6uLhY/t3BwYFtO3ah2LujFLOLu6w0QyYABsWBiNjLNPL3sbxWqTPHFUQCSiGEEKISrF27lmnTpjF27FiCRkxh938/rZB+FAc3AFx0Oby6YFG+19atW8fdd9/N/Pnz8x2PiYnh3LlzLFiwwGbj0LIzINqKx9aFqONbk9y8PDIys3B3KzrhugacOnOWzKxsMjMz8/1kZGTwxhtvcPz4cebOnVvgtRv/OzU1lT///JO0lCvYNeyLolTAisCrM8coOjKzc/O95OjoSGpqqu37rEQSUAohhBAVbOvWrYwaNYoBAwawbNkyElNKXl9YVoqreWbQzzEt3/HY2Fiio6MZM2ZMhfWdj33ZHxufj4rB0cEBV5fiNy0p9k64uVfDzb3w+uWff/45Fy5cYOzYscVeZ+HChezdu5fRoVNYfyi32HPL7NrMsWbE3i7/rGt2djZOTrd2zW/ZlCOEEEJUoP379xMcHMy9995rqVxTw8MFP+/ylTosiupSA8XZm4S/D2A0Xt+wsnz5chRFYeDAgRXS7z8pqgoOxQeECUlXChz7869TbPtuP4FdO6KqJYQpTuX/Hd44c/zy7Fnlvl5RFP3V34Uhi7q1PPO9FhcXh5+fX4X1XRlkhlIIIYSoIBEREfTv398SyH3++eecO3eOffv2Efl3Eop/d3Rutg8kdA0DuRT+CXXq1GH48OGWEpCjRo2iefPmNu+vSO7ekBBZ5MvBk1/EycGBzu1aU8PLkxNnzrHqsy04Ozry6nMTimxn4eZdruH9c+ZYVVW8qruQlFy2dETFUZzMY/VyzMTZyd5yvNJnjiuIBJRCCCH+FbS8HEi/Ys5dmJMJ19LN6OzA0cX84+qBorPdV+P58+dJSUkBYNy4cQVet3OtBTYOKHWqQq/AQDzuVPn88895/fXX0ev13HfffQXWTlY4N09IjAbNVOjLD/fuwSfbdrN4zSekpqfj4+nBgMCezJowpuTSiw7OKI5lz+NZ2MwxQM+7m/LVt39YEpvbiurkheLoQW5CeL7NRpU9c1xRJKAUQghxW9OyM+ByLGQWsenBZIS8bEhLgoQoNDdP8PJD0dsXfn4RTCYTiYmJ6PV6S5k/Pz8/Jk+ezNq1a0lJSaFPnz6EhobywAMPoNPpeH3DAeZ8+D0aoJkMYMgBYynW8GlGtNwMUHUoekcAdKrK4skP0bjucD766CP27dvHihUr2Lp1K/Xq1SM4OJgxY8bQsWNHMjMzycrKIicnp1Tv1VqKqkPzrlPkLOXE4cFMHF7yzvJC+fiXeVz/nDnetGmT5bV6LknkpsejOpVv9rMwet97SLqwi8DAQIKDgwkPD+fdd9+t/JnjCiABpRBCiNuSppngchxcuViaVubAMv0Kmk9dcPOyOhdjVFQUPj4+BAQEMG/ePJYtW8a+ffvw8vIiJCSEkJAQGjRokK/Ns493YcsPfxF+PoHchNPkHS/dzm8tNYqcQ6+jejbBvvVQAOaO+Q+N63oBoKoqgYGBBAYGEhcXx+rVq1m1ahVr1qyhdevWeHl58b///Q8wlyisEO7ekH4ZstJtd83qNVEcyz7ekmaOazXrSZpaA6PJdrOUep1K1569GddvFHPmzGHChAn4+Pgwffp0Zs2quLWblUXRrE0oJYQQQtwiNJMR4s6UP4ip5gPedUsMKk+cOEF4eDi7d+9m586dJCQk0LlzZ0JDQxk4cCCOjo5Fto1OSKXHuDXExV0kLzXOclx1r4OidyiynSktFi3PvFtcsXdBdanJ471b8OGMR4sdr9FoZO/evaxYsYLt27djZ2dHz549efjhhwkJCSlXMvOiaEYDRP0FBhvsoHauBr6NrBrniBEj+O677zhy5Ei+meOS/BZ+ge5PvommaeZ7yZSL8cppDDEHsG8yCLWYPJU5p7cAJuwbPAiKDkVnnum20+v47fMXadqg5PyjGRkZZGVlMWHCBLZv3056ug2D8QoiAaUQQojbiqZpEHsastJKPtka1WuieNcpsq/9+/ezfPlyvvjiC+zt7RkyZAjPPPMMbdu2tbqLqPgUOg5fzOUstdQBnaoomDQNfeJRWleLZ98331idgiYmJoYPP/yQDz74gKioKNq2bUtISAhPPPEEbm5upRpHUbScTPNMcUZy+S/m6gE161udJ3LEiBF89NFHAAQEBBAeHm51Vy8v287rH+zBmHyOvAu7LcetCSi1DHOSctW9HvYNHwLg9WcHMHHof6zqe/Lkybz99tuAeeZYAkohhBCikmmX48xrJm3J9w4Ul+u5DlNTU1m/fj3vvfceJ06coGnTpoSGhvLkk09aPQt2oz179vBAn74EPj2XA2cNqIqC0VT817OiABrU8HRl5bR+VNOS6NmzJ3369OHzzz8vscLMjYxGI7t372bFihXs2rULZ2dnnnjiCUJCQmjXrl2p3w+UdclBEVSdec2kq0epAu4TJ05YKtC4urrSqVMnq9uaTCZGz9rAJ1t/wJiVeH0ozjUts46FtsuMRzOa16QqeidUJ2/GD+nJG88OsHrsp06dIjLSvO5Ur9fTo0cPq8ddVSSgFEIIcdvQcrIg6kSRrx8/fZY576zk9/CTXExMxNnJkRaNGvLcqGH063Vv0RfW6aFeS8KPn2D58uWsX7+erKwsgoKCCA0NpWfPnmV+VBwfH0/r1q1p06YNu3fv5lzsFVZtO8LqHUdIzzI/IrbTq+TlGVAUBQ1zP83reRM64G6C72uF69U0NNu3bycoKIjx48ezZMmSMo0pKiqKDz74gA8//JCYmBg6dOhASEgIwcHBuLpal/dRMxog9gzklDP9jqoDj1rg7m3T3ffWMplMvPTONpZ8tA9VLTnIv5FOVQGNWaEP8fzIwApZSnAzkYBSCCHEbUO7eM6cGqgIu77/kaXrPqNT21b41fAhMyubL/d8x4HDR3l/7nTGBA8o/LqaxtJPtzB59gJ8fX0ZM2YMo0ePpnbt2uUar8lk4qGHHuL333/nzz//pFat6+vrcvOMnLgQz5G/44i8lMJH69bjWd2Nmc+OpW0TX/xrVis0SFmxYgVjx45l0aJFPPvss2Uem8FgYNeuXbz//vt8/fXXuLq6MnToUEJCQmjTpk2R7TSTEWJOmVMz2YJvIxSX6ra5VhkdPHqW0bPWcz46EZ1OxVhMSiG9TsVgNBFwhy8fzH2SO5uVkP7oNiEBpRBCiNuCZsiDC8dK3c5oNNIhaBjZuTn8teeLQs8xmUxcTLrCTzGpPPzww9jZ2ZV3uAAsWbKEKVOmsGvXLvr06VPsuX379sXe3p4tW7aUeN0ZM2awYMECPv30U4KDy5iW5wYRERGWWcu4uDg6duxISEgIgwcPxtk5fy5ILSESUhLK3aeFokK9gFKncbI1o9HE3kMneP+z/fzw2ylycg0FznF2tKd352aMHdydHnc3ue1nJW8kAaUQQojbgpaaCPERZWrbf8wUfgs7QdxPe4o/sW5zlBLKCVrr6NGjdOzYkXHjxrF48eISzx88eDBJSUns27evxHM1TWP48OF89tln7N27l+7du9tiyOTl5bFjxw5WrFjB3r17cXd3Z9iwYYSEhNCyZUu0rDTz7KSV5r/3ITMXLyegcUPCdn1e9IlO7uB3x00ToBmNJk5duMTpyHhy84w42utp2qAmjer6lFwu8jYlAaUQQojbQmlmxjIys8jKziElLZ1t3/3AC6+/w+AH72PDW/OKb1ijHop7+RNeZ2Rk0L59e5ycnPj5559xcCg6PdA1o0aNIjw8nJ9//tmqPnJzc+nbty+HDx/mxx9/JCAgoLzDzuf8+fOsWrWK1atXc+nSJe655x6+XPoqPu4uWBP2Rcddotn95hRH9Wv7Fh9QAtRuimKD2t2iYvw7w2ghhBC3n2zr1+w9++pianTsTePeQTz/2ts8cl8Pls5+oYRWCuRklW+MV02aNImoqCg+/fRTq4JJMO9STkuzPhWSvb09X3zxBf7+/vTp04eYmJiyDrdQDRo0YMGCBURGRrJp0yZa3NGAGlYGkwDPv76ETne2okNLKyvEpMSXeayi4klAKYQQ4vZwrTa3FSaPeIK9a5ex9o2X6XPvPRiNJnLz8kpopZWqj6Js2rSJDz/8kHfeeYdmzZpZ3c7Nza3U+Qjd3d3ZvducQ/HBBx8kNbWI8pPlYG9vz8CBA1n51utY+8hz/69H2Pz1dyyeUYpNQ+nJ5lRE4qYkAaUQQojbQymW1zVrVJ/eXTry5CMPsX3VEtIzM+kfMoUSV4GVcw1fREQEo0ePZtCgQYwcObJUbUs7Q3mNn58fu3fvJjIykgEDBpCba4NqNYXJzrDqj8BoNDJx7kKeHvQwrZreUYoONMjNLuvoRAWTgFIIIcTtoZgyhSV59IFe/HbsBKfOl7CpR1/23d0Gg4EhQ4ZQrVo1Vq5cWeoNJmWZobwmICCAr776igMHDvD000+XHDiXhZVpgt7/9AsiYuKYO/mZCutDVD4JKIUQQtweyrH7OivbXNkkJa2EgK0cfcydO5effvqJTz75pEzVdNzc3MjLyyMnJ6dM/Xfv3p1169axYcMGXnrppTJdo1hWLAdIupLM7LdX8NK4Ufh4eZS+D2P5lxyIilH5aeeFEEKIiuDkCkXnNAcgPukyNbw88x3LyzOw/qudODk60OKOhsVfwMGlTEM7cOAA8+bNY9asWXTp0qVM17hWpSYtLc3qjTz/NHjwYGJiYnj22WepW7cuY8eOLdN1Cne1FmQxXlq8HM9q7kwYNrjsXYibkgSUQgghbg9ObqCzA2PRm2vGzlxAanoG3e5qS+2aNbiYkMgn277m5LkLLHpxMq4uxcxAulRDufrIW9M0yM0y/5hM5rWVdg7g4Iyi5q+hfeXKFYYMGcI999zDjBkzyvz23NzcAEhPT8fbu+ypi6ZMmUJkZCTjxo3Dz8+P/v37l9jm2iPyYh/T6/TF/u5PX4hk1WdbWDxjKrHx19M7ZefkkmcwcCE6FndXFzyrVyvyGuhsk1Be2J7koRRCCHHb0K5cREuMKXLvzMYde1i9aSthp86SlJyMm4sL7QOaMf7JwfTvVULyb9+rG0hS4iEzjSJn4+ydoJoPuHmCojJo0CC+/fZb/vzzT/z9/cv83n7++Wc6d+7MsWPHaNWqVZmvA+aNMYMHD2bXrl3873//o2PHjvle13KzIS0JsjPM6xavPc5WVPNjf0cXcPNCcXC63ibuDGSkFNnn978c5j9Di58RnTj8cZa8VMzOb/8AFHvHkt+gqHQSUAohhKgyV1IzSU7NRFHA28MNV+eyb6zJyclhwfx5DO3envp1/NDrdCU3spaTKxjyIK8U6xdVHd+FnaF30CA2b97Mo48+Wq4hHD9+nJYtW3Lo0CE6d+5crmsBZGdnc99993Hy5EkOHTpE48aN0bIzICkGsqzcTe7oAl61UZzc0K5cNLctQuLlZH78/Y8Cx2cufo+0jEyWvPQcjfzrFLnzW1NUlIZ33jTVckR+ElAKIYSoNHl5RrZ/f4xNew7z85/nuZh4PS+iokD92l50aXsHw/p3pFv7xlYHD7/++itPPfUUp0+f5v0lbzIi8B7bLbdTFCjDV6WmmZse+fsc7fo8ilLOknwRERHUr1+fPXv2EBgYWK5rXXP58mW6dOmCZjJx+JsduOSWMU9ltRrmWdnI46Vu2nPIGBKvJBdbKSfPYGDd1t3EG+0ZNWoUNWrUKNs4S5CXZ+TYqWiO/hXFyfMXycrOxc5OT6O6PrRtXpd2zf1xdqramuI3K1lDKYQQosJpmsbaLT8xe9l2Ei6noVMVjCbtH+fA+egkouKusGH7LzSuV4O3pg2id+eiK6lkZWUxe/Zs3nzzTdq1a8fvv/9Oq1atylXXu5DBl6nZtVi4bdOGEHsKza9JuYLKG9dQ2oqnpye7d+3izI97cMpOhrKOLyUecjLAuRpkFv3Yu6zs9HrOJ6bx1rvvMWfOHAYPHsz48eO5++67bXL92PhkPtj8Iys3HSAp2ZxPU6/XoaGhoGA0mjBpGs6O9gx7uBNjH7uXZg1r2aTv24XMUAohhKhQcQkpPD1zHf/75e9StVNVBZNJY8QjnXnz+UEFZoYOHTrEU089RUREBHPmzOHZZ59Fr78+T6KlJcGlCEraeVwkRQVbVmZx9UCpVcIu8mLk5ubi4ODA2rVrGT58uE2GpGkaXDyLlp5S3pztZvbO5o1KZf2dF8XdG6VGPZKSkli9ejXvvfceFy5c4K677mL8+PE89thjODqWfm2lyWTig80HmfbWl+TmGTCZSh63Xqdi0jSee+o+po/pg4O9bBQCyUMphBCiAkXEXubeYYs4cPh0qdte+3Jft/VnHhy7lLQMc5WUjIwMpkyZQteuXfH09OTo0aNMmzYtXzAJoLh5gX+LsqX6ca5W4sxkTk4u0954h9pdHsC5ZRc6PTqcb378uegG6VfQ0kvIa1QITdPQcrOwy0nj5UkhNK9Z3bz5KCMZzVDOqjepiZBho2ASIDfTvNvelnR24F0HAC8vL55//nnOnDnD9u3b8fT0ZPjw4dStW5fp06cTGRlp9WUzs3IZMPF9Jr36Gdk5eVYFkwAGowmTSWPh6m/oMuQN4hJsPyN7K5IZSiGEEBUiOS2TTsGvEX0pGaOxfDN9OlWhW/vGPP94a8aMHkVMTAzz589n0qRJ6ErYfKNpGmSmXt2dfeMawWtRlHb9v908zOsBr1yEjORir/vE5Ols3vMtk4Y/QeP6dfnoyx38Fnac79avoGuHOwtvpOqgfmurHn1rebmQmgApCZZd1nl5BlSdiu7G9vZO5jG7eRRIWVTi9SPDiw2c0zMyWfjBen79M5xfjx3nSkoqq1+bzYhH+xV/cVs9+lZUqNMUpZiE8qdOneK9995jzZo1pKen8/DDDzNu3Dj+85//FLkGNzsnj36hyzj0x1mrA8nC6HUqdWp58P1Hz1LTy73M17kdyAylEEKIYo0YMQJFUVAUhZYtW1rd7oVFXxB98QpGowlj8jmy/1hm+TFlxhfbNuf0Fsu5ued2YDRpfP/bKQIfm4Sfnx/Hjh1j6tSpxQaTkydPRlEUVFXFrWZtFL/G0OBO8GtinvHyqGX+8fGHOs2g4Z0oNRuYZ8RKCCZ//TOcjTv3suDZ8Sz87yTGBA/g2/XLqefny7Q33im6ockIJcxSapqGdjkOIsLMge0NFWjs7PT5g0kwP2JOiICIcLRi0vYUkBJf4ixs4pVk5r67ir/OnqdNs8bWX1vVgXvZc2UC5ryWxQST1+7Lpk2bsm/fPmJiYli2bBmnTp2id+/eBAQEsGzZskLrn09780sO/XGWvMtny3VfGowmoi5eYcgLH2IyWfeXpmv3paIolmT1twMJKIUQQpTI29ub9evX89prr1mOZWZmsmzZMgIDA/H19cXNzY22bduyfPly9h06wfptv1g23qjONbDz743Oq4XVfSoOHuY2Pm0txxz972Xdp1/y119/0a5dOxwdHfH392f27NkYDIZ87YcNG8b69evp1q3b9WvqdCjObijVa6J4+Zl/qvmgOLpcnzVMSyxxbJu//hadTseYwY9cH5uDAyMHPcxPR48RFXex6MYpRQctmiEPok/C5dgSx1CA0QBxZ9ASIkus1a2ZTObH3SXw9fEm9tDXXPhhB29Mm2T9WDKugFdtqNXQHFyWlqunOedkCaUub7wvXV1dGTt2LL/88gsTJ04kKSmJ8ePH4+7ujo+PD7Nnz8ZoNPL9r3+zctMBTCbNJvel0Wji4JGzrNr8I9u2bSvTfXk7kF3eQgghSuTi4sLQoUPzHTt37hwTJkygV69eTJ06FXd3d/bs2UNoaCi1m9yNzrUjxquzNoq9KzrPpmiaCZJOWNep3gmdZ9N/HFT47ytv8/mq+fTo0YOlS5cSFhbGvHnziI+PZ/ny5ZYz27dvT/v27dm3bx9Hjhyx/s1mlpyD8Y8Tf9Okvj/ubvlnmO5uHXD19VPU9S1iF3BOJprJVOCxt2bMg5i/S5frsjApCWAyodWoV3Tapex0q2pvOzjYU8unDDONmgZZaSiuHmhObubgNTm+2Eo6ALh6QDUfFCvXYRZ2X54/f56lS5fSq1cvOnbsyJEjR/juu+945ZVXWLlyFa6thlk2fNnuvoTnZy8m/e+tFXdf3uQkoBRCCFEmtWrVIiwsjICAAMuxkJAQBg1+gs2ff4p988aoDtVt2qfRZGLzhuW0atWKvXv3WjbiuLu7s2DBAiZNmkSzZs3KfH1N08yVYUoQl5CIb42CgZbv1eDrxtKChcrNMicFv7HfuLPlDyavSUsCe0fzI/3CWPEey0cxV9lx9UDR6cGjFlr1mub3nZ15tWSl0ZxbSW9vqb6j6MoflhR2X+bk5BAYGMj+/fux94ix+X0JkH7hB2r7N6qQ+/JWII+8hRBClIm3t3e+L+1ratRvDYCWXfodzSUxZV/GmJnEfX0fzberOzQ0FE3T2Lx5czk7MFmVKigrO6fQdDGODvaW14v1z8AxJcEcgBXjyPGTPBwyBa8O/8GlVRdaPfgY73y0segGSbHmEoqFyc0qfnzlphXoQ1EUFAdnlGreKD51UWrWR6lRD8XTF8Wlmk2CSSj8vnRwcOC5554zjyMn2Sb93MiUfRkt+wp2PgEVc1/eAmSGUgghhE2FnzgDgKJ3KuHM0tMyzTN/ipNPvuN+fn7UqVOHo0ePlrcHq85ycnQgJ7fg49vsnFzL69b2oxkNkBRd7Nl7D/xM/5AptG3RlJfGPY2rszNnI6OJvnip+D4SoqB2IZtprNxAUi5WPFKvTBcvmte1ajpH21VRuurafXkx3Z7cPAP2dubwynb35c1PAkohhBA2k5uby28HtqPYu6M42748nmYwP6pNTC0YEPn6+hIbW4bNLDdSrHtw5+vjTcylgo+14xLMG138avgUeC1/PzdsVEm7XOxu69S0dIa/MJu+Pbqy6d3XUUtTzSYrFS0vB8XuHwFupdTDvnlqbufm5rJ48eIKvy9NqhPHz8TRtnldy2s2uS9vAfLIWwghhM2MHz+erJR49HW6oVgZnJWKybxjNq+QCTZHR0eyssr3KFdRVXPaoBK0ad6UUxciSU3LXwbxlz/DAbizRZPiL2B/Q1WXlOLXW36y/WsuJSYxb2ooqqqSkZlldYoaoPDd3PpKqEf9zyC2Co0fP56//vqrwu9LFB3xSfnrodvivrwVSEAphBDCJhYuXMiqVauo0+o+dO71K6YT1fxgTVUKBlTZ2dk4OdngMbtjyZV1Bj7QC6PRyMrPtliO5eTksvaL7XRs07LoHd5gngW9GmxpJiPkFbHO8apvD/2Ku6sLMZfiaRY4ALc23ajWtjvPzHqV7BwrNvFkFVL7u4R0PDbhWAl9WOHaffns8y9W+H2JZrRkNrjGZvflTU4CSiGEEOW2du1apk2bxtixY+n10BPodBXz9aLozUGKRyGxSlxcHH5+fuXvxKV6iad0vLMlg/r0Zvqb7/LC62+zcuOX9HpyLBdiYnn9hYklXt+SzseK3danI6IwGI0EPfMsgV07s/ndN3jq0f6s+PQLRk6bU/L7ycksmJfSsRISaldGHyW48b6c8dJLFdbPtftSy8ukunv+m9Nm9+VNTtZQCiGEKJetW7cyatQoBgwYwLJly1j68f/YtOf3CulLcTKn5VGy8j/GjY2NJTo6mjFjxpS/E1cPSIwqcVPJRwvn4L/Ylw1bd3ElJY3Wze5g+8ol3Ht3u+KvX+2G9ZWGEvIyYi5/mJmVTcjjj/LOrOcBGHD/f8jNy2Plxi+ZM3ksjev7F30B7erO9RvWbSp29mhO7pCVWnS7q95d/xnJqWnExpt/5zu+22/ZDDThyWCquRUSODo4l5iUvKL9875UVRVfn2oVUnv72n2pZcXTqnFty3Gb3pc3OQkohRBClNn+/fsJDg7m3nvv5eOPP0ZVVbrf1aRc9ZGLozp5oTp68N2erzC+NstSenH58uUoisLAgQPL3YeiquaciSVUq3F0cGDhfyex8L+lqCDj6JL/kXoJFW3g+o7xxx+6P9/xJ/o9wMqNX/LT0WPFB5RF9VO9hlUB5ZsfbiAiJs7y31/u/R9f7v0fAEMffrDwgLK67Te+lEZh9yVAx9b12f6/Y5YKTraiOnmhOHigpv6Ns+P1Nbi2vC9vdhJQCiGEKJOIiAj69+9v+cLctGmT5bU6jolEJyvg6GXTPvU6lf88OpLdn7xFYGAgwcHBhIeH8+677zJq1CiaN29um448aplrbtsyX6OiQI36+avXWFGW0K+GD8dPn6Omt2e+4zW8zP99JaXkyj4UtjPc2R1cqkEJ9b/Pf7+95OvfyNHVXDqxihR3X9bQXSIvIwHVqZx1xgthX+cecs/tqtj78iYmAaUQQogyOX/+PCkp5mBk3LhxBV7X1bwLO1/bBpRGk8Zrs6YwemBX5syZw4QJE/Dx8WH69OnMmjXLZv0oioJWs4G5rrYVic6t4uOPcuPubgCHkjdrtGvZnG8O/kLMpQSaNqxvOX6tGo+Pp0fxF7BzKHRns6IoaD71IOu4TXJGalevSc36RZd8rAQl3Zdu9buQVwEBpa5aAz5YvZ6lby+qsPvyZiabcoQQQpTIZDKRmJhIcnKy5ViPHj3QNK3QH5PJRGDQMPRXN+doJiOaIQtMJa8ZvKFXNEMWmtGcLFxVFCY/2YtWTWoTFBTE0aNHyc7OJioqirlz52Jnlz/dT0ZGBomJieRYsxO6EIqDE/g1tjo3ZbG866C4FxLE6O0Lnz28wWN9egOwetPWfMc//Pwr9HodPTq2L77vYnatK3o7m7xHo9FIXl4eVxy9Cua8rEClvS81TePNN161nGuL+xJAVRVCHruXkSOGVPh9ebOSgFIIIUSJoqKi8PHxoWvXrladrygKK14eirOTPTpVwZQaQU74agwxB6zuU8u4SE74avIi9qLTqdxRz4eZYx+0uv2MGTPw8fFh48ZiyhOWQHFyhbrNwN6p4E5pa6g6qNUQpXrNwq+vKOBS/Axj24BmPDWwP59s/5rgSS/y3sebGDzxv3y6Yw/PjXoSv5olJFF3Lf76iqML1GlqVf7NIun0DJ7yEr37PUJqasnrMm2ltPclwNOPdqFb+8bodWq570sAnapQu0Z15k7sb1V7W9yXNyNFK9MnRAghxL/FiRMnLJU+XF1d6dSpk9Vtfwu/QJ8x75CVnkpe5vUE3qpzTRRd0cm1TZnxaEbzDI7e3pk69e7gu7VTqVOzhMe7Nzh16hSRkZHma+j19OjRw+q2/xQZEcF7r77MzPFjcHa0Jim4Am6e5pnJEmpUazmZEPVXsefk5RlY8P5q1n6xndj4BOr5+RI6ZBCTn3qi+GHo7KB+K6seQWsmIyRGF54IvTiuHuDjT9jxE3Tr1o277rqLnTt34uBQsTOV5bkvY+KT6TZ0IZcuxZOXEW85Xpr7UtE7oXfxwcFOzzcfTqZ9QD2r+rblfXkzkYBSCCFEhfrz72iCn11FZNzlMu3+7tSmIZ8sfBpfn2oVMDrrjBw5kh07dnDu7FlcyIPMFMjOgLwbHlvq9ODgAs5u4OZVYiB5Iy32NGRWwMyejz9KtRJmMP85ltxsc/WetKSi11YqKrh5QTUf89KAq3744Qfuv/9+Hn74YT799NPSlYmsZOeiErh/9DvEJaQUSEZuDZ1OxcnBjq3LQrnnzkYVMMJbiwSUQgghKlxmVi5z3tvBsk+/v7rGsuivHkUxZ7lxdrTnlQn9eSb43ioNTE6cOEGrVq1YsmQJEyZMyPeapmnmwSpKuTaiaIZciDhuuw1AAE5u4Ne4zOPSNA0Muebk60YDoJkrwjg4X93oU/h1v/zySwYNGkRoaCjvvPNOlW7QKcnllAymvr6Jz3YfRqcqVqUTUhQFTdPo0rYRq14ZRoM6tt/gcyuSgFIIIUSluZiYykdfHWLD9l84G5VQID2iXqfSqkltRg7oQvCDd+HqXPX1oAcMGMDRo0c5efJkhT7G1dKT4eJZ21xMp4c6zVHsKqFmdyFWrFjB2LFjmT9/PtOnT6+SMZTGnh+Ps2jNN/x45AyqoqCoCkbj9eBeVRUUzFkGWjTyZfKTvRjy0N039QxsZZOAUgghRJVIz8wh/HQMyalZ5hSNXu60aFQLB/tybA6xsV9++YVOnTqxbt06hg0bVuH9aWmX4dL58l1EZwe1mxRMUVTJXnnlFWbPns2qVasYNWpUlY7FWifPXWTfz39x5EQk4adiyczOxd5eT9P6NWjXoh7d72rCXS3r3dSzrlVFAkohhBCiEJqm0atXLxISEvjjjz8sVXkqvN+sdHNQacgt+eR/cq4GNeqZ0wFVMU3TGDduHCtWrGDLli30719wF7SmaZw4G8fRE5GEnY4lLSPbvGu6pgdtm9elQ8t6eFWv+prgomQSUAohhPhXMhiMRF28Yp6FstNRt5Ynjg7XA7FvvvmGwMBAtm3bRr9+/Sp1bJrJBFcuQkr81Y0xCubU4Teco2nXZ8rsnczVfVw9bqrZM6PRyODBg9m5cyfffPONJb1PanoW67b9zHuffM/5mCQA7PQ687rNq2tojUYTqqrQv2cbQoO7061D46p8K6IEElAKIYT414hLSGHtlkPs3B9O+KkYcvIMltd0qkrTBjXp1akZIwfcw9DH+uHg4MCPP/5YZUGappnMpRGz0iy7yjVN4+KleEx2DtRu2NhcPtHB5aYKJG+UnZ1Nnz59+OOPPzhw4ADRVxRC5mwg4bK5ZGRJUYhep2IwmhjQuy1LXnwMH0+3Shi1KC0JKIUQQtz2kpLT+e9bW/h0569oUOwu82sBjDE1kvULn2HwgD6VN1AreXt7M3Xq1FtiwwtASkoK93bvTmRWTbKdG6OqSqlTSOl0KtVcndi2LNTqnI+i8sj2JCGEELe1PT8ep80jc/l0528YTcWnLAIwXN3dq3evS8jre1j5ufVVVCpL7dq1iY6OruphWM3d3Z2O/SaR7XQHUHxAXxSj0URKWhaBo97myIlIWw9RlJMElEIIIW5bn+76jUcmvs+VlMxSJ6/WUMjJNTDp1c+Y/e62spVerCB16tQhJiam0vsdMWIEytWcmy1btrS63Zoth1i/43dQFIzJ58j+Y5nlx5QZX2zbnNNbLOdmndlGTm4ej0xYTnJaptX9T5482TJuV1fZ5FMRJKAUQghxW/rm0AmefmmdOZF6OYPBNz7cy9KP/2ejkZVfVc5Qent7s379el577TXLsczMTJYtW0ZgYCC+vr64ubnRtm1bli9fzvnoBJ5f+IXlXNW5Bnb+vdF5tbC6T8XBw9zGpy1Gk0ZScrrlmtu2baNdu3Y4Ojri7+/P7NmzMRgM+doPGzaM9evX061bt3K+e1EUCSiFEELctMo6I3YlNZOnX1qHAhji/8w3I6YZsoptm318neXcvOj9luMzlnzFibNxVvUfFBRUpnFbq6pmKAFcXFwYOnQoDz30kOXYuXPnmDBhApqmMXXqVBYtWkSDBg0IDQ0l8MFHyL1h85Ni74rOsymKcy3rO9U7ofNsis6tNmBOML5h+y8sW7WeoKAgqlevztKlSwkKCmLevHkFKhq1b9+eoUOH0rBhw/K9eVEk6wuNCiGEEFXA29ubxYsXU7169QKvHTp0iBdeeIEjR47g7u7OY489xoIFC5ixZBuXUzIwaRqquz92+t4YU85hSjlnVZ+Kiy96rwAUx+t9asCYWesZ0dOTN998k/Pnz1O3bl0mTpxYIICZMmUKAwcOZP78+eV450WrXbs2ly5dIjc3F3v7qqmGc6NatWoRFhZGQECA5VhISAhDhg7jk483YN+8PqpDdZv2qdepzJzxIq1bt2bv3r3o9eaQxt3dnQULFjBp0iSaNWtm0z5F0WSGUgghxE2tsBkxgD/++INevXqRmZnJW2+9xahRo1i5ciUPBz3C+m0/W+oyq44e5hkxRy+r+1Tsq6HzbIrqXNNyzGg08cv+XYwePZqAgACWLl1K586dmThxIq+//nq+9t27d2fo0KHUrFnzn5e2iTp16gAQF2fdjGlF8/b2zhdMXlPNz/xYW8u+YvM+czMSuZIQw8inn7YEkwChoaFomsbmzZtt3qcomsxQCiGEuCVNnz4dDw8Pvv/+e9zd3QGoX78+o0ePxqGRM4pbXZv2p5kMGOJ+oU6jNpZgZfTo0ZhMJubOncuYMWPw8PCwaZ+FjkPT0DtVQ3Wvz5ovD9C0ySVqeLlxZ7O6N11VmT+PnwJA0TvZ/NpaZgIAHjXq5zvu5+dHnTp1OHr0qM37FEWTgFIIIcQtJzU1lW+++YYpU6ZYgkmAJ598krGh4zFcOY2djQNKU3o0GLPJcLojX5WacePG8fHHH7Nz506GDh1q0z5vdDriEis3/cinO38lKTkD+4Z9eX3dz8DPlnP8fT0ZOeAeRjxyDzW93Iu+WCXIzc3l9wM7UezdUZxr2Pz6msG8y/tSSl6B13x9fYmNjbV5n6Jo8shbCCHELScsLAyDwUCHDh3yHbezs0Nx9MaUlWjzPrVM8zUzNXeiLyVbjrdv3x5VVStsRuxKaiajZq6jddBclm/8gaTkjCLPjYy7zCvLd3LH/S/xyns78m2GqWzjx48nJy0BfZ1uKEoFhBsm83tLTitY89zR0ZGsrOI3XwnbkoBSCCHELefa2kFfX998xy8lpWHSOaLlFR10lZV5RkxBsXPm7/MXLcft7e3x8vKqkBmxH4+coc0jc9m46zfAvI6zJCaThsFo4rUPvqZT8Gucj7Z9cF2ShQsXsmrVKpz970HnXr9iOlHND1lzcwsGlNnZ2Tg52f4xuyiaBJRCCCFuOddmnxwcHPIdz87JBUVvmb2yKZMBFN3VfvI/Zq2IGbHvf/2bvmOXknQl3bLBqDQ0DU5FxNP9yUWciSg+ebgtrV27lmnTpjF27Fh8m/WssH4UvTMAmqHgXx7i4uLw8/OrsL5FQRJQCiGEuOVcm33KycnJd9zeTg+awTJ7ZVOqHjTj9X5uYOsZsTMR8Twy8X0MBlO5krIbjSYup2by4NilpGVk22x8Rdm6dSujRo1iwIABLFu2jHYB/qiqUiF9KU7eAJgy8gfLsbGxREdHc+edd1ZIv6JwElAKIYS45Vx71P3PtDm1vN1RjVkodi4279M8I6ah5WXSuN71TSa5ubkkJSUVOiN28uRJjh8/XqoE50ajiadnrsNgMGLStHKVKsw9twOj0URMfDIz3v7K6vdallKF+/fvJzg4mHvvvZePP/4YVVXpEFCPigknQXXyQnHw4JtdX2I0Gi3Hly9fjqIoDBw4sIJ6FoWRgFIIIcQtp2XLluj1eg4fPpzvuMFgQMtKQr06e2VL12bEHExXqF/7ek7Lw4cPYzKZipwR0+l0pSpVuO6rQ/wadgHD1fWS5S1VCOZ1las2/cjh4xEVUqowIiKC/v37WwK5TZs2sWHDBnRpZ8lNPFkhm6T0OpVOgY8THh5GYGAgq1atYtKkSSxYsIBRo0bRvHlzm/cpiiZpg4QQQtxyqlWrRu/evdmwYQMzZ87Ezc0NgPXr12M05ODgcYfN+1Td6oDOEZfss5aUQWCeEXN2dqZv376Ft1PVAumErpUq7NWrF1OnTsXd3Z09e/YQGhqKp/+dKF5d0a4+6r5WqlDTTJB0wrrBXi1VmO+QTmX63HfY9/lievTowdKlSwkLC2PevHnEx8ezfPlyy7nt27enffv27Nu3jyNHjpTY3fnz50lJSQHMaZT+ya7W3WDjIN9gNDHnv+PIGHkfc+bMYcKECfj4+DB9+nRmzZpl075EySSgFEIIcUuaP38+99xzD927d2fMmDFER0fz5ptvcm+PnhxOrYepDBtZiqOoevS+dxN3fj+DBg3i/vvv58CBA2zYsIH58+fj6elp9bWKKlXY75HH2PHVJuxdAmxeqtBgNPHt1rUEtGxZrlKFJpOJxMRE9Hq9pRxmjx49LAHwP/0adoEew9+0vK6ZjGDKBVPB/JHF9Gquwa7oUHT26HQqd7WsR69OzVDVFgQFBRXbOiMjg6ysrAJrboXtyCNvIYQQt6R27dqxb98+nJycmDJlCitXruTpp59mx7atPNK7LTqdbb/idKpKQIfevP/++4SFhTFu3DgOHjzI4sWLefHFF0t1raJKFfrUM6+zrIhShabsy5iyL9MzMKhcpQqjoqLw8fGha9euVp1/d6v6TH6yF+rVWV1TagQ54asxxByweuxaxkVywleTF7EXAL2q8sErT6Kq1v0Zz5gxAx8fHzZu3Gh1n6J0ZIZSCCHETa2wGbFrunbtysGDBwu0Wfjco+w9eIL0zGxMRoN5NkwrRSohzXh1RkyPorMzj0PTWDV3GHe1rE9ISEixzdPS0sjJycFkKjlv5I1O/HUWqNhShZpD/kfPpSlV+MILL1ge31u7WQdg1jN9+eXYeX758xyaqy92jfpbXlNKmIm1q90FzWieWVT0TijAijlDaeTvY3X/oaGhllrwNwbTwnbktyqEEOKmdm1GLCAggPDwcKva+PpUY9nMx3nyv2swJh7HEPtjqfo0JZ8mJ/k0Ou9W2NW5F4BpT9/PXS3rW9V+2LBhbN26FTBX77FGbm4ux37+usJLFaZkF9x3bW2pwhYtWtCihfWbg65xdLDjq6XP8MjE5Rw6ehZFb31ZTPXq70KnKpg0WPnyEAb36VBCq/yaNGlCkyZNStVGlI4ElEIIIW5aZZ0RAxh0f3suJqby/II0FKcb1jfq7IttZ1/vPrSrs5mKnbnP4Q93YuYzD1rd9yuvvML48eN54403CAsLs6rN+PHjyUqNx65h3wotVWgqZLWbo6Mjqamptu/zBm4ujux6fwJvfLiH11Z9DYpiVeUfAFVRqOfnxYfznqRTm4YVOk5RNhJQCiGEuGmVdUbsmglDeuLp7syE+RvJNRitCmBUV3OOS51ORdM0/jvqAWaE9LF6vR5A69atAdiwYQOnTp0q8fxrpQrrtbmfS0p9q/splavJ3h0K+eavrFKF9nZ6Xhrbl/4927BozTd8ue8oRqMJvV7FYLj+Z6MoCjpVwWA04VejGs8E92Dc491xciz+LwOi6khAKYQQ4rY2pF9HurZvzPh5n7Dvp5Podaolx2Nhrr3erEFNVrw8lPYB9Sp0fDeWKtTVvpePtv6UL7iylWulCn2qFfzqj4uL4+6777Z5n0Vp3bQO6157ioVJj7J7fzhH/4riyF+RpKRloder1PP1on2AP53aNKTn3U1tvsFK2J4ElEIIIW579fw82f7eeI6fiWXVpgPs/CGc6EsFd1J7e7jS8+6mjHmsG13aNsqXb7Ii/LNU4Zoth1j9ZcFNRrZQUqnCMWPGVEi/xanp5c6IR+5hxCOV3rWwMQkohRBC/GsE3OHHkhcHs+TFwVxJzeTkuYtk5+RhZ6ejUV0ffH2qVdpYCitVGNglAFAA2+bQBHOpQr2zJ3t2fMGrr0xHp9MBUqpQ2IYElEIIIf6VPNyd6Xxn1WzwKKxU4TUtfdIJj8pBc7A+Ubo1dKrCo8PH88n7cwkMDCQ4OJjw8HDeffddKVUoyk0CSiGEEKKSlVSqUFfzLux8bbum0dHBjoVzpjIwsK2UKhQ2JwGlEEIIUYFKW6oQYOrrm1jx+X5MJs0mpQoB3nxhEL4+1QgKCpJShcLmZNuUEEIIUYFKW6oQYO7E/jStXxOdTi13qUJVVej/nzY8+XAnq9tLqUJRWopW3F+RhBBCCFFmJ06csFSgcXV1pVMn64O6S0mp3D/qbU6fiyTvhp3ZqnNNy6xjYUyZ8ZZSharemQd6d2Pjm6NxdLCuYg/AqVOniIyMBMylCnv06GF1W/HvJAGlEEIIcZO6kprJxPkb2bz3CIqiFPuY/EbXyhROHd6bWaF9sbeTFW6iYklAKYQQQtzkvvr2D2a+s5UzkQnFJma/9lrH1g1447lHubtV/codqPjXkoBSCCGEuAVomsaB30/z+de/88ux85w8d9ESWDrY62nTtA6d2jRkWP+OtGxcu4pHK/5tJKAUQgghbkEGg5GMrFxUVcHFyb5UtcaFsDUJKIUQQgghRLnIX2eEEEIIIUS5SEAphBBCCCHKRQJKIYQQQghRLhJQCiGEEEKIcpGAUgghhBBClIsElEIIIYQQolwkoBRCCCGEEOUiAaUQQgghhCgXCSiFEEIIIUS5SEAphBBCCCHKRQJKIYQQQghRLhJQCiGEEEKIcpGAUgghhBBClIsElEIIIYQQolwkoBRCCCGEEOUiAaUQQgghhCgXCSiFEEIIIUS5SEAphBBCCCHKRQJKIYQQQghRLhJQCiGEEEKIcpGAUgghhBBClIsElEIIIYQQolwkoBRCCCGEEOUiAaUQQgghhCgXCSiFEEIIIUS5SEAphBBCCCHKRQJKIYQQQghRLhJQCiGEEEKIcpGAUgghhBBClIsElEIIIYQQolwkoBRCCCGEEOUiAaUQQgghhCgXCSiFEEIIIUS5SEAphBBCCCHKRQJKIYQQQghRLhJQCiGEEEKIcpGAUgghhBBClMv/AWa9/tCwpWRzAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_plan_tree(tree)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.envs.rollout import rollout\n", + "from pymdp.jax.planning.si import si_policy_search\n", + "\n", + "# TODO we cannot yet use this with rollout as it cannot be jit-ed\n", + "# last, result, env = rollout(agent, env, 10, key, policy_search=si_policy_search(max_depth=3))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/si/sophisticated_tmaze.ipynb b/examples/si/sophisticated_tmaze.ipynb new file mode 100644 index 00000000..eebaf54d --- /dev/null +++ b/examples/si/sophisticated_tmaze.ipynb @@ -0,0 +1,303 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sophisticated inference\n", + "\n", + "This notebook demonstrates tree searching policies." + ] + }, + { + "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" + ] + } + ], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", + "from pymdp.jax.envs.generalized_tmaze import (\n", + " GeneralizedTMazeEnv, parse_maze, render \n", + ")\n", + "from pymdp.jax.agent import Agent\n", + "\n", + "import numpy as np \n", + "import jax.numpy as jnp" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0], [1], [2]]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAEzCAYAAAC8KU67AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABkh0lEQVR4nO3deVxU9frA8c+ZAYZ1QJBNRUBxw33L1FQsCsy86bXCpRQzy9JMbfX+urbYDdMsW0ztlltXy8pMs9LcwFxyx30X11hEBGSHmfP7Y2J0BBSUYZme9+t1XjLnfM85zzmMzDPf7SiqqqoIIYQQQohaT1PdAQghhBBCiMohiZ0QQgghhI2QxE4IIYQQwkZIYieEEEIIYSMksRNCCCGEsBGS2AkhhBBC2AhJ7IQQQgghbIQkdkIIIYQQNkISOyGEEEIIGyGJnbAZb775JoqiWKwLCgoiOjq6SuNYsGABiqJw5syZKj2vKB/5/QghbJkkdjYuISGBsWPH0rRpU5ydnXF2diY0NJQxY8awf//+6g7vb+nMmTMoilKupazkIygoCEVRCA8PL3X7f//7X/Mxdu3aZcWruT23ugdTp06t7hD/VpYsWcLMmTOrOwwhRCWwq+4AhPWsWrWKqKgo7OzsGDp0KG3btkWj0XD06FF++OEHZs+eTUJCAoGBgdUdqtUcO3YMjaZmfX/x9vbmq6++slg3Y8YMLly4wIcffliibFkcHR3ZuHEjSUlJ+Pn5WWxbvHgxjo6O5OXlVV7gVjB48GAefPDBEuvbt29vtXM+8cQTDBo0CJ1OZ7Vz1DZLlizh4MGDjB8/vrpDEULcIUnsbNSpU6cYNGgQgYGBrF+/Hn9/f4vt7733Hp999lmNS3qul52djYuLyx0doyZ+eLu4uPD4449brPvmm2+4cuVKifU30717d3bu3MnSpUt54YUXzOsvXLjA77//zoABA1i2bFmlxW0NHTp0qNA1VwatVotWq71pGVVVycvLw8nJqYqiEkKIylFzP9XFHZk2bRrZ2dnMnz+/RFIHYGdnx7hx4wgICLBYf/ToUR555BE8PT1xdHSkU6dOrFy50qJMcR+lLVu2MHHiRLy9vXFxcWHAgAFcunSpxLl+/fVXevTogYuLC25ubvTt25dDhw5ZlImOjsbV1ZVTp07x4IMP4ubmxtChQwH4/fffefTRR2nYsCE6nY6AgAAmTJhAbm7uLe/DjX3sytvsWZ77AHDo0CHuvfdenJycaNCgAe+88w5Go/GWcVUGR0dH/vnPf7JkyRKL9V9//TV16tQhIiKixD779+8nOjqaRo0a4ejoiJ+fH08++SSXL182l7lVM+n1tm/fTmRkJO7u7jg7O9OrVy+2bNlSqdcZFBTEQw89xObNm7nrrrtwdHSkUaNGLFq0yFxm165dKIrCwoULS+y/Zs0aFEVh1apVQOl97IrPsWbNGjp16oSTkxNz584F4PTp0zz66KN4enri7OzM3Xffzc8//2xxjtjYWBRF4dtvv+U///kPDRo0wNHRkfvuu4+TJ09alA0LC6NVq1bs37+fXr164ezsTEhICN9//z0AcXFxdOnSBScnJ5o1a8a6detKXNPFixd58skn8fX1RafT0bJlS+bNm3dbMYWFhfHzzz9z9uxZ8+84KCioHL8ZIURNJDV2NmrVqlWEhITQpUuXcu9z6NAhunfvTv369XnttddwcXHh22+/pX///ixbtowBAwZYlH/++eepU6cOb7zxBmfOnGHmzJmMHTuWpUuXmst89dVXDB8+nIiICN577z1ycnKYPXs299xzD3v37rX4ACkqKiIiIoJ77rmH999/H2dnZwC+++47cnJyePbZZ/Hy8mLHjh188sknXLhwge+++65C9+XGJlCA119/nZSUFFxdXSt0H5KSkujduzdFRUXmcp9//nmV1vIMGTKEBx54gFOnTtG4cWPA1Kz2yCOPYG9vX6L82rVrOX36NCNGjMDPz49Dhw7x+eefc+jQIf744w8URSm1qbiwsJAJEybg4OBgXrdhwwb69OlDx44deeONN9BoNMyfP597772X33//nbvuuuuW8efk5JCamlpivYeHB3Z21/48nTx5kkceeYSRI0cyfPhw5s2bR3R0NB07dqRly5Z06tSJRo0a8e233zJ8+HCLYy1durTMRPd6x44dY/DgwTzzzDOMGjWKZs2akZycTLdu3cjJyWHcuHF4eXmxcOFC/vGPf/D999+X+D8xdepUNBoNL730EhkZGUybNo2hQ4eyfft2i3JXrlzhoYceYtCgQTz66KPMnj2bQYMGsXjxYsaPH8/o0aMZMmQI06dP55FHHuH8+fO4ubkBkJyczN13342iKIwdOxZvb29+/fVXRo4cSWZmZonm1FvF9H//939kZGRYdAUo/r8ghKiFVGFzMjIyVEDt379/iW1XrlxRL126ZF5ycnLM2+677z61devWal5ennmd0WhUu3XrpjZp0sS8bv78+SqghoeHq0aj0bx+woQJqlarVdPT01VVVdWrV6+qHh4e6qhRoyxiSEpKUt3d3S3WDx8+XAXU1157rUTM18dYLCYmRlUURT179qx53RtvvKHe+JYODAxUhw8fXmL/YtOmTVMBddGiRRW+D+PHj1cBdfv27eZ1KSkpqru7uwqoCQkJZZ73Rn379lUDAwPLXT4wMFDt27evWlRUpPr5+alTpkxRVVVVDx8+rAJqXFyc+fe0c+dO836l3cuvv/5aBdRNmzaVeb7nnntO1Wq16oYNG1RVNd2PJk2aqBERERbvgZycHDU4OFi9//77bxp/QkKCCpS5bNu2zeJab4wvJSVF1el06osvvmheN2nSJNXe3l5NS0szr8vPz1c9PDzUJ5980ryu+L5c//spPsfq1ast4iz+Hf/+++/mdVevXlWDg4PVoKAg1WAwqKqqqhs3blQBtUWLFmp+fr657EcffaQC6oEDB8zrevXqpQLqkiVLzOuOHj2qAqpGo1H/+OMP8/o1a9aogDp//nzzupEjR6r+/v5qamqqRayDBg1S3d3dzb/jisRU0fefEKLmkqZYG5SZmQmU/q07LCwMb29v8zJr1iwA0tLS2LBhA4899hhXr14lNTWV1NRULl++TEREBCdOnODixYsWx3r66actmuZ69OiBwWDg7NmzgKl2KD09ncGDB5uPl5qailarpUuXLmzcuLFEfM8++2yJddfXgGVnZ5Oamkq3bt1QVZW9e/fexh0y2bhxI5MmTeL555/niSeeqPB9+OWXX7j77rstaqa8vb3NTchVQavV8thjj/H1118DpkETAQEB9OjRo9Ty19/LvLw8UlNTufvuuwHYs2dPqfssWrSIzz77jGnTptG7d28A4uPjOXHiBEOGDOHy5cvm+5Sdnc19993Hpk2bytUk/fTTT7N27doSS2hoqEW50NBQi2vy9vamWbNmnD592rwuKiqKwsJCfvjhB/O63377jfT0dKKiom4ZS3BwcIlavV9++YW77rqLe+65x7zO1dWVp59+mjNnznD48GGL8iNGjLCo1SyO+fo4i48xaNAg8+tmzZrh4eFBixYtLGrZi38u3l9VVZYtW0a/fv1QVdXi/1VERAQZ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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def get_maze_matrix(small=False):\n", + " if small:\n", + " M = np.zeros((3, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + "\n", + " # Set the initial position\n", + " M[2,3] = 1\n", + " else:\n", + "\n", + " M = np.zeros((5, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + " M[4,1] = 10\n", + " M[4,3] = 11\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + " M[3,2] = 9\n", + "\n", + " # Set the initial position\n", + " M[2,2] = 1\n", + " return M\n", + "\n", + "M = get_maze_matrix(small=True)\n", + "env_info = parse_maze(M)\n", + "tmaze_env = GeneralizedTMazeEnv(env_info)\n", + "_ = render(env_info, tmaze_env)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", + "B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", + "A_dependencies = tmaze_env.dependencies[\"A\"]\n", + "B_dependencies = tmaze_env.dependencies[\"B\"]\n", + "\n", + "# [position], [cue], [reward]\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "\n", + "rewarding_modality = 2 + env_info[\"num_cues\"]\n", + "#rewarding_modality = -1\n", + "\n", + "C[rewarding_modality] = C[rewarding_modality].at[:,1].set(2.0)\n", + "C[rewarding_modality] = C[rewarding_modality].at[:,2].set(-3.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) for b in B]\n", + "D[0] = tmaze_env.params[\"D\"][0].copy()\n", + "\n", + "agent = Agent(\n", + " A, B, C, D, \n", + " None, None, None, \n", + " policy_len=1,\n", + " A_dependencies=A_dependencies, \n", + " B_dependencies=B_dependencies,\n", + " apply_batch=False\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from jax import random as jr\n", + "\n", + "key = jr.PRNGKey(0)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "obs, tmaze_env = tmaze_env.step(keys[1:])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "qs = agent.infer_states(\n", + " observations=obs,\n", + " past_actions=None,\n", + " empirical_prior=agent.D,\n", + " qs_hist=None,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx\n", + "import matplotlib.pyplot as plt\n", + "\n", + "\n", + "def plot_plan_tree(\n", + " tree,\n", + " font_size=12,\n", + "):\n", + " root_node = tree.root()\n", + " print(root_node[\"n\"])\n", + "\n", + " colormap = plt.cm.Blues\n", + " colormap_policy = plt.cm.Reds\n", + "\n", + " # create graph\n", + " count = 0\n", + " G = nx.Graph()\n", + " to_visit = [(root_node, 0)]\n", + " labels = {}\n", + " colors = []\n", + "\n", + " G.add_node(count)\n", + " labels[0] = \"\"\n", + " colors.append((0.0, 0.0, 0.0, 1.0))\n", + " count += 1\n", + "\n", + " # visit children\n", + " while len(to_visit) > 0:\n", + " node, id = to_visit.pop()\n", + " for child in node[\"children\"]:\n", + " G.add_node(count)\n", + " G.add_edge(id, count)\n", + "\n", + " cm = colormap\n", + " if \"policy\" in child.keys():\n", + " labels[count] = child[\"policy\"][0]\n", + " cm = colormap_policy\n", + " elif \"observation\" in child.keys():\n", + " o = child[\"observation\"]\n", + " labels[count] = str(o[0][0])\n", + " else:\n", + " labels[count] = \"\"\n", + "\n", + " r, g, b, a = cm(child.get(\"prob\", 0))\n", + " a *= 0.5\n", + " colors.append((r, g, b, a))\n", + "\n", + " to_visit.append((child, count))\n", + " count += 1.0\n", + "\n", + " # from networkx.drawing.nx_pydot import graphviz_layout\n", + "\n", + " # pos = graphviz_layout(G, prog=\"dot\")\n", + " nx.draw(\n", + " G,\n", + " with_labels=True,\n", + " font_size=font_size,\n", + " labels=labels,\n", + " node_color=colors,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.planning.si import tree_search\n", + "\n", + "tree = tree_search(agent, qs, 3, entropy_prune_threshold=0.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_plan_tree(tree)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/sophisticated_demo.ipynb b/examples/sophisticated_demo.ipynb deleted file mode 100644 index fd6275b7..00000000 --- a/examples/sophisticated_demo.ipynb +++ /dev/null @@ -1,313 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Sophisticated inference\n", - "\n", - "This notebook demonstrates tree searching policies." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import jax.numpy as jnp\n", - "import jax.tree_util as jtu\n", - "from jax import random as jr\n", - "\n", - "key = jr.PRNGKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import networkx as nx\n", - "from pymdp.jax.envs import GraphEnv\n", - "\n", - "\n", - "def generate_connected_clusters(cluster_size=2, connections=2):\n", - " edges = []\n", - " connecting_node = 0\n", - " while connecting_node < connections * cluster_size:\n", - " edges += [(connecting_node, a) for a in range(connecting_node + 1, connecting_node + cluster_size + 1)]\n", - " connecting_node = len(edges)\n", - " graph = nx.Graph()\n", - " graph.add_edges_from(edges)\n", - " return graph, {\n", - " \"locations\": [\n", - " (f\"hallway {i}\" if len(list(graph.neighbors(loc))) > 1 else f\"room {i}\")\n", - " for i, loc in enumerate(graph.nodes)\n", - " ]\n", - " }\n", - "\n", - "\n", - "graph, _ = generate_connected_clusters(cluster_size=3, connections=2)\n", - "env = GraphEnv(graph, object_locations=[3], agent_locations=[0])" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[0.9433962 0.00943396 0.00943396 0.00943396 0.00943396 0.00943396\n", - " 0.00943396]]\n", - "[[0.05882353 0.05882353 0.05882353 0.05882353 0.5882353 0.05882353\n", - " 0.05882353 0.05882353]]\n" - ] - } - ], - "source": [ - "from pymdp.jax.agent import Agent\n", - "\n", - "A = [a.copy() for a in env.params[\"A\"]]\n", - "B = [b.copy() for b in env.params[\"B\"]]\n", - "A_dependencies = env.dependencies[\"A\"]\n", - "B_dependencies = env.dependencies[\"B\"]\n", - "\n", - "C = [jnp.zeros(a.shape[:2]) for a in A]\n", - "C[1] = C[1].at[1].set(1.0)\n", - "\n", - "# D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", - "D = [jnp.ones(b.shape[:2]) for b in B]\n", - "D[0] = D[0].at[0, 0].set(100.0)\n", - "D[1] = D[1].at[0, 4].set(10.0)\n", - "D = jtu.tree_map(lambda x: x / x.sum(), D)\n", - "\n", - "print(D[0])\n", - "print(D[1])\n", - "\n", - "agent = Agent(A, B, C, D, None, None, None, A_dependencies=A_dependencies, B_dependencies=B_dependencies, policy_len=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "keys = jr.split(key, 2)\n", - "key = keys[0]\n", - "obs, env = env.step(keys[1:])" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" - ] - } - ], - "source": [ - "print(obs)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "empirical_prior = agent.D\n", - "\n", - "qs = agent.infer_states(\n", - " observations=obs,\n", - " past_actions=None,\n", - " empirical_prior=empirical_prior,\n", - " qs_hist=None,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Array([[[1.0000000e+00, 2.3339602e-19, 2.3339602e-19, 2.3339602e-19,\n", - " 3.6556616e-28, 2.3339602e-19, 2.3339602e-19]]], dtype=float32), Array([[[1.3877806e-17, 6.2499996e-02, 6.2499996e-02, 6.2499996e-02,\n", - " 6.2500000e-01, 6.2499996e-02, 6.2499996e-02, 6.2499996e-02]]], dtype=float32)]\n" - ] - } - ], - "source": [ - "print(qs)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(1, 1, 7)\n" - ] - } - ], - "source": [ - "print(qs[0].shape)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'pymdp' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[10], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpymdp\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mjax\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mplanning\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m tree_search\n\u001b[0;32m----> 3\u001b[0m tree \u001b[38;5;241m=\u001b[39m \u001b[43mtree_search\u001b[49m\u001b[43m(\u001b[49m\u001b[43magent\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mqs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/repos/pymdp/pymdp/jax/planning.py:135\u001b[0m, in \u001b[0;36mtree_search\u001b[0;34m(agent, qs, planning_horizon, policy_prune_threshold, policy_prune_topk, observation_prune_threshold, entropy_prune_threshold, prune_penalty)\u001b[0m\n\u001b[1;32m 133\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mq_pi\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mroot()\u001b[38;5;241m.\u001b[39mkeys():\n\u001b[1;32m 134\u001b[0m q_pi \u001b[38;5;241m=\u001b[39m tree\u001b[38;5;241m.\u001b[39mroot()[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mq_pi\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m--> 135\u001b[0m H \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m-\u001b[39mjnp\u001b[38;5;241m.\u001b[39mdot(q_pi, jnp\u001b[38;5;241m.\u001b[39mlog(q_pi \u001b[38;5;241m+\u001b[39m \u001b[43mpymdp\u001b[49m\u001b[38;5;241m.\u001b[39mmaths\u001b[38;5;241m.\u001b[39mEPS_VAL))\n\u001b[1;32m 136\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m H \u001b[38;5;241m<\u001b[39m entropy_prune_threshold:\n\u001b[1;32m 137\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n", - "\u001b[0;31mNameError\u001b[0m: name 'pymdp' is not defined" - ] - } - ], - "source": [ - "from pymdp.jax.planning import tree_search\n", - "\n", - "tree = tree_search(agent, qs, 3)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "\n", - "\n", - "def plot_plan_tree(\n", - " tree,\n", - " font_size=12,\n", - "):\n", - " root_node = tree.root()\n", - " print(root_node[\"n\"])\n", - "\n", - " colormap = plt.cm.Blues\n", - " colormap_policy = plt.cm.Reds\n", - "\n", - " # create graph\n", - " count = 0\n", - " G = nx.Graph()\n", - " to_visit = [(root_node, 0)]\n", - " labels = {}\n", - " colors = []\n", - "\n", - " G.add_node(count)\n", - " labels[0] = \"\"\n", - " colors.append((0.0, 0.0, 0.0, 1.0))\n", - " count += 1\n", - "\n", - " # visit children\n", - " while len(to_visit) > 0:\n", - " node, id = to_visit.pop()\n", - " for child in node[\"children\"]:\n", - " G.add_node(count)\n", - " G.add_edge(id, count)\n", - "\n", - " cm = colormap\n", - " if \"policy\" in child.keys():\n", - " labels[count] = child[\"policy\"][0]\n", - " cm = colormap_policy\n", - " elif \"observation\" in child.keys():\n", - " o = child[\"observation\"]\n", - " labels[count] = str(o[0][0]) + \" \" + str(o[1][0])\n", - " else:\n", - " labels[count] = \"\"\n", - "\n", - " r, g, b, a = cm(child.get(\"prob\", 0))\n", - " colors.append((r, g, b, a))\n", - "\n", - " to_visit.append((child, count))\n", - " count += 1.0\n", - "\n", - " # from networkx.drawing.nx_pydot import graphviz_layout\n", - "\n", - " # pos = graphviz_layout(G, prog=\"dot\")\n", - " nx.draw(\n", - " G,\n", - " with_labels=True,\n", - " font_size=font_size,\n", - " labels=labels,\n", - " node_color=colors,\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_plan_tree(tree)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/examples/sophisticated_tmaze.ipynb b/examples/sophisticated_tmaze.ipynb deleted file mode 100644 index b8ca57d2..00000000 --- a/examples/sophisticated_tmaze.ipynb +++ /dev/null @@ -1,392 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Sophisticated inference\n", - "\n", - "This notebook demonstrates tree searching policies." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "from pymdp.jax.envs.generalized_tmaze import (\n", - " GeneralizedTMazeEnv, parse_maze, render \n", - ")\n", - "from pymdp.jax.envs.rollout import rollout\n", - "from pymdp.jax.agent import Agent\n", - "\n", - "import numpy as np \n", - "import jax.random as jr \n", - "import jax.numpy as jnp\n", - "import jax.tree_util as jtu " - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[0], [1], [2]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAEzCAYAAAC8KU67AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABkh0lEQVR4nO3deVxU9frA8c+ZAYZ1QJBNRUBxw33L1FQsCsy86bXCpRQzy9JMbfX+urbYDdMsW0ztlltXy8pMs9LcwFxyx30X11hEBGSHmfP7Y2J0BBSUYZme9+t1XjLnfM85zzmMzDPf7SiqqqoIIYQQQohaT1PdAQghhBBCiMohiZ0QQgghhI2QxE4IIYQQwkZIYieEEEIIYSMksRNCCCGEsBGS2AkhhBBC2AhJ7IQQQgghbIQkdkIIIYQQNkISOyGEEEIIGyGJnbAZb775JoqiWKwLCgoiOjq6SuNYsGABiqJw5syZKj2vKB/5/QghbJkkdjYuISGBsWPH0rRpU5ydnXF2diY0NJQxY8awf//+6g7vb+nMmTMoilKupazkIygoCEVRCA8PL3X7f//7X/Mxdu3aZcWruT23ugdTp06t7hD/VpYsWcLMmTOrOwwhRCWwq+4AhPWsWrWKqKgo7OzsGDp0KG3btkWj0XD06FF++OEHZs+eTUJCAoGBgdUdqtUcO3YMjaZmfX/x9vbmq6++slg3Y8YMLly4wIcffliibFkcHR3ZuHEjSUlJ+Pn5WWxbvHgxjo6O5OXlVV7gVjB48GAefPDBEuvbt29vtXM+8cQTDBo0CJ1OZ7Vz1DZLlizh4MGDjB8/vrpDEULcIUnsbNSpU6cYNGgQgYGBrF+/Hn9/f4vt7733Hp999lmNS3qul52djYuLyx0doyZ+eLu4uPD4449brPvmm2+4cuVKifU30717d3bu3MnSpUt54YUXzOsvXLjA77//zoABA1i2bFmlxW0NHTp0qNA1VwatVotWq71pGVVVycvLw8nJqYqiEkKIylFzP9XFHZk2bRrZ2dnMnz+/RFIHYGdnx7hx4wgICLBYf/ToUR555BE8PT1xdHSkU6dOrFy50qJMcR+lLVu2MHHiRLy9vXFxcWHAgAFcunSpxLl+/fVXevTogYuLC25ubvTt25dDhw5ZlImOjsbV1ZVTp07x4IMP4ubmxtChQwH4/fffefTRR2nYsCE6nY6AgAAmTJhAbm7uLe/DjX3sytvsWZ77AHDo0CHuvfdenJycaNCgAe+88w5Go/GWcVUGR0dH/vnPf7JkyRKL9V9//TV16tQhIiKixD779+8nOjqaRo0a4ejoiJ+fH08++SSXL182l7lVM+n1tm/fTmRkJO7u7jg7O9OrVy+2bNlSqdcZFBTEQw89xObNm7nrrrtwdHSkUaNGLFq0yFxm165dKIrCwoULS+y/Zs0aFEVh1apVQOl97IrPsWbNGjp16oSTkxNz584F4PTp0zz66KN4enri7OzM3Xffzc8//2xxjtjYWBRF4dtvv+U///kPDRo0wNHRkfvuu4+TJ09alA0LC6NVq1bs37+fXr164ezsTEhICN9//z0AcXFxdOnSBScnJ5o1a8a6detKXNPFixd58skn8fX1RafT0bJlS+bNm3dbMYWFhfHzzz9z9uxZ8+84KCioHL8ZIURNJDV2NmrVqlWEhITQpUuXcu9z6NAhunfvTv369XnttddwcXHh22+/pX///ixbtowBAwZYlH/++eepU6cOb7zxBmfOnGHmzJmMHTuWpUuXmst89dVXDB8+nIiICN577z1ycnKYPXs299xzD3v37rX4ACkqKiIiIoJ77rmH999/H2dnZwC+++47cnJyePbZZ/Hy8mLHjh188sknXLhwge+++65C9+XGJlCA119/nZSUFFxdXSt0H5KSkujduzdFRUXmcp9//nmV1vIMGTKEBx54gFOnTtG4cWPA1Kz2yCOPYG9vX6L82rVrOX36NCNGjMDPz49Dhw7x+eefc+jQIf744w8URSm1qbiwsJAJEybg4OBgXrdhwwb69OlDx44deeONN9BoNMyfP597772X33//nbvuuuuW8efk5JCamlpivYeHB3Z21/48nTx5kkceeYSRI0cyfPhw5s2bR3R0NB07dqRly5Z06tSJRo0a8e233zJ8+HCLYy1durTMRPd6x44dY/DgwTzzzDOMGjWKZs2akZycTLdu3cjJyWHcuHF4eXmxcOFC/vGPf/D999+X+D8xdepUNBoNL730EhkZGUybNo2hQ4eyfft2i3JXrlzhoYceYtCgQTz66KPMnj2bQYMGsXjxYsaPH8/o0aMZMmQI06dP55FHHuH8+fO4ubkBkJyczN13342iKIwdOxZvb29+/fVXRo4cSWZmZonm1FvF9H//939kZGRYdAUo/r8ghKiFVGFzMjIyVEDt379/iW1XrlxRL126ZF5ycnLM2+677z61devWal5ennmd0WhUu3XrpjZp0sS8bv78+SqghoeHq0aj0bx+woQJqlarVdPT01VVVdWrV6+qHh4e6qhRoyxiSEpKUt3d3S3WDx8+XAXU1157rUTM18dYLCYmRlUURT179qx53RtvvKHe+JYODAxUhw8fXmL/YtOmTVMBddGiRRW+D+PHj1cBdfv27eZ1KSkpqru7uwqoCQkJZZ73Rn379lUDAwPLXT4wMFDt27evWlRUpPr5+alTpkxRVVVVDx8+rAJqXFyc+fe0c+dO836l3cuvv/5aBdRNmzaVeb7nnntO1Wq16oYNG1RVNd2PJk2aqBERERbvgZycHDU4OFi9//77bxp/QkKCCpS5bNu2zeJab4wvJSVF1el06osvvmheN2nSJNXe3l5NS0szr8vPz1c9PDzUJ5980ryu+L5c//spPsfq1ast4iz+Hf/+++/mdVevXlWDg4PVoKAg1WAwqKqqqhs3blQBtUWLFmp+fr657EcffaQC6oEDB8zrevXqpQLqkiVLzOuOHj2qAqpGo1H/+OMP8/o1a9aogDp//nzzupEjR6r+/v5qamqqRayDBg1S3d3dzb/jisRU0fefEKLmkqZYG5SZmQmU/q07LCwMb29v8zJr1iwA0tLS2LBhA4899hhXr14lNTWV1NRULl++TEREBCdOnODixYsWx3r66actmuZ69OiBwWDg7NmzgKl2KD09ncGDB5uPl5qailarpUuXLmzcuLFEfM8++2yJddfXgGVnZ5Oamkq3bt1QVZW9e/fexh0y2bhxI5MmTeL555/niSeeqPB9+OWXX7j77rstaqa8vb3NTchVQavV8thjj/H1118DpkETAQEB9OjRo9Ty19/LvLw8UlNTufvuuwHYs2dPqfssWrSIzz77jGnTptG7d28A4uPjOXHiBEOGDOHy5cvm+5Sdnc19993Hpk2bytUk/fTTT7N27doSS2hoqEW50NBQi2vy9vamWbNmnD592rwuKiqKwsJCfvjhB/O63377jfT0dKKiom4ZS3BwcIlavV9++YW77rqLe+65x7zO1dWVp59+mjNnznD48GGL8iNGjLCo1SyO+fo4i48xaNAg8+tmzZrh4eFBixYtLGrZi38u3l9VVZYtW0a/fv1QVdXi/1VERAQZ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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def get_maze_matrix(small=False):\n", - " if small:\n", - " M = np.zeros((3, 5))\n", - "\n", - " # Set the reward locations\n", - " M[0,1] = 4\n", - " M[1,1] = 5\n", - " M[1,3] = 7\n", - " M[0,3] = 8\n", - "\n", - " # Set the cue locations\n", - " M[2,0] = 3\n", - " M[2,4] = 6\n", - "\n", - " # Set the initial position\n", - " M[2,3] = 1\n", - " else:\n", - "\n", - " M = np.zeros((5, 5))\n", - "\n", - " # Set the reward locations\n", - " M[0,1] = 4\n", - " M[1,1] = 5\n", - " M[1,3] = 7\n", - " M[0,3] = 8\n", - " M[4,1] = 10\n", - " M[4,3] = 11\n", - "\n", - " # Set the cue locations\n", - " M[2,0] = 3\n", - " M[2,4] = 6\n", - " M[3,2] = 9\n", - "\n", - " # Set the initial position\n", - " M[2,2] = 1\n", - " return M\n", - "\n", - "M = get_maze_matrix(small=True)\n", - "env_info = parse_maze(M)\n", - "tmaze_env = GeneralizedTMazeEnv(env_info)\n", - "_ = render(env_info, tmaze_env)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", - "B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", - "A_dependencies = tmaze_env.dependencies[\"A\"]\n", - "B_dependencies = tmaze_env.dependencies[\"B\"]\n", - "\n", - "# [position], [cue], [reward]\n", - "C = [jnp.zeros(a.shape[:2]) for a in A]\n", - "\n", - "rewarding_modality = 2 + env_info[\"num_cues\"]\n", - "#rewarding_modality = -1\n", - "\n", - "C[rewarding_modality] = C[rewarding_modality].at[:,1].set(2.0)\n", - "C[rewarding_modality] = C[rewarding_modality].at[:,2].set(-3.0)\n", - "\n", - "D = [jnp.ones(b.shape[:2]) for b in B]\n", - "D[0] = tmaze_env.params[\"D\"][0].copy()\n", - "\n", - "agent = Agent(\n", - " A, B, C, D, \n", - " None, None, None, \n", - " policy_len=1,\n", - " A_dependencies=A_dependencies, \n", - " B_dependencies=B_dependencies,\n", - " apply_batch=False\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "from jax import random as jr\n", - "\n", - "key = jr.PRNGKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "keys = jr.split(key, 2)\n", - "key = keys[0]\n", - "obs, tmaze_env = tmaze_env.step(keys[1:])" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Array([[13]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32), Array([[0]], dtype=int32)]\n" - ] - } - ], - "source": [ - "print(obs)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "qs = agent.infer_states(\n", - " observations=obs,\n", - " past_actions=None,\n", - " empirical_prior=agent.D,\n", - " qs_hist=None,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Array([[[4.930398e-32, 0.000000e+00, 4.930398e-32, 0.000000e+00,\n", - " 4.930398e-32, 4.930398e-32, 0.000000e+00, 4.930398e-32,\n", - " 0.000000e+00, 4.930398e-32, 0.000000e+00, 4.930398e-32,\n", - " 4.930398e-32, 1.000000e+00, 0.000000e+00]]], dtype=float32), Array([[[0.5, 0.5]]], dtype=float32), Array([[[0.5, 0.5]]], dtype=float32)]\n" - ] - } - ], - "source": [ - "print(qs)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[[0 0 0]]\n", - "\n", - " [[1 0 0]]\n", - "\n", - " [[2 0 0]]\n", - "\n", - " [[3 0 0]]]\n" - ] - } - ], - "source": [ - "print(agent.policies)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "from pymdp.jax.planning import tree_search\n", - "\n", - "tree = tree_search(agent, qs, 1)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "import networkx as nx\n", - "import matplotlib.pyplot as plt\n", - "\n", - "\n", - "def plot_plan_tree(\n", - " tree,\n", - " font_size=12,\n", - "):\n", - " root_node = tree.root()\n", - " print(root_node[\"n\"])\n", - "\n", - " colormap = plt.cm.Blues\n", - " colormap_policy = plt.cm.Reds\n", - "\n", - " # create graph\n", - " count = 0\n", - " G = nx.Graph()\n", - " to_visit = [(root_node, 0)]\n", - " labels = {}\n", - " colors = []\n", - "\n", - " G.add_node(count)\n", - " labels[0] = \"\"\n", - " colors.append((0.0, 0.0, 0.0, 1.0))\n", - " count += 1\n", - "\n", - " # visit children\n", - " while len(to_visit) > 0:\n", - " node, id = to_visit.pop()\n", - " for child in node[\"children\"]:\n", - " G.add_node(count)\n", - " G.add_edge(id, count)\n", - "\n", - " cm = colormap\n", - " if \"policy\" in child.keys():\n", - " labels[count] = child[\"policy\"][0]\n", - " cm = colormap_policy\n", - " elif \"observation\" in child.keys():\n", - " o = child[\"observation\"]\n", - " labels[count] = str(o[0][0])\n", - " else:\n", - " labels[count] = \"\"\n", - "\n", - " r, g, b, a = cm(child.get(\"prob\", 0))\n", - " a *= 0.5\n", - " colors.append((r, g, b, a))\n", - "\n", - " to_visit.append((child, count))\n", - " count += 1.0\n", - "\n", - " # from networkx.drawing.nx_pydot import graphviz_layout\n", - "\n", - " # pos = graphviz_layout(G, prog=\"dot\")\n", - " nx.draw(\n", - " G,\n", - " with_labels=True,\n", - " font_size=font_size,\n", - " labels=labels,\n", - " node_color=colors,\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n" - ] - }, - { - "data": { - "image/png": "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lZVWRwEAnMMLL7ygmTNn6rvf/S5lspnwHQbqye12y+/3q7Cw0OooAICz+Pe//62ZM2fqpptu0tNPP02ZbCZ8l4F66t27twYOHMhqbwCIUi+99JK+/e1v67/+67/0j3/8gzLZjPhOAw3gdrv11ltvKRAIWB0FAPAls2fP1owZM/Ttb3+bMmkBvttAA7jdbh06dEgrV660OgoA4KSXX35Z3/rWt/Stb31LzzzzjOx2u9WR4g6FEmiA4cOHq3Pnzkx7A0CUePXVV/Wtb31LN954o/75z39SJi1CoQQawGazaerUqZo7d67YcQsArDVnzhzdcMMNmj59uv71r39RJi1EoQQayO12a8uWLdqwYYPVUQAgbr322muaPn26rr/+ej333HOUSYtRKIEGys7OVmpqqt58802rowBAXHr99dc1ffp0XXfddZTJKEGhBBooMTFR+fn5nEcJABZ44403dP311+uaa67RrFmz5HA4rI4EUSiBRnG73Vq9erX27NljdRQAiBtz587VN7/5TU2bNk0vvPACZTKKUCiBRigoKJDdbte8efOsjgIAcWHevHm67rrrdPXVV+vFF1+kTEYZw2SpKtAo2dnZSkxM1KJFi6yOAgAxbf78+brmmms0depUvfTSS3I6nVZHwlcwQgk0ktvtVnFxsSoqKqyOAgAx66233tI111yjKVOmUCajGIUSaCS3263q6mp5PB6rowBATFqwYIGuueYaTZ48WbNnz6ZMRjEKJdBIPXr00NChQ1ntDQBNYOHChZo2bZoKCgooky0AhRIIg9vt1oIFC1RTU2N1FACIGR6PR1dffbUmTpyol19+WQkJCVZHwnlQKIEwuN1ulZeXa/ny5VZHAYCY4PV6ddVVV2nChAl65ZVXKJMtBIUSCMNll12mbt26Me0NABFQWFgot9ut3Nxcvfrqq5TJFoRCCYTBMAxNnTpVc+fOFTtwAUDjLV68WG63Wzk5OZozZ44SExOtjoQGoFACYXK73dq+fbvWr19vdRQAaJGKioo0depUZWdn67XXXqNMtkAUSiBMGRkZSktLY9obABphyZIlmjJlirKysiiTLRiFEghTQkKCCgoKKJQA0EDFxcWaMmWKMjMz9frrr8vlclkdCY1EoQQiwO12a+3atdq5c6fVUQCgRSgpKdHkyZM1duxYvfHGG5TJFo5CCUTAxIkT5XQ6NW/ePKujAEDUW7p0qSZNmqQxY8bozTffpEzGAMNkaSoQEXl5eTJNU4sXL7Y6CgBErWXLlqmgoECjR4/WvHnzlJSUZHUkRAAjlECEuN1uLV26VOXl5VZHAYCoVFpaqoKCAl155ZWaO3cuZTKGUCiBCJk6daoCgYAWLVpkdRQAiDrLly9XQUGBRo0apXnz5ik5OdnqSIggCiUQId26ddPll1/Oam8A+Iq3335bEydO1MiRIzV//nzKZAyiUAIR5Ha7tWjRIlVXV1sdBQCiwooVKzRx4kSNGDGCMhnDKJRABLndbh07dkxLly61OgoAWG7lypXKz8/XsGHD9NZbbyklJcXqSGgiFEoggoYMGaIePXow7Q0g7r3zzjvKz8/X5ZdfrgULFlAmYxyFEoggwzDkdrs1b948sSMXgHi1atUqTZgwQZdeeillMk5QKIEIc7vd2rVrl9auXWt1FABodu+++64mTJigoUOHauHChUpNTbU6EpoBhRKIsLFjx6pt27ZMewOIO++9957y8vI0ePBgymScoVACEeZwODRp0iQKJYC4snr1auXl5WnQoEFatGiRWrVqZXUkNCMKJdAE3G631q9fr23btlkdBQCa3Jo1a5Sbm6tLLrmEMhmnKJRAE5gwYYISEhI0b948q6MAQJN6//33lZubq/79+8vj8SgtLc3qSLCAYbIUFWgSBQUF8vv9Ki4utjoKADSJtWvXKicnRxdffLEKCwvVunVrqyPBIoxQAk3E7XartLRUhw8ftjoKAETcBx98oJycHPXp00der5cyGecolEATmTJlioLBoBYuXGh1FACIqHXr1iknJ0e9e/dWYWGh2rRpY3UkWIxCCTSRLl26aOTIkaz2BhBTPvzwQ40fP149e/akTOIUCiXQhNxutxYtWiS/3291FAAI2/r16zV+/Hj16NFDixcvVtu2ba2OhChBoQSakNvtVmVlJQtzALR4H330kcaPH6/u3btTJvE1FEqgCQ0YMEC9e/dm2htAi/bxxx8rOztbF154oYqKitSuXTurIyHKUCiBJmQYhtxut+bNm6dQKGR1HABosE8++YQyifOiUAJNzO12a9++fVq9erXVUQCgQTZs2KDs7Gx16dJFRUVFat++vdWREKUolEATGz16tNq3b8+0N4AWZcOGDcrKylKnTp0okzgvCiXQxBwOh6ZMmUKhBNBi/Oc//1F2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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_plan_tree(tree)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "tree = tree_search(agent, qs, 3, entropy_prune_threshold=0.0)\n", - "plot_plan_tree(tree)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/pymdp/jax/envs/rollout.py b/pymdp/jax/envs/rollout.py index 6382c6b6..507674b1 100644 --- a/pymdp/jax/envs/rollout.py +++ b/pymdp/jax/envs/rollout.py @@ -7,7 +7,7 @@ from pymdp.jax.envs.env import PyMDPEnv -def rollout(agent: Agent, env: PyMDPEnv, num_timesteps: int, rng_key: jr.PRNGKey): +def rollout(agent: Agent, env: PyMDPEnv, num_timesteps: int, rng_key: jr.PRNGKey, policy_search = None): """ Rollout an agent in an environment for a number of timesteps. @@ -21,6 +21,10 @@ def rollout(agent: Agent, env: PyMDPEnv, num_timesteps: int, rng_key: jr.PRNGKey Number of timesteps to rollout for rng_key: ``PRNGKey`` Random key to use for sampling actions + policy_search: ``callable`` + Function to use for policy search (optional) + Calls policy_search(agent, beliefs, rng_key) and expects q_pi, info back. + If none, agent.infer_policies will be used. Returns ---------- @@ -32,7 +36,13 @@ def rollout(agent: Agent, env: PyMDPEnv, num_timesteps: int, rng_key: jr.PRNGKey Environment state after the rollout """ # get the batch_size of the agent - batch_size = agent.A[0].shape[0] + batch_size = agent.batch_size + + if policy_search is None: + def default_policy_search(agent, qs, rng_key): + qpi, _ = agent.infer_policies(qs) + return qpi, None + policy_search = default_policy_search def step_fn(carry, x): action_t = carry["action_t"] @@ -50,7 +60,9 @@ def step_fn(carry, x): empirical_prior=empirical_prior, qs_hist=None, ) - qpi, nefe = agent.infer_policies(qs) + + rng_key, key = jr.split(rng_key) + qpi, _ = policy_search(agent, qs, key) keys = jr.split(rng_key, batch_size + 1) rng_key = keys[0] diff --git a/pymdp/jax/planning.py b/pymdp/jax/planning/si.py similarity index 91% rename from pymdp/jax/planning.py rename to pymdp/jax/planning/si.py index 31062f29..71187d11 100644 --- a/pymdp/jax/planning.py +++ b/pymdp/jax/planning/si.py @@ -9,6 +9,29 @@ from pymdp.jax.control import compute_info_gain, compute_expected_utility, compute_expected_state, compute_expected_obs +def si_policy_search(max_depth, + policy_prune_threshold=1 / 16, + policy_prune_topk=-1, + observation_prune_threshold=1 / 16, + entropy_prune_threshold=0.5, + prune_penalty=512): + + def search_fn(agent, qs, rng_key): + tree = tree_search( + agent, + qs, + max_depth, + policy_prune_threshold=policy_prune_threshold, + policy_prune_topk=policy_prune_topk, + observation_prune_threshold=observation_prune_threshold, + entropy_prune_threshold=entropy_prune_threshold, + prune_penalty=prune_penalty, + ) + return tree.root()["q_pi"], tree + + return search_fn + + class Tree: def __init__(self, root): self.nodes = [root] From c249dd5b4e2c44c3d96450eedc01e90aecd4fb41 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 27 Jun 2024 15:10:12 +0200 Subject: [PATCH 139/196] move generate graph function to env file --- examples/envs/graph_worlds_demo.ipynb | 41 ++++++----------- examples/si/sophisticated_demo.ipynb | 63 +++++---------------------- pymdp/jax/envs/graph_worlds.py | 16 +++++++ 3 files changed, 40 insertions(+), 80 deletions(-) diff --git a/examples/envs/graph_worlds_demo.ipynb b/examples/envs/graph_worlds_demo.ipynb index 900110a9..13060c23 100644 --- a/examples/envs/graph_worlds_demo.ipynb +++ b/examples/envs/graph_worlds_demo.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -30,12 +30,12 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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Vq42ZJwsd/GNo+CMTq+dJ8kkWSr27r/D6dKGjJPKyM71UFIA3qqgoEBPP/207rjjDrVt21ZpaWn64x//aHQsAPA6flsol6dkymIuf0Ph01/Pk7PwrOr89g5ZwiMqfGyL2aRlyaz6BvzZpk2b1KFDB82fP18zZ87UF198oauvvtroWADglfy2UCbuyS53Olm4f5Pyd/5HljoRavD7xyp1bIfTpcS92e5GBOCF7Ha7Jk+erE6dOql27dratGmTnn76abYDAoBy+OW/kHnFdmWeKijzcWdJoXK++JskKaLnkzLXCq/0OTJzCpRfbK9yRgDeZ9++feratateeeUVvfDCC0pOTlbr1q2NjgUAXs8vC+WhnHyVtxTnh3VL5DibrbAbblVYi05VOodL0sGc/Cq9FoB3cblcWrBggX7729/q+++/1/r16/X6668rJCTE6GgA4BP8slCWlLNNUGnOYeVu/pfMteooooe12s4DwDdkZ2erT58+Gjp0qPr27autW7eqS5cuRscCAJ/ilxubhwSV3ZMdeacll1POojwd+Wv8RZ9zbN4TCo66TlcN/muVzwPA+3366acaMmSInE6nVq1apfvvv9/oSADgk/yyETWJDFf567vdZ/rpPAB8T15enqxWq+677z517NhRO3bsoEwCgBv8ckIZHhqk6IgwHbrIwpygBlepwR+GXfD5M7YVchblSZLq3fKwghuWf3vF6MgwhYf65ZcP8GvJycmKj4/XsWPHlJCQoGHDhslkqu4fQQHAv/ltI+rWMkpLUw5dsHVQUL2Gqtex9wXPP5v6sfRToazT9vYyb70oSXI6VC/3sLKzsxUVFeXR3ACqR2lpqV5//XVNnjxZN910kz777DM1b97c6FgA4Bf88i1vSRoQG13uPpRuMVv073kTdc0116hfv35KTEyUH98SHfB5e/bsUZcuXTR58mS98sor+uabbyiTAOBBJpcfN6H4BSlK2p/j0WJpMZvUuWmkZtzfTEuWLFFCQoL27NmjFi1a6PHHH9ejjz6qhg0beux8AKrO5XJpzpw5GjNmjK655hotW7ZMN998s9GxAMDv+HWhPHyqQN2nr1OxB7f3CQ0ya+3ormocESbpx29Y69evV0JCgj744AOZTCY99NBDGj58uG699VauzQIMcvz4cQ0ZMkSff/65nnjiCf35z39WeDgL6QCgOvh1oZSklamZevHDNI8db9oDMerb8eILdk6cOKFFixZp7ty5ysjIUKtWrWS1WjVw4EA1aNDAYxkAlO/DDz/U448/ruDgYC1cuFB33XWX0ZEAwK/5faGUpFmJ6XprzV63jzO2Z0uN6Nbsks9zOp1KTExUQkKCVq1apaCgIP3xj3+U1WrVLbfcwtQSqCZnz57VyJEjtWjRIvXp00dz587lEhQAqAEBUSilHyeVE1bvlN3pqtQ1lRazSUFmkyb1alPmZLI8WVlZevfddzV37lwdOHBAMTExslqtiouLU/369St9PAAXt2HDBg0cOFA5OTmaOXOmHn30UX54A4AaEjCFUvrxmspxq9K0IeOkLGZTucXy3OO3NWuoKX1izl8zWVVOp1NfffWVEhIStHr1aoWGhqpfv36yWq3q2LEj3/iAKiopKdGECRM0bdo0denSRUuWLNF1111ndCwACCgBVSjPSc/K1fKUTCXuzVZmToF+/gUw6cdNy7u1iFJcp2g1i6rr8fMfO3ZMCxcu1Lx585SZmanf/va3slqtGjBggOrW9fz5AH+1c+dOxcXFaefOnZo0aZLGjh0ri8VidCwACDgBWSh/Lr/YroM5+SqxOxUSZFaTyPAauwOOw+HQl19+qYSEBH366aeqXbu2HnnkEVmtVnXo0KFGMgC+yOl0aubMmXrxxRd1/fXXa9myZbrxxhuNjgUAASvgC6W3OHz4sBYsWKD58+fr6NGjuummm2S1WtWvXz/VqVPH6HiA1zhy5IgGDRqkr7/+WqNGjdKUKVNUu3Zto2MBQECjUHoZu92uzz77TAkJCfr8889Vp04dxcXFyWq1ql27dkbHAwy1YsUKPfnkkwoPD9eiRYvUvXt3oyMBAESh9GoHDx7U/PnztWDBAn3//ffq1KmTrFar/vjHPyoszL1FQoAvOX36tEaMGKEVK1aob9++mj17tiIiIoyOBQD4CYXSB5SWluqTTz5RQkKC1qxZo/r162vgwIGyWq1q06aN0fGAavX1119r0KBBys3N1ezZs/XII48YHQkA8CsUSh+zf/9+zZs3TwsXLlR2dra6dOkiq9Wqhx56iOvI4FeKioo0btw4TZ8+Xd26ddPixYvVuHFjo2MBAC6CQumjSkpK9PHHH2vOnDn697//rQYNGmjQoEF6/PHHdcMNNxgdD3DL1q1bFRcXp4yMDL3xxhsaOXKkzGaz0bEAAGWgUPqB9PR0zZ07V++++65ycnLUtWtXWa1WPfDAAwoNDTU6HlBhDodDb731ll5++WW1atVKy5cvV9u2bY2OBQC4BAqlHykuLtaHH36ohIQErVu3Tg0bNjw/tWzevLnR8YByHTx4UAMHDtQ333yjsWPHatKkSfxABAA+gkLpp7777jvNnTtXixcv1unTp/WHP/xBVqtVvXv3VkhIiNHxgPNcLpeWLFmip59+Wg0aNNCSJUvUtWtXo2MBACqBQunnCgsL9cEHHyghIUE2m01RUVEaPHiwhg0bpqZNmxodDwHu5MmTGj58uP75z39q4MCBmjlzpurXr290LABAJVEoA8iOHTs0d+5cLVmyRGfOnFHPnj1ltVp13333KTg42Oh4CDBffPGFHnvsMZWUlCghIUEPPfSQ0ZEAAFXEsskA0rZtW82cOVPHjh3TwoULdebMGT344IO69tpr9fLLL+vQoUNGR0QAKCgo0IgRI3TXXXepXbt2SktLo0wCgI9jQhngtm3bpoSEBC1btkx5eXm66667ZLVadffddysoKMjoePAzqampiouLU2Zmpt566y09+eSTMplMRscCALiJCWWAa9eunWbPnq1jx45p7ty5ys7OVu/evXXddddp4sSJOnLkiNER4Qfsdrtee+01de7cWXXr1tWWLVs0YsQIyiQA+AkmlLjApk2blJCQoPfee0+FhYW69957ZbVadccdd8hisRgdDz4mIyND8fHx+vbbbzVu3Di98sorXLMLAH6GQokynT17Vu+9954SEhK0detWRUdHa9iwYRoyZIiuvPJKo+PBy7lcLs2fP1+jR4/WFVdcoaVLl+qWW24xOhYAoBpQKHFJLpdLqampmjNnjlauXKmSkhL16tVLVqtVPXr04JZ4uEBWVpaGDRumTz75REOHDtX06dNVp04do2MBAKoJhRKV8sMPP2jZsmVKSEjQjh071LRpUw0bNkyPPfaYGjVqZHQ8eIHVq1dr6NChkqT58+erV69eBicCAFQ3CiWqxOVyaePGjUpISND//d//yeFw6P7775fValW3bt2YWgagvLw8jR49WvPnz9e9996r+fPn80MGAAQICiXcdurUKS1dulRz5szR7t271axZM1mtVg0aNEgNGzY0Oh5qwMaNGxUXF6esrCxNnz5dQ4cOZQU3AAQQCiU8xuVyacOGDUpISNAH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", "text/plain": [ "
" ] @@ -47,21 +47,7 @@ "source": [ "import networkx as nx\n", "from pymdp.jax.envs import GraphEnv\n", - "\n", - "def generate_connected_clusters(cluster_size=2, connections=2):\n", - " edges = []\n", - " connecting_node = 0\n", - " while connecting_node < connections * cluster_size:\n", - " edges += [(connecting_node, a) for a in range(connecting_node + 1, connecting_node + cluster_size + 1)]\n", - " connecting_node = len(edges)\n", - " graph = nx.Graph()\n", - " graph.add_edges_from(edges)\n", - " return graph, {\n", - " \"locations\": [\n", - " (f\"hallway {i}\" if len(list(graph.neighbors(loc))) > 1 else f\"room {i}\")\n", - " for i, loc in enumerate(graph.nodes)\n", - " ]\n", - " }\n", + "from pymdp.jax.envs.graph_worlds import generate_connected_clusters\n", "\n", "graph, _ = generate_connected_clusters(cluster_size=3, connections=2)\n", "nx.draw(graph, with_labels=True, font_weight=\"bold\")" @@ -76,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -92,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -120,7 +106,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -138,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -147,7 +133,7 @@ "dict_keys(['action', 'env', 'observation', 'qpi', 'qs'])" ] }, - "execution_count": 13, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -165,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -191,16 +177,16 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 25, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, @@ -218,6 +204,7 @@ "source": [ "agent_idx = 0\n", "\n", + "import matplotlib.pyplot as plt\n", "fig, ax = plt.subplots()\n", "ax.title.set_text(\"Agent 1\")\n", "\n", diff --git a/examples/si/sophisticated_demo.ipynb b/examples/si/sophisticated_demo.ipynb index c004c763..006d7548 100644 --- a/examples/si/sophisticated_demo.ipynb +++ b/examples/si/sophisticated_demo.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -24,54 +24,18 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import networkx as nx\n", "from pymdp.jax.envs import GraphEnv\n", - "\n", - "\n", - "def generate_connected_clusters(cluster_size=2, connections=2):\n", - " edges = []\n", - " connecting_node = 0\n", - " while connecting_node < connections * cluster_size:\n", - " edges += [(connecting_node, a) for a in range(connecting_node + 1, connecting_node + cluster_size + 1)]\n", - " connecting_node = len(edges)\n", - " graph = nx.Graph()\n", - " graph.add_edges_from(edges)\n", - " return graph, {\n", - " \"locations\": [\n", - " (f\"hallway {i}\" if len(list(graph.neighbors(loc))) > 1 else f\"room {i}\")\n", - " for i, loc in enumerate(graph.nodes)\n", - " ]\n", - " }\n", - "\n", + "from pymdp.jax.envs.graph_worlds import generate_connected_clusters\n", "\n", "graph, _ = generate_connected_clusters(cluster_size=3, connections=2)\n", "env = GraphEnv(graph, object_locations=[4], agent_locations=[0])" ] }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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sEKJamez2fTOO+8oKChId9xxh0pKSsyOBAC1zpIlS7R9+3aNHz/e7CjAGWOFEjVm5cqVuvzyyzVx4kT961//MjsOANQahmGoR48eioiI0PLly82OA5wxVihRY/r3769//etfmjBhgn766Sez4wBArbFs2TJt3ryZ1Un4LFYoUaNcLpcuvfRS7du3T5s3b1ajRo3MjgQApjIMQ3FxcQoODtYPP/xgdhzgrLBCiRrlcDi0YMECZWdn6+677xa/zwDwd99++63WrVvHnd3waaxQwhRLlizRjTfeqBkzZmj48OFmxwEAUxiGoYsvvlhFRUVau3atbDab2ZGAs0KhhGnuu+8+zZkzRwkJCewGAcAvff/99+rfv78+++wzXXfddWbHAc4ahRKmyc/PV2xsrFwul9avX6/Q0FCzIwFAjbr88st19OhRbdiwgdVJ+DSuoYRp6tSpow8++EApKSl6+OGHzY4DADXq559/1nfffadx48ZRJuHzWKGE6WbNmqWhQ4fqgw8+0C233GJ2HACoEddee61SU1O1ZcsW2e2s78C3UShhOsMwdNttt+mrr77S5s2b1a5dO7MjAUC1Wr9+vXr37q0FCxbo73//u9lxAI9RKFErHD9+XN26dVOzZs20evVqBQYGmh0JAKrNDTfcoF9//VW//PKLAgICzI4DeIw1dtQKDRo00KJFi7RhwwY9+eSTZscBgGqzZcsWffrppxo7dixlEpbBCiVqlRdffFFjxozR119/rSuvvNLsOADgdbfccovWr1+vHTt2cDYGlkGhRK3idrt1zTXXaMuWLUpMTFSzZs3MjgQAXvPrr78qJiZGb7/9toYOHWp2HMBrKJSodQ4fPqyuXbuqe/fu+uKLL7j7EYBl3Hnnnfr++++VnJys4OBgs+MAXsNPatQ6zZs317x58/T111/rlVdeMTsOAHhFcnKyFixYoCeeeIIyCcthhRK11uOPP65XX31VP//8s3r37m12HADwyJAhQ/TFF19o9+7dqlOnjtlxAK+iUKLWKioq0kUXXaSMjAxt2rRJ9evXNzsSAJyVlJQURUdH68UXX9QjjzxidhzA6zjljVorKChIixYtUnp6uoYPHy5+9wHgq1566SU1bNhQw4YNMzsKUC0olKjV2rdvr7ffflsLFy7U3LlzzY4DAGfswIEDmj17tkaNGqWwsDCz4wDVglPe8AlD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tGBecMEFiomJkcPBegtwJiiUfi4vL09PPvmkXn31VfXs2VNz5sxR586n/wcbADxR0V7enjiTvbwNw9Du3bvLFMzExESVlJQoLCysdAvJk0WT7WSBylEo/dgPP/ygIUOGaN++fZo4caJGjhzJb+UAasS+zDxd8eoqFXpxvE+ww67lIy9Rm/Czu3kwLy9P69evLy2Ya9asUVpamiSpQ4cOZQrm+eefr8DAQK9lB3wdhdIPZWdna8yYMXrzzTd14YUXavbs2erUqZPZsQD4mUUJqRr9yVavHe/FG7vo1t6RXjueYRjau3dvmWsxN23apOLiYtWpU0e9evUqc6q8efPmXntvwNdQKP3Mt99+q6FDh+r333/XpEmTNGLECO54BGCaaSuTNPmbnR4f57GrOmlEf6cXElWuoKBAGzduLHOq/MCBA5Kktm3blimY3bp141p0+A0KpZ84duyYHn30Uc2ePVuXXXaZZs6cqfbt25sdCwC0KCFVE5Zul8ttnNE1lQF2mxx2m54ZEOPVlckztX///jKrmBs2bFBhYaGCg4PVs2fPMqfKW7dubVpOoDpRKP3AsmXLNGzYMGVnZ2vKlCm6++4T89kAoLbYl5mnsUu2anVyugLstkqL5cnH+zkb6/mBXc76msnqUlhYqMTExDKrmHv37pUktW7dukzB7NGjB3N+YQkUSgvLyMjQQw89pPnz5+vaa6/VW2+9pTZtKh8IDABmSkrL1vz4VK3ceUSpGXn64w8om6TIiFD179hUd8RFnjIaqDY7dOiQ1q5dW1ow169fr/z8fAUGBqp79+5lTpVHRkbySz98DoXSohYvXqwRI0aouLhYr732mu644w7+gQLgU3ILXUrJyNXKVav1yMMPavva7xXdzrxT295UXFysLVu2lDlVvmvXLklS8+bNyxTMnj17su0taj0KpcUcPnxY999/vz7++GMNHDhQ06dP585DAD7tt99+07nnnquVK1fq0ksvNTtOtTly5Iji4+NLC+a6deuUm5srh8Ohrl27ljlV3r59exYJUKtQKC3CMAzNnz9fDz30kAICAvTmm2/qpptu4h8cAD6vsLBQoaGhevvtt3X33XebHafGuFwubd++vcy1mDt3nrgjvkmTJmUKZu/evVW3bl2TE8OfUSgtYP/+/Ro+fLg+//xz/eMf/9Brr72mxo0bmx0LALymXbt2uvXW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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "nx.draw(graph, with_labels=True, font_weight=\"bold\")" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -81,7 +45,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -105,7 +69,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -116,7 +80,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -132,7 +96,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -143,7 +107,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -209,7 +173,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -221,7 +185,7 @@ }, { "data": { - "image/png": "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RlVVSD3quNTdf7zw3sfo2l5El+tuLv+itHhUq3O7yE+cOMHSpUuZMmUKrVq1onXr1kydOpWDBw8yadIkfvjhBzIzM7n22mvJyclhxIgRDBkyxOn+3nNdFIo5D1QbtpMHMW19GcuhdU7fr+YkYNr6Mua9KwHQ6fTcd20Eny3+hC5durBp0yaH98+aNYugoCCWL18OqHB8DxzbrQXxJxMhMwVOJWn/DsdiIX436qlkVEtlasQL0fDpdDo++eQTBg0axPDhw/n3339ru0tCiBrW4CvlNBRqbmalRidPJKfS/uqbUBSFlk3D2L3+q/IvbhyGElC6xnZaWhq//PKLfQSyeJq6a9euXH755QwePJjLLrsMf3//EvdVpVzm33//zfXXX49H42YUth5Nbk425pyzid11fs1QDMZy77edTkI1a/XPde7e6HxC+fjJGxl3ZVcOHz7M7bffzq+//srUqVN55ZVX8PPzK/WMAwcOcCxuD2SlYtApDLrkogr7DWijloHNwS9QRiyFOMfp06cZPHgwiYmJUk1HiAZOAsp6Qk2Mq9TayXEznyD9VBZWq5WMzCzHAaXOAK26kpWVxa+//mrfib1nzx4A2rdvbw8gBw0aRGCga5Oj/+9//2PChAn07NmT7777jpP5MPzxLzmekl3pdEIGvQ43g44PH7+Rmwadrc5js9l4//33efTRRwkICOCjjz7iyivP1kFXVRukHoPcU2U91jmevhDWuswSkkJcqNLS0ujXrx86nU6q6QjRgMmUdz2gmosqFUz+9nc0K3/YxPxZDzl3g83CjDunEBAQwIgRI1i3bh19+vThiy++IDExkX379vHuu+8yatQolwaTqqry2muvMXr0aG688UZ+/vlnAgMDaRcRyI5P7ubem3qjAHpdxaN+Br32X7lfl+bELL6nRDAJ2hTctGnT2L17N23atOGqq67izjvvJDs7W1tOkHykesEkQMFpSDyA6opE9EI0EFJNR4gLg4xQ1gOVme62Wq30Gj6BPt278P7zTzL4lrsqHKE0Wyys27qDLMWTwYMH07JlSxf1vHwWi4X77ruPDz74gFmzZvHcc8+h05X+fHM48RQfrt7B4nUxZOeZzhxV0et0WG3af12DXscN/dtx9/CL6d8tosJpZ1VVWbRoEQ8//DD+/v78umoZrRqXXYqzSrz9UcJau+55QjQA0dHRDBw4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", + "image/png": "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", "text/plain": [ "
" ] @@ -246,13 +210,6 @@ "# TODO we cannot yet use this with rollout as it cannot be jit-ed\n", "# last, result, env = rollout(agent, env, 10, key, policy_search=si_policy_search(max_depth=3))" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/pymdp/jax/envs/graph_worlds.py b/pymdp/jax/envs/graph_worlds.py index 1ee98aa8..5c9918b4 100644 --- a/pymdp/jax/envs/graph_worlds.py +++ b/pymdp/jax/envs/graph_worlds.py @@ -4,6 +4,22 @@ from .env import PyMDPEnv +def generate_connected_clusters(cluster_size=2, connections=2): + edges = [] + connecting_node = 0 + while connecting_node < connections * cluster_size: + edges += [(connecting_node, a) for a in range(connecting_node + 1, connecting_node + cluster_size + 1)] + connecting_node = len(edges) + graph = nx.Graph() + graph.add_edges_from(edges) + return graph, { + "locations": [ + (f"hallway {i}" if len(list(graph.neighbors(loc))) > 1 else f"room {i}") + for i, loc in enumerate(graph.nodes) + ] + } + + class GraphEnv(PyMDPEnv): """ A simple environment where an agent can move around a graph and search an object. From 2605d368a8ec48597e6a484bbe26f94e36a02bdf Mon Sep 17 00:00:00 2001 From: dimarkov <5038100+dimarkov@users.noreply.github.com> Date: Thu, 13 Jun 2024 15:57:09 +0200 Subject: [PATCH 140/196] running sophisticated inference in a generalized tmaze env --- examples/mcts/grid_world_demo.ipynb | 1220 +++++++++++++++++++++++++++ pymdp/jax/envs/generalized_tmaze.py | 47 +- 2 files changed, 1248 insertions(+), 19 deletions(-) create mode 100644 examples/mcts/grid_world_demo.ipynb diff --git a/examples/mcts/grid_world_demo.ipynb b/examples/mcts/grid_world_demo.ipynb new file mode 100644 index 00000000..41e6598e --- /dev/null +++ b/examples/mcts/grid_world_demo.ipynb @@ -0,0 +1,1220 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np \n", + "import jax.numpy as jnp\n", + "import jax.tree_util as jtu\n", + "from jax import vmap, lax\n", + "from jax import random as jr\n", + "import numpy as np\n", + "\n", + "from pymdp.jax.envs.generalized_tmaze import (\n", + " GeneralizedTMazeEnv, parse_maze, render \n", + ")\n", + "\n", + "from pymdp.jax.agent import Agent as AIFAgent" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Grid world (generalized TMaze) generative process\n", + "\n", + "In this example we create a simple square environment, where multiple cues are present, and multiple reward pairs. Each cue indicates the location of one of the reward pairs. \n", + "\n", + "The agent is can move in the grid world using actions up, down, left and right, and observes the current tile it is at. \n", + "\n", + "The grid world is specified by a matrix using the following labels: \n", + "\n", + "```\n", + "0: Empty space\n", + "1: The initial position of the agent\n", + "2: Walls\n", + "3 + i: Cue for reward i\n", + "4 + i: Potential reward location i 1\n", + "4 + i: Potential reward location i 2\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def rollout(policy_search, agent, env, num_timesteps, rng_key):\n", + " # get the batch_size of the agent\n", + " batch_size = agent.batch_size\n", + "\n", + " def step_fn(carry, x):\n", + " observation_t = carry[\"observation_t\"]\n", + " prior = carry[\"empirical_prior\"]\n", + " env = carry[\"env\"]\n", + " rng_key = carry[\"rng_key\"]\n", + "\n", + " # We infer the posterior using FPI\n", + " # so we don't need past actions or qs_hist\n", + " qs = agent.infer_states(\n", + " observation_t,\n", + " prior\n", + " )\n", + " rng_key, key = jr.split(rng_key)\n", + " qpi = policy_search(key, agent, qs)\n", + "\n", + " keys = jr.split(rng_key, batch_size + 1)\n", + " rng_key = keys[0]\n", + " action_t = agent.sample_action(qpi, rng_key=keys[1:])\n", + "\n", + " keys = jr.split(rng_key, batch_size + 1)\n", + " rng_key = keys[0]\n", + " observation_t, env = env.step(rng_key=keys[1:], actions=action_t)\n", + "\n", + " prior, _ = agent.infer_empirical_prior(action_t, qs)\n", + "\n", + " carry = {\n", + " \"observation_t\": observation_t,\n", + " \"empirical_prior\": prior,\n", + " \"env\": env,\n", + " \"rng_key\": rng_key,\n", + " }\n", + " info = {\n", + " \"qpi\": qpi,\n", + " \"qs\": jtu.tree_map(lambda x: x[:, 0], qs),\n", + " \"env\": env,\n", + " \"observation\": observation_t,\n", + " \"action\": action_t,\n", + " }\n", + "\n", + " return carry, info\n", + "\n", + " # generate initial observation\n", + " keys = jr.split(rng_key, batch_size + 1)\n", + " rng_key = keys[0]\n", + " observation_0, env = env.step(keys[1:])\n", + "\n", + " initial_carry = {\n", + " \"observation_t\": observation_0,\n", + " \"empirical_prior\": agent.D,\n", + " \"env\": env,\n", + " \"rng_key\": rng_key,\n", + " }\n", + "\n", + " # Scan over time dimension (axis 1)\n", + " last, info = lax.scan(step_fn, initial_carry, jnp.arange(num_timesteps))\n", + "\n", + " info = jtu.tree_map(lambda x: jnp.swapaxes(x, 0, 1), info)\n", + " return last, info, env" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-06-13 15:52:14.830895: W external/xla/xla/service/gpu/nvptx_compiler.cc:763] The NVIDIA driver's CUDA version is 12.4 which is older than the ptxas CUDA version (12.5.40). Because the driver is older than the ptxas version, XLA is disabling parallel compilation, which may slow down compilation. You should update your NVIDIA driver or use the NVIDIA-provided CUDA forward compatibility packages.\n" + ] + }, + { + "data": { + "image/png": "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ZGZmunV7l/6/ICLnKVM8LjMz0wTMYcOGlXkvPT3dPH78uOuVl5fneu/qq682O3fubBYUFLiWORwOs3fv3mbr1q1dy2bPnm0C5oABA0yHw+FaPnnyZNNqtZoZGRmmaZpmdna2GRoaat59991uNSQnJ5shISFuy8eMGWMC5qOPPlqm5pNrLDVt2jTTMAzz4MGDrmWPP/64eepHLiYmxhwzZkyZ7Us9++yzJmDOnTu3ytfhwQcfNAHz119/dS1LSUkxQ0JCTMBMSEio8LinGjx4sBkTE1Pp9WNiYszBgwebJSUlZlRUlPnUU0+Zpmma27dvNwFz5cqVrr+ndevWubYr71p+8MEHJmCuWrWqwuPdf//9ptVqNZctW2aapvN6tG7d2hw4cKDbZyAvL8+Mi4szr7nmmtPWn5CQYAIVvn7++We3cz21vpSUFNPHx8f861//6lo2depU08vLy0xLS3MtKywsNENDQ80777zTtaz0upz891N6jG+//datztK/4x9//NG1LDs724yLizNjY2NNu91umqZpLl++3ATM9u3bm4WFha51//e//5mAuWXLFteyfv36mYA5f/5817KdO3eagGmxWMxffvnFtfy7774zAXP27NmuZePHjzcbN25spqamutV6yy23mCEhIa6/46rUVNXPn4ic29TtWAeysrKA8n977d+/PxEREa7Xq6++CkBaWhrLli3j5ptvJjs7m9TUVFJTUzlx4gQDBw5kz549HDlyxG1f99xzj1s3VJ8+fbDb7Rw8eBBwtrJkZGQwatQo1/5SU1OxWq1ccsklLF++vEx99913X5llJ7ck5ebmkpqaSu/evTFNk99++60aV8hp+fLlTJ06lb/85S/cfvvtVb4O33zzDZdeeqlbC09ERISru9QTrFYrN998Mx988AHgHGgfHR1Nnz59yl3/5GtZUFBAamoql156KQAbN24sd5u5c+fy2muv8eyzz3LllVcCEB8fz549e7j11ls5ceKE6zrl5uZy9dVXs2rVqkp1v95zzz0sWbKkzKtDhw5u63Xo0MHtnCIiImjbti379+93LRs5ciTFxcV88sknrmXff/89GRkZjBw58oy1xMXFlWkd++abb7j44ou54oorXMsCAwO55557OHDgANu3b3dbf9y4cW6tg6U1n1xn6T5uueUW189t27YlNDSU9u3bu7VWl/536famabJo0SKGDBmCaZpu/18NHDiQzMzMMn+Pla1JROoPdTvWgdLuiZycnDLvzZo1i+zsbI4dO+Y20Hnv3r2Ypsk///lP/vnPf5a735SUFJo2ber6uXnz5m7vN2jQAHB2qQDs2bMHgKuuuqrc/QUHB7v9bLPZaNasWZn1Dh06xGOPPcYXX3zh2nepzMzMcvd9JocPH2bkyJFcfvnlvPDCC67lVbkOBw8eLLdbt23bttWq6VSZmZlu49q8vb0JCwsrs96tt97KjBkz2LRpE/Pnz+eWW24pMzarVFpaGk888QQLFiwgJSWlzPFOFR8fz7333suoUaOYMmWKa3np3+2pXXyn7q/0M1GR1q1bVzhdxslO/ayB8/N28ueha9eutGvXjoULFzJ+/HjA2eXYsGHDCj+DJ4uLiyuzrKK/4/bt27ve79SpU4V1nvr/RKlmzZqV+TsKCQkpMwYzJCTEbfvjx4+TkZHBG2+8wRtvvFHueZz691rZmkSk/lD4qgMhISE0btyYrVu3lnmv9Ivk1PmjSlspHnrooQrHxrRq1crt54ruGDNN022f7733XpmpEAC3MT3gvDPx1Lsv7XY711xzDWlpaTzyyCO0a9eOgIAAjhw5wtixY6s1uL2oqIgbb7wRHx8fPvzwQ7c6qnMdassDDzzgNoC8X79+rFixosx6l1xyCS1btuTBBx8kISGBW2+9tcJ93nzzzfz000/87W9/o1u3bgQGBuJwOBg0aFCZa5mens6IESNo06YNb731ltt7pes+99xzdOvWrdxj1eS4oTN91kqNHDmS//znP6SmphIUFMQXX3zBqFGjynzWylMTY/UqW2dF61X2/6nbbrutwuDbpUuXatUkIvWHwlcdGTx4MG+99RZr166t1MDnFi1aAODl5VWplojKKB0AHhkZWe19btmyhd27dzNnzhzuuOMO1/IlS5ZUu65JkyYRHx/PqlWraNSokdt7VbkOMTExrhagk+3atavatZ3s4YcfdmudPF0r0qhRo/j3v/9N+/btKwxD6enp/PDDDzzxxBM89thjruXlnYPD4WD06NFkZGSwdOlS180PpUr/boODg2vs81ITRo4cyRNPPMGiRYto1KgRWVlZbt17VRUTE1Pu3+fOnTtd73tSREQEQUFB2O32Gr3uFbWUisj5SWO+6sjDDz+Mv78/d955J8eOHSvz/qm/9UZGRtK/f39mzZpFUlJSmfXLm0LiTAYOHEhwcDBPP/00xcXF1dpn6W/tJ9drmib/+9//qlwPwOzZs5k1axavvvpquaG0Ktfh+uuv55dffmHt2rVu78+bN69atZ2qQ4cODBgwwPXq2bNnheveddddPP744zz//PMVrlPetQTKndn8iSee4LvvvuODDz4otzuuZ8+etGzZkv/+97/ldm9X5/NSE9q3b0/nzp1ZuHAhCxcupHHjxvTt27fa+7v++utZu3YtP//8s2tZbm4ub7zxBrGxsWXGptU2q9XKiBEjWLRoUbkt29W97gEBAdXuwheRc49avupI69atmT9/PqNGjaJt27auGe5N0yQhIYH58+djsVjcxli9+uqrXHHFFXTu3Jm7776bFi1acOzYMX7++WcOHz7Mpk2bqlRDcHAwM2fO5Pbbb6dHjx7ccsstREREcOjQIb7++msuv/xyXnnlldPuo127drRs2ZKHHnqII0eOEBwczKJFi6o1XiU1NZX777+fDh064OPjw/vvv+/2/vDhwwkICKj0dXj44Yd57733GDRoEA888IBrqomYmBiPP7opJiaGf/3rX6ddJzg4mL59+/Lss89SXFxM06ZN+f7770lISHBbb8uWLTz11FP07duXlJSUMtfptttuw2Kx8NZbb3HdddfRsWNHxo0bR9OmTTly5AjLly8nODiYL7/88ox1b9y4scz+wdmydtlll535xMsxcuRIHnvsMXx9fRk/fvxZTST86KOP8sEHH3DdddcxadIkwsLCmDNnDgkJCSxatKhOJimePn06y5cv55JLLuHuu++mQ4cOpKWlsXHjRpYuXUpaWlqV99mzZ08WLlzIlClTuOiiiwgMDGTIkCG1UL2IeILCVx0aOnQoW7Zs4fnnn+f777/nnXfewTAMYmJiGDx4MPfeey9du3Z1rd+hQwfWr1/PE088wbvvvsuJEyeIjIyke/fubt1UVXHrrbfSpEkTpk+fznPPPUdhYSFNmzalT58+jBs37ozbe3l58eWXXzJp0iSmTZuGr68vw4cPZ+LEiW61V0ZOTg4FBQVs377ddXfjyRISEggICKj0dWjcuDHLly/nL3/5C9OnTyc8PJx7772XJk2auAZ8n2vmz5/PX/7yF1599VVM0+Taa69l8eLFNGnSxLXOiRMnME2TlStXsnLlyjL7KO0K7d+/Pz///DNPPfUU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NfzpTxAYCFFRzj//9CdYs6Z2j+vr68szzzxDenp67R6omiIiIvD396/rMs5rCl8iIiKnmDkT+vaFL790PtYRnH9++SX06eN87nZtGTBgAFFRUUybNq3CdVavXk2fPn3w8/MjOjqaSZMmkZub63o/KSmJwYMH4+fnR1xcHPPnzy/TXfjCCy/QuXNnAgICiI6O5v777ycnJwdwPrd53LhxZGZmYhgGhmHwr3/9C3Dvdrz11lsZOXKkW23FxcU0bNiQuXPnAuBwOJg2bRpxcXH4+fnRtWtXPv744xq4UucvhS8REZGTrF4NEyaAaUJJift7JSXO5fffX3stYFarlaeffpqXX36Zw4cPl3l/3759DBo0iBEjRrB582YWLlzI6tWrmThxomudO+64g6NHj7JixQoWLVrEG2+8QUpKitt+LBYLM2bMYNu2bcyZM4dly5bx8MMPA9C7d29eeuklgoODSUpKIikpiYceeqhMLaNHj+bLL790hTaA7777jry8PIYPHw7AtGnTmDt3Lq+//jrbtm1j8uTJ3HbbbaxcubJGrtd5yfSwzMxMEzAzMzM9fWgREalHKvo+yc/PN7dv327m5+dXa7/Dh5umzWaazphV/stmM80RI2riLNyNGTPGHDp0qGmapnnppZead955p2mapvnpp5+apV/Z48ePN++55x637X788UfTYrGY+fn55o4dO0zAXLdunev9PXv2mID54osvVnjsjz76yAwPD3f9PHv2bDMkJKTMejExMa79FBcXmw0bNjTnzp3ren/UqFHmyJEjTdM0zYKCAtPf39/86aef3PYxfvx4c9SoUae/GOeZqnzuNMmqiIjI7/Lz4fPP/+hqrEhJCXz6qXP92nre9jPPPMNVV11VpsVp06ZNbN68mXnz5rmWmaaJw+EgISGB3bt3Y7PZ6NGjh+v9Vq1a0aBBA7f9LF26lGnTprFz506ysrIoKSmhoKCAvLy8So/pstls3HzzzcybN4/bb7+d3NxcPv/8cxYsWADA3r17ycvL45prrnHbrqioiO7du1fpetQnCl8iIiK/y8o6c/Aq5XA416+t8NW3b18GDhzI1KlTGTt2rGt5Tk4Of/7zn5k0aVKZbZo3b87u3bvPuO8DBw5www03cN999/Gf//yHsLAwVq9ezfjx4ykqKqrSgPrRo0fTr18/UlJSWLJkCX5+fgwaNMhVK8DXX39N06ZN3bbz8fGp9DHqG4UvERGR3wUHg8VSuQBmsTjXr03Tp0+nW7dutG3b1rWsR48ebN++nVatWpW7Tdu2bSkpKeG3336jZ8+egLMF6uS7Jzds2IDD4eD555/HYnEO//7www/d9uPt7Y3dbj9jjb179yY6OpqFCxeyePFibrrpJry8vADo0KEDPj4+HDp0iH79+lXt5OsxhS8REZHf+fnB0KHOuxpPHWx/MpvNuV5ttXqV6ty5M6NHj2bGjBmuZY888giXXnopEydO5K677iIgIIDt27ezZMkSXnnlFdq1a8eAAQO45557mDlzJl5eXvz1r3/Fz8/PNVdYq1atKC4u5uWXX2bIkCGsWbOG10+5hTM2NpacnBx++OEHunbtir+/f4UtYrfeeiuvv/46u3fvZvny5a7lQUFBPPTQQ0yePBmHw8EVV1xBZmYma9asITg4mDFjxtTCVTv36W5HERGRk0yZAmdq8LHbYfJkz9Tz5JNP4jipKa5Lly6sXLmS3bt306dPH7p3785jjz1GkyZNXOvMnTuXRo0a0bdvX4YPH87dd99NUFAQvr6+AHTt2pUXXniBZ555hk6dOjFv3rwyU1v07t2be++9l5EjRxIREcGzzz5bYY2jR49m+/btNG3alMsvv9ztvaeeeop//vOfTJs2jfbt2zNo0CC+/vpr4uLiauLynJcM0zRNTx4wKyuLkJAQMjMzCa7t9loREam3Kvo+KSgoICEhgbi4OFfYqKrXX3dOJ2G1ureA2WzO4PXaa3DvvWd7Bp5z+PBhoqOjWbp0KVdffXVdl1MvVeVzp5YvERGRU9x7L/z4o7Nr8fchUVgszp9//PHcD17Lli3jiy++ICEhgZ9++olbbrmF2NhY+vbtW9elCRrzJSIiUq7LL3e+8vOddzUGB9f+GK+aUlxczN///nf2799PUFAQvXv3Zt68ea6B8FK3FL5EREROw8/v/AldpQYOHMjAgQPrugypgLodRURERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxIdzuKiIgAB7MOklucW+XtArwCiAmOqYWKpL5S+BIRkQvewayD3PDpDdXe/qvhXymASaWp21FERC541WnxqsntT/Xzzz9jtVoZPHhwje63sg4cOIBhGMTHx9fJ8es7hS8REZFzzNtvv81f/vIXVq1axdGjR+u6HKlhCl8iIiLnkJycHBYuXMh9993H4MGDeffdd93e/+KLL2jdujW+vr5ceeWVzJkzB8MwyMjIcK2zevVq+vTpg5+fH9HR0UyaNInc3D9a52JjY3n66ae58847CQoKonnz5rzxxhuu9+Pi4gDo3r07hmHQv3//2jzlC47Cl4iIyDnkww8/pF27drRt25bbbruNd955B9M0AUhISODGG29k2LBhbNq0iT//+c/83//9n9v2+/btY9CgQYwYMYLNmzezcOFCVq9ezcSJE93We/755+nVqxe//fYb999/P/fddx+7du0CYO3atQAsXbqUpKQkPvnkEw+c+YVD4UtEROQc8vbbb3PbbbcBMGjQIDIzM1m5ciUAs2bNom3btjz33HO0bduWW265hbFjx7ptP23aNEaPHs2DDz5I69at6d27NzNmzGDu3LkUFBS41rv++uu5//77adWqFY888ggNGzZk+fLlAERERAAQHh5OVFQUYWFhHjjzC4fCl4iIyDli165drF27llGjRgFgs9kYOXIkb7/9tuv9iy66yG2biy++2O3nTZs28e677xIYGOh6DRw4EIfDQUJCgmu9Ll26uP7bMAyioqJISUmprVOTk2iqCRERkXPE22+/TUlJCU2aNHEtM00THx8fXnnllUrtIycnhz//+c9MmjSpzHvNmzd3/beXl5fbe4Zh4HA4qlm5VIXCl4iIyDmgpKSEuXPn8vzzz3Pttde6vTds2DA++OAD2rZtyzfffOP23rp169x+7tGjB9u3b6dVq1bVrsXb2xsAu91e7X1IxRS+REREzgFfffUV6enpjB8/npCQELf3RowYwdtvv82HH37ICy+8wCOPPML48eOJj4933Q1pGAYAjzzyCJdeeikTJ07krrvuIiAggO3bt7NkyZJKt55FRkbi5+fHt99+S7NmzfD19S1Tk1SfxnyJiIicA95++20GDBhQbsgZMWIE69evJzs7m48//phPPvmELl26MHPmTNfdjj4+PoBzLNfKlSvZvXs3ffr0oXv37jz22GNuXZlnYrPZmDFjBrNmzaJJkyYMHTq0Zk5SADDM0vtXPSQrK4uQkBAyMzMJDg725KFFRKQeqej7pKCggISEBOLi4vD19a3Uvraf2M7Ir0ZWu5aFNyykQ3iHam9/Nv7zn//w+uuvk5iYWCfHF6eqfO7U7SgiInIeee2117jo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ypUrXYGstDVs5cqV9O/f33W8DRs2MGTIEJo3b05QUJArmB065H4zQa9evVz/vW/fPoqKirjkkktcy8LCwmjbtu1pz23KlCncddddDBgwgOnTp7tqBmeX5Lvvvut2XgMHDsThcJCQkFD1C3kOU8uXiIhc8LwsXlgtVkrMqg0kt5vO+b+8LJXrqqyMgIAAV5fgO++8Q9euXXn77bcZP368a9zW119/TdOmTd228/FxzjsWGhpK165dWbFiBT///DPXXHMNffv2ZeTIkezevZs9e/a4AlZubi4DBw5k4MCBzJs3j4iICA4dOsTAgQMpKioqU9fZ+te//sWtt97K119/zeLFi3n88cdZsGABw4cPJycnhz//+c9MmjSpzHbNm9evKT3U8iUiIhc8X6sv0UHRZBRmVGm79MJ0ooOi8bX61kpdFouFv//97/zjH/8gPz+fDh064OPjw6FDh2jVqpXbKzo62rVdv379WL58OatWraJ///6EhYXRvn17/vOf/9C4cWPatGkDwM6dOzlx4gTTp0+nT58+tGvXzm2wfUVatmyJl5cXv/76q2tZeno6u3fvPuO2bdq0YfLkyXz//ff86U9/Yvbs2QD06NGD7du3lzmvVq1auca8eXt7Y7fbq3QNz0UKXyIicsEzDIMejXpgmibF9sp1IRbZi8CEno161uqddzfddBNWq5VXX32VoKAgHnroISZPnsycOXPYt28fGzdu5OWXX2bOnDmubfr37893332HzWZzja/q378/8+bNcxvv1bx5c7y9vXn55ZfZv38/X3zxBU899dQZawoMDGT8+PH87W9/Y9myZWzdupWxY8disVQcK/Lz85k4cSIrVqzg4MGDrFmzhnXr1tG+fXsAHnnkEX766ScmTpxIfHw8e/bs4fPPP3cNuAfnPF+rVq3iyJEjpKamVvlanisUvkRERIB2Ye2IDormYPbBM969aJomh7IPER0UTduw049zOls2m42JEyfy7LPPkpuby1NPPcU///lPpk2bRvv27Rk0aBBff/01cXFxrm369OmDw+FwC1r9+/fHbre7jfeKiIjg3Xff5aOPPqJDhw5Mnz7dbZqK03nuuefo06cPQ4YMYcCAAVxxxRX07NmzwvWtVisnTpzgjjvuoE2bNtx8881cd911PPHEEwB06dKFlStXsnv3bvr06UP37t157LHHaNKkiWsfTz75JAcOHKBly5ZERERU9hKecwyztu6PrUBWVhYhISFkZmYSHBzsyUOLiEg9UtH3SUFBAQkJCcTFxeHrW7XuwNIZ7lPzU2ke1Nw5ncQpiuxFHMo+REO/htze/naig6PL2ZNcaKryudOAexERkd81D27Obe1vcz3bEcM5nYTVsGI37aQXpoMJzYOaM6L1CAUvqRaFLxERkZM0D27Ofd3uY1faLjYc20BidiLF9mKsFiudwjvRs1FP2oa1xcfqU9elynlK4UtEROQUPlYfukR0oXPDzhTYCyh2FONl8cLX6nteP9ZGzg0KXyIiIhUwDAM/mx9+1Mzs9SKgux1FRKSe8vD9ZHKBq8rnTeFLRETqldIHNefl5dVxJXIhKf28lX7+TkfdjiIiUq9YrVZCQ0NdM7X7+/trnJbUGtM0ycvLIyUlhdDQUKxW6xm3UfgSEZF6JyoqCqBSj8oRqQmhoaGuz92ZKHyJiEi9YxgGjRs3JjIykuLiyj0uSKS6vLy8KtXiVUrhS0RE6i2r1VqlL0URT9CAexEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbXRdwLsktLCGnsAQDCPS14e+tyyMiF6DiAijIANMEb3/wCQbDqOuqROqNCz5dpGQXsDkxk61HMzmWVUBRiQMAb5uFRsG+dG4aQpdmoUQE+dRxpSIitSg/HY7+5nxlHnYGMEywekNAQ2jUGZr1hJBoBTGRs2SYpml68oBZWVmEhISQmZlJcHCwJw/tpqDYzvKdKazcfZy03CL8va0E+tjw8bICUFhsJ6ewhPxiOw38vbmybQT92kbi+/v7IiL1gr0EDqyCnV9D9jGw+Thburz8AAPshVCYA0XZzuWxV0D7G8A3pK4rP2e+T0Sq6oJs+TqRU8j8Xw+x9WgmYQHetIsKwjjlN7lAHxvhgT44TJPU7EI+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vlL4khphmibZhSWkZBVSUGzHMCDU35uIQB+8berdFg+xl0DucchLdU5HYfNxTqLq10AtXfWQvk/kfKX+H6kRhmEQ7OulGeulblltENzY+RIROUepSUJERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2yePqBpmgBkZWV5+tAiIlKPlH6PlH6viJwvPB6+srOzAYiOjvb0oUVEpB7Kzs4mJCSkrssQqTTD9PCvDA6Hg6NHjxIUFIRhGJ48dKVkZWURHR1NYmIiwcHBdV3OeUnX8OzpGp4dXb+zdz5cQ9M0yc7OpkmTJlgsGkUj5w+Pt3xZLBaaNWvm6cNWWXBw8Dn7D875Qtfw7Okanh1dv7N3rl9DtXjJ+Ui/KoiIiIh4kMKXiIiIiAcpfJ3Cx8eHxx9/HB8fn7ou5byla3j2dA3Pjq7f2dM1FKk9Hh9wLyIiInIhU8uXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMLXSV599VViY2Px9fXlkksuYe3atXVd0nll1apVDBkyhCZNmmAYBp999lldl3RemTZtGhdddBFBQUFERkYybNgwdu3aVddlnVdmzpxJly5dXBODXnbZZSxevLiuyzpvTZ8+HcMwePDBB+u6FJF6ReHrdwsXLmTKlCk8/vjjbNy4ka5duzJw4EBSUlLqurTzRm5uLl27duXVV1+t61LOSytXrmTChAn88ssvLFmyhOLiYq699lpyc3PrurTzRrNmzZg+fTobNmxg/fr1XHXVVQwdOpRt27bVdWnnnXXr1jFr1iy6dOlS16WI1DuaauJ3l1xyCRdddBGvvPIK4HwGZXR0NH/5y1949NFH67i6849hGHz66acMGzasrks5bx0/fpzIyEhWrlxJ375967qc81ZYWBjPPfcc48ePr+tSzhs5OTn06NGD1157jX//+99069aNl156qa7LEqk31PIFFBUVsWHDBgYMGOBaZrFYGDBgAD///HMdViYXsszMTMAZHqTq7HY7CxYsIDc3l8suu6yuyzmvTJgwgcGDB7v9mygiNcfjD9Y+F6WmpmK322nUqJHb8kaNGrFz5846qkouZA6HgwcffJDLL7+cTp061XU555UtW7Zw2WWXUVBQQGBgIJ9++ikdOnSo67LOGwsWLGDjxo2sW7eurksRqbcUvkTOQRMmTGDr1q2sXr26rks577Rt25b4+HgyMzP5+OOPGTNmDCtXrlQAq4TExEQeeOABlixZgq+vb12XI1JvKXwBDRs2xGq1cuzYMbflx44dIyoqqo6qkgvVxIkT+eqrr1i1ahXNmjWr63LOO97e3rRq1QqAnj17sm7dOv73v/8xa9asOq7s3LdhwwZSUlLo0aOHa5ndbmfVqlW88sorFBYWYrVa67BCkfpBY75w/mPds2dPfvjhB9cyh8PBDz/8oLEi4jGmaTJx4kQ+/fRTli1bRlxcXF2XVC84HA4KCwvruozzwtVXX82WLVuIj493vXr16sXo0aOJj49X8BKpIWr5+t2UKVMYM2YMvXr14uKLL+all14iNzeXcePG1XVp542cnBz27t3r+jkhIYH4+HjCwsJo3rx5HVZ2fpgwYQLz58/n888/JygoiOTkZABCQkLw8/Or4+rOD1OnTuW6666jefPmZGdnM3/+fFasWMF3331X16WdF4KCgsqMMQwICCA8PFxjD0VqkMLX70aOHMnx48d57LHHSE5Oplu3bnz77bdlBuFLxdavX8+VV17p+nnKlCkAjBkzhnfffbeOqjp/zJw5E4D+/fu7LZ89ezZjx471fEHnoZSUFO644w6SkpIICQmhS5cufPfdd1xzzTV1XZqIiIvm+RIRERHxII35EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD/r/GtlxiHBxj+gAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def get_maze_matrix(size='small'):\n", + " if size == 'small':\n", + " M = np.zeros((3, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + "\n", + " # Set the initial position\n", + " M[2,3] = 1\n", + " \n", + " elif size == 'medium':\n", + " M = np.zeros((5, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + " M[4,1] = 10\n", + " M[4,3] = 11\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + " M[3,2] = 9\n", + "\n", + " # Set the initial position\n", + " M[2,2] = 1\n", + " \n", + " else:\n", + " M = np.zeros((7, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + " M[5,1] = 10\n", + " M[6,1] = 11\n", + " M[5,3] = 13\n", + " M[6,3] = 14\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + " M[4,0] = 9\n", + " M[4,4] = 12\n", + "\n", + " # Set the initial position\n", + " M[3,2] = 1\n", + "\n", + " return M\n", + "\n", + "M = get_maze_matrix('medium')\n", + "env_info = parse_maze(M)\n", + "tmaze_env = GeneralizedTMazeEnv(env_info, batch_size=3)\n", + "\n", + "images = []\n", + "images.append( render(env_info, tmaze_env) )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Create the agent. \n", + "\n", + "The PyMDPEnv class consists of a params dict that contains the A, B, and D vectors of the environment. We initialize our agent using the same parameters. This means that the agent has full knowledge about the environment transitions, and likelihoods. We initialize the agent with a flat prior, i.e. it does not know where it, or the reward is. Finally, we set the C vector to have a preference only over the rewarding observation of cue-reward pair 1 (i.e. C[1][1] = 1 and zero for other values). " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0], [1], [2], [3]]\n" + ] + } + ], + "source": [ + "A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", + "B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", + "A_dependencies = tmaze_env.dependencies[\"A\"]\n", + "B_dependencies = tmaze_env.dependencies[\"B\"]\n", + "\n", + "# [position], [cue], [reward]\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "\n", + "rewarding_modality = -1 # 2 + env_info[\"num_cues\"]\n", + "\n", + "C[rewarding_modality] = C[rewarding_modality].at[:, 1].set(1.0)\n", + "C[rewarding_modality] = C[rewarding_modality].at[:, 2].set(-2.0)\n", + "\n", + "\n", + "D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", + "\n", + "agent = AIFAgent(\n", + " A, B, C, D, \n", + " E=None,\n", + " pA=None,\n", + " pB=None,\n", + " policy_len=1,\n", + " A_dependencies=A_dependencies, \n", + " B_dependencies=B_dependencies,\n", + " use_utility=True,\n", + " use_states_info_gain=True,\n", + " sampling_mode='full'\n", + ")\n", + "\n", + "print(B_dependencies)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### MCTS based policy search" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import mctx\n", + "from tmp_mcts import make_aif_recurrent_fn\n", + "\n", + "max_depth = 6\n", + "num_simulations = 4096\n", + "\n", + "def si_policy(rng_key, agent, beliefs):\n", + " \n", + " # remove time dimension \n", + " embedding = jtu.tree_map(lambda x: x[:, 0], beliefs)\n", + " root = mctx.RootFnOutput(\n", + " prior_logits=jnp.log(agent.E),\n", + " value=jnp.zeros((agent.batch_size)),\n", + " embedding=embedding,\n", + " )\n", + "\n", + " recurrent_fn = make_aif_recurrent_fn()\n", + "\n", + " policy_output = mctx.gumbel_muzero_policy(\n", + " agent,\n", + " rng_key,\n", + " root,\n", + " recurrent_fn,\n", + " num_simulations=num_simulations,\n", + " max_depth=max_depth\n", + " )\n", + "\n", + " return policy_output.action_weights" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run active inference" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "timesteps = 12\n", + "key = jr.PRNGKey(0)\n", + "_, info, _ = rollout(si_policy, agent, tmaze_env, num_timesteps=timesteps, rng_key=key)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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rvVWFU2LSKtrmkbOUutao56rRVTbtSqbFtH4XUupaRG6lpId+vsAeuuFF16I7u7uaG1t7bG9tbU1Vq5c2U9Hte1qtVqcd955ceyxx8ahhx5a6tiPPPJITJ48OV577bXYZZdd4rbbbotDDjmklLFvvfXWePjhh7frngJbMmnSpLj55pvjoIMOimeffTbmzZsXxx13XDz66KOx6667bvf4Tz31VFx33XXR3t4en/jEJ+LBBx+Mj3/84zF48OCYMWNGCZ+gp9tvvz1eeuml+MhHPlLamBdddFGsW7cuxo4dG83NzdHd3R2f+cxn4rTTTitl/F133TUmT54cl112WRx88MHR2toa3/jGN2Lp0qVx4IEHlrKPv7Z69eqIiE3+bP/51yBFutY7VTYtQtfqUUXTItLqmqaRs5S61qjnahHVdq3qpkU0ftdSalqErqWkYSb/UjNr1qx49NFHK5mdP+igg2LFihWxdu3a+Pa3vx0zZsyI++67b7uj8rvf/S5mz54dixcvfsM3DWX5629EDj/88Jg0aVLsu+++8c1vfjM++tGPbvf4tVotJkyYEJdffnlERBx55JHx6KOPxsKFCyuZ/PvqV78a733ve2PUqFGljfnNb34z/uu//ituueWWePvb3x4rVqyI8847L0aNGlXaZ/j6178ep59+eowePTqam5vjqKOOilNPPTWWL19eyvhAeqrqWlVNi9C1elXRtAhdAwaeRjxXi6i+a1U3LaLxu6ZpDFQNc9nvsGHDorm5OdasWdNj+5o1a2LEiBH9dFTb5pxzzonvf//7cc8998Ree+1V+viDBw+OAw88MMaPHx+dnZ0xbty4+NKXvrTd4y5fvjyee+65OOqoo2KHHXaIHXbYIe677764+uqrY4cddoju7u4Sjr6n3XffPd72trfFk08+Wcp4I0eOfENYDz744NKXq0dE/Pa3v40f/ehHccYZZ5Q67gUXXBAXXXRRfPCDH4zDDjssPvzhD8ecOXOis7OztH0ccMABcd9998Urr7wSv/vd72LZsmXx+uuvx/7771/aPv7szz+/KfxsQz10rXeqalqErtWjqqZFpNU1TSNnqXStUc/VIvq+a2U3LaLxu5ZS0yJ0LSUNM/k3ePDgGD9+fCxZsmTjtlqtFkuWLCn9HglVKYoizjnnnLjtttvixz/+cey33359st9arRZdXV3bPc4JJ5wQjzzySKxYsWLja8KECXHaaafFihUrorm5uYSj7emVV16JX//61zFy5MhSxjv22GPj8ccf77HtiSeeiH333beU8f/aTTfdFMOHD4+TTjqp1HFfffXVGDSo549uc3Nz1Gq1UvcTEbHzzjvHyJEj4w9/+EPcfffd8f73v7/0fey3334xYsSIHj/b69ati5/97GcN87MN20LXtk1ZTYvQtXpU1bSItLqmaeSs0bvW6OdqEX3ftbKbFtH4XUupaRG6lpKGuuy3vb09ZsyYERMmTIiJEyfG/PnzY/369TFz5sxSxn/llVd6fGvx9NNPx4oVK+LNb35z7LPPPts9/qxZs+KWW26J//7v/45dd9114zXyQ4cOjZ122mm7x4+ImDt3brz3ve+NffbZJ15++eW45ZZb4t5774277757u8fedddd33DPi5133jn23HPP0u6Fcf7558fUqVNj3333jd///vfR0dERzc3Nceqpp5Yy/pw5c+KYY46Jyy+/PD7wgQ/EsmXL4vrrr4/rr7++lPH/rFarxU033RQzZsyIHXYo98ds6tSp8ZnPfCb22WefePvb3x4///nP46qrrorTTz+9tH3cfffdURRFHHTQQfHkk0/GBRdcEGPHjt3mn7Wt/Wydd9558W//9m/x1re+Nfbbb7+4+OKLY9SoUXHyySeXMv6LL74Yq1atit///vcRERv/D8WIESN8Y0W/0rUtq7JpEbrWW1U2LaLxulZ103qzD11joGrkrjX6uVpE9V2rumkRjd+1RmtahHO1bPTno4a3xZe//OVin332KQYPHlxMnDix+OlPf1ra2Pfcc08REW94zZgxo5TxNzV2RBQ33XRTKeMXRVGcfvrpxb777lsMHjy4eMtb3lKccMIJxQ9/+MPSxv9bZT46viiKYtq0acXIkSOLwYMHF6NHjy6mTZtWPPnkk6WNXxRF8b3vfa849NBDi5aWlmLs2LHF9ddfX+r4RVEUd999dxERxeOPP1762OvWrStmz55d7LPPPsWQIUOK/fffv/jkJz9ZdHV1lbaPRYsWFfvvv38xePDgYsSIEcWsWbOKl156aZvH29rPVq1WKy6++OKitbW1aGlpKU444YS6/uy2Nv5NN920yV/v6OjY5s8EZdG1zevrphWFrm1KlU0risbrWtVN680+dI2BrFG7luK5WlGU27W+aFpRNHbXGq1pReFcLRdNRVEUdc8YAgAAAAADXsPc8w8AAAAAqI/JPwAAAABIlMk/AAAAAEiUyT8AAAAASJTJPwAAAABIlMk/AAAAAEiUyT8AAAAASJTJPwAAAABIlMk/AAAAAEiUyT8AAAAASJTJPwAAAABIlMk/AAAAAEjU/w/b1Hdu1VgTDQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "\n", + "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", + "for i in range(3):\n", + " sns.heatmap(info['qpi'][i].T, cmap='viridis', ax=axes[i])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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zMxMlZaWauvWrbaNvXHjRlVVVSk/P18ej0crVqywbWxJ8vv9GjVqlLKzs5Wbm6tJkyZp9+7dto0/f/58DR8+XD179lTPnj01evRovfjii7aN/68efvhheTwezZw507Yx77vvPnk8nrCtqKjItvElad++ffrGN76hXr16KSsrS5deeqm2bdtm2/iDBg3q9B48Ho9qampsGb+9vV2zZs1SYWGhsrKyNHjwYD3wwAOy89lAH330kWbOnKmBAwcqKytLY8aM0auvvhrzeKf6u2VZlmbPnq1+/fopKytL5eXlevPNN20b/7nnnlNFRYV69eolj8ejxsbGmN8LYDe61jW61j3x7JobmibZ2zWaBnSNpp1cIrtG0yJzQ9f4txpi4ejFwKVLl6q2tlZz5szRjh07VFxcrAkTJui9996zZfy2tjYVFxervr7elvH+1YYNG1RTU6MtW7aooaFBx48fV0VFhdra2mwZf8CAAXr44Ye1fft2bdu2TZ///Od1zTXX6C9/+Yst43/aq6++qp///OcaPny47WMPHTpUBw4c6Ng2bdpk29gffvihxo4dqzPOOEMvvvii/t//+3969NFHde6559p2jldffTVs/g0NDZKka6+91pbx586dq/nz5+vxxx/XX//6V82dO1ePPPKIfvrTn9oyviTdfPPNamho0C9/+Uu9/vrrqqioUHl5ufbt2xfTeKf6u/XII4/oJz/5iRYsWKBXXnlFZ511liZMmKCjR4/aMn5bW5uuvPJKzZ07N6b5A/FC106Orp1avLvmhqZJ9naNpgGR0bRTS1TXaFrX3NA1/q2GmFgOdsUVV1g1NTUdP7e3t1v5+fmW3++3/VySrOXLl9s+7qe99957liRrw4YNcTvHueeea/3Xf/2XrWN+9NFH1oUXXmg1NDRYn/vc56w77rjDtrHnzJljFRcX2zbev7r77rutK6+8Mm7jR3LHHXdYgwcPtkKhkC3jTZw40brpppvC9n31q1+1pkyZYsv4R44csdLT061Vq1aF7b/88sut733ve6c9/r/+3QqFQlZeXp71wx/+sGPf4cOHLa/Xaz377LOnPf6nNTU1WZKs1157LepxgXiga9Gja+ES3TWnNc2y4ts1mgZ8gqbFxu6u0bToOK1r/FsNsXLslYHHjh3T9u3bVV5e3rEvLS1N5eXl2rx5cxJnFrtAICBJysnJsX3s9vZ2LVmyRG1tbRo9erStY9fU1GjixIlh/7uw05tvvqn8/Hydf/75mjJlivbu3Wvb2CtXrtTIkSN17bXXKjc3VyUlJXryySdtG/9fHTt2TL/61a900003yePx2DLmmDFjtHbtWr3xxhuSpD/96U/atGmTKisrbRn/f//3f9Xe3q7MzMyw/VlZWbZ+8ndCU1OTmpubw/7vyefzqbS01LF/t4HuoGvRoWuRJbJrTmyalNiu0TSYiqZFL15do2nd58Su8W81xCoj2ROI1aFDh9Te3q6+ffuG7e/bt6927dqVpFnFLhQKaebMmRo7dqyGDRtm27ivv/66Ro8eraNHj+rss8/W8uXLdckll9g2/pIlS7Rjx47TuifByZSWlmrRokUaMmSIDhw4oPvvv1+f/exntXPnTmVnZ5/2+G+//bbmz5+v2tpa3XvvvXr11Vd1++23q0ePHqqurrbhHYRbsWKFDh8+rGnTptk25j333KOWlhYVFRUpPT1d7e3tevDBBzVlyhRbxs/Oztbo0aP1wAMP6OKLL1bfvn317LPPavPmzbrgggtsOcenNTc3S1LEv9snXgPciK51D107uUR2zYlNkxLbNZoGU9G07otn12hadJzYNf6thlg5djHQbWpqarRz507bV++HDBmixsZGBQIB/eY3v1F1dbU2bNhgS2D+9re/6Y477lBDQ0OnTyLs8ulPTIYPH67S0lINHDhQv/71r/XNb37ztMcPhUIaOXKkHnroIUlSSUmJdu7cqQULFsQlME899ZQqKyuVn59v25i//vWv9d///d9avHixhg4dqsbGRs2cOVP5+fm2vYdf/vKXuummm9S/f3+lp6fr8ssv1w033KDt27fbMj4A96Frkbmpa05tmkTXAEQnXk2T4tc1mhY9p3aNpiEWjv2acO/evZWenq6DBw+G7T948KDy8vKSNKvYzJgxQ6tWrdK6des0YMAAW8fu0aOHLrjgAo0YMUJ+v1/FxcX68Y9/bMvY27dv13vvvafLL79cGRkZysjI0IYNG/STn/xEGRkZam9vt+U8n3bOOefooosu0p49e2wZr1+/fp1Ce/HFF9t6efsJ7777rv7whz/o5ptvtnXcu+66S/fcc4+uv/56XXrppbrxxht15513yu/323aOwYMHa8OGDWptbdXf/vY3bd26VcePH9f5559v2zlOOPH31w1/t4Fo0LXuoWsnl6iuOblpUuK6RtNgKprWffHqGk2LjpO7xr/VEAvHLgb26NFDI0aM0Nq1azv2hUIhrV271vZ7B8WLZVmaMWOGli9frpdeekmFhYVxP2coFFIwGLRlrC984Qt6/fXX1djY2LGNHDlSU6ZMUWNjo9LT0205z6e1trbqrbfeUr9+/WwZb+zYsdq9e3fYvjfeeEMDBw60ZfxPW7hwoXJzczVx4kRbxz1y5IjS0sL/KqenpysUCtl6Hkk666yz1K9fP3344Ydas2aNrrnmGtvPUVhYqLy8vLC/2y0tLXrllVcc83cbiAVdiw1dC5eorrmhaVL8u0bTYCqaFju7ukbTouOGrvFvNUTD0V8Trq2tVXV1tUaOHKkrrrhC8+bNU1tbm6ZPn27L+K2trWGfajQ1NamxsVE5OTkqKCg47fFramq0ePFiPf/888rOzu74jr3P51NWVtZpj19XV6fKykoVFBToo48+0uLFi7V+/XqtWbPmtMeWPr4/wb/eM+Oss85Sr169bLuXxne+8x1VVVVp4MCB2r9/v+bMmaP09HTdcMMNtox/5513asyYMXrooYd03XXXaevWrXriiSf0xBNP2DL+CaFQSAsXLlR1dbUyMuz9a1dVVaUHH3xQBQUFGjp0qF577TU99thjuummm2w7x5o1a2RZloYMGaI9e/borrvuUlFRUcx/1071d2vmzJn6wQ9+oAsvvFCFhYWaNWuW8vPzNWnSJFvG/+CDD7R3717t379fkjr+n4y8vDw+0UJS0bWTo2unloiuOb1pkr1do2lAZDTt1OLZNZrWfU7vGv9WQ0yS+ShjO/z0pz+1CgoKrB49elhXXHGFtWXLFtvGXrdunSWp01ZdXW3L+JHGlmQtXLjQlvFvuukma+DAgVaPHj2sPn36WF/4whes3//+97aM3RW7H1c/efJkq1+/flaPHj2s/v37W5MnT7b27Nlj2/iWZVm//e1vrWHDhller9cqKiqynnjiCVvHtyzLWrNmjSXJ2r17t+1jt7S0WHfccYdVUFBgZWZmWueff771ve99zwoGg7adY+nSpdb5559v9ejRw8rLy7Nqamqsw4cPxzzeqf5uhUIha9asWVbfvn0tr9drfeELX4jqz+5U4y9cuDDi63PmzIn5PQF2oWtdo2vdE++uOb1plmVv12ga0DWadnKJ7hpNi8zpXePfaoiFx7IsK+oVRAAAAAAAAACO49h7BgIAAAAAAACIDouBAAAAAAAAgCFYDAQAAAAAAAAMwWIgAAAAAAAAYAgWAwEAAAAAAABDsBgIAAAAAAAAGILFQAAAAAAAAMAQLAYCAAAAAAAAhmAxEAAAAAAAADAEi4EAAAAAAACAIVgMBAAAAAAAAAzBYiAAAAAAAABgiP8PwSumCcuRQn8AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", + "for i in range(3):\n", + " sns.heatmap(info['qs'][0][i].T, cmap='viridis', ax=axes[i])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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OzXeG/1tffGLX4zrrrsuFi9eHA8//HDsscceMWvWrHjllVcKGX/btm1x9NFHx1VXXbVT+w9l0bXXt7uaFqFrO1J20yJqr2tlN60329A1Bqpa7lpKx2oR5XWtzKZF1H7Xaq1pEY7V+CtZDZk2bVo2b9687n93dXVlo0ePztrb2wvfVkRkd9xxR+Hj/rWNGzdmEZHdf//9pW5n7733zv793/+9sPFefvnl7G1ve1t27733Zscdd1x2wQUXFDb2ggULskmTJhU23t/65Cc/mR199NGljb89F1xwQfbWt741q1arhYx30kknZWeddVaP597//vdnp59+eiHj//GPf8wGDx6cff/73+/x/Dve8Y7s05/+9C6P/7d/W9VqNWtpacmuvvrq7uc2b96cNTY2Zt/+9rd3efy/9vTTT2cRkf3yl7/s87hQBl3ru6KblmW61hdFNy3LartrZTdte9v4a7rGQJNS12r1WC3Lyuta2U3LstrvWi03Lcscq9W7mllB+Oqrr8bKlSujtbW1+7lBgwZFa2trLF++vB/3bOe99NJLERHx5je/uZTxu7q64rbbbott27bFjBkzCht33rx5cdJJJ/X4v0WRHn/88Rg9enSMGzcuTj/99Fi/fn1hY999990xderU+MAHPhD77rtvHHnkkXHTTTcVNv7fevXVV+PWW2+Ns846KyqVSiFjzpw5M5YtWxaPPfZYRET893//dzzwwANx4oknFjL+n/70p+jq6oqmpqYezw8bNqzwM4QREU8//XR0dHT0+P+nESNGxPTp02v2bxt6Q9f6pqymRehab5XRtIi0uqZp1LPUularx2oR5XatzKZF1H7XUmpahK7VmyH9vQO9tWnTpujq6orm5uYezzc3N8dvf/vbftqrnVetVuPCCy+Md73rXXH44YcXOvaaNWtixowZ8corr8Tf/d3fxR133BETJ04sZOzbbrstVq1atUv3OHg906dPj1tuuSXGjx8fzz//fHzmM5+JY445Jn7961/HnnvuucvjP/XUU3HDDTdEW1tbfOpTn4pHHnkkzj///GhoaIg5c+YU8A56uvPOO2Pz5s3xkY98pLAxL7300tiyZUtMmDAhBg8eHF1dXfG5z30uTj/99ELG33PPPWPGjBlx5ZVXxqGHHhrNzc3x7W9/O5YvXx4HH3xwIdv4ax0dHRER2/3b/vPPIEW61jtl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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", + "for i in range(3):\n", + " sns.heatmap(info['qs'][1][i].T, cmap='viridis', ax=axes[i])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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OzXeG/1tffGLX4zrrrsuFi9eHA8//HDsscceMWvWrHjllVcKGX/btm1x9NFHx1VXXbVT+w9l0bXXt7uaFqFrO1J20yJqr2tlN60329A1Bqpa7lpKx2oR5XWtzKZF1H7Xaq1pEY7V+CtZDZk2bVo2b9687n93dXVlo0ePztrb2wvfVkRkd9xxR+Hj/rWNGzdmEZHdf//9pW5n7733zv793/+9sPFefvnl7G1ve1t27733Zscdd1x2wQUXFDb2ggULskmTJhU23t/65Cc/mR199NGljb89F1xwQfbWt741q1arhYx30kknZWeddVaP597//vdnp59+eiHj//GPf8wGDx6cff/73+/x/Dve8Y7s05/+9C6P/7d/W9VqNWtpacmuvvrq7uc2b96cNTY2Zt/+9rd3efy/9vTTT2cRkf3yl7/s87hQBl3ru6KblmW61hdFNy3LartrZTdte9v4a7rGQJNS12r1WC3Lyuta2U3LstrvWi03Lcscq9W7mllB+Oqrr8bKlSujtbW1+7lBgwZFa2trLF++vB/3bOe99NJLERHx5je/uZTxu7q64rbbbott27bFjBkzCht33rx5cdJJJ/X4v0WRHn/88Rg9enSMGzcuTj/99Fi/fn1hY999990xderU+MAHPhD77rtvHHnkkXHTTTcVNv7fevXVV+PWW2+Ns846KyqVSiFjzpw5M5YtWxaPPfZYRET893//dzzwwANx4oknFjL+n/70p+jq6oqmpqYezw8bNqzwM4QREU8//XR0dHT0+P+nESNGxPTp02v2bxt6Q9f6pqymRehab5XRtIi0uqZp1LPUularx2oR5XatzKZF1H7XUmpahK7VmyH9vQO9tWnTpujq6orm5uYezzc3N8dvf/vbftqrnVetVuPCCy+Md73rXXH44YcXOvaaNWtixowZ8corr8Tf/d3fxR133BETJ04sZOzbbrstVq1atUv3OHg906dPj1tuuSXGjx8fzz//fHzmM5+JY445Jn7961/HnnvuucvjP/XUU3HDDTdEW1tbfOpTn4pHHnkkzj///GhoaIg5c+YU8A56uvPOO2Pz5s3xkY98pLAxL7300tiyZUtMmDAhBg8eHF1dXfG5z30uTj/99ELG33PPPWPGjBlx5ZVXxqGHHhrNzc3x7W9/O5YvXx4HH3xwIdv4ax0dHRER2/3b/vPPIEW61jtl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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", + "for i in range(3):\n", + " sns.heatmap(info['qs'][2][i].T, cmap='viridis', ax=axes[i])" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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JkyIxsbG6Orq6vN8V1dXtLS0DNNZHZgLLrggvvvd78btt98er3zlK0sff8yYMXHcccfFzJkzo6OjI6ZPnx6f+9znDnrc7du3xyOPPBKnnHJKHHLIIXHIIYfEHXfcEVdffXUccsgh0dvbW8LZ9/XSl740Xv3qV8cDDzxQyniTJk16Vlhf85rXlL5cPSLi17/+dXz/+9+P8847r9RxL7roorjkkkvine98Z5x00knx7ne/O5YvXx4dHR2lHePYY4+NO+64I5588sn4zW9+E9u2bYtnnnkmjjnmmNKO8Ud//PtN4W8bBkPXBqaqpkXo2mBU1bSItLqmaeQsla7V67VaxNB3reymRdR/11JqWoSupaRuJv/GjBkTM2fOjM2bN+9/rlarxebNm0u/R0JViqKICy64IG666ab4z//8zzj66KOH5Li1Wi16enoOepzTTz897rnnnti5c+f+x6xZs+Lss8+OnTt3RmNjYwln29eTTz4Zv/zlL2PSpEmljHfqqafGfffd1+e5+++/P4466qhSxv9T119/fUycODHOPPPMUsd96qmnYtSovn+6jY2NUavVSj1ORMShhx4akyZNit///vdx2223xdve9rbSj3H00UdHS0tLn7/tvXv3xo9//OO6+duGA6FrB6aspkXo2mBU1bSItLqmaeSs3rtW79dqEUPftbKbFlH/XUupaRG6lpK62vbb1tYWixcvjlmzZsXs2bNj9erV0d3dHUuWLCll/CeffLLPpxYPPfRQ7Ny5M172spfFkUceedDjL126NNavXx//9m//Focddtj+PfLjx4+PcePGHfT4ERErVqyIt771rXHkkUfGE088EevXr48tW7bEbbfddtBjH3bYYc+658Whhx4aL3/5y0u7F8aHPvShWLBgQRx11FHx29/+Ntrb26OxsTHOOuusUsZfvnx5zJs3Ly6//PJ4xzveEdu2bYtrr702rr322lLG/6NarRbXX399LF68OA45pNw/swULFsSnPvWpOPLII+O1r31t/OQnP4lVq1bFueeeW9oxbrvttiiKIo4//vh44IEH4qKLLopp06Yd8N/aC/1tXXjhhfHJT34yXvWqV8XRRx8dl156aUyePDkWLlxYyviPPfZY7Nq1K377299GROz/HxQtLS0+sWJY6drzq7JpEbo2UFU2LaL+ulZ10wZyDF1jpKrnrtX7tVpE9V2rumkR9d+1emtahGu1bAznVw0fiM9//vPFkUceWYwZM6aYPXt28aMf/ai0sW+//fYiIp71WLx4cSnj9zd2RBTXX399KeMXRVGce+65xVFHHVWMGTOmeMUrXlGcfvrpxX/8x3+UNv6fK/Or44uiKBYtWlRMmjSpGDNmTDFlypRi0aJFxQMPPFDa+EVRFP/+7/9enHjiiUVTU1Mxbdq04tprry11/KIoittuu62IiOK+++4rfey9e/cWy5YtK4488shi7NixxTHHHFN85CMfKXp6eko7xoYNG4pjjjmmGDNmTNHS0lIsXbq0ePzxxw94vBf626rVasWll15aNDc3F01NTcXpp58+qH+7Fxr/+uuv7/fn7e3tB/yeoCy69tyGumlFoWv9qbJpRVF/Xau6aQM5hq4xktVr11K8ViuKcrs2FE0rivruWr01rShcq+WioSiKYtAzhgAAAADAiFc39/wDAAAAAAbH5B8AAAAAJMrkHwAAAAAkyuQfAAAAACTK5B8AAAAAJMrkHwAAAAAkyuQfAAAAACTK5B8AAAAAJMrkHwAAAAAkyuQfAAAAACTK5B8AAAAAJMrkHwAAAAAk6v8BBnCmxfMCi44AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", + "for i in range(3):\n", + " sns.heatmap(info['qs'][3][i].T, cmap='viridis', ax=axes[i])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "\n", + "for t in range(timesteps): \n", + " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", + " plt.figure()\n", + " images.append( np.array(render(env_info, env_state, show_img=False)) )" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import matplotlib.animation as animation\n", + "from IPython.display import HTML\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "sns.despine(fig, left=True, bottom=True)\n", + "ax.set_xticks([])\n", + "ax.set_yticks([])\n", + "\n", + "# ims is a list of lists, each row is a list of artists to draw in the\n", + "# current frame; here we are just animating one artist, the image, in\n", + "# each frame\n", + "frames = []\n", + "for i, img in enumerate(images):\n", + " im = ax.imshow(img, animated=True)\n", + " if i == 0:\n", + " ax.imshow(img) # show an initial one first\n", + " frames.append([im])\n", + "\n", + "ani = animation.ArtistAnimation(fig, frames, interval=1000, blit=True,\n", + " repeat_delay=1000)\n", + "\n", + "# To save the animation, use e.g.\n", + "#\n", + "# ani.save(\"movie.mp4\")\n", + "#\n", + "# or\n", + "#\n", + "# writer = animation.FFMpegWriter(\n", + "# fps=15, metadata=dict(artist='Me'), bitrate=1800)\n", + "# ani.save(\"movie.mp4\", writer=writer)\n", + "\n", + "plt.close(ani._fig)\n", + "\n", + "# Call function to display the animation\n", + "HTML(ani.to_html5_video())" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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TPXixYvOV0FBgXPenXfeqXbs2FEtKipyTrPb7Wrv3r3Vli1bOqfNmzdPBdRBgwapdrvdOX369OmqVqtVs7KyVFVV1dzcXNXf31994oknStWQmpqq+vn5lZo+ceJEFVBfeOGFMjVfWWOJWbNmqYqiqGfOnHFOe/nll9Wrfx2RkZHqxIkTy6xf4q233lIBdeHChVV+H6ZNm6YC6o4dO5zT0tLSVD8/PxVQExMTK9zv1e699141MjKy0stHRkaq9957r2q1WtWwsDD1tddeU1VVVQ8fPqwC6pYtW5y/p127djnXK++9/PLLL1VA/fHHHyvc3zPPPKNqtVp106ZNqqo63o+WLVuqgwcPLvU3UFBQoEZHR6t33XXXNetPTExUgQpfP//8c6ljvbq+tLQ01Wg0qn/84x+d01588UVVr9erGRkZzmnFxcWqv7+/+uijjzqnlbwvV/5+Svaxdu3aUnWW/I63bt3qnJabm6tGR0erUVFRqs1mU1VVVTdv3qwCatu2bdXi4mLnsv/+979VQD1w4IBzWv/+/VVAXbx4sXPa0aNHVUDVaDTqL7/84py+bt06FVDnzZvnnPbYY4+pjRs3VtPT00vV+uCDD6p+fn7O33FVaqrq358QDZHbNYPn5OQA5X87HjBgACEhIc7X+++/D0BGRgabNm1i9OjR5Obmkp6eTnp6OpcuXWLw4MGcOHGCc+fOldrWk08+WapZtG/fvthsNs6cOQM4zuKysrIYO3asc3vp6elotVp69erF5s2by9T39NNPl5l25Zlqfn4+6enp9O7dG1VV+fXXX6vxDjls3ryZF198kT/84Q+MHz++yu/D999/z6233lrqDDIkJMTZfF8XtFoto0eP5ssvvwQcHcvCw8Pp27dvuctf+V4WFRWRnp7OrbfeCsDevXvLXWfhwoX897//5a233mLgwIEAxMfHc+LECR566CEuXbrkfJ/y8/O58847+fHHHyt1OeDJJ59k/fr1ZV7t2rUrtVy7du1KHVNISAitW7fm1KlTzmljxozBYrGwYsUK57QffviBrKwsxowZc91aoqOjy5x9f//999xyyy306dPHOc3b25snn3yS06dPc/jw4VLLP/LII6VaH0pqvrLOkm08+OCDzp9bt26Nv78/bdu2LdUaVvLfJeurqsry5csZNmwYqqqW+nc1ePBgsrOzy/weK1uTEDc6t2sGL2kuy8vLKzPvww8/JDc3lwsXLpTq2JOQkICqqrz00ku89NJL5W43LS2Npk2bOn+OiIgoNT8gIABwNPEBnDhxAoA77rij3O35+vqW+lmn09GsWbMyyyUlJTFz5kxWrVrl3HaJ7Ozscrd9PWfPnmXMmDHcfvvt/POf/3ROr8r7cObMmXIvM7Ru3bpaNV0tOzu71HV5g8FAYGBgmeUeeugh5syZw759+1i8eDEPPvhgmWvLJTIyMnj11VdZsmQJaWlpZfZ3tfj4eJ566inGjh3LjBkznNNLfrdXNzlfvb2Sv4mKtGzZssLbz6509d8aOP7ervx76Ny5M23atGHp0qU89thjgKMJPDg4uMK/wStFR0eXmVbR77ht27bO+R06dKiwzqv/TZRo1qxZmd+Rn59fmT4kfn5+pda/ePEiWVlZfPTRR3z00UflHsfVv9fK1iTEjc7twtrPz4/GjRtz8ODBMvNKPniuvn+35Czoueeeq/DaXosWLUr9XFGPWlVVS23z888/L3NrEVDqmiQ4em5f3TvdZrNx1113kZGRwZ///GfatGmDl5cX586dY9KkSdXqzGU2m7n//vsxGo0sW7asVB3VeR9qy7PPPluqw1T//v2Ji4srs1yvXr1o3rw506ZNIzExkYceeqjCbY4ePZqffvqJP/3pT3Tp0gVvb2/sdjuxsbFl3svMzExGjRpFq1at+OSTT0rNK1n27bffpkuXLuXuy5XXPa/3t1ZizJgxvP7666Snp+Pj48OqVasYO3Zsmb+18riir0Fl66xoucr+m3r44Ycr/KLUqVOnatUkxI3O7cIa4N577+WTTz5h586dleroExMTA4Ber6/UmU5llHR4Cg0NrfY2Dxw4wPHjx1mwYAETJkxwTl+/fn2165o6dSrx8fH8+OOPNGrUqNS8qrwPkZGRzjPMKx07dqzatV3p+eefL9X6ca2z1LFjx/L3v/+dtm3bVhiemZmZbNy4kVdffZWZM2c6p5d3DHa7nXHjxpGVlcWGDRucnf1KlPxufX19Xfb34gpjxozh1VdfZfny5TRq1IicnJxSzc1VFRkZWe7v8+jRo875dSkkJAQfHx9sNptL3/eKWmKEuJG43TVrcHzQe3p68uijj3LhwoUy86/+Vh0aGsqAAQP48MMPSUlJKbN8ebdkXc/gwYPx9fXljTfewGKxVGubJWcFV9arqir//ve/q1wPwLx58/jwww95//33y/0SU5X34Z577uGXX35h586dpeYvWrSoWrVdrV27dgwaNMj56t69e4XLPv7447z88su88847FS5T3nsJlDty1auvvsq6dev48ssvy20e7t69O82bN+cf//hHuZdbqvP34gpt27alY8eOLF26lKVLl9K4cWP69etX7e3dc8897Ny5k59//tk5LT8/n48++oioqKgy19Zrm1arZdSoUSxfvrzclrPqvu9eXl7VvqQkREPhlmfWLVu2ZPHixYwdO5bWrVs7RzBTVZXExEQWL16MRqMpdY34/fffp0+fPnTs2JEnnniCmJgYLly4wM8//8zZs2fZt29flWrw9fVl7ty5jB8/nm7duvHggw8SEhJCUlIS3333HbfffjvvvffeNbfRpk0bmjdvznPPPce5c+fw9fVl+fLl1brelp6ezjPPPEO7du0wGo188cUXpeaPHDkSLy+vSr8Pzz//PJ9//jmxsbE8++yzzlu3IiMj63wo18jISF555ZVrLuPr60u/fv146623sFgsNG3alB9++IHExMRSyx04cIDXXnuNfv36kZaWVuZ9evjhh9FoNHzyyScMGTKE9u3b88gjj9C0aVPOnTvH5s2b8fX15X//+9916967d2+Z7YPjzP222267/oGXY8yYMcycORMPDw8ee+yxGg3888ILL/Dll18yZMgQpk6dSmBgIAsWLCAxMZHly5fXy6BCs2fPZvPmzfTq1YsnnniCdu3akZGRwd69e9mwYQMZGRlV3mb37t1ZunQpM2bMoGfPnnh7ezNs2LBaqF6IelQPPdArLSEhQX366afVFi1aqB4eHqrJZFLbtGmjPvXUU2p8fHyZ5U+ePKlOmDBBDQsLU/V6vdq0aVN16NCh6tdff+1cprxbglT1t1tFNm/eXGb64MGDVT8/P9XDw0Nt3ry5OmnSJHX37t3OZSZOnKh6eXmVewyHDx9WBw0apHp7e6vBwcHqE088oe7bt6/MLS3Xu3XrercLXXkrT2XeB1VV1f3796v9+/dXPTw81KZNm6qvvfaa+umnn9bZrVvXUt7v6ezZs+rIkSNVf39/1c/PT33ggQfU8+fPq4D68ssvq6r62++xoteVfv31V/W+++5Tg4KCVKPRqEZGRqqjR49WN27ceM3arve7uPJ2u4qOtX///mr//v3LTD9x4oRz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P8yWLVtc8n41OGody87OVgE1Ozu7rncthLjJXevzp7CwUD18+LBaWFhYrW2PHKmqOp2qOmK5/JdOp6qjRtX0KMqaOHGiOnz4cFVVVfXWW29VH330UVVVVfWbb75RSz7mH3vsMfXJJ58std7WrVtVjUajFhYWqkeOHFEBddeuXc75J06cUAH1X//6V4X7/uqrr9SgoCDnz/PmzVP9/PzKLBcZGencjsViUYODg9WFCxc6548dO1YdM2aMqqqqWlRUpHp6eqo//fRTqW089thj6tixY6/9ZjQwlf27kwd5CCFEDRUWwsqVvzV9V8RqhW++cSxfW8/4ePPNN7njjjvKnNHu27eP/fv3s2jRIuc0VVWx2+0kJiZy/PhxdDod3bp1c85v0aIFAQEBpbazYcMGZs2axdGjR8nJycFqtVJUVERBQUGlr0nrdDpGjx7NokWLGD9+PPn5+axcuZIlS5YAkJCQQEFBAXfddVep9cxmM127dq3S+3GjkLAWQogaysm5flCXsNsdy9dWWPfr14/Bgwfz4osvMmnSJOf0vLw8fv/73zN16tQy60RERHD8+PHrbvv06dMMHTqUp59+mtdff53AwEC2bdvGY489htlsrlIHsnHjxtG/f3/S0tJYv349JpOJ2NhYZ60A3333HU2bNi21ntForPQ+biQS1kIIUUO+vqDRVC6wNRrH8rVp9uzZdOnShdatWzundevWjcOHD9OiRYty12ndujVWq5Vff/2V7t27A44z3Ct7l+/Zswe73c4777yDRuPo8rRs2bJS2zEYDNhstuvW2Lt3b8LDw1m6dClr1qzhgQceQK/XA9CuXTuMRiNJSUn079+/agd/g5KwFkKIGjKZYPhwR6/vqzuXXUmncyxX24+57tixI+PGjWPOnDnOaX/+85+59dZbmTJlCo8//jheXl4cPnyY9evX895779GmTRsGDRrEk08+ydy5c9Hr9fzxj3/EZDI579Vu0aIFFouF//znPwwbNozt27fzwVVd3KOiosjLy2Pjxo107twZT0/PCs+4H3roIT744AOOHz/O5s2bndN9fHx47rnnmD59Ona7nT59+pCdnc327dvx9fVl4sSJtfCuuTfpDS6EEC4wYwZc74TSZoPp0+umnr/97W/YrzjV79SpE1u2bOH48eP07duXrl27MnPmTJo0aeJcZuHChTRq1Ih+/fox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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0], [1], [2], [3], [4]]\n" + ] + } + ], + "source": [ + "M = get_maze_matrix('large')\n", + "env_info = parse_maze(M)\n", + "tmaze_env_large = GeneralizedTMazeEnv(env_info, batch_size=3)\n", + "images = []\n", + "images.append( render(env_info, tmaze_env_large) )\n", + "\n", + "A = [a.copy() for a in tmaze_env_large.params[\"A\"]]\n", + "B = [b.copy() for b in tmaze_env_large.params[\"B\"]]\n", + "A_dependencies = tmaze_env_large.dependencies[\"A\"]\n", + "B_dependencies = tmaze_env_large.dependencies[\"B\"]\n", + "\n", + "# [position], [cue], [reward]\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "\n", + "rewarding_modality = -1 # 2 + env_info[\"num_cues\"]\n", + "\n", + "C[rewarding_modality] = C[rewarding_modality].at[:, 1].set(1.0)\n", + "C[rewarding_modality] = C[rewarding_modality].at[:, 2].set(-2.0)\n", + "\n", + "\n", + "D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", + "\n", + "agent = AIFAgent(\n", + " A, B, C, D, \n", + " E=None,\n", + " pA=None,\n", + " pB=None,\n", + " policy_len=1,\n", + " A_dependencies=A_dependencies, \n", + " B_dependencies=B_dependencies,\n", + " use_utility=True,\n", + " use_states_info_gain=True,\n", + " sampling_mode='full'\n", + ")\n", + "\n", + "print(B_dependencies)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "timesteps = 12\n", + "key = jr.PRNGKey(101)\n", + "_, info, _ = rollout(si_policy, agent, tmaze_env_large, num_timesteps=timesteps, rng_key=key)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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2+J7b7zxxjj++ONjr732ir322iva2tq2+n4A8lJm07ana5oGQJlyO1cz+QeQoIULF0Z7e3t0dHTEww8/HGPHjo3JkyfHc889t9n333vvvXHaaafFPffcE0uXLo399tsvTjrppHjmmWf6+MgBoCdNAyAl/dE1k38AVSlKfNVp7ty5cc4558T06dPj8MMPjwULFsQb3vCGuOmmmzb7/q9//evx8Y9/PI4++ugYM2ZMfPnLX45arRZLliypf+cApKfMptXZNU0DoHSZnau55x9ARZpKvI9EV1dXdHV19djW0tISLS0tr3vvxo0bY/ny5TF79uxN2wYNGhRtbW2xdOnSXu3vlVdeiddeey3e+MY37tiBA5CEMpsW0fuuaRoAVcjtXG3ATP79+u2v9vchDHh3//7n/X0IQD/p7OyMOXPm9NjW0dERl19++eveu3bt2uju7o7W1tYe21tbW2PlypW92t/FF18co0aNira2tu0+5pz1RdN2i19XOv6aeW+qdHy2TfdJWW+7pmkDg3O1bfO/2ZCvRjhXGzCTfwDJqZU31OzZs6O9vb3Hts19k1SGq666Km677ba49957Y8iQIZXsA4AGU2LTIvqua5oGwGZldq5m8g+gImUuJd/SsvHNGTZsWDQ3N8eaNWt6bF+zZk2MGDFiq7/7+c9/Pq666qr44Q9/GEcdddR2Hy8AaSn7st/edk3TAKhCbudqHvgBkJjBgwfHuHHjetwA9s83hJ00adIWf++zn/1sXHHFFbFo0aIYP358XxwqAGyVpgGQkv7qmpV/AFUpd5FEXdrb22PatGkxfvz4mDBhQsybNy82bNgQ06dPj4iIM844I/bZZ5/o7OyMiIirr746Lrvssrj11ltj9OjRsXr16oiI2G233WK33Xbrt88BwAChaQCkJLOumfwDqErJl0jVY+rUqfH888/HZZddFqtXr46jjz46Fi1atOnGsqtWrYpBg/5v8ff1118fGzdujA984AM9xtnSjWoByIymAZCSzLpm8g8gUTNnzoyZM2du9mf33ntvj//+zW9+U/0BAcB20jQAUtLXXTP5B1CRpn5cSg4AZdI0AFKSW9dM/gFUpR+XkgNAqTQNgJRk1jVP+wUAAACARFn5B1CRplp/HwEAlEPTAEhJbl0z+QdQlcyWkgOQME0DICWZdc1lvwAAAACQKCv/AKqS15dJAKRM0wBISWZdM/kHUJGmzJaSA5AuTQMgJbl1zWW/AAAAAJAoK/8AqpLZt0kAJEzTAEhJZl0z+QdQlcweHw9AwjQNgJRk1jWX/QIAAABAoqz8A6hIbjeRBSBdmgZASnLrmsk/gKpkFhQAEqZpAKQks6657BcAAAAAEmXlH0BVMvs2CYCEaRoAKcmsayb/AKqS2ROkAEiYpgGQksy65rJfAAAAAEiUlX8AFcntCVIApEvTAEhJbl0z+QdQlcyCAkDCNA2AlGTWNZf9AgAAAECirPwDqEpm3yYBkDBNAyAlmXXN5B9AVTILCgAJ0zQAUpJZ11z2CwAAAACJsvIPoCq1/j4AACiJpgGQksy6ZvIPoCK5PT4egHRpGgApya1rLvsFAAAAgERZ+QdQlcy+TQIgYZoGQEoy61opk39FUURTU1MZQwGko5ZXUFKhaQCboWkNS9cANiOzrpVy2W9LS0s89thjZQwFAP1K0wBIia4BUNfKv/b29s1u7+7ujquuuir23nvviIiYO3fujh8ZQKPLbCl5o9E0gDpo2oCnawB1yKxrdU3+zZs3L8aOHRt77rlnj+1FUcRjjz0Wu+66a6+WlHd1dUVXV1ePbbWiOwY1NddzOAADW2ZBaTSaBlAHTRvwdA2gDpl1ra7JvyuvvDJuuOGG+MIXvhDvfve7N23feeed45ZbbonDDz+8V+N0dnbGnDlzemw7MA6Lg+Ot9RwOAGw3TQMgJboGwJbUdc+/Sy65JBYuXBjnnXdeXHjhhfHaa69t105nz54d69at6/E6MMZs11gAA1ZRlPeidJoGUIcym6ZrldA1gDpk1rS6H/jx9re/PZYvXx7PP/98jB8/Ph599NG6nx7V0tISe+yxR4+XZeRAcmpFeS8qoWkAvVRm03StMroG0EuZNa2uy37/bLfddouvfvWrcdttt0VbW1t0d3eXfVwA0Cc0DYCU6BoAf227Jv/+7EMf+lC84x3viOXLl8cBBxxQ1jEBpKGo9fcRUAdNA9gKTWs4ugawFZl1bYcm/yIi9t1339h3333LOBaAtDTI/R/4P5oGsAWa1pB0DWALMuta3ff8AwAAAAAaww6v/ANgCxrk5q8AsE2aBkBKMuuayT+AqmS2lByAhGkaACnJrGsu+wUAAACARFn5B1CVzL5NAiBhmgZASjLrmsk/gKpkFhQAEqZpAKQks6657BcAAAAAEmXlH0BVarX+PgIAKIemAZCSzLpm8g+gKpktJQcgYZoGQEoy65rLfgEAAAAgUVb+AVQls2+TAEiYpgGQksy6ZvIPoCq1vIICQMI0DYCUZNY1l/0CAAAAQKKs/AOoSFHk9QQpANKlaQCkJLeumfwDqEpmS8kBSJimAZCSzLrmsl8AAAAASJSVfwBVyewJUgAkTNMASElmXTP5B1CVWl73kQAgYZoGQEoy65rLfgEAAAAgUVb+AVQls6XkACRM0wBISWZdM/kHUJEis6XkAKRL0wBISW5dc9kvAAAAACTKyj+AqmS2lByAhGkaACnJrGsm/wCqUssrKAAkTNMASElmXXPZLwAAAAAkyso/gKoUed1EFoCEaRoAKcmsayb/ACpSZLaUHIB0aRoAKcmtay77BQAAAIBEmfwDqEpRK++1HebPnx+jR4+OIUOGxMSJE2PZsmVbff9//ud/xpgxY2LIkCFx5JFHxl133bVd+wUgQWU2bTu6pmkAlCqzczWTfwAVKWpFaa96LVy4MNrb26OjoyMefvjhGDt2bEyePDmee+65zb7/gQceiNNOOy0++tGPxs9+9rM45ZRT4pRTTolHH310R/8ZAEhAmU2rt2uaBkDZcjtXayqKYkBc6PyeQaf29yEMeHf//uf9fQiQvEEjnihtrPc0Ty1trMXdC+t6/8SJE+Ptb397XHvttRERUavVYr/99otPfOITcckll7zu/VOnTo0NGzbE9773vU3b/uZv/iaOPvroWLBgwY4dfIZSaNqv5/1NpeMffMFPKh0/BbpPGcrqWplNi6iva5rW/1LoWtX8bzb0jYHYtUY4V7PyD6AqJS4l7+rqivXr1/d4dXV1bXa3GzdujOXLl0dbW9umbYMGDYq2trZYunTpZn9n6dKlPd4fETF58uQtvh+AzJR82W9vu6ZpAFQit3O1ogG9+uqrRUdHR/Hqq6825Ph9sQ/j9/8+Gn38vthHo4/flzo6OoqI6PHq6OjY7HufeeaZIiKKBx54oMf2iy66qJgwYcJmf2fnnXcubr311h7b5s+fXwwfPryU42frGv1vodHH74t9NPr4fbGPRh+/L/aRY9c0rfGk8HfQ6J/Bv1H/j98X+2j08ftqH32hEc7VGnLyb926dUVEFOvWrWvI8ftiH8bv/300+vh9sY9GH78vvfrqq8W6det6vLYUSSdKjafR/xYaffy+2Eejj98X+2j08ftiHzl2TdMaTwp/B43+Gfwb9f/4fbGPRh+/r/bRFxrhXG2n3q8RBKC/tLS0REtLS6/eO2zYsGhubo41a9b02L5mzZoYMWLEZn9nxIgRdb0fAHZEb7umaQAMdI1wruaefwCJGTx4cIwbNy6WLFmyaVutVoslS5bEpEmTNvs7kyZN6vH+iIjFixdv8f0A0Bc0DYCU9FfXrPwDSFB7e3tMmzYtxo8fHxMmTIh58+bFhg0bYvr06RERccYZZ8Q+++wTnZ2dERFx/vnnxwknnBBf+MIX4uSTT47bbrstHnroobjhhhv682MAgKYBkJT+6FpDTv61tLRER0dHr5dVDrTx+2Ifxu//fTT6+H2xj0YffyCbOnVqPP/883HZZZfF6tWr4+ijj45FixZFa2trRESsWrUqBg36v8Xfxx57bNx6663x6U9/Oj75yU/Gm9/85rjjjjviiCOO6K+PkJVG/1to9PH7Yh+NPn5f7KPRx++LfeTaNU1rLCn8HTT6Z/Bv1P/j98U+Gn38vtrHQNQfXWsqiqIo/ZMAAAAAAP3OPf8AAAAAIFEm/wAAAAAgUSb/AAAAACBRJv8AAAAAIFENN/k3f/78GD16dAwZMiQmTpwYy5YtK23sH//4xzFlypQYNWpUNDU1xR133FHa2BERnZ2d8fa3vz123333GD58eJxyyinx+OOPl7qP66+/Po466qjYY489Yo899ohJkybF97///VL38WdXXXVVNDU1xQUXXFDamJdffnk0NTX1eI0ZM6a08SMinnnmmfiHf/iH2HvvvWOXXXaJI488Mh566KHSxh89evTrPkNTU1PMmDGjlPG7u7vj0ksvjQMPPDB22WWXOPjgg+OKK66IMp/d89JLL8UFF1wQBxxwQOyyyy5x7LHHxoMPPrjd423rb6soirjsssti5MiRscsuu0RbW1v86le/Km38b3/723HSSSfF3nvvHU1NTbFixYrt/ixQNl3bsr5sWoSubU7VTYtovK5V3bTe7EPXGMgatWupnatFlN+1vmhaRGN3rdGaFuFcLRcNNfm3cOHCaG9vj46Ojnj44Ydj7NixMXny5HjuuedKGX/Dhg0xduzYmD9/finj/bX77rsvZsyYET/5yU9i8eLF8dprr8VJJ50UGzZsKG0f++67b1x11VWxfPnyeOihh+Ld7353vP/9749f/OIXpe0jIuLBBx+Mf/u3f4ujjjqq1HEjIt761rfGs88+u+l1//33lzb2H/7whzjuuONi5513ju9///vxy1/+Mr7whS/EXnvtVdo+HnzwwR7Hv3jx4oiIOPXUU0sZ/+qrr47rr78+rr322njsscfi6quvjs9+9rPxpS99qZTxIyLOPvvsWLx4cXzta1+LRx55JE466aRoa2uLZ555ZrvG29bf1mc/+9m45pprYsGCBfHTn/40dt1115g8eXK8+uqrpYy/YcOGeMc73hFXX331dh0/VEXXtq6vmhaha1tSddMiGq9rVTetN/vQNQaqRu5aSudqEdV1rcqmRTR+1xqtaRHO1bJRNJAJEyYUM2bM2PTf3d3dxahRo4rOzs7S9xURxe233176uH/pueeeKyKiuO+++yrdz1577VV8+ctfLm28l156qXjzm99cLF68uDjhhBOK888/v7SxOzo6irFjx5Y23l+7+OKLi3e84x2Vjb85559/fnHwwQcXtVqtlPFOPvnk4qyzzuqx7e///u+L008/vZTxX3nllaK5ubn43ve+12P7McccU3zqU5/a4fH/+m+rVqsVI0aMKD73uc9t2vbiiy8WLS0txTe+8Y0dHv8vPf3000VEFD/72c/qHheqoGv1K7tpRaFr9Si7aUXR2F2rummb28df0jUGmpS61qjnakVRXdeqblpRNH7XGrlpReFcLWUNs/Jv48aNsXz58mhra9u0bdCgQdHW1hZLly7txyPbfuvWrYuIiDe+8Y2VjN/d3R233XZbbNiwISZNmlTauDNmzIiTTz65x/9blOlXv/pVjBo1Kg466KA4/fTTY9WqVaWN/Z3vfCfGjx8fp556agwfPjze9ra3xY033lja+H9t48aN8R//8R9x1llnRVNTUyljHnvssbFkyZJ44oknIiLi5z//edx///3x3ve+t5Tx//SnP0V3d3cMGTKkx/Zddtml9G/2IiKefvrpWL16dY///zR06NCYOHFiw/5tQ2/oWn2qalqErvVWFU2LSKtrmkbOUutao56rRVTbtSqbFtH4XUupaRG6lpKd+vsAemvt2rXR3d0dra2tPba3trbGypUr++motl+tVosLLrggjjvuuDjiiCNKHfuRRx6JSZMmxauvvhq77bZb3H777XH44YeXMvZtt90WDz/88A7dU2BrJk6cGLfccksceuih8eyzz8acOXPi+OOPj0cffTR23333HR7/qaeeiuuvvz7a29vjk5/8ZDz44IPxj//4jzF48OCYNm1aCZ+gpzvuuCNefPHFOPPMM0sb85JLLon169fHmDFjorm5Obq7u+Mzn/lMnH766aWMv/vuu8ekSZPiiiuuiMMOOyxaW1vjG9/4RixdujQOOeSQUvbxl1avXh0Rsdm/7T//DFKka71TZdMidK0eVTQtIq2uaRo5S6lrjXquFlFt16puWkTjdy2lpkXoWkoaZvIvNTNmzIhHH320ktn5Qw89NFasWBHr1q2Lb33rWzFt2rS47777djgqv/vd7+L888+PxYsXv+6bhrL85TciRx11VEycODEOOOCA+OY3vxkf/ehHd3j8Wq0W48ePjyuvvDIiIt72trfFo48+GgsWLKhk8u8rX/lKvPe9741Ro0aVNuY3v/nN+PrXvx633nprvPWtb40VK1bEBRdcEKNGjSrtM3zta1+Ls846K/bZZ59obm6OY445Jk477bRYvnx5KeMD6amqa1U1LULX6lVF0yJ0DRh4GvFcLaL6rlXdtIjG75qmMVA1zGW/w4YNi+bm5lizZk2P7WvWrIkRI0b001Ftn5kzZ8b3vve9uOeee2LfffctffzBgwfHIYccEuPGjYvOzs4YO3ZsfPGLX9zhcZcvXx7PPfdcHHPMMbHTTjvFTjvtFPfdd19cc801sdNOO0V3d3cJR9/TnnvuGW95y1viySefLGW8kSNHvi6shx12WOnL1SMifvvb38YPf/jDOPvss0sd96KLLopLLrkkPvShD8WRRx4ZH/nIR2LWrFnR2dlZ2j4OPvjguO++++Lll1+O3/3ud7Fs2bJ47bXX4qCDDiptH3/257/fFP62oR661jtVNS1C1+pRVdMi0uqappGzVLrWqOdqEX3ftbKbFtH4XUupaRG6lpKGmfwbPHhwjBs3LpYsWbJpW61WiyVLlpR+j4SqFEURM2fOjNtvvz1+9KMfxYEHHtgn+63VatHV1bXD45x44onxyCOPxIoVKza9xo8fH6effnqsWLEimpubSzjanl5++eX49a9/HSNHjixlvOOOOy4ef/zxHtueeOKJOOCAA0oZ/y/dfPPNMXz48Dj55JNLHfeVV16JQYN6/uk2NzdHrVYrdT8REbvuumuMHDky/vCHP8Tdd98d73//+0vfx4EHHhgjRozo8be9fv36+OlPf9owf9uwPXRt+5TVtAhdq0dVTYtIq2uaRs4avWuNfq4W0fddK7tpEY3ftZSaFqFrKWmoy37b29tj2rRpMX78+JgwYULMmzcvNmzYENOnTy9l/JdffrnHtxZPP/10rFixIt74xjfG/vvvv8Pjz5gxI2699db4r//6r9h99903XSM/dOjQ2GWXXXZ4/IiI2bNnx3vf+97Yf//946WXXopbb7017r333rj77rt3eOzdd9/9dfe82HXXXWPvvfcu7V4YF154YUyZMiUOOOCA+P3vfx8dHR3R3Nwcp512Winjz5o1K4499ti48sor44Mf/GAsW7YsbrjhhrjhhhtKGf/ParVa3HzzzTFt2rTYaady/8ymTJkSn/nMZ2L//fePt771rfGzn/0s5s6dG2eddVZp+7j77rujKIo49NBD48knn4yLLrooxowZs91/a9v627rgggviX/7lX+LNb35zHHjggXHppZfGqFGj4pRTTill/BdeeCFWrVoVv//97yMiNv0fFCNGjPCNFf1K17auyqZF6FpvVdm0iMbrWtVN680+dI2BqpG71ujnahHVd63qpkU0ftcarWkRztWy0Z+PGt4eX/rSl4r999+/GDx4cDFhwoTiJz/5SWlj33PPPUVEvO41bdq0Usbf3NgRUdx8882ljF8URXHWWWcVBxxwQDF48ODiTW96U3HiiScWP/jBD0ob/6+V+ej4oiiKqVOnFiNHjiwGDx5c7LPPPsXUqVOLJ598srTxi6Iovvvd7xZHHHFE0dLSUowZM6a44YYbSh2/KIri7rvvLiKiePzxx0sfe/369cX5559f7L///sWQIUOKgw46qPjUpz5VdHV1lbaPhQsXFgcddFAxePDgYsSIEcWMGTOKF198cbvH29bfVq1WKy699NKitbW1aGlpKU488cS6/u22Nf7NN9+82Z93dHRs92eCsujalvV104pC1zanyqYVReN1reqm9WYfusZA1qhdS/FcrSjK7VpfNK0oGrtrjda0onCuloumoiiKumcMAQAAAIABr2Hu+QcAAAAA1MfkHwAAAAAkyuQfAAAAACTK5B8AAAAAJMrkHwAAAAAkyuQfAAAAACTK5B8AAAAAJMrkHwAAAAAkyuQfAAAAACTK5B8AAAAAJMrkHwAAAAAkyuQfAAAAACTq/weLocM05dZUGQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", + "for i in range(3):\n", + " sns.heatmap(info['qpi'][i].T, cmap='viridis', ax=axes[i])" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "\n", + "for t in range(timesteps):\n", + " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", + " plt.figure()\n", + " images.append( np.array(render(env_info, env_state, show_img=False)) )" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import matplotlib.animation as animation\n", + "from IPython.display import HTML\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "sns.despine(fig, left=True, bottom=True)\n", + "ax.set_xticks([])\n", + "ax.set_yticks([])\n", + "\n", + "# ims is a list of lists, each row is a list of artists to draw in the\n", + "# current frame; here we are just animating one artist, the image, in\n", + "# each frame\n", + "frames = []\n", + "for i, img in enumerate(images):\n", + " im = ax.imshow(img, animated=True)\n", + " if i == 0:\n", + " ax.imshow(img) # show an initial one first\n", + " frames.append([im])\n", + "\n", + "ani = animation.ArtistAnimation(fig, frames, interval=1000, blit=True,\n", + " repeat_delay=1000)\n", + "\n", + "# To save the animation, use e.g.\n", + "#\n", + "# ani.save(\"movie.mp4\")\n", + "#\n", + "# or\n", + "#\n", + "# writer = animation.FFMpegWriter(\n", + "# fps=15, metadata=dict(artist='Me'), bitrate=1800)\n", + "# ani.save(\"movie.mp4\", writer=writer)\n", + "\n", + "plt.close(ani._fig)\n", + "\n", + "# Call function to display the animation\n", + "HTML(ani.to_html5_video())" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "atari_env", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/pymdp/jax/envs/generalized_tmaze.py b/pymdp/jax/envs/generalized_tmaze.py index cf62216b..74419f2e 100644 --- a/pymdp/jax/envs/generalized_tmaze.py +++ b/pymdp/jax/envs/generalized_tmaze.py @@ -6,6 +6,7 @@ import PIL.Image import jax.numpy as jnp +import jax.tree_util as jtu from matplotlib.lines import Line2D @@ -261,6 +262,9 @@ def generate_B(maze_info): ns = P[s, a] B[ns, s, a] = 1 + # add do nothing action + B = np.concatenate([B, np.eye(num_states)[..., None]], -1) + assert np.all(np.logical_or(B == 0, B == 1)) assert np.allclose(B.sum(axis=0), 1) @@ -313,7 +317,7 @@ def generate_D(maze_info): return D -def render(maze_info, env_state): +def render(maze_info, env_state, show_img=True): """ Plots and returns the rendered environment. Parameters @@ -341,6 +345,7 @@ def render(maze_info, env_state): mask = np.isin(maze, [2], invert=True) maze[mask] = 0 + plt.figure() plt.imshow(maze, cmap="gray_r", origin="lower") cmap = plt.get_cmap("tab10") @@ -367,14 +372,7 @@ def render(maze_info, env_state): s=200, alpha=0.5, ) - plt.scatter( - [ri[1] for ri in reward_1_positions], - [ri[0] for ri in reward_1_positions], - marker="o", - color="red", - s=50, - label="Positive", - ) + plt.scatter( [ri[1] for ri in reward_2_positions], [ri[0] for ri in reward_2_positions], @@ -382,9 +380,19 @@ def render(maze_info, env_state): s=200, alpha=0.5, ) + plt.scatter( - [ri[1] for ri in reward_2_positions], - [ri[0] for ri in reward_2_positions], + [ri[1] for ri in reward_1_positions[-1:]], + [ri[0] for ri in reward_1_positions[-1:]], + marker="o", + color="red", + s=50, + label="Positive", + ) + + plt.scatter( + [ri[1] for ri in reward_2_positions[-1:]], + [ri[0] for ri in reward_2_positions[-1:]], marker="o", color="blue", s=50, @@ -404,10 +412,10 @@ def render(maze_info, env_state): handles, labels = plt.gca().get_legend_handles_labels() for i in range(num_cues): - if i == 0: + if i == num_cues - 1: label = "Reward set" else: - label = f"Distractor {i} set" + label = f"Distractor {i + 1} set" patch = Line2D( [0], [0], @@ -433,7 +441,8 @@ def render(maze_info, env_state): buf.seek(0) image = PIL.Image.open(buf) - plt.show() + if show_img: + plt.show() return image @@ -444,15 +453,15 @@ class GeneralizedTMazeEnv(PyMDPEnv): similar to the original T-maze. """ - def __init__(self, env_info): + def __init__(self, env_info, batch_size=1): A, A_dependencies = generate_A(env_info) B, B_dependencies = generate_B(env_info) - print(B_dependencies) D = generate_D(env_info) + expand_to_batch = lambda x: jnp.broadcast_to(jnp.array(x), (batch_size,) + x.shape) params = { - "A": [jnp.expand_dims(jnp.array(x), 0) for x in A], - "B": [jnp.expand_dims(jnp.array(x), 0) for x in B], - "D": [jnp.expand_dims(jnp.array(x), 0) for x in D], + "A": jtu.tree_map(expand_to_batch, list(A)), + "B": jtu.tree_map(expand_to_batch, list(B)), + "D": jtu.tree_map(expand_to_batch, list(D)), } dependencies = {"A": A_dependencies, "B": B_dependencies} From 11a3e4deefd780b3226019123f5140027c04cdce Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 27 Jun 2024 15:22:48 +0200 Subject: [PATCH 141/196] add mctx based mcts planner --- examples/mcts/graph_worlds_demo.ipynb | 2523 +++++++++++++++++++++++++ examples/mcts/grid_world_demo.ipynb | 1646 ++++++++-------- pymdp/jax/planning/mcts.py | 160 ++ 3 files changed, 3449 insertions(+), 880 deletions(-) create mode 100644 examples/mcts/graph_worlds_demo.ipynb create mode 100644 pymdp/jax/planning/mcts.py diff --git a/examples/mcts/graph_worlds_demo.ipynb b/examples/mcts/graph_worlds_demo.ipynb new file mode 100644 index 00000000..b5ef6abe --- /dev/null +++ b/examples/mcts/graph_worlds_demo.ipynb @@ -0,0 +1,2523 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from jax import random as jr, lax, nn\n", + "import jax.tree_util as jtu\n", + "from pymdp.jax.agent import Agent\n", + "from typing import Sequence, Optional\n", + "\n", + "import mctx\n", + "import jax.numpy as jnp\n", + "import chex\n", + "import pygraphviz\n", + "\n", + "from IPython.display import SVG" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Utility function to convert and display the MCTX output to an SVG visualization of the search tree." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def convert_tree_to_graph(\n", + " tree: mctx.Tree,\n", + " action_labels: Optional[Sequence[str]] = None,\n", + " batch_index: int = 0\n", + ") -> pygraphviz.AGraph:\n", + " \"\"\"Converts a search tree into a Graphviz graph.\n", + "\n", + " Args:\n", + " tree: A `Tree` containing a batch of search data.\n", + " action_labels: Optional labels for edges, defaults to the action index.\n", + " batch_index: Index of the batch element to plot.\n", + "\n", + " Returns:\n", + " A Graphviz graph representation of `tree`.\n", + " \"\"\"\n", + " chex.assert_rank(tree.node_values, 2)\n", + " batch_size = tree.node_values.shape[0]\n", + " if action_labels is None:\n", + " action_labels = range(tree.num_actions)\n", + " elif len(action_labels) != tree.num_actions:\n", + " raise ValueError(\n", + " f\"action_labels {action_labels} has the wrong number of actions \"\n", + " f\"({len(action_labels)}). \"\n", + " f\"Expecting {tree.num_actions}.\")\n", + "\n", + " def node_to_str(node_i, reward=0, discount=1):\n", + " return (f\"{node_i}\\n\"\n", + " f\"Reward: {reward:.2f}\\n\"\n", + " f\"Discount: {discount:.2f}\\n\"\n", + " f\"Value: {tree.node_values[batch_index, node_i]:.2f}\\n\"\n", + " f\"Visits: {tree.node_visits[batch_index, node_i]}\\n\")\n", + "\n", + " def edge_to_str(node_i, a_i):\n", + " node_index = jnp.full([batch_size], node_i)\n", + " probs = nn.softmax(tree.children_prior_logits[batch_index, node_i])\n", + " return (f\"{action_labels[a_i]}\\n\"\n", + " f\"Q: {tree.qvalues(node_index)[batch_index, a_i]:.2f}\\n\" # pytype: disable=unsupported-operands # always-use-return-annotations\n", + " f\"p: {probs[a_i]:.2f}\\n\")\n", + "\n", + " graph = pygraphviz.AGraph(directed=True)\n", + "\n", + " # Add root\n", + " graph.add_node(0, label=node_to_str(node_i=0), color=\"green\")\n", + " # Add all other nodes and connect them up.\n", + " for node_i in range(tree.num_simulations):\n", + " for a_i in range(tree.num_actions):\n", + " # Index of children, or -1 if not expanded\n", + " children_i = tree.children_index[batch_index, node_i, a_i]\n", + " if children_i >= 0:\n", + " graph.add_node(\n", + " children_i,\n", + " label=node_to_str(\n", + " node_i=children_i,\n", + " reward=tree.children_rewards[batch_index, node_i, a_i],\n", + " discount=tree.children_discounts[batch_index, node_i, a_i]),\n", + " color=\"red\")\n", + " graph.add_edge(node_i, children_i, label=edge_to_str(node_i, a_i))\n", + "\n", + " return graph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's test it on the graph world example as well." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.envs import GraphEnv\n", + "from pymdp.jax.envs.graph_worlds import generate_connected_clusters\n", + "\n", + "graph, _ = generate_connected_clusters(cluster_size=3, connections=2)\n", + "env = GraphEnv(graph, object_locations=[4], agent_locations=[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "A = [a for a in env.params[\"A\"]]\n", + "B = [b for b in env.params[\"B\"]]\n", + "A_dependencies = env.dependencies[\"A\"]\n", + "B_dependencies = env.dependencies[\"B\"]\n", + "\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "C[1] = C[1].at[:, 1].set(1.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) for b in B]\n", + "D[0] = D[0].at[0, 0].set(100.0)\n", + "D[1] = D[1].at[0, 4].set(10.0)\n", + "D = jtu.tree_map(lambda x: x / x.sum(), D)\n", + "\n", + "\n", + "batch_size = A[0].shape[0]\n", + "\n", + "agent = Agent(\n", + " A,\n", + " B,\n", + " C,\n", + " D,\n", + " None,\n", + " None,\n", + " None,\n", + " A_dependencies=A_dependencies,\n", + " B_dependencies=B_dependencies,\n", + " onehot_obs=False,\n", + " apply_batch=False\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(RecurrentFnOutput(reward=Array([0.46104574], dtype=float32), discount=Array([0.9096863], dtype=float32), prior_logits=Array([[-1.9459101, -1.9459101, -1.9459101, -1.9459101, -1.9459101,\n", + " -1.9459101, -1.9459101]], dtype=float32), value=Array([0.], dtype=float32)), [Array([[1.0000000e+00, 5.3334089e-33, 5.3334089e-33, 5.3334089e-33,\n", + " 3.5491815e-28, 2.2659778e-19, 2.2659778e-19]], dtype=float32), Array([[1.3877806e-17, 6.2499996e-02, 6.2499996e-02, 6.2499996e-02,\n", + " 6.2500000e-01, 6.2499996e-02, 6.2499996e-02, 6.2499996e-02]], dtype=float32)])\n" + ] + } + ], + "source": [ + "import mctx\n", + "from pymdp.jax.planning.mcts import make_aif_recurrent_fn\n", + "\n", + "recurrent_fn = make_aif_recurrent_fn()\n", + "action = jnp.zeros(1, dtype=jnp.int8)\n", + "rng_key = jr.PRNGKey(111)\n", + "\n", + "print(recurrent_fn(agent, rng_key, action, agent.D))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.0034353 0.01554515 0.01554515 0.00123668 0.17865622 0.17621045\n", + " 0.60937107]]\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "0\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.72\n", + "Visits: 33\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "1\n", + "Reward: 0.46\n", + "Discount: 0.91\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "0\n", + "Q: 0.46\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "6\n", + "Reward: 0.57\n", + "Discount: 0.89\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "0->6\n", + "\n", + "\n", + "1\n", + "Q: 0.57\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "5\n", + "Reward: 0.57\n", + "Discount: 0.06\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "0->5\n", + "\n", + "\n", + "2\n", + "Q: 0.57\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "7\n", + "Reward: 0.39\n", + "Discount: 0.92\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "0->7\n", + "\n", + "\n", + "3\n", + "Q: 0.39\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "3\n", + "Reward: 0.63\n", + "Discount: 0.06\n", + "Value: 1.75\n", + "Visits: 12\n", + "\n", + "\n", + "\n", + "0->3\n", + "\n", + "\n", + "4\n", + "Q: 0.74\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "4\n", + "Reward: 0.61\n", + "Discount: 0.88\n", + "Value: 0.15\n", + "Visits: 4\n", + "\n", + "\n", + "\n", + "0->4\n", + "\n", + "\n", + "5\n", + "Q: 0.74\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "2\n", + "Reward: 0.61\n", + "Discount: 0.88\n", + "Value: 0.25\n", + "Visits: 12\n", + "\n", + "\n", + "\n", + "0->2\n", + "\n", + "\n", + "6\n", + "Q: 0.83\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "8\n", + "Reward: 1.00\n", + "Discount: 1.00\n", + "Value: 0.91\n", + "Visits: 11\n", + "\n", + "\n", + "\n", + "3->8\n", + "\n", + "\n", + "0\n", + "Q: 1.91\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "10\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "4->10\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "13\n", + "\n", + "13\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "4->13\n", + "\n", + "\n", + "1\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "9\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "2->9\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "12\n", + "\n", + "12\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 8\n", + "\n", + "\n", + "\n", + "2->12\n", + "\n", + "\n", + "1\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "29\n", + "\n", + "29\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "2->29\n", + "\n", + "\n", + "2\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "11\n", + "\n", + "11\n", + "Reward: 1.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 10\n", + "\n", + "\n", + "\n", + "8->11\n", + "\n", + "\n", + "0\n", + "Q: 1.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "16\n", + "\n", + "16\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "13->16\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "14\n", + "\n", + "14\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "12->14\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "17\n", + "\n", + "17\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "12->17\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "19\n", + "\n", + "19\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "12->19\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "21\n", + "\n", + "21\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "12->21\n", + "\n", + "\n", + "3\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "23\n", + "\n", + "23\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "12->23\n", + "\n", + "\n", + "4\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "25\n", + "\n", + "25\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "12->25\n", + "\n", + "\n", + "5\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "27\n", + "\n", + "27\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "12->27\n", + "\n", + "\n", + "6\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "31\n", + "\n", + "31\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "29->31\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# %%timeit\n", + "root = mctx.RootFnOutput(\n", + " prior_logits=jnp.log(agent.E),\n", + " value=jnp.zeros((batch_size)),\n", + " embedding=agent.D,\n", + ")\n", + "\n", + "policy_output = mctx.gumbel_muzero_policy(\n", + " agent,\n", + " rng_key,\n", + " root,\n", + " recurrent_fn,\n", + " num_simulations=32,\n", + " max_depth=3\n", + ")\n", + "\n", + "tree_gumbel = policy_output.search_tree\n", + "print(policy_output.action_weights)\n", + "\n", + "graph = convert_tree_to_graph(tree_gumbel)\n", + "svg = graph.draw(format='svg', prog='dot').decode(graph.encoding)\n", + "SVG(svg)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.05175781 0.03710938 0.8779297 0.00390625 0.01269531 0.00976562\n", + " 0.00683594]]\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "0\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 1.04\n", + "Visits: 1025\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "1\n", + "Reward: 0.46\n", + "Discount: 0.91\n", + "Value: 0.30\n", + "Visits: 53\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "0\n", + "Q: 0.74\n", + "p: 0.23\n", + "\n", + "\n", + "\n", + "37\n", + "\n", + "37\n", + "Reward: 0.57\n", + "Discount: 0.89\n", + "Value: 0.47\n", + "Visits: 38\n", + "\n", + "\n", + "\n", + "0->37\n", + "\n", + "\n", + "1\n", + "Q: 0.99\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "27\n", + "\n", + "27\n", + "Reward: 0.57\n", + "Discount: 0.89\n", + "Value: 0.56\n", + "Visits: 899\n", + "\n", + "\n", + "\n", + "0->27\n", + "\n", + "\n", + "2\n", + "Q: 1.07\n", + "p: 0.16\n", + "\n", + "\n", + "\n", + "57\n", + "\n", + "57\n", + "Reward: 0.39\n", + "Discount: 0.92\n", + "Value: 0.15\n", + "Visits: 4\n", + "\n", + "\n", + "\n", + "0->57\n", + "\n", + "\n", + "3\n", + "Q: 0.53\n", + "p: 0.11\n", + "\n", + "\n", + "\n", + "36\n", + "\n", + "36\n", + "Reward: 0.63\n", + "Discount: 0.88\n", + "Value: 0.25\n", + "Visits: 13\n", + "\n", + "\n", + "\n", + "0->36\n", + "\n", + "\n", + "4\n", + "Q: 0.85\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "71\n", + "\n", + "71\n", + "Reward: 0.61\n", + "Discount: 0.88\n", + "Value: 0.27\n", + "Visits: 10\n", + "\n", + "\n", + "\n", + "0->71\n", + "\n", + "\n", + "5\n", + "Q: 0.84\n", + "p: 0.11\n", + "\n", + "\n", + "\n", + "72\n", + "\n", + "72\n", + "Reward: 0.61\n", + "Discount: 0.88\n", + "Value: 0.17\n", + "Visits: 7\n", + "\n", + "\n", + "\n", + "0->72\n", + "\n", + "\n", + "6\n", + "Q: 0.76\n", + "p: 0.11\n", + "\n", + "\n", + "\n", + "38\n", + "\n", + "38\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "1->38\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "40\n", + "\n", + "40\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 7\n", + "\n", + "\n", + "\n", + "1->40\n", + "\n", + "\n", + "1\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "2\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 33\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "2\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "47\n", + "\n", + "47\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.23\n", + "Visits: 8\n", + "\n", + "\n", + "\n", + "1->47\n", + "\n", + "\n", + "3\n", + "Q: 0.52\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "52\n", + "\n", + "52\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "1->52\n", + "\n", + "\n", + "4\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "39\n", + "\n", + "39\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "1->39\n", + "\n", + "\n", + "5\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "53\n", + "\n", + "53\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "1->53\n", + "\n", + "\n", + "6\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "283\n", + "\n", + "283\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.30\n", + "Visits: 31\n", + "\n", + "\n", + "\n", + "37->283\n", + "\n", + "\n", + "0\n", + "Q: 0.58\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "363\n", + "\n", + "363\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "37->363\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "362\n", + "\n", + "362\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "37->362\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "164\n", + "\n", + "164\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "37->164\n", + "\n", + "\n", + "3\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "84\n", + "\n", + "84\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "37->84\n", + "\n", + "\n", + "4\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "364\n", + "\n", + "364\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "37->364\n", + "\n", + "\n", + "5\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "400\n", + "\n", + "400\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "37->400\n", + "\n", + "\n", + "6\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "59\n", + "\n", + "59\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.30\n", + "Visits: 863\n", + "\n", + "\n", + "\n", + "27->59\n", + "\n", + "\n", + "0\n", + "Q: 0.58\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "95\n", + "\n", + "95\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.12\n", + "Visits: 5\n", + "\n", + "\n", + "\n", + "27->95\n", + "\n", + "\n", + "1\n", + "Q: 0.12\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "97\n", + "\n", + "97\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.20\n", + "Visits: 6\n", + "\n", + "\n", + "\n", + "27->97\n", + "\n", + "\n", + "2\n", + "Q: 0.20\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "100\n", + "\n", + "100\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.20\n", + "Visits: 6\n", + "\n", + "\n", + "\n", + "27->100\n", + "\n", + "\n", + "3\n", + "Q: 0.20\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "98\n", + "\n", + "98\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.25\n", + "Visits: 7\n", + "\n", + "\n", + "\n", + "27->98\n", + "\n", + "\n", + "4\n", + "Q: 0.25\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "99\n", + "\n", + "99\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.12\n", + "Visits: 5\n", + "\n", + "\n", + "\n", + "27->99\n", + "\n", + "\n", + "5\n", + "Q: 0.12\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "96\n", + "\n", + "96\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.20\n", + "Visits: 6\n", + "\n", + "\n", + "\n", + "27->96\n", + "\n", + "\n", + "6\n", + "Q: 0.20\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "215\n", + "\n", + "215\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "57->215\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "466\n", + "\n", + "466\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "57->466\n", + "\n", + "\n", + "6\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "58\n", + "\n", + "58\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "36->58\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "124\n", + "\n", + "124\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 11\n", + "\n", + "\n", + "\n", + "36->124\n", + "\n", + "\n", + "1\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "105\n", + "\n", + "105\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 9\n", + "\n", + "\n", + "\n", + "71->105\n", + "\n", + "\n", + "2\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "229\n", + "\n", + "229\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "72->229\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "406\n", + "\n", + "406\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 4\n", + "\n", + "\n", + "\n", + "72->406\n", + "\n", + "\n", + "1\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "106\n", + "\n", + "106\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "72->106\n", + "\n", + "\n", + "6\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "42\n", + "\n", + "42\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "40->42\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "44\n", + "\n", + "44\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "40->44\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "41\n", + "\n", + "41\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "40->41\n", + "\n", + "\n", + "3\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "43\n", + "\n", + "43\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "40->43\n", + "\n", + "\n", + "4\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "46\n", + "\n", + "46\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "40->46\n", + "\n", + "\n", + "5\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "45\n", + "\n", + "45\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "40->45\n", + "\n", + "\n", + "6\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "3\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 5\n", + "\n", + "\n", + "\n", + "2->3\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "9\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 4\n", + "\n", + "\n", + "\n", + "2->9\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "6\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 4\n", + "\n", + "\n", + "\n", + "2->6\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "5\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 5\n", + "\n", + "\n", + "\n", + "2->5\n", + "\n", + "\n", + "3\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "7\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 4\n", + "\n", + "\n", + "\n", + "2->7\n", + "\n", + "\n", + "4\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "4\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 5\n", + "\n", + "\n", + "\n", + "2->4\n", + "\n", + "\n", + "5\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "8\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 5\n", + "\n", + "\n", + "\n", + "2->8\n", + "\n", + "\n", + "6\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "48\n", + "\n", + "48\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "47->48\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "49\n", + "\n", + "49\n", + "Reward: 0.31\n", + "Discount: 0.93\n", + "Value: 0.00\n", + "Visits: 6\n", + "\n", + "\n", + "\n", + "47->49\n", + "\n", + "\n", + "5\n", + "Q: 0.31\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "332\n", + "\n", + "332\n", + "Reward: 0.31\n", + "Discount: 0.93\n", + "Value: 0.00\n", + "Visits: 30\n", + "\n", + "\n", + "\n", + "283->332\n", + "\n", + "\n", + "2\n", + "Q: 0.31\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "111\n", + "\n", + "111\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 5\n", + "\n", + "\n", + "\n", + "59->111\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "102\n", + "\n", + "102\n", + "Reward: 0.31\n", + "Discount: 0.93\n", + "Value: 0.00\n", + "Visits: 418\n", + "\n", + "\n", + "\n", + "59->102\n", + "\n", + "\n", + "1\n", + "Q: 0.31\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "115\n", + "\n", + "115\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 5\n", + "\n", + "\n", + "\n", + "59->115\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "61\n", + "\n", + "61\n", + "Reward: 0.31\n", + "Discount: 0.93\n", + "Value: 0.00\n", + "Visits: 419\n", + "\n", + "\n", + "\n", + "59->61\n", + "\n", + "\n", + "3\n", + "Q: 0.31\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "113\n", + "\n", + "113\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 5\n", + "\n", + "\n", + "\n", + "59->113\n", + "\n", + "\n", + "4\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "114\n", + "\n", + "114\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 5\n", + "\n", + "\n", + "\n", + "59->114\n", + "\n", + "\n", + "5\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "60\n", + "\n", + "60\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 5\n", + "\n", + "\n", + "\n", + "59->60\n", + "\n", + "\n", + "6\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "610\n", + "\n", + "610\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "95->610\n", + "\n", + "\n", + "0\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "198\n", + "\n", + "198\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "95->198\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "395\n", + "\n", + "395\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "95->395\n", + "\n", + "\n", + "5\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "396\n", + "\n", + "396\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 4\n", + "\n", + "\n", + "\n", + "97->396\n", + "\n", + "\n", + "0\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "201\n", + "\n", + "201\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "97->201\n", + "\n", + "\n", + "3\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "401\n", + "\n", + "401\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 4\n", + "\n", + "\n", + "\n", + "100->401\n", + "\n", + "\n", + "0\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "200\n", + "\n", + "200\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "100->200\n", + "\n", + "\n", + "5\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "204\n", + "\n", + "204\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 6\n", + "\n", + "\n", + "\n", + "98->204\n", + "\n", + "\n", + "0\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "611\n", + "\n", + "611\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "99->611\n", + "\n", + "\n", + "0\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "398\n", + "\n", + "398\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "99->398\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "205\n", + "\n", + "205\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "99->205\n", + "\n", + "\n", + "4\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "399\n", + "\n", + "399\n", + "Reward: 0.30\n", + "Discount: 0.94\n", + "Value: 0.00\n", + "Visits: 4\n", + "\n", + "\n", + "\n", + "96->399\n", + "\n", + "\n", + "0\n", + "Q: 0.30\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "199\n", + "\n", + "199\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "96->199\n", + "\n", + "\n", + "3\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "800\n", + "\n", + "800\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "466->800\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "173\n", + "\n", + "173\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "124->173\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "202\n", + "\n", + "202\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "124->202\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "230\n", + "\n", + "230\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "124->230\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "397\n", + "\n", + "397\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "124->397\n", + "\n", + "\n", + "3\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "284\n", + "\n", + "284\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "124->284\n", + "\n", + "\n", + "4\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "140\n", + "\n", + "140\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "124->140\n", + "\n", + "\n", + "5\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "365\n", + "\n", + "365\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "124->365\n", + "\n", + "\n", + "6\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "112\n", + "\n", + "112\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "105->112\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "366\n", + "\n", + "366\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "105->366\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "155\n", + "\n", + "155\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "105->155\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "256\n", + "\n", + "256\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "105->256\n", + "\n", + "\n", + "3\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "678\n", + "\n", + "678\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "105->678\n", + "\n", + "\n", + "4\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "203\n", + "\n", + "203\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "105->203\n", + "\n", + "\n", + "5\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "416\n", + "\n", + "416\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "105->416\n", + "\n", + "\n", + "6\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "966\n", + "\n", + "966\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "406->966\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "713\n", + "\n", + "713\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "406->713\n", + "\n", + "\n", + "4\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "\n", + "462\n", + "\n", + "462\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "406->462\n", + "\n", + "\n", + "5\n", + "Q: 0.00\n", + "p: 0.14\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# %%timeit\n", + "root = mctx.RootFnOutput(\n", + " prior_logits=jnp.log(agent.E),\n", + " value=jnp.zeros((batch_size)),\n", + " embedding=agent.D,\n", + ")\n", + "\n", + "policy_output = mctx.muzero_policy(\n", + " agent,\n", + " rng_key,\n", + " root,\n", + " recurrent_fn=recurrent_fn,\n", + " num_simulations=1024,\n", + " max_depth=3\n", + ")\n", + "\n", + "tree = policy_output.search_tree\n", + "print(policy_output.action_weights)\n", + "\n", + "graph = convert_tree_to_graph(tree)\n", + "svg = graph.draw(format='svg', prog='dot').decode(graph.encoding)\n", + "SVG(svg)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "stochastic_muzero_policy() missing 2 required positional arguments: 'decision_recurrent_fn' and 'chance_recurrent_fn'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m/home/tverbele/Code/python/hackaton/pymdp/examples/mcts/graph_worlds_demo.ipynb Cell 10\u001b[0m line \u001b[0;36m9\n\u001b[1;32m 1\u001b[0m root \u001b[39m=\u001b[39m mctx\u001b[39m.\u001b[39mRootFnOutput(\n\u001b[1;32m 2\u001b[0m prior_logits\u001b[39m=\u001b[39mjnp\u001b[39m.\u001b[39mlog(agent\u001b[39m.\u001b[39mE),\n\u001b[1;32m 3\u001b[0m value\u001b[39m=\u001b[39mjnp\u001b[39m.\u001b[39mzeros((batch_size)),\n\u001b[1;32m 4\u001b[0m embedding\u001b[39m=\u001b[39magent\u001b[39m.\u001b[39mD,\n\u001b[1;32m 5\u001b[0m )\n\u001b[1;32m 7\u001b[0m n_pi \u001b[39m=\u001b[39m \u001b[39mlen\u001b[39m(agent\u001b[39m.\u001b[39mpolicies)\n\u001b[0;32m----> 9\u001b[0m mctx\u001b[39m.\u001b[39;49mstochastic_muzero_policy(\n\u001b[1;32m 10\u001b[0m agent,\n\u001b[1;32m 11\u001b[0m rng_key,\n\u001b[1;32m 12\u001b[0m root,\n\u001b[1;32m 13\u001b[0m num_simulations\u001b[39m=\u001b[39;49m\u001b[39m512\u001b[39;49m,\n\u001b[1;32m 14\u001b[0m max_depth\u001b[39m=\u001b[39;49m\u001b[39m3\u001b[39;49m\n\u001b[1;32m 15\u001b[0m )\n", + "\u001b[0;31mTypeError\u001b[0m: stochastic_muzero_policy() missing 2 required positional arguments: 'decision_recurrent_fn' and 'chance_recurrent_fn'" + ] + } + ], + "source": [ + "root = mctx.RootFnOutput(\n", + " prior_logits=jnp.log(agent.E),\n", + " value=jnp.zeros((batch_size)),\n", + " embedding=agent.D,\n", + ")\n", + "\n", + "n_pi = len(agent.policies)\n", + "\n", + "mctx.stochastic_muzero_policy(\n", + " agent,\n", + " rng_key,\n", + " root,\n", + " num_simulations=512,\n", + " max_depth=3\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/mcts/grid_world_demo.ipynb b/examples/mcts/grid_world_demo.ipynb index 41e6598e..28dbdab9 100644 --- a/examples/mcts/grid_world_demo.ipynb +++ b/examples/mcts/grid_world_demo.ipynb @@ -1,5 +1,92 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sofisticated inference\n", + "\n", + "In sofisticated inference the choice probability is computed in an iteartive way, using the following recursive relation for expected free energy \n", + "\n", + "\\begin{equation}\n", + "\\begin{split}\n", + " G(u_\\tau| o_{\\leq\\tau}, u_{<\\tau}) &= - \\ln p(u_{\\tau}|u_{<\\tau}) + E_{Q(o_{\\tau+1}, s_{\\tau+1}|u_{\\leq\\tau}. o_{<\\tau})} \\left[ \\ln \\frac{Q(s_{\\tau+1}|u_{\\leq\\tau}, o_{<\\tau})}{P(o_{\\tau+1}, s_{\\tau+1})} \\right] \\\\ \n", + " &\\:\\:\\: + E_{Q(o_{\\tau+1}|u_{\\leq\\tau}, o_{\\leq\\tau}) Q(u_{\\tau+1}|u_{< \\tau + 1}, o_{\\leq\\tau+1})}\\left[G(u_{\\tau + 1}|o_{\\leq \\tau+1}, u_{<\\tau+1} ) \\right]\\\\ \n", + " Q(u_{\\tau}|o_{\\leq\\tau}, u_{<\\tau}) &= \\text{softmax}(- G(u_{\\tau}|o_{\\leq\\tau}, u_{<\\tau})) \\\\ \n", + " G(u_T|o_{\\leq T}, u_{< T}) &= - \\ln p(u_{T}|u_{< T}) + E_{Q(o_{T+1}, s_{T+1}|u_{\\leq T}, o_{< T})} \\left[ \\ln \\frac{Q(s_{T+1}|u_{\\leq T}, o_{< T})}{P(o_{T + 1}, s_{T + 1})} \\right]\n", + "\\end{split}\n", + "\\end{equation}\n", + "\n", + "where we use subscript $" ] @@ -172,7 +227,7 @@ " # Set the initial position\n", " M[2,2] = 1\n", " \n", - " else:\n", + " elif size == 'large':\n", " M = np.zeros((7, 5))\n", "\n", " # Set the reward locations\n", @@ -193,15 +248,48 @@ "\n", " # Set the initial position\n", " M[3,2] = 1\n", + " \n", + " else:\n", + " M = np.zeros((10, 10))\n", + " # Set the reward locations\n", + " M[8,8] = 4\n", + " M[8,7] = 5\n", + " M[7,8] = 7\n", + " M[6,8] = 8\n", + " M[8,6] = 10\n", + " M[7,7] = 11\n", + " M[7,6] = 13\n", + " M[6,7] = 14\n", + " M[8,5] = 16\n", + " M[5,8] = 17\n", + " M[6,6] = 19\n", + " M[6,5] = 20\n", + " M[5,6] = 22\n", + " M[5,7] = 23\n", + " M[5,5] = 25\n", + " M[5,4] = 26\n", + " M[6,0] = 28\n", + " M[5,1] = 29\n", + " # Set the cue locations\n", + " M[2,6] = 3\n", + " M[2,7] = 6\n", + " M[2,8] = 9\n", + " M[1,3] = 12\n", + " M[1,7] = 15\n", + " M[1,4] = 18\n", + " M[1,5] = 21\n", + " M[1,6] = 24\n", + " M[5,0] = 27\n", + " # Set the initial position\n", + " M[0,0] = 1\n", "\n", " return M\n", "\n", "M = get_maze_matrix('medium')\n", - "env_info = parse_maze(M)\n", - "tmaze_env = GeneralizedTMazeEnv(env_info, batch_size=3)\n", + "env_info_m = parse_maze(M)\n", + "tmaze_env_m = GeneralizedTMazeEnv(env_info_m, batch_size=5)\n", "\n", - "images = []\n", - "images.append( render(env_info, tmaze_env) )" + "render(env_info_m, tmaze_env_m);" ] }, { @@ -210,96 +298,58 @@ "source": [ "#### Create the agent. \n", "\n", - "The PyMDPEnv class consists of a params dict that contains the A, B, and D vectors of the environment. We initialize our agent using the same parameters. This means that the agent has full knowledge about the environment transitions, and likelihoods. We initialize the agent with a flat prior, i.e. it does not know where it, or the reward is. Finally, we set the C vector to have a preference only over the rewarding observation of cue-reward pair 1 (i.e. C[1][1] = 1 and zero for other values). " + "The PyMDPEnv class consists of a params dict that contains the A, B, and D vectors of the environment. We initialize our agent using the same parameters. This means that the agent has full knowledge about the environment transitions, and likelihoods. We initialize the agent with a flat prior, i.e. it does not know where it, or the reward is. Finally, we set the C vector to have a preference only over the rewarding observation of cue-reward pair 1 (i.e. C[-1] = [0, 1, -2] and zero for all other modalities). " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[0], [1], [2], [3]]\n" - ] - } - ], + "outputs": [], "source": [ - "A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", - "B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", - "A_dependencies = tmaze_env.dependencies[\"A\"]\n", - "B_dependencies = tmaze_env.dependencies[\"B\"]\n", - "\n", - "# [position], [cue], [reward]\n", - "C = [jnp.zeros(a.shape[:2]) for a in A]\n", - "\n", - "rewarding_modality = -1 # 2 + env_info[\"num_cues\"]\n", - "\n", - "C[rewarding_modality] = C[rewarding_modality].at[:, 1].set(1.0)\n", - "C[rewarding_modality] = C[rewarding_modality].at[:, 2].set(-2.0)\n", - "\n", - "\n", - "D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", - "\n", - "agent = AIFAgent(\n", - " A, B, C, D, \n", - " E=None,\n", - " pA=None,\n", - " pB=None,\n", - " policy_len=1,\n", - " A_dependencies=A_dependencies, \n", - " B_dependencies=B_dependencies,\n", - " use_utility=True,\n", - " use_states_info_gain=True,\n", - " sampling_mode='full'\n", - ")\n", + "def make_aif_agent(tmaze_env):\n", + " A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", + " B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", + " A_dependencies = tmaze_env.dependencies[\"A\"]\n", + " B_dependencies = tmaze_env.dependencies[\"B\"]\n", + "\n", + " # [position], [cue], [reward]\n", + " C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "\n", + " rewarding_modality = -1 # 2 + env_info[\"num_cues\"]\n", + "\n", + " C[rewarding_modality] = C[rewarding_modality].at[:, 1].set(1.0)\n", + " C[rewarding_modality] = C[rewarding_modality].at[:, 2].set(-2.0)\n", + "\n", + " # uncomment to normalize C. For now this changes the behaviour of the agent. \n", + " # C = jtu.tree_map(lambda x: x - logsumexp(x, -1, keepdims=True), C)\n", + "\n", + " D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", + "\n", + " agent = AIFAgent(\n", + " A, B, C, D, \n", + " E=None,\n", + " pA=None,\n", + " pB=None,\n", + " policy_len=1,\n", + " A_dependencies=A_dependencies, \n", + " B_dependencies=B_dependencies,\n", + " use_utility=True,\n", + " use_states_info_gain=True,\n", + " sampling_mode='full',\n", + " apply_batch=False\n", + " )\n", "\n", - "print(B_dependencies)" + " return agent" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### MCTS based policy search" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "import mctx\n", - "from tmp_mcts import make_aif_recurrent_fn\n", + "### MCTS based policy search\n", "\n", - "max_depth = 6\n", - "num_simulations = 4096\n", - "\n", - "def si_policy(rng_key, agent, beliefs):\n", - " \n", - " # remove time dimension \n", - " embedding = jtu.tree_map(lambda x: x[:, 0], beliefs)\n", - " root = mctx.RootFnOutput(\n", - " prior_logits=jnp.log(agent.E),\n", - " value=jnp.zeros((agent.batch_size)),\n", - " embedding=embedding,\n", - " )\n", - "\n", - " recurrent_fn = make_aif_recurrent_fn()\n", - "\n", - " policy_output = mctx.gumbel_muzero_policy(\n", - " agent,\n", - " rng_key,\n", - " root,\n", - " recurrent_fn,\n", - " num_simulations=num_simulations,\n", - " max_depth=max_depth\n", - " )\n", - "\n", - " return policy_output.action_weights" + "Here we defined the sofisticated active inference monte-carlo tree search policies using the [mctx](https://github.com/google-deepmind/mctx) package for google deep mind. Although other algorithms are provided in mctx package here we will use only Gumbel based planning algorithm intoroduced in [Policy improvement by planning with Gumbel](https://openreview.net/forum?id=bERaNdoegnO)." ] }, { @@ -311,23 +361,32 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ - "timesteps = 12\n", + "%%capture\n", + "images = [render(env_info_m, tmaze_env_m)]\n", + "\n", + "timesteps = 10\n", "key = jr.PRNGKey(0)\n", - "_, info, _ = rollout(si_policy, agent, tmaze_env, num_timesteps=timesteps, rng_key=key)" + "agent = make_aif_agent(tmaze_env_m)\n", + "_, info, _ = rollout(agent, tmaze_env_m, num_timesteps=timesteps, rng_key=key, policy_search=mcts_policy_search(max_depth=5, num_simulations=4096))\n", + "\n", + "for t in range(timesteps):\n", + " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", + " plt.figure()\n", + " images.append( np.array(render(env_info_m, env_state, show_img=False)) )" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { - "image/png": "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rvVWFU2LSKtrmkbOUutao56rRVTbtSqbFtH4XUupaRG6lpId+vsAeuuFF16I7u7uaG1t7bG9tbU1Vq5c2U9Hte1qtVqcd955ceyxx8ahhx5a6tiPPPJITJ48OV577bXYZZdd4rbbbotDDjmklLFvvfXWePjhh7frngJbMmnSpLj55pvjoIMOimeffTbmzZsXxx13XDz66KOx6667bvf4Tz31VFx33XXR3t4en/jEJ+LBBx+Mj3/84zF48OCYMWNGCZ+gp9tvvz1eeuml+MhHPlLamBdddFGsW7cuxo4dG83NzdHd3R2f+cxn4rTTTitl/F133TUmT54cl112WRx88MHR2toa3/jGN2Lp0qVx4IEHlrKPv7Z69eqIiE3+bP/51yBFutY7VTYtQtfqUUXTItLqmqaRs5S61qjnahHVdq3qpkU0ftdSalqErqWkYSb/UjNr1qx49NFHK5mdP+igg2LFihWxdu3a+Pa3vx0zZsyI++67b7uj8rvf/S5mz54dixcvfsM3DWX5629EDj/88Jg0aVLsu+++8c1vfjM++tGPbvf4tVotJkyYEJdffnlERBx55JHx6KOPxsKFCyuZ/PvqV78a733ve2PUqFGljfnNb34z/uu//ituueWWePvb3x4rVqyI8847L0aNGlXaZ/j6178ep59+eowePTqam5vjqKOOilNPPTWWL19eyvhAeqrqWlVNi9C1elXRtAhdAwaeRjxXi6i+a1U3LaLxu6ZpDFQNc9nvsGHDorm5OdasWdNj+5o1a2LEiBH9dFTb5pxzzonvf//7cc8998Ree+1V+viDBw+OAw88MMaPHx+dnZ0xbty4+NKXvrTd4y5fvjyee+65OOqoo2KHHXaIHXbYIe677764+uqrY4cddoju7u4Sjr6n3XffPd72trfFk08+Wcp4I0eOfENYDz744NKXq0dE/Pa3v40f/ehHccYZZ5Q67gUXXBAXXXRRfPCDH4zDDjssPvzhD8ecOXOis7OztH0ccMABcd9998Urr7wSv/vd72LZsmXx+uuvx/7771/aPv7szz+/KfxsQz10rXeqalqErtWjqqZFpNU1TSNnqXStUc/VIvq+a2U3LaLxu5ZS0yJ0LSUNM/k3ePDgGD9+fCxZsmTjtlqtFkuWLCn9HglVKYoizjnnnLjtttvixz/+cey33359st9arRZdXV3bPc4JJ5wQjzzySKxYsWLja8KECXHaaafFihUrorm5uYSj7emVV16JX//61zFy5MhSxjv22GPj8ccf77HtiSeeiH333beU8f/aTTfdFMOHD4+TTjqp1HFfffXVGDSo549uc3Nz1Gq1UvcTEbHzzjvHyJEj4w9/+EPcfffd8f73v7/0fey3334xYsSIHj/b69ati5/97GcN87MN20LXtk1ZTYvQtXpU1bSItLqmaeSs0bvW6OdqEX3ftbKbFtH4XUupaRG6lpKGuuy3vb09ZsyYERMmTIiJEyfG/PnzY/369TFz5sxSxn/llVd6fGvx9NNPx4oVK+LNb35z7LPPPts9/qxZs+KWW26J//7v/45dd9114zXyQ4cOjZ122mm7x4+ImDt3brz3ve+NffbZJ15++eW45ZZb4t5774277757u8fedddd33DPi5133jn23HPP0u6Fcf7558fUqVNj3333jd///vfR0dERzc3Nceqpp5Yy/pw5c+KYY46Jyy+/PD7wgQ/EsmXL4vrrr4/rr7++lPH/rFarxU033RQzZsyIHXYo98ds6tSp8ZnPfCb22WefePvb3x4///nP46qrrorTTz+9tH3cfffdURRFHHTQQfHkk0/GBRdcEGPHjt3mn7Wt/Wydd9558W//9m/x1re+Nfbbb7+4+OKLY9SoUXHyySeXMv6LL74Yq1atit///vcRERv/D8WIESN8Y0W/0rUtq7JpEbrWW1U2LaLxulZ103qzD11joGrkrjX6uVpE9V2rumkRjd+1RmtahHO1bPTno4a3xZe//OVin332KQYPHlxMnDix+OlPf1ra2Pfcc08REW94zZgxo5TxNzV2RBQ33XRTKeMXRVGcfvrpxb777lsMHjy4eMtb3lKccMIJxQ9/+MPSxv9bZT46viiKYtq0acXIkSOLwYMHF6NHjy6mTZtWPPnkk6WNXxRF8b3vfa849NBDi5aWlmLs2LHF9ddfX+r4RVEUd999dxERxeOPP1762OvWrStmz55d7LPPPsWQIUOK/fffv/jkJz9ZdHV1lbaPRYsWFfvvv38xePDgYsSIEcWsWbOKl156aZvH29rPVq1WKy6++OKitbW1aGlpKU444YS6/uy2Nv5NN920yV/v6OjY5s8EZdG1zevrphWFrm1KlU0risbrWtVN680+dI2BrFG7luK5WlGU27W+aFpRNHbXGq1pReFcLRdNRVEUdc8YAgAAAAADXsPc8w8AAAAAqI/JPwAAAABIlMk/AAAAAEiUyT8AAAAASJTJPwAAAABIlMk/AAAAAEiUyT8AAAAASJTJPwAAAABIlMk/AAAAAEiUyT8AAAAASJTJPwAAAABIlMk/AAAAAEjU/w/b1Hdu1VgTDQAAAABJRU5ErkJggg==", + "image/png": "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EXH33XfH17/+9Tj00EMrHysi4u/+7u/iySef3Py68847Kx3vD3/4Qxx55JExZMiQuP322+M3v/lNfPnLX4499tijsjHvvvvuXp9x0aJFERFx0kknVTbmF77whbjyyivj8ssvjwcffDC+8IUvxBe/+MX42te+VtmYEREf/ehHY9GiRfHtb387fvWrX8Vxxx0X7e3tsWbNmkrHhR2VQ9MiGtO1RjYtQteqoGu6xuCna7pWhhyaFqFrujZAiiY1efLkYtasWZv/u6enp9hzzz2Lrq6uARk/Ioqbb755QMZ62VNPPVVERPGzn/1sQMctiqLYY489im984xuVjvHss88Wb3zjG4tFixYVxxxzTHHuuedWOl5nZ2cxYcKESsf4WxdccEHxjne8Y0DH/FvnnntuccABBxT1er2yMY4//vjitNNO67Xtn/7pn4pTTjmlsjGfe+65orW1tfjRj37Ua/vb3va24tOf/nRl40IZcmxaUTSuawPRtKLQtYGiazD46Jqu7ahcm1YUukY1mnLl36ZNm2L58uXR3t6+eVtLS0u0t7fH0qVLG3hk1Vq/fn1ERLzuda8bsDF7enripptuio0bN8bUqVMrHWvWrFlx/PHH9/rftWqPPPJI7LnnnrH//vvHKaecEqtXr650vB/84AcxadKkOOmkk2LkyJHx1re+Na655ppKx/xrmzZtiu985ztx2mmnRa1Wq2ycI444IhYvXhwPP/xwRETcf//9ceedd8bf//3fVzbmSy+9FD09PTFs2LBe23feeefKvyWEHZFr0yIGvmsD2bQIXRsIugaDj67pWllya1qErlGhRs8+bo81a9YUEVHcddddvbaff/75xeTJkwfkGGKAv03q6ekpjj/++OLII48ckPF++ctfFrvsskvR2tpaDB8+vLj11lsrHe/GG28sDj744OL5558viqIYkBUSt912W/Hd7363uP/++4uFCxcWU6dOLfbZZ59iw4YNlY3Z1tZWtLW1FXPmzCnuvffe4utf/3oxbNiw4vrrr69szL+2YMGCorW1tVizZk2l4/T09BQXXHBBUavVip122qmo1WrFJZdcUumYRVEUU6dOLY455phizZo1xUsvvVR8+9vfLlpaWoqDDjqo8rFhe+XYtKIY2K4NdNOKQtd0rRy6RjPSNV0rQ45NKwpdozom/7bTQAflzDPPLPbdd9/id7/73YCM193dXTzyyCPFPffcU8yePbsYMWJE8etf/7qSsVavXl2MHDmyuP/++zdvG4iTpL/1hz/8odhtt90qXTI/ZMiQYurUqb22nXPOOcXb3/72ysb8a8cdd1zxD//wD5WPc+ONNxZ77bVXceONNxa//OUvi29961vF6173usrD+eijjxZHH310ERFFa2trcfjhhxennHJKMX78+ErHhR2RY9OKYmC7NpBNKwpd07Xy6BrNSNd0rQo5NK0odI3qNOXkX3d3d9Ha2vqKf9BnzJhRvPe97x2QYxjIoMyaNavYa6+9ilWrVg3IeFty7LHHFmeccUYl+7755ps3/+V/+RURRa1WK1pbW4uXXnqpknG3ZNKkScXs2bMr2/8+++xTfOQjH+m17Yorrij23HPPysZ82RNPPFG0tLQUt9xyS+Vj7bXXXsXll1/ea9vFF19cvOlNb6p87KIoij/96U/F//3f/xVFURTvf//7i/e85z0DMi5sj9yaVhSN71qVTSsKXdO18ukazUTXBl4uXUu5aUWha1SrKe/5N3To0Jg4cWIsXrx487Z6vR6LFy8ekHsdDJSiKOLss8+Om2++OX7yk5/Efvvt17Bjqdfr0d3dXcm+jz322PjVr34VK1as2PyaNGlSnHLKKbFixYpobW2tZNy/9ac//Skee+yxGDNmTGVjHHnkkfHQQw/12vbwww/HvvvuW9mYL7vuuuti5MiRcfzxx1c+1nPPPRctLb3/eWltbY16vV752BERu+yyS4wZMyb+8Ic/xB133BHve9/7BmRc2B65NC1i8HStyqZF6JqulU/XaCa6NvBy6FrqTYvQNSrW4MnH7XbTTTcVbW1txfXXX1/85je/Kc4444xi9913L9auXVvZmM8++2xx3333Fffdd18REcVll11W3HfffcVvf/vbSsY766yziuHDhxdLliwpnnzyyc2v5557rpLxXjZ79uziZz/7WfH4448Xv/zlL4vZs2cXtVqt+PGPf1zpuH9tIJaRf/zjHy+WLFlSPP7448X//u//Fu3t7cWIESOKp556qrIxly1bVuy0007F5z//+eKRRx4p/uu//qt4zWteU3znO9+pbMyi+PM9HfbZZ5/iggsuqHScl5166qnF2LFjix/96EfF448/Xnz/+98vRowYUXzyk5+sdNyFCxcWt99+e7Fq1arixz/+cTFhwoRiypQpxaZNmyodF3ZUDk0risZ0bTA0rSh0rWy6pmsMbrqmazsqp6YVha7pWvWadvKvKIria1/7WrHPPvsUQ4cOLSZPnlz84he/qHS8n/70p0VEvOJ16qmnVjLelsaKiOK6666rZLyXnXbaacW+++5bDB06tHjDG95QHHvsscnFpCiKYvr06cWYMWOKoUOHFmPHji2mT59ePProo5WOWRRF8cMf/rA4+OCDi7a2tmL8+PHF1VdfXfmYd9xxRxERxUMPPVT5WEVRFBs2bCjOPffcYp999imGDRtW7L///sWnP/3poru7u9JxFyxYUOy///7F0KFDi9GjRxezZs0q/vjHP1Y6JpQl9aYVRWO6NhiaVhS6VjZdg8FP16qRS9dyalpR6BrVqxVFUVS4sBAAAAAAaJCmvOcfAAAAALBtJv8AAAAAIFEm/wAAAAAgUSb/AAAAACBRJv8AAAAAIFEm/wAAAAAgUSb/AAAAACBRJv8AAAAAIFEm/wAAAAAgUSb/AAAAACBRJv8AAAAAIFEm/wAAAAAgUf8/mUbE/lMqQ8IAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -337,9 +396,7 @@ } ], "source": [ - "import seaborn as sns\n", - "import matplotlib.pyplot as plt\n", - "\n", + "# plot q(u_t) for each time step\n", "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", "for i in range(3):\n", " sns.heatmap(info['qpi'][i].T, cmap='viridis', ax=axes[i])" @@ -347,12 +404,12 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { - "image/png": "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zMxMlZaWauvWrbaNvXHjRlVVVSk/P18ej0crVqywbWxJ8vv9GjVqlLKzs5Wbm6tJkyZp9+7dto0/f/58DR8+XD179lTPnj01evRovfjii7aN/68efvhheTwezZw507Yx77vvPnk8nrCtqKjItvElad++ffrGN76hXr16KSsrS5deeqm2bdtm2/iDBg3q9B48Ho9qampsGb+9vV2zZs1SYWGhsrKyNHjwYD3wwAOy89lAH330kWbOnKmBAwcqKytLY8aM0auvvhrzeKf6u2VZlmbPnq1+/fopKytL5eXlevPNN20b/7nnnlNFRYV69eolj8ejxsbGmN8LYDe61jW61j3x7JobmibZ2zWaBnSNpp1cIrtG0yJzQ9f4txpi4ejFwKVLl6q2tlZz5szRjh07VFxcrAkTJui9996zZfy2tjYVFxervr7elvH+1YYNG1RTU6MtW7aooaFBx48fV0VFhdra2mwZf8CAAXr44Ye1fft2bdu2TZ///Od1zTXX6C9/+Yst43/aq6++qp///OcaPny47WMPHTpUBw4c6Ng2bdpk29gffvihxo4dqzPOOEMvvvii/t//+3969NFHde6559p2jldffTVs/g0NDZKka6+91pbx586dq/nz5+vxxx/XX//6V82dO1ePPPKIfvrTn9oyviTdfPPNamho0C9/+Uu9/vrrqqioUHl5ufbt2xfTeKf6u/XII4/oJz/5iRYsWKBXXnlFZ511liZMmKCjR4/aMn5bW5uuvPJKzZ07N6b5A/FC106Orp1avLvmhqZJ9naNpgGR0bRTS1TXaFrX3NA1/q2GmFgOdsUVV1g1NTUdP7e3t1v5+fmW3++3/VySrOXLl9s+7qe99957liRrw4YNcTvHueeea/3Xf/2XrWN+9NFH1oUXXmg1NDRYn/vc56w77rjDtrHnzJljFRcX2zbev7r77rutK6+8Mm7jR3LHHXdYgwcPtkKhkC3jTZw40brpppvC9n31q1+1pkyZYsv4R44csdLT061Vq1aF7b/88sut733ve6c9/r/+3QqFQlZeXp71wx/+sGPf4cOHLa/Xaz377LOnPf6nNTU1WZKs1157LepxgXiga9Gja+ES3TWnNc2y4ts1mgZ8gqbFxu6u0bToOK1r/FsNsXLslYHHjh3T9u3bVV5e3rEvLS1N5eXl2rx5cxJnFrtAICBJysnJsX3s9vZ2LVmyRG1tbRo9erStY9fU1GjixIlh/7uw05tvvqn8/Hydf/75mjJlivbu3Wvb2CtXrtTIkSN17bXXKjc3VyUlJXryySdtG/9fHTt2TL/61a900003yePx2DLmmDFjtHbtWr3xxhuSpD/96U/atGmTKisrbRn/f//3f9Xe3q7MzMyw/VlZWbZ+8ndCU1OTmpubw/7vyefzqbS01LF/t4HuoGvRoWuRJbJrTmyalNiu0TSYiqZFL15do2nd58Su8W81xCoj2ROI1aFDh9Te3q6+ffuG7e/bt6927dqVpFnFLhQKaebMmRo7dqyGDRtm27ivv/66Ro8eraNHj+rss8/W8uXLdckll9g2/pIlS7Rjx47TuifByZSWlmrRokUaMmSIDhw4oPvvv1+f/exntXPnTmVnZ5/2+G+//bbmz5+v2tpa3XvvvXr11Vd1++23q0ePHqqurrbhHYRbsWKFDh8+rGnTptk25j333KOWlhYVFRUpPT1d7e3tevDBBzVlyhRbxs/Oztbo0aP1wAMP6OKLL1bfvn317LPPavPmzbrgggtsOcenNTc3S1LEv9snXgPciK51D107uUR2zYlNkxLbNZoGU9G07otn12hadJzYNf6thlg5djHQbWpqarRz507bV++HDBmixsZGBQIB/eY3v1F1dbU2bNhgS2D+9re/6Y477lBDQ0OnTyLs8ulPTIYPH67S0lINHDhQv/71r/XNb37ztMcPhUIaOXKkHnroIUlSSUmJdu7cqQULFsQlME899ZQqKyuVn59v25i//vWv9d///d9avHixhg4dqsbGRs2cOVP5+fm2vYdf/vKXuummm9S/f3+lp6fr8ssv1w033KDt27fbMj4A96Frkbmpa05tmkTXAEQnXk2T4tc1mhY9p3aNpiEWjv2acO/evZWenq6DBw+G7T948KDy8vKSNKvYzJgxQ6tWrdK6des0YMAAW8fu0aOHLrjgAo0YMUJ+v1/FxcX68Y9/bMvY27dv13vvvafLL79cGRkZysjI0IYNG/STn/xEGRkZam9vt+U8n3bOOefooosu0p49e2wZr1+/fp1Ce/HFF9t6efsJ7777rv7whz/o5ptvtnXcu+66S/fcc4+uv/56XXrppbrxxht15513yu/323aOwYMHa8OGDWptbdXf/vY3bd26VcePH9f5559v2zlOOPH31w1/t4Fo0LXuoWsnl6iuOblpUuK6RtNgKprWffHqGk2LjpO7xr/VEAvHLgb26NFDI0aM0Nq1azv2hUIhrV271vZ7B8WLZVmaMWOGli9frpdeekmFhYVxP2coFFIwGLRlrC984Qt6/fXX1djY2LGNHDlSU6ZMUWNjo9LT0205z6e1trbqrbfeUr9+/WwZb+zYsdq9e3fYvjfeeEMDBw60ZfxPW7hwoXJzczVx4kRbxz1y5IjS0sL/KqenpysUCtl6Hkk666yz1K9fP3344Ydas2aNrrnmGtvPUVhYqLy8vLC/2y0tLXrllVcc83cbiAVdiw1dC5eorrmhaVL8u0bTYCqaFju7ukbTouOGrvFvNUTD0V8Trq2tVXV1tUaOHKkrrrhC8+bNU1tbm6ZPn27L+K2trWGfajQ1NamxsVE5OTkqKCg47fFramq0ePFiPf/888rOzu74jr3P51NWVtZpj19XV6fKykoVFBToo48+0uLFi7V+/XqtWbPmtMeWPr4/wb/eM+Oss85Sr169bLuXxne+8x1VVVVp4MCB2r9/v+bMmaP09HTdcMMNtox/5513asyYMXrooYd03XXXaevWrXriiSf0xBNP2DL+CaFQSAsXLlR1dbUyMuz9a1dVVaUHH3xQBQUFGjp0qF577TU99thjuummm2w7x5o1a2RZloYMGaI9e/borrvuUlFRUcx/1071d2vmzJn6wQ9+oAsvvFCFhYWaNWuW8vPzNWnSJFvG/+CDD7R3717t379fkjr+n4y8vDw+0UJS0bWTo2unloiuOb1pkr1do2lAZDTt1OLZNZrWfU7vGv9WQ0yS+ShjO/z0pz+1CgoKrB49elhXXHGFtWXLFtvGXrdunSWp01ZdXW3L+JHGlmQtXLjQlvFvuukma+DAgVaPHj2sPn36WF/4whes3//+97aM3RW7H1c/efJkq1+/flaPHj2s/v37W5MnT7b27Nlj2/iWZVm//e1vrWHDhller9cqKiqynnjiCVvHtyzLWrNmjSXJ2r17t+1jt7S0WHfccYdVUFBgZWZmWueff771ve99zwoGg7adY+nSpdb5559v9ejRw8rLy7Nqamqsw4cPxzzeqf5uhUIha9asWVbfvn0tr9drfeELX4jqz+5U4y9cuDDi63PmzIn5PQF2oWtdo2vdE++uOb1plmVv12ga0DWadnKJ7hpNi8zpXePfaoiFx7IsK+oVRAAAAAAAAACO49h7BgIAAAAAAACIDouBAAAAAAAAgCFYDAQAAAAAAAAMwWIgAAAAAAAAYAgWAwEAAAAAAABDsBgIAAAAAAAAGILFQAAAAAAAAMAQLAYCAAAAAAAAhmAxEAAAAAAAADAEi4EAAAAAAACAIVgMBAAAAAAAAAzBYiAAAAAAAABgiP8PwSumCcuRQn8AAAAASUVORK5CYII=", + "image/png": "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1fbMEgAAB9A0AICX0DUAQEfEvBhYXFwsyzr2kulNN92km266Ke5JAYDnGPZNk1vQNACIE11LSXQNAOJkWNccfZswAOALpl12DgDwNroGAPAS07rm2AtEAAAAAAAAAKQWrgz8irG5X/82LQCIy9fcsgPYjaYBcBRdQ4LRNQCOMqxrXBkIAAAAAAAAGCLmxcD169ervLxcubm58vl8WrZsWcTnBw4c0LRp09SnTx9lZmbqnHPO0fz58+2aLwC4ks+yd4M9aBoAxIempSa6BgDxMa1rMS8GtrS0qLCwUNXV1VE/r6ys1MqVK/XUU0/prbfe0vTp0zVt2jQtX778uCcLAK5l2bzBFjQNAOJE01ISXQOAOBnWtZifGVhWVqaysrKjfv7yyy9rypQpKi4ulvTFq+t/9atfafPmzbrsssvinigAAHajaQAAL6FrAICOsP2ZgSNHjtTy5cu1Z88eWZalNWvWaMeOHSotLbV7KABwDV/Y3g2JQdMAIDqa5k50DQCiM61rtr9N+Je//KVuuukm9enTR506dVJaWpoee+wxjR492u6hAMA9XHK5OCLRNAA4CrrmSnQNAI7CsK45shi4adMmLV++XH379tX69etVUVGh3NxclZSUtDs+FAopFApF7AtbrUrzpds9NQAAYhJr0yS6BgBIXXQNACDZvBj497//XXfeeaeWLl2qcePGSZIGDRqkuro6/exnP4samGAwqLvvvjtiX76+of4aYOfUACCp3PJWKXwpnqZJdA2AGeia+9A1ADg607pm6zMDDx8+rMOHDystLfK06enpCoej3zhdVVWlpqamiC1fBXZOCwCSz7Ls3eC4eJom0TUAhqBprkPXAOAYDOtazFcGHjhwQLt27Wr7uaGhQXV1dcrOzlZeXp4uuOAC3X777crMzFTfvn21bt06/frXv9acOXOins/v98vv90fs45JzAEAi2N00ia4BAJKHrgEAOiLmxcDa2lqNGTOm7efKykpJ0pQpU7Rw4UItXrxYVVVVmjRpkj766CP17dtX9957r37wgx/YN2sAcBnTLjt3C5oGAPGha6mJrgFAfEzrWsyLgcXFxbKOcdljz549tWDBguOaFAB4jmFxcQuaBgBxomspia4BQJwM65qtzwwEAAAAAAAAkLpsfZswACA60y47BwB4G10DAHiJaV1jMRAAEsElb5UCAKBD6BoA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TjRNomsAzGBa12JaDKyoqNCiRYv03HPPKSsrS42NjZKkQCCgzMxMSVJjY6MaGxu1a9cuSdKbb76prKws5eXl8fBaAOYyLC5uQdcAIE50LeXQNAA4DoZ1LabbhOfNm6empiYVFxerV69ebduSJUvajpk/f74GDx6sG2+8UZI0evRoDR48WMuXL7d35gAAHCe6BgDwCpoGAOiomG8T/jqzZ8/W7Nmz450PAHiTYd80uQVdA4A40bWUQ9MA4DgY1rWYFgMBAHEyLC4AAI+jawAALzGsa3G9TRgAAAAAAACA+3BlYJKtev/1hI85Nrcw4WMCblUTtulEdp0HSGHJaJpE14BY0DWg4/i3GpD66Fp8WAwEgAQw7VX1AABvo2sAAC8xrWsx3SYcDAY1bNgwZWVlKScnRxMmTFB9fX3b5x999JFuvvlmnX322crMzFReXp5uueUWNTU12T5xAACOF10DAHgJXQMAdERMi4Hr1q1TRUWFNm3apJqaGh0+fFilpaVqaWmRJL3//vt6//339bOf/Uzbtm3TwoULtXLlSl1//fWOTB4AXMOy7N1gC7oGAHGiaSmJrgFAnAzrWky3Ca9cuTLi54ULFyonJ0dbtmzR6NGjNXDgQP3+979v+7x///6699579f3vf1+ff/65OnXirmQAhgq7IwqmoWsAECe6lpLoGgDEybCuHdfbhI9cTp6dnX3MY7p06UJYAAApj64BALyErgEAoon7v/jhcFjTp0/XqFGjNHDgwKjH7N+/X/fcc49uuummuCcIAJ7gksvFTUbXACAGdC3l0TUAiIFhXYt7MbCiokLbtm3Thg0bon7e3NyscePG6ZxzztHs2bOPep5QKKRQKBSxL2y1Ks2XHu/UACD1GBYXN6JrABADupby6BoAxMCwrsV1m/C0adO0YsUKrVmzRn369Gn3+aeffqqLL75YWVlZWrp0qU444YSjnisYDCoQCERsDdoez7QAAIgLXQMAeAldAwAcS0yLgZZladq0aVq6dKleeukl5efntzumublZpaWl6ty5s5YvX66MjIxjnrOqqkpNTU0RW74KYvstACDV8TbhlETXACBONC0l0TUAiJNhXYvpNuGKigotWrRIzz33nLKystTY2ChJCgQCyszMbAvLwYMH9dRTT6m5uVnNzc2SpO7duys9vf2l5H6/X36/P2Ifl5wD8BzD3k7l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", "text/plain": [ "
" ] @@ -362,6 +419,7 @@ } ], "source": [ + "# plot beliefs over locations for each time steps\n", "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", "for i in range(3):\n", " sns.heatmap(info['qs'][0][i].T, cmap='viridis', ax=axes[i])" @@ -369,96 +427,16 @@ }, { "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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OzXeG/1tffGLX4zrrrsuFi9eHA8//HDsscceMWvWrHjllVcKGX/btm1x9NFHx1VXXbVT+w9l0bXXt7uaFqFrO1J20yJqr2tlN60329A1Bqpa7lpKx2oR5XWtzKZF1H7Xaq1pEY7V+CtZDZk2bVo2b9687n93dXVlo0ePztrb2wvfVkRkd9xxR+Hj/rWNGzdmEZHdf//9pW5n7733zv793/+9sPFefvnl7G1ve1t27733Zscdd1x2wQUXFDb2ggULskmTJhU23t/65Cc/mR199NGljb89F1xwQfbWt741q1arhYx30kknZWeddVaP597//vdnp59+eiHj//GPf8wGDx6cff/73+/x/Dve8Y7s05/+9C6P/7d/W9VqNWtpacmuvvrq7uc2b96cNTY2Zt/+9rd3efy/9vTTT2cRkf3yl7/s87hQBl3ru6KblmW61hdFNy3LartrZTdte9v4a7rGQJNS12r1WC3Lyuta2U3LstrvWi03Lcscq9W7mllB+Oqrr8bKlSujtbW1+7lBgwZFa2trLF++vB/3bOe99NJLERHx5je/uZTxu7q64rbbbott27bFjBkzCht33rx5cdJJJ/X4v0WRHn/88Rg9enSMGzcuTj/99Fi/fn1hY999990xderU+MAHPhD77rtvHHnkkXHTTTcVNv7fevXVV+PWW2+Ns846KyqVSiFjzpw5M5YtWxaPPfZYRET893//dzzwwANx4oknFjL+n/70p+jq6oqmpqYezw8bNqzwM4QREU8//XR0dHT0+P+nESNGxPTp02v2bxt6Q9f6pqymRehab5XRtIi0uqZp1LPUularx2oR5XatzKZF1H7XUmpahK7VmyH9vQO9tWnTpujq6orm5uYezzc3N8dvf/vbftqrnVetVuPCCy+Md73rXXH44YcXOvaaNWtixowZ8corr8Tf/d3fxR133BETJ04sZOzbbrstVq1atUv3OHg906dPj1tuuSXGjx8fzz//fHzmM5+JY445Jn7961/HnnvuucvjP/XUU3HDDTdEW1tbfOpTn4pHHnkkzj///GhoaIg5c+YU8A56uvPOO2Pz5s3xkY98pLAxL7300tiyZUtMmDAhBg8eHF1dXfG5z30uTj/99ELG33PPPWPGjBlx5ZVXxqGHHhrNzc3x7W9/O5YvXx4HH3xwIdv4ax0dHRER2/3b/vPPIEW61jtl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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", - "for i in range(3):\n", - " sns.heatmap(info['qs'][1][i].T, cmap='viridis', ax=axes[i])" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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OzXeG/1tffGLX4zrrrsuFi9eHA8//HDsscceMWvWrHjllVcKGX/btm1x9NFHx1VXXbVT+w9l0bXXt7uaFqFrO1J20yJqr2tlN60329A1Bqpa7lpKx2oR5XWtzKZF1H7Xaq1pEY7V+CtZDZk2bVo2b9687n93dXVlo0ePztrb2wvfVkRkd9xxR+Hj/rWNGzdmEZHdf//9pW5n7733zv793/+9sPFefvnl7G1ve1t27733Zscdd1x2wQUXFDb2ggULskmTJhU23t/65Cc/mR199NGljb89F1xwQfbWt741q1arhYx30kknZWeddVaP597//vdnp59+eiHj//GPf8wGDx6cff/73+/x/Dve8Y7s05/+9C6P/7d/W9VqNWtpacmuvvrq7uc2b96cNTY2Zt/+9rd3efy/9vTTT2cRkf3yl7/s87hQBl3ru6KblmW61hdFNy3LartrZTdte9v4a7rGQJNS12r1WC3Lyuta2U3LstrvWi03Lcscq9W7mllB+Oqrr8bKlSujtbW1+7lBgwZFa2trLF++vB/3bOe99NJLERHx5je/uZTxu7q64rbbbott27bFjBkzCht33rx5cdJJJ/X4v0WRHn/88Rg9enSMGzcuTj/99Fi/fn1hY999990xderU+MAHPhD77rtvHHnkkXHTTTcVNv7fevXVV+PWW2+Ns846KyqVSiFjzpw5M5YtWxaPPfZYRET893//dzzwwANx4oknFjL+n/70p+jq6oqmpqYezw8bNqzwM4QREU8//XR0dHT0+P+nESNGxPTp02v2bxt6Q9f6pqymRehab5XRtIi0uqZp1LPUularx2oR5XatzKZF1H7XUmpahK7VmyH9vQO9tWnTpujq6orm5uYezzc3N8dvf/vbftqrnVetVuPCCy+Md73rXXH44YcXOvaaNWtixowZ8corr8Tf/d3fxR133BETJ04sZOzbbrstVq1atUv3OHg906dPj1tuuSXGjx8fzz//fHzmM5+JY445Jn7961/HnnvuucvjP/XUU3HDDTdEW1tbfOpTn4pHHnkkzj///GhoaIg5c+YU8A56uvPOO2Pz5s3xkY98pLAxL7300tiyZUtMmDAhBg8eHF1dXfG5z30uTj/99ELG33PPPWPGjBlx5ZVXxqGHHhrNzc3x7W9/O5YvXx4HH3xwIdv4ax0dHRER2/3b/vPPIEW61jtlNi1C1/qijKZFpNU1TaOepdS1Wj1Wiyi3a2U3LaL2u5ZS0yJ0rd7UzARhaubNmxe//vWvS5nlHz9+fKxevTpeeuml+M///M+YM2dO3H///bscnt/97ndxwQUXxL333ps7Y1GUvz6zcsQRR8T06dNjzJgx8Z3vfCc++tGP7vL41Wo1pk6dGp///OcjIuLII4+MX//617F48eJSJgi/9rWvxYknnhijR48ubMzvfOc78c1vfjO+9a1vxWGHHRarV6+OCy+8MEaPHl3Ye/jGN74RZ511Vuy3334xePDgeMc73hEf/vCHY+XKlYWMD6SnrK6V1bQIXeurMpoWoWvAwFOLx2oR5Xet7KZF1H7XNI1aVjOXGI8cOTIGDx4cGzZs6PH8hg0boqWlpZ/2auece+658f3vfz/uu+++2H///Qsfv6GhIQ4++OCYMmVKtLe3x6RJk+LLX/7yLo+7cuXK2LhxY7zjHe+IIUOGxJAhQ+L++++P6667LoYMGRJdXV0F7H1Pe+21VxxyyCHxxBNPFDLeqFGjcvE99NBDC18aHxGxbt26+PGPfxxnn312oeNecsklcemll8aHPvShePvb3x5nnHFGfOITn4j29vbCtvHWt7417r///ti6dWv87ne/ixUrVsRrr70W48aNK2wbf/bnv98U/rahL3Std8pqWoSu9UVZTYtIq2uaRj1LpWu1eqwWsfu7VnTTImq/ayk1LULX6k3NTBA2NDTElClTYtmyZd3PVavVWLZsWeH3bChLlmVx7rnnxh133BE/+clP4qCDDtot261Wq9HZ2bnL4xx//PGxZs2aWL16dfdj6tSpcfrpp8fq1atj8ODBBextT1u3bo0nn3wyRo0aVch473rXu2Lt2rU9nnvsscdizJgxhYz/126++ebYd99946STTip03D/+8Y8xaFDPP93BgwdHtVotdDsREXvssUeMGjUqXnzxxbjnnnvi1FNPLXwbBx10ULS0tPT4296yZUs8/PDDNfO3DTtD13ZOUU2L0LW+KKtpEWl1TdOoZ7XetVo/VovY/V0rumkRtd+1lJoWoWv1pqYuMW5ra4s5c+bE1KlTY9q0abFw4cLYtm1bzJ07t5Dxt27d2uPsx9NPPx2rV6+ON7/5zXHggQfu8vjz5s2Lb33rW3HXXXfFnnvu2X3N/ogRI2LYsGG7PH5ExPz58+PEE0+MAw88MF5++eX41re+FT/96U/jnnvu2eWx99xzz9w9OPbYY4/YZ599Crs3x8UXXxwnn3xyjBkzJp577rlYsGBBDB48OD784Q8XMv4nPvGJmDlzZnz+85+PD37wg7FixYr46le/Gl/96lcLGf/PqtVq3HzzzTFnzpwYMqTYP7OTTz45Pve5z8WBBx4Yhx12WPzyl7+Ma6+9Ns4666zCtnHPPfdElmUxfvz4eOKJJ+KSSy6JCRMm7PTf2hv9bV144YXx2c9+Nt72trfFQQcdFJdddlmMHj06TjvttELG/8Mf/hDr16+P5557LiKi+390tLS0OPNFv9K111dm0yJ0rbfKbFpE7XWt7Kb1Zhu6xkBVy12r9WO1iPK7VnbTImq/a7XWtAjHavyV/vwK5Z1x/fXXZwceeGDW0NCQTZs2LXvooYcKG/u+++7LIiL3mDNnTiHjb2/siMhuvvnmQsbPsiw766yzsjFjxmQNDQ3ZW97yluz444/PfvSjHxU2/t867rjjsgsuuKCw8WbPnp2NGjUqa2hoyPbbb79s9uzZ2RNPPFHY+FmWZd/73veyww8/PGtsbMwmTJiQffWrXy10/CzLsnvuuSeLiGzt2rWFj71ly5bsggsuyA488MCsqakpGzduXPbpT3866+zsLGwbt99+ezZu3LisoaEha2lpyebNm5dt3rx5p8d7o7+tarWaXXbZZVlzc3PW2NiYHX/88X367N5o/Jtvvnm7P1+wYMFOvycoiq7t2O5uWpbp2vaU2bQsq72uld203mxD1xjIarVrKR6rZVmxXdsdTcuy2u5arTUtyxyr8ReVLMuyPs8qAgAAAABJqJl7EAIAAAAAxTNBCAAAAAB1zAQhAAAAANQxE4QAAAAAUMdMEAIAAABAHTNBCAAAAAB1zAQhAAAAANQxE4QAAAAAUMdMEAIAAABAHTNBCAAAAAB1zAQhAAAAANSx/x9Eleo+HlUbuQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", - "for i in range(3):\n", - " sns.heatmap(info['qs'][2][i].T, cmap='viridis', ax=axes[i])" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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JkyIxsbG6Orq6vN8V1dXtLS0DNNZHZgLLrggvvvd78btt98er3zlK0sff8yYMXHcccfFzJkzo6OjI6ZPnx6f+9znDnrc7du3xyOPPBKnnHJKHHLIIXHIIYfEHXfcEVdffXUccsgh0dvbW8LZ9/XSl740Xv3qV8cDDzxQyniTJk16Vlhf85rXlL5cPSLi17/+dXz/+9+P8847r9RxL7roorjkkkvine98Z5x00knx7ne/O5YvXx4dHR2lHePYY4+NO+64I5588sn4zW9+E9u2bYtnnnkmjjnmmNKO8Ud//PtN4W8bBkPXBqaqpkXo2mBU1bSItLqmaeQsla7V67VaxNB3reymRdR/11JqWoSupaRuJv/GjBkTM2fOjM2bN+9/rlarxebNm0u/R0JViqKICy64IG666ab4z//8zzj66KOH5Li1Wi16enoOepzTTz897rnnnti5c+f+x6xZs+Lss8+OnTt3RmNjYwln29eTTz4Zv/zlL2PSpEmljHfqqafGfffd1+e5+++/P4466qhSxv9T119/fUycODHOPPPMUsd96qmnYtSovn+6jY2NUavVSj1ORMShhx4akyZNit///vdx2223xdve9rbSj3H00UdHS0tLn7/tvXv3xo9//OO6+duGA6FrB6aspkXo2mBU1bSItLqmaeSs3rtW79dqEUPftbKbFlH/XUupaRG6lpK62vbb1tYWixcvjlmzZsXs2bNj9erV0d3dHUuWLCll/CeffLLPpxYPPfRQ7Ny5M172spfFkUceedDjL126NNavXx//9m//Focddtj+PfLjx4+PcePGHfT4ERErVqyIt771rXHkkUfGE088EevXr48tW7bEbbfddtBjH3bYYc+658Whhx4aL3/5y0u7F8aHPvShWLBgQRx11FHx29/+Ntrb26OxsTHOOuusUsZfvnx5zJs3Ly6//PJ4xzveEdu2bYtrr702rr322lLG/6NarRbXX399LF68OA45pNw/swULFsSnPvWpOPLII+O1r31t/OQnP4lVq1bFueeeW9oxbrvttiiKIo4//vh44IEH4qKLLopp06Yd8N/aC/1tXXjhhfHJT34yXvWqV8XRRx8dl156aUyePDkWLlxYyviPPfZY7Nq1K377299GROz/HxQtLS0+sWJY6drzq7JpEbo2UFU2LaL+ulZ10wZyDF1jpKrnrtX7tVpE9V2rumkR9d+1emtahGu1bAznVw0fiM9//vPFkUceWYwZM6aYPXt28aMf/ai0sW+//fYiIp71WLx4cSnj9zd2RBTXX399KeMXRVGce+65xVFHHVWMGTOmeMUrXlGcfvrpxX/8x3+UNv6fK/Or44uiKBYtWlRMmjSpGDNmTDFlypRi0aJFxQMPPFDa+EVRFP/+7/9enHjiiUVTU1Mxbdq04tprry11/KIoittuu62IiOK+++4rfey9e/cWy5YtK4488shi7NixxTHHHFN85CMfKXp6eko7xoYNG4pjjjmmGDNmTNHS0lIsXbq0ePzxxw94vBf626rVasWll15aNDc3F01NTcXpp58+qH+7Fxr/+uuv7/fn7e3tB/yeoCy69tyGumlFoWv9qbJpRVF/Xau6aQM5hq4xktVr11K8ViuKcrs2FE0rivruWr01rShcq+WioSiKYtAzhgAAAADAiFc39/wDAAAAAAbH5B8AAAAAJMrkHwAAAAAkyuQfAAAAACTK5B8AAAAAJMrkHwAAAAAkyuQfAAAAACTK5B8AAAAAJMrkHwAAAAAkyuQfAAAAACTK5B8AAAAAJMrkHwAAAAAk6v8BBnCmxfMCi44AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", - "for i in range(3):\n", - " sns.heatmap(info['qs'][3][i].T, cmap='viridis', ax=axes[i])" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture\n", - "\n", - "for t in range(timesteps): \n", - " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", - " plt.figure()\n", - " images.append( np.array(render(env_info, env_state, show_img=False)) )" - ] - }, - { - "cell_type": "code", - "execution_count": 13, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" @@ -701,132 +669,68 @@ "" ] }, - "execution_count": 13, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "import matplotlib.pyplot as plt\n", - "import matplotlib.animation as animation\n", - "from IPython.display import HTML\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "sns.despine(fig, left=True, bottom=True)\n", - "ax.set_xticks([])\n", - "ax.set_yticks([])\n", - "\n", - "# ims is a list of lists, each row is a list of artists to draw in the\n", - "# current frame; here we are just animating one artist, the image, in\n", - "# each frame\n", - "frames = []\n", - "for i, img in enumerate(images):\n", - " im = ax.imshow(img, animated=True)\n", - " if i == 0:\n", - " ax.imshow(img) # show an initial one first\n", - " frames.append([im])\n", - "\n", - "ani = animation.ArtistAnimation(fig, frames, interval=1000, blit=True,\n", - " repeat_delay=1000)\n", + "ani = animate(images)\n", "\n", - "# To save the animation, use e.g.\n", - "#\n", - "# ani.save(\"movie.mp4\")\n", - "#\n", - "# or\n", - "#\n", - "# writer = animation.FFMpegWriter(\n", - "# fps=15, metadata=dict(artist='Me'), bitrate=1800)\n", - "# ani.save(\"movie.mp4\", writer=writer)\n", - "\n", - "plt.close(ani._fig)\n", - "\n", - "# Call function to display the animation\n", "HTML(ani.to_html5_video())" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { - "image/png": "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TPXixYvOV0FBgXPenXfeqXbs2FEtKipyTrPb7Wrv3r3Vli1bOqfNmzdPBdRBgwapdrvdOX369OmqVqtVs7KyVFVV1dzcXNXf31994oknStWQmpqq+vn5lZo+ceJEFVBfeOGFMjVfWWOJWbNmqYqiqGfOnHFOe/nll9Wrfx2RkZHqxIkTy6xf4q233lIBdeHChVV+H6ZNm6YC6o4dO5zT0tLSVD8/PxVQExMTK9zv1e699141MjKy0stHRkaq9957r2q1WtWwsDD1tddeU1VVVQ8fPqwC6pYtW5y/p127djnXK++9/PLLL1VA/fHHHyvc3zPPPKNqtVp106ZNqqo63o+WLVuqgwcPLvU3UFBQoEZHR6t33XXXNetPTExUgQpfP//8c6ljvbq+tLQ01Wg0qn/84x+d01588UVVr9erGRkZzmnFxcWqv7+/+uijjzqnlbwvV/5+Svaxdu3aUnWW/I63bt3qnJabm6tGR0erUVFRqs1mU1VVVTdv3qwCatu2bdXi4mLnsv/+979VQD1w4IBzWv/+/VVAXbx4sXPa0aNHVUDVaDTqL7/84py+bt06FVDnzZvnnPbYY4+pjRs3VtPT00vV+uCDD6p+fn7O33FVaqrq358QDZHbNYPn5OQA5X87HjBgACEhIc7X+++/D0BGRgabNm1i9OjR5Obmkp6eTnp6OpcuXWLw4MGcOHGCc+fOldrWk08+WapZtG/fvthsNs6cOQM4zuKysrIYO3asc3vp6elotVp69erF5s2by9T39NNPl5l25Zlqfn4+6enp9O7dG1VV+fXXX6vxDjls3ryZF198kT/84Q+MHz++yu/D999/z6233lrqDDIkJMTZfF8XtFoto0eP5ssvvwQcHcvCw8Pp27dvuctf+V4WFRWRnp7OrbfeCsDevXvLXWfhwoX897//5a233mLgwIEAxMfHc+LECR566CEuXbrkfJ/y8/O58847+fHHHyt1OeDJJ59k/fr1ZV7t2rUrtVy7du1KHVNISAitW7fm1KlTzmljxozBYrGwYsUK57QffviBrKwsxowZc91aoqOjy5x9f//999xyyy306dPHOc3b25snn3yS06dPc/jw4VLLP/LII6VaH0pqvrLOkm08+OCDzp9bt26Nv78/bdu2LdUaVvLfJeurqsry5csZNmwYqqqW+nc1ePBgsrOzy/weK1uTEDc6t2sGL2kuy8vLKzPvww8/JDc3lwsXLpTq2JOQkICqqrz00ku89NJL5W43LS2Npk2bOn+OiIgoNT8gIABwNPEBnDhxAoA77rij3O35+vqW+lmn09GsWbMyyyUlJTFz5kxWrVrl3HaJ7Ozscrd9PWfPnmXMmDHcfvvt/POf/3ROr8r7cObMmXIvM7Ru3bpaNV0tOzu71HV5g8FAYGBgmeUeeugh5syZw759+1i8eDEPPvhgmWvLJTIyMnj11VdZsmQJaWlpZfZ3tfj4eJ566inGjh3LjBkznNNLfrdXNzlfvb2Sv4mKtGzZssLbz6509d8aOP7ervx76Ny5M23atGHp0qU89thjgKMJPDg4uMK/wStFR0eXmVbR77ht27bO+R06dKiwzqv/TZRo1qxZmd+Rn59fmT4kfn5+pda/ePEiWVlZfPTRR3z00UflHsfVv9fK1iTEjc7twtrPz4/GjRtz8ODBMvNKPniuvn+35Czoueeeq/DaXosWLUr9XFGPWlVVS23z888/L3NrEVDqmiQ4em5f3TvdZrNx1113kZGRwZ///GfatGmDl5cX586dY9KkSdXqzGU2m7n//vsxGo0sW7asVB3VeR9qy7PPPluqw1T//v2Ji4srs1yvXr1o3rw506ZNIzExkYceeqjCbY4ePZqffvqJP/3pT3Tp0gVvb2/sdjuxsbFl3svMzExGjRpFq1at+OSTT0rNK1n27bffpkuXLuXuy5XXPa/3t1ZizJgxvP7666Snp+Pj48OqVasYO3Zsmb+18riir0Fl66xoucr+m3r44Ycr/KLUqVOnatUkxI3O7cIa4N577+WTTz5h586dleroExMTA4Ber6/UmU5llHR4Cg0NrfY2Dxw4wPHjx1mwYAETJkxwTl+/fn2165o6dSrx8fH8+OOPNGrUqNS8qrwPkZGRzjPMKx07dqzatV3p+eefL9X6ca2z1LFjx/L3v/+dtm3bVhiemZmZbNy4kVdffZWZM2c6p5d3DHa7nXHjxpGVlcWGDRucnf1KlPxufX19Xfb34gpjxozh1VdfZfny5TRq1IicnJxSzc1VFRkZWe7v8+jRo875dSkkJAQfHx9sNptL3/eKWmKEuJG43TVrcHzQe3p68uijj3LhwoUy86/+Vh0aGsqAAQP48MMPSUlJKbN8ebdkXc/gwYPx9fXljTfewGKxVGubJWcFV9arqir//ve/q1wPwLx58/jwww95//33y/0SU5X34Z577uGXX35h586dpeYvWrSoWrVdrV27dgwaNMj56t69e4XLPv7447z88su88847FS5T3nsJlDty1auvvsq6dev48ssvy20e7t69O82bN+cf//hHuZdbqvP34gpt27alY8eOLF26lKVLl9K4cWP69etX7e3dc8897Ny5k59//tk5LT8/n48++oioqKgy19Zrm1arZdSoUSxfvrzclrPqvu9eXl7VvqQkREPhlmfWLVu2ZPHixYwdO5bWrVs7RzBTVZXExEQWL16MRqMpdY34/fffp0+fPnTs2JEnnniCmJgYLly4wM8//8zZs2fZt29flWrw9fVl7ty5jB8/nm7duvHggw8SEhJCUlIS3333HbfffjvvvffeNbfRpk0bmjdvznPPPce5c+fw9fVl+fLl1brelp6ezjPPPEO7du0wGo188cUXpeaPHDkSLy+vSr8Pzz//PJ9//jmxsbE8++yzzlu3IiMj63wo18jISF555ZVrLuPr60u/fv146623sFgsNG3alB9++IHExMRSyx04cIDXXnuNfv36kZaWVuZ9evjhh9FoNHzyyScMGTKE9u3b88gjj9C0aVPOnTvH5s2b8fX15X//+9916967d2+Z7YPjzP222267/oGXY8yYMcycORMPDw8ee+yxGg3888ILL/Dll18yZMgQpk6dSmBgIAsWLCAxMZHly5fXy6BCs2fPZvPmzfTq1YsnnniCdu3akZGRwd69e9mwYQMZGRlV3mb37t1ZunQpM2bMoGfPnnh7ezNs2LBaqF6IelQPPdArLSEhQX366afVFi1aqB4eHqrJZFLbtGmjPvXUU2p8fHyZ5U+ePKlOmDBBDQsLU/V6vdq0aVN16NCh6tdff+1cprxbglT1t1tFNm/eXGb64MGDVT8/P9XDw0Nt3ry5OmnSJHX37t3OZSZOnKh6eXmVewyHDx9WBw0apHp7e6vBwcHqE088oe7bt6/MLS3Xu3XrercLXXkrT2XeB1VV1f3796v9+/dXPTw81KZNm6qvvfaa+umnn9bZrVvXUt7v6ezZs+rIkSNVf39/1c/PT33ggQfU8+fPq4D68ssvq6r62++xoteVfv31V/W+++5Tg4KCVKPRqEZGRqqjR49WN27ceM3arve7uPJ2u4qOtX///mr//v3LTD9x4oRz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P8yWLVtc8n41OGody87OVgE1Ozu7rncthLjJXevzp7CwUD18+LBaWFhYrW2PHKmqOp2qOmK5/JdOp6qjRtX0KMqaOHGiOnz4cFVVVfXWW29VH330UVVVVfWbb75RSz7mH3vsMfXJJ58std7WrVtVjUajFhYWqkeOHFEBddeuXc75J06cUAH1X//6V4X7/uqrr9SgoCDnz/PmzVP9/PzKLBcZGencjsViUYODg9WFCxc6548dO1YdM2aMqqqqWlRUpHp6eqo//fRTqW089thj6tixY6/9ZjQwlf27kwd5CCFEDRUWwsqVvzV9V8RqhW++cSxfW8/4ePPNN7njjjvKnNHu27eP/fv3s2jRIuc0VVWx2+0kJiZy/PhxdDod3bp1c85v0aIFAQEBpbazYcMGZs2axdGjR8nJycFqtVJUVERBQUGlr0nrdDpGjx7NokWLGD9+PPn5+axcuZIlS5YAkJCQQEFBAXfddVep9cxmM127dq3S+3GjkLAWQogaysm5flCXsNsdy9dWWPfr14/Bgwfz4osvMmnSJOf0vLw8fv/73zN16tQy60RERHD8+PHrbvv06dMMHTqUp59+mtdff53AwEC2bdvGY489htlsrlIHsnHjxtG/f3/S0tJYv349JpOJ2NhYZ60A3333HU2bNi21ntForPQ+biQS1kIIUUO+vqDRVC6wNRrH8rVp9uzZdOnShdatWzundevWjcOHD9OiRYty12ndujVWq5Vff/2V7t27A44z3Ct7l+/Zswe73c4777yDRuPo8rRs2bJS2zEYDNhstuvW2Lt3b8LDw1m6dClr1qzhgQceQK/XA9CuXTuMRiNJSUn079+/agd/g5KwFkKIGjKZYPhwR6/vqzuXXUmncyxX24+57tixI+PGjWPOnDnOaX/+85+59dZbmTJlCo8//jheXl4cPnyY9evX895779GmTRsGDRrEk08+ydy5c9Hr9fzxj3/EZDI579Vu0aIFFouF//znPwwbNozt27fzwVVd3KOiosjLy2Pjxo107twZT0/PCs+4H3roIT744AOOHz/O5s2bndN9fHx47rnnmD59Ona7nT59+pCdnc327dvx9fVl4sSJtfCuuTfpDS6EEC4wYwZc74TSZoPp0+umnr/97W/YrzjV79SpE1u2bOH48eP07duXrl27MnPmTJo0aeJcZuHChTRq1Ih+/fox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", + "image/png": "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stQLFy44X4WFhc55t99+u9qpUye1uLjYOc1ut6t9+vRRW7Vq5Zw2b948FVAHDx6s2u125/QZM2aoWq1Wzc7OVlVVVfPy8lR/f3/1scceK1NDWlqa6ufnV2b6pEmTVEB97rnnytV8eY2lZs2apSqKop4+fdo57aWXXlKv/HVERUWpkyZNKrd+qTfffFMF1IULF1b7fZg+fboKqNu3b3dOS09PV/38/FRATUpKqnS/V7r77rvVqKioKi8fFRWl3n333arValXDwsLUV199VVVVVT106JAKqJs3b3b+nnbu3Olcr6L38osvvlAB9ccff6x0f0899ZSq1WrVjRs3qqrqeD9atWqlDhkypMzfQGFhoRoTE6PecccdV60/KSlJBSp9/fzzz2WO9cr60tPTVaPRqP7xj390Tnv++edVvV6vZmZmOqeVlJSo/v7+6sMPP+ycVvq+XP77Kd3H2rVry9RZ+jvesmWLc1peXp4aExOjRkdHqzabTVVVVd20aZMKqO3atVNLSkqcy/773/9WAXX//v3OaQMGDFABdfHixc5pR44cUQFVo9Gov/zyi3P6999/rwLqvHnznNMeeeQRNTw8XM3IyChT6/3336/6+fk5f8fVqam6f39CNEZu1wyem5sLVPzteODAgYSEhDhf7733HgCZmZls3LiRMWPGkJeXR0ZGBhkZGVy8eJEhQ4Zw/Phxzp49W2Zbjz/+eJlm0X79+mGz2Th9+jTgOIvLzs5m3Lhxzu1lZGSg1Wrp3bs3mzZtKlffk08+WW7a5WeqBQUFZGRk0KdPH1RV5ddff63BO+SwadMmnn/+ef7whz8wYcKEar8P3333HTfffHOZM8iQkBBn83190Gq1jBkzhi+++AJwdCyLiIigX79+FS5/+XtZXFxMRkYGN998MwB79uypcJ2FCxfy3//+lzfffJNBgwYBkJCQwPHjx3nggQe4ePGi830qKCjg9ttv58cff6zS5YDHH3+cdevWlXu1b9++zHLt27cvc0whISG0adOGkydPOqeNHTsWi8XCihUrnNN++OEHsrOzGTt27DVriYmJKXf2/d1333HTTTfRt29f5zRvb28ef/xxTp06xaFDh8os/9BDD5VpfSit+fI6S7dx//33O39u06YN/v7+tGvXrkxrWOl/l66vqirLly9n+PDhqKpa5t/VkCFDyMnJKfd7rGpNQlzv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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[0], [1], [2], [3], [4]]\n" - ] } ], "source": [ "M = get_maze_matrix('large')\n", - "env_info = parse_maze(M)\n", - "tmaze_env_large = GeneralizedTMazeEnv(env_info, batch_size=3)\n", - "images = []\n", - "images.append( render(env_info, tmaze_env_large) )\n", - "\n", - "A = [a.copy() for a in tmaze_env_large.params[\"A\"]]\n", - "B = [b.copy() for b in tmaze_env_large.params[\"B\"]]\n", - "A_dependencies = tmaze_env_large.dependencies[\"A\"]\n", - "B_dependencies = tmaze_env_large.dependencies[\"B\"]\n", - "\n", - "# [position], [cue], [reward]\n", - "C = [jnp.zeros(a.shape[:2]) for a in A]\n", - "\n", - "rewarding_modality = -1 # 2 + env_info[\"num_cues\"]\n", - "\n", - "C[rewarding_modality] = C[rewarding_modality].at[:, 1].set(1.0)\n", - "C[rewarding_modality] = C[rewarding_modality].at[:, 2].set(-2.0)\n", - "\n", - "\n", - "D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", - "\n", - "agent = AIFAgent(\n", - " A, B, C, D, \n", - " E=None,\n", - " pA=None,\n", - " pB=None,\n", - " policy_len=1,\n", - " A_dependencies=A_dependencies, \n", - " B_dependencies=B_dependencies,\n", - " use_utility=True,\n", - " use_states_info_gain=True,\n", - " sampling_mode='full'\n", - ")\n", - "\n", - "print(B_dependencies)" + "env_info_l = parse_maze(M)\n", + "tmaze_env_l = GeneralizedTMazeEnv(env_info_l, batch_size=5)\n", + "render(env_info_l, tmaze_env_l);" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ - "timesteps = 12\n", - "key = jr.PRNGKey(101)\n", - "_, info, _ = rollout(si_policy, agent, tmaze_env_large, num_timesteps=timesteps, rng_key=key)" + "%%capture\n", + "images = [render(env_info_l, tmaze_env_l)]\n", + "\n", + "timesteps = 10\n", + "key = jr.PRNGKey(0)\n", + "agent = make_aif_agent(tmaze_env_l)\n", + "_, info, _ = rollout(agent, tmaze_env_l, num_timesteps=timesteps, rng_key=key, policy_search=mcts_policy_search(max_depth=6, num_simulations=4096))\n", + "\n", + "for t in range(timesteps):\n", + " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", + " plt.figure()\n", + " images.append( np.array(render(env_info_l, env_state, show_img=False)))" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { - "image/png": "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2+J7b7zxxjj++ONjr732ir322iva2tq2+n4A8lJm07ana5oGQJlyO1cz+QeQoIULF0Z7e3t0dHTEww8/HGPHjo3JkyfHc889t9n333vvvXHaaafFPffcE0uXLo399tsvTjrppHjmmWf6+MgBoCdNAyAl/dE1k38AVSlKfNVp7ty5cc4558T06dPj8MMPjwULFsQb3vCGuOmmmzb7/q9//evx8Y9/PI4++ugYM2ZMfPnLX45arRZLliypf+cApKfMptXZNU0DoHSZnau55x9ARZpKvI9EV1dXdHV19djW0tISLS0tr3vvxo0bY/ny5TF79uxN2wYNGhRtbW2xdOnSXu3vlVdeiddeey3e+MY37tiBA5CEMpsW0fuuaRoAVcjtXG3ATP79+u2v9vchDHh3//7n/X0IQD/p7OyMOXPm9NjW0dERl19++eveu3bt2uju7o7W1tYe21tbW2PlypW92t/FF18co0aNira2tu0+5pz1RdN2i19XOv6aeW+qdHy2TfdJWW+7pmkDg3O1bfO/2ZCvRjhXGzCTfwDJqZU31OzZs6O9vb3Hts19k1SGq666Km677ba49957Y8iQIZXsA4AGU2LTIvqua5oGwGZldq5m8g+gImUuJd/SsvHNGTZsWDQ3N8eaNWt6bF+zZk2MGDFiq7/7+c9/Pq666qr44Q9/GEcdddR2Hy8AaSn7st/edk3TAKhCbudqHvgBkJjBgwfHuHHjetwA9s83hJ00adIWf++zn/1sXHHFFbFo0aIYP358XxwqAGyVpgGQkv7qmpV/AFUpd5FEXdrb22PatGkxfvz4mDBhQsybNy82bNgQ06dPj4iIM844I/bZZ5/o7OyMiIirr746Lrvssrj11ltj9OjRsXr16oiI2G233WK33Xbrt88BwAChaQCkJLOumfwDqErJl0jVY+rUqfH888/HZZddFqtXr46jjz46Fi1atOnGsqtWrYpBg/5v8ff1118fGzdujA984AM9xtnSjWoByIymAZCSzLpm8g8gUTNnzoyZM2du9mf33ntvj//+zW9+U/0BAcB20jQAUtLXXTP5B1CRpn5cSg4AZdI0AFKSW9dM/gFUpR+XkgNAqTQNgJRk1jVP+wUAAACARFn5B1CRplp/HwEAlEPTAEhJbl0z+QdQlcyWkgOQME0DICWZdc1lvwAAAACQKCv/AKqS15dJAKRM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/OIXpe0jIuLBBx+Mf/u3f4ujjjqq1HEjIt761rfGs88+u+l1//33lzb2H/7whzjuuONi5513ju9///vxy1/+Mr7whS/EXnvtVdo+HnzwwR7Hv3jx4oiIOPXUU0sZ/+qrr47rr78+rr322njsscfi6quvjs9+9rPxpS99qZTxIyLOPvvsWLx4cXzta1+LRx55JE466aRoa2uLZ555ZrvG29bf1mc/+9m45pprYsGCBfHTn/40dt1115g8eXK8+uqrpYy/YcOGeMc73hFXX331dh0/VEXXtq6vmhaha1tSddMiGq9rVTetN/vQNQaqRu5aSudqEdV1rcqmRTR+1xqtaRHO1bJRNJAJEyYUM2bM2PTf3d3dxahRo4rOzs7S9xURxe233176uH/pueeeKyKiuO+++yrdz1577VV8+ctfLm28l156qXjzm99cLF68uDjhhBOK888/v7SxOzo6irFjx5Y23l+7+OKLi3e84x2Vjb85559/fnHwwQcXtVqtlPFOPvnk4qyzzuqx7e///u+L008/vZTxX3nllaK5ubn43ve+12P7McccU3zqU5/a4fH/+m+rVqsVI0aMKD73uc9t2vbiiy8WLS0txTe+8Y0dHv8vPf3000VEFD/72c/qHheqoGv1K7tpRaFr9Si7aUXR2F2rummb28df0jUGmpS61qjnakVRXdeqblpRNH7XGrlpReFcLWUNs/Jv48aNsXz58mhra9u0bdCgQdHW1hZLly7txyPbfuvWrYuIiDe+8Y2VjN/d3R233XZbbNiwISZNmlTauDNmzIiTTz65x/9blOlXv/pVjBo1Kg466KA4/fTTY9WqVaWN/Z3vfCfGjx8fp556agwfPjze9ra3xY033lja+H9t48aN8R//8R9x1llnRVNTUyljHnvssbFkyZJ44oknIiLi5z//edx///3x3ve+t5Tx//SnP0V3d3cMGTKkx/Zddtml9G/2IiKefvrpWL16dY///zR06NCYOHFiw/5tQ2/oWn2qalqErvVWFU2LSKtrmkbOUutao56rRVTbtSqbFtH4XUupaRG6lpKd+vsAemvt2rXR3d0dra2tPba3trbGypUr++motl+tVosLLrggjjvuuDjiiCNKHfuRRx6JSZMmxauvvhq77bZb3H777XH44YeXMvZtt90WDz/88A7dU2BrJk6cGLfccksceuih8eyzz8acOXPi+OOPj0cffTR23333HR7/qaeeiuuvvz7a29vjk5/8ZDz44IPxj//4jzF48OCYNm1aCZ+gpzvuuCNefPHFOPPMM0sb85JLLon169fHmDFjorm5Obq7u+Mzn/lMnH766aWMv/vuu8ekSZPiiiuuiMMOOyxaW1vjG9/4RixdujQOOeSQUvbxl1avXh0Rsdm/7T//DFKka71TZdMidK0eVTQtIq2uaRo5S6lrjXquFlFt16puWkTjdy2lpkXoWkoaZvIvNTNmzIhHH320ktn5Qw89NFasWBHr1q2Lb33rWzFt2rS47777djgqv/vd7+L888+PxYsXv+6bhrL85TciRx11VEycODEOOOCA+OY3vxkf/ehHd3j8Wq0W48ePjyuvvDIiIt72trfFo48+GgsWLKhk8u8rX/lKvPe9741Ro0aVNuY3v/nN+PrXvx633nprvPWtb40VK1bEBRdcEKNGjSrtM3zta1+Ls846K/bZZ59obm6OY445Jk477bRYvnx5KeMD6amqa1U1LULX6lVF0yJ0DRh4GvFcLaL6rlXdtIjG75qmMVA1zGW/w4YNi+bm5lizZk2P7WvWrIkRI0b001Ftn5kzZ8b3vve9uOeee2LfffctffzBgwfHIYccEuPGjYvOzs4YO3ZsfPGLX9zhcZcvXx7PPfdcHHPMMbHTTjvFTjvtFPfdd19cc801sdNOO0V3d3cJR9/TnnvuGW95y1viySefLGW8kSNHvi6shx12WOnL1SMifvvb38YPf/jDOPvss0sd96KLLopLLrkkPvShD8WRRx4ZH/nIR2LWrFnR2dlZ2j4OPvjguO++++Lll1+O3/3ud7Fs2bJ47bXX4qCDDiptH3/257/fFP62oR661jtVNS1C1+pRVdMi0uqappGzVLrWqOdqEX3ftbKbFtH4XUupaRG6lpKGmfwbPHhwjBs3LpYsWbJpW61WiyVLlpR+j4SqFEURM2fOjNtvvz1+9KMfxYEHHtgn+63VatHV1bXD45x44onxyCOPxIoVKza9xo8fH6effnqsWLEimpubSzjanl5++eX49a9/HSNHjixlvOOOOy4ef/zxHtueeOKJOOCAA0oZ/y/dfPPNMXz48Dj55JNLHfeVV16JQYN6/uk2NzdHrVYrdT8REbvuumuMHDky/vCHP8Tdd98d73//+0vfx4EHHhgjRozo8be9fv36+OlPf9owf9uwPXRt+5TVtAhdq0dVTYtIq2uaRs4avWuNfq4W0fddK7tpEY3ftZSaFqFrKWmoy37b29tj2rRpMX78+JgwYULMmzcvNmzYENOnTy9l/JdffrnHtxZPP/10rFixIt74xjfG/vvvv8Pjz5gxI2699db4r//6r9h99903XSM/dOjQ2GWXXXZ4/IiI2bNnx3vf+97Yf//946WXXopbb7017r333rj77rt3eOzdd9/9dfe82HXXXWPvvfcu7V4YF154YUyZMiUOOOCA+P3vfx8dHR3R3Nwcp512Winjz5o1K4499ti48sor44Mf/GAsW7YsbrjhhrjhhhtKGf/ParVa3HzzzTFt2rTYaady/8ymTJkSn/nMZ2L//fePt771rfGzn/0s5s6dG2eddVZp+7j77rujKIo49NBD48knn4yLLrooxowZs91/a9v627rgggviX/7lX+LNb35zHHjggXHppZfGqFGj4pRTTill/BdeeCFWrVoVv//97yMiNv0fFCNGjPCNFf1K17auyqZF6FpvVdm0iMbrWtVN680+dI2BqpG71ujnahHVd63qpkU0ftcarWkRztWy0Z+PGt4eX/rSl4r999+/GDx4cDFhwoTiJz/5SWlj33PPPUVEvO41bdq0Usbf3NgRUdx8882ljF8URXHWWWcVBxxwQDF48ODiTW96U3HiiScWP/jBD0ob/6+V+ej4oiiKqVOnFiNHjiwGDx5c7LPPPsXUqVOLJ598srTxi6Iovvvd7xZHHHFE0dLSUowZM6a44YYbSh2/KIri7rvvLiKiePzxx0sfe/369cX5559f7L///sWQIUOKgw46qPjUpz5VdHV1lbaPhQsXFgcddFAxePDgYsSIEcWMGTOKF198cbvH29bfVq1WKy699NKitbW1aGlpKU488cS6/u22Nf7NN9+82Z93dHRs92eCsujalvV104pC1zanyqYVReN1reqm9WYfusZA1qhdS/FcrSjK7VpfNK0oGrtrjda0onCuloumoiiKumcMAQAAAIABr2Hu+QcAAAAA1MfkHwAAAAAkyuQfAAAAACTK5B8AAAAAJMrkHwAAAAAkyuQfAAAAACTK5B8AAAAAJMrkHwAAAAAkyuQfAAAAACTK5B8AAAAAJMrkHwAAAAAkyuQfAAAAACTq/weLocM05dZUGQAAAABJRU5ErkJggg==", + "image/png": "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J37961+XOm5ExN133x1f+9rX4vDDDy99rIiIf/iHf4gnn3xy83bnnXeWOt6f/vSnOProo2PIkCFx++23x29+85v40pe+FHvuuWdpY9599919PuPixYsjIuKUU04pbczPf/7zcdVVV8UVV1wRDz74YHz+85+PL3zhC/HVr361tDEjIj7ykY/E4sWL41vf+lb88pe/jBNOOCHa29tjzZo1pY4LOyqHpkU0pmuNbFqErpVB13SNwU/XdK0ecmhahK7p2gApmtTkyZOLWbNmbf5zb29vsddeexXd3d0DMn5EFDfffPOAjPWyp556qoiI4mc/+9mAjlsURbHnnnsWX//610sd49lnny3e8IY3FIsXLy6OO+644vzzzy91vK6urmLChAmljvH3LrroouJtb3vbgI75984///ziwAMPLKrVamljnHjiicUZZ5zRZ9+//Mu/FKeddlppYz733HNFa2tr8aMf/ajP/re85S3Fpz71qdLGhXrIsWlF0biuDUTTikLXBoquweCja7q2o3JtWlHoGuVoypV/mzZtihUrVkR7e/vmfS0tLdHe3h7Lli1r4JGVa/369RER8drXvnbAxuzt7Y2bbropNm7cGFOnTi11rFmzZsWJJ57Y599r2R555JHYa6+94oADDojTTjstVq9eXep4P/jBD2LSpElxyimnxMiRI+PNb35zXHPNNaWO+bc2bdoU3/72t+OMM86ISqVS2jhHHXVULFmyJB5++OGIiLj//vvjzjvvjH/8x38sbcyXXnopent7Y9iwYX3277zzzqV/Swg7ItemRQx81wayaRG6NhB0DQYfXdO1esmtaRG6RokaPfu4PdasWVNERHHXXXf12X/hhRcWkydPHpBjiAH+Nqm3t7c48cQTi6OPPnpAxnvggQeKXXfdtWhtbS2GDx9e3HrrraWOd+ONNxaHHnpo8fzzzxdFUQzIConbbrut+O53v1vcf//9xaJFi4qpU6cW++67b7Fhw4bSxmxrayva2tqKzs7O4t577y2+9rWvFcOGDSuuv/760sb8WwsXLixaW1uLNWvWlDpOb29vcdFFFxWVSqXYaaedikqlUlx22WWljlkURTF16tTiuOOOK9asWVO89NJLxbe+9a2ipaWleOMb31j62LC9cmxaUQxs1wa6aUWha7pWH7pGM9I1XauHHJtWFLpGeUz+baeBDsrZZ59d7LfffsXvf//7ARmvp6eneOSRR4p77rmnmD17djFixIji17/+dSljrV69uhg5cmRx//33b943ECdJf+9Pf/pTsfvuu5e6ZH7IkCHF1KlT++w777zzire+9a2ljfm3TjjhhOKf/umfSh/nxhtvLPbee+/ixhtvLB544IHim9/8ZvHa17629HA++uijxbHHHltERNHa2loceeSRxWmnnVaMHz++1HFhR+TYtKIY2K4NZNOKQtd0rX50jWaka7pWhhyaVhS6RnmacvKvp6enaG1tfcV/0GfMmFG8+93vHpBjGMigzJo1q9h7772Lxx57bEDG25Ljjz++OOuss0p575tvvnnzX/6Xt4goKpVK0draWrz00kuljLslkyZNKmbPnl3a+++7777Fhz/84T77rrzyymKvvfYqbcyXPfHEE0VLS0txyy23lD7W3nvvXVxxxRV99l166aXFm970ptLHLoqi+Mtf/lL84Q9/KIqiKN73vvcV73rXuwZkXNgeuTWtKBrftTKbVhS6pmv1p2s0E10beLl0LeWmFYWuUa6mvOff0KFDY+LEibFkyZLN+6rVaixZsmRA7nUwUIqiiHPPPTduvvnm+MlPfhL7779/w46lWq1GT09PKe99/PHHxy9/+ctYuXLl5m3SpElx2mmnxcqVK6O1tbWUcf/eX/7yl/jtb38bY8aMKW2Mo48+Oh566KE++x5++OHYb7/9ShvzZdddd12MHDkyTjzxxNLHeu6556Klpe9/XlpbW6NarZY+dkTErrvuGmPGjIk//elPcccdd8R73vOeARkXtkcuTYsYPF0rs2kRuqZr9adrNBNdG3g5dC31pkXoGiVr8OTjdrvpppuKtra24vrrry9+85vfFGeddVaxxx57FGvXri1tzGeffba47777ivvuu6+IiGLu3LnFfffdV/zud78rZbxzzjmnGD58eLF06dLiySef3Lw999xzpYz3stmzZxc/+9nPiscff7x44IEHitmzZxeVSqX48Y9/XOq4f2sglpH/27/9W7F06dLi8ccfL/7nf/6naG9vL0aMGFE89dRTpY25fPnyYqeddio+97nPFY888kjxne98p9hll12Kb3/726WNWRR/vafDvvvuW1x00UWljvOy008/vRg7dmzxox/9qHj88ceL73//+8WIESOKT3ziE6WOu2jRouL2228vHnvsseLHP/5xMWHChGLKlCnFpk2bSh0XdlQOTSuKxnRtMDStKHSt3nRN1xjcdE3XdlROTSsKXdO18jXt5F9RFMVXv/rVYt999y2GDh1aTJ48ufjFL35R6ng//elPi4h4xXb66aeXMt6WxoqI4rrrritlvJedccYZxX777VcMHTq0eP3rX18cf/zxycWkKIpi+vTpxZgxY4qhQ4cWY8eOLaZPn148+uijpY5ZFEXxwx/+sDj00EOLtra2Yvz48cXVV19d+ph33HFHERHFQw89VPpYRVEUGzZsKM4///xi3333LYYNG1YccMABxac+9amip6en1HEXLlxYHHDAAcXQoUOL0aNHF7NmzSr+/Oc/lzom1EvqTSuKxnRtMDStKHSt3nQNBj9dK0cuXcupaUWha5SvUhRFUeLCQgAAAACgQZrynn8AAAAAwLaZ/AMAAACARJn8AwAAAIBEmfwDAAAAgESZ/AMAAACARJn8AwAAAIBEmfwDAAAAgESZ/AMAAACARJn8AwAAAIBEmfwDAAAAgESZ/AMAAACARJn8AwAAAIBE/f9C6yf88ktECAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -836,6 +740,7 @@ } ], "source": [ + "# plot q(u_t) for each time step\n", "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", "for i in range(3):\n", " sns.heatmap(info['qpi'][i].T, cmap='viridis', ax=axes[i])" @@ -843,30 +748,39 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABP8AAAGyCAYAAACbYGFOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABar0lEQVR4nO3deXwV5aH/8e9JIAeKgNgIBGQTWpMCBQtCI0JEkfzUgnCrUqRlcbsi9QqpCKlVpFaDrVstCOq94NJbQG/Bi8oqQr1IFFmtsiogXnZcEmQ56DnP7w+vaY8kZCbMJGfm+bxfr/mDOcnME/sqH+bJMzMRY4wRAAAAAAAAgNBJq+kBAAAAAAAAAPAHk38AAAAAAABASDH5BwAAAAAAAIQUk38AAAAAAABASDH5BwAAAAAAAIQUk38AAAAAAABASDH5BwAAAAAAAIQUk38AAAAAAABASDH5BwAAAAAAAIQUk38AAAAAAABASDH5BwAh88Ybb6hfv35q1qyZIpGIXnrppUq/Z/ny5frRj36kaDSqdu3a6ZlnnvF9nAAAOEHXAABhUhNdY/IPAELmyJEj6tSpk6ZMmeLo63fs2KErr7xSvXv31vr16zV69GjdeOONWrRokc8jBQCgcnQNABAmNdG1iDHGVHXAAIDUFolENHfuXA0YMKDCrxk3bpxeffVVvffee2X7fvazn+nzzz/XwoULq2GUAAA4Q9cAAGFSXV1j5R8ABEAsFlNpaWnSFovFPDl2cXGx+vTpk7QvPz9fxcXFnhwfAIBvo2sAgLDws2mSN12r5dloTtNladfU9BAAQEsSL3p2rMS+73t2rKJp12nixIlJ+yZMmKB77733tI+9b98+NWnSJGlfkyZNVFpaqmPHjqlu3bqnfQ7b0DQAqcKrrnnZNImuBQ1dA5AqUrFrfjZN8qZrKTP5BwCoWGFhoQoKCpL2RaPRGhoNAACnh64BAMIiCE1j8g8AfJJQwrNjRaNR3wLStGlT7d+/P2nf/v371aBBA1ZHAAAkeds0ia4BAGpWUK7VJG+65nry79ChQ5o+fbqKi4u1b9++soFceOGFGj58uM4++2y3hwSAUIob74Li529qcnNzNX/+/KR9S5YsUW5uro9nTR10DQAq52XTJLrmF5oGAM4E5VpN8qZrrl748c477+j73/++Hn/8cTVs2FC9evVSr1691LBhQz3++OPKzs7W6tWr3RwSAOCxL774QuvXr9f69eslff1q+PXr12vXrl2Svl6WPnTo0LKvv+WWW7R9+3bdeeed2rx5s5544gm98MILGjNmTE0Mv1rRNQBIfXTNGZoGAMFQE12LGGOM0y/+8Y9/rE6dOmnatGmKRCJJnxljdMstt+jdd9+t9I0jsVjspDefDGw4XGmRdMcDBwA/ePnCj2N723h2rLpZOxx/7fLly9W7d++T9g8bNkzPPPOMhg8frp07d2r58uVJ3zNmzBht3LhR55xzju6++24NHz7cg5GnNi+6RtMApDKvuuZl0yS65geu1QDYIBW75qZpUs10zdXkX926dbVu3TplZ2eX+/nmzZt1/vnn69ixY6c8zr333nvSm1DaKEdtI+2dDgUAfOHl5N+Rva08O1a9rI88Oxb+wYuu0TQAqcyrrnnZNImu+YFrNQA2SMWuBaFprm77bdq0qVatWlXh56tWrTrp9cPlKSwsVElJSdLWRuVHCgAAv3jRNZoGAEgFXKsBACri6rmEd9xxh26++WatWbNGl156aVk89u/fr6VLl+rpp5/WQw89VOlxynsTCsvIAYRN3PnCatQQL7pG0wDYgKalPq7VAMA527rmavJv1KhRyszM1KOPPqonnnhC8XhckpSenq4uXbromWee0bXXXuvLQAEgaBKyKyhBRNcAwBmalvpoGgA4Z1vXXD3z7599+eWXOnTokCQpMzNTtWvXPq2BXJZ2zWl9PwB4wctn/n2+p4Vnxzqz2ceeHQvl87JrNA1AqvCqa142TaJrfuNaDUBYpWLXgtA0Vyv//lnt2rWVlZXl5VgAIFTilv02KejoGgBUjKYFC00DgFOzrWtVnvwDAJyabUvJAQDhRdMAAGFiW9dcve0XAAAAAAAAQHCw8g8AfGLbG6QAAOFF0wAAYWJb15j8AwCfJGp6AAAAeISmAQDCxLaucdsvAAAAAAAAEFKs/AMAn9j2BikAQHjRNABAmNjWNSb/AMAncbt6AgAIMZoGAAgT27rGbb8AAAAAAABASLHyDwB8YttDZAEA4UXTAABhYlvXmPwDAJ/EFanpIQAA4AmaBgAIE9u6xm2/AAAAAAAAQEix8g8AfJKw7CGyAIDwomkAgDCxrWtM/gGAT2xbSg4ACC+aBgAIE9u6xm2/AAAAAAAAQEi5nvw7duyYVqxYoY0bN5702fHjx/Xcc895MjAACLq4Ip5t8A9dA4DKedk0uuYfmgYAztjWNFeTf1u3blVOTo569eqljh07Ki8vT3v37i37vKSkRCNGjKj0OLFYTKWlpUlbwsTdjx4AUljCRDzb4A8vukbTANjAy6bRNX9wrQYAztnWNFeTf+PGjVOHDh104MABbdmyRfXr11ePHj20a9cuVyctKipSw4YNk7Yd2uzqGAAAnC4vukbTAACpgGs1AEBFIsYYx+84adKkiV577TV17NhRkmSM0a233qr58+dr2bJlqlevnpo1a6Z4/NS/GYrFYorFYkn7BjYcrrRIehV+BADwzpLEi54da+2ulp4d60ct3f3DHc540TWaBiCVedU1L5sm0TU/cK0GwAap2LUgNM3Vyr9jx46pVq1/vCA4Eolo6tSp6tevn/Ly8rR161ZHx4lGo2rQoEHSRkwAhE1caZ5t8IcXXaNpAGzgZdPomj+4VgMA52xrWq3Kv+QfsrOztXr1auXk5CTtnzx5siSpf//+3o0MAACf0TUAQFjQNABARVxNUQ4cOFAzZ84s97PJkydr8ODBcnEXMQCEmm0PkQ0iugYAzvDCj9RH0wDAOdua5uqZf366LO2amh4CAHj6zL+VH53r2bEubLXds2PBfzQNQKrwqmteNk2ia0FD1wCkilTsWhCaFoybkwEAAAAAAAC45uqZfwAA5+KG368AAMKBpgEAwsS2rjH5BwA+SbC4GgAQEjQNABAmtnXNrp8WAAAAAAAAsAgr/wDAJ3EF481PAABUhqYBAMLEtq4x+QcAPrHtORIAgPCiaQCAMLGta3b9tAAAAAAAAIBFWPkHAD5JWLaUHAAQXjQNABAmtnWNyT8A8EmcxdUAgJCgaQCAMLGta3b9tAAAAAAAAIBFWPkHAD6x7SGyAIDwomkAgDCxrWtM/gGATxIsrgYAhARNAwCEiW1d8+SnNcZ4cRgAAGocTQMAhAldAwB4MvkXjUa1adMmLw4FAKERNxHPNlQfmgYAJ/OyaXStetE1ADiZbU1zddtvQUFBufvj8bgmTZqk7373u5KkRx555PRHBgABZ9sbpIKGpgGAczQt9dE1AHDOtq65mvx77LHH1KlTJ5155plJ+40x2rRpk+rVq6dIpPJZz1gsplgslrQvYeJKi6S7GQ4AAFVG0wAAYULXAAAVcTX598ADD+ipp57Sww8/rEsuuaRsf+3atfXMM8/oBz/4gaPjFBUVaeLEiUn72ihHbdXezXAAIKUlLHuDVNDQNABwjqalProGAM7Z1jVXP+348eM1e/ZsjRw5UnfccYe+/PLLKp20sLBQJSUlSVsbZVfpWACQquJK82yD92gaADjnZdPomj/oGgA4Z1vTXI/yggsu0Jo1a3Tw4EF17dpV7733nqPl4/8sGo2qQYMGSRvLyAEA1Y2mAQDChK4BAMrj6rbfb5xxxhl69tlnNWvWLPXp00fxeNzrcQFA4AXlzU+2o2kAUDmaFhx0DQAqZ1vXqjT5942f/exnuuiii7RmzRq1atXKqzEBQCgkArIEHF+jaQBQMZoWPHQNACpmW9dOa/JPks455xydc845XowFAIAaRdMAAGFC1wAAkgeTfwCA8sUte4MUACC8aBoAIExs6xqTfwDgk4Tseo4EACC8aBoAIExs65pdU50AAAAAAACARVj5BwA+sW0pOQAgvGgaACBMbOsak38A4JM4i6sBACFB0wAAYWJb1+z6aQEAAAAAAACLsPIPAHySMHY9RBYAEF40DQAQJrZ1jck/APCJbUvJAQDhRdMAAGFiW9fs+mkBAAAAAAAAi7DyDwB8krDsDVIAgPCiaQCAMLGta0z+AYBP4rLrORIAgPCiaQCAMLGta3ZNdQIAAAAAAAAWYeUfAPjEtqXkAIDwomkAgDCxrWtM/gGAT2xbSg4ACC+aBgAIE9u65mqqc+3atdqxY0fZn59//nn16NFDLVq00EUXXaRZs2Z5PkAAAPxC1wAAYUHTAAAVcTX5N2LECH344YeSpH//93/Xv/7rv6pr16666667dMEFF+imm27S9OnTKz1OLBZTaWlp0pYw8ar9BACQohImzbMN/vCiazQNgA28bBpd8wfXagDgnG1Nc3Xb77Zt2/S9731PkvTEE0/oj3/8o2666aayzy+44ALdf//9uv766095nKKiIk2cODFpXxvlqK3auxkOAKS0eEBCYDMvukbTANiApqU+rtUAwDnbuubqp/3Od76jQ4cOSZJ2796tbt26JX3evXv3pKXmFSksLFRJSUnS1kbZboYCAKjElClT1Lp1a9WpU0fdu3fXqlWrTvn1jz32mM477zzVrVtXLVq00JgxY3T8+PFqGm3N8KJrNA0A/EfTKse1GgAER3V3zdXk3+WXX66pU6dKkvLy8vRf//VfSZ+/8MILateuXaXHiUajatCgQdKWFkl3MxQASHkJRTzb3Jo9e7YKCgo0YcIErV27Vp06dVJ+fr4OHDhQ7tf/5S9/0fjx4zVhwgRt2rRJ//Ef/6HZs2fr17/+9en+Z0hpXnSNpgGwgZdNc9s1muYM12oA4Jxt12qubvt98MEH1aNHD+Xl5alr1656+OGHtXz5cuXk5GjLli166623NHfuXDeHBIDQqsml5I888ohuuukmjRgxQpI0bdo0vfrqq5o+fbrGjx9/0tevXLlSPXr00HXXXSdJat26tQYPHqy33367Wsdd3egaADhD01IfTQMA52zrmquftlmzZlq3bp1yc3O1cOFCGWO0atUqLV68WOecc47efPNNXXHFFW4OCQBwoLyHb8disXK/9sSJE1qzZo369OlTti8tLU19+vRRcXFxud9z4YUXas2aNWXLzbdv36758+eH/u90ugYANcNp12iaczQNAGpGEK7VXK38k6QzzzxTkyZN0qRJk9x+KwBYJWHcLwGvSHkP354wYYLuvffek7720KFDisfjatKkSdL+Jk2aaPPmzeUe/7rrrtOhQ4d00UUXyRijr776Srfcckvob5GS6BoAOOFl0yTnXaNp7tA0AHDGtms1u15vAgDVKK40z7byHr5dWFjo2ViXL1+uBx54QE888YTWrl2rOXPm6NVXX9V9993n2TkAAMHlZdP87hpNAwBUJihNk7zpmuuVfwCA6heNRhWNRh19bWZmptLT07V///6k/fv371fTpk3L/Z67775bv/jFL3TjjTdKkjp27KgjR47o5ptv1l133aW0NH5XBADwjtOu0TQAQKoLwrUa5QMAnyRMxLPNjYyMDHXp0kVLly79x1gSCS1dulS5ubnlfs/Ro0dPikZ6+tdv9jPGuPzJAQBh42XT3HSNpgEA/GDbtRor/wDAJ4ka/P1KQUGBhg0bpq5du6pbt2567LHHdOTIkbI3Sg0dOlTNmzdXUVGRJKlfv3565JFHdP7556t79+764IMPdPfdd6tfv35lYQEA2IumAQDCxLauMfkHACE0aNAgHTx4UPfcc4/27dunzp07a+HChWUPlt21a1fSb49+85vfKBKJ6De/+Y12796ts88+W/369dP9999fUz8CAACSaBoAIFxqomsRkyJr3y9Lu6amhwAAWpJ40bNjjVn/M8+O9WjnWZ4dC/6jaQBS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1qhPnz5l+9LS0tSnTx8VFxfX4Mj8VVJSIkk666yzqu2c8Xhcs2bN0pEjR5Sbm+vruUaNGqUrr7wy6X9Xv23btk3NmjXTueeeqyFDhmjXrl2+nm/evHnq2rWrrrnmGjVu3Fjnn3++nn76aV/P+c9OnDihP//5z7r++usViUR8O8+FF16opUuXauvWrZKkDRs2aMWKFbr88st9O+dXX32leDyuOnXqJO2vW7eu778lBE6HrU2Tqr9r1dk0ia5VB7oGpB66Rte8YlvTJLoGH9X07GNV7N6920gyK1euTNo/duxY061bt2oZg6r5t0nxeNxceeWVpkePHtVyvnfffdfUq1fPpKenm4YNG5pXX33V1/PNnDnTdOjQwRw7dswYY6plhcT8+fPNCy+8YDZs2GAWLlxocnNzTcuWLU1paalv54xGoyYajZrCwkKzdu1a8+STT5o6deqYZ555xrdz/rPZs2eb9PR0s3v3bl/PE4/Hzbhx40wkEjG1atUykUjEPPDAA76e0xhjcnNzTV5entm9e7f56quvzPPPP2/S0tLM97//fd/PDVSVjU0zpnq7Vt1NM4au0TVv0DUEEV2ja16wsWnG0DX4h8m/KqruoNxyyy2mVatW5uOPP66W88ViMbNt2zazevVqM378eJOZmWnef/99X861a9cu07hxY7Nhw4ayfdVxkfRtn332mWnQoIGvS+Zr165tcnNzk/bddttt5sc//rFv5/xnffv2NT/5yU98P8/MmTPNOeecY2bOnGneffdd89xzz5mzzjrL93B+8MEHplevXkaSSU9PNxdccIEZMmSIyc7O9vW8wOmwsWnGVG/XqrNpxtA1uuYduoYgomt0zQ82NM0Yugb/BHLyLxaLmfT09JP+Qh86dKjp379/tYyhOoMyatQoc84555jt27dXy/nKc+mll5qbb77Zl2PPnTu37P/832ySTCQSMenp6earr77y5bzl6dq1qxk/frxvx2/ZsqW54YYbkvY98cQTplmzZr6d8xs7d+40aWlp5qWXXvL9XOecc46ZPHly0r777rvPnHfeeb6f2xhjvvjiC7Nnzx5jjDHXXnutueKKK6rlvEBV2NY0Y2q+a342zRi6Rte8R9cQJHSt+tnStTA3zRi6Bn8F8pl/GRkZ6tKli5YuXVq2L5FIaOnSpdXyrIPqYozRL3/5S82dO1evv/662rRpU2NjSSQSisVivhz70ksv1d///netX7++bOvatauGDBmi9evXKz093ZfzftsXX3yhDz/8UFlZWb6do0ePHtqyZUvSvq1bt6pVq1a+nfMbM2bMUOPGjXXllVf6fq6jR48qLS35r5f09HQlEgnfzy1J9erVU1ZWlj777DMtWrRIV111VbWcF6gKW5ompU7X/GyaRNfomvfoGoKErlU/G7oW9qZJdA0+q+HJxyqbNWuWiUaj5plnnjEbN240N998sznzzDPNvn37fDvn4cOHzbp168y6deuMJPPII4+YdevWmY8++siX840cOdI0bNjQLF++3Ozdu7dsO3r0qC/n+8b48ePN3/72N7Njxw7z7rvvmvHjx5tIJGIWL17s63n/WXUsI//Vr35lli9fbnbs2GHefPNN06dPH5OZmWkOHDjg2zlXrVplatWqZe6//36zbds285//+Z/mO9/5jvnzn//s2zmN+fqZDi1btjTjxo3z9TzfGDZsmGnevLl55ZVXzI4dO8ycOXNMZmamufPOO30978KFC82CBQvM9u3bzeLFi02nTp1M9+7dzYkTJ3w9L3C6bGiaMTXTtVRomjF0zWt0ja4htdE1una6bGqaMXSNrvkvsJN/xhjzpz/9ybRs2dJkZGSYbt26mbfeesvX8y1btsxIOmkbNmyYL+cr71ySzIwZM3w53zeuv/5606pVK5ORkWHOPvtsc+mll4YuJsYYM2jQIJOVlWUyMjJM8+bNzaBBg8wHH3zg6zmNMebll182HTp0MNFo1GRnZ5unnnrK93MuWrTISDJbtmzx/VzGGFNaWmpuv/1207JlS1OnTh1z7rnnmrvuusvEYjFfzzt79mxz7rnnmoyMDNO0aVMzatQo8/nnn/t6TsArYW+aMTXTtVRomjF0zWt0DUh9dM0ftnTNpqYZQ9fgv4gxxvi4sBAAAAAAAABADQnkM/8AAAAAAAAAVI7JPwAAAAAAACCkmPwDAAAAAAAAQorJPwAAAAAAACCkmPwDAAAAAAAAQorJPwAAAAAAACCkmPwDAAAAAAAAQorJPwAAAAAAACCkmPwDAAAAAAAAQorJPwAAAAAAACCkmPwDAAAAAAAAQorJPwAAAAAAACCk/j/He3gOUcSs5QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "%%capture\n", - "\n", - "for t in range(timesteps):\n", - " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", - " plt.figure()\n", - " images.append( np.array(render(env_info, env_state, show_img=False)) )" + "# plot beliefs over locations for each time step\n", + "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", + "for i in range(3):\n", + " sns.heatmap(info['qs'][0][i].T, cmap='viridis', ax=axes[i])" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" @@ -1150,50 +1064,22 @@ "" ] }, - "execution_count": 17, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "import matplotlib.pyplot as plt\n", - "import matplotlib.animation as animation\n", - "from IPython.display import HTML\n", - "\n", - "fig, ax = plt.subplots()\n", - "\n", - "sns.despine(fig, left=True, bottom=True)\n", - "ax.set_xticks([])\n", - "ax.set_yticks([])\n", - "\n", - "# ims is a list of lists, each row is a list of artists to draw in the\n", - "# current frame; here we are just animating one artist, the image, in\n", - "# each frame\n", - "frames = []\n", - "for i, img in enumerate(images):\n", - " im = ax.imshow(img, animated=True)\n", - " if i == 0:\n", - " ax.imshow(img) # show an initial one first\n", - " frames.append([im])\n", - "\n", - "ani = animation.ArtistAnimation(fig, frames, interval=1000, blit=True,\n", - " repeat_delay=1000)\n", - "\n", - "# To save the animation, use e.g.\n", - "#\n", - "# ani.save(\"movie.mp4\")\n", - "#\n", - "# or\n", - "#\n", - "# writer = animation.FFMpegWriter(\n", - "# fps=15, metadata=dict(artist='Me'), bitrate=1800)\n", - "# ani.save(\"movie.mp4\", writer=writer)\n", - "\n", - "plt.close(ani._fig)\n", - "\n", - "# Call function to display the animation\n", + "ani = animate(images)\n", "HTML(ani.to_html5_video())" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/pymdp/jax/planning/mcts.py b/pymdp/jax/planning/mcts.py new file mode 100644 index 00000000..2758595c --- /dev/null +++ b/pymdp/jax/planning/mcts.py @@ -0,0 +1,160 @@ +from functools import partial +from jax import vmap, nn, random as jr, tree_util as jtu, lax +from pymdp.jax.control import compute_expected_state, compute_expected_obs, compute_info_gain, compute_expected_utility + +import mctx +import jax.numpy as jnp + +def mcts_policy_search(search_algo=mctx.gumbel_muzero_policy, + max_depth = 6, + num_simulations = 4096): + + def si_policy(agent, beliefs, rng_key): + + # remove time dimension + embedding = jtu.tree_map(lambda x: x[:, 0], beliefs) + root = mctx.RootFnOutput( + prior_logits=jnp.log(agent.E), + value=jnp.zeros((agent.batch_size)), + embedding=embedding, + ) + + recurrent_fn = make_aif_recurrent_fn() + + policy_output = search_algo( + agent, + rng_key, + root, + recurrent_fn, + num_simulations=num_simulations, + max_num_considered_actions=len(agent.policies), + max_depth=max_depth + ) + + return policy_output.action_weights, policy_output + + return si_policy + +@vmap +def compute_neg_efe(agent, qs, action): + qs_next_pi = compute_expected_state(qs, agent.B, action, B_dependencies=agent.B_dependencies) + qo_next_pi = compute_expected_obs(qs_next_pi, agent.A, agent.A_dependencies) + if agent.use_states_info_gain: + exp_info_gain = compute_info_gain(qs_next_pi, qo_next_pi, agent.A, agent.A_dependencies) + else: + exp_info_gain = 0. + + if agent.use_utility: + exp_utility = compute_expected_utility(qo_next_pi, agent.C) + else: + exp_utility = 0. + + return exp_utility + exp_info_gain, qs_next_pi, qo_next_pi + +@partial(vmap, in_axes=(0, 0, None)) +def get_prob_single_modality(o_m, po_m, distr_obs): + """ Compute observation likelihood for a single modality (observation and likelihood)""" + return jnp.inner(o_m, po_m) if distr_obs else po_m[o_m] + +def make_aif_recurrent_fn(): + """Returns a recurrent_fn for an AIF agent.""" + + def recurrent_fn(agent, rng_key, action, embedding): + multi_action = agent.policies[action, 0] + qs = embedding + neg_efe, qs_next_pi, qo_next_pi = compute_neg_efe(agent, qs, multi_action) + + # recursively branch the policy + outcome tree + choice = lambda key, po: jr.categorical(key, logits=jnp.log(po)) + if agent.onehot_obs: + sample = lambda key, po, no: nn.one_hot(choice(key, po), no) + else: + sample = lambda key, po, no: choice(key, po) + + # set discount to outcome probabilities + discount = 1. + obs = [] + for no_m, qo_m in zip(agent.num_obs, qo_next_pi): + rng_key, key = jr.split(rng_key) + o_m = sample(key, qo_m, no_m) + discount *= get_prob_single_modality(o_m, qo_m, agent.onehot_obs) + obs.append(jnp.expand_dims(o_m, 1)) + + qs_next_posterior = agent.infer_states(obs, None, qs_next_pi, None) + # remove time dimension + # TODO: update infer_states to not expand along time dimension when needed + qs_next_posterior = jtu.tree_map(lambda x: x.squeeze(1), qs_next_posterior) + recurrent_fn_output = mctx.RecurrentFnOutput( + reward=neg_efe, + discount=discount, + prior_logits=jnp.log(agent.E), + value=jnp.zeros_like(neg_efe) + ) + + return recurrent_fn_output, qs_next_posterior + + return recurrent_fn + +# custom rollout function for mcts +def rollout(policy_search, agent, env, num_timesteps, rng_key): + # get the batch_size of the agent + batch_size = agent.batch_size + + def step_fn(carry, x): + observation_t = carry["observation_t"] + prior = carry["empirical_prior"] + env = carry["env"] + rng_key = carry["rng_key"] + + # We infer the posterior using FPI + # so we don't need past actions or qs_hist + qs = agent.infer_states( + observation_t, + prior + ) + rng_key, key = jr.split(rng_key) + qpi, _ = policy_search(key, agent, qs) + + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + action_t = agent.sample_action(qpi, rng_key=keys[1:]) + + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + observation_t, env = env.step(rng_key=keys[1:], actions=action_t) + + prior, _ = agent.infer_empirical_prior(action_t, qs) + + carry = { + "observation_t": observation_t, + "empirical_prior": prior, + "env": env, + "rng_key": rng_key, + } + info = { + "qpi": qpi, + "qs": jtu.tree_map(lambda x: x[:, 0], qs), + "env": env, + "observation": observation_t, + "action": action_t, + } + + return carry, info + + # generate initial observation + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + observation_0, env = env.step(keys[1:]) + + initial_carry = { + "observation_t": observation_0, + "empirical_prior": agent.D, + "env": env, + "rng_key": rng_key, + } + + # Scan over time dimension (axis 1) + last, info = lax.scan(step_fn, initial_carry, jnp.arange(num_timesteps)) + + info = jtu.tree_map(lambda x: jnp.swapaxes(x, 0, 1), info) + return last, info, env \ No newline at end of file From 84c99435b198695ce4dbd48567cf35ca5f4718a0 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 27 Jun 2024 15:57:42 +0200 Subject: [PATCH 142/196] simpler graph world demo --- examples/mcts/graph_worlds_demo.ipynb | 2758 +++++++------------------ 1 file changed, 691 insertions(+), 2067 deletions(-) diff --git a/examples/mcts/graph_worlds_demo.ipynb b/examples/mcts/graph_worlds_demo.ipynb index b5ef6abe..97003cf5 100644 --- a/examples/mcts/graph_worlds_demo.ipynb +++ b/examples/mcts/graph_worlds_demo.ipynb @@ -102,20 +102,35 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 20, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ + "import networkx as nx\n", "from pymdp.jax.envs import GraphEnv\n", "from pymdp.jax.envs.graph_worlds import generate_connected_clusters\n", "\n", - "graph, _ = generate_connected_clusters(cluster_size=3, connections=2)\n", - "env = GraphEnv(graph, object_locations=[4], agent_locations=[0])" + "graph, _ = generate_connected_clusters(cluster_size=1, connections=2)\n", + "env = GraphEnv(graph, object_locations=[2], agent_locations=[1])\n", + "\n", + "\n", + "nx.draw(graph, with_labels=True)" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -128,8 +143,8 @@ "C[1] = C[1].at[:, 1].set(1.0)\n", "\n", "D = [jnp.ones(b.shape[:2]) for b in B]\n", - "D[0] = D[0].at[0, 0].set(100.0)\n", - "D[1] = D[1].at[0, 4].set(10.0)\n", + "D[0] = D[0].at[0, 1].set(100.0)\n", + "D[1] = D[1].at[0, 2].set(10.0)\n", "D = jtu.tree_map(lambda x: x / x.sum(), D)\n", "\n", "\n", @@ -152,17 +167,14 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "(RecurrentFnOutput(reward=Array([0.46104574], dtype=float32), discount=Array([0.9096863], dtype=float32), prior_logits=Array([[-1.9459101, -1.9459101, -1.9459101, -1.9459101, -1.9459101,\n", - " -1.9459101, -1.9459101]], dtype=float32), value=Array([0.], dtype=float32)), [Array([[1.0000000e+00, 5.3334089e-33, 5.3334089e-33, 5.3334089e-33,\n", - " 3.5491815e-28, 2.2659778e-19, 2.2659778e-19]], dtype=float32), Array([[1.3877806e-17, 6.2499996e-02, 6.2499996e-02, 6.2499996e-02,\n", - " 6.2500000e-01, 6.2499996e-02, 6.2499996e-02, 6.2499996e-02]], dtype=float32)])\n" + "(RecurrentFnOutput(reward=Array([0.42654815], dtype=float32), discount=Array([0.90730643], dtype=float32), prior_logits=Array([[-1.0986123, -1.0986123, -1.0986123]], dtype=float32), value=Array([0.], dtype=float32)), [Array([[1.0000000e+00, 2.4699928e-33, 1.9837584e-31]], dtype=float32), Array([[1.850374e-17, 8.333333e-02, 8.333333e-01, 8.333333e-02]], dtype=float32)])\n" ] } ], @@ -179,469 +191,259 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[[0.0034353 0.01554515 0.01554515 0.00123668 0.17865622 0.17621045\n", - " 0.60937107]]\n" + "[[0.00186435 0.00165571 0.9964799 ]]\n" ] }, { "data": { "image/svg+xml": [ - "\n", + "\n", "\n", - "\n", + "\n", "\n", "\n", "0\n", - "\n", - "0\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.72\n", - "Visits: 33\n", + "\n", + "0\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 1.39\n", + "Visits: 33\n", "\n", - "\n", + "\n", "\n", - "1\n", - "\n", - "1\n", - "Reward: 0.46\n", - "Discount: 0.91\n", - "Value: 0.00\n", - "Visits: 1\n", + "2\n", + "\n", + "2\n", + "Reward: 0.43\n", + "Discount: 0.91\n", + "Value: 0.03\n", + "Visits: 13\n", "\n", - "\n", + "\n", "\n", - "0->1\n", - "\n", - "\n", - "0\n", - "Q: 0.46\n", - "p: 0.14\n", + "0->2\n", + "\n", + "\n", + "0\n", + "Q: 0.45\n", + "p: 0.33\n", "\n", - "\n", + "\n", "\n", - "6\n", - "\n", - "6\n", - "Reward: 0.57\n", - "Discount: 0.89\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", + "3\n", + "\n", + "3\n", + "Reward: 0.35\n", + "Discount: 0.08\n", + "Value: 0.80\n", + "Visits: 5\n", + "\n", + "\n", "\n", - "0->6\n", - "\n", - "\n", - "1\n", - "Q: 0.57\n", - "p: 0.14\n", + "0->3\n", + "\n", + "\n", + "1\n", + "Q: 0.41\n", + "p: 0.33\n", "\n", - "\n", + "\n", "\n", - "5\n", - "\n", - "5\n", - "Reward: 0.57\n", - "Discount: 0.06\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", + "1\n", + "\n", + "1\n", + "Reward: 1.37\n", + "Discount: 0.75\n", + "Value: 1.79\n", + "Visits: 14\n", + "\n", + "\n", "\n", - "0->5\n", - "\n", - "\n", - "2\n", - "Q: 0.57\n", - "p: 0.14\n", + "0->1\n", + "\n", + "\n", + "2\n", + "Q: 2.71\n", + "p: 0.33\n", "\n", - "\n", + "\n", "\n", - "7\n", - "\n", - "7\n", - "Reward: 0.39\n", - "Discount: 0.92\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", + "5\n", + "\n", + "5\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.03\n", + "Visits: 12\n", + "\n", + "\n", "\n", - "0->7\n", - "\n", - "\n", - "3\n", - "Q: 0.39\n", - "p: 0.14\n", + "2->5\n", + "\n", + "\n", + "0\n", + "Q: 0.03\n", + "p: 0.33\n", "\n", - "\n", + "\n", "\n", - "3\n", - "\n", - "3\n", - "Reward: 0.63\n", - "Discount: 0.06\n", - "Value: 1.75\n", - "Visits: 12\n", - "\n", - "\n", + "6\n", + "\n", + "6\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", "\n", - "0->3\n", - "\n", - "\n", - "4\n", - "Q: 0.74\n", - "p: 0.14\n", + "3->6\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", "\n", - "\n", + "\n", "\n", - "4\n", - "\n", - "4\n", - "Reward: 0.61\n", - "Discount: 0.88\n", - "Value: 0.15\n", - "Visits: 4\n", - "\n", - "\n", + "9\n", + "\n", + "9\n", + "Reward: 1.00\n", + "Discount: 1.00\n", + "Value: 0.33\n", + "Visits: 3\n", + "\n", + "\n", "\n", - "0->4\n", - "\n", - "\n", - "5\n", - "Q: 0.74\n", - "p: 0.14\n", + "3->9\n", + "\n", + "\n", + "1\n", + "Q: 1.33\n", + "p: 0.33\n", "\n", - "\n", + "\n", "\n", - "2\n", - "\n", - "2\n", - "Reward: 0.61\n", - "Discount: 0.88\n", - "Value: 0.25\n", - "Visits: 12\n", - "\n", - "\n", + "4\n", + "\n", + "4\n", + "Reward: 1.00\n", + "Discount: 1.00\n", + "Value: 0.92\n", + "Visits: 13\n", + "\n", + "\n", "\n", - "0->2\n", - "\n", - "\n", - "6\n", - "Q: 0.83\n", - "p: 0.14\n", + "1->4\n", + "\n", + "\n", + "0\n", + "Q: 1.92\n", + "p: 0.33\n", "\n", "\n", - "\n", + "\n", "8\n", - "\n", - "8\n", - "Reward: 1.00\n", - "Discount: 1.00\n", - "Value: 0.91\n", - "Visits: 11\n", - "\n", - "\n", - "\n", - "3->8\n", - "\n", - "\n", - "0\n", - "Q: 1.91\n", - "p: 0.14\n", + "\n", + "8\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 10\n", "\n", - "\n", - "\n", - "10\n", - "\n", - "10\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", + "\n", "\n", - "4->10\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", + "5->8\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", "\n", - "\n", + "\n", "\n", - "13\n", - "\n", - "13\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 2\n", - "\n", - "\n", - "\n", - "4->13\n", - "\n", - "\n", - "1\n", - "Q: 0.30\n", - "p: 0.14\n", + "31\n", + "\n", + "31\n", + "Reward: 0.37\n", + "Discount: 0.08\n", + "Value: 0.00\n", + "Visits: 1\n", "\n", - "\n", - "\n", - "9\n", - "\n", - "9\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "2->9\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", + "\n", + "\n", + "5->31\n", + "\n", + "\n", + "1\n", + "Q: 0.37\n", + "p: 0.33\n", "\n", "\n", - "\n", + "\n", "12\n", - "\n", - "12\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 8\n", - "\n", - "\n", - "\n", - "2->12\n", - "\n", - "\n", - "1\n", - "Q: 0.30\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "29\n", - "\n", - "29\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 2\n", - "\n", - "\n", - "\n", - "2->29\n", - "\n", - "\n", - "2\n", - "Q: 0.30\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "11\n", - "\n", - "11\n", - "Reward: 1.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 10\n", - "\n", - "\n", - "\n", - "8->11\n", - "\n", - "\n", - "0\n", - "Q: 1.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "16\n", - "\n", - "16\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "13->16\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "14\n", - "\n", - "14\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "12->14\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "17\n", - "\n", - "17\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "12->17\n", - "\n", - "\n", - "1\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "19\n", - "\n", - "19\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "12->19\n", - "\n", - "\n", - "2\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "21\n", - "\n", - "21\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "12->21\n", - "\n", - "\n", - "3\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "23\n", - "\n", - "23\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "12->23\n", - "\n", - "\n", - "4\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "25\n", - "\n", - "25\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", + "\n", + "12\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", "\n", - "\n", - "\n", - "12->25\n", - "\n", - "\n", - "5\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "27\n", - "\n", - "27\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", + "\n", + "\n", + "9->12\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "15\n", + "\n", + "15\n", + "Reward: 1.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", "\n", - "\n", - "\n", - "12->27\n", - "\n", - "\n", - "6\n", - "Q: 0.00\n", - "p: 0.14\n", + "\n", + "\n", + "9->15\n", + "\n", + "\n", + "1\n", + "Q: 1.00\n", + "p: 0.33\n", "\n", - "\n", - "\n", - "31\n", - "\n", - "31\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", + "\n", + "\n", + "7\n", + "\n", + "7\n", + "Reward: 1.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 12\n", "\n", - "\n", - "\n", - "29->31\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", + "\n", + "\n", + "4->7\n", + "\n", + "\n", + "0\n", + "Q: 1.00\n", + "p: 0.33\n", "\n", "\n", "" @@ -650,7 +452,7 @@ "" ] }, - "execution_count": 12, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -682,1742 +484,582 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[[0.05175781 0.03710938 0.8779297 0.00390625 0.01269531 0.00976562\n", - " 0.00683594]]\n" + "[[0.05859375 0.01171875 0.9296875 ]]\n" ] }, { "data": { "image/svg+xml": [ - "\n", + "\n", "\n", - "\n", + "\n", "\n", "\n", "0\n", - "\n", - "0\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 1.04\n", - "Visits: 1025\n", + "\n", + "0\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 1.65\n", + "Visits: 1025\n", "\n", - "\n", + "\n", "\n", - "1\n", - "\n", - "1\n", - "Reward: 0.46\n", - "Discount: 0.91\n", - "Value: 0.30\n", - "Visits: 53\n", - "\n", - "\n", + "14\n", + "\n", + "14\n", + "Reward: 0.43\n", + "Discount: 0.91\n", + "Value: 1.22\n", + "Visits: 60\n", + "\n", + "\n", "\n", - "0->1\n", - "\n", - "\n", - "0\n", - "Q: 0.74\n", - "p: 0.23\n", + "0->14\n", + "\n", + "\n", + "0\n", + "Q: 1.53\n", + "p: 0.26\n", "\n", - "\n", + "\n", "\n", - "37\n", - "\n", - "37\n", - "Reward: 0.57\n", - "Discount: 0.89\n", - "Value: 0.47\n", - "Visits: 38\n", - "\n", - "\n", + "10\n", + "\n", + "10\n", + "Reward: 0.35\n", + "Discount: 0.92\n", + "Value: 0.61\n", + "Visits: 12\n", + "\n", + "\n", "\n", - "0->37\n", - "\n", - "\n", - "1\n", - "Q: 0.99\n", - "p: 0.14\n", - "\n", - "\n", + "0->10\n", + "\n", + "\n", + "1\n", + "Q: 0.91\n", + "p: 0.31\n", + "\n", + "\n", "\n", - "27\n", - "\n", - "27\n", - "Reward: 0.57\n", - "Discount: 0.89\n", - "Value: 0.56\n", - "Visits: 899\n", - "\n", - "\n", + "1\n", + "\n", + "1\n", + "Reward: 1.37\n", + "Discount: 0.24\n", + "Value: 1.28\n", + "Visits: 952\n", + "\n", + "\n", "\n", - "0->27\n", - "\n", - "\n", - "2\n", - "Q: 1.07\n", - "p: 0.16\n", - "\n", - "\n", + "0->1\n", + "\n", + "\n", + "2\n", + "Q: 1.67\n", + "p: 0.43\n", + "\n", + "\n", "\n", - "57\n", - "\n", - "57\n", - "Reward: 0.39\n", - "Discount: 0.92\n", - "Value: 0.15\n", - "Visits: 4\n", - "\n", - "\n", + "101\n", + "\n", + "101\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 3\n", + "\n", + "\n", "\n", - "0->57\n", - "\n", - "\n", - "3\n", - "Q: 0.53\n", - "p: 0.11\n", - "\n", - "\n", + "14->101\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", "\n", - "36\n", - "\n", - "36\n", - "Reward: 0.63\n", - "Discount: 0.88\n", - "Value: 0.25\n", - "Visits: 13\n", - "\n", - "\n", + "46\n", + "\n", + "46\n", + "Reward: 0.37\n", + "Discount: 0.92\n", + "Value: 1.10\n", + "Visits: 53\n", + "\n", + "\n", "\n", - "0->36\n", - "\n", - "\n", - "4\n", - "Q: 0.85\n", - "p: 0.14\n", - "\n", - "\n", + "14->46\n", + "\n", + "\n", + "1\n", + "Q: 1.38\n", + "p: 0.33\n", + "\n", + "\n", "\n", - "71\n", - "\n", - "71\n", - "Reward: 0.61\n", - "Discount: 0.88\n", - "Value: 0.27\n", - "Visits: 10\n", - "\n", - "\n", + "104\n", + "\n", + "104\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 3\n", + "\n", + "\n", "\n", - "0->71\n", - "\n", - "\n", - "5\n", - "Q: 0.84\n", - "p: 0.11\n", - "\n", - "\n", + "14->104\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", "\n", - "72\n", - "\n", - "72\n", - "Reward: 0.61\n", - "Discount: 0.88\n", - "Value: 0.17\n", - "Visits: 7\n", - "\n", - "\n", + "33\n", + "\n", + "33\n", + "Reward: 0.37\n", + "Discount: 0.92\n", + "Value: 0.00\n", + "Visits: 7\n", + "\n", + "\n", "\n", - "0->72\n", - "\n", - "\n", - "6\n", - "Q: 0.76\n", - "p: 0.11\n", - "\n", - "\n", + "10->33\n", + "\n", + "\n", + "0\n", + "Q: 0.37\n", + "p: 0.33\n", + "\n", + "\n", "\n", - "38\n", - "\n", - "38\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", + "547\n", + "\n", + "547\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", "\n", - "1->38\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", + "10->547\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", "\n", - "40\n", - "\n", - "40\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 7\n", - "\n", - "\n", + "666\n", + "\n", + "666\n", + "Reward: 1.28\n", + "Discount: 0.83\n", + "Value: 0.33\n", + "Visits: 3\n", + "\n", + "\n", "\n", - "1->40\n", - "\n", - "\n", - "1\n", - "Q: 0.30\n", - "p: 0.14\n", + "10->666\n", + "\n", + "\n", + "2\n", + "Q: 1.56\n", + "p: 0.33\n", "\n", "\n", "\n", "2\n", - "\n", - "2\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 33\n", + "\n", + "2\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.75\n", + "Visits: 13\n", "\n", "\n", "\n", "1->2\n", - "\n", - "\n", - "2\n", - "Q: 0.30\n", - "p: 0.14\n", + "\n", + "\n", + "0\n", + "Q: 0.75\n", + "p: 0.33\n", "\n", - "\n", + "\n", "\n", - "47\n", - "\n", - "47\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.23\n", - "Visits: 8\n", - "\n", - "\n", + "3\n", + "\n", + "3\n", + "Reward: 0.97\n", + "Discount: 0.33\n", + "Value: 0.97\n", + "Visits: 925\n", + "\n", + "\n", "\n", - "1->47\n", - "\n", - "\n", - "3\n", - "Q: 0.52\n", - "p: 0.14\n", - "\n", - "\n", + "1->3\n", + "\n", + "\n", + "1\n", + "Q: 1.29\n", + "p: 0.33\n", + "\n", + "\n", "\n", - "52\n", - "\n", - "52\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", + "9\n", + "\n", + "9\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.75\n", + "Visits: 13\n", + "\n", + "\n", "\n", - "1->52\n", - "\n", - "\n", - "4\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "39\n", - "\n", - "39\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "1->39\n", - "\n", - "\n", - "5\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "53\n", - "\n", - "53\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "1->53\n", - "\n", - "\n", - "6\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "283\n", - "\n", - "283\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.30\n", - "Visits: 31\n", - "\n", - "\n", - "\n", - "37->283\n", - "\n", - "\n", - "0\n", - "Q: 0.58\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "363\n", - "\n", - "363\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "37->363\n", - "\n", - "\n", - "1\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "362\n", - "\n", - "362\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "37->362\n", - "\n", - "\n", - "2\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "164\n", - "\n", - "164\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "37->164\n", - "\n", - "\n", - "3\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "84\n", - "\n", - "84\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "37->84\n", - "\n", - "\n", - "4\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "364\n", - "\n", - "364\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "37->364\n", - "\n", - "\n", - "5\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "400\n", - "\n", - "400\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "37->400\n", - "\n", - "\n", - "6\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "59\n", - "\n", - "59\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.30\n", - "Visits: 863\n", - "\n", - "\n", - "\n", - "27->59\n", - "\n", - "\n", - "0\n", - "Q: 0.58\n", - "p: 0.14\n", + "1->9\n", + "\n", + "\n", + "2\n", + "Q: 0.75\n", + "p: 0.33\n", "\n", - "\n", - "\n", - "95\n", - "\n", - "95\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.12\n", - "Visits: 5\n", - "\n", - "\n", - "\n", - "27->95\n", - "\n", - "\n", - "1\n", - "Q: 0.12\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "97\n", - "\n", - "97\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.20\n", - "Visits: 6\n", - "\n", - "\n", - "\n", - "27->97\n", - "\n", - "\n", - "2\n", - "Q: 0.20\n", - "p: 0.14\n", - "\n", - "\n", + "\n", "\n", - "100\n", - "\n", - "100\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.20\n", - "Visits: 6\n", - "\n", - "\n", - "\n", - "27->100\n", - "\n", - "\n", - "3\n", - "Q: 0.20\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "98\n", - "\n", - "98\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.25\n", - "Visits: 7\n", - "\n", - "\n", - "\n", - "27->98\n", - "\n", - "\n", - "4\n", - "Q: 0.25\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "99\n", - "\n", - "99\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.12\n", - "Visits: 5\n", - "\n", - "\n", - "\n", - "27->99\n", - "\n", - "\n", - "5\n", - "Q: 0.12\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "96\n", - "\n", - "96\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.20\n", - "Visits: 6\n", - "\n", - "\n", - "\n", - "27->96\n", - "\n", - "\n", - "6\n", - "Q: 0.20\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "215\n", - "\n", - "215\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "57->215\n", - "\n", - "\n", - "1\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "466\n", - "\n", - "466\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 2\n", - "\n", - "\n", - "\n", - "57->466\n", - "\n", - "\n", - "6\n", - "Q: 0.30\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "58\n", - "\n", - "58\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "36->58\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "124\n", - "\n", - "124\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 11\n", - "\n", - "\n", - "\n", - "36->124\n", - "\n", - "\n", - "1\n", - "Q: 0.30\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "105\n", - "\n", - "105\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 9\n", - "\n", - "\n", - "\n", - "71->105\n", - "\n", - "\n", - "2\n", - "Q: 0.30\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "229\n", - "\n", - "229\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "72->229\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "406\n", - "\n", - "406\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 4\n", - "\n", - "\n", - "\n", - "72->406\n", - "\n", - "\n", - "1\n", - "Q: 0.30\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "106\n", - "\n", - "106\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "72->106\n", - "\n", - "\n", - "6\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "42\n", + "397\n", "\n", - "42\n", + "397\n", "Reward: 0.00\n", "Discount: 1.00\n", "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "40->42\n", - "\n", - "\n", - "1\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "44\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "101->397\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "203\n", "\n", - "44\n", + "203\n", "Reward: 0.00\n", "Discount: 1.00\n", "Value: 0.00\n", - "Visits: 1\n", + "Visits: 2\n", "\n", - "\n", - "\n", - "40->44\n", - "\n", - "\n", - "2\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "41\n", + "\n", + "\n", + "46->203\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "280\n", "\n", - "41\n", + "280\n", "Reward: 0.00\n", "Discount: 1.00\n", "Value: 0.00\n", - "Visits: 1\n", + "Visits: 2\n", "\n", - "\n", - "\n", - "40->41\n", - "\n", - "\n", - "3\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "43\n", + "\n", + "\n", + "46->280\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "95\n", "\n", - "43\n", - "Reward: 0.00\n", - "Discount: 1.00\n", + "95\n", + "Reward: 1.21\n", + "Discount: 0.91\n", "Value: 0.00\n", - "Visits: 1\n", + "Visits: 48\n", "\n", - "\n", - "\n", - "40->43\n", - "\n", - "\n", - "4\n", - "Q: 0.00\n", - "p: 0.14\n", + "\n", + "\n", + "46->95\n", + "\n", + "\n", + "2\n", + "Q: 1.21\n", + "p: 0.33\n", "\n", - "\n", - "\n", - "46\n", + "\n", + "\n", + "398\n", "\n", - "46\n", + "398\n", "Reward: 0.00\n", "Discount: 1.00\n", "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "40->46\n", - "\n", - "\n", - "5\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "45\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "104->398\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "69\n", "\n", - "45\n", + "69\n", "Reward: 0.00\n", "Discount: 1.00\n", "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "40->45\n", - "\n", - "\n", - "6\n", - "Q: 0.00\n", - "p: 0.14\n", + "Visits: 6\n", "\n", - "\n", - "\n", - "3\n", + "\n", + "\n", + "33->69\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "944\n", "\n", - "3\n", - "Reward: 0.00\n", + "944\n", + "Reward: 1.00\n", "Discount: 1.00\n", "Value: 0.00\n", - "Visits: 5\n", - "\n", - "\n", - "\n", - "2->3\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", + "Visits: 1\n", "\n", - "\n", - "\n", - "9\n", + "\n", + "\n", + "666->944\n", + "\n", + "\n", + "0\n", + "Q: 1.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "794\n", "\n", - "9\n", + "794\n", "Reward: 0.00\n", "Discount: 1.00\n", "Value: 0.00\n", - "Visits: 4\n", + "Visits: 1\n", "\n", - "\n", - "\n", - "2->9\n", - "\n", - "\n", - "1\n", - "Q: 0.00\n", - "p: 0.14\n", + "\n", + "\n", + "666->794\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.33\n", "\n", - "\n", - "\n", - "6\n", + "\n", + "\n", + "31\n", "\n", - "6\n", + "31\n", "Reward: 0.00\n", "Discount: 1.00\n", "Value: 0.00\n", - "Visits: 4\n", - "\n", - "\n", - "\n", - "2->6\n", - "\n", - "\n", - "2\n", - "Q: 0.00\n", - "p: 0.14\n", + "Visits: 1\n", "\n", - "\n", - "\n", - "5\n", + "\n", + "\n", + "2->31\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "63\n", "\n", - "5\n", - "Reward: 0.00\n", - "Discount: 1.00\n", + "63\n", + "Reward: 0.97\n", + "Discount: 0.33\n", "Value: 0.00\n", - "Visits: 5\n", - "\n", - "\n", - "\n", - "2->5\n", - "\n", - "\n", - "3\n", - "Q: 0.00\n", - "p: 0.14\n", + "Visits: 10\n", "\n", - "\n", - "\n", - "7\n", + "\n", + "\n", + "2->63\n", + "\n", + "\n", + "1\n", + "Q: 0.97\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "507\n", "\n", - "7\n", + "507\n", "Reward: 0.00\n", "Discount: 1.00\n", "Value: 0.00\n", - "Visits: 4\n", + "Visits: 1\n", "\n", - "\n", - "\n", - "2->7\n", - "\n", - "\n", - "4\n", - "Q: 0.00\n", - "p: 0.14\n", + "\n", + "\n", + "2->507\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.33\n", "\n", "\n", - "\n", + "\n", "4\n", "\n", "4\n", "Reward: 0.00\n", "Discount: 1.00\n", "Value: 0.00\n", - "Visits: 5\n", + "Visits: 12\n", "\n", - "\n", - "\n", - "2->4\n", - "\n", - "\n", - "5\n", - "Q: 0.00\n", - "p: 0.14\n", + "\n", + "\n", + "3->4\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", "\n", - "\n", - "\n", - "8\n", + "\n", + "\n", + "5\n", "\n", - "8\n", - "Reward: 0.00\n", + "5\n", + "Reward: 1.00\n", "Discount: 1.00\n", "Value: 0.00\n", - "Visits: 5\n", - "\n", - "\n", - "\n", - "2->8\n", - "\n", - "\n", - "6\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "48\n", + "Visits: 900\n", + "\n", + "\n", + "\n", + "3->5\n", + "\n", + "\n", + "1\n", + "Q: 1.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "13\n", "\n", - "48\n", + "13\n", "Reward: 0.00\n", "Discount: 1.00\n", "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "47->48\n", - "\n", - "\n", - "1\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "49\n", + "Visits: 12\n", + "\n", + "\n", + "\n", + "3->13\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "32\n", "\n", - "49\n", - "Reward: 0.31\n", - "Discount: 0.93\n", + "32\n", + "Reward: 0.00\n", + "Discount: 1.00\n", "Value: 0.00\n", - "Visits: 6\n", - "\n", - "\n", - "\n", - "47->49\n", - "\n", - "\n", - "5\n", - "Q: 0.31\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "332\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "9->32\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "64\n", "\n", - "332\n", - "Reward: 0.31\n", - "Discount: 0.93\n", + "64\n", + "Reward: 0.97\n", + "Discount: 0.67\n", "Value: 0.00\n", - "Visits: 30\n", - "\n", - "\n", - "\n", - "283->332\n", - "\n", - "\n", - "2\n", - "Q: 0.31\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "111\n", - "\n", - "111\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 5\n", - "\n", - "\n", - "\n", - "59->111\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "102\n", - "\n", - "102\n", - "Reward: 0.31\n", - "Discount: 0.93\n", - "Value: 0.00\n", - "Visits: 418\n", - "\n", - "\n", - "\n", - "59->102\n", - "\n", - "\n", - "1\n", - "Q: 0.31\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "115\n", - "\n", - "115\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 5\n", - "\n", - "\n", - "\n", - "59->115\n", - "\n", - "\n", - "2\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "61\n", - "\n", - "61\n", - "Reward: 0.31\n", - "Discount: 0.93\n", - "Value: 0.00\n", - "Visits: 419\n", - "\n", - "\n", - "\n", - "59->61\n", - "\n", - "\n", - "3\n", - "Q: 0.31\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "113\n", - "\n", - "113\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 5\n", - "\n", - "\n", - "\n", - "59->113\n", - "\n", - "\n", - "4\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "114\n", - "\n", - "114\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 5\n", - "\n", - "\n", - "\n", - "59->114\n", - "\n", - "\n", - "5\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "60\n", - "\n", - "60\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 5\n", - "\n", - "\n", - "\n", - "59->60\n", - "\n", - "\n", - "6\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "610\n", - "\n", - "610\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 2\n", - "\n", - "\n", - "\n", - "95->610\n", - "\n", - "\n", - "0\n", - "Q: 0.30\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "198\n", - "\n", - "198\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "95->198\n", - "\n", - "\n", - "2\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "395\n", - "\n", - "395\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "95->395\n", - "\n", - "\n", - "5\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "396\n", - "\n", - "396\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 4\n", - "\n", - "\n", - "\n", - "97->396\n", - "\n", - "\n", - "0\n", - "Q: 0.30\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "201\n", - "\n", - "201\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "97->201\n", - "\n", - "\n", - "3\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "401\n", - "\n", - "401\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 4\n", - "\n", - "\n", - "\n", - "100->401\n", - "\n", - "\n", - "0\n", - "Q: 0.30\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "200\n", - "\n", - "200\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "100->200\n", - "\n", - "\n", - "5\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "204\n", - "\n", - "204\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 6\n", - "\n", - "\n", - "\n", - "98->204\n", - "\n", - "\n", - "0\n", - "Q: 0.30\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "611\n", - "\n", - "611\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 2\n", - "\n", - "\n", - "\n", - "99->611\n", - "\n", - "\n", - "0\n", - "Q: 0.30\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "398\n", - "\n", - "398\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "99->398\n", - "\n", - "\n", - "1\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "205\n", - "\n", - "205\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "99->205\n", - "\n", - "\n", - "4\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "399\n", - "\n", - "399\n", - "Reward: 0.30\n", - "Discount: 0.94\n", - "Value: 0.00\n", - "Visits: 4\n", - "\n", - "\n", - "\n", - "96->399\n", - "\n", - "\n", - "0\n", - "Q: 0.30\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "199\n", - "\n", - "199\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "96->199\n", - "\n", - "\n", - "3\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "800\n", - "\n", - "800\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "466->800\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "173\n", - "\n", - "173\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 2\n", - "\n", - "\n", - "\n", - "124->173\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "202\n", - "\n", - "202\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 2\n", - "\n", - "\n", - "\n", - "124->202\n", - "\n", - "\n", - "1\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "230\n", - "\n", - "230\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "124->230\n", - "\n", - "\n", - "2\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "397\n", - "\n", - "397\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "124->397\n", - "\n", - "\n", - "3\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "284\n", - "\n", - "284\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 2\n", - "\n", - "\n", - "\n", - "124->284\n", - "\n", - "\n", - "4\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "140\n", - "\n", - "140\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "124->140\n", - "\n", - "\n", - "5\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "365\n", - "\n", - "365\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "124->365\n", - "\n", - "\n", - "6\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "112\n", - "\n", - "112\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 2\n", - "\n", - "\n", - "\n", - "105->112\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "366\n", - "\n", - "366\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "105->366\n", - "\n", - "\n", - "1\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "155\n", - "\n", - "155\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "105->155\n", - "\n", - "\n", - "2\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "256\n", - "\n", - "256\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "105->256\n", - "\n", - "\n", - "3\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "678\n", - "\n", - "678\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "105->678\n", - "\n", - "\n", - "4\n", - "Q: 0.00\n", - "p: 0.14\n", + "Visits: 10\n", "\n", - "\n", - "\n", - "203\n", - "\n", - "203\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "105->203\n", - "\n", - "\n", - "5\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "416\n", - "\n", - "416\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "105->416\n", - "\n", - "\n", - "6\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "966\n", - "\n", - "966\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "406->966\n", - "\n", - "\n", - "0\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "713\n", - "\n", - "713\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "406->713\n", - "\n", - "\n", - "4\n", - "Q: 0.00\n", - "p: 0.14\n", - "\n", - "\n", - "\n", - "462\n", - "\n", - "462\n", - "Reward: 0.00\n", - "Discount: 1.00\n", - "Value: 0.00\n", - "Visits: 1\n", - "\n", - "\n", - "\n", - "406->462\n", - "\n", - "\n", - "5\n", - "Q: 0.00\n", - "p: 0.14\n", + "\n", + "\n", + "9->64\n", + "\n", + "\n", + "1\n", + "Q: 0.97\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "508\n", + "\n", + "508\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "9->508\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.33\n", "\n", "\n", "" @@ -2426,7 +1068,7 @@ "" ] }, - "execution_count": 12, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -2458,21 +1100,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 25, "metadata": {}, - "outputs": [ - { - "ename": "TypeError", - "evalue": "stochastic_muzero_policy() missing 2 required positional arguments: 'decision_recurrent_fn' and 'chance_recurrent_fn'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m/home/tverbele/Code/python/hackaton/pymdp/examples/mcts/graph_worlds_demo.ipynb Cell 10\u001b[0m line \u001b[0;36m9\n\u001b[1;32m 1\u001b[0m root \u001b[39m=\u001b[39m mctx\u001b[39m.\u001b[39mRootFnOutput(\n\u001b[1;32m 2\u001b[0m prior_logits\u001b[39m=\u001b[39mjnp\u001b[39m.\u001b[39mlog(agent\u001b[39m.\u001b[39mE),\n\u001b[1;32m 3\u001b[0m value\u001b[39m=\u001b[39mjnp\u001b[39m.\u001b[39mzeros((batch_size)),\n\u001b[1;32m 4\u001b[0m embedding\u001b[39m=\u001b[39magent\u001b[39m.\u001b[39mD,\n\u001b[1;32m 5\u001b[0m )\n\u001b[1;32m 7\u001b[0m n_pi \u001b[39m=\u001b[39m \u001b[39mlen\u001b[39m(agent\u001b[39m.\u001b[39mpolicies)\n\u001b[0;32m----> 9\u001b[0m mctx\u001b[39m.\u001b[39;49mstochastic_muzero_policy(\n\u001b[1;32m 10\u001b[0m agent,\n\u001b[1;32m 11\u001b[0m rng_key,\n\u001b[1;32m 12\u001b[0m root,\n\u001b[1;32m 13\u001b[0m num_simulations\u001b[39m=\u001b[39;49m\u001b[39m512\u001b[39;49m,\n\u001b[1;32m 14\u001b[0m max_depth\u001b[39m=\u001b[39;49m\u001b[39m3\u001b[39;49m\n\u001b[1;32m 15\u001b[0m )\n", - "\u001b[0;31mTypeError\u001b[0m: stochastic_muzero_policy() missing 2 required positional arguments: 'decision_recurrent_fn' and 'chance_recurrent_fn'" - ] - } - ], + "outputs": [], "source": [ "root = mctx.RootFnOutput(\n", " prior_logits=jnp.log(agent.E),\n", @@ -2482,21 +1112,15 @@ "\n", "n_pi = len(agent.policies)\n", "\n", - "mctx.stochastic_muzero_policy(\n", - " agent,\n", - " rng_key,\n", - " root,\n", - " num_simulations=512,\n", - " max_depth=3\n", - ")" + "# TODO stochastic muzero policy requires decision_recurrent_fn and chance_recurrent_fn\n", + "# mctx.stochastic_muzero_policy(\n", + "# agent,\n", + "# rng_key,\n", + "# root,\n", + "# num_simulations=512,\n", + "# max_depth=3\n", + "# )" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { From 086b8817763f18ae122aabe8d775b31c2b6ae398 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Thu, 27 Jun 2024 17:22:44 +0200 Subject: [PATCH 143/196] use custom scan to use scan signature to iterate over sparse arrays --- .../sparse_benchmark.ipynb | 86 +++++++++++++++--- pymdp/jax/inference.py | 90 ++++++++++--------- pymdp/jax/utils.py | 18 ---- test/test_jax_sparse_backend.py | 26 ++++-- 4 files changed, 143 insertions(+), 77 deletions(-) diff --git a/examples/inference_and_learning/sparse_benchmark.ipynb b/examples/inference_and_learning/sparse_benchmark.ipynb index 89a4d25b..62770fe7 100644 --- a/examples/inference_and_learning/sparse_benchmark.ipynb +++ b/examples/inference_and_learning/sparse_benchmark.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -19,7 +19,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -42,7 +42,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -202,9 +202,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'smoothed beliefs sparse')" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqIAAAF2CAYAAAC1RvpXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAvAklEQVR4nO3deXRTdf7/8Vfa0nQPIJS27ILIIotWARFapUoHFcURcERl+yooFUXcHf3hMmNFVBSQ1a+KzCjjAuj41WGz4uiAbFZHHRQVGUakCEiBAsE2n98fnmYI3ZKS9nNbno9zeg69ubl535u8mleT2+AyxhgBAAAAtSzC9gAAAAA4OVFEAQAAYAVFFAAAAFZQRAEAAGAFRRQAAABWUEQBAABgBUUUAAAAVlBEAQAAYAVFFAAAAFZQRIPw/fffy+Vy6cUXX/Qve/DBB+VyuewNFaJg5z3//PN1xhlnhPW227Rpo1GjRvm/f//99+VyufT+++9Xa3vr169Xnz59FB8fL5fLpfz8/LDMCWeqicdkRVwulx588MFK1yl9/L7++uthu90XX3xRLpdL33//vX/Z+eefr/PPP79a2ysuLtZdd92lli1bKiIiQoMHDw7LnMcq7+ci6iYyFrrayNjJgiKq/z5Ay/u65557gt7Oo48+qqVLl9bcoNAvv/yioUOHau/evZo2bZoWLlyo1q1b2x4LJ2jHjh168MEH+aUiTJ5//nlNnTpVQ4YM0YIFC3TbbbfZHgmWkbHwImPhE2V7ACd5+OGH1bZt24BlZ5xxhlq3bq3Dhw+rQYMGlV7/0Ucf1ZAhQ/jNqAoZGRk6fPiwoqOjQ77ut99+q23btmn+/Pm6/vrra2A62LBjxw499NBDatOmjXr06GF7HEdYvnx5ta/73nvvqXnz5po2bVoYJ0JdRsbKImPOQBE9xsCBA3X22WeXe1lMTEwtT/OrI0eOKDo6WhER9efF64iIiGofz127dkmSGjZsGMaJAOepzi9qpXbt2kVGgCqQsbIOHTqkuLi4Wr3N+tNualAw50K5XC4VFRVpwYIF/rf1jz0v8ocfftCYMWPUrFkzud1udenSRc8//3zANkrPi1m0aJHuv/9+NW/eXHFxcdq/f78k6eOPP9ZvfvMbeTwexcXFKTMzUx999FGZWT788EOdc845iomJUbt27TR37tyQ93njxo3q06ePYmNj1bZtW82ZM6fMOl6vV5MnT1b79u3ldrvVsmVL3XXXXfJ6vZVuu6JzRKvav1GjRikzM1OSNHToULlcLv/5PTt37tTo0aPVokULud1upaam6vLLLw84H+hkceDAAU2cOFFt2rSR2+1WcnKyLrroIm3atMm/Tuk5YZ999pkyMzMVFxen9u3b+8/JWr16tXr16qXY2FidfvrpWrlyZZnb+eSTTzRw4EAlJSUpISFBWVlZWrt2bZn1vvvuOw0dOlSNGzdWXFycevfurf/7v//zX/7+++/rnHPOkSSNHj3an5/j8/bll1/qggsuUFxcnJo3b67HH3+8zG0F+5j0er267bbb1LRpUyUmJuqyyy7Tf/7zn+APsqSSkhLdd999SklJUXx8vC677DJt3769zHrB5vZ45Z2/VtX+lf6sysvL0xdffOE/lqVZW7RokdLT05WYmKikpCR17dpVzzzzTJWz7Nu3T6NGjZLH41HDhg01cuRI7du3r9x1N2/erCFDhqhx48aKiYnR2WefrbfeeitgndLToT766CNNmjRJTZs2VXx8vK644gr99NNPAetu2LBB2dnZatKkif/n0ZgxYwLW8fl8evrpp9WlSxfFxMSoWbNmGjdunH7++ecq9606yBgZC3fGqrpeaWY++OADjRs3TqeccoqSkpI0YsSIMo/zN998U5dcconS0tLkdrvVrl07PfLIIyopKSmz/2eccYY2btyojIwMxcXF6b777pNUy7kzMC+88IKRZFauXGl++umngC9jjNm6dauRZF544QX/dSZPnmyOPXwLFy40brfb9OvXzyxcuNAsXLjQ/OMf/zDGGLNz507TokUL07JlS/Pwww+b2bNnm8suu8xIMtOmTfNvIy8vz0gynTt3Nj169DBPPfWUyc3NNUVFRWbVqlUmOjranHvuuebJJ58006ZNM926dTPR0dHm448/9m/js88+M7GxsaZVq1YmNzfXPPLII6ZZs2amW7duJpi7OzMz06SlpZnk5GRz8803m+nTp5u+ffsaSeZ///d//euVlJSYAQMGmLi4ODNx4kQzd+5cc/PNN5uoqChz+eWXB2yzdevWZuTIkWX2My8vz78smP37xz/+Ye677z4jydxyyy1m4cKFZvny5cYYY/r06WM8Ho+5//77zXPPPWceffRRc8EFF5jVq1dXuc/1zfDhw010dLSZNGmSee6558yUKVPMoEGDzJ/+9Cf/OqX3c8uWLc2dd95pZsyYYTp37mwiIyPNokWLTEpKinnwwQfN008/bZo3b248Ho/Zv3+///qff/65iY+PN6mpqeaRRx4xjz32mGnbtq1xu91m7dq1/vV27txpmjVrZhITE83vf/9789RTT5nu3bubiIgIs3jxYv86Dz/8sJFkxo4d68/Pt99+W2bWW2+91cyaNcv079/fSDLvvPOO/7ZCeUxee+21RpIZPny4mTlzpvntb3/rz8jkyZMrPb6lj9+uXbuabt26maeeesrcc889JiYmxnTo0MEcOnTIv26wuS39GbR169aA+ygzMzOk/Tt48KBZuHCh6dixo2nRooX/WO7cudMsX77cSDJZWVnm2WefNc8++6y5+eabzdChQyvdX5/PZzIyMkxERIQZP368mTFjhunfv7//eB37c/Hzzz83Ho/HdO7c2UyZMsXMnDnTZGRkGJfL5b+/j93fM8880/Tv39/MmDHD3H777SYyMtIMGzbMv15BQYFp1KiR6dChg5k6daqZP3+++f3vf286deoUMOP1119voqKizA033GDmzJlj7r77bhMfH2/OOeccc/To0Ur3rzrIGBkLZ8aCuV7p/F27djX9+vUz06dPNzk5OSYiIsJkZGQYn8/nX3fw4MFm2LBhZurUqWb27Nlm6NChRpK54447Am43MzPTpKSkmKZNm5oJEyaYuXPnmqVLl9Z67iii5r93cHlfxgRXRI0xJj4+PqBwlfqf//kfk5qaanbv3h2w/He/+53xeDz+UJWG79RTTw0Ims/nM6eddprJzs4OeLAdOnTItG3b1lx00UX+ZYMHDzYxMTFm27Zt/mVffvmliYyMDLqISjJPPvmkf5nX6zU9evQwycnJ/gfXwoULTUREhPn73/8ecP05c+YYSeajjz7yL6uqiIayf6XXfe211/zLfv75ZyPJTJ06tcr9Oxl4PB6Tk5NT6Tql9/PLL7/sX7Z582YjyURERAQ80S1btqzM43/w4MEmOjra/0RmjDE7duwwiYmJJiMjw79s4sSJRlLA4+TAgQOmbdu2pk2bNqakpMQYY8z69evL3Mbxs7700kv+ZV6v16SkpJgrr7zSvyzYx2R+fr6RZMaPHx+w3vDhw0N6kmzevHlAcXj11VeNJPPMM88YY0J7XAfzJBlK5jIzM02XLl0C1rv11ltNUlKSKS4urnT/jrd06VIjyTz++OP+ZcXFxaZfv35l7rOsrCzTtWtXc+TIEf8yn89n+vTpY0477bQy+3vhhRcGHJvbbrvNREZGmn379hljjFmyZImRZNavX1/hfH//+9+NJPPnP/85YPnf/va3cpeHAxkjY+HMWDDXK50/PT09oOQ9/vjjRpJ58803/cuO7Q+lxo0bZ+Li4gKyWXq/z5kzJ2Dd2s4db80f49lnn9WKFSsCvk6UMUZvvPGGBg0aJGOMdu/e7f/Kzs5WYWFhwNs5kjRy5EjFxsb6v8/Pz9eWLVs0fPhw7dmzx3/9oqIiZWVl6YMPPpDP51NJSYmWLVumwYMHq1WrVv7rd+rUSdnZ2UHPHBUVpXHjxvm/j46O1rhx47Rr1y5t3LhRkvTaa6+pU6dO6tixY8A+9e/fX5KUl5cX9O0Fu38ViY2NVXR0tN5///0aeyuuLmnYsKE+/vhj7dixo9L1EhIS9Lvf/c7//emnn66GDRuqU6dO6tWrl3956b+/++47Sb++XbZ8+XINHjxYp556qn+91NRUDR8+XB9++KH/dJJ33nlHPXv2VN++fQNud+zYsfr+++/15ZdfBrVPCQkJuvbaa/3fR0dHq2fPnv6ZpOAfk++8844k6ZZbbgm4jYkTJwY1S6kRI0YoMTHR//2QIUOUmprq3/6JPq6Pd6KZa9iwoYqKikL+ufbOO+8oKipKN910k39ZZGSkJkyYELDe3r179d5772nYsGE6cOCAf749e/YoOztbW7Zs0Q8//BBwnbFjxwZ8rFy/fv1UUlKibdu2+WeWpLffflu//PJLufO99tpr8ng8uuiiiwKOS3p6uhISEkL6WRQsMkbGylPdjIVyvbFjxwb84fRNN92kqKgo/zGRFNAfSrPYr18/HTp0SJs3bw7Yntvt1ujRo8vMI9Ve7vhjpWP07Nmzwj9Wqq6ffvpJ+/bt07x58zRv3rxy1yn9A5xSx//l/pYtWyT9WlArUlhYKK/Xq8OHD+u0004rc/npp58e8ECtTFpamuLj4wOWdejQQdKv58f07t1bW7Zs0b/+9S81bdq03G0cv0+VCXb/GjVqVO5lbrdbU6ZM0e23365mzZqpd+/euvTSSzVixAilpKQEPUd98fjjj2vkyJFq2bKl0tPTdfHFF2vEiBEBT2iS1KJFizKfLevxeNSyZcsyyyT5S/5PP/2kQ4cO6fTTTy9z2506dZLP59P27dvVpUsXbdu2LeAJ99j1JGnbtm1BfX5hebM2atRIn332mf/7YB+T27ZtU0REhNq1axdweXn7U5njc+ZyudS+fXv/eckn+rg+3olmbvz48Xr11Vc1cOBANW/eXAMGDNCwYcP0m9/8ptLrbdu2TampqUpISAhYfvzx+uabb2SM0QMPPKAHHnigwhmbN2/u//7YX5gl+Y9F6WMtMzNTV155pR566CFNmzZN559/vgYPHqzhw4fL7XZL+vW4FBYWKjk5ucLbDDcyRsbKU92MhXK9449JQkKCUlNTA/4e4osvvtD999+v9957z/8LS6nCwsKA75s3b17mj7ZqO3cU0RpW+tvYtddeW2FYunXrFvD9sb/NHLuNqVOnVvixGwkJCVX+kVA4+Xw+de3aVU899VS5lx//g7aqbUlV719lJk6cqEGDBmnp0qVatmyZHnjgAeXm5uq9997TmWeeGfQs9cGwYcPUr18/LVmyRMuXL9fUqVM1ZcoULV68WAMHDvSvFxkZWe71K1pujKmReYMRzEzhfEyGQzge18dv70T2Lzk5Wfn5+Vq2bJneffddvfvuu3rhhRc0YsQILViwIOg5KptPku64444K34Fp3759wPdV3a+lH2q+du1a/fWvf9WyZcs0ZswYPfnkk1q7dq0SEhLk8/mUnJysP//5z+Vuq6JScSLIGBkrT3UzFs5s7tu3T5mZmUpKStLDDz+sdu3aKSYmRps2bdLdd99d5hXi4/uGVPu5o4iGUXn/c1HpXwyWlJTowgsvrNZ2S3+rTEpKqnQbTZs2VWxsrP+3xGN99dVXQd/ejh07VFRUFPCq6Ndffy3p1/8lqXSmTz/9VFlZWSf8P0wFu3/BbOf222/X7bffri1btqhHjx568skn9ac//emE5quLUlNTNX78eI0fP167du3SWWedpT/+8Y8BT5LV1bRpU8XFxZX7mNq8ebMiIiL8P7Bbt25d4Xqll0vlZydUwT4mW7duLZ/Pp2+//TbgFZpQMiKpTM6MMfrmm2/8v1iG63FdKhyZi46O1qBBgzRo0CD5fD6NHz9ec+fO1QMPPFCmJJZq3bq1Vq1apYMHDwY8qR9/vEpfDWzQoEFY9vdYvXv3Vu/evfXHP/5RL7/8sq655hotWrRI119/vdq1a6eVK1fqvPPOK/dJtaaQMTJWnupkLJTrbdmyRRdccIH/+4MHD+rHH3/UxRdfLOnXT0jYs2ePFi9erIyMDP96W7duDXlfait3nCMaRvHx8WU+0iQyMlJXXnml3njjDX3++edlrnP8R5WUJz09Xe3atdMTTzyhgwcPVriNyMhIZWdna+nSpfr3v//tv/xf//qXli1bFvR+FBcXB3zk09GjRzV37lw1bdpU6enpkn59ReCHH37Q/Pnzy1z/8OHDKioqCvr2gt2/ihw6dEhHjhwJWNauXTslJibW6qvETlBSUlLmrZfk5GSlpaWF7VhERkZqwIABevPNNwPeDiooKNDLL7+svn37KikpSZJ08cUXa926dVqzZo1/vaKiIs2bN09t2rRR586dJcn/S09FHwkUjGAfk6VFYfr06QHrPP300yHd3ksvvaQDBw74v3/99df1448/+rd/oo/r451o5vbs2RPwfUREhP8JvbLHxsUXX6zi4mLNnj3bv6ykpEQzZswIWC85OVnnn3++5s6dqx9//LHMdkLdX+nXt6qPf5Ww9JWv0pmHDRumkpISPfLII2WuX1xcfEKPqfKQMTJWkepmLJTrzZs3L+C8zdmzZ6u4uNh/TEpf2T42N0ePHtWsWbMqnf1YtZ07XhENo/T0dK1cuVJPPfWU0tLS1LZtW/Xq1UuPPfaY8vLy1KtXL91www3q3Lmz9u7dq02bNmnlypXau3dvpduNiIjQc889p4EDB6pLly4aPXq0mjdvrh9++EF5eXlKSkrSX//6V0nSQw89pL/97W/q16+fxo8fr+LiYs2YMUNdunQJONenMmlpaZoyZYq+//57dejQQX/5y1+Un5+vefPm+U+Svu666/Tqq6/qxhtvVF5ens477zyVlJRo8+bNevXVV7Vs2bKgz7cNZf/K8/XXXysrK0vDhg1T586dFRUVpSVLlqigoCDgDwVOBgcOHFCLFi00ZMgQde/eXQkJCVq5cqXWr1+vJ598Mmy384c//EErVqxQ3759NX78eEVFRWnu3Lnyer0Bnz14zz336JVXXtHAgQN1yy23qHHjxlqwYIG2bt2qN954w/8fNbRr104NGzbUnDlzlJiYqPj4ePXq1avM+dKVCfYx2aNHD1199dWaNWuWCgsL1adPH61atUrffPNNSMegcePG6tu3r0aPHq2CggI9/fTTat++vW644QZJJ/64ru7+VeT666/X3r171b9/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eGStYnUla3X+HNHo6Gilp6dr1apV/mU+n0+rVq2yfl6GkxhjdPPNN2vJkiV677331LZtW9sjleHz+eT1eq3cdlZWlv75z38qPz/f/3X22WfrmmuuUX5+viPCahtZq1pdyJlE1pyOrFWNrFWtrmStzr8iKkmTJk3SyJEjdfbZZ6tnz556+umnVVRUpNGjR1ub6eDBg/rmm2/832/dulX5+flq3LixWrVqVevz5OTk6OWXX9abb76pxMRE7dy5U5Lk8XgUGxtb6/Pce++9GjhwoFq1aqUDBw7o5Zdf1vvvv69ly5bV+iySlJiYWObcovj4eJ1yyinWzzlyEqdljZxVjazVTWStcmStanUma5b/aj9sZsyYYVq1amWio6NNz549zdq1a63Ok5eXZySV+Ro5cqSVecqbRZJ54YUXrMwzZswY07p1axMdHW2aNm1qsrKyzPLly63MUhEnfsyFEzgpa+SsamSt7iJrFSNr1ePErLmMMabG2y4AAABwnDp/jigAAADqJoooAAAArKCIAgAAwAqKKAAAAKygiAIAAMAKiigAAACsoIgCAADACoooAAAArKCIAgAAwAqKKAAAAKygiAIAAMAKiigAAACs+P/KiBcpA9JJYgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "res, (beliefs, smoothed_dense, smoothed_sparse) = experiment([2, 3])\n", "\n", @@ -233,9 +254,43 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 1\n", + "\t [1000, 3000]\n", + "\t {'time_dense': 0.5780150890350342, 'size_dense': 10000000, 'time_sparse': 2.308156967163086, 'size_sparse': 16000}\n", + "Step 2\n", + "\t [2000, 6000]\n", + "\t {'time_dense': 0.8815968036651611, 'size_dense': 40000000, 'time_sparse': 2.263134002685547, 'size_sparse': 32000}\n", + "Step 3\n", + "\t [3000, 9000]\n", + "\t {'time_dense': 1.2070989608764648, 'size_dense': 90000000, 'time_sparse': 1.4316658973693848, 'size_sparse': 48000}\n", + "Step 4\n", + "\t [4000, 12000]\n", + "\t {'time_dense': 2.1472249031066895, 'size_dense': 160000000, 'time_sparse': 2.3286328315734863, 'size_sparse': 64000}\n", + "Step 5\n", + "\t [5000, 15000]\n", + "\t {'time_dense': 3.332458019256592, 'size_dense': 250000000, 'time_sparse': 2.390110969543457, 'size_sparse': 80000}\n", + "Step 6\n", + "\t [6000, 18000]\n", + "\t {'time_dense': 4.8623998165130615, 'size_dense': 360000000, 'time_sparse': 1.4438610076904297, 'size_sparse': 96000}\n", + "Step 7\n", + "\t [7000, 21000]\n", + "\t {'time_dense': 7.372021913528442, 'size_dense': 490000000, 'time_sparse': 2.5113301277160645, 'size_sparse': 112000}\n", + "Step 8\n", + "\t [8000, 24000]\n", + "\t {'time_dense': 9.972543001174927, 'size_dense': 640000000, 'time_sparse': 2.4063851833343506, 'size_sparse': 128000}\n", + "Step 9\n", + "\t [9000, 27000]\n", + "\t {'time_dense': 14.439164876937866, 'size_dense': 810000000, 'time_sparse': 1.6792550086975098, 'size_sparse': 144000}\n" + ] + } + ], "source": [ "n_steps = 10\n", "\n", @@ -251,9 +306,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "keys = list(set(r.replace(\"_dense\", \"\").replace(\"_sparse\", \"\") for r in res[0].keys())) \n", "n_plots = len(keys)\n", diff --git a/pymdp/jax/inference.py b/pymdp/jax/inference.py index b80e9a82..91b47a32 100644 --- a/pymdp/jax/inference.py +++ b/pymdp/jax/inference.py @@ -4,15 +4,46 @@ import jax.numpy as jnp from .algos import run_factorized_fpi, run_mmp, run_vmp -from .utils import Leaf + +# from .utils import Leaf from jax import tree_util as jtu, lax from multimethod import multimethod from jax.experimental.sparse._base import JAXSparse -from jax.experimental.sparse import sparsify +from jax.experimental.sparse import sparsify, BCOO from jaxtyping import Array import copy +def scan(f, init, xs, length=None, reverse=False): + """ + A custom scan that stacks the accumulated results as a list instead of a + jnp array, which can be helpful when dealing with sparse arrays. + # TODO: properly use Sparse Arrays in scan + """ + if xs is None: + xs = [None] * length + if reverse: + xs = xs[::-1] + + carry = init + + ys = [] + for x in xs: + carry, y = f(carry, x) + ys.append(y) + + # Basically manual selection of what constitutes a leaf node + accumulated = [[] for _ in range(len(ys[0]))] + for y in ys: + for i, yi in enumerate(y): + accumulated[i].append(yi) + + if reversed: + accumulated = [a[::-1] for a in accumulated] + + return carry, accumulated + + def update_posterior_states( A, B, @@ -29,9 +60,7 @@ def update_posterior_states( if method == "fpi" or method == "ovf": # format obs to select only last observation curr_obs = jtu.tree_map(lambda x: x[-1], obs) - qs = run_factorized_fpi( - A, curr_obs, prior, A_dependencies, num_iter=num_iter - ) + qs = run_factorized_fpi(A, curr_obs, prior, A_dependencies, num_iter=num_iter) else: # format B matrices using action sequences here # TODO: past_actions can be None @@ -103,9 +132,7 @@ def joint_dist_factor(b: Array, filtered_qs, actions): qs_joint = time_b * jnp.expand_dims(qs_filter, -1) # cond dist - timestep x s_{t} | s_{t+1} - qs_backward_cond = jnp.moveaxis( - qs_joint / qs_joint.sum(-2, keepdims=True), -2, -1 - ) + qs_backward_cond = jnp.moveaxis(qs_joint / qs_joint.sum(-2, keepdims=True), -2, -1) # tranpose_idx = list(range(len(qs_joint.shape[:-2]))) + [qs_joint.ndim-1, qs_joint.ndim-2] # qs_backward_cond = (qs_joint / qs_joint.sum(-2, keepdims=True).todense()).transpose(tranpose_idx) @@ -116,37 +143,13 @@ def step_fn(qs_smooth_past, backward_b): return qs_smooth, (qs_smooth, qs_joint) # seq_qs will contain a sequence of smoothed marginals and joints - _, seq_qs = lax.scan( - step_fn, qs_last, qs_backward_cond, reverse=True, unroll=2 - ) + _, seq_qs = lax.scan(step_fn, qs_last, qs_backward_cond, reverse=True, unroll=2) # we add the last filtered belief to smoothed beliefs - qs_smooth_all = jnp.concatenate( - [seq_qs[0], jnp.expand_dims(qs_last, 0)], 0 - ) + qs_smooth_all = jnp.concatenate([jnp.array(seq_qs[0]), jnp.expand_dims(qs_last, 0)], 0) return qs_smooth_all, seq_qs[1] -def scan(f, init, xs, length=None, reverse=False): - if xs is None: - xs = [None] * length - if reverse: - xs = xs[::-1] - - carry = init - ys = [] - for x in xs: - carry, y = f(carry, x) - ys.append(y) - - lists = [[] for _ in range(len(ys[0]))] - for y in ys: - for i, yi in enumerate(y): - lists[i].append(yi) - - return carry, lists - - @multimethod def joint_dist_factor(b: JAXSparse, filtered_qs, actions): qs_last = filtered_qs[-1] @@ -163,26 +166,25 @@ def joint_dist_factor(b: JAXSparse, filtered_qs, actions): qs_joint.ndim - 1, qs_joint.ndim - 2, ] - qs_backward_cond = ( - qs_joint / qs_joint.sum(-2, keepdims=True).todense() - ).transpose(tranpose_idx) + qs_backward_cond = (qs_joint / qs_joint.sum(-2, keepdims=True).todense()).transpose(tranpose_idx) def step_fn(qs_smooth_past, t): qs_joint = qs_backward_cond[t] * qs_smooth_past - qs_smooth = qs_joint.sum(-1) + qs_smooth = qs_joint.sum(-1).todense() - return qs_smooth.todense(), (qs_smooth.todense(), Leaf(qs_joint)) + out = (qs_smooth, qs_joint) + return qs_smooth, out # seq_qs will contain a sequence of smoothed marginals and joints - # _, seq_qs = lax.scan(step_fn, qs_last, jnp.arange(qs_backward_cond.shape[0]), reverse=True, unroll=2) _, seq_qs = scan( - step_fn, qs_last, jnp.arange(qs_backward_cond.shape[0]), reverse=True + step_fn, + qs_last, + jnp.arange(qs_backward_cond.shape[0]), + reverse=True, ) # we add the last filtered belief to smoothed beliefs - qs_smooth_all = jnp.concatenate( - [jnp.array(seq_qs[0]), jnp.expand_dims(qs_last, 0)], 0 - ) + qs_smooth_all = jnp.concatenate([jnp.array(seq_qs[0]), jnp.expand_dims(qs_last, 0)], 0) return qs_smooth_all, seq_qs[1] diff --git a/pymdp/jax/utils.py b/pymdp/jax/utils.py index c58ca57f..e56f1e5f 100644 --- a/pymdp/jax/utils.py +++ b/pymdp/jax/utils.py @@ -30,24 +30,6 @@ ShapeList = list[Shape] -class Leaf: - """A Leaf class to wrap a value as a leaf node""" - - def __init__(self, value): - self.value = value - - -def leaf_flatten(leaf): - return [], leaf.value - - -def leaf_unflatten(aux_data, children): - return Leaf(aux_data) - - -jtu.register_pytree_node(Leaf, leaf_flatten, leaf_unflatten) - - def norm_dist(dist: Tensor) -> Tensor: """Normalizes a Categorical probability distribution""" return dist / dist.sum(0) diff --git a/test/test_jax_sparse_backend.py b/test/test_jax_sparse_backend.py index 2155d0d8..163e713d 100644 --- a/test/test_jax_sparse_backend.py +++ b/test/test_jax_sparse_backend.py @@ -9,6 +9,8 @@ import unittest from functools import partial +import copy + import numpy as np import jax.numpy as jnp import jax.tree_util as jtu @@ -77,7 +79,10 @@ def make_model_configs(source_seed=0, num_models=4) -> Dict: def make_A_full( - A_reduced: List[np.ndarray], A_dependencies: List[List[int]], num_obs: List[int], num_states: List[int] + A_reduced: List[np.ndarray], + A_dependencies: List[List[int]], + num_obs: List[int], + num_states: List[int], ) -> np.ndarray: """ Given a reduced A matrix, `A_reduced`, and a list of dependencies between hidden state factors and observation modalities, `A_dependencies`, @@ -107,8 +112,14 @@ class TestJaxSparseOperations(unittest.TestCase): def test_sparse_smoothing(self): cfg = {"source_seed": 1, "num_models": 4} gm_params = make_model_configs(**cfg) - num_states_list, num_obs_list = gm_params["ns_list"], gm_params["no_list"] - num_controls_list, B_deps_list = gm_params["nc_list"], gm_params["B_deps_list"] + num_states_list, num_obs_list = ( + gm_params["ns_list"], + gm_params["no_list"], + ) + num_controls_list, B_deps_list = ( + gm_params["nc_list"], + gm_params["B_deps_list"], + ) num_states_list = num_states_list @@ -121,7 +132,10 @@ def test_sparse_smoothing(self): B = utils.random_B_matrix(num_states, num_controls) B = [jnp.array(x.astype(np.float32)) for x in B] # Map all values below the mean to 0 to create a B tensor with zeros - B = jtu.tree_map(lambda x: jnp.array(utils.norm_dist(jnp.clip((x - x.mean()), 0, 1))), B) + B = jtu.tree_map( + lambda x: jnp.array(utils.norm_dist(jnp.clip((x - x.mean()), 0, 1))), + B, + ) # Create a sparse array B sparse_B = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b), B) @@ -156,10 +170,12 @@ def test_sparse_smoothing(self): # for example, something like this for f, (dense_out, sparse_out) in enumerate(zip(smoothed_beliefs_dense, smoothed_beliefs_sparse)): - qs_smooth_dense, qs_joint_dense = dense_out qs_smooth_sparse, qs_joint_sparse = sparse_out + # Densify + qs_joint_sparse = jnp.array([i.todense() for i in qs_joint_sparse]) + self.assertTrue(np.allclose(qs_smooth_dense, qs_smooth_sparse)) self.assertTrue(np.allclose(qs_joint_dense, qs_joint_sparse)) From 127324190031fec4a863b4a052485dc32852f84f Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 27 Jun 2024 20:29:37 +0200 Subject: [PATCH 144/196] create separate subdir for the sparse experiment --- .../sparse_benchmark.ipynb | 364 ------------------ examples/sparse/sparse_benchmark.ipynb | 350 +++++++++++++++++ 2 files changed, 350 insertions(+), 364 deletions(-) delete mode 100644 examples/inference_and_learning/sparse_benchmark.ipynb create mode 100644 examples/sparse/sparse_benchmark.ipynb diff --git a/examples/inference_and_learning/sparse_benchmark.ipynb b/examples/inference_and_learning/sparse_benchmark.ipynb deleted file mode 100644 index 62770fe7..00000000 --- a/examples/inference_and_learning/sparse_benchmark.ipynb +++ /dev/null @@ -1,364 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Sparse Array Benchmarking" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import jax.numpy as jnp\n", - "from jax import tree_util as jtu, nn, vmap, lax\n", - "from jax.experimental import sparse\n", - "from pymdp.jax.agent import Agent\n", - "import matplotlib.pyplot as plt\n", - "import seaborn as sns\n", - "import time\n", - "import sys\n", - "\n", - "from pymdp.jax.inference import smoothing_ovf\n", - "import numpy as np\n", - "import jax.profiler \n", - "\n", - "import tracemalloc\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "def sizeof(x):\n", - " return np.prod(x.shape)\n", - "\n", - "\n", - "def sizeof_sparse(x):\n", - " return np.prod(x.data.shape) + np.prod(x.indices.shape)\n", - "\n", - "\n", - "def get_matrices(n_batch, num_obs, n_states):\n", - "\n", - " A_1 = jnp.ones((num_obs[0], n_states[0]))\n", - " A_1 = A_1.at[-1, :-1].set(0)\n", - " A_2 = jnp.ones((num_obs[0], n_states[1]))\n", - " A_2 = A_2.at[-1, 1:].set(0)\n", - "\n", - " A_tensor = A_1[..., None] * A_2[:, None]\n", - " A_tensor /= A_tensor.sum(0)\n", - "\n", - " A = [jnp.broadcast_to(A_tensor, (n_batch, *A_tensor.shape))]\n", - "\n", - " # create two transition matrices, one for each state factor\n", - " B_1 = jnp.eye(n_states[0])\n", - " B_1 = B_1.at[:, 1:].set(B_1[:, :-1])\n", - " B_1 = B_1.at[:, 0].set(0)\n", - " B_1 = B_1.at[-1, 0].set(1)\n", - " B_1 = jnp.broadcast_to(B_1, (n_batch, n_states[0], n_states[0]))\n", - "\n", - " B_2 = jnp.eye(n_states[1])\n", - " B_2 = B_2.at[:, 1:].set(B_2[:, :-1])\n", - " B_2 = B_2.at[:, 0].set(0)\n", - " B_2 = B_2.at[-1, 0].set(1)\n", - " B_2 = jnp.broadcast_to(B_2, (n_batch, n_states[1], n_states[1]))\n", - "\n", - " B = [B_1[..., None], B_2[..., None]]\n", - " C = [jnp.zeros((n_batch, num_obs[0]))] # flat preferences\n", - " D = [jnp.ones((n_batch, n_states[0])) / n_states[0], jnp.ones((n_batch, n_states[1])) / n_states[1]] # flat prior\n", - " E = jnp.ones((n_batch, 1))\n", - "\n", - " return A, B, C, D, E" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "def profile(fun, *args): \n", - " tracemalloc.start()\n", - " tracemalloc.reset_peak()\n", - " bt = time.time()\n", - " res = fun(*args)\n", - " et = time.time()\n", - " size, peak = tracemalloc.get_traced_memory()\n", - "\n", - " stats = {'time': et - bt}\n", - " return res, stats\n", - "\n", - "def experiment(n_states):\n", - " results = {}\n", - "\n", - " n_batch = 1\n", - " num_obs = [2]\n", - "\n", - " A, B, C, D, E = get_matrices(n_batch=n_batch, num_obs=num_obs, n_states=n_states)\n", - "\n", - " # for the single modality, a sequence over time of observations (one hot vectors)\n", - " obs = [\n", - " jnp.broadcast_to(\n", - " jnp.array(\n", - " [\n", - " [1.0, 0.0], # observation 0 is ambiguous with respect state factors\n", - " [1.0, 0], # observation 0 is ambiguous with respect state factors\n", - " [1.0, 0], # observation 0 is ambiguous with respect state factors\n", - " [0.0, 1.0],\n", - " ]\n", - " )[:, None],\n", - " (4, n_batch, num_obs[0]),\n", - " )\n", - " ] # observation 1 provides information about exact state of both factors\n", - "\n", - " agents = Agent(\n", - " A=A,\n", - " B=B,\n", - " C=C,\n", - " D=D,\n", - " E=E,\n", - " pA=None,\n", - " pB=None,\n", - " policy_len=3,\n", - " control_fac_idx=None,\n", - " policies=None,\n", - " gamma=16.0,\n", - " alpha=16.0,\n", - " use_utility=True,\n", - " onehot_obs=True,\n", - " action_selection=\"deterministic\",\n", - " sampling_mode=\"full\",\n", - " inference_algo=\"ovf\",\n", - " num_iter=16,\n", - " learn_A=False,\n", - " learn_B=False,\n", - " apply_batch=False\n", - " )\n", - "\n", - " sparse_B = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b, n_batch=n_batch), agents.B)\n", - "\n", - "\n", - " prior = agents.D\n", - " qs_hist = None\n", - " action_hist = []\n", - " for t in range(len(obs[0])):\n", - " first_obs = jtu.tree_map(lambda x: jnp.moveaxis(x[:t+1], 0, 1), obs)\n", - " beliefs = agents.infer_states(first_obs, past_actions=None, empirical_prior=prior, qs_hist=qs_hist)\n", - " actions = jnp.broadcast_to(agents.policies[0, 0], (n_batch, 2))\n", - " prior, qs_hist = agents.infer_empirical_prior(actions, beliefs)\n", - " action_hist.append(actions)\n", - "\n", - " beliefs = jtu.tree_map(lambda x, y: jnp.concatenate([x[:, None], y], 1), agents.D, beliefs)\n", - "\n", - " take_first = lambda pytree: jtu.tree_map(lambda leaf: leaf[0], pytree)\n", - " beliefs_single = take_first(beliefs)\n", - "\n", - " # ======\n", - " # Dense implementation\n", - " smoothed_beliefs_dense, run_stats = profile(\n", - " smoothing_ovf, *(beliefs_single, take_first(agents.B), jnp.stack(action_hist, 1)[0])\n", - " )\n", - " results.update({k+'_dense': v for k, v in run_stats.items()})\n", - " results[\"size_dense\"] = sum([sizeof(sB) for sB in agents.B])\n", - " # ======\n", - "\n", - " sparse_B_single = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b[0]), agents.B)\n", - " actions_single = jnp.stack(action_hist, 1)[0]\n", - "\n", - " # ======\n", - " # Sparse implementation\n", - " smoothed_beliefs_sparse, run_stats = profile(\n", - " smoothing_ovf, *(beliefs_single, sparse_B_single, actions_single)\n", - " )\n", - " results.update({k+'_sparse': v for k, v in run_stats.items()})\n", - " results[\"size_sparse\"] = sum([sizeof_sparse(sB) for sB in sparse_B_single])\n", - " # ======\n", - "\n", - " return results, [beliefs_single, smoothed_beliefs_dense, smoothed_beliefs_sparse]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Running the experiment and visualizing the results" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'smoothed beliefs sparse')" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqIAAAF2CAYAAAC1RvpXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAvAklEQVR4nO3deXRTdf7/8Vfa0nQPIJS27ILIIotWARFapUoHFcURcERl+yooFUXcHf3hMmNFVBSQ1a+KzCjjAuj41WGz4uiAbFZHHRQVGUakCEiBAsE2n98fnmYI3ZKS9nNbno9zeg69ubl535u8mleT2+AyxhgBAAAAtSzC9gAAAAA4OVFEAQAAYAVFFAAAAFZQRAEAAGAFRRQAAABWUEQBAABgBUUUAAAAVlBEAQAAYAVFFAAAAFZQRIPw/fffy+Vy6cUXX/Qve/DBB+VyuewNFaJg5z3//PN1xhlnhPW227Rpo1GjRvm/f//99+VyufT+++9Xa3vr169Xnz59FB8fL5fLpfz8/LDMCWeqicdkRVwulx588MFK1yl9/L7++uthu90XX3xRLpdL33//vX/Z+eefr/PPP79a2ysuLtZdd92lli1bKiIiQoMHDw7LnMcq7+ci6iYyFrrayNjJgiKq/z5Ay/u65557gt7Oo48+qqVLl9bcoNAvv/yioUOHau/evZo2bZoWLlyo1q1b2x4LJ2jHjh168MEH+aUiTJ5//nlNnTpVQ4YM0YIFC3TbbbfZHgmWkbHwImPhE2V7ACd5+OGH1bZt24BlZ5xxhlq3bq3Dhw+rQYMGlV7/0Ucf1ZAhQ/jNqAoZGRk6fPiwoqOjQ77ut99+q23btmn+/Pm6/vrra2A62LBjxw499NBDatOmjXr06GF7HEdYvnx5ta/73nvvqXnz5po2bVoYJ0JdRsbKImPOQBE9xsCBA3X22WeXe1lMTEwtT/OrI0eOKDo6WhER9efF64iIiGofz127dkmSGjZsGMaJAOepzi9qpXbt2kVGgCqQsbIOHTqkuLi4Wr3N+tNualAw50K5XC4VFRVpwYIF/rf1jz0v8ocfftCYMWPUrFkzud1udenSRc8//3zANkrPi1m0aJHuv/9+NW/eXHFxcdq/f78k6eOPP9ZvfvMbeTwexcXFKTMzUx999FGZWT788EOdc845iomJUbt27TR37tyQ93njxo3q06ePYmNj1bZtW82ZM6fMOl6vV5MnT1b79u3ldrvVsmVL3XXXXfJ6vZVuu6JzRKvav1GjRikzM1OSNHToULlcLv/5PTt37tTo0aPVokULud1upaam6vLLLw84H+hkceDAAU2cOFFt2rSR2+1WcnKyLrroIm3atMm/Tuk5YZ999pkyMzMVFxen9u3b+8/JWr16tXr16qXY2FidfvrpWrlyZZnb+eSTTzRw4EAlJSUpISFBWVlZWrt2bZn1vvvuOw0dOlSNGzdWXFycevfurf/7v//zX/7+++/rnHPOkSSNHj3an5/j8/bll1/qggsuUFxcnJo3b67HH3+8zG0F+5j0er267bbb1LRpUyUmJuqyyy7Tf/7zn+APsqSSkhLdd999SklJUXx8vC677DJt3769zHrB5vZ45Z2/VtX+lf6sysvL0xdffOE/lqVZW7RokdLT05WYmKikpCR17dpVzzzzTJWz7Nu3T6NGjZLH41HDhg01cuRI7du3r9x1N2/erCFDhqhx48aKiYnR2WefrbfeeitgndLToT766CNNmjRJTZs2VXx8vK644gr99NNPAetu2LBB2dnZatKkif/n0ZgxYwLW8fl8evrpp9WlSxfFxMSoWbNmGjdunH7++ecq9606yBgZC3fGqrpeaWY++OADjRs3TqeccoqSkpI0YsSIMo/zN998U5dcconS0tLkdrvVrl07PfLIIyopKSmz/2eccYY2btyojIwMxcXF6b777pNUy7kzMC+88IKRZFauXGl++umngC9jjNm6dauRZF544QX/dSZPnmyOPXwLFy40brfb9OvXzyxcuNAsXLjQ/OMf/zDGGLNz507TokUL07JlS/Pwww+b2bNnm8suu8xIMtOmTfNvIy8vz0gynTt3Nj169DBPPfWUyc3NNUVFRWbVqlUmOjranHvuuebJJ58006ZNM926dTPR0dHm448/9m/js88+M7GxsaZVq1YmNzfXPPLII6ZZs2amW7duJpi7OzMz06SlpZnk5GRz8803m+nTp5u+ffsaSeZ///d//euVlJSYAQMGmLi4ODNx4kQzd+5cc/PNN5uoqChz+eWXB2yzdevWZuTIkWX2My8vz78smP37xz/+Ye677z4jydxyyy1m4cKFZvny5cYYY/r06WM8Ho+5//77zXPPPWceffRRc8EFF5jVq1dXuc/1zfDhw010dLSZNGmSee6558yUKVPMoEGDzJ/+9Cf/OqX3c8uWLc2dd95pZsyYYTp37mwiIyPNokWLTEpKinnwwQfN008/bZo3b248Ho/Zv3+///qff/65iY+PN6mpqeaRRx4xjz32mGnbtq1xu91m7dq1/vV27txpmjVrZhITE83vf/9789RTT5nu3bubiIgIs3jxYv86Dz/8sJFkxo4d68/Pt99+W2bWW2+91cyaNcv079/fSDLvvPOO/7ZCeUxee+21RpIZPny4mTlzpvntb3/rz8jkyZMrPb6lj9+uXbuabt26maeeesrcc889JiYmxnTo0MEcOnTIv26wuS39GbR169aA+ygzMzOk/Tt48KBZuHCh6dixo2nRooX/WO7cudMsX77cSDJZWVnm2WefNc8++6y5+eabzdChQyvdX5/PZzIyMkxERIQZP368mTFjhunfv7//eB37c/Hzzz83Ho/HdO7c2UyZMsXMnDnTZGRkGJfL5b+/j93fM8880/Tv39/MmDHD3H777SYyMtIMGzbMv15BQYFp1KiR6dChg5k6daqZP3+++f3vf286deoUMOP1119voqKizA033GDmzJlj7r77bhMfH2/OOeccc/To0Ur3rzrIGBkLZ8aCuV7p/F27djX9+vUz06dPNzk5OSYiIsJkZGQYn8/nX3fw4MFm2LBhZurUqWb27Nlm6NChRpK54447Am43MzPTpKSkmKZNm5oJEyaYuXPnmqVLl9Z67iii5r93cHlfxgRXRI0xJj4+PqBwlfqf//kfk5qaanbv3h2w/He/+53xeDz+UJWG79RTTw0Ims/nM6eddprJzs4OeLAdOnTItG3b1lx00UX+ZYMHDzYxMTFm27Zt/mVffvmliYyMDLqISjJPPvmkf5nX6zU9evQwycnJ/gfXwoULTUREhPn73/8ecP05c+YYSeajjz7yL6uqiIayf6XXfe211/zLfv75ZyPJTJ06tcr9Oxl4PB6Tk5NT6Tql9/PLL7/sX7Z582YjyURERAQ80S1btqzM43/w4MEmOjra/0RmjDE7duwwiYmJJiMjw79s4sSJRlLA4+TAgQOmbdu2pk2bNqakpMQYY8z69evL3Mbxs7700kv+ZV6v16SkpJgrr7zSvyzYx2R+fr6RZMaPHx+w3vDhw0N6kmzevHlAcXj11VeNJPPMM88YY0J7XAfzJBlK5jIzM02XLl0C1rv11ltN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LJTrbdmyRRdccIH/+4MHD+rHH3/UxRdfLOnXT0jYs2ePFi9erIyMDP96W7duDXlfait3nCMaRvHx8WU+0iQyMlJXXnml3njjDX3++edlrnP8R5WUJz09Xe3atdMTTzyhgwcPVriNyMhIZWdna+nSpfr3v//tv/xf//qXli1bFvR+FBcXB3zk09GjRzV37lw1bdpU6enpkn59ReCHH37Q/Pnzy1z/8OHDKioqCvr2gt2/ihw6dEhHjhwJWNauXTslJibW6qvETlBSUlLmrZfk5GSlpaWF7VhERkZqwIABevPNNwPeDiooKNDLL7+svn37KikpSZJ08cUXa926dVqzZo1/vaKiIs2bN09t2rRR586dJcn/S09FHwkUjGAfk6VFYfr06QHrPP300yHd3ksvvaQDBw74v3/99df1448/+rd/oo/r451o5vbs2RPwfUREhP8JvbLHxsUXX6zi4mLNnj3bv6ykpEQzZswIWC85OVnnn3++5s6dqx9//LHMdkLdX+nXt6qPf5Ww9JWv0pmHDRumkpISPfLII2WuX1xcfEKPqfKQMTJWkepmLJTrzZs3L+C8zdmzZ6u4uNh/TEpf2T42N0ePHtWsWbMqnf1YtZ07XhENo/T0dK1cuVJPPfWU0tLS1LZtW/Xq1UuPPfaY8vLy1KtXL91www3q3Lmz9u7dq02bNmnlypXau3dvpduNiIjQc889p4EDB6pLly4aPXq0mjdvrh9++EF5eXlKSkrSX//6V0nSQw89pL/97W/q16+fxo8fr+LiYs2YMUNdunQJONenMmlpaZoyZYq+//57dejQQX/5y1+Un5+vefPm+U+Svu666/Tqq6/qxhtvVF5ens477zyVlJRo8+bNevXVV7Vs2bKgz7cNZf/K8/XXXysrK0vDhg1T586dFRUVpSVLlqigoCDgDwVOBgcOHFCLFi00ZMgQde/eXQkJCVq5cqXWr1+vJ598Mmy384c//EErVqxQ3759NX78eEVFRWnu3Lnyer0Bnz14zz336JVXXtHAgQN1yy23qHHjxlqwYIG2bt2qN954w/8fNbRr104NGzbUnDlzlJiYqPj4ePXq1avM+dKVCfYx2aNHD1199dWaNWuWCgsL1adPH61atUrffPNNSMegcePG6tu3r0aPHq2CggI9/fTTat++vW644QZJJ/64ru7+VeT666/X3r171b9/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eGStYnUla3X+HNHo6Gilp6dr1apV/mU+n0+rVq2yfl6GkxhjdPPNN2vJkiV677331LZtW9sjleHz+eT1eq3cdlZWlv75z38qPz/f/3X22WfrmmuuUX5+viPCahtZq1pdyJlE1pyOrFWNrFWtrmStzr8iKkmTJk3SyJEjdfbZZ6tnz556+umnVVRUpNGjR1ub6eDBg/rmm2/832/dulX5+flq3LixWrVqVevz5OTk6OWXX9abb76pxMRE7dy5U5Lk8XgUGxtb6/Pce++9GjhwoFq1aqUDBw7o5Zdf1vvvv69ly5bV+iySlJiYWObcovj4eJ1yyinWzzlyEqdljZxVjazVTWStcmStanUma5b/aj9sZsyYYVq1amWio6NNz549zdq1a63Ok5eXZySV+Ro5cqSVecqbRZJ54YUXrMwzZswY07p1axMdHW2aNm1qsrKyzPLly63MUhEnfsyFEzgpa+SsamSt7iJrFSNr1ePErLmMMabG2y4AAABwnDp/jigAAADqJoooAAAArKCIAgAAwAqKKAAAAKygiAIAAMAKiigAAACsoIgCAADACoooAAAArKCIAgAAwAqKKAAAAKygiAIAAMAKiigAAACs+P/KiBcpA9JJYgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "res, (beliefs, smoothed_dense, smoothed_sparse) = experiment([2, 3])\n", - "\n", - "fig, axes = plt.subplots(2, 3, figsize=(8, 4), sharex=True)\n", - "\n", - "sns.heatmap(beliefs[0].mT, ax=axes[0, 0], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", - "sns.heatmap(beliefs[1].mT, ax=axes[1, 0], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", - "\n", - "sns.heatmap(smoothed_dense[0][0].mT, ax=axes[0, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", - "sns.heatmap(smoothed_dense[1][0].mT, ax=axes[1, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", - "\n", - "sns.heatmap(smoothed_sparse[0][0].mT, ax=axes[0, 2], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", - "sns.heatmap(smoothed_sparse[1][0].mT, ax=axes[1, 2], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", - "\n", - "axes[0, 0].set_title('Filtered beliefs')\n", - "axes[0, 1].set_title('smoothed beliefs dense')\n", - "axes[0, 2].set_title('smoothed beliefs sparse')\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Benchmarking runtime and memory performance" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Step 1\n", - "\t [1000, 3000]\n", - "\t {'time_dense': 0.5780150890350342, 'size_dense': 10000000, 'time_sparse': 2.308156967163086, 'size_sparse': 16000}\n", - "Step 2\n", - "\t [2000, 6000]\n", - "\t {'time_dense': 0.8815968036651611, 'size_dense': 40000000, 'time_sparse': 2.263134002685547, 'size_sparse': 32000}\n", - "Step 3\n", - "\t [3000, 9000]\n", - "\t {'time_dense': 1.2070989608764648, 'size_dense': 90000000, 'time_sparse': 1.4316658973693848, 'size_sparse': 48000}\n", - "Step 4\n", - "\t [4000, 12000]\n", - "\t {'time_dense': 2.1472249031066895, 'size_dense': 160000000, 'time_sparse': 2.3286328315734863, 'size_sparse': 64000}\n", - "Step 5\n", - "\t [5000, 15000]\n", - "\t {'time_dense': 3.332458019256592, 'size_dense': 250000000, 'time_sparse': 2.390110969543457, 'size_sparse': 80000}\n", - "Step 6\n", - "\t [6000, 18000]\n", - "\t {'time_dense': 4.8623998165130615, 'size_dense': 360000000, 'time_sparse': 1.4438610076904297, 'size_sparse': 96000}\n", - "Step 7\n", - "\t [7000, 21000]\n", - "\t {'time_dense': 7.372021913528442, 'size_dense': 490000000, 'time_sparse': 2.5113301277160645, 'size_sparse': 112000}\n", - "Step 8\n", - "\t [8000, 24000]\n", - "\t {'time_dense': 9.972543001174927, 'size_dense': 640000000, 'time_sparse': 2.4063851833343506, 'size_sparse': 128000}\n", - "Step 9\n", - "\t [9000, 27000]\n", - "\t {'time_dense': 14.439164876937866, 'size_dense': 810000000, 'time_sparse': 1.6792550086975098, 'size_sparse': 144000}\n" - ] - } - ], - "source": [ - "n_steps = 10\n", - "\n", - "res = []\n", - "for i in range(1, n_steps):\n", - " print(f\"Step {i}\")\n", - " num_states = [1000 * i, 3000 * i]\n", - " print('\\t', num_states)\n", - " results, bel = experiment(num_states)\n", - " res += [results]\n", - " print('\\t', res[-1])" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "keys = list(set(r.replace(\"_dense\", \"\").replace(\"_sparse\", \"\") for r in res[0].keys())) \n", - "n_plots = len(keys)\n", - "\n", - "fig, ax = plt.subplots(n_plots, 1, figsize=(6, 3 * n_plots))\n", - "for i, a in enumerate(ax.flatten()):\n", - " k = keys[i]\n", - " a.plot([r[k + \"_dense\"] for r in res], label=f\"{k.replace('_', ' ').capitalize()} dense\")\n", - " a.plot([r[k + \"_sparse\"] for r in res], label=f\"{k} sparse\")\n", - " a.set_xticks(list(range(0, len(res))))\n", - " a.set_xticklabels([f\"[{1000*i}, {3000*i}]\" for i in range(1, n_steps)], rotation=45)\n", - " m = max([r[k + \"_dense\"] for r in res] + [r[k + \"_sparse\"] for r in res]) * 1.05\n", - " a.set_ylim([0, m])\n", - "\n", - "plt.tight_layout()\n", - "[a.legend() for a in ax.flatten()]\n", - "plt.show()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.7" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/examples/sparse/sparse_benchmark.ipynb b/examples/sparse/sparse_benchmark.ipynb new file mode 100644 index 00000000..11314657 --- /dev/null +++ b/examples/sparse/sparse_benchmark.ipynb @@ -0,0 +1,350 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sparse Array Benchmarking" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp\n", + "from jax import tree_util as jtu, nn, vmap, lax\n", + "from jax.experimental import sparse\n", + "from pymdp.jax.agent import Agent\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "import time\n", + "import sys\n", + "\n", + "from pymdp.jax.inference import smoothing_ovf\n", + "import numpy as np\n", + "import jax.profiler \n", + "\n", + "import tracemalloc\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def sizeof(x):\n", + " return np.prod(x.shape)\n", + "\n", + "\n", + "def sizeof_sparse(x):\n", + " return np.prod(x.data.shape) + np.prod(x.indices.shape)\n", + "\n", + "\n", + "def get_matrices(n_batch, num_obs, n_states):\n", + "\n", + " A_1 = jnp.ones((num_obs[0], n_states[0]))\n", + " A_1 = A_1.at[-1, :-1].set(0)\n", + " A_2 = jnp.ones((num_obs[0], n_states[1]))\n", + " A_2 = A_2.at[-1, 1:].set(0)\n", + "\n", + " A_tensor = A_1[..., None] * A_2[:, None]\n", + " A_tensor /= A_tensor.sum(0)\n", + "\n", + " A = [jnp.broadcast_to(A_tensor, (n_batch, *A_tensor.shape))]\n", + "\n", + " # create two transition matrices, one for each state factor\n", + " B_1 = jnp.eye(n_states[0])\n", + " B_1 = B_1.at[:, 1:].set(B_1[:, :-1])\n", + " B_1 = B_1.at[:, 0].set(0)\n", + " B_1 = B_1.at[-1, 0].set(1)\n", + " B_1 = jnp.broadcast_to(B_1, (n_batch, n_states[0], n_states[0]))\n", + "\n", + " B_2 = jnp.eye(n_states[1])\n", + " B_2 = B_2.at[:, 1:].set(B_2[:, :-1])\n", + " B_2 = B_2.at[:, 0].set(0)\n", + " B_2 = B_2.at[-1, 0].set(1)\n", + " B_2 = jnp.broadcast_to(B_2, (n_batch, n_states[1], n_states[1]))\n", + "\n", + " B = [B_1[..., None], B_2[..., None]]\n", + " C = [jnp.zeros((n_batch, num_obs[0]))] # flat preferences\n", + " D = [jnp.ones((n_batch, n_states[0])) / n_states[0], jnp.ones((n_batch, n_states[1])) / n_states[1]] # flat prior\n", + " E = jnp.ones((n_batch, 1))\n", + "\n", + " return A, B, C, D, E" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def profile(fun, *args): \n", + " tracemalloc.start()\n", + " tracemalloc.reset_peak()\n", + " bt = time.time()\n", + " res = fun(*args)\n", + " et = time.time()\n", + " size, peak = tracemalloc.get_traced_memory()\n", + "\n", + " stats = {'time': et - bt}\n", + " return res, stats\n", + "\n", + "def experiment(n_states):\n", + " results = {}\n", + "\n", + " n_batch = 1\n", + " num_obs = [2]\n", + "\n", + " A, B, C, D, E = get_matrices(n_batch=n_batch, num_obs=num_obs, n_states=n_states)\n", + "\n", + " # for the single modality, a sequence over time of observations (one hot vectors)\n", + " obs = [\n", + " jnp.broadcast_to(\n", + " jnp.array(\n", + " [\n", + " [1.0, 0.0], # observation 0 is ambiguous with respect state factors\n", + " [1.0, 0], # observation 0 is ambiguous with respect state factors\n", + " [1.0, 0], # observation 0 is ambiguous with respect state factors\n", + " [0.0, 1.0],\n", + " ]\n", + " )[:, None],\n", + " (4, n_batch, num_obs[0]),\n", + " )\n", + " ] # observation 1 provides information about exact state of both factors\n", + "\n", + " agents = Agent(\n", + " A=A,\n", + " B=B,\n", + " C=C,\n", + " D=D,\n", + " E=E,\n", + " pA=None,\n", + " pB=None,\n", + " policy_len=3,\n", + " control_fac_idx=None,\n", + " policies=None,\n", + " gamma=16.0,\n", + " alpha=16.0,\n", + " use_utility=True,\n", + " onehot_obs=True,\n", + " action_selection=\"deterministic\",\n", + " sampling_mode=\"full\",\n", + " inference_algo=\"ovf\",\n", + " num_iter=16,\n", + " learn_A=False,\n", + " learn_B=False,\n", + " apply_batch=False\n", + " )\n", + "\n", + " sparse_B = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b, n_batch=n_batch), agents.B)\n", + "\n", + "\n", + " prior = agents.D\n", + " qs_hist = None\n", + " action_hist = []\n", + " for t in range(len(obs[0])):\n", + " first_obs = jtu.tree_map(lambda x: jnp.moveaxis(x[:t+1], 0, 1), obs)\n", + " beliefs = agents.infer_states(first_obs, past_actions=None, empirical_prior=prior, qs_hist=qs_hist)\n", + " actions = jnp.broadcast_to(agents.policies[0, 0], (n_batch, 2))\n", + " prior, qs_hist = agents.infer_empirical_prior(actions, beliefs)\n", + " action_hist.append(actions)\n", + "\n", + " beliefs = jtu.tree_map(lambda x, y: jnp.concatenate([x[:, None], y], 1), agents.D, beliefs)\n", + "\n", + " take_first = lambda pytree: jtu.tree_map(lambda leaf: leaf[0], pytree)\n", + " beliefs_single = take_first(beliefs)\n", + "\n", + " # ======\n", + " # Dense implementation\n", + " smoothed_beliefs_dense, run_stats = profile(\n", + " smoothing_ovf, *(beliefs_single, take_first(agents.B), jnp.stack(action_hist, 1)[0])\n", + " )\n", + " results.update({k+'_dense': v for k, v in run_stats.items()})\n", + " results[\"size_dense\"] = sum([sizeof(sB) for sB in agents.B])\n", + " # ======\n", + "\n", + " sparse_B_single = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b[0]), agents.B)\n", + " actions_single = jnp.stack(action_hist, 1)[0]\n", + "\n", + " # ======\n", + " # Sparse implementation\n", + " smoothed_beliefs_sparse, run_stats = profile(\n", + " smoothing_ovf, *(beliefs_single, sparse_B_single, actions_single)\n", + " )\n", + " results.update({k+'_sparse': v for k, v in run_stats.items()})\n", + " results[\"size_sparse\"] = sum([sizeof_sparse(sB) for sB in sparse_B_single])\n", + " # ======\n", + "\n", + " return results, [beliefs_single, smoothed_beliefs_dense, smoothed_beliefs_sparse]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Running the experiment and visualizing the results" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'smoothed beliefs sparse')" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqIAAAF2CAYAAAC1RvpXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAvAklEQVR4nO3deXRTdf7/8Vfa0nQPIJS27ILIIotWARFapUoHFcURcERl+yooFUXcHf3hMmNFVBSQ1a+KzCjjAuj41WGz4uiAbFZHHRQVGUakCEiBAsE2n98fnmYI3ZKS9nNbno9zeg69ubl535u8mleT2+AyxhgBAAAAtSzC9gAAAAA4OVFEAQAAYAVFFAAAAFZQRAEAAGAFRRQAAABWUEQBAABgBUUUAAAAVlBEAQAAYAVFFAAAAFZQRIPw/fffy+Vy6cUXX/Qve/DBB+VyuewNFaJg5z3//PN1xhlnhPW227Rpo1GjRvm/f//99+VyufT+++9Xa3vr169Xnz59FB8fL5fLpfz8/LDMCWeqicdkRVwulx588MFK1yl9/L7++uthu90XX3xRLpdL33//vX/Z+eefr/PPP79a2ysuLtZdd92lli1bKiIiQoMHDw7LnMcq7+ci6iYyFrrayNjJgiKq/z5Ay/u65557gt7Oo48+qqVLl9bcoNAvv/yioUOHau/evZo2bZoWLlyo1q1b2x4LJ2jHjh168MEH+aUiTJ5//nlNnTpVQ4YM0YIFC3TbbbfZHgmWkbHwImPhE2V7ACd5+OGH1bZt24BlZ5xxhlq3bq3Dhw+rQYMGlV7/0Ucf1ZAhQ/jNqAoZGRk6fPiwoqOjQ77ut99+q23btmn+/Pm6/vrra2A62LBjxw499NBDatOmjXr06GF7HEdYvnx5ta/73nvvqXnz5po2bVoYJ0JdRsbKImPOQBE9xsCBA3X22WeXe1lMTEwtT/OrI0eOKDo6WhER9efF64iIiGofz127dkmSGjZsGMaJAOepzi9qpXbt2kVGgCqQsbIOHTqkuLi4Wr3N+tNualAw50K5XC4VFRVpwYIF/rf1jz0v8ocfftCYMWPUrFkzud1udenSRc8//3zANkrPi1m0aJHuv/9+NW/eXHFxcdq/f78k6eOPP9ZvfvMbeTwexcXFKTMzUx999FGZWT788EOdc845iomJUbt27TR37tyQ93njxo3q06ePYmNj1bZtW82ZM6fMOl6vV5MnT1b79u3ldrvVsmVL3XXXXfJ6vZVuu6JzRKvav1GjRikzM1OSNHToULlcLv/5PTt37tTo0aPVokULud1upaam6vLLLw84H+hkceDAAU2cOFFt2rSR2+1WcnKyLrroIm3atMm/Tuk5YZ999pkyMzMVFxen9u3b+8/JWr16tXr16qXY2FidfvrpWrlyZZnb+eSTTzRw4EAlJSUpISFBWVlZWrt2bZn1vvvuOw0dOlSNGzdWXFycevfurf/7v//zX/7+++/rnHPOkSSNHj3an5/j8/bll1/qggsuUFxcnJo3b67HH3+8zG0F+5j0er267bbb1LRpUyUmJuqyyy7Tf/7zn+APsqSSkhLdd999SklJUXx8vC677DJt3769zHrB5vZ45Z2/VtX+lf6sysvL0xdffOE/lqVZW7RokdLT05WYmKikpCR17dpVzzzzTJWz7Nu3T6NGjZLH41HDhg01cuRI7du3r9x1N2/erCFDhqhx48aKiYnR2WefrbfeeitgndLToT766CNNmjRJTZs2VXx8vK644gr99NNPAetu2LBB2dnZatKkif/n0ZgxYwLW8fl8evrpp9WlSxfFxMSoWbNmGjdunH7++ecq9606yBgZC3fGqrpeaWY++OADjRs3TqeccoqSkpI0YsSIMo/zN998U5dcconS0tLkdrvVrl07PfLIIyopKSmz/2eccYY2btyojIwMxcXF6b777pNUy7kzMC+88IKRZFauXGl++umngC9jjNm6dauRZF544QX/dSZPnmyOPXwLFy40brfb9OvXzyxcuNAsXLjQ/OMf/zDGGLNz507TokUL07JlS/Pwww+b2bNnm8suu8xIMtOmTfNvIy8vz0gynTt3Nj169DBPPfWUyc3NNUVFRWbVqlUmOjranHvuuebJJ58006ZNM926dTPR0dHm448/9m/js88+M7GxsaZVq1YmNzfXPPLII6ZZs2amW7duJpi7OzMz06SlpZnk5GRz8803m+nTp5u+ffsaSeZ///d//euVlJSYAQMGmLi4ODNx4kQzd+5cc/PNN5uoqChz+eWXB2yzdevWZuTIkWX2My8vz78smP37xz/+Ye677z4jydxyyy1m4cKFZvny5cYYY/r06WM8Ho+5//77zXPPPWceffRRc8EFF5jVq1dXuc/1zfDhw010dLSZNGmSee6558yUKVPMoEGDzJ/+9Cf/OqX3c8uWLc2dd95pZsyYYTp37mwiIyPNokWLTEpKinnwwQfN008/bZo3b248Ho/Zv3+///qff/65iY+PN6mpqeaRRx4xjz32mGnbtq1xu91m7dq1/vV27txpmjVrZhITE83vf/9789RTT5nu3bubiIgIs3jxYv86Dz/8sJFkxo4d68/Pt99+W2bWW2+91cyaNcv079/fSDLvvPOO/7ZCeUxee+21RpIZPny4mTlzpvntb3/rz8jkyZMrPb6lj9+uXbuabt26maeeesrcc889JiYmxnTo0MEcOnTIv26wuS39GbR169aA+ygzMzOk/Tt48KBZuHCh6dixo2nRooX/WO7cudMsX77cSDJZWVnm2WefNc8++6y5+eabzdChQyvdX5/PZzIyMkxERIQZP368mTFjhunfv7//eB37c/Hzzz83Ho/HdO7c2UyZMsXMnDnTZGRkGJfL5b+/j93fM8880/Tv39/MmDHD3H777SYyMtIMGzbMv15BQYFp1KiR6dChg5k6daqZP3+++f3vf286deoUMOP1119voqKizA033GDmzJlj7r77bhMfH2/OOeccc/To0Ur3rzrIGBkLZ8aCuV7p/F27djX9+vUz06dPNzk5OSYiIsJkZGQYn8/nX3fw4MFm2LBhZurUqWb27Nlm6NChRpK54447Am43MzPTpKSkmKZNm5oJEyaYuXPnmqVLl9Z67iii5r93cHlfxgRXRI0xJj4+PqBwlfqf//kfk5qaanbv3h2w/He/+53xeDz+UJWG79RTTw0Ims/nM6eddprJzs4OeLAdOnTItG3b1lx00UX+ZYMHDzYxMTFm27Zt/mVffvmliYyMDLqISjJPPvmkf5nX6zU9evQwycnJ/gfXwoULTUREhPn73/8ecP05c+YYSeajjz7yL6uqiIayf6XXfe211/zLfv75ZyPJTJ06tcr9Oxl4PB6Tk5NT6Tql9/PLL7/sX7Z582YjyURERAQ80S1btqzM43/w4MEmOjra/0RmjDE7duwwiYmJJiMjw79s4sSJRlLA4+TAgQOmbdu2pk2bNqakpMQYY8z69evL3Mbxs7700kv+ZV6v16SkpJgrr7zSvyzYx2R+fr6RZMaPHx+w3vDhw0N6kmzevHlAcXj11VeNJPPMM88YY0J7XAfzJBlK5jIzM02XLl0C1rv11ltN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LJTrbdmyRRdccIH/+4MHD+rHH3/UxRdfLOnXT0jYs2ePFi9erIyMDP96W7duDXlfait3nCMaRvHx8WU+0iQyMlJXXnml3njjDX3++edlrnP8R5WUJz09Xe3atdMTTzyhgwcPVriNyMhIZWdna+nSpfr3v//tv/xf//qXli1bFvR+FBcXB3zk09GjRzV37lw1bdpU6enpkn59ReCHH37Q/Pnzy1z/8OHDKioqCvr2gt2/ihw6dEhHjhwJWNauXTslJibW6qvETlBSUlLmrZfk5GSlpaWF7VhERkZqwIABevPNNwPeDiooKNDLL7+svn37KikpSZJ08cUXa926dVqzZo1/vaKiIs2bN09t2rRR586dJcn/S09FHwkUjGAfk6VFYfr06QHrPP300yHd3ksvvaQDBw74v3/99df1448/+rd/oo/r451o5vbs2RPwfUREhP8JvbLHxsUXX6zi4mLNnj3bv6ykpEQzZswIWC85OVnnn3++5s6dqx9//LHMdkLdX+nXt6qPf5Ww9JWv0pmHDRumkpISPfLII2WuX1xcfEKPqfKQMTJWkepmLJTrzZs3L+C8zdmzZ6u4uNh/TEpf2T42N0ePHtWsWbMqnf1YtZ07XhENo/T0dK1cuVJPPfWU0tLS1LZtW/Xq1UuPPfaY8vLy1KtXL91www3q3Lmz9u7dq02bNmnlypXau3dvpduNiIjQc889p4EDB6pLly4aPXq0mjdvrh9++EF5eXlKSkrSX//6V0nSQw89pL/97W/q16+fxo8fr+LiYs2YMUNdunQJONenMmlpaZoyZYq+//57dejQQX/5y1+Un5+vefPm+U+Svu666/Tqq6/qxhtvVF5ens477zyVlJRo8+bNevXVV7Vs2bKgz7cNZf/K8/XXXysrK0vDhg1T586dFRUVpSVLlqigoCDgDwVOBgcOHFCLFi00ZMgQde/eXQkJCVq5cqXWr1+vJ598Mmy384c//EErVqxQ3759NX78eEVFRWnu3Lnyer0Bnz14zz336JVXXtHAgQN1yy23qHHjxlqwYIG2bt2qN954w/8fNbRr104NGzbUnDlzlJiYqPj4ePXq1avM+dKVCfYx2aNHD1199dWaNWuWCgsL1adPH61atUrffPNNSMegcePG6tu3r0aPHq2CggI9/fTTat++vW644QZJJ/64ru7+VeT666/X3r171b9/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eGStYnUla3X+HNHo6Gilp6dr1apV/mU+n0+rVq2yfl6GkxhjdPPNN2vJkiV677331LZtW9sjleHz+eT1eq3cdlZWlv75z38qPz/f/3X22WfrmmuuUX5+viPCahtZq1pdyJlE1pyOrFWNrFWtrmStzr8iKkmTJk3SyJEjdfbZZ6tnz556+umnVVRUpNGjR1ub6eDBg/rmm2/832/dulX5+flq3LixWrVqVevz5OTk6OWXX9abb76pxMRE7dy5U5Lk8XgUGxtb6/Pce++9GjhwoFq1aqUDBw7o5Zdf1vvvv69ly5bV+iySlJiYWObcovj4eJ1yyinWzzlyEqdljZxVjazVTWStcmStanUma5b/aj9sZsyYYVq1amWio6NNz549zdq1a63Ok5eXZySV+Ro5cqSVecqbRZJ54YUXrMwzZswY07p1axMdHW2aNm1qsrKyzPLly63MUhEnfsyFEzgpa+SsamSt7iJrFSNr1ePErLmMMabG2y4AAABwnDp/jigAAADqJoooAAAArKCIAgAAwAqKKAAAAKygiAIAAMAKiigAAACsoIgCAADACoooAAAArKCIAgAAwAqKKAAAAKygiAIAAMAKiigAAACs+P/KiBcpA9JJYgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "res, (beliefs, smoothed_dense, smoothed_sparse) = experiment([2, 3])\n", + "\n", + "fig, axes = plt.subplots(2, 3, figsize=(8, 4), sharex=True)\n", + "\n", + "sns.heatmap(beliefs[0].mT, ax=axes[0, 0], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(beliefs[1].mT, ax=axes[1, 0], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "\n", + "sns.heatmap(smoothed_dense[0][0].mT, ax=axes[0, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(smoothed_dense[1][0].mT, ax=axes[1, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "\n", + "sns.heatmap(smoothed_sparse[0][0].mT, ax=axes[0, 2], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(smoothed_sparse[1][0].mT, ax=axes[1, 2], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "\n", + "axes[0, 0].set_title('Filtered beliefs')\n", + "axes[0, 1].set_title('smoothed beliefs dense')\n", + "axes[0, 2].set_title('smoothed beliefs sparse')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Benchmarking runtime and memory performance" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 1\n", + "\t [1000, 3000]\n", + "\t {'time_dense': 1.7025604248046875, 'size_dense': 10000000, 'time_sparse': 5.709225416183472, 'size_sparse': 16000}\n", + "Step 2\n", + "\t [2000, 6000]\n", + "\t {'time_dense': 3.0477356910705566, 'size_dense': 40000000, 'time_sparse': 5.879806756973267, 'size_sparse': 32000}\n" + ] + } + ], + "source": [ + "n_steps = 10\n", + "\n", + "res = []\n", + "for i in range(1, n_steps):\n", + " print(f\"Step {i}\")\n", + " num_states = [1000 * i, 3000 * i]\n", + " print('\\t', num_states)\n", + " results, bel = experiment(num_states)\n", + " res += [results]\n", + " print('\\t', res[-1])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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QUmn02HgwIEYM2YMnn32WfH4hQsXMHToULRq1UrceuS3335Damoq9Ho9QkNDERkZaRMj6ImIiKxJYWEh4uLiMHfuXAwbNgwAoFarkZSUhPHjxyMmJgZbt24FAPz000+4fPkydDodOnfujJ49e9p03WyRFqX27dujX79++PjjjwHc2on4zJkziI2NxZNPPomVK1dW+3pb/jKIiIgsobi4GG3atEFCQgIWLlwoHtfr9fjvf/+LqVOnYubMmZg7d261r7flurlBZ70Z94uZPn06Dh06hO3btwMoH1lvMBjQqVMnvPTSSzh58iRycnKqvYetfhFEREQNobr2EWdnZzz11FNISkoy2bRWJpNhwIABGD58uDjIuzq2XDfXW1DS6/VVfjeOkh8wYADCwsLw2WefYffu3eUFkUohkUgQEhKCK1euQKfT1VfRiIiImiS9Xi9uLJ+bm4u8vDyxvh46dCgKCgrw6aef4uzZs+JrXF1d0aFDB/z8888oKiqyVNEtpl6CksFggEwmg0qlwtSpU3HlyhXIZDLxy2jTpg3+/e9/Q6VSYcWKFfj888/F1+bk5MDf37/anYqJiIiodox1c1FREZ544gnExsbiH//4B2bOnImSkhL07t0bb7zxBpKTk/Huu+9i37594mtVKhVat24tbjzflNTbGCW1Wo3+/fvjxIkT6N+/P9atW4egoCDodDpxF+Fjx47hww8/xN69e9GyZUu0aNEC+/fvx8aNG216BD0REVFDMo4hUqlU6Nq1Kx588EGMGzcOZ8+exb59+zB27FhMnz4dALB79268+eabyM3NRUBAAFq2bIktW7Zg8+bNiI+Pt/A7aXj1EpT0ej3mzp2LX375BUOGDMH3338PrVaLjRs3Ijg42CQsZWZm4vLly/jPf/6D4OBgdOvWDf3797fpgWFEREQNTafT4bnnnkNeXh6+/vpryOVyAMCoUaOg1Wqxc+dO8drff/8dv/76K77++muEhYWhf//+iIuLa5J1c721KK1Zswb5+fl48cUXsWvXLixfvhw6na7asHQ7bnBLRERUN4zhJicnB6+99hq6du2KhIQEsR7evn07li9fjp9++gkSiYR1823qbGXuNWvWwN7eHuPGjYOdnR2mTJmC0tJSyGQyDBkyBHq9HqtWrcLEiRPx+eefIygoCHq9HoWFhfDy8jK5V1P7EoiIiOqDsW6eMGEC3N3dMWzYMDz88MMAIAYinU6HgoICSKVScQyScZZ6ZU21bq6TEdNff/01nnvuOXh7e8POzk6csebg4CAO4B42bBhmzJgBuVyOiRMn4s8//8RHH32E6OjoJjmKnoiIqD5VrpslEgns7e3F1bcrdyZJpVKTmeqbNm3CiBEjzG5g39Tcd4tSSUkJ1q1bhzZt2ty6qZ2d2NQnk8nEn42rfX700UeIiopCTk4O1qxZA1dX1/stBhEREVWorm4GbrUUVW4d8vb2hoODA2QyGTZs2ICEhARs2LCBs88r3Pen4OjoiA8//BARERFYtmwZvvzySwDlTXSV+zONPw8bNgx+fn7IysrC9u3bMWnSpGoXvyIiIqLaMVc3S6XSKnWuWq2Gs7Mz1q5di4SEBGzatAlPPfUU6+YKdRIXQ0ND8f7778PJyQlr1669Y1jasGEDvvjiC3z11VcYOnQovwgiIqJ6cC91MwCUlpYiJSUFzz77LDZt2oQxY8awbq6kztrVQkJCsGrVqruGpZKSEnz77bcYOXJkkx1BT0RE1BDuVDcbxyAFBQUhIiICO3fuNAlJrJvL1fnyABkZGZgxYwbUajUSEhIwduxYAOVrK1Ve0ZNfBBERUcMwVzcD5RviZmVloXXr1qybq1Ev6yiZ+0Kqm25IRERE9e9OYcmoKS4oeTf1klrMNfVduXKlyma5REREVP/M1c0ZGRli3cyQVFW9rcwN3EqvAODk5ISffvoJp0+fRqtWrerrkURERHQHrJtrpl77wYzptbi4GCkpKfj444/5RRAREVkQ6+aaqdcWJaO//voLN27cQJcuXer7UURERHQPWDffmwYJSkRERESNEaegEREREZnBoERERERkBoMSERERkRkMSkRERERmMCgRERERmcGgRERERGQGgxIRERGRGQxKRERERGYwKBERERGZwaBEREREZMb/A3T/Q1TlOpLkAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "keys = list(set(r.replace(\"_dense\", \"\").replace(\"_sparse\", \"\") for r in res[0].keys())) \n", + "n_plots = len(keys)\n", + "\n", + "fig, ax = plt.subplots(n_plots, 1, figsize=(6, 3 * n_plots))\n", + "for i, a in enumerate(ax.flatten()):\n", + " k = keys[i]\n", + " a.plot([r[k + \"_dense\"] for r in res], label=f\"{k.replace('_', ' ').capitalize()} dense\")\n", + " a.plot([r[k + \"_sparse\"] for r in res], label=f\"{k} sparse\")\n", + " a.set_xticks(list(range(0, len(res))))\n", + " a.set_xticklabels([f\"[{1000*i}, {3000*i}]\" for i in range(1, n_steps)], rotation=45)\n", + " m = max([r[k + \"_dense\"] for r in res] + [r[k + \"_sparse\"] for r in res]) * 1.05\n", + " a.set_ylim([0, m])\n", + "\n", + "plt.tight_layout()\n", + "[a.legend() for a in ax.flatten()]\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 092beed3b3ad1990fd8db8f328639595f4e5c86e Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Fri, 28 Jun 2024 08:26:28 +0200 Subject: [PATCH 145/196] Added mctx and mediapy dependencies --- poetry.lock | 495 +++++++++++++++++++++++++++---------------------- pyproject.toml | 2 + 2 files changed, 272 insertions(+), 225 deletions(-) diff --git a/poetry.lock b/poetry.lock index f2a46976..48d5dba5 100644 --- a/poetry.lock +++ b/poetry.lock @@ -384,8 +384,8 @@ files = [ [package.dependencies] numpy = [ - {version = ">1.13.3", markers = "python_version < \"3.12.0.rc1\""}, {version = ">=1.26.0b1", markers = "python_version >= \"3.12.0.rc1\""}, + {version = ">1.13.3", markers = "python_version < \"3.12.0.rc1\""}, ] [[package]] @@ -615,33 +615,33 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"] [[package]] name = "debugpy" -version = "1.8.1" +version = "1.8.2" description = "An implementation of the Debug Adapter Protocol for Python" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"}, - {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"}, - {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"}, - {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"}, - {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"}, - {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"}, - {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"}, - {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"}, - {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"}, - {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"}, - {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"}, - {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"}, - {file = "debugpy-1.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39"}, - {file = "debugpy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7"}, - {file = "debugpy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9"}, - {file = "debugpy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234"}, - {file = "debugpy-1.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42"}, - {file = "debugpy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703"}, - {file = "debugpy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23"}, - {file = "debugpy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3"}, - {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"}, - {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"}, + {file = "debugpy-1.8.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7ee2e1afbf44b138c005e4380097d92532e1001580853a7cb40ed84e0ef1c3d2"}, + {file = "debugpy-1.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f8c3f7c53130a070f0fc845a0f2cee8ed88d220d6b04595897b66605df1edd6"}, + {file = "debugpy-1.8.2-cp310-cp310-win32.whl", hash = "sha256:f179af1e1bd4c88b0b9f0fa153569b24f6b6f3de33f94703336363ae62f4bf47"}, + {file = "debugpy-1.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:0600faef1d0b8d0e85c816b8bb0cb90ed94fc611f308d5fde28cb8b3d2ff0fe3"}, + {file = "debugpy-1.8.2-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:8a13417ccd5978a642e91fb79b871baded925d4fadd4dfafec1928196292aa0a"}, + {file = "debugpy-1.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acdf39855f65c48ac9667b2801234fc64d46778021efac2de7e50907ab90c634"}, + {file = "debugpy-1.8.2-cp311-cp311-win32.whl", hash = "sha256:2cbd4d9a2fc5e7f583ff9bf11f3b7d78dfda8401e8bb6856ad1ed190be4281ad"}, + {file = "debugpy-1.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:d3408fddd76414034c02880e891ea434e9a9cf3a69842098ef92f6e809d09afa"}, + {file = "debugpy-1.8.2-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:5d3ccd39e4021f2eb86b8d748a96c766058b39443c1f18b2dc52c10ac2757835"}, + {file = "debugpy-1.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62658aefe289598680193ff655ff3940e2a601765259b123dc7f89c0239b8cd3"}, + {file = "debugpy-1.8.2-cp312-cp312-win32.whl", hash = "sha256:bd11fe35d6fd3431f1546d94121322c0ac572e1bfb1f6be0e9b8655fb4ea941e"}, + {file = "debugpy-1.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:15bc2f4b0f5e99bf86c162c91a74c0631dbd9cef3c6a1d1329c946586255e859"}, + {file = "debugpy-1.8.2-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:5a019d4574afedc6ead1daa22736c530712465c0c4cd44f820d803d937531b2d"}, + {file = "debugpy-1.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40f062d6877d2e45b112c0bbade9a17aac507445fd638922b1a5434df34aed02"}, + {file = "debugpy-1.8.2-cp38-cp38-win32.whl", hash = "sha256:c78ba1680f1015c0ca7115671fe347b28b446081dada3fedf54138f44e4ba031"}, + {file = "debugpy-1.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:cf327316ae0c0e7dd81eb92d24ba8b5e88bb4d1b585b5c0d32929274a66a5210"}, + {file = "debugpy-1.8.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:1523bc551e28e15147815d1397afc150ac99dbd3a8e64641d53425dba57b0ff9"}, + {file = "debugpy-1.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e24ccb0cd6f8bfaec68d577cb49e9c680621c336f347479b3fce060ba7c09ec1"}, + {file = "debugpy-1.8.2-cp39-cp39-win32.whl", hash = "sha256:7f8d57a98c5a486c5c7824bc0b9f2f11189d08d73635c326abef268f83950326"}, + {file = "debugpy-1.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:16c8dcab02617b75697a0a925a62943e26a0330da076e2a10437edd9f0bf3755"}, + {file = "debugpy-1.8.2-py2.py3-none-any.whl", hash = "sha256:16e16df3a98a35c63c3ab1e4d19be4cbc7fdda92d9ddc059294f18910928e0ca"}, + {file = "debugpy-1.8.2.zip", hash = "sha256:95378ed08ed2089221896b9b3a8d021e642c24edc8fef20e5d4342ca8be65c00"}, ] [[package]] @@ -731,13 +731,13 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth [[package]] name = "fastjsonschema" -version = "2.19.1" +version = "2.20.0" description = "Fastest Python implementation of JSON schema" optional = false python-versions = "*" files = [ - {file = "fastjsonschema-2.19.1-py3-none-any.whl", hash = "sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0"}, - {file = "fastjsonschema-2.19.1.tar.gz", hash = "sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d"}, + {file = "fastjsonschema-2.20.0-py3-none-any.whl", hash = "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a"}, + {file = "fastjsonschema-2.20.0.tar.gz", hash = "sha256:3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23"}, ] [package.extras] @@ -946,13 +946,13 @@ files = [ [[package]] name = "imageio" -version = "2.34.1" +version = "2.34.2" description = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats." optional = false python-versions = ">=3.8" files = [ - {file = "imageio-2.34.1-py3-none-any.whl", hash = "sha256:408c1d4d62f72c9e8347e7d1ca9bc11d8673328af3913868db3b828e28b40a4c"}, - {file = "imageio-2.34.1.tar.gz", hash = "sha256:f13eb76e4922f936ac4a7fec77ce8a783e63b93543d4ea3e40793a6cabd9ac7d"}, + {file = "imageio-2.34.2-py3-none-any.whl", hash = "sha256:a0bb27ec9d5bab36a9f4835e51b21d2cb099e1f78451441f94687ff3404b79f8"}, + {file = "imageio-2.34.2.tar.gz", hash = "sha256:5c0c0ee8faa018a1c42f649b90395dd4d3bb6187c09053a0cd6f1fdd51bbff5e"}, ] [package.dependencies] @@ -989,22 +989,22 @@ files = [ [[package]] name = "importlib-metadata" -version = "7.1.0" +version = "8.0.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"}, - {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"}, + {file = "importlib_metadata-8.0.0-py3-none-any.whl", hash = "sha256:15584cf2b1bf449d98ff8a6ff1abef57bf20f3ac6454f431736cd3e660921b2f"}, + {file = "importlib_metadata-8.0.0.tar.gz", hash = "sha256:188bd24e4c346d3f0a933f275c2fec67050326a856b9a359881d7c2a697e8812"}, ] [package.dependencies] zipp = ">=0.5" [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] +test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] [[package]] name = "iniconfig" @@ -1136,88 +1136,83 @@ arrow = ">=0.15.0" [[package]] name = "jax" -version = "0.4.28" +version = "0.4.30" description = "Differentiate, compile, and transform Numpy code." optional = false python-versions = ">=3.9" files = [ - {file = "jax-0.4.28-py3-none-any.whl", hash = "sha256:6a181e6b5a5b1140e19cdd2d5c4aa779e4cb4ec627757b918be322d8e81035ba"}, - {file = "jax-0.4.28.tar.gz", hash = "sha256:dcf0a44aff2e1713f0a2b369281cd5b79d8c18fc1018905c4125897cb06b37e9"}, + {file = "jax-0.4.30-py3-none-any.whl", hash = "sha256:289b30ae03b52f7f4baf6ef082a9f4e3e29c1080e22d13512c5ecf02d5f1a55b"}, + {file = "jax-0.4.30.tar.gz", hash = "sha256:94d74b5b2db0d80672b61d83f1f63ebf99d2ab7398ec12b2ca0c9d1e97afe577"}, ] [package.dependencies] +jaxlib = ">=0.4.27,<=0.4.30" ml-dtypes = ">=0.2.0" numpy = [ - {version = ">=1.23.2", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, + {version = ">=1.23.2", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, ] opt-einsum = "*" scipy = [ - {version = ">=1.9", markers = "python_version < \"3.12\""}, {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, + {version = ">=1.9", markers = "python_version < \"3.12\""}, ] [package.extras] -australis = ["protobuf (>=3.13,<4)"] -ci = ["jaxlib (==0.4.27)"] -cpu = ["jaxlib (==0.4.28)"] -cuda = ["jaxlib (==0.4.28+cuda12.cudnn89)"] -cuda12 = ["jax-cuda12-plugin (==0.4.28)", "jaxlib (==0.4.28)", "nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] -cuda12-cudnn89 = ["jaxlib (==0.4.28+cuda12.cudnn89)"] -cuda12-local = ["jaxlib (==0.4.28+cuda12.cudnn89)"] -cuda12-pip = ["jaxlib (==0.4.28+cuda12.cudnn89)", "nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] +ci = ["jaxlib (==0.4.29)"] +cuda = ["jax-cuda12-plugin[with-cuda] (==0.4.30)", "jaxlib (==0.4.30)"] +cuda12 = ["jax-cuda12-plugin[with-cuda] (==0.4.30)", "jaxlib (==0.4.30)"] +cuda12-local = ["jax-cuda12-plugin (==0.4.30)", "jaxlib (==0.4.30)"] +cuda12-pip = ["jax-cuda12-plugin[with-cuda] (==0.4.30)", "jaxlib (==0.4.30)"] minimum-jaxlib = ["jaxlib (==0.4.27)"] -tpu = ["jaxlib (==0.4.28)", "libtpu-nightly (==0.1.dev20240508)", "requests"] +tpu = ["jaxlib (==0.4.30)", "libtpu-nightly (==0.1.dev20240617)", "requests"] [[package]] name = "jaxlib" -version = "0.4.28" +version = "0.4.30" description = "XLA library for JAX" optional = false python-versions = ">=3.9" files = [ - {file = "jaxlib-0.4.28-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:a421d237f8c25d2850166d334603c673ddb9b6c26f52bc496704b8782297bd66"}, - {file = "jaxlib-0.4.28-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f038e68bd10d1a3554722b0bbe36e6a448384437a75aa9d283f696f0ed9f8c09"}, - {file = "jaxlib-0.4.28-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:fabe77c174e9e196e9373097cefbb67e00c7e5f9d864583a7cfcf9dabd2429b6"}, - {file = "jaxlib-0.4.28-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:e3bcdc6f8e60f8554f415c14d930134e602e3ca33c38e546274fd545f875769b"}, - {file = "jaxlib-0.4.28-cp310-cp310-win_amd64.whl", hash = "sha256:a8b31c0e5eea36b7915696b9be40ea8646edc395a3e5437bf7ef26b7239a567a"}, - {file = "jaxlib-0.4.28-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:2ff8290edc7b92c7eae52517f65492633e267b2e9067bad3e4c323d213e77cf5"}, - {file = "jaxlib-0.4.28-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:793857faf37f371cafe752fea5fc811f435e43b8fb4b502058444a7f5eccf829"}, - {file = "jaxlib-0.4.28-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:b41a6b0d506c09f86a18ecc05bd376f072b548af89c333107e49bb0c09c1a3f8"}, - {file = "jaxlib-0.4.28-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:45ce0f3c840cff8236cff26c37f26c9ff078695f93e0c162c320c281f5041275"}, - {file = "jaxlib-0.4.28-cp311-cp311-win_amd64.whl", hash = "sha256:d4d762c3971d74e610a0e85a7ee063cea81a004b365b2a7dc65133f08b04fac5"}, - {file = "jaxlib-0.4.28-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:d6c09a545329722461af056e735146d2c8c74c22ac7426a845eb69f326b4f7a0"}, - {file = "jaxlib-0.4.28-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8dd8bffe3853702f63cd924da0ee25734a4d19cd5c926be033d772ba7d1c175d"}, - {file = "jaxlib-0.4.28-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:de2e8521eb51e16e85093a42cb51a781773fa1040dcf9245d7ea160a14ee5a5b"}, - {file = "jaxlib-0.4.28-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:46a1aa857f4feee8a43fcba95c0e0ab62d40c26cc9730b6c69655908ba359f8d"}, - {file = "jaxlib-0.4.28-cp312-cp312-win_amd64.whl", hash = "sha256:eee428eac31697a070d655f1f24f6ab39ced76750d93b1de862377a52dcc2401"}, - {file = "jaxlib-0.4.28-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:4f98cc837b2b6c6dcfe0ab7ff9eb109314920946119aa3af9faa139718ff2787"}, - {file = "jaxlib-0.4.28-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b01562ec8ad75719b7d0389752489e97eb6b4dcb4c8c113be491634d5282ad3c"}, - {file = "jaxlib-0.4.28-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:aa77a9360a395ba9faf6932df637686fb0c14ddcf4fdc1d2febe04bc88a580a6"}, - {file = "jaxlib-0.4.28-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:4a56ebf05b4a4c1791699d874e072f3f808f0986b4010b14fb549a69c90ca9dc"}, - {file = "jaxlib-0.4.28-cp39-cp39-win_amd64.whl", hash = "sha256:459a4ddcc3e120904b9f13a245430d7801d707bca48925981cbdc59628057dc8"}, + {file = "jaxlib-0.4.30-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:c40856e28f300938c6824ab1a615166193d6997dec946578823f6d402ad454e5"}, + {file = "jaxlib-0.4.30-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4bdfda6a3c7a2b0cc0a7131009eb279e98ca4a6f25679fabb5302dd135a5e349"}, + {file = "jaxlib-0.4.30-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:28e032c9b394ab7624d89b0d9d3bbcf4d1d71694fe8b3e09d3fe64122eda7b0c"}, + {file = "jaxlib-0.4.30-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:d83f36ef42a403bbf7c7f2da526b34ba286988e170f4df5e58b3bb735417868c"}, + {file = "jaxlib-0.4.30-cp310-cp310-win_amd64.whl", hash = "sha256:a56678b28f96b524ded6da8ef4b38e72a532356d139cfd434da804abf4234e14"}, + {file = "jaxlib-0.4.30-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:bfb5d85b69c29c3c6e8051a0ea715ac1e532d6e54494c8d9c3813dcc00deac30"}, + {file = "jaxlib-0.4.30-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:974998cd8a78550402e6c09935c1f8d850cad9cc19ccd7488bde45b6f7f99c12"}, + {file = "jaxlib-0.4.30-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:e93eb0646b41ba213252b51b0b69096b9cd1d81a35ea85c9d06663b5d11efe45"}, + {file = "jaxlib-0.4.30-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:16b2ab18ea90d2e15941bcf45de37afc2f289a029129c88c8d7aba0404dd0043"}, + {file = "jaxlib-0.4.30-cp311-cp311-win_amd64.whl", hash = "sha256:3a2e2c11c179f8851a72249ba1ae40ae817dfaee9877d23b3b8f7c6b7a012f76"}, + {file = "jaxlib-0.4.30-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:7704db5962b32a2be3cc07185433cbbcc94ed90ee50c84021a3f8a1ecfd66ee3"}, + {file = "jaxlib-0.4.30-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:57090d33477fd0f0c99dc686274882ea75c44c7d712ae42dd2460b10f896131d"}, + {file = "jaxlib-0.4.30-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:0a3850e76278038e21685975a62b622bcf3708485f13125757a0561ee4512940"}, + {file = "jaxlib-0.4.30-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:c58a8071c4e00898282118169f6a5a97eb15a79c2897858f3a732b17891c99ab"}, + {file = "jaxlib-0.4.30-cp312-cp312-win_amd64.whl", hash = "sha256:b7079a5b1ab6864a7d4f2afaa963841451186d22c90f39719a3ff85735ce3915"}, + {file = "jaxlib-0.4.30-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:ea3a00005faafbe3c18b178d3b534208b3b4027b2be6230227e7b87ce399fc29"}, + {file = "jaxlib-0.4.30-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3d31e01191ce8052bd611aaf16ff967d8d0ec0b63f1ea4b199020cecb248d667"}, + {file = "jaxlib-0.4.30-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:11602d5556e8baa2f16314c36518e9be4dfae0c2c256a361403fb29dc9dc79a4"}, + {file = "jaxlib-0.4.30-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:f74a6b0e09df4b5e2ee399ebb9f0e01190e26e84ccb0a758fadb516415c07f18"}, + {file = "jaxlib-0.4.30-cp39-cp39-win_amd64.whl", hash = "sha256:54987e97a22db70f3829b437b9329e4799d653634bacc8b398554d3b90c76b2a"}, ] [package.dependencies] ml-dtypes = ">=0.2.0" numpy = ">=1.22" scipy = [ - {version = ">=1.9", markers = "python_version < \"3.12\""}, {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, + {version = ">=1.9", markers = "python_version < \"3.12\""}, ] -[package.extras] -cuda12-pip = ["nvidia-cublas-cu12 (>=12.1.3.1)", "nvidia-cuda-cupti-cu12 (>=12.1.105)", "nvidia-cuda-nvcc-cu12 (>=12.1.105)", "nvidia-cuda-runtime-cu12 (>=12.1.105)", "nvidia-cudnn-cu12 (>=8.9.2.26,<9.0)", "nvidia-cufft-cu12 (>=11.0.2.54)", "nvidia-cusolver-cu12 (>=11.4.5.107)", "nvidia-cusparse-cu12 (>=12.1.0.106)", "nvidia-nccl-cu12 (>=2.18.1)", "nvidia-nvjitlink-cu12 (>=12.1.105)"] - [[package]] name = "jaxtyping" -version = "0.2.29" +version = "0.2.31" description = "Type annotations and runtime checking for shape and dtype of JAX arrays, and PyTrees." optional = false python-versions = "~=3.9" files = [ - {file = "jaxtyping-0.2.29-py3-none-any.whl", hash = "sha256:3580fc4dfef4c98ef2372c2c81314d89b98a186eb78d69d925fd0546025d556f"}, - {file = "jaxtyping-0.2.29.tar.gz", hash = "sha256:e1cd916ed0196e40402b0638449e7d051571562b2cd68d8b94961a383faeb409"}, + {file = "jaxtyping-0.2.31-py3-none-any.whl", hash = "sha256:04ed0e16ad4327270c8832334aa5d06176f475f3f8bdf7200bebc54afb1e3fd3"}, + {file = "jaxtyping-0.2.31.tar.gz", hash = "sha256:83c7c0bfae1d1ce25801480b5572d96c0f2b889785b4e50bdc25a07058b7bd50"}, ] [package.dependencies] @@ -1261,13 +1256,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonpointer" -version = "2.4" +version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +python-versions = ">=3.7" files = [ - {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, - {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, ] [[package]] @@ -1929,6 +1924,22 @@ files = [ [package.dependencies] traitlets = "*" +[[package]] +name = "mctx" +version = "0.0.5" +description = "Monte Carlo tree search in JAX." +optional = false +python-versions = ">=3.9" +files = [ + {file = "mctx-0.0.5-py3-none-any.whl", hash = "sha256:d263830a1e44a16fe2ede5ed5b37fd83626459bfccbb1ab814a6bd49bf62ffd3"}, + {file = "mctx-0.0.5.tar.gz", hash = "sha256:e9f669bf4fd4c4f61837be6f9ab0ca60180945108c36bcdf5beaabc481020e21"}, +] + +[package.dependencies] +chex = ">=0.0.8" +jax = ">=0.1.55" +jaxlib = ">=0.1.37" + [[package]] name = "mdit-py-plugins" version = "0.2.8" @@ -1948,6 +1959,26 @@ code-style = ["pre-commit (==2.6)"] rtd = ["myst-parser (==0.14.0a3)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] testing = ["coverage", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"] +[[package]] +name = "mediapy" +version = "1.2.2" +description = "Read/write/show images and videos in an IPython notebook" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mediapy-1.2.2-py3-none-any.whl", hash = "sha256:2b159c385120c6eca9c88ccf96a19fb2b5b5937c788cf430db637d27270618ba"}, + {file = "mediapy-1.2.2.tar.gz", hash = "sha256:42d9a1aa93c183550b824dbb4f0de5da61aa5c84db8f01f063acd1f23b90ef0a"}, +] + +[package.dependencies] +ipython = "*" +matplotlib = "*" +numpy = "*" +Pillow = "*" + +[package.extras] +dev = ["absl-py", "pyink", "pylint (>=2.6.0)", "pytest", "pytest-xdist", "pytype"] + [[package]] name = "mistune" version = "0.8.4" @@ -1987,13 +2018,24 @@ files = [ [package.dependencies] numpy = [ - {version = ">=1.23.3", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, + {version = ">=1.23.3", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, ] [package.extras] dev = ["absl-py", "pyink", "pylint (>=2.6.0)", "pytest", "pytest-xdist"] +[[package]] +name = "multimethod" +version = "1.11.2" +description = "Multiple argument dispatching." +optional = false +python-versions = ">=3.9" +files = [ + {file = "multimethod-1.11.2-py3-none-any.whl", hash = "sha256:cb338f09395c0ee87d36c7691cdd794d13d8864358082cf1205f812edd5ce05a"}, + {file = "multimethod-1.11.2.tar.gz", hash = "sha256:7f2a4863967142e6db68632fef9cd79053c09670ba0c5f113301e245140bba5c"}, +] + [[package]] name = "multipledispatch" version = "1.0.0" @@ -2200,38 +2242,36 @@ files = [ [[package]] name = "netcdf4" -version = "1.6.5" +version = "1.7.1.post1" description = "Provides an object-oriented python interface to the netCDF version 4 library" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "netCDF4-1.6.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d23b97cbde2bf413fadc4697c5c255a0436511c02f811e127e0fb12f5b882a4c"}, - {file = "netCDF4-1.6.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e5edfed673005f47f8d2fbea9c72c382b085dd358ac3c20ca743a563ed7b90e"}, - {file = "netCDF4-1.6.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10d2ac9ae1308ca837d86c6dc304ec455a85bdba0f2175e222844a54589168dc"}, - {file = "netCDF4-1.6.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a63a2be2f80977ac23bb0aa736c565011fd4639097ce0922e01b0dc38015df2"}, - {file = "netCDF4-1.6.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aaceea2097d292bad398d9f9b4fe403efa7b1568fcfa6faba9b67b1630027f9"}, - {file = "netCDF4-1.6.5-cp310-cp310-win_amd64.whl", hash = "sha256:111357d9e12eb79e8d58bfd91bc6b230d35b17a0ebd8c546d17416e8ceebea49"}, - {file = "netCDF4-1.6.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1c5fede0b34c0a02a1b9e84116bfb3fcd2f80124a651d4836e72b785d10e2f15"}, - {file = "netCDF4-1.6.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3de5512b9270aa6472e4f3aa2bf895a7364c1d4f8667ce3b82e8232197d4fec8"}, - {file = "netCDF4-1.6.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b20971a164431f6eca1d24df8aa153db15c2c1b9630e83ccc5cf004e8ac8151d"}, - {file = "netCDF4-1.6.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad1101d538077152b866782e44458356981526bf2ea9cc07930bf28b589c82a7"}, - {file = "netCDF4-1.6.5-cp311-cp311-win_amd64.whl", hash = "sha256:de4dc973fae9e2bbdf42e094125e423a4c25393172a61958314969b055a38889"}, - {file = "netCDF4-1.6.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:19e16c63cdd7c0dbffe284a4a65f226ba1026f476f35cbedd099b4792b395f69"}, - {file = "netCDF4-1.6.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b994afce2ca4073f6b757385a6c0ffec25ecaae2b8821535b303c7cdbf6de42b"}, - {file = "netCDF4-1.6.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0187646e3348e7a8cd654617dda65517df138042c94c2fcc6682ff7c8c6654dc"}, - {file = "netCDF4-1.6.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1ab5dabac27d25fcc82c52dc29a74a6585e865208cce35f4e285df83d3df0b2"}, - {file = "netCDF4-1.6.5-cp312-cp312-win_amd64.whl", hash = "sha256:081e9043ac6160989f60570928eabe803c88ce7df1d3f79f2345dc48f68ef752"}, - {file = "netCDF4-1.6.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b47b22dda5b25ba6291f97634d7ac67b0a843f8ae5c9d9d5813c15364f66d0a"}, - {file = "netCDF4-1.6.5-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4609dd62d14798c9524327287091875449d68588c128abb768fc0c76c4a28165"}, - {file = "netCDF4-1.6.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2455e9d35fde067e6a6bdc24aa9d44962235a071cec49904d1589e298c23dcd3"}, - {file = "netCDF4-1.6.5-cp38-cp38-win_amd64.whl", hash = "sha256:2c210794d96431d92b5992e46ad8a9f97237bf6d6956f8816978a03dc0fa18c3"}, - {file = "netCDF4-1.6.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:18255b8b283d32d3900092f29c67e53aa25bd8f0dfe7adde59fe782d865a381c"}, - {file = "netCDF4-1.6.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:53050562bac84738bbd121fbbee9593d074579f5d6fdaafcb981abeb5c964225"}, - {file = "netCDF4-1.6.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:938c062382406bca9198b16adddd87c09b00521766b138cdfd11c95546eefeb8"}, - {file = "netCDF4-1.6.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a8300451d7542d3c4ff1dcccf5fb1c7d44bdd1dc08ec77dab04416caf13cb1f"}, - {file = "netCDF4-1.6.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a27db2701feef31201c9b20b04a9579196edc20dfc339ca423c7b81e462d6e14"}, - {file = "netCDF4-1.6.5-cp39-cp39-win_amd64.whl", hash = "sha256:574d7742ab321e5f9f33b5b1296c4ad4e5c469152c17d4fc453d5070e413e596"}, - {file = "netCDF4-1.6.5.tar.gz", hash = "sha256:824881d0aacfde5bd982d6adedd8574259c85553781e7b83e0ce82b890bfa0ef"}, + {file = "netCDF4-1.7.1.post1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:5abdc8ab27bcb11325547841311717a0ba8f5b73a5fc5e93b933bc23285d0c03"}, + {file = "netCDF4-1.7.1.post1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:33f5d66ee9cedf43d3932d0e5447eb471f9c53332f93476133b4bfc6b682f790"}, + {file = "netCDF4-1.7.1.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d649fad9d1f63e25a191576c7de158c8c3afa8d4b4001e8683e20da90b49b939"}, + {file = "netCDF4-1.7.1.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:860222bc57bbc714e55705f263162be2c935129dcb700a944bda61aee785ff03"}, + {file = "netCDF4-1.7.1.post1-cp310-cp310-win_amd64.whl", hash = "sha256:d5420155ca6c768c070922d80acd9f4088a913afd25a9fd2f429e7af626374eb"}, + {file = "netCDF4-1.7.1.post1-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:a8d3209516aa8c58d70863ab1059af4ec82ef8ecb1c6b8cb4842d7825a6f64da"}, + {file = "netCDF4-1.7.1.post1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:7a10da9b60d3358876d53a0cd691d2c900c2b39903bf25ad5235fd321d59eb2f"}, + {file = "netCDF4-1.7.1.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac99e03d6e28419b206444fd6dc80a5e21d0ae8e53ff37d756fbc16c5d3775"}, + {file = "netCDF4-1.7.1.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e15f3afa4e6910fc158a318ea73fdc6f9e41058c71bf98a99fd63994334d16b0"}, + {file = "netCDF4-1.7.1.post1-cp311-cp311-win_amd64.whl", hash = "sha256:115160fc8e09333754542c33d721d42625a7bd62381a74f2f759297e3e38810b"}, + {file = "netCDF4-1.7.1.post1-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:75bba24ef0354fb6913bc3acdcb3790534e86bf329bbeaaf54122b18e5fd05ea"}, + {file = "netCDF4-1.7.1.post1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:ce7f89b98dbb3acd9582db30e6478ce7a7003b2cb70dc20d85fe9506e65ab001"}, + {file = "netCDF4-1.7.1.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac4e30a0d5a8e227d6a890502cfa201388acf606c0c73a5a7594232f3a74e67e"}, + {file = "netCDF4-1.7.1.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:988c45f9122337a12267fb158953c0609e3ea50a557335a3105f104416a4821a"}, + {file = "netCDF4-1.7.1.post1-cp312-cp312-win_amd64.whl", hash = "sha256:8fb3ed3541fa1b5b46e9d92d7e803734a1a3f37d8f5adf5fdf7957c7750cb20e"}, + {file = "netCDF4-1.7.1.post1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:a4d05cc4c3628a7b88d623cb1a02908100a4938335a0289fa79c19016c21d7f9"}, + {file = "netCDF4-1.7.1.post1-cp38-cp38-macosx_14_0_arm64.whl", hash = "sha256:3a9ba8dc93f3d9019db921e42d40fa6791e7e244f3bb3a874bf2bfb96aea7380"}, + {file = "netCDF4-1.7.1.post1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fbbca82a822ba74b605254f7a267d258f13d67f8a4156a09e26322bfa002a82d"}, + {file = "netCDF4-1.7.1.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a09da245f4784421fb4d5740dae0367cdbb270d0a931a33474ec17a9433314d"}, + {file = "netCDF4-1.7.1.post1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:fdcec3a3150f9248e76301ad723f51955efc770edf015dfb61a6480cc7c04a70"}, + {file = "netCDF4-1.7.1.post1-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:0fed0eb65a7751a99a0cee08c6df383737d46d17c73cabae81d113f1b4fa3643"}, + {file = "netCDF4-1.7.1.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daa6169fe6617a4612cb75a8ef61ee14011a012633ad1ace1b629a1ff87bf5cf"}, + {file = "netCDF4-1.7.1.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcad21e965978cc5530131bd7e73dcabe7dda1f681f9e4ebf940a65a176d25fe"}, + {file = "netCDF4-1.7.1.post1-cp39-cp39-win_amd64.whl", hash = "sha256:f24027ae19b68cc1274aad8b00d6d81879d506ddca011a080dff2117014398b9"}, + {file = "netcdf4-1.7.1.post1.tar.gz", hash = "sha256:797f0b25d87827fc6821e415d9e15a2068604b18c3be62563e72682bcba76548"}, ] [package.dependencies] @@ -2313,47 +2353,56 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" [[package]] name = "numpy" -version = "1.26.4" +version = "2.0.0" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.9" files = [ - {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, - {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, - {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, - {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, - {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, - {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, - {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, - {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, - {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, - {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, - {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, + {file = "numpy-2.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:04494f6ec467ccb5369d1808570ae55f6ed9b5809d7f035059000a37b8d7e86f"}, + {file = "numpy-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2635dbd200c2d6faf2ef9a0d04f0ecc6b13b3cad54f7c67c61155138835515d2"}, + {file = "numpy-2.0.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:0a43f0974d501842866cc83471bdb0116ba0dffdbaac33ec05e6afed5b615238"}, + {file = "numpy-2.0.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:8d83bb187fb647643bd56e1ae43f273c7f4dbcdf94550d7938cfc32566756514"}, + {file = "numpy-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79e843d186c8fb1b102bef3e2bc35ef81160ffef3194646a7fdd6a73c6b97196"}, + {file = "numpy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d7696c615765091cc5093f76fd1fa069870304beaccfd58b5dcc69e55ef49c1"}, + {file = "numpy-2.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b4c76e3d4c56f145d41b7b6751255feefae92edbc9a61e1758a98204200f30fc"}, + {file = "numpy-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acd3a644e4807e73b4e1867b769fbf1ce8c5d80e7caaef0d90dcdc640dfc9787"}, + {file = "numpy-2.0.0-cp310-cp310-win32.whl", hash = "sha256:cee6cc0584f71adefe2c908856ccc98702baf95ff80092e4ca46061538a2ba98"}, + {file = "numpy-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:ed08d2703b5972ec736451b818c2eb9da80d66c3e84aed1deeb0c345fefe461b"}, + {file = "numpy-2.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad0c86f3455fbd0de6c31a3056eb822fc939f81b1618f10ff3406971893b62a5"}, + {file = "numpy-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e7f387600d424f91576af20518334df3d97bc76a300a755f9a8d6e4f5cadd289"}, + {file = "numpy-2.0.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:34f003cb88b1ba38cb9a9a4a3161c1604973d7f9d5552c38bc2f04f829536609"}, + {file = "numpy-2.0.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:b6f6a8f45d0313db07d6d1d37bd0b112f887e1369758a5419c0370ba915b3871"}, + {file = "numpy-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f64641b42b2429f56ee08b4f427a4d2daf916ec59686061de751a55aafa22e4"}, + {file = "numpy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7039a136017eaa92c1848152827e1424701532ca8e8967fe480fe1569dae581"}, + {file = "numpy-2.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:46e161722e0f619749d1cd892167039015b2c2817296104487cd03ed4a955995"}, + {file = "numpy-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0e50842b2295ba8414c8c1d9d957083d5dfe9e16828b37de883f51fc53c4016f"}, + {file = "numpy-2.0.0-cp311-cp311-win32.whl", hash = "sha256:2ce46fd0b8a0c947ae047d222f7136fc4d55538741373107574271bc00e20e8f"}, + {file = "numpy-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd6acc766814ea6443628f4e6751d0da6593dae29c08c0b2606164db026970c"}, + {file = "numpy-2.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:354f373279768fa5a584bac997de6a6c9bc535c482592d7a813bb0c09be6c76f"}, + {file = "numpy-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4d2f62e55a4cd9c58c1d9a1c9edaedcd857a73cb6fda875bf79093f9d9086f85"}, + {file = "numpy-2.0.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:1e72728e7501a450288fc8e1f9ebc73d90cfd4671ebbd631f3e7857c39bd16f2"}, + {file = "numpy-2.0.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:84554fc53daa8f6abf8e8a66e076aff6ece62de68523d9f665f32d2fc50fd66e"}, + {file = "numpy-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c73aafd1afca80afecb22718f8700b40ac7cab927b8abab3c3e337d70e10e5a2"}, + {file = "numpy-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49d9f7d256fbc804391a7f72d4a617302b1afac1112fac19b6c6cec63fe7fe8a"}, + {file = "numpy-2.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0ec84b9ba0654f3b962802edc91424331f423dcf5d5f926676e0150789cb3d95"}, + {file = "numpy-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:feff59f27338135776f6d4e2ec7aeeac5d5f7a08a83e80869121ef8164b74af9"}, + {file = "numpy-2.0.0-cp312-cp312-win32.whl", hash = "sha256:c5a59996dc61835133b56a32ebe4ef3740ea5bc19b3983ac60cc32be5a665d54"}, + {file = "numpy-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:a356364941fb0593bb899a1076b92dfa2029f6f5b8ba88a14fd0984aaf76d0df"}, + {file = "numpy-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e61155fae27570692ad1d327e81c6cf27d535a5d7ef97648a17d922224b216de"}, + {file = "numpy-2.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4554eb96f0fd263041baf16cf0881b3f5dafae7a59b1049acb9540c4d57bc8cb"}, + {file = "numpy-2.0.0-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:903703372d46bce88b6920a0cd86c3ad82dae2dbef157b5fc01b70ea1cfc430f"}, + {file = "numpy-2.0.0-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:3e8e01233d57639b2e30966c63d36fcea099d17c53bf424d77f088b0f4babd86"}, + {file = "numpy-2.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cde1753efe513705a0c6d28f5884e22bdc30438bf0085c5c486cdaff40cd67a"}, + {file = "numpy-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821eedb7165ead9eebdb569986968b541f9908979c2da8a4967ecac4439bae3d"}, + {file = "numpy-2.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a1712c015831da583b21c5bfe15e8684137097969c6d22e8316ba66b5baabe4"}, + {file = "numpy-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9c27f0946a3536403efb0e1c28def1ae6730a72cd0d5878db38824855e3afc44"}, + {file = "numpy-2.0.0-cp39-cp39-win32.whl", hash = "sha256:63b92c512d9dbcc37f9d81b123dec99fdb318ba38c8059afc78086fe73820275"}, + {file = "numpy-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:3f6bed7f840d44c08ebdb73b1825282b801799e325bcbdfa6bc5c370e5aecc65"}, + {file = "numpy-2.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9416a5c2e92ace094e9f0082c5fd473502c91651fb896bc17690d6fc475128d6"}, + {file = "numpy-2.0.0-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:17067d097ed036636fa79f6a869ac26df7db1ba22039d962422506640314933a"}, + {file = "numpy-2.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ecb5b0582cd125f67a629072fed6f83562d9dd04d7e03256c9829bdec027ad"}, + {file = "numpy-2.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cef04d068f5fb0518a77857953193b6bb94809a806bd0a14983a8f12ada060c9"}, + {file = "numpy-2.0.0.tar.gz", hash = "sha256:cf5d1c9e6837f8af9f92b6bd3e86d513cdc11f60fd62185cc49ec7d1aba34864"}, ] [[package]] @@ -2385,29 +2434,24 @@ tpu = ["jax[tpu] (>=0.4.14)"] [[package]] name = "opencv-python" -version = "4.10.0.82" +version = "4.10.0.84" description = "Wrapper package for OpenCV python bindings." optional = false python-versions = ">=3.6" files = [ - {file = "opencv-python-4.10.0.82.tar.gz", hash = "sha256:dbc021eaa310c4145c47cd648cb973db69bb5780d6e635386cd53d3ea76bd2d5"}, - {file = "opencv_python-4.10.0.82-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:5f78652339957ec24b80a782becfb32f822d2008a865512121fad8c3ce233e9a"}, - {file = "opencv_python-4.10.0.82-cp37-abi3-macosx_12_0_x86_64.whl", hash = "sha256:e6be19a0615aa8c4e0d34e0c7b133e26e386f4b7e9b557b69479104ab2c133ec"}, - {file = "opencv_python-4.10.0.82-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b49e530f7fd86f671514b39ffacdf5d14ceb073bc79d0de46bbb6b0cad78eaf"}, - {file = "opencv_python-4.10.0.82-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955c5ce8ac90c9e4636ad7f5c0d9c75b80abbe347182cfd09b0e3eec6e50472c"}, - {file = "opencv_python-4.10.0.82-cp37-abi3-win32.whl", hash = "sha256:ff54adc9e4daaf438e669664af08bec4a268c7b7356079338b8e4fae03810f2c"}, - {file = "opencv_python-4.10.0.82-cp37-abi3-win_amd64.whl", hash = "sha256:2e3c2557b176f1e528417520a52c0600a92c1bb1c359f3df8e6411ab4293f065"}, + {file = "opencv-python-4.10.0.84.tar.gz", hash = "sha256:72d234e4582e9658ffea8e9cae5b63d488ad06994ef12d81dc303b17472f3526"}, + {file = "opencv_python-4.10.0.84-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:fc182f8f4cda51b45f01c64e4cbedfc2f00aff799debebc305d8d0210c43f251"}, + {file = "opencv_python-4.10.0.84-cp37-abi3-macosx_12_0_x86_64.whl", hash = "sha256:71e575744f1d23f79741450254660442785f45a0797212852ee5199ef12eed98"}, + {file = "opencv_python-4.10.0.84-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09a332b50488e2dda866a6c5573ee192fe3583239fb26ff2f7f9ceb0bc119ea6"}, + {file = "opencv_python-4.10.0.84-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ace140fc6d647fbe1c692bcb2abce768973491222c067c131d80957c595b71f"}, + {file = "opencv_python-4.10.0.84-cp37-abi3-win32.whl", hash = "sha256:2db02bb7e50b703f0a2d50c50ced72e95c574e1e5a0bb35a8a86d0b35c98c236"}, + {file = "opencv_python-4.10.0.84-cp37-abi3-win_amd64.whl", hash = "sha256:32dbbd94c26f611dc5cc6979e6b7aa1f55a64d6b463cc1dcd3c95505a63e48fe"}, ] [package.dependencies] numpy = [ - {version = ">=1.21.2", markers = "python_version >= \"3.10\""}, - {version = ">=1.21.4", markers = "python_version >= \"3.10\" and platform_system == \"Darwin\""}, - {version = ">=1.23.5", markers = "python_version >= \"3.11\""}, {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, - {version = ">=1.19.3", markers = "python_version >= \"3.6\" and platform_system == \"Linux\" and platform_machine == \"aarch64\" or python_version >= \"3.9\""}, - {version = ">=1.17.0", markers = "python_version >= \"3.7\""}, - {version = ">=1.17.3", markers = "python_version >= \"3.8\""}, + {version = ">=1.23.5", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, ] [[package]] @@ -2531,8 +2575,8 @@ files = [ [package.dependencies] numpy = [ - {version = ">=1.23.2", markers = "python_version == \"3.11\""}, {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" @@ -2713,27 +2757,28 @@ wcwidth = "*" [[package]] name = "psutil" -version = "5.9.8" +version = "6.0.0" description = "Cross-platform lib for process and system monitoring in Python." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"}, - {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"}, - {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7"}, - {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36"}, - {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d"}, - {file = "psutil-5.9.8-cp27-none-win32.whl", hash = "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e"}, - {file = "psutil-5.9.8-cp27-none-win_amd64.whl", hash = "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631"}, - {file = "psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81"}, - {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421"}, - {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4"}, - {file = "psutil-5.9.8-cp36-cp36m-win32.whl", hash = "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee"}, - {file = "psutil-5.9.8-cp36-cp36m-win_amd64.whl", hash = "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2"}, - {file = "psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0"}, - {file = "psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf"}, - {file = "psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8"}, - {file = "psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c"}, + {file = "psutil-6.0.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a021da3e881cd935e64a3d0a20983bda0bb4cf80e4f74fa9bfcb1bc5785360c6"}, + {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:1287c2b95f1c0a364d23bc6f2ea2365a8d4d9b726a3be7294296ff7ba97c17f0"}, + {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:a9a3dbfb4de4f18174528d87cc352d1f788b7496991cca33c6996f40c9e3c92c"}, + {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6ec7588fb3ddaec7344a825afe298db83fe01bfaaab39155fa84cf1c0d6b13c3"}, + {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:1e7c870afcb7d91fdea2b37c24aeb08f98b6d67257a5cb0a8bc3ac68d0f1a68c"}, + {file = "psutil-6.0.0-cp27-none-win32.whl", hash = "sha256:02b69001f44cc73c1c5279d02b30a817e339ceb258ad75997325e0e6169d8b35"}, + {file = "psutil-6.0.0-cp27-none-win_amd64.whl", hash = "sha256:21f1fb635deccd510f69f485b87433460a603919b45e2a324ad65b0cc74f8fb1"}, + {file = "psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c588a7e9b1173b6e866756dde596fd4cad94f9399daf99ad8c3258b3cb2b47a0"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ed2440ada7ef7d0d608f20ad89a04ec47d2d3ab7190896cd62ca5fc4fe08bf0"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fd9a97c8e94059b0ef54a7d4baf13b405011176c3b6ff257c247cae0d560ecd"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e8d0054fc88153ca0544f5c4d554d42e33df2e009c4ff42284ac9ebdef4132"}, + {file = "psutil-6.0.0-cp36-cp36m-win32.whl", hash = "sha256:fc8c9510cde0146432bbdb433322861ee8c3efbf8589865c8bf8d21cb30c4d14"}, + {file = "psutil-6.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:34859b8d8f423b86e4385ff3665d3f4d94be3cdf48221fbe476e883514fdb71c"}, + {file = "psutil-6.0.0-cp37-abi3-win32.whl", hash = "sha256:a495580d6bae27291324fe60cea0b5a7c23fa36a7cd35035a16d93bdcf076b9d"}, + {file = "psutil-6.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:33ea5e1c975250a720b3a6609c490db40dae5d83a4eb315170c4fe0d8b1f34b3"}, + {file = "psutil-6.0.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:ffe7fc9b6b36beadc8c322f84e1caff51e8703b88eee1da46d1e3a6ae11b4fd0"}, + {file = "psutil-6.0.0.tar.gz", hash = "sha256:8faae4f310b6d969fa26ca0545338b21f73c6b15db7c4a8d934a5482faa818f2"}, ] [package.extras] @@ -3157,45 +3202,45 @@ files = [ [[package]] name = "scipy" -version = "1.13.1" +version = "1.14.0" description = "Fundamental algorithms for scientific computing in Python" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" files = [ - {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, - {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, - {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989"}, - {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f"}, - {file = "scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94"}, - {file = "scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54"}, - {file = "scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9"}, - {file = "scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326"}, - {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299"}, - {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa"}, - {file = "scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59"}, - {file = "scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b"}, - {file = "scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1"}, - {file = "scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d"}, - {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627"}, - {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884"}, - {file = "scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16"}, - {file = "scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949"}, - {file = "scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5"}, - {file = "scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24"}, - {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004"}, - {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d"}, - {file = "scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c"}, - {file = "scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2"}, - {file = "scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c"}, -] - -[package.dependencies] -numpy = ">=1.22.4,<2.3" - -[package.extras] -dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] -doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] -test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + {file = "scipy-1.14.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7e911933d54ead4d557c02402710c2396529540b81dd554fc1ba270eb7308484"}, + {file = "scipy-1.14.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:687af0a35462402dd851726295c1a5ae5f987bd6e9026f52e9505994e2f84ef6"}, + {file = "scipy-1.14.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:07e179dc0205a50721022344fb85074f772eadbda1e1b3eecdc483f8033709b7"}, + {file = "scipy-1.14.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a9c9a9b226d9a21e0a208bdb024c3982932e43811b62d202aaf1bb59af264b1"}, + {file = "scipy-1.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:076c27284c768b84a45dcf2e914d4000aac537da74236a0d45d82c6fa4b7b3c0"}, + {file = "scipy-1.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42470ea0195336df319741e230626b6225a740fd9dce9642ca13e98f667047c0"}, + {file = "scipy-1.14.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:176c6f0d0470a32f1b2efaf40c3d37a24876cebf447498a4cefb947a79c21e9d"}, + {file = "scipy-1.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:ad36af9626d27a4326c8e884917b7ec321d8a1841cd6dacc67d2a9e90c2f0359"}, + {file = "scipy-1.14.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6d056a8709ccda6cf36cdd2eac597d13bc03dba38360f418560a93050c76a16e"}, + {file = "scipy-1.14.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:f0a50da861a7ec4573b7c716b2ebdcdf142b66b756a0d392c236ae568b3a93fb"}, + {file = "scipy-1.14.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:94c164a9e2498e68308e6e148646e486d979f7fcdb8b4cf34b5441894bdb9caf"}, + {file = "scipy-1.14.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:a7d46c3e0aea5c064e734c3eac5cf9eb1f8c4ceee756262f2c7327c4c2691c86"}, + {file = "scipy-1.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9eee2989868e274aae26125345584254d97c56194c072ed96cb433f32f692ed8"}, + {file = "scipy-1.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e3154691b9f7ed73778d746da2df67a19d046a6c8087c8b385bc4cdb2cfca74"}, + {file = "scipy-1.14.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c40003d880f39c11c1edbae8144e3813904b10514cd3d3d00c277ae996488cdb"}, + {file = "scipy-1.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:5b083c8940028bb7e0b4172acafda6df762da1927b9091f9611b0bcd8676f2bc"}, + {file = "scipy-1.14.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:bff2438ea1330e06e53c424893ec0072640dac00f29c6a43a575cbae4c99b2b9"}, + {file = "scipy-1.14.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:bbc0471b5f22c11c389075d091d3885693fd3f5e9a54ce051b46308bc787e5d4"}, + {file = "scipy-1.14.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:64b2ff514a98cf2bb734a9f90d32dc89dc6ad4a4a36a312cd0d6327170339eb0"}, + {file = "scipy-1.14.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:7d3da42fbbbb860211a811782504f38ae7aaec9de8764a9bef6b262de7a2b50f"}, + {file = "scipy-1.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d91db2c41dd6c20646af280355d41dfa1ec7eead235642178bd57635a3f82209"}, + {file = "scipy-1.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a01cc03bcdc777c9da3cfdcc74b5a75caffb48a6c39c8450a9a05f82c4250a14"}, + {file = "scipy-1.14.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:65df4da3c12a2bb9ad52b86b4dcf46813e869afb006e58be0f516bc370165159"}, + {file = "scipy-1.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:4c4161597c75043f7154238ef419c29a64ac4a7c889d588ea77690ac4d0d9b20"}, + {file = "scipy-1.14.0.tar.gz", hash = "sha256:b5923f48cb840380f9854339176ef21763118a7300a88203ccd0bdd26e58527b"}, +] + +[package.dependencies] +numpy = ">=1.23.5,<2.3" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodestyle", "pydevtool", "rich-click", "ruff (>=0.0.292)", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.13.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] +test = ["Cython", "array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] name = "seaborn" @@ -3236,18 +3281,18 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "70.0.0" +version = "70.1.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4"}, - {file = "setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0"}, + {file = "setuptools-70.1.1-py3-none-any.whl", hash = "sha256:a58a8fde0541dab0419750bcc521fbdf8585f6e5cb41909df3a472ef7b81ca95"}, + {file = "setuptools-70.1.1.tar.gz", hash = "sha256:937a48c7cdb7a21eb53cd7f9b59e525503aa8abaf3584c730dc5f7a5bec3a650"}, ] [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.10.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "six" @@ -3744,13 +3789,13 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake [[package]] name = "urllib3" -version = "2.2.1" +version = "2.2.2" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, - {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, + {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, + {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, ] [package.extras] @@ -3915,4 +3960,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "4c2a1f1768cd9362bee70dd2371d3a34c7bcef346c24421d64b92d824e39d5b7" +content-hash = "d235fb420995c590669047e1fec923856f26dee175f44fe8c72ab021dc5408de" diff --git a/pyproject.toml b/pyproject.toml index ff035ed3..8bd5dbf1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,6 +36,8 @@ multimethod = "^1.11" networkx = "^3.3" opencv-python = "^4.10.0.82" imageio = "^2.34.1" +mctx = "^0.0.5" +mediapy = "^1.2.2" [tool.black] From 927767e34e5eeab40c1f5e362642dbc7fb537147 Mon Sep 17 00:00:00 2001 From: Toon Van de Maele Date: Fri, 28 Jun 2024 08:26:45 +0200 Subject: [PATCH 146/196] generated outputs for benchmark notebook --- examples/sparse/sparse_benchmark.ipynb | 52 ++++++++++++++++---------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/examples/sparse/sparse_benchmark.ipynb b/examples/sparse/sparse_benchmark.ipynb index 11314657..6abe40c8 100644 --- a/examples/sparse/sparse_benchmark.ipynb +++ b/examples/sparse/sparse_benchmark.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -19,7 +19,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -42,7 +42,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -202,7 +202,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -211,7 +211,7 @@ "Text(0.5, 1.0, 'smoothed beliefs sparse')" ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, @@ -254,7 +254,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -263,10 +263,31 @@ "text": [ "Step 1\n", "\t [1000, 3000]\n", - "\t {'time_dense': 1.7025604248046875, 'size_dense': 10000000, 'time_sparse': 5.709225416183472, 'size_sparse': 16000}\n", + "\t {'time_dense': 0.582852840423584, 'size_dense': np.int64(10000000), 'time_sparse': 2.3802099227905273, 'size_sparse': np.int64(16000)}\n", "Step 2\n", "\t [2000, 6000]\n", - "\t {'time_dense': 3.0477356910705566, 'size_dense': 40000000, 'time_sparse': 5.879806756973267, 'size_sparse': 32000}\n" + "\t {'time_dense': 0.9382140636444092, 'size_dense': np.int64(40000000), 'time_sparse': 2.4110450744628906, 'size_sparse': np.int64(32000)}\n", + "Step 3\n", + "\t [3000, 9000]\n", + "\t {'time_dense': 1.219473123550415, 'size_dense': np.int64(90000000), 'time_sparse': 1.3460800647735596, 'size_sparse': np.int64(48000)}\n", + "Step 4\n", + "\t [4000, 12000]\n", + "\t {'time_dense': 2.109867811203003, 'size_dense': np.int64(160000000), 'time_sparse': 2.434711217880249, 'size_sparse': np.int64(64000)}\n", + "Step 5\n", + "\t [5000, 15000]\n", + "\t {'time_dense': 3.250096082687378, 'size_dense': np.int64(250000000), 'time_sparse': 2.4678478240966797, 'size_sparse': np.int64(80000)}\n", + "Step 6\n", + "\t [6000, 18000]\n", + "\t {'time_dense': 4.432005167007446, 'size_dense': np.int64(360000000), 'time_sparse': 1.4304497241973877, 'size_sparse': np.int64(96000)}\n", + "Step 7\n", + "\t [7000, 21000]\n", + "\t {'time_dense': 7.202724933624268, 'size_dense': np.int64(490000000), 'time_sparse': 2.5208442211151123, 'size_sparse': np.int64(112000)}\n", + "Step 8\n", + "\t [8000, 24000]\n", + "\t {'time_dense': 9.165987014770508, 'size_dense': np.int64(640000000), 'time_sparse': 2.3921358585357666, 'size_sparse': np.int64(128000)}\n", + "Step 9\n", + "\t [9000, 27000]\n", + "\t {'time_dense': 13.732616186141968, 'size_dense': np.int64(810000000), 'time_sparse': 1.724376916885376, 'size_sparse': np.int64(144000)}\n" ] } ], @@ -285,12 +306,12 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { - "image/png": "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QUmn02HgwIEYM2YMnn32WfH4hQsXMHToULRq1UrceuS3335Damoq9Ho9QkNDERkZaRMj6ImIiKxJYWEh4uLiMHfuXAwbNgwAoFarkZSUhPHjxyMmJgZbt24FAPz000+4fPkydDodOnfujJ49e9p03WyRFqX27dujX79++PjjjwHc2on4zJkziI2NxZNPPomVK1dW+3pb/jKIiIgsobi4GG3atEFCQgIWLlwoHtfr9fjvf/+LqVOnYubMmZg7d261r7flurlBZ70Z94uZPn06Dh06hO3btwMoH1lvMBjQqVMnvPTSSzh58iRycnKqvYetfhFEREQNobr2EWdnZzz11FNISkoy2bRWJpNhwIABGD58uDjIuzq2XDfXW1DS6/VVfjeOkh8wYADCwsLw2WefYffu3eUFkUohkUgQEhKCK1euQKfT1VfRiIiImiS9Xi9uLJ+bm4u8vDyxvh46dCgKCgrw6aef4uzZs+JrXF1d0aFDB/z8888oKiqyVNEtpl6CksFggEwmg0qlwtSpU3HlyhXIZDLxy2jTpg3+/e9/Q6VSYcWKFfj888/F1+bk5MDf37/anYqJiIiodox1c1FREZ544gnExsbiH//4B2bOnImSkhL07t0bb7zxBpKTk/Huu+9i37594mtVKhVat24tbjzflNTbGCW1Wo3+/fvjxIkT6N+/P9atW4egoCDodDpxF+Fjx47hww8/xN69e9GyZUu0aNEC+/fvx8aNG216BD0REVFDMo4hUqlU6Nq1Kx588EGMGzcOZ8+exb59+zB27FhMnz4dALB79268+eabyM3NRUBAAFq2bIktW7Zg8+bNiI+Pt/A7aXj1EpT0ej3mzp2LX375BUOGDMH3338PrVaLjRs3Ijg42CQsZWZm4vLly/jPf/6D4OBgdOvWDf3797fpgWFEREQNTafT4bnnnkNeXh6+/vpryOVyAMCoUaOg1Wqxc+dO8drff/8dv/76K77++muEhYWhf//+iIuLa5J1c721KK1Zswb5+fl48cUXsWvXLixfvhw6na7asHQ7bnBLRERUN4zhJicnB6+99hq6du2KhIQEsR7evn07li9fjp9++gkSiYR1823qbGXuNWvWwN7eHuPGjYOdnR2mTJmC0tJSyGQyDBkyBHq9HqtWrcLEiRPx+eefIygoCHq9HoWFhfDy8jK5V1P7EoiIiOqDsW6eMGEC3N3dMWzYMDz88MMAIAYinU6HgoICSKVScQyScZZ6ZU21bq6TEdNff/01nnvuOXh7e8POzk6csebg4CAO4B42bBhmzJgBuVyOiRMn4s8//8RHH32E6OjoJjmKnoiIqD5VrpslEgns7e3F1bcrdyZJpVKTmeqbNm3CiBEjzG5g39Tcd4tSSUkJ1q1bhzZt2ty6qZ2d2NQnk8nEn42rfX700UeIiopCTk4O1qxZA1dX1/stBhEREVWorm4GbrUUVW4d8vb2hoODA2QyGTZs2ICEhARs2LCBs88r3Pen4OjoiA8//BARERFYtmwZvvzySwDlTXSV+zONPw8bNgx+fn7IysrC9u3bMWnSpGoXvyIiIqLaMVc3S6XSKnWuWq2Gs7Mz1q5di4SEBGzatAlPPfUU6+YKdRIXQ0ND8f7778PJyQlr1669Y1jasGEDvvjiC3z11VcYOnQovwgiIqJ6cC91MwCUlpYiJSUFzz77LDZt2oQxY8awbq6kztrVQkJCsGrVqruGpZKSEnz77bcYOXJkkx1BT0RE1BDuVDcbxyAFBQUhIiICO3fuNAlJrJvL1fnyABkZGZgxYwbUajUSEhIwduxYAOVrK1Ve0ZNfBBERUcMwVzcD5RviZmVloXXr1qybq1Ev6yiZ+0Kqm25IRERE9e9OYcmoKS4oeTf1klrMNfVduXKlyma5REREVP/M1c0ZGRli3cyQVFW9rcwN3EqvAODk5ISffvoJp0+fRqtWrerrkURERHQHrJtrpl77wYzptbi4GCkpKfj444/5RRAREVkQ6+aaqdcWJaO//voLN27cQJcuXer7UURERHQPWDffmwYJSkRERESNEaegEREREZnBoERERERkBoMSERERkRkMSkRERERmMCgRERERmcGgRERERGQGgxIRERGRGQxKRERERGYwKBERERGZwaBEREREZMb/A3T/Q1TlOpLkAAAAAElFTkSuQmCC", + "image/png": "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J5EqK6xt27b0yy+/kEgkok2bNpVbTl+pqk4169atI3t7e60pA/jI+PHjacSIEWRvb08TJkzQ2nf8+HFq27YtLzP9NFOPfX19aciQIdy+goICysvL47pz9u3bx9vMTTVKpZImTpxIffv25bbdu3eP4uLiuDXRLl26RMOHDydnZ2feZeJqTuXRsGFDGjZsGEkkEmrcuHGZZS/4nImrSX5+PkVGRtK7775Lz58/p/T0dIqIiKBFixZxZeLi4nhbp2ry8vIoIiKCYmNj6dKlS/TXX39Rr169yNnZmRsbe/HiRRo+fDgvs8jrEr00S0REiYmJ1Lt375caprVr15JAIOBWRObb4N+q6NyxYwcJBAISCARaRsnQdF69epW++uorsre359JT+aRRjTrmcePG0aeffkoHDhwgc3NzbsDk8ePHSSKR0J07d2jLli00ePBg+vLLL+nIkSNax+szBQUF5OHhQeHh4dy22bNn08CBAykmJoZGjBjBGYl//vmHtzqJVHH26NGDli9fTkREY8aModDQUHJyciInJydavnw5KRQKSk9PpzNnztD48eNp/vz5dOLECe54fSc3N5fs7e1p6NCh3La1a9eSu7s7/f3331plb926xev6JFIZoYiICLp//z63bdiwYbRgwQL68ccfKT4+noiIMjIy6PTp07ysUyKiY8eOUbt27bSWJ9m/fz8JBAJydHTk7iePHz/m7blbV+itWSKq2g122bJltHfvXm47Hyu3Ip3qJ76LFy9SYGCgVsuZoemUyWR09OhR+vjjj7ksOb7qVNfb1q1b6ZNPPiEioi1btpClpSW1bNmS3N3d6datW+UeyyfNQ4cOJRcXFzp69CjFxsZSSEgIff311zR58mRq1qwZ+fj4kFgsLvdYfdepGVt+fj716NGDdu7cSWvWrKGwsDA6c+YMPXjwgL744gtydnam33//vcLP4YPOP//8k77++mutfdeuXaOGDRvSf/7zHyLid8Zxafbt20cmJib04MEDIiI6dOgQiUQi6tixIzVv3pzq1aunNbedJnzSunr1arK3t9dKjrpx4waNHTuWBg4cSPXr16cXL16UeyyfdNYFem2WiCq+wZbONuJ7xVakk0iVuqt+AjJknXK5nHJzc4mIXzrVmX6ls2tOnz5NoaGhXHbjW2+9RSYmJtSjRw+uDJ+yGtU6CwsLuW3Dhg0jgUBA0dHRdPfuXW77jRs3KDg4mD7++GNe1SVR+fU5atQoaty4MX3yySf0888/a5WfMGECNWrUqMw1Sd9R6yTSvp5q1tVXX31Frq6u9Pz58zqPryYpnY1LRNS6dWuqV68evfXWWyQUCmn58uXcgsBff/01OTs7827B2NI6b926RREREfTNN99QdnY2ZWZmUuPGjen9998niURCYWFh9H//939ExFqRXobemyWil7e8GAqVGQk1hnBCV0UnX9i2bRsJBALav38/EZXUj1wup3v37lGLFi2IiGjRokVkaWlJU6dOJVtbW/rggw90FvOrUFqnpmGaNm0azZ8/v4wp6t69u1a3Dh8orVPdmnL//n1q1qwZCQQCWrBgARERlyq/f/9+CgsLq7AVTR8prbP0tVRdj5cuXaLg4GCuC5KP19yK6lQqldLq1atp06ZN1K5dO8rKyuIebM6ePUsNGzbk1bIepXUSqR60v/32WwoLCyMXFxdydXWlXr16cftbtGhBU6dO1UW4vIMXQ919fX2xZMkSWFlZYfXq1di0aRMA4OHDh2UW2OUzFelMSkridBrCrKlV0ckHKsv0E4lE8Pf3h6+vL7p164bp06dj69atWLhwIZYtW4a1a9fi1q1bOoy+6pSn08zMjEtBnjt3LsaNGweBQACBQMBlirm6uiI4OBhA2VXr9ZGKMnEBwNvbGxMnToSPjw9+++03PH36lJth//79+7C1tYVCoeCtTqFQqBW7+jrTvHlzNGrUCOvWrePK8YmK6lShUMDKygpjxoyBlZUVnj9/Dnt7e1haWgIAEhIS4ODgAGtra12FXi0qyq62trbGl19+id9//x3/+c9/sGLFChw8eBAAUFBQAG9v7zLHMCpAt16teqhbJHr37k1Dhw4lJycnevToka7DqnGYTv5QUaafTCaj/Px8GjBgALm4uGg97cnlct51a1SmszzWr19PTk5OdObMmboKsUaoSCeRKrNo48aN1LhxY/L09KQxY8bQ2LFjycrKivbs2aOjiF+NqmSoqluRrl+/Tra2tlyXHd+oSKta37Nnzyg4OJgGDhxIu3fvpjlz5pCNjQ3t3r1bRxG/GpWdu6WRyWS0du1acnBwoLi4uDqKkN/wyiwRqW6wHTt2JA8PD4NObWQ6+UNl3YqpqamUkJBQ4bF86latSsLFlStX6LPPPiMbGxveLrj5snF1ycnJ9Omnn9LgwYNp1KhRWgkJfKIq9UlE9Pz5c2rdujWvb6qVaS0oKKDff/+dWrZsSZ6entS6dWvO/BpKnWqO1bp79y6NHj2a7O3tacuWLboIk5fwYiHd0jx9+hSpqalo0aKFrkOpVZhO/pCUlIRJkyYhLy8P77//PoYNG6brkGqFinQqlUoolUocO3YMu3btwsCBA9GrVy/eLrhZkc7SetTv1ZdRvmmtqs6cnBzY2dnpKswaobLvKBGhqKgIqampsLa2hpOTk0HX6dKlSxEQEIBu3brxVmddw0uzxGDoI5UZCb6N9aiMym46crkceXl5sLW15f1FuCKdcrmcG8tkCHVblfOWr6a3NBVpVc9gbihU5dwFwPvvaF3CzBKDUYNU9Umd7xh7S5qx1Keh6QTYQ42h6awr2H+MwahBDCXT72UwnUwnXzH27GpD01lXsJYlBqMWUD/VAYCVlRVOnDiBy5cvo0GDBjqOrGZhOplOvmIsWo1FZ61Th4PJGQyjwhAy/aoC02lYGItOIuPRaiw6axPWssRg1CKGkOlXFZhOw8JYdALGo9VYdNYWzCwxGAwGg8FgVAIb4M1gMBgMBoNRCcwsMRgMBoPBYFQCM0sMBoPBYDAYlcDMEoPBYDAYDEYlMLPEYDAYDAaDUQnMLDEYDAaDwWBUAjNLDAaDwWAwGJXAzBKDwWAwGAxGJTCzxGAwGAwGg1EJzCwxGAwGg8FgVML/A2zzGQYLjcPdAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -317,13 +338,6 @@ "[a.legend() for a in ax.flatten()]\n", "plt.show()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -342,7 +356,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.9" + "version": "3.11.7" } }, "nbformat": 4, From 4da4476c984f73f36e06f96e1a2e14178b79d1b2 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Wed, 31 Jul 2024 14:20:29 +0200 Subject: [PATCH 147/196] add readable string repr for Distribution --- pymdp/jax/distribution.py | 56 ++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 12 deletions(-) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 02a773c1..73aa57b8 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -8,8 +8,14 @@ def __init__(self, event: dict, batch: dict = {}, data: np.ndarray = None): self.event = event self.batch = batch - self.event_indices = {key: {v: i for i, v in enumerate(values)} for key, values in event.items()} - self.batch_indices = {key: {v: i for i, v in enumerate(values)} for key, values in batch.items()} + self.event_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in event.items() + } + self.batch_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in batch.items() + } if data is not None: self.data = data @@ -42,7 +48,9 @@ def _get_slices(self, keys, indices, full_indices): for key in full_indices: if key in keys: if isinstance(keys[key], list): - slices.append([self._get_index(v, indices[key]) for v in keys[key]]) + slices.append( + [self._get_index(v, indices[key]) for v in keys[key]] + ) else: slices.append(self._get_index(keys[key], indices[key])) else: @@ -69,18 +77,25 @@ def _get_index_from_axis(self, axis, element): def __getitem__(self, indices): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] return self.data[tuple(index_list)] def __setitem__(self, indices, value): if not isinstance(indices, tuple): indices = (indices,) - index_list = [self._get_index_from_axis(i, idx) for i, idx in enumerate(indices)] + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] self.data[tuple(index_list)] = value def normalize(self): self.data = norm_dist(self.data) + def __repr__(self): + return f"Distribution({self.event}, {self.batch})\n {self.data}" + def compile_model(config): """Compile a model from a config. @@ -147,11 +162,15 @@ def compile_model(config): labels[k] = list(range(v[keyword])) case "depends_on": if mod == "states": - state_dependencies[k] = [name for name in v[keyword]] + state_dependencies[k] = [ + name for name in v[keyword] + ] if k in v[keyword]: transition_events[k] = labels[k] else: - likelihood_dependencies[k] = [name for name in v[keyword]] + likelihood_dependencies[k] = [ + name for name in v[keyword] + ] likelihood_events[k] = labels[k] case "controlled_by": control_dependencies[k] = [name for name in v[keyword]] @@ -187,12 +206,16 @@ def get_dependencies(likelihoods, transitions): transition_dependencies = dict() states = [list(trans.event.keys())[0] for trans in transitions] for like in likelihoods: - likelihood_dependencies[list(like.event.keys())[0]] = [states.index(name) for name in like.batch.keys()] + likelihood_dependencies[list(like.event.keys())[0]] = [ + states.index(name) for name in like.batch.keys() + ] for trans in transitions: transition_dependencies[list(trans.event.keys())[0]] = [ states.index(name) for name in trans.batch.keys() if name in states ] - return list(likelihood_dependencies.values()), list(transition_dependencies.values()) + return list(likelihood_dependencies.values()), list( + transition_dependencies.values() + ) if __name__ == "__main__": @@ -220,13 +243,22 @@ def get_dependencies(likelihoods, transitions): assert np.all(transition[:, "B", "up"] == 1.0) assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.0 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.0 + ) assert transition.get({"control": "up"}).shape == (4, 4) transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.5 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.5 + ) transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) - assert transition.get({"location": "A", "control": "up"}, {"location": "B"}) == 0.7 + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.7 + ) transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) From bac99ed63e1651302664ef064fe815288d268586 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Wed, 31 Jul 2024 15:24:58 +0200 Subject: [PATCH 148/196] add Model class for describing the full model in api --- examples/api/distribution_api.ipynb | 140 ++++++++++++++-------------- pymdp/jax/distribution.py | 74 +++++++++++++-- 2 files changed, 138 insertions(+), 76 deletions(-) diff --git a/examples/api/distribution_api.ipynb b/examples/api/distribution_api.ipynb index 6595acbd..47d205dd 100644 --- a/examples/api/distribution_api.ipynb +++ b/examples/api/distribution_api.ipynb @@ -80,6 +80,13 @@ "execution_count": 2, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -123,7 +130,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -137,7 +144,7 @@ } ], "source": [ - "model = {\n", + "model_description = {\n", " \"observations\": {\n", " \"o1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"]},\n", " },\n", @@ -147,26 +154,26 @@ " },\n", "}\n", "\n", - "As, Bs = compile_model(model)\n", + "model = compile_model(model_description)\n", "\n", - "As[0][\"A\", \"A\"] = 1.0\n", - "As[0][\"B\", \"B\"] = 1.0\n", - "As[0][\"C\", \"C\"] = 1.0\n", - "As[0][\"D\", \"D\"] = 1.0\n", + "model.A[\"o1\"][\"A\", \"A\"] = 1.0\n", + "model.A[\"o1\"][\"B\", \"B\"] = 1.0\n", + "model.A[\"o1\"][\"C\", \"C\"] = 1.0\n", + "model.A[\"o1\"][\"D\", \"D\"] = 1.0\n", "\n", - "Bs[0][\"B\", \"A\", \"up\"] = 1.0\n", - "Bs[0][\"C\", \"B\", \"up\"] = 1.0\n", - "Bs[0][\"D\", \"C\", \"up\"] = 1.0\n", - "Bs[0][\"D\", \"D\", \"up\"] = 1.0\n", + "model.B[\"s1\"][\"B\", \"A\", \"up\"] = 1.0\n", + "model.B[\"s1\"][\"C\", \"B\", \"up\"] = 1.0\n", + "model.B[\"s1\"][\"D\", \"C\", \"up\"] = 1.0\n", + "model.B[\"s1\"][\"D\", \"D\", \"up\"] = 1.0\n", "\n", - "Bs[0][\"A\", \"A\", \"down\"] = 1.0\n", - "Bs[0][\"A\", \"B\", \"down\"] = 1.0\n", - "Bs[0][\"B\", \"C\", \"down\"] = 1.0\n", - "Bs[0][\"C\", \"D\", \"down\"] = 1.0\n", + "model.B[\"s1\"][\"A\", \"A\", \"down\"] = 1.0\n", + "model.B[\"s1\"][\"A\", \"B\", \"down\"] = 1.0\n", + "model.B[\"s1\"][\"B\", \"C\", \"down\"] = 1.0\n", + "model.B[\"s1\"][\"C\", \"D\", \"down\"] = 1.0\n", "\n", - "Cs = [jnp.array([0.0, 0.0, 0.0, 1.0])]\n", - "agent = Agent(As, Bs, Cs, apply_batch=True)\n", - "print(f\"goal state: {states[jnp.argmax(Cs[0])]}\")\n", + "model.C[\"o1\"][\"D\"] = 1.0\n", + "agent = Agent(**model, apply_batch=True)\n", + "print(f\"goal state: {states[jnp.argmax(agent.C[0])]}\")\n", "\n", "prior, _ = agent.infer_empirical_prior(action, qs_init)\n", "qs = agent.infer_states([observation], None, prior, None)\n", @@ -179,11 +186,11 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ - "model = {\n", + "model_description = {\n", " \"observations\": {\n", " \"temperature\": {\"elements\": [\"low\", \"medium\", \"high\", \"very high\"], \"depends_on\": [\"operating_state\"]},\n", " \"humidity\": {\"elements\": [\"low\", \"medium\", \"high\", \"very high\"], \"depends_on\": [\"maintenance_state\"]},\n", @@ -217,56 +224,51 @@ " },\n", "}\n", "\n", - "As, Bs = compile_model(model)\n", - "\n", - "As[0][\"low\", \"idle\"] = 1.0\n", - "As[0][\"medium\", \"running\"] = 1.0\n", - "As[0][\"low\", \"overload\"] = 1.0\n", - "\n", - "As[1][\"low\", \"regular\"] = 1.0\n", - "As[1][\"low\", \"alert\"] = 1.0\n", - "As[1][\"high\", \"critical\"] = 1.0\n", - "\n", - "As[2][\"low\", \"low\"] = 1.0\n", - "As[2][\"medium\", \"low\"] = 1.0\n", - "As[2][\"high\", \"high\"] = 1.0\n", - "\n", - "Bs[0][\"running\", \"idle\", \"low\"] = 1.0\n", - "Bs[0][\"overload\", \"running\", \"medium\"] = 1.0\n", - "Bs[0][\"overload\", \"overload\", \"high\"] = 1.0\n", - "\n", - "Bs[0][\"idle\", \"idle\", \"off\"] = 1.0\n", - "Bs[0][\"idle\", \"running\", \"off\"] = 1.0\n", - "Bs[0][\"running\", \"overload\", \"off\"] = 1.0\n", - "Bs[0][\"running\", \"running\", \"off\"] = 1.0\n", - "\n", - "Bs[1][\"alert\", \"regular\", \"low\"] = 1.0\n", - "Bs[1][\"critical\", \"alert\", \"medium\"] = 1.0\n", - "Bs[1][\"critical\", \"critical\", \"high\"] = 1.0\n", - "\n", - "Bs[1][\"regular\", \"regular\", \"off\"] = 1.0\n", - "Bs[1][\"regular\", \"alert\", \"off\"] = 1.0\n", - "Bs[1][\"alert\", \"critical\", \"off\"] = 1.0\n", - "Bs[1][\"alert\", \"alert\", \"off\"] = 1.0\n", - "\n", - "Bs[2][\"normal\", \"low\", \"low\"] = 1.0\n", - "Bs[2][\"high\", \"normal\", \"medium\"] = 1.0\n", - "Bs[2][\"high\", \"high\", \"high\"] = 1.0\n", - "\n", - "Bs[2][\"low\", \"low\", \"off\"] = 1.0\n", - "Bs[2][\"low\", \"normal\", \"off\"] = 1.0\n", - "Bs[2][\"normal\", \"high\", \"off\"] = 1.0\n", - "Bs[2][\"normal\", \"normal\", \"off\"] = 1.0\n", - "\n", - "agent = Agent(As, Bs, apply_batch=True)" + "model = compile_model(model_description)\n", + "\n", + "model.A[\"temperature\"][\"low\", \"idle\"] = 1.0\n", + "model.A[\"temperature\"][\"medium\", \"running\"] = 1.0\n", + "model.A[\"temperature\"][\"low\", \"overload\"] = 1.0\n", + "\n", + "model.A[\"humidity\"][\"low\", \"regular\"] = 1.0\n", + "model.A[\"humidity\"][\"low\", \"alert\"] = 1.0\n", + "model.A[\"humidity\"][\"high\", \"critical\"] = 1.0\n", + "\n", + "model.A[\"pressure\"][\"low\", \"low\"] = 1.0\n", + "model.A[\"pressure\"][\"medium\", \"low\"] = 1.0\n", + "model.A[\"pressure\"][\"high\", \"high\"] = 1.0\n", + "\n", + "model.A[\"vibration\"][\"low\", \"idle\", \"regular\"] = 1.0\n", + "model.A[\"vibration\"][\"medium\", \"running\", \"regular\"] = 1.0\n", + "model.A[\"vibration\"][\"high\", \"running\", \"critical\"] = 1.0\n", + "model.A[\"vibration\"][\"high\", \"overload\", \"alert\"] = 1.0\n", + "\n", + "model.B[\"operating_state\"][\"overload\", \"running\", \"medium\"] = 1.0\n", + "model.B[\"operating_state\"][\"overload\", \"overload\", \"high\"] = 1.0\n", + "model.B[\"operating_state\"][\"idle\", \"idle\", \"off\"] = 1.0\n", + "model.B[\"operating_state\"][\"idle\", \"running\", \"off\"] = 1.0\n", + "model.B[\"operating_state\"][\"running\", \"idle\", \"low\"] = 1.0\n", + "model.B[\"operating_state\"][\"running\", \"overload\", \"off\"] = 1.0\n", + "model.B[\"operating_state\"][\"running\", \"running\", \"off\"] = 1.0\n", + "\n", + "model.B[\"maintenance_state\"][\"alert\", \"regular\", \"low\"] = 1.0\n", + "model.B[\"maintenance_state\"][\"alert\", \"critical\", \"off\"] = 1.0\n", + "model.B[\"maintenance_state\"][\"alert\", \"alert\", \"off\"] = 1.0\n", + "model.B[\"maintenance_state\"][\"critical\", \"alert\", \"medium\"] = 1.0\n", + "model.B[\"maintenance_state\"][\"critical\", \"critical\", \"high\"] = 1.0\n", + "model.B[\"maintenance_state\"][\"regular\", \"regular\", \"off\"] = 1.0\n", + "model.B[\"maintenance_state\"][\"regular\", \"alert\", \"off\"] = 1.0\n", + "\n", + "model.B[\"power_state\"][\"low\", \"low\", \"off\"] = 1.0\n", + "model.B[\"power_state\"][\"low\", \"normal\", \"off\"] = 1.0\n", + "model.B[\"power_state\"][\"normal\", \"high\", \"off\"] = 1.0\n", + "model.B[\"power_state\"][\"normal\", \"normal\", \"off\"] = 1.0\n", + "model.B[\"power_state\"][\"normal\", \"low\", \"low\"] = 1.0\n", + "model.B[\"power_state\"][\"high\", \"normal\", \"medium\"] = 1.0\n", + "model.B[\"power_state\"][\"high\", \"high\", \"high\"] = 1.0\n", + "\n", + "agent = Agent(**model, apply_batch=True)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 73aa57b8..923571dd 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -97,6 +97,50 @@ def __repr__(self): return f"Distribution({self.event}, {self.batch})\n {self.data}" +class DistributionIndexer(dict): + """ + Helper class to allow for indexing of distributions by their event keys. + Acts as a list otherwise ... + """ + + def __init__(self, distributions: list[Distribution]): + super().__init__() + self.distributions = distributions + for d in distributions: + for key in d.event: + self[key] = d + + def __getitem__(self, key): + if isinstance(key, int): + return self.distributions[key] + else: + return super().__getitem__(key) + + def __iter__(self): + return iter(self.distributions) + + +class Model(dict): + + def __init__( + self, + likelihoods: list[Distribution], + transitions: list[Distribution], + preferences: list[Distribution], + priors: list[Distribution], + ): + super().__init__() + super().__setitem__("A", likelihoods) + super().__setitem__("B", transitions) + super().__setitem__("C", preferences) + super().__setitem__("D", priors) + + def __getattr__(self, key): + if key in ["A", "B", "C", "D"]: + return DistributionIndexer(self[key]) + raise AttributeError("Model only supports attributes A,B,C and D") + + def compile_model(config): """Compile a model from a config. @@ -188,6 +232,13 @@ def compile_model(config): batch_descr[dep] = labels[dep] arr = np.zeros(arr_shape) transitions.append(Distribution(event_descr, batch_descr, arr)) + + priors = [] + for event, description in transition_events.items(): + arr_shape = [len(description)] + arr = np.ones(arr_shape) / len(description) + priors.append(Distribution(event_descr, data=arr)) + likelihoods = [] for event, description in likelihood_events.items(): arr_shape = [len(description)] @@ -198,7 +249,14 @@ def compile_model(config): batch_descr[dep] = labels[dep] arr = np.zeros(arr_shape) likelihoods.append(Distribution(event_descr, batch_descr, arr)) - return likelihoods, transitions + + preferences = [] + for event, description in likelihood_events.items(): + arr_shape = [len(description)] + arr = np.zeros(arr_shape) + preferences.append(Distribution(event_descr, data=arr)) + + return Model(likelihoods, transitions, preferences, priors) def get_dependencies(likelihoods, transitions): @@ -224,9 +282,9 @@ def get_dependencies(likelihoods, transitions): data = np.zeros((len(locations), len(locations), len(controls))) transition = Distribution( - data, {"location": locations}, {"location": locations, "control": controls}, + data, ) assert transition["A", "B", "up"] == 0.0 @@ -287,19 +345,21 @@ def get_dependencies(likelihoods, transitions): }, }, } - like, trans = compile_model(model_example) + model = compile_model(model_example) + like = model.A + trans = model.B assert len(trans) == 2 assert len(like) == 2 assert trans[0].data.shape == (3, 3, 2, 2, 2) assert trans[1].data.shape == (2, 2, 2) assert like[0].data.shape == (10, 3) assert like[1].data.shape == (2, 2) - assert like[0][:, "II"] is not None - assert like[1][1, :] is not None + assert like["observation_1"][:, "II"] is not None + assert like["observation_2"][1, :] is not None A_deps, B_deps = get_dependencies(like, trans) print(A_deps, B_deps) - model = { + model_description = { "observations": { "o1": {"elements": ["A", "B", "C", "D"], "depends_on": ["s1"]}, }, @@ -313,4 +373,4 @@ def get_dependencies(likelihoods, transitions): }, } - As, Bs = compile_model(model) + model = compile_model(model_description) From f91c1abb51b67a259304d20d2c81bf636f0cea39 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Fri, 2 Aug 2024 21:50:41 +0200 Subject: [PATCH 149/196] fix bug in creating preference distribution --- pymdp/jax/distribution.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index 923571dd..f4b25c01 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -254,6 +254,7 @@ def compile_model(config): for event, description in likelihood_events.items(): arr_shape = [len(description)] arr = np.zeros(arr_shape) + event_descr = {event: description} preferences.append(Distribution(event_descr, data=arr)) return Model(likelihoods, transitions, preferences, priors) From 4dfe79035280b3aab0887caade80c48259e1cca2 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 8 Aug 2024 13:12:52 +0200 Subject: [PATCH 150/196] also allow specifying state preferences (H) through model/distribution --- pymdp/jax/agent.py | 163 ++++++++++++++------------------------ pymdp/jax/distribution.py | 28 +++++-- 2 files changed, 82 insertions(+), 109 deletions(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 89d5883a..6a5864a5 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -139,9 +139,7 @@ def __init__( learn_E=False, ): if B_action_dependencies is not None: - assert ( - num_controls is not None - ), "Please specify num_controls for complex action dependencies" + assert num_controls is not None, "Please specify num_controls for complex action dependencies" # extract high level variables self.num_modalities = len(A) @@ -163,6 +161,10 @@ def __init__( C = [jnp.array(c.data) if isinstance(c, Distribution) else c for c in C] if D is not None: D = [jnp.array(d.data) if isinstance(d, Distribution) else d for d in D] + if E is not None: + E = [jnp.array(e.data) if isinstance(e, Distribution) else e for e in E] + if H is not None: + H = [jnp.array(h.data) if isinstance(h, Distribution) else h for h in H] self.batch_size = A[0].shape[0] if not apply_batch else 1 @@ -178,12 +180,8 @@ def __init__( policy_len, control_fac_idx, ) - B, self.action_maps = self._flatten_B_action_dims( - B, self.B_action_dependencies - ) - policies = self._construct_flattend_policies( - policies_multi, self.action_maps - ) + B, self.action_maps = self._flatten_B_action_dims(B, self.B_action_dependencies) + policies = self._construct_flattend_policies(policies_multi, self.action_maps) self.sampling_mode = "full" # extract shapes from A and B @@ -215,9 +213,7 @@ def __init__( # construct control factor indices if control_fac_idx == None: - self.control_fac_idx = [ - f for f in range(self.num_factors) if self.num_controls[f] > 1 - ] + self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] else: msg = "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." assert max(control_fac_idx) <= (self.num_factors - 1), msg @@ -236,22 +232,14 @@ def __init__( # setup pytree leaves A, B, C, D, E, pA, pB, H, I if apply_batch: - A = jtu.tree_map( - lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), A - ) - B = jtu.tree_map( - lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), B - ) + A = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), A) + B = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), B) if pA is not None and apply_batch: - pA = jtu.tree_map( - lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pA - ) + pA = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pA) if pB is not None and apply_batch: - pB = jtu.tree_map( - lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pB - ) + pB = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pB) if C is None: C = [jnp.ones((self.batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities)] @@ -268,15 +256,10 @@ def __init__( elif apply_batch: E = jnp.broadcast_to(E, (self.batch_size,) + E.shape) - if self.use_inductive and self.H is not None: - I = control.generate_I_matrix( - H, B, self.inductive_threshold, self.inductive_depth - ) - elif self.use_inductive and I is not None: - I = I - else: - I = jtu.tree_map( - lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), D + if H is not None and apply_batch: + H = jtu.tree_map( + lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), + H, ) self.A = A @@ -291,21 +274,29 @@ def __init__( self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) - self.inductive_threshold = jnp.broadcast_to( - inductive_threshold, (self.batch_size,) - ) - self.inductive_epsilon = jnp.broadcast_to( - inductive_epsilon, (self.batch_size,) - ) + + self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) + self.inductive_epsilon = jnp.broadcast_to(inductive_epsilon, (self.batch_size,)) + + if self.use_inductive and H is not None: + I = vmap( + partial( + control.generate_I_matrix, + depth=self.inductive_depth, + ) + )(H, B, self.inductive_threshold) + elif self.use_inductive and I is not None: + I = I + else: + I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), D) + self.onehot_obs = onehot_obs # validate model self._validate() @vmap - def infer_states( - self, observations, past_actions, empirical_prior, qs_hist, mask=None - ): + def infer_states(self, observations, past_actions, empirical_prior, qs_hist, mask=None): """ Update approximate posterior over hidden states by solving variational inference problem, given an observation. @@ -330,23 +321,15 @@ def infer_states( # TODO: infer this from shapes if not self.onehot_obs: - o_vec = [ - nn.one_hot(o, self.num_obs[m]) - for m, o in enumerate(observations) - ] + o_vec = [nn.one_hot(o, self.num_obs[m]) for m, o in enumerate(observations)] else: o_vec = observations A = self.A if mask is not None: for i, m in enumerate(mask): - o_vec[i] = ( - m * o_vec[i] - + (1 - m) * jnp.ones_like(o_vec[i]) / self.num_obs[i] - ) - A[i] = ( - m * A[i] + (1 - m) * jnp.ones_like(A[i]) / self.num_obs[i] - ) + o_vec[i] = m * o_vec[i] + (1 - m) * jnp.ones_like(o_vec[i]) / self.num_obs[i] + A[i] = m * A[i] + (1 - m) * jnp.ones_like(A[i]) / self.num_obs[i] output = inference.update_posterior_states( A, @@ -379,9 +362,7 @@ def infer_policies(self, qs: List): Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. """ - latest_belief = jtu.tree_map( - lambda x: x[-1], qs - ) # only get the posterior belief held at the current timepoint + latest_belief = jtu.tree_map(lambda x: x[-1], qs) # only get the posterior belief held at the current timepoint q_pi, G = control.update_posterior_policies_inductive( self.policies, latest_belief, @@ -418,18 +399,14 @@ def infer_parameters( agent = self beliefs_B = beliefs_A if beliefs_B is None else beliefs_B if self.inference_algo == "ovf": - smoothed_marginals_and_joints = inference.smoothing_ovf( - beliefs_A, self.B, actions - ) + smoothed_marginals_and_joints = inference.smoothing_ovf(beliefs_A, self.B, actions) marginal_beliefs = smoothed_marginals_and_joints[0] joint_beliefs = smoothed_marginals_and_joints[1] else: marginal_beliefs = beliefs_A if self.learn_B: nf = len(beliefs_B) - joint_fn = lambda f: [beliefs_B[f][1:]] + [ - beliefs_B[f_idx][:-1] for f_idx in self.B_dependencies[f] - ] + joint_fn = lambda f: [beliefs_B[f][1:]] + [beliefs_B[f_idx][:-1] for f_idx in self.B_dependencies[f]] joint_beliefs = jtu.tree_map(joint_fn, list(range(nf))) if self.learn_A: @@ -466,9 +443,7 @@ def infer_parameters( else: I_updated = self.I - agent = tree_at( - lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated) - ) + agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) # if self.learn_C: # self.qC = learning.update_C(self.C, *args, **kwargs) @@ -487,9 +462,7 @@ def infer_empirical_prior(self, action, qs): # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t qs_last = jtu.tree_map(lambda x: x[-1], qs) # this computation of the predictive prior is correct only for fully factorised Bs. - pred = control.compute_expected_state( - qs_last, self.B, action, B_dependencies=self.B_dependencies - ) + pred = control.compute_expected_state(qs_last, self.B, action, B_dependencies=self.B_dependencies) return (pred, qs) @vmap @@ -506,9 +479,7 @@ def sample_action(self, q_pi: Array, rng_key=None): """ if (rng_key is None) and (self.action_selection == "stochastic"): - raise ValueError( - "Please provide a random number generator key to sample actions stochastically" - ) + raise ValueError("Please provide a random number generator key to sample actions stochastically") if self.sampling_mode == "marginal": action = control.sample_action( @@ -548,16 +519,13 @@ def multiaction_probabilities(self, q_pi: Array): """ if self.sampling_mode == "marginal": - marginals = control.get_marginals( - q_pi, self.policies, self.num_controls - ) + marginals = control.get_marginals(q_pi, self.policies, self.num_controls) outer = lambda a, b: jnp.outer(a, b).reshape(-1) marginals = jtu.tree_reduce(outer, marginals) elif self.sampling_mode == "full": locs = jnp.all( - self.policies[:, 0] - == jnp.expand_dims(self.unique_multiactions, -2), + self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), -1, ) marginals = jnp.where(locs, q_pi, 0.0).sum(-1) @@ -575,12 +543,8 @@ def decode_multi_actions(self, action): if action_map["multi_dependency"] == []: continue - action_multi_f = utils.index_to_combination( - action[..., f], action_map["multi_dims"] - ) - action_multi = action_multi.at[ - ..., action_map["multi_dependency"] - ].set(action_multi_f) + action_multi_f = utils.index_to_combination(action[..., f], action_map["multi_dims"]) + action_multi = action_multi.at[..., action_map["multi_dependency"]].set(action_multi_f) return action_multi def encode_multi_actions(self, action_multi): @@ -591,13 +555,12 @@ def encode_multi_actions(self, action_multi): action = jnp.zeros((self.batch_size, len(self.num_controls))).astype(action_multi.dtype) for f, action_map in enumerate(self.action_maps): if action_map["multi_dependency"] == []: - action = action.at[..., f].set( - jnp.zeros_like(action_multi[..., 0]) - ) + action = action.at[..., f].set(jnp.zeros_like(action_multi[..., 0])) continue action_f = utils.get_combination_index( - action_multi[..., action_map["multi_dependency"]], action_map["multi_dims"] + action_multi[..., action_map["multi_dependency"]], + action_map["multi_dims"], ) action = action.at[..., f].set(action_f) return action @@ -608,10 +571,7 @@ def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_depen elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): A_dependencies, _ = get_dependencies(A, B) else: - A_dependencies = [ - list(range(self.num_factors)) - for _ in range(self.num_modalities) - ] + A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] if B_dependencies is not None: B_dependencies = B_dependencies @@ -631,13 +591,16 @@ def _flatten_B_action_dims(self, B, B_action_dependencies): assert hasattr(B[0], "shape"), "Elements of B must be tensors and have attribute shape" action_maps = [] # mapping from multi action dependencies to flat action dependencies for each B B_flat = [] - for i, (B_f, action_dependency) in enumerate( - zip(B, B_action_dependencies) - ): + for i, (B_f, action_dependency) in enumerate(zip(B, B_action_dependencies)): if action_dependency == []: B_flat.append(jnp.expand_dims(B_f, axis=-1)) action_maps.append( - {"multi_dependency": [], "multi_dims": [], "flat_dependency": [i], "flat_dims": [1]} + { + "multi_dependency": [], + "multi_dims": [], + "flat_dependency": [i], + "flat_dims": [1], + } ) continue @@ -690,9 +653,7 @@ def _get_default_params(self): def _validate(self): for m in range(self.num_modalities): - factor_dims = tuple( - [self.num_states[f] for f in self.A_dependencies[m]] - ) + factor_dims = tuple([self.num_states[f] for f in self.A_dependencies[m]]) assert ( self.A[m].shape[2:] == factor_dims ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." @@ -705,9 +666,7 @@ def _validate(self): ), f"Check modality {m} of `A_dependencies` - must be consistent with `num_states` and `num_factors`..." for f in range(self.num_factors): - factor_dims = tuple( - [self.num_states[f] for f in self.B_dependencies[f]] - ) + factor_dims = tuple([self.num_states[f] for f in self.B_dependencies[f]]) assert ( self.B[f].shape[2:-1] == factor_dims ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B[{f}]..." @@ -727,6 +686,4 @@ def _validate(self): @property def unique_multiactions(self): size = pymath.prod(self.num_controls) - return jnp.unique( - self.policies[:, 0], axis=0, size=size, fill_value=-1 - ) + return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) diff --git a/pymdp/jax/distribution.py b/pymdp/jax/distribution.py index f4b25c01..e38a6ce2 100644 --- a/pymdp/jax/distribution.py +++ b/pymdp/jax/distribution.py @@ -114,6 +114,10 @@ def __getitem__(self, key): if isinstance(key, int): return self.distributions[key] else: + if key not in self.keys(): + raise KeyError( + f"Key {key} not found in " + str([k for k in self.keys()]) + ) return super().__getitem__(key) def __iter__(self): @@ -126,17 +130,19 @@ def __init__( self, likelihoods: list[Distribution], transitions: list[Distribution], - preferences: list[Distribution], + preferred_outcomes: list[Distribution], priors: list[Distribution], + preferred_states: list[Distribution], ): super().__init__() super().__setitem__("A", likelihoods) super().__setitem__("B", transitions) - super().__setitem__("C", preferences) + super().__setitem__("C", preferred_outcomes) super().__setitem__("D", priors) + super().__setitem__("H", preferred_states) def __getattr__(self, key): - if key in ["A", "B", "C", "D"]: + if key in ["A", "B", "C", "D", "H"]: return DistributionIndexer(self[key]) raise AttributeError("Model only supports attributes A,B,C and D") @@ -237,6 +243,7 @@ def compile_model(config): for event, description in transition_events.items(): arr_shape = [len(description)] arr = np.ones(arr_shape) / len(description) + event_descr = {event: description} priors.append(Distribution(event_descr, data=arr)) likelihoods = [] @@ -250,14 +257,23 @@ def compile_model(config): arr = np.zeros(arr_shape) likelihoods.append(Distribution(event_descr, batch_descr, arr)) - preferences = [] + preferred_outcomes = [] for event, description in likelihood_events.items(): arr_shape = [len(description)] arr = np.zeros(arr_shape) event_descr = {event: description} - preferences.append(Distribution(event_descr, data=arr)) + preferred_outcomes.append(Distribution(event_descr, data=arr)) - return Model(likelihoods, transitions, preferences, priors) + preferred_states = [] + for event, description in transition_events.items(): + arr_shape = [len(description)] + arr = np.ones(arr_shape) / len(description) + event_descr = {event: description} + preferred_states.append(Distribution(event_descr, data=arr)) + + return Model( + likelihoods, transitions, preferred_outcomes, priors, preferred_states + ) def get_dependencies(likelihoods, transitions): From d7f605ad5c0a43196aa67a6864aa3611111c4057 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 8 Aug 2024 13:14:25 +0200 Subject: [PATCH 151/196] allow to set gamma and make default value 1 --- pymdp/jax/planning/si.py | 85 +++++++++++++--------------------------- 1 file changed, 27 insertions(+), 58 deletions(-) diff --git a/pymdp/jax/planning/si.py b/pymdp/jax/planning/si.py index 71187d11..af322fbf 100644 --- a/pymdp/jax/planning/si.py +++ b/pymdp/jax/planning/si.py @@ -6,15 +6,24 @@ from jax import vmap import pymdp -from pymdp.jax.control import compute_info_gain, compute_expected_utility, compute_expected_state, compute_expected_obs +from pymdp.jax.control import ( + compute_info_gain, + compute_expected_utility, + compute_expected_state, + compute_expected_obs, + calc_inductive_value_t, +) -def si_policy_search(max_depth, - policy_prune_threshold=1 / 16, - policy_prune_topk=-1, - observation_prune_threshold=1 / 16, - entropy_prune_threshold=0.5, - prune_penalty=512): +def si_policy_search( + max_depth, + policy_prune_threshold=1 / 16, + policy_prune_topk=-1, + observation_prune_threshold=1 / 16, + entropy_prune_threshold=0.5, + prune_penalty=512, + gamma=1, +): def search_fn(agent, qs, rng_key): tree = tree_search( @@ -26,9 +35,10 @@ def search_fn(agent, qs, rng_key): observation_prune_threshold=observation_prune_threshold, entropy_prune_threshold=entropy_prune_threshold, prune_penalty=prune_penalty, + gamma=gamma, ) return tree.root()["q_pi"], tree - + return search_fn @@ -52,7 +62,7 @@ def append(self, node): self.nodes.append(node) -def step(agent, qs, policies, gamma=32): +def step(agent, qs, policies): def _step(a, b, c, q, policy): qs = compute_expected_state(q, b, policy, agent.B_dependencies) qo = compute_expected_obs(qs, a, agent.A_dependencies) @@ -62,7 +72,7 @@ def _step(a, b, c, q, policy): qs, qo, u, ig = vmap(lambda policy: vmap(_step)(agent.A, agent.B, agent.C, qs, policy))(policies) G = u + ig - return qs, qo, nn.softmax(G * gamma, axis=0), G + return qs, qo, G def tree_search( @@ -74,6 +84,8 @@ def tree_search( observation_prune_threshold=1 / 16, entropy_prune_threshold=0.5, prune_penalty=512, + gamma=1, + step_fn=step, ): root_node = { "qs": jtu.tree_map(lambda x: x[:, -1, ...], qs), @@ -85,10 +97,10 @@ def tree_search( tree = Tree(root_node) for _ in range(horizon): - leaves = tree.leaves() qs_leaves = stack_leaves([leaf["qs"] for leaf in leaves]) - qs_pi, qo_pi, q_pi, G = vmap(lambda leaf: step(agent, leaf, agent.policies))(qs_leaves) + qs_pi, qo_pi, G = vmap(lambda leaf: step_fn(agent, leaf, agent.policies))(qs_leaves) + q_pi = nn.softmax(G * gamma, axis=1) for l, node in enumerate(leaves): tree = expand_node( @@ -103,6 +115,7 @@ def tree_search( policy_prune_topk, observation_prune_threshold, prune_penalty, + gamma, ) if policy_entropy(tree.root()) < entropy_prune_threshold: @@ -123,7 +136,7 @@ def expand_node( policy_prune_topk=-1, observation_prune_threshold=1 / 16, prune_penalty=512, - gamma=32, + gamma=1, ): policies = agent.policies @@ -220,7 +233,7 @@ def expand_node( return tree -def tree_backward(node, prune_penalty=512, gamma=32): +def tree_backward(node, prune_penalty=512, gamma=1): while node["parent"] is not None: parent = node["parent"]["parent"] G_children = jnp.zeros(len(node["children"])) @@ -255,47 +268,3 @@ def policy_entropy(node): def stack_leaves(data): return [jnp.stack([d[i] for d in data]) for i in range(len(data[0]))] - - -def expand_node_vanilla(agent, node, tree, gamma=32): - qs = node["qs"] - policies = agent.policies - - qs_pi, qo_pi, G, u, ig = step(agent, qs, policies) - q_pi = nn.softmax(G * gamma, axis=0) - - node["policies"] = policies - node["q_pi"] = q_pi[:, 0] - node["G"] = jnp.array([jnp.dot(q_pi[:, 0], G[:, 0])]) - - for idx in range(policies.shape[0]): - policy_node = { - "policy": policies[idx, 0], - "prob": q_pi[idx, 0], - "qs": jtu.tree_map(lambda x: x[idx, ...], qs_pi), - "qo": jtu.tree_map(lambda x: x[idx, ...], qo_pi), - "G_t": G[idx], - "G": G[idx], - "parent": node, - "children": [], - "n": node["n"] + 1, - } - - node["children"].append(policy_node) - tree.append(policy_node) - - # update G of parents - while node["parent"] is not None: - parent = node["parent"] - G_children = jnp.array([child["G"][0] for child in parent["children"]]) - q_pi = nn.softmax(G_children * gamma) - - G = jnp.dot(q_pi, G_children) + parent["G_t"] - parent["G"] = G - parent["q_pi"] = q_pi - - for idx, c in enumerate(parent["children"]): - c["prob"] = q_pi[idx] - node = parent - - return tree From 8bf9a3864d9dbf928be4b9d7b2d624e10102485d Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Fri, 9 Aug 2024 14:49:02 +0200 Subject: [PATCH 152/196] use muzero_policy as default instead of the gumbel_muzero_policy --- pymdp/jax/planning/mcts.py | 124 ++++++++++++++++++------------------- 1 file changed, 60 insertions(+), 64 deletions(-) diff --git a/pymdp/jax/planning/mcts.py b/pymdp/jax/planning/mcts.py index 2758595c..01f357ee 100644 --- a/pymdp/jax/planning/mcts.py +++ b/pymdp/jax/planning/mcts.py @@ -5,13 +5,12 @@ import mctx import jax.numpy as jnp -def mcts_policy_search(search_algo=mctx.gumbel_muzero_policy, - max_depth = 6, - num_simulations = 4096): - + +def mcts_policy_search(search_algo=mctx.muzero_policy, max_depth=6, num_simulations=4096): + def si_policy(agent, beliefs, rng_key): - - # remove time dimension + + # remove time dimension embedding = jtu.tree_map(lambda x: x[:, 0], beliefs) root = mctx.RootFnOutput( prior_logits=jnp.log(agent.E), @@ -27,73 +26,73 @@ def si_policy(agent, beliefs, rng_key): root, recurrent_fn, num_simulations=num_simulations, - max_num_considered_actions=len(agent.policies), - max_depth=max_depth + max_depth=max_depth, ) return policy_output.action_weights, policy_output - + return si_policy + @vmap def compute_neg_efe(agent, qs, action): - qs_next_pi = compute_expected_state(qs, agent.B, action, B_dependencies=agent.B_dependencies) - qo_next_pi = compute_expected_obs(qs_next_pi, agent.A, agent.A_dependencies) - if agent.use_states_info_gain: - exp_info_gain = compute_info_gain(qs_next_pi, qo_next_pi, agent.A, agent.A_dependencies) - else: - exp_info_gain = 0. - - if agent.use_utility: - exp_utility = compute_expected_utility(qo_next_pi, agent.C) - else: - exp_utility = 0. - - return exp_utility + exp_info_gain, qs_next_pi, qo_next_pi + qs_next_pi = compute_expected_state(qs, agent.B, action, B_dependencies=agent.B_dependencies) + qo_next_pi = compute_expected_obs(qs_next_pi, agent.A, agent.A_dependencies) + if agent.use_states_info_gain: + exp_info_gain = compute_info_gain(qs_next_pi, qo_next_pi, agent.A, agent.A_dependencies) + else: + exp_info_gain = 0.0 + + if agent.use_utility: + exp_utility = compute_expected_utility(qo_next_pi, agent.C) + else: + exp_utility = 0.0 + + return exp_utility + exp_info_gain, qs_next_pi, qo_next_pi + @partial(vmap, in_axes=(0, 0, None)) def get_prob_single_modality(o_m, po_m, distr_obs): - """ Compute observation likelihood for a single modality (observation and likelihood)""" + """Compute observation likelihood for a single modality (observation and likelihood)""" return jnp.inner(o_m, po_m) if distr_obs else po_m[o_m] - + + def make_aif_recurrent_fn(): - """Returns a recurrent_fn for an AIF agent.""" + """Returns a recurrent_fn for an AIF agent.""" + + def recurrent_fn(agent, rng_key, action, embedding): + multi_action = agent.policies[action, 0] + qs = embedding + neg_efe, qs_next_pi, qo_next_pi = compute_neg_efe(agent, qs, multi_action) + + # recursively branch the policy + outcome tree + choice = lambda key, po: jr.categorical(key, logits=jnp.log(po)) + if agent.onehot_obs: + sample = lambda key, po, no: nn.one_hot(choice(key, po), no) + else: + sample = lambda key, po, no: choice(key, po) + + # set discount to outcome probabilities + discount = 1.0 + obs = [] + for no_m, qo_m in zip(agent.num_obs, qo_next_pi): + rng_key, key = jr.split(rng_key) + o_m = sample(key, qo_m, no_m) + discount *= get_prob_single_modality(o_m, qo_m, agent.onehot_obs) + obs.append(jnp.expand_dims(o_m, 1)) + + qs_next_posterior = agent.infer_states(obs, None, qs_next_pi, None) + # remove time dimension + # TODO: update infer_states to not expand along time dimension when needed + qs_next_posterior = jtu.tree_map(lambda x: x.squeeze(1), qs_next_posterior) + recurrent_fn_output = mctx.RecurrentFnOutput( + reward=neg_efe, discount=discount, prior_logits=jnp.log(agent.E), value=jnp.zeros_like(neg_efe) + ) - def recurrent_fn(agent, rng_key, action, embedding): - multi_action = agent.policies[action, 0] - qs = embedding - neg_efe, qs_next_pi, qo_next_pi = compute_neg_efe(agent, qs, multi_action) + return recurrent_fn_output, qs_next_posterior + + return recurrent_fn - # recursively branch the policy + outcome tree - choice = lambda key, po: jr.categorical(key, logits=jnp.log(po)) - if agent.onehot_obs: - sample = lambda key, po, no: nn.one_hot(choice(key, po), no) - else: - sample = lambda key, po, no: choice(key, po) - - # set discount to outcome probabilities - discount = 1. - obs = [] - for no_m, qo_m in zip(agent.num_obs, qo_next_pi): - rng_key, key = jr.split(rng_key) - o_m = sample(key, qo_m, no_m) - discount *= get_prob_single_modality(o_m, qo_m, agent.onehot_obs) - obs.append(jnp.expand_dims(o_m, 1)) - - qs_next_posterior = agent.infer_states(obs, None, qs_next_pi, None) - # remove time dimension - # TODO: update infer_states to not expand along time dimension when needed - qs_next_posterior = jtu.tree_map(lambda x: x.squeeze(1), qs_next_posterior) - recurrent_fn_output = mctx.RecurrentFnOutput( - reward=neg_efe, - discount=discount, - prior_logits=jnp.log(agent.E), - value=jnp.zeros_like(neg_efe) - ) - - return recurrent_fn_output, qs_next_posterior - - return recurrent_fn # custom rollout function for mcts def rollout(policy_search, agent, env, num_timesteps, rng_key): @@ -108,10 +107,7 @@ def step_fn(carry, x): # We infer the posterior using FPI # so we don't need past actions or qs_hist - qs = agent.infer_states( - observation_t, - prior - ) + qs = agent.infer_states(observation_t, prior) rng_key, key = jr.split(rng_key) qpi, _ = policy_search(key, agent, qs) @@ -157,4 +153,4 @@ def step_fn(carry, x): last, info = lax.scan(step_fn, initial_carry, jnp.arange(num_timesteps)) info = jtu.tree_map(lambda x: jnp.swapaxes(x, 0, 1), info) - return last, info, env \ No newline at end of file + return last, info, env From dfdd9d0fd363c1a36031c9217f54f961a9d21a95 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Fri, 20 Sep 2024 12:02:25 +0200 Subject: [PATCH 153/196] fix Distribution API notebook --- examples/api/distribution_api.ipynb | 38 +++++++++++++++++------------ pymdp/jax/agent.py | 2 ++ 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/examples/api/distribution_api.ipynb b/examples/api/distribution_api.ipynb index 47d205dd..e1c57c01 100644 --- a/examples/api/distribution_api.ipynb +++ b/examples/api/distribution_api.ipynb @@ -77,16 +77,9 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n" - ] - }, { "name": "stdout", "output_type": "stream", @@ -98,7 +91,7 @@ } ], "source": [ - "agent = Agent([A], [B], [C], [D], apply_batch=True)\n", + "agent = Agent([A], [B], [C], [D])\n", "print(f\"goal state: {states[jnp.argmax(agent.C[0])]}\")\n", "\n", "# infer state given action and observation\n", @@ -110,8 +103,8 @@ "\n", "# qs needs a time dimension for infer_empirical_prior, so expand dims of D\n", "qs_init = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), agent.D)\n", - "prior, _ = agent.infer_empirical_prior(action, qs_init)\n", - "qs = agent.infer_states([observation], None, prior, None)\n", + "prior, _ = agent.update_empirical_prior(action, qs_init)\n", + "qs = agent.infer_states([observation], prior)\n", "print(f\"initial state: {states[jnp.argmax(qs[0])]}\")\n", "\n", "q_pi, G = agent.infer_policies(qs)\n", @@ -130,7 +123,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -138,7 +131,13 @@ "output_type": "stream", "text": [ "goal state: D\n", - "initial state: A\n", + "initial state: A\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "action taken: up\n" ] } @@ -175,8 +174,8 @@ "agent = Agent(**model, apply_batch=True)\n", "print(f\"goal state: {states[jnp.argmax(agent.C[0])]}\")\n", "\n", - "prior, _ = agent.infer_empirical_prior(action, qs_init)\n", - "qs = agent.infer_states([observation], None, prior, None)\n", + "prior, _ = agent.update_empirical_prior(action, qs_init)\n", + "qs = agent.infer_states([observation], prior)\n", "print(f\"initial state: {states[jnp.argmax(qs[0])]}\")\n", "\n", "q_pi, G = agent.infer_policies(qs)\n", @@ -186,7 +185,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -269,6 +268,13 @@ "\n", "agent = Agent(**model, apply_batch=True)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 5dddc2df..a5fc532d 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -520,6 +520,8 @@ def sample_action(self, q_pi: Array, rng_key=None): sample_policy = partial(control.sample_policy, self.policies, action_selection=self.action_selection) action = vmap(sample_policy)(q_pi, alpha=self.alpha, rng_key=rng_key) + return action + def encode_multi_actions(self, action_multi): """Encode multiple actions to flattened actions""" if self.action_maps is None: From 908aa8af95fd72b7929a9ef8f7961db125547786 Mon Sep 17 00:00:00 2001 From: conorheins Date: Fri, 20 Sep 2024 12:04:43 +0200 Subject: [PATCH 154/196] fixed the initialization of the E vector in `Agent` constructor so that it cannot be a list, must be an array or Distribution instance --- pymdp/jax/agent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index a5fc532d..20009b69 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -162,7 +162,7 @@ def __init__( if D is not None: D = [jnp.array(d.data) if isinstance(d, Distribution) else d for d in D] if E is not None: - E = [jnp.array(e.data) if isinstance(e, Distribution) else e for e in E] + E = jnp.array(E.data) if isinstance(E, Distribution) else E if H is not None: H = [jnp.array(h.data) if isinstance(h, Distribution) else h for h in H] From 368907f63af6e0ba1aab148245b8f4a6ce0fb4b7 Mon Sep 17 00:00:00 2001 From: conorheins Date: Fri, 20 Sep 2024 12:07:22 +0200 Subject: [PATCH 155/196] Added `apply_batch=False` flag to all initializations of an `Agent` in the `inference_methods_comparison.ipynb` notebook --- .../inference_methods_comparison.ipynb | 115 +++--------------- 1 file changed, 19 insertions(+), 96 deletions(-) diff --git a/examples/inference_and_learning/inference_methods_comparison.ipynb b/examples/inference_and_learning/inference_methods_comparison.ipynb index ca21e4dd..55a673cd 100644 --- a/examples/inference_and_learning/inference_methods_comparison.ipynb +++ b/examples/inference_and_learning/inference_methods_comparison.ipynb @@ -92,7 +92,8 @@ " action_selection=\"deterministic\",\n", " sampling_mode=\"full\",\n", " inference_algo=\"ovf\",\n", - " num_iter=16\n", + " num_iter=16,\n", + " apply_batch=False\n", ")" ] }, @@ -127,23 +128,15 @@ " if t < len(obs[0]) - 1:\n", " action_hist.append(actions)\n", "\n", - "v_jso = jit(vmap(smoothing_ovf), backend='gpu')\n", + "v_jso = jit(vmap(smoothing_ovf), backend='cpu')\n", "actions_seq = jnp.stack(action_hist, 1)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "66 µs ± 1.06 µs per loop (mean ± std. dev. of 7 runs, 10,000 loops each)\n" - ] - } - ], + "outputs": [], "source": [ "smoothed_beliefs = v_jso(beliefs, agents.B, actions_seq)\n", "%timeit v_jso(beliefs, agents.B, actions_seq)[0][0].block_until_ready()" @@ -158,17 +151,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "104 µs ± 11.8 µs per loop (mean ± std. dev. of 7 runs, 10,000 loops each)\n" - ] - } - ], + "outputs": [], "source": [ "sparse_B = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b, n_batch=1), agents.B)\n", "\n", @@ -185,30 +170,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Filtered beliefs')" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABQMAAAKqCAYAAACO80jyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAqcklEQVR4nO3de5CV9X348c9ZLisibJOAC3glGAPeMN0oXkawohI7NSFjxdhpC16CNkhr0DRhfmnQZEZ0NJISvCAdxdhfmphGaNpJyiiCxvxoUSjGXBTbaMyogBQDdcWj7D6/P/Jzf9nIZZ+9cHb5vF4z5499zjnPfh7m2eXLm3OeUymKoggAAAAA4IBXV+sBAAAAAID9QwwEAAAAgCTEQAAAAABIQgwEAAAAgCTEQAAAAABIQgwEAAAAgCTEQAAAAABIQgwEAAAAgCTEQAAAAABIQgwE9ujFF1+MSqUSS5cubdt2ww03RKVSqd1QJXV03rPPPjtOOOGEbv3eRx99dMyYMaPt69WrV0elUonVq1d3an9PPvlknHHGGTF48OCoVCqxYcOGbpkTAACAPMRASGzp0qVRqVR2e/vCF77Q4f3cdNNNsXz58p4blHjnnXfi4osvjm3btsWCBQvigQceiKOOOqrWYwEAANDH9K/1AEDtffnLX47Ro0e323bCCSfEUUcdFTt37owBAwbs9fk33XRT/PEf/3FMnTq1B6fs+yZOnBg7d+6MgQMHln7uf/3Xf8Uvf/nLWLJkSVx55ZU9MB0AAAAZiIFAXHDBBfHRj350t/cddNBB+3ma33jrrbdi4MCBUVd34LyAua6urtN/nlu2bImIiN/7vd/rxokAAADI5sD5VzbQ7XZ3zcDfValUorm5Oe6///62txj/9nXyXn755bj88sujsbEx6uvr4/jjj49777233T7evZbet771rfjiF78Yhx12WBx88MGxY8eOiIj493//9/jYxz4WDQ0NcfDBB8ekSZPiRz/60XtmeeKJJ+KUU06Jgw46KMaMGROLFy8ufczr1q2LM844IwYNGhSjR4+Ou++++z2PqVarMW/evDjmmGOivr4+jjjiiPjrv/7rqFare933nq4ZuK/jmzFjRkyaNCkiIi6++OKoVCpx9tlnR0TEpk2b4rLLLovDDz886uvrY+TIkfGJT3wiXnzxxdLHDgAAwIHPKwOB2L59e2zdurXdtmHDhnXouQ888EBceeWVceqpp8bMmTMjImLMmDEREbF58+Y47bTTolKpxDXXXBPDhw+PH/zgB3HFFVfEjh074tprr223r6985SsxcODAuP7666NarcbAgQPj0UcfjQsuuCCamppi3rx5UVdXF/fdd1+cc8458cMf/jBOPfXUiIh45pln4vzzz4/hw4fHDTfcELt27Yp58+ZFY2Njh/8cXn/99fjDP/zDmDZtWlx66aXx4IMPxl/8xV/EwIED4/LLL4+IiNbW1vj4xz8eTzzxRMycOTPGjRsXzzzzTCxYsCA2btxY+tqJHTm+q666Kg477LC46aab4i//8i/jlFNOaTuuiy66KH7605/G7Nmz4+ijj44tW7bEww8/HC+99FIcffTRpWYBAAAggQJI67777isiYre3oiiKF154oYiI4r777mt7zrx584rf/dUxePDgYvr06e/Z/xVXXFGMHDmy2Lp1a7vtn/rUp4qGhobizTffLIqiKFatWlVERPHBD36wbVtRFEVra2vxoQ99qJgyZUrR2tratv3NN98sRo8eXZx33nlt26ZOnVocdNBBxS9/+cu2bT/72c+Kfv36vWfe3Zk0aVIREcVXv/rVtm3VarU4+eSTi0MPPbR4++23i6IoigceeKCoq6srfvjDH7Z7/t13311ERPGjH/2obdtRRx3V7s/l3eNctWpV6eN797nf+c532ra9/vrrRUQUt9566z6PDwAAAIqiKLxNGIg77rgjHn744Xa3riqKIr773e/GhRdeGEVRxNatW9tuU6ZMie3bt8f69evbPWf69OkxaNCgtq83bNgQzz//fPzJn/xJ/Pd//3fb85ubm2Py5Mnx+OOPR2tra7S0tMSKFSti6tSpceSRR7Y9f9y4cTFlypQOz9y/f/+46qqr2r4eOHBgXHXVVbFly5ZYt25dRER85zvfiXHjxsXYsWPbHdM555wTERGrVq3q8Pfr6PHtyaBBg2LgwIGxevXqeP311zv8fQEAAMjL24SBOPXUU/f4ASKd9dprr8Wvf/3ruOeee+Kee+7Z7WPe/VCMd/3uJxo///zzEfGbSLgn27dvj2q1Gjt37owPfehD77n/wx/+cHz/+9/v0MyjRo2KwYMHt9t27LHHRsRvrp942mmnxfPPPx8///nPY/jw4bvdx+8e09509Pje97737fa++vr6uOWWW+K6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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# with dense matrices\n", "fig, axes = plt.subplots(2, 2, figsize=(16, 8), sharex=True)\n", @@ -224,30 +188,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Filtered beliefs')" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABQMAAAKqCAYAAACO80jyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAqcklEQVR4nO3de5CV9X348c9ZLisibJOAC3glGAPeMN0oXkawohI7NSFjxdhpC16CNkhr0DRhfmnQZEZ0NJISvCAdxdhfmphGaNpJyiiCxvxoUSjGXBTbaMyogBQDdcWj7D6/P/Jzf9nIZZ+9cHb5vF4z5499zjnPfh7m2eXLm3OeUymKoggAAAAA4IBXV+sBAAAAAID9QwwEAAAAgCTEQAAAAABIQgwEAAAAgCTEQAAAAABIQgwEAAAAgCTEQAAAAABIQgwEAAAAgCTEQAAAAABIQgwE9ujFF1+MSqUSS5cubdt2ww03RKVSqd1QJXV03rPPPjtOOOGEbv3eRx99dMyYMaPt69WrV0elUonVq1d3an9PPvlknHHGGTF48OCoVCqxYcOGbpkTAACAPMRASGzp0qVRqVR2e/vCF77Q4f3cdNNNsXz58p4blHjnnXfi4osvjm3btsWCBQvigQceiKOOOqrWYwEAANDH9K/1AEDtffnLX47Ro0e323bCCSfEUUcdFTt37owBAwbs9fk33XRT/PEf/3FMnTq1B6fs+yZOnBg7d+6MgQMHln7uf/3Xf8Uvf/nLWLJkSVx55ZU9MB0AAAAZiIFAXHDBBfHRj350t/cddNBB+3ma33jrrbdi4MCBUVd34LyAua6urtN/nlu2bImIiN/7vd/rxokAAADI5sD5VzbQ7XZ3zcDfValUorm5Oe6///62txj/9nXyXn755bj88sujsbEx6uvr4/jjj49777233T7evZbet771rfjiF78Yhx12WBx88MGxY8eOiIj493//9/jYxz4WDQ0NcfDBB8ekSZPiRz/60XtmeeKJJ+KUU06Jgw46KMaMGROLFy8ufczr1q2LM844IwYNGhSjR4+Ou++++z2PqVarMW/evDjmmGOivr4+jjjiiPjrv/7rqFare933nq4ZuK/jmzFjRkyaNCkiIi6++OKoVCpx9tlnR0TEpk2b4rLLLovDDz886uvrY+TIkfGJT3wiXnzxxdLHDgAAwIHPKwOB2L59e2zdurXdtmHDhnXouQ888EBceeWVceqpp8bMmTMjImLMmDEREbF58+Y47bTTolKpxDXXXBPDhw+PH/zgB3HFFVfEjh074tprr223r6985SsxcODAuP7666NarcbAgQPj0UcfjQsuuCCamppi3rx5UVdXF/fdd1+cc8458cMf/jBOPfXUiIh45pln4vzzz4/hw4fHDTfcELt27Yp58+ZFY2Njh/8cXn/99fjDP/zDmDZtWlx66aXx4IMPxl/8xV/EwIED4/LLL4+IiNbW1vj4xz8eTzzxRMycOTPGjRsXzzzzTCxYsCA2btxY+tqJHTm+q666Kg477LC46aab4i//8i/jlFNOaTuuiy66KH7605/G7Nmz4+ijj44tW7bEww8/HC+99FIcffTRpWYBAAAggQJI67777isiYre3oiiKF154oYiI4r777mt7zrx584rf/dUxePDgYvr06e/Z/xVXXFGMHDmy2Lp1a7vtn/rUp4qGhobizTffLIqiKFatWlVERPHBD36wbVtRFEVra2vxoQ99qJgyZUrR2tratv3NN98sRo8eXZx33nlt26ZOnVocdNBBxS9/+cu2bT/72c+Kfv36vWfe3Zk0aVIREcVXv/rVtm3VarU4+eSTi0MPPbR4++23i6IoigceeKCoq6srfvjDH7Z7/t13311ERPGjH/2obdtRRx3V7s/l3eNctWpV6eN797nf+c532ra9/vrrRUQUt9566z6PDwAAAIqiKLxNGIg77rgjHn744Xa3riqKIr773e/GhRdeGEVRxNatW9tuU6ZMie3bt8f69evbPWf69OkxaNCgtq83bNgQzz//fPzJn/xJ/Pd//3fb85ubm2Py5Mnx+OOPR2tra7S0tMSKFSti6tSpceSRR7Y9f9y4cTFlypQOz9y/f/+46qqr2r4eOHBgXHXVVbFly5ZYt25dRER85zvfiXHjxsXYsWPbHdM555wTERGrVq3q8Pfr6PHtyaBBg2LgwIGxevXqeP311zv8fQEAAMjL24SBOPXUU/f4ASKd9dprr8Wvf/3ruOeee+Kee+7Z7WPe/VCMd/3uJxo///zzEfGbSLgn27dvj2q1Gjt37owPfehD77n/wx/+cHz/+9/v0MyjRo2KwYMHt9t27LHHRsRvrp942mmnxfPPPx8///nPY/jw4bvdx+8e09509Pje97737fa++vr6uOWWW+K6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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "#with sparse matrices\n", "fig, axes = plt.subplots(2, 2, figsize=(16, 8), sharex=True)\n", @@ -270,20 +213,9 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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yLIsy/baa6/s2GOPzfvd9dutt3bt2qx79+7ZkUcembceEVm9evWyl19+OW995MiRWS6Xy55//vmatY8++ihr0aJFFhHZm2++WbPep0+frE+fPjU/z5s3L4uIrFu3bllVVVXN+vjx47OIyF588cVNzpllWVZRUZHlcrns7bffrlm7/PLLsy0dRj3//PNZRGTTp0/f7HYRkZWUlOQ9hxtvvDGLiKxdu3bZqlWratbLy8vznu/atWuzNm3aZN27d8/WrFlTs93MmTOziMguu+yymrUDDzwwa9OmTfbRRx/VrL3wwgtZvXr1sjPOOKNm7eqrr97gNf36rLvsskv2+uuv5+0jIrKJEyfWrJ199tlZ+/btsxUrVuT9/sknn5yVlpbWvM7XXXddFhHZvffeW7PN6tWrs86dO2cRkc2bN2+zr936P4eBAwfmrZ9//vlZRGQvvPBClmVZ9tZbb2X169fPrrzyyrztXnzxxaxBgwZ562eeeWa21157bfC8L7/88oKf3/rfHT58eN52PXr02ODvCADAN8XHhAGAgg0ZMiTWrFkTM2fOjL/97W8xc+bMTX5EOCKicePGNf/98ccfR2VlZfTu3TsWL168wbZ9+vSJfffdN2/t0UcfjV69esWBBx5Ys9aiRYs47bTTtnrmYcOG5V1LsHfv3hER8cYbb2x0ztWrV8eKFSvikEMOiSzL4vnnn9/qx4qImjP/Zs+eHZ999tlmtz3qqKOiY8eONT8ffPDBERFx4oknRrNmzTZYXz/zwoULY/ny5XH++edHo0aNarY79thjo2vXrvFf//VfERHx/vvvx5IlS2Lo0KHRokWLmu0OOOCA6NevXzzyyCNb/bz69u0be++9d94+mjdvXjNTlmVx3333xXHHHRdZlsWKFStqbv3794/KysqaP/dHHnkk2rdvHz/5yU9q9tekSZM477zztnqeiKg5o3K9kSNH1uw/IuL++++P6urqGDJkSN487dq1i3322SfmzZu31Y9VyPPblN122y1efvnleO211wp6ngAAtcHHhAGAgrVu3Tr69u0b06ZNi88++yzWrVuXF3T+3syZM+OKK66IJUuW5F0Pbv011L6uU6dOG6y9/fbb0atXrw3WO3fuvNUz77nnnnk/f+c734mIr+Lkeu+8805cdtll8dBDD+WtR0Tedf62RqdOneKiiy6KX//613HXXXdF7969Y+DAgXH66afnfUR4Y7Otv3+PPfbY6Pr62d5+++2IiPjud7+7weN37do1nn766S1u161bt5g9e3asXr06mjZtusXn9fezRnz1Wq6f6cMPP4xPPvkkbrrpprjppps2uo/ly5fXzNW5c+cN3gcbm3Nz9tlnn7yf995776hXr17NtQ5fe+21yLJsg+3Wa9iw4VY/ViHPb1N++ctfxvHHHx9dunSJ7t27x9FHHx0//elP44ADDtjqOQAAtpUYCABsk1NPPTXOPffc+OCDD2LAgAGbvObaU089FQMHDoyysrKYPHlytG/fPho2bBi33XZbTJs2bYPtv352Xm2qX7/+RtezLIuIiHXr1kW/fv1i5cqVcckll0TXrl2jadOmsXTp0hg6dGhUV1cX/Jj/+Z//GUOHDo3f//738dhjj8UFF1xQc127Dh06bHG2Lc1cDFuaaf3rdPrpp8eZZ5650W13dPT6+7hYXV0duVwuZs2atdH5d911163ed208v7Kysvi///u/mvfFzTffHNdee21MmTIlzjnnnK2eBQBgW4iBAMA2OeGEE+Kf/umf4tlnn4177rlnk9vdd9990ahRo5g9e3beF37cdtttW/1Ye+211wbf/BsRG13bVi+++GK8+uqrcccdd+R92cP2fsPr/vvvH/vvv3/827/9WzzzzDNx6KGHxpQpU+KKK67Y3pFjr732ioiIV155JY488si8+1555ZWa+7++3d/7y1/+Eq1atao5K3BjZ2sWonXr1tGsWbNYt25d9O3bd4vzv/TSS5FlWd7jbmzOzXnttdfyzih9/fXXo7q6uuaj13vvvXdkWRadOnWKLl26FLTvv1fI89ucFi1axLBhw2LYsGHx6aefRllZWYwZM0YMBAB2ONcMBAC2ya677ho33HBDjBkzJo477rhNble/fv3I5XKxbt26mrW33norHnzwwa1+rP79+8f8+fNjyZIlNWsrV66Mu+66a1tG3+ScEfln3WVZFuPHj9+m/a1atSq+/PLLvLX9998/6tWrl/dR6e3xve99L9q0aRNTpkzJ2+esWbPiz3/+c803Nbdv3z4OPPDAuOOOO+KTTz6p2e6ll16Kxx57LI455piatfVR8OvbFaJ+/fpx4oknxn333RcvvfTSBvd/+OGHNf99zDHHxF//+teYMWNGzdpnn322yY/fbsr111+f9/PEiRMjImq+7frHP/5x1K9fP8aOHbvBWZVZlsVHH3201Y9VyPPblL9/vF133TU6d+5ca+8LAIDNcWYgALDNNvUxya879thj49e//nUcffTRceqpp8by5cvj+uuvj86dO8ef/vSnrXqcn//853HnnXdGv379YuTIkdG0adO4+eabY88994yVK1du99lsEV9dY2/vvfeO0aNHx9KlS6N58+Zx3333bXDtwK01d+7cGDFiRAwePDi6dOkSX375ZUydOrUmJtWGhg0bxlVXXRXDhg2LPn36xCmnnBLLli2L8ePHR8eOHWPUqFE121599dUxYMCA6NWrV5x99tmxZs2amDhxYpSWlsaYMWNqtuvZs2dERPzrv/5rnHzyydGwYcM47rjjtup6guuNGzcu5s2bFwcffHCce+65se+++8bKlStj8eLF8fjjj8fKlSsjIuLcc8+NSZMmxRlnnBGLFi2K9u3bx9SpU6NJkyYFvQ5vvvlmDBw4MI4++uiYP39+3HnnnXHqqadGjx49IuKrMwOvuOKKKC8vj7feeisGDRoUzZo1izfffDMeeOCBOO+882L06NG1/vw2Zd99943DDz88evbsGS1atIiFCxfGjBkzYsSIEQU9bwCAbSEGAgA71JFHHhm33HJLjBs3Li688MLo1KlTXHXVVfHWW29tdQzcY489Yt68eXHBBRfEf/zHf0Tr1q1j+PDh0bRp07jgggvyvkl3WzVs2DAefvjhmuv6NWrUKE444YQYMWJETVQqRI8ePaJ///7x8MMPx9KlS6NJkybRo0ePmDVrVvzgBz/Y7nnXGzp0aDRp0iTGjRsXl1xySTRt2jROOOGEuOqqq/Ku49i3b9949NFH4/LLL4/LLrssGjZsGH369Imrrroq7yO2Bx10UPz7v/97TJkyJR599NGorq6ON998s6AY2LZt21iwYEH88pe/jPvvvz8mT54cLVu2jP322y+uuuqqmu2aNGkSc+bMiZEjR8bEiROjSZMmcdppp8WAAQPi6KOP3urHu+eee+Kyyy6LSy+9NBo0aBAjRoyIq6++Om+bSy+9NLp06RLXXnttjB07NiK+el/98Ic/jIEDB271YxXy/DblggsuiIceeigee+yxqKqqir322iuuuOKKuPjiiwuaAwBgW+SyYl6BGgBgO1x44YVx4403xqeffrrJL7YAAAD+P9cMBADqhDVr1uT9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UVx++eWxePHi6NGjR/Tv3z+WL19e7NHYCa1evTp69OgR119/fbFHoY548sknY/jw4fHss8/GH/7wh/jiiy/ihz/8YaxevbrYo7GT6tChQ4wbNy4WLVoUCxcujCOPPDKOP/74ePnll4s9GrCDOB6lUI5JKYTjUQrleLT25LIsy4o9BBs6+OCD46CDDopJkyZFRER1dXXsscceMXLkyLj00kuLPB07s1wuFw888EAMGjSo2KNQh3z44YfRpk2bePLJJ6OsrKzY41BHtGjRIq6++uo4++yziz0KsAM4HmV7OCalUI5H2RaOR7eNMwN3QmvXro1FixZF3759a9bq1asXffv2jfnz5xdxMuDbqrKyMiK++p8pbMm6devid7/7XaxevTp69epV7HGAHcDxKPBNczxKIRyPbp8GxR6ADa1YsSLWrVsXbdu2zVtv27Zt/OUvfynSVMC3VXV1dVx44YVx6KGHRvfu3Ys9DjuxF198MXr16hWff/557LrrrvHAAw/EvvvuW+yxgB3A8SjwTXI8ytZyPFo7xECAxA0fPjxeeumlePrpp4s9Cju57373u7FkyZKorKyMGTNmxJlnnhlPPvmkAzAAYLs4HmVrOR6tHWLgTqhVq1ZRv379WLZsWd76smXLol27dkWaCvg2GjFiRMycOTP++Mc/RocOHYo9Dju5XXbZJTp37hwRET179oznnnsuxo8fHzfeeGORJwNqm+NR4JvieJRCOB6tHa4ZuBPaZZddomfPnjFnzpyaterq6pgzZ47PwgO1IsuyGDFiRDzwwAMxd+7c6NSpU7FHog6qrq6OqqqqYo8B7ACOR4EdzfEotcHx6LZxZuBO6qKLLoozzzwzvve978X3v//9uO6662L16tUxbNiwYo/GTujTTz+N119/vebnN998M5YsWRItWrSIPffcs4iTsbMaPnx4TJs2LX7/+99Hs2bN4oMPPoiIiNLS0mjcuHGRp2NnVF5eHgMGDIg999wz/va3v8W0adPiiSeeiNmzZxd7NGAHcTxKoRyTUgjHoxTK8WjtyWVZlhV7CDZu0qRJcfXVV8cHH3wQBx54YEyYMCEOPvjgYo/FTuiJJ56II444YoP1M888M26//fZvfiB2erlcbqPrt912WwwdOvSbHYY64eyzz445c+bE+++/H6WlpXHAAQfEJZdcEv369Sv2aMAO5HiUQjgmpRCORymU49HaIwYCAAAAQCJcMxAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEjE/wNyswhV/yxGqAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "mmp_agents = agents = Agent(\n", " A=A,\n", @@ -299,7 +231,8 @@ " action_selection=\"deterministic\",\n", " sampling_mode=\"full\",\n", " inference_algo=\"mmp\",\n", - " num_iter=16\n", + " num_iter=16,\n", + " apply_batch=False\n", ")\n", "\n", "mmp_obs = [jnp.moveaxis(obs[0], 0, 1)]\n", @@ -323,20 +256,9 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABQMAAAGHCAYAAAAEKUSHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAkh0lEQVR4nO3deZCU9Z348U9zDQg4iJzRCBouDYjJKIRbxYhEw2IqHhFLxphVN4AlFkTRUsA1kl11RUTF6CrGCBo1XqsGEPGIskFw0UjWK8KqiVweoKOMyDy/P1LMLx3OloGe8ft6VXVZ832efvrTYwNPvevp7lyWZVkAAAAAAF959Yo9AAAAAACwZ4iBAAAAAJAIMRAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAX3Hl5eXRrFmzPfJYHTt2jPLy8u3us2LFisjlcnH11VfX2OM+9dRTkcvl4qmnnqpeKy8vj44dO37pY1511VVx0EEHRf369eOwww7b5RkBAGoDMRAA2GOGDRsWe+21V3z88cfb3GfEiBHRqFGjeP/99yMiIpfLRS6Xi5/85Cdb3f+SSy6p3mft2rXV6+Xl5dXruVwu9t577+jZs2dcc801UVlZWbNPrBb49NNPY9KkSXkxjC9v7ty58bOf/Sz69esXt99+e1x55ZXFHgkAoEY0KPYAAEA6RowYEY888kg88MADccYZZ2yx/dNPP42HHnoojjvuuNh3332r1xs3bhz3339/3HjjjdGoUaO8+8yePTsaN24cGzZs2OJ4JSUlceutt0ZExEcffRT3339/jBs3Ll544YW4++67a/jZFdenn34akydPjoiII488srjD1BK33HJLVFVVfan7Pvnkk1GvXr34z//8zy1ecwAAdZkrAwGAPWbYsGHRvHnzmDVr1la3P/TQQ1FRUREjRozIWz/uuONi/fr18fjjj+etP//887F8+fI4/vjjt3q8Bg0axOmnnx6nn356jB49OubPnx+HH3543HPPPfHXv/61Zp4UtVbDhg2jpKTkS9139erV0aRJEyEQAPjKEQMBgD2mSZMm8YMf/CDmz58fq1ev3mL7rFmzonnz5jFs2LC89f322y8GDhy4RUS86667okePHtG9e/edevx69epVXzW3YsWKbe63cePGmDx5cnTu3DkaN24c++67b/Tv3z/mzZtXvc/mz+F7++2344QTTohmzZrFfvvtFzfccENERPzxj3+Mo48+Opo2bRodOnTYagB966234qSTToqWLVvGXnvtFd/5znfi0Ucf3WK/1atXx1lnnRVt27aNxo0bR8+ePeOOO+6o3r5ixYpo3bp1RERMnjy5+q3RkyZNyjvOX/7ylxg+fHg0a9YsWrduHePGjYtNmzbl7VNVVRVTp06Nb37zm9G4ceNo27ZtnHPOOfHhhx/m7ZdlWVxxxRWx//77x1577RVHHXVULFu2bJu/02259tpro0OHDtGkSZMYNGhQvPLKK1vs8+qrr8YPf/jDaNmyZTRu3DgOP/zwePjhh3d47K19ZuDOPL9cLhe33357VFRUVP8uZ86cGRER8+bNi/79+0eLFi2iWbNm0bVr17j44osLft4AAMUiBgIAe9SIESPiiy++iN/85jd56x988EHMmTMnTjzxxGjSpMkW9zvttNPikUceiU8++SQiIr744ou4995747TTTivo8f/85z9HROS9DfkfTZo0KSZPnhxHHXVUTJ8+PS655JI44IAD4sUXX8zbb9OmTTF06ND4+te/Hv/+7/8eHTt2jNGjR8fMmTPjuOOOi8MPPzz+7d/+LZo3bx5nnHFGLF++vPq+q1atir59+8acOXPipz/9afz85z+PDRs2xLBhw+KBBx6o3u+zzz6LI488Mu68884YMWJEXHXVVVFaWhrl5eVx3XXXRURE69at46abboqIiBNPPDHuvPPOuPPOO+MHP/hB3qxDhgyJfffdN66++uoYNGhQXHPNNfHLX/4y7zmdc845MX78+OjXr19cd911ceaZZ8Zdd90VQ4YMiY0bN1bvd9lll8Wll14aPXv2rP6ijWOPPTYqKip2+v/Fr371q5g2bVqMGjUqJkyYEK+88kocffTRsWrVqup9li1bFt/5znfif//3f+Oiiy6Ka665Jpo2bRrDhw/P+z3trJ15fnfeeWcMGDAgSkpKqn+XAwcOjGXLlsUJJ5wQlZWVcfnll8c111wTw4YNi+eee67gOQAAiiYDANiDvvjii6x9+/ZZnz598tZnzJiRRUQ2Z86cvPWIyEaNGpV98MEHWaNGjbI777wzy7Ise/TRR7NcLpetWLEimzhxYhYR2Zo1a6rvN3LkyKxp06bZmjVrsjVr1mRvvvlmduWVV2a5XC479NBDtztjz549s+OPP367+4wcOTKLiOzKK6+sXvvwww+zJk2aZLlcLrv77rur11999dUsIrKJEydWr51//vlZRGTPPvts9drHH3+cHXjggVnHjh2zTZs2ZVmWZVOnTs0iIvv1r39dvd/nn3+e9enTJ2vWrFm2fv36LMuybM2aNVs8xj/Oevnll+etf+tb38rKysqqf3722WeziMjuuuuuvP1+97vf5a2vXr06a9SoUXb88cdnVVVV1ftdfPHFWURkI0eO3O7vbvny5VlEZE2aNMnefffd6vU//OEPWURkY8eOrV4bPHhw1qNHj2zDhg3Va1VVVVnfvn2zzp07V68tWLAgi4hswYIFec+7Q4cOBT+/zfdt2rRp3n7XXnvtFq8zAIC6xpWBAMAeVb9+/Tj11FNj4cKFeW/VnTVrVrRt2zYGDx681fvts88+cdxxx8Xs2bOr9+/bt2906NBhm49VUVERrVu3jtatW0enTp3i4osvjj59+uzwirIWLVrEsmXL4o033tjh8/n7bzlu0aJFdO3aNZo2bRonn3xy9XrXrl2jRYsW8dZbb1WvPfbYY9GrV6/o379/9VqzZs3i7LPPjhUrVsSf/vSn6v3atWsXP/rRj6r3a9iwYZx33nnxySefxNNPP73DGTc799xz834eMGBA3kz33ntvlJaWxne/+91Yu3Zt9a2srCyaNWsWCxYsiIiIJ554Ij7//PMYM2ZM5HK56vuff/75Oz1LRMTw4cNjv/32q/65V69e0bt373jsscci4m9Xiz755JNx8sknx8cff1w9z/vvvx9DhgyJN954I/7yl7/s9OPt7PPblhYtWkTE3z7b8st+MQkAQLGJgQDAHrf5C0I2f47eu+++G88++2yceuqpUb9+/W3e77TTTot58+bF22+/HQ8++OAO3yLcuHHjmDdvXsybNy+eeeaZeOedd+K5556Lgw46aLv3u/zyy+Ojjz6KLl26RI8ePWL8+PHx8ssvb/X4mz+rb7PS0tLYf//98yLZ5vW//1y6//u//4uuXbtuccyDDz64evvm/3bu3Dnq1au33f12ZGuz7rPPPnkzvfHGG7Fu3bpo06ZNdUTdfPvkk0+qP+dx82N27tw573itW7eOffbZZ6fm2dr9IyK6dOlSHYnffPPNyLIsLr300i3mmThxYkTEVj97clt29vltyymnnBL9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RERZWVm88MILcd1118XNN99c5MmAmuZ8FNhTnI9SCOejNcNnBtZCjRo1irKyspg/f371WlVVVcyfP9974YEakWVZjB49Oh544IF48skn48ADDyz2SNRBVVVVUVlZWewxgN3A+SiwuzkfpSY4H/1yXBlYS11wwQUxcuTIOPzww6NXr14xderUqKioiDPPPLPYo1ELffLJJ/Hmm29W/7x8+fJYunRptGzZMg444IAiTkZtNWrUqJg1a1Y89NBD0bx581i5cmVERJSWlkaTJk2KPB210YQJE2Lo0KFxwAEHxMcffxyzZs2Kp556KubMmVPs0YDdxPkohXJOSiGcj1Io56M1J5dlWVbsIdi66dOnx1VXXRUrV66Mww47LKZNmxa9e/cu9ljUQk899VQcddRRW6yPHDkyZs6cuecHotbL5XJbXb/99tujvLx8zw5DnXDWWWfF/Pnz47333ovS0tI49NBD48ILL4zvfve7xR4N2I2cj1II56QUwvkohXI+WnPEQAAAAABIhM8MBAAAAIBEiIEAAAAAkAgxEAAAAAASIQYCAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJAIMRAAAAAAEvH/AIQkWF9ePsqIAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "vmp_agents = agents = Agent(\n", " A=A,\n", @@ -352,7 +274,8 @@ " action_selection=\"deterministic\",\n", " sampling_mode=\"full\",\n", " inference_algo=\"vmp\",\n", - " num_iter=16\n", + " num_iter=16,\n", + " apply_batch=False\n", ")\n", "\n", "vmp_obs = [jnp.moveaxis(obs[0], 0, 1)]\n", From cb78e183ab27b07e0bfa194f6a19b4c62646d11c Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Fri, 20 Sep 2024 12:25:01 +0200 Subject: [PATCH 156/196] fix Graph Worlds demo --- examples/envs/graph_worlds_demo.ipynb | 29 +++++++++++++++++---------- pymdp/jax/envs/env.py | 8 ++++---- pymdp/jax/envs/rollout.py | 10 ++++----- 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/examples/envs/graph_worlds_demo.ipynb b/examples/envs/graph_worlds_demo.ipynb index 13060c23..aacd9475 100644 --- a/examples/envs/graph_worlds_demo.ipynb +++ b/examples/envs/graph_worlds_demo.ipynb @@ -30,12 +30,12 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [ { "data": { - "image/png": "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Vq42ZJwsd/GNo+CMTq+dJ8kkWSr27r/D6dKGjJPKyM71UFIA3qqgoEBPP/207rjjDrVt21ZpaWn64x//aHQsAPA6flsol6dkymIuf0Ph01/Pk7PwrOr89g5ZwiMqfGyL2aRlyaz6BvzZpk2b1KFDB82fP18zZ87UF198oauvvtroWADglfy2UCbuyS53Olm4f5Pyd/5HljoRavD7xyp1bIfTpcS92e5GBOCF7Ha7Jk+erE6dOql27dratGmTnn76abYDAoBy+OW/kHnFdmWeKijzcWdJoXK++JskKaLnkzLXCq/0OTJzCpRfbK9yRgDeZ9++feratateeeUVvfDCC0pOTlbr1q2NjgUAXs8vC+WhnHyVtxTnh3VL5DibrbAbblVYi05VOodL0sGc/Cq9FoB3cblcWrBggX7729/q+++/1/r16/X6668rJCTE6GgA4BP8slCWlLNNUGnOYeVu/pfMteooooe12s4DwDdkZ2erT58+Gjp0qPr27autW7eqS5cuRscCAJ/ilxubhwSV3ZMdeacll1POojwd+Wv8RZ9zbN4TCo66TlcN/muVzwPA+3366acaMmSInE6nVq1apfvvv9/oSADgk/yyETWJDFf567vdZ/rpPAB8T15enqxWq+677z517NhRO3bsoEwCgBv8ckIZHhqk6IgwHbrIwpygBlepwR+GXfD5M7YVchblSZLq3fKwghuWf3vF6MgwhYf65ZcP8GvJycmKj4/XsWPHlJCQoGHDhslkqu4fQQHAv/ltI+rWMkpLUw5dsHVQUL2Gqtex9wXPP5v6sfRToazT9vYyb70oSXI6VC/3sLKzsxUVFeXR3ACqR2lpqV5//XVNnjxZN910kz777DM1b97c6FgA4Bf88i1vSRoQG13uPpRuMVv073kTdc0116hfv35KTEyUH98SHfB5e/bsUZcuXTR58mS98sor+uabbyiTAOBBJpcfN6H4BSlK2p/j0WJpMZvUuWmkZtzfTEuWLFFCQoL27NmjFi1a6PHHH9ejjz6qhg0beux8AKrO5XJpzpw5GjNmjK655hotW7ZMN998s9GxAMDv+HWhPHyqQN2nr1OxB7f3CQ0ya+3ormocESbpx29Y69evV0JCgj744AOZTCY99NBDGj58uG699VauzQIMcvz4cQ0ZMkSff/65nnjiCf35z39WeDgL6QCgOvh1oZSklamZevHDNI8db9oDMerb8eILdk6cOKFFixZp7ty5ysjIUKtWrWS1WjVw4EA1aNDAYxkAlO/DDz/U448/ruDgYC1cuFB33XWX0ZEAwK/5faGUpFmJ6XprzV63jzO2Z0uN6Nbsks9zOp1KTExUQkKCVq1apaCgIP3xj3+U1WrVLbfcwtQSqCZnz57VyJEjtWjRIvXp00dz587lEhQAqAEBUSilHyeVE1bvlN3pqtQ1lRazSUFmkyb1alPmZLI8WVlZevfddzV37lwdOHBAMTExslqtiouLU/369St9PAAXt2HDBg0cOFA5OTmaOXOmHn30UX54A4AaEjCFUvrxmspxq9K0IeOkLGZTucXy3OO3NWuoKX1izl8zWVVOp1NfffWVEhIStHr1aoWGhqpfv36yWq3q2LEj3/iAKiopKdGECRM0bdo0denSRUuWLNF1111ndCwACCgBVSjPSc/K1fKUTCXuzVZmToF+/gUw6cdNy7u1iFJcp2g1i6rr8fMfO3ZMCxcu1Lx585SZmanf/va3slqtGjBggOrW9fz5AH+1c+dOxcXFaefOnZo0aZLGjh0ri8VidCwACDgBWSh/Lr/YroM5+SqxOxUSZFaTyPAauwOOw+HQl19+qYSEBH366aeqXbu2HnnkEVmtVnXo0KFGMgC+yOl0aubMmXrxxRd1/fXXa9myZbrxxhuNjgUAASvgC6W3OHz4sBYsWKD58+fr6NGjuummm2S1WtWvXz/VqVPH6HiA1zhy5IgGDRqkr7/+WqNGjdKUKVNUu3Zto2MBQECjUHoZu92uzz77TAkJCfr8889Vp04dxcXFyWq1ql27dkbHAwy1YsUKPfnkkwoPD9eiRYvUvXt3oyMBAESh9GoHDx7U/PnztWDBAn3//ffq1KmTrFar/vjHPyoszL1FQoAvOX36tEaMGKEVK1aob9++mj17tiIiIoyOBQD4CYXSB5SWluqTTz5RQkKC1qxZo/r162vgwIGyWq1q06aN0fGAavX1119r0KBBys3N1ezZs/XII48YHQkA8CsUSh+zf/9+zZs3TwsXLlR2dra6dOkiq9Wqhx56iOvI4FeKioo0btw4TZ8+Xd26ddPixYvVuHFjo2MBAC6CQumjSkpK9PHHH2vOnDn697//rQYNGmjQoEF6/PHHdcMNNxgdD3DL1q1bFRcXp4yMDL3xxhsaOXKkzGaz0bEAAGWgUPqB9PR0zZ07V++++65ycnLUtWtXWa1WPfDAAwoNDTU6HlBhDodDb731ll5++WW1atVKy5cvV9u2bY2OBQC4BAqlHykuLtaHH36ohIQErVu3Tg0bNjw/tWzevLnR8YByHTx4UAMHDtQ333yjsWPHatKkSfxABAA+gkLpp7777jvNnTtXixcv1unTp/WHP/xBVqtVvXv3VkhIiNHxgPNcLpeWLFmip59+Wg0aNNCSJUvUtWtXo2MBACqBQunnCgsL9cEHHyghIUE2m01RUVEaPHiwhg0bpqZNmxodDwHu5MmTGj58uP75z39q4MCBmjlzpurXr290LABAJVEoA8iOHTs0d+5cLVmyRGfOnFHPnj1ltVp13333KTg42Oh4CDBffPGFHnvsMZWUlCghIUEPPfSQ0ZEAAFXEsskA0rZtW82cOVPHjh3TwoULdebMGT344IO69tpr9fLLL+vQoUNGR0QAKCgo0IgRI3TXXXepXbt2SktLo0wCgI9jQhngtm3bpoSEBC1btkx5eXm66667ZLVadffddysoKMjoePAzqampiouLU2Zmpt566y09+eSTMplMRscCALiJCWWAa9eunWbPnq1jx45p7ty5ys7OVu/evXXddddp4sSJOnLkiNER4Qfsdrtee+01de7cWXXr1tWWLVs0YsQIyiQA+AkmlLjApk2blJCQoPfee0+FhYW69957ZbVadccdd8hisRgdDz4mIyND8fHx+vbbbzVu3Di98sorXLMLAH6GQokynT17Vu+9954SEhK0detWRUdHa9iwYRoyZIiuvPJKo+PBy7lcLs2fP1+jR4/WFVdcoaVLl+qWW24xOhYAoBpQKHFJLpdLqampmjNnjlauXKmSkhL16tVLVqtVPXr04JZ4uEBWVpaGDRumTz75REOHDtX06dNVp04do2MBAKoJhRKV8sMPP2jZsmVKSEjQjh071LRpUw0bNkyPPfaYGjVqZHQ8eIHVq1dr6NChkqT58+erV69eBicCAFQ3CiWqxOVyaePGjUpISND//d//yeFw6P7775fValW3bt2YWgagvLw8jR49WvPnz9e9996r+fPn80MGAAQICiXcdurUKS1dulRz5szR7t271axZM1mtVg0aNEgNGzY0Oh5qwMaNGxUXF6esrCxNnz5dQ4cOZQU3AAQQCiU8xuVyacOGDUpISNAH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", + "image/png": "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AD5l//796tChg5599lk98sgjRscBauRyubRhw4aqSeS+ffvUvHlzxcfHy2azaeDAgWrUqJHRMYF6R6EE4HOSkpK0YsUK7du3r943bAbqqqKiQmlpaXI4HFq0aJEOHjyo1q1ba/jw4RoxYoT69u2rkJAQo2MCDYpCCcDn7N69W126dNGbb76pP/7xj0bHAVRaWqrVq1fL4XBoyZIlys/PV/v27au297n22mtlsViMjgkYhkIJwCfddttt+vrrr7Vr1y5DrggCFBYWavny5XI4HFq+fLmKiorUuXNnjRgxQiNGjNDll1/OHpHAf1EoAfikb775RldccYU++OAD3X777UbHQZDIy8vT0qVL5XA4tGrVKpWVlemKK66omkReeOGFRkcEfBKFEoDPGjx4sH744Qdt3bqVSRDqzY8//qhFixbJ4XDo008/lcvlUs+ePTVixAglJCQoNjbW6IiAz6NQAvBZ6enp6t27t5YuXaqhQ4caHQcBZO/evUpJSdHChQv1xRdfyGq1Ki4uTjabTcOGDdM555xjdETAr1AoAfi066+/Xi6XS59//jlTSpwxt9utb7/9tmp7ny1btig8PFw33nijbDabhg4dqpYtWxodE/BbFEoAPm358uW66aab9Omnn6pPnz5Gx4Efcbvd+vrrr6tK5K5du9S4cWMNHTpUNptNgwcPVuPGjY2OCQQECiUAn+Z2u3X55ZerdevW+vjjj42OAx9XWVmpzz//vKpE7t+/X1FRURo2bJhsNptuuOEGhYeHGx0TCDgUSgA+b/78+Ro1apS++uorXXnllUbHgY8pLy9XamqqFi5cqEWLFunw4cNq06aNEhISZLPZ1Lt3b7aeAuoZhRKAz6usrFSXLl106aWXasGCBUbHgQ8oKSnRxx9/LIfDoaVLl+r48eM6//zzNWLECNlsNl1zzTUym81GxwSCBoUSgF9455139Mc//lHffvutunTpYnQcGOD48eNatmyZHA6HVqxYoRMnTujiiy+WzWbTiBEj1K1bNxZuAQahUALwC2VlZerQoYMGDBigmTNnGh0HDeTw4cNavHixHA6H1qxZo4qKCl1zzTWy2WxKSEhQp06djI4IQBRKAH7k5Zdf1mOPPaY9e/YoJibG6DioJ/v371dKSoocDofS09MlSb169aoqke3atTM4IYDfolAC8BtFRUWKjY3V6NGj9eqr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XK1bt04XXHCB0ZHgA5xOp1atWiW73a4lS5bIbDYrISFBiYmJ6t+/P1dKguEolADgIwoKCtS/f3/t3btXaWlp6tq1q9GR4INyc3OrFvJ8++23iomJ0T333KO7775bsbGxRsdDkKJQAoAPKC4u1uDBg7Vt2zalpqbq8ssvNzoSfJzb7daXX34pu92uefPmqaioSDfccIMSExOVkJDAxvdoUBRKADBYaWmpbr75Zn3xxRdavXq1rr32WqMjwc8UFxdrwYIFstvtSk9PV4sWLXTHHXcoMTGRX07QICiUAGCgiooKjRgxQqtXr9aKFSvUt29foyPBz+3evVszZ87Ue++9p4MHD+ryyy9XYmKi7rjjDvYxRb2hUAKAQZxOp0aPHq1FixZpyZIlGjRokNGREECcTqdWrlwpu92uZcuWyWKxKCEhQUlJSerXrx8LeeBVFEoAMIDL5dI999yjOXPmaMGCBRo+fLjRkRDADh06pFmzZslut+v7779X+/btdc899+iee+5RTEyM0fEQACiUANDA3G63/vSnP+nf//635syZo9tvv93oSAgSbrdbGzZskN1u1/z581VcXKz+/fsrKSlJw4cPV1hYmNER4acolADQgNxutyZOnKiXXnpJdrtdiYmJRkdCkCoqKtKHH36o5ORkffbZZ2rZsqXuuOMOJSUl6dJLLzU6HvwMhRIAGtCTTz6pp59+Wq+99prGjRtndBxAkrRr166qhTw//fSTrrjiCiUlJen2229nIQ9qhUIJAA3k+eef1+OPP67nnntOkyZNMjoO8DsVFRVasWKFkpOTtWzZMoWEhMhmsykxMVFxcXEs5EG1KJQA0ABee+01PfTQQ/rrX/+q6dOnGx0HOK2ffvpJ77//vpKTk7Vr1y6dd955VVfkadeundHx4GMolABQz+x2u+6991498sgj+sc//iGTyWR0JKDW3G631q9fr+TkZM2fP18lJSUaOHCgkpKSFB8fz0IeSKJQAkC9+uCDDzRmzBjdf//9ev311ymT8GuFhYX68MMPZbfbtX79ekVFRWnMmDFKTEzUJZdcYnQ8GIhCCQD1JCUlRbfeeqvGjBmj5ORkzj9DQPn++++VnJys9957T7m5ubrqqquUmJio22+/Xc2bNzc6HhoYhRIA6sHKlSsVHx+vhIQEffDBB7JYLEZHAupFRUWFli9fLrvdruXLlyskJEQjRoxQUlKS+vTpwy9SQYJCCQBe9umnn2rw4MEaMGCAFi5cqJCQEKMjAQ3i4MGDVQt5du/erfPPP79qIc+5555rdDzUIwolAHjRF198oQEDBqhnz55asmSJwsPDjY4ENDi3263PP/9cdrtd//nPf1RaWvqrhTyhoaFGR4SXUSgBwEs2b96sfv366ZJLLtGKFSsUGRlpdCTAcIWFhZo/f76Sk5P1xRdfqFWrVhozZoySkpJ08cUXGx0PXkKhBAAv2LFjh/r27asOHTpo9erVatq0qdGRAJ/z7bffKjk5We+//74OHz6sq6++WklJSRo1apSaNWtmdDx4gEIJAB7KyMhQr1691Lp1a6Wmpqply5ZGRwJ8Wnl5uT766CPZ7XatWLFCYWFhuuWWW5SYmKg+ffqwvZYfolACgAeys7PVq1cvRUZGKi0tTdHR0UZHAvzKjz/+qPfee0/JycnKzMxUhw4dlJiYqLvuuktt27Y1Oh5qiUIJAGfohx9+UO/evSVJ69at44cf4AG326309HQlJyfrww8/VGlpqQYNGqTExETdfPPNLOTxcRRKADgDubm56tOnj4qLi7Vu3TrFxsYaHQkIGAUFBZo/f77sdrs2btyos846S2PHjlViYqK6du1qdDycAoUSAOooPz9f/fr106FDh7Ru3TpdcMEFRkcCAtbOnTurFvIcOXJE3bt3V2JiokaNGsXiNx9CoQSAOigoKNCAAQO0Z88epaWlMS0BGkh5ebmWLl2q5ORkrVy5UmFhYbr11luVlJSkXr16sZDHYBRKAKil4uJiDR48WNu2bdPatWt1xRVXGB0JCEoHDhyouiLPnj171LFjx6qFPG3atGmQDMVlTmXlFavc6VKo1azYqEhFhlkb5LV9EYUSAGqhtLRU8fHxWr9+vVavXq1rr73W6EhA0HO5XEpPT5fdbteCBQtUVlamwYMHKykpSUOHDvX6ZU8zDhVqzsYcpe7KVU5+iU4uUCZJMS0jFNc5Wnd0j9EFrZt49bV9HYUSAE6joqJCI0aM0OrVq7V8+XLFxcUZHQnAbxw/flzz5s2T3W7Xpk2bFB0drbFjxyopKUkXXnihR8fen1+iKSnblZ55RBazSZWu6qvTL/f36thKzyR0U7uWER69tr+gUAJADSorKzV69GilpKRoyZIlGjRokNGRAJzG9u3blZycrFmzZikvL089evRQUlKSRo4cqSZN6jY5nLcpR08u2Smny11jkfwti9kkq9mk6fFdNerqmLr+FfwOhRIAquFyuZSYmKjZs2frww8/VEJCgtGRANRBWVmZli5dKrvdro8//liNGjXSbbfdpqSkJF133XWnXcgzIzVDL67a7XGORwd20ri4wN4NgkIJAKfgdrv14IMP6s0339Ts2bM1evRooyMB8MD+/furrsizb98+derUSYmJibrzzjt1zjnn/O7x8zbl6HHHdq+9/vO2bhoZwJNKCiUA/Ibb7dbEiRP10ksv6Z133lFSUpLRkQB4icvlUlpamux2uxYuXKiKigoNGTJESUlJGjJkiEJCQrQ/v0T9X05TmdP1u+eX/7RHxd+nq2z/DjmP56qypEDmsAiFtemspj1GKLzdxad83TCrWWsm9AnYcyoplADwG08++aSefvppvfrqqxo/frzRcQDUk2PHjmnu3LlKTk7WV199pdatW+vOO+9U5rmDtPVQ6SnPmcxbOUNFW1ae+oAms84a/rgiOvf83V0Ws0k9z4/SrKTu3v5r+AQKJQCc5IUXXtCkSZP03HPPadKkSUbHAdBAtm7dquTkZH2wbK0ib3uu2sflrZyhExkbFXnpQIWfe5FcpUU69tlcOfMPSJIsTaN17p+Sq33+mgm91TE68LYUolACwH/NmDFD48eP17Rp0/T0008bHQeAAaalbNOcL3Pk0qkX7JTu36nQszvIHBJedVv5ob06OPOhqu/PHT9blsjmv3uuxWzS2O7t9VR84F1hy2x0AADwBcnJyRo/frz+8pe/aPr06UbHAWCQdZl51ZZJSQpv1/VXZVKSrC1/fXUeU0jYKZ9b6XIrdXeu5yF9EIUSQNCbO3eu7r33Xt1///168cUXuSYwEKSKypzKyS+p8/NKdq2v+jrs3K4yhzaq9rE5eSUqLnOeUT5fRqEEENRSUlI0duxY3XnnnXr99dcpk0AQy84rVl3PAyz7KVP5q//98zeWELXo/4caH++WlJVXfEb5fFnwXsUcQNBbuXKlRo4cKZvNpnfeeUdmM79jA8Gs/BTbBNWkdP9O5S6YLndZiWS26Kz4iQo7u6PXX8cfUCgBBKVPP/1UCQkJuvHGGzV79mxZrbwdAsEu1Fr7XypP7Nusw46/y11RJllCdNawSYro1MPrr+MveAcFEHQ2bNigoUOH6vrrr9eHH36o0NBQoyMB8AGxUZEySaf92Ltk13odXvKCVOmUKSRcZ42Yqkaxl9XqNUz/fZ1AQ6EEEFQ2b96sQYMG6fLLL9eiRYsUHh5++icBCAqRYVbFtIxQdg0Lc4q//0xHFr8guV2STGp2/e0yWUJUun9n1WPCzukkkzXklM+PiYpQZFjg1a/A+xsBQDV27typgQMHqlOnTvroo48UGRl4UwIAnonrHK1ZG7NPeZUcSTqRuem/ZVKS3DqWOvN3j2l7v13W5q1/d7vFbFJcp2hvxvUZgfchPgCcQkZGhvr376+2bdtq5cqVatq0qdGRAPigO7rHVFsmPVXpcmtMj5h6ObbRuFIOgICXnZ2tXr16KTIyUmlpaYqODswJAQDvGGvfqPV787xaLAP9Wt5MKAEEtB9//FH9+vVTSEiI1qxZQ5kEcFrPJHST1ezdPWmtZpOeSejm1WP6EgolgIB1+PBh9e/fX+Xl5frkk0/Utm1boyMB8APtWkZoupevt/10fFe1axnh1WP6EgolgIB09OhRDRgwQPn5+frkk08UGxtrdCQAfmTU1TF6dGAnrxxr4sDOGnl1YJ47+QvOoQQQcAoKCjRgwADt2bNHn376qS6++GKjIwHwU/M25ejJJTvldLnrdE6lxWyS1WzS0/FdA75MShRKAAGmpKREgwYN0tatW7V27VpdeeWVRkcC4Of255doSsp2pWcekcVsqrFY/nJ/r46t9ExCt4D+mPtkFEoAAaOsrEzx8fH6/PPPtWrVKvXs2dPoSAACSMahQs3ZmKPU3bnKySv51RV1TPp50/K4TtEa0yNGHaObGBXTEBRKAAGhoqJCt9xyi1atWqXly5crLi7O6EgAAlhxmVNZecUqd7oUajUrNioyIK+AU1sUSgB+r7KyUnfccYccDocWL16swYMHGx0JAIJK8FZpAAHB5XLp3nvv1YIFC/Sf//yHMgkABqBQAvBbbrdb48eP13vvvafZs2fLZrMZHQkAghKFEoBfcrvdeuyxx/TGG2/o7bff1ujRo42OBABBi43NAfil6dOn68UXX9Q///lP3XvvvUbHAYCgRqEE4HdeeOEFTZ8+Xc8++6weeugho+MAQNBjlTcAvzJjxgyNHz9eU6dO1d/+9jej4wAARKEE4EeSk5OVlJSkCRMm6KWXXpLJZDI6EgBAFEoABjiTDYHnzZun0aNH67777tMbb7xBmQQAH0KhBNAgqi5ZtitXOfmnuGRZywjFdY7WHd1jdEHrX1+ybNGiRbrlllt0xx13aObMmTKbOf0bAHwJhRJAvdqfX6IpKduVnnlEFrNJla7q33J+ub9Xx1Z6JqGb2rWM0Mcff6z4+HgNGzZMH3zwgaxWdjsDAF9DoQRQb+ZtytGTS3bK6XLXWCR/y2I2yWo2aXTnED33h5vVv39/LVy4UKGhofWYFgBwpiiUAOrFjNQMvbhqt8fHifrhc33+1l8VHh7uhVQAgPrAiUgAvG7ephyvlElJymt7nRZvz/XKsQAA9YMJJQCv2p9fov4vp6nM6frdfZUnClWwcaHKfvhe5Qcz5HaWSZIiL75BrYZOqPaYYVaz1kzoo3YtI+otNwDgzDGhBOBVU1K2y1nN+ZKVBYdVsGGByvbvqCqTteF0uTUlZbu3IgIAvIxCCcBrMg4VKj3zSPULcCxWhbW7WE173KLISwbU+riVLrfSM48oM7fQS0kBAN5EoQTgNXM25shirn7D8dBWMTr7jufUou/dCjvngjod22I2afaGHE8jAgDqAYUSgNek7sqt0/ZAdVHpcit1N4tzAMAXUSgBeEVRmVM5+SX1+ho5eSUqLnPW62sAAOqOQgnAK7LzilXfW0a4JWXlFdfzqwAA6opCCcAryk+xTZA/vw4AoPYolAC8ItTaMG8nDfU6AIDa450ZgFfERkWq+vXd3mH67+sAAHyL1egAAAJDZJhVMS0jlF3DwhxXRalO7PlKklR+aG/V7c6CXBV//5kkKeycTrI2iz7l82OiIhQZxtsWAPga3pkBeE1c52jN2phd7dZBruLjOrLoud/dXpazXWU5P18JJ2rIn9X4kv6/e4zFbFJcp1MXTQCAsfjIG4DX3NE9pl73oRzTI6Zejg0A8IzJ7XbX904fAILIWPtGrd+b59ViaTGb1PP8KM1K6u61YwIAvIcJJQCveiahm6w1XH7xTFjNJj2T0M2rxwQAeA+FEoBXtWsZoenxXb16zKfju6pdywivHhMA4D0USgBeN+rqGD06sJNXjjVxYGeNvJpzJwHAl3EOJYB6M29Tjp5cslNOl7tO51RazCZZzSY9Hd+VMgkAfoBCCaBe7c8v0ZSU7UrPPCKL2VRjsfzl/l4dW+mZhG58zA0AfoJCCaBBZBwq1JyNOUrdnaucvBKd/MZj0s+blsd1itaYHjHqGN3EqJgAgDNAoQTQ4IrLnMrKK1a506VQq1mxUZFcAQcA/BiFEgAAAB5hlTcAAAA8QqEEAACARyiUAAAA8AiFEgAAAB6hUAIAAMAjFEoAAAB4hEIJAAAAj1AoAQAA4BEKJQAAADxCoQQAAIBHKJQAAADwCIUSAAAAHqFQAgAAwCMUSgAAAHiEQgkAAACPUCgBAADgEQolAAAAPEKhBAAAgEcolAAAAPAIhRIAAAAeoVACAADAIxRKAAAAeIRCCQAAAI9QKAEAAOARCiUAAAA8QqEEAACARyiUAAAA8AiFEgAAAB6hUAIAAMAjFEoAAAB4hEIJAAAAj1AoAQAA4BEKJQAAADxCoQQAAIBHKJQAAADwCIUSAAAAHqFQAgAAwCP/D/GKC7WKCXFuAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -62,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -78,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -106,7 +106,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -124,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -133,7 +133,7 @@ "dict_keys(['action', 'env', 'observation', 'qpi', 'qs'])" ] }, - "execution_count": 7, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -151,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -177,16 +177,16 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 10, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, @@ -217,6 +217,13 @@ "# and object location beliefs as greyscale intensity\n", "ax.imshow(result[\"qs\"][1][agent_idx, :, :].T, cmap=\"gray_r\", vmin=0.0, vmax=1.0)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/pymdp/jax/envs/env.py b/pymdp/jax/envs/env.py index d8e49778..81c3a062 100644 --- a/pymdp/jax/envs/env.py +++ b/pymdp/jax/envs/env.py @@ -59,15 +59,15 @@ def step(self, rng_key: PRNGKeyArray, actions: Optional[Array] = None): state_probs = jtu.tree_map(_select_probs, self.params["B"], self.dependencies["B"], actions) keys = list(jr.split(key_state, len(state_probs))) - new_states = jtu.tree_map(cat_sample, keys, state_probs) + new_state = jtu.tree_map(cat_sample, keys, state_probs) else: - new_states = state + new_state = state - _select_probs = partial(select_probs, new_states) + _select_probs = partial(select_probs, new_state) obs_probs = jtu.tree_map(_select_probs, self.params["A"], self.dependencies["A"]) keys = list(jr.split(key_obs, len(obs_probs))) new_obs = jtu.tree_map(cat_sample, keys, obs_probs) new_obs = jtu.tree_map(lambda x: jnp.expand_dims(x, -1), new_obs) - return new_obs, tree_at(lambda x: (x.states), self, [new_states]) + return new_obs, tree_at(lambda x: (x.state), self, new_state) diff --git a/pymdp/jax/envs/rollout.py b/pymdp/jax/envs/rollout.py index 507674b1..3eb394c9 100644 --- a/pymdp/jax/envs/rollout.py +++ b/pymdp/jax/envs/rollout.py @@ -7,7 +7,7 @@ from pymdp.jax.envs.env import PyMDPEnv -def rollout(agent: Agent, env: PyMDPEnv, num_timesteps: int, rng_key: jr.PRNGKey, policy_search = None): +def rollout(agent: Agent, env: PyMDPEnv, num_timesteps: int, rng_key: jr.PRNGKey, policy_search=None): """ Rollout an agent in an environment for a number of timesteps. @@ -39,9 +39,11 @@ def rollout(agent: Agent, env: PyMDPEnv, num_timesteps: int, rng_key: jr.PRNGKey batch_size = agent.batch_size if policy_search is None: + def default_policy_search(agent, qs, rng_key): qpi, _ = agent.infer_policies(qs) return qpi, None + policy_search = default_policy_search def step_fn(carry, x): @@ -56,11 +58,9 @@ def step_fn(carry, x): # so we don't need past actions or qs_hist qs = agent.infer_states( observations=observation_t, - past_actions=None, empirical_prior=empirical_prior, - qs_hist=None, ) - + rng_key, key = jr.split(rng_key) qpi, _ = policy_search(agent, qs, key) @@ -72,7 +72,7 @@ def step_fn(carry, x): rng_key = keys[0] observation_t, env = env.step(rng_key=keys[1:], actions=action_t) - empirical_prior, qs = agent.infer_empirical_prior(action_t, qs) + empirical_prior, qs = agent.update_empirical_prior(action_t, qs) carry = { "action_t": action_t, From c9031f9640933af7da916d23d62d36e001bb1739 Mon Sep 17 00:00:00 2001 From: conorheins Date: Fri, 20 Sep 2024 12:50:18 +0200 Subject: [PATCH 157/196] changes to `control.py`: - moved `t` indexing in `compute_expected_utility` function to end of argument list, default to `0` - added missing arguments `A_dependencies` and `B_dependencies` into calls of parameter info gain functions --- pymdp/jax/control.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pymdp/jax/control.py b/pymdp/jax/control.py index 3f42ca9f..122ee911 100644 --- a/pymdp/jax/control.py +++ b/pymdp/jax/control.py @@ -215,7 +215,7 @@ def compute_info_gain_for_modality(qo_m, A_m, m): return jtu.tree_reduce(lambda x,y: x+y, info_gains_per_modality) -def compute_expected_utility(t, qo, C): +def compute_expected_utility(qo, C, t=0): util = 0. for o_m, C_m in zip(qo, C): @@ -300,10 +300,10 @@ def scan_body(carry, t): info_gain = compute_info_gain(qs_next, qo, A, A_dependencies) if use_states_info_gain else 0. - utility = compute_expected_utility(qo, C) if use_utility else 0. + utility = compute_expected_utility(qo, C, t) if use_utility else 0. - param_info_gain = calc_pA_info_gain(pA, qo, qs_next) if use_param_info_gain else 0. - param_info_gain += calc_pB_info_gain(pB, qs_next, qs, policy_i[t]) if use_param_info_gain else 0. + param_info_gain = calc_pA_info_gain(pA, qo, qs_next, A_dependencies) if use_param_info_gain else 0. + param_info_gain += calc_pB_info_gain(pB, qs_next, qs, B_dependencies, policy_i[t]) if use_param_info_gain else 0. neg_G += info_gain + utility + param_info_gain @@ -331,7 +331,7 @@ def scan_body(carry, t): info_gain = compute_info_gain(qs_next, qo, A, A_dependencies) if use_states_info_gain else 0. - utility = compute_expected_utility(t, qo, C) if use_utility else 0. + utility = compute_expected_utility(qo, C, t) if use_utility else 0. inductive_value = calc_inductive_value_t(qs_init, qs_next, I, epsilon=inductive_epsilon) if use_inductive else 0. From 5a092299fc77800ad29f10c6b2cd59a0c2609954 Mon Sep 17 00:00:00 2001 From: conorheins Date: Fri, 20 Sep 2024 12:50:47 +0200 Subject: [PATCH 158/196] fixed deprecated syntax of `Agent.infer_states` in `mcts.py` and `si.py` --- pymdp/jax/planning/mcts.py | 2 +- pymdp/jax/planning/si.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pymdp/jax/planning/mcts.py b/pymdp/jax/planning/mcts.py index 01f357ee..8eddc458 100644 --- a/pymdp/jax/planning/mcts.py +++ b/pymdp/jax/planning/mcts.py @@ -81,7 +81,7 @@ def recurrent_fn(agent, rng_key, action, embedding): discount *= get_prob_single_modality(o_m, qo_m, agent.onehot_obs) obs.append(jnp.expand_dims(o_m, 1)) - qs_next_posterior = agent.infer_states(obs, None, qs_next_pi, None) + qs_next_posterior = agent.infer_states(obs, qs_next_pi) # remove time dimension # TODO: update infer_states to not expand along time dimension when needed qs_next_posterior = jtu.tree_map(lambda x: x.squeeze(1), qs_next_posterior) diff --git a/pymdp/jax/planning/si.py b/pymdp/jax/planning/si.py index af322fbf..d87cc193 100644 --- a/pymdp/jax/planning/si.py +++ b/pymdp/jax/planning/si.py @@ -214,7 +214,7 @@ def expand_node( stacked_observations = stack_leaves(observations) stacked_qs_priors = stack_leaves(qs_priors) - qs_next = vmap(agent.infer_states)(stacked_observations, None, stacked_qs_priors, None) + qs_next = vmap(agent.infer_states)(stacked_observations, stacked_qs_priors) for idx, observation in enumerate(observations): observation_node = { From c4e05ff7cf184de3f30da07228fbe7d873b2a238 Mon Sep 17 00:00:00 2001 From: conorheins Date: Fri, 20 Sep 2024 13:07:14 +0200 Subject: [PATCH 159/196] fixes to `sparse_benchmark.ipynb` notebook: - changed deprecated naming of `infer_empirical_prior()` to `update_empirical_prior()` - changed indexing into `smoothed_dense` tuple during output-plotting, to respect the new output structure of `smoothing_ovf` function --- examples/sparse/sparse_benchmark.ipynb | 86 +++----------------------- 1 file changed, 10 insertions(+), 76 deletions(-) diff --git a/examples/sparse/sparse_benchmark.ipynb b/examples/sparse/sparse_benchmark.ipynb index 6abe40c8..32cd71c3 100644 --- a/examples/sparse/sparse_benchmark.ipynb +++ b/examples/sparse/sparse_benchmark.ipynb @@ -161,7 +161,7 @@ " first_obs = jtu.tree_map(lambda x: jnp.moveaxis(x[:t+1], 0, 1), obs)\n", " beliefs = agents.infer_states(first_obs, past_actions=None, empirical_prior=prior, qs_hist=qs_hist)\n", " actions = jnp.broadcast_to(agents.policies[0, 0], (n_batch, 2))\n", - " prior, qs_hist = agents.infer_empirical_prior(actions, beliefs)\n", + " prior, qs_hist = agents.update_empirical_prior(actions, beliefs)\n", " action_hist.append(actions)\n", "\n", " beliefs = jtu.tree_map(lambda x, y: jnp.concatenate([x[:, None], y], 1), agents.D, beliefs)\n", @@ -202,30 +202,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'smoothed beliefs sparse')" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqIAAAF2CAYAAAC1RvpXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAvAklEQVR4nO3deXRTdf7/8Vfa0nQPIJS27ILIIotWARFapUoHFcURcERl+yooFUXcHf3hMmNFVBSQ1a+KzCjjAuj41WGz4uiAbFZHHRQVGUakCEiBAsE2n98fnmYI3ZKS9nNbno9zeg69ubl535u8mleT2+AyxhgBAAAAtSzC9gAAAAA4OVFEAQAAYAVFFAAAAFZQRAEAAGAFRRQAAABWUEQBAABgBUUUAAAAVlBEAQAAYAVFFAAAAFZQRIPw/fffy+Vy6cUXX/Qve/DBB+VyuewNFaJg5z3//PN1xhlnhPW227Rpo1GjRvm/f//99+VyufT+++9Xa3vr169Xnz59FB8fL5fLpfz8/LDMCWeqicdkRVwulx588MFK1yl9/L7++uthu90XX3xRLpdL33//vX/Z+eefr/PPP79a2ysuLtZdd92lli1bKiIiQoMHDw7LnMcq7+ci6iYyFrrayNjJgiKq/z5Ay/u65557gt7Oo48+qqVLl9bcoNAvv/yioUOHau/evZo2bZoWLlyo1q1b2x4LJ2jHjh168MEH+aUiTJ5//nlNnTpVQ4YM0YIFC3TbbbfZHgmWkbHwImPhE2V7ACd5+OGH1bZt24BlZ5xxhlq3bq3Dhw+rQYMGlV7/0Ucf1ZAhQ/jNqAoZGRk6fPiwoqOjQ77ut99+q23btmn+/Pm6/vrra2A62LBjxw499NBDatOmjXr06GF7HEdYvnx5ta/73nvvqXnz5po2bVoYJ0JdRsbKImPOQBE9xsCBA3X22WeXe1lMTEwtT/OrI0eOKDo6WhER9efF64iIiGofz127dkmSGjZsGMaJAOepzi9qpXbt2kVGgCqQsbIOHTqkuLi4Wr3N+tNualAw50K5XC4VFRVpwYIF/rf1jz0v8ocfftCYMWPUrFkzud1udenSRc8//3zANkrPi1m0aJHuv/9+NW/eXHFxcdq/f78k6eOPP9ZvfvMbeTwexcXFKTMzUx999FGZWT788EOdc845iomJUbt27TR37tyQ93njxo3q06ePYmNj1bZtW82ZM6fMOl6vV5MnT1b79u3ldrvVsmVL3XXXXfJ6vZVuu6JzRKvav1GjRikzM1OSNHToULlcLv/5PTt37tTo0aPVokULud1upaam6vLLLw84H+hkceDAAU2cOFFt2rSR2+1WcnKyLrroIm3atMm/Tuk5YZ999pkyMzMVFxen9u3b+8/JWr16tXr16qXY2FidfvrpWrlyZZnb+eSTTzRw4EAlJSUpISFBWVlZWrt2bZn1vvvuOw0dOlSNGzdWXFycevfurf/7v//zX/7+++/rnHPOkSSNHj3an5/j8/bll1/qggsuUFxcnJo3b67HH3+8zG0F+5j0er267bbb1LRpUyUmJuqyyy7Tf/7zn+APsqSSkhLdd999SklJUXx8vC677DJt3769zHrB5vZ45Z2/VtX+lf6sysvL0xdffOE/lqVZW7RokdLT05WYmKikpCR17dpVzzzzTJWz7Nu3T6NGjZLH41HDhg01cuRI7du3r9x1N2/erCFDhqhx48aKiYnR2WefrbfeeitgndLToT766CNNmjRJTZs2VXx8vK644gr99NNPAetu2LBB2dnZatKkif/n0ZgxYwLW8fl8evrpp9WlSxfFxMSoWbNmGjdunH7++ecq9606yBgZC3fGqrpeaWY++OADjRs3TqeccoqSkpI0YsSIMo/zN998U5dcconS0tLkdrvVrl07PfLIIyopKSmz/2eccYY2btyojIwMxcXF6b777pNUy7kzMC+88IKRZFauXGl++umngC9jjNm6dauRZF544QX/dSZPnmyOPXwLFy40brfb9OvXzyxcuNAsXLjQ/OMf/zDGGLNz507TokUL07JlS/Pwww+b2bNnm8suu8xIMtOmTfNvIy8vz0gynTt3Nj169DBPPfWUyc3NNUVFRWbVqlUmOjranHvuuebJJ58006ZNM926dTPR0dHm448/9m/js88+M7GxsaZVq1YmNzfXPPLII6ZZs2amW7duJpi7OzMz06SlpZnk5GRz8803m+nTp5u+ffsaSeZ///d//euVlJSYAQMGmLi4ODNx4kQzd+5cc/PNN5uoqChz+eWXB2yzdevWZuTIkWX2My8vz78smP37xz/+Ye677z4jydxyyy1m4cKFZvny5cYYY/r06WM8Ho+5//77zXPPPWceffRRc8EFF5jVq1dXuc/1zfDhw010dLSZNGmSee6558yUKVPMoEGDzJ/+9Cf/OqX3c8uWLc2dd95pZsyYYTp37mwiIyPNokWLTEpKinnwwQfN008/bZo3b248Ho/Zv3+///qff/65iY+PN6mpqeaRRx4xjz32mGnbtq1xu91m7dq1/vV27txpmjVrZhITE83vf/9789RTT5nu3bubiIgIs3jxYv86Dz/8sJFkxo4d68/Pt99+W2bWW2+91cyaNcv079/fSDLvvPOO/7ZCeUxee+21RpIZPny4mTlzpvntb3/rz8jkyZMrPb6lj9+uXbuabt26maeeesrcc889JiYmxnTo0MEcOnTIv26wuS39GbR169aA+ygzMzOk/Tt48KBZuHCh6dixo2nRooX/WO7cudMsX77cSDJZWVnm2WefNc8++6y5+eabzdChQyvdX5/PZzIyMkxERIQZP368mTFjhunfv7//eB37c/Hzzz83Ho/HdO7c2UyZMsXMnDnTZGRkGJfL5b+/j93fM8880/Tv39/MmDHD3H777SYyMtIMGzbMv15BQYFp1KiR6dChg5k6daqZP3+++f3vf286deoUMOP1119voqKizA033GDmzJlj7r77bhMfH2/OOeccc/To0Ur3rzrIGBkLZ8aCuV7p/F27djX9+vUz06dPNzk5OSYiIsJkZGQYn8/nX3fw4MFm2LBhZurUqWb27Nlm6NChRpK54447Am43MzPTpKSkmKZNm5oJEyaYuXPnmqVLl9Z67iii5r93cHlfxgRXRI0xJj4+PqBwlfqf//kfk5qaanbv3h2w/He/+53xeDz+UJWG79RTTw0Ims/nM6eddprJzs4OeLAdOnTItG3b1lx00UX+ZYMHDzYxMTFm27Zt/mVffvmliYyMDLqISjJPPvmkf5nX6zU9evQwycnJ/gfXwoULTUREhPn73/8ecP05c+YYSeajjz7yL6uqiIayf6XXfe211/zLfv75ZyPJTJ06tcr9Oxl4PB6Tk5NT6Tql9/PLL7/sX7Z582YjyURERAQ80S1btqzM43/w4MEmOjra/0RmjDE7duwwiYmJJiMjw79s4sSJRlLA4+TAgQOmbdu2pk2bNqakpMQYY8z69evL3Mbxs7700kv+ZV6v16SkpJgrr7zSvyzYx2R+fr6RZMaPHx+w3vDhw0N6kmzevHlAcXj11VeNJPPMM88YY0J7XAfzJBlK5jIzM02XLl0C1rv11ltN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LJTrbdmyRRdccIH/+4MHD+rHH3/UxRdfLOnXT0jYs2ePFi9erIyMDP96W7duDXlfait3nCMaRvHx8WU+0iQyMlJXXnml3njjDX3++edlrnP8R5WUJz09Xe3atdMTTzyhgwcPVriNyMhIZWdna+nSpfr3v//tv/xf//qXli1bFvR+FBcXB3zk09GjRzV37lw1bdpU6enpkn59ReCHH37Q/Pnzy1z/8OHDKioqCvr2gt2/ihw6dEhHjhwJWNauXTslJibW6qvETlBSUlLmrZfk5GSlpaWF7VhERkZqwIABevPNNwPeDiooKNDLL7+svn37KikpSZJ08cUXa926dVqzZo1/vaKiIs2bN09t2rRR586dJcn/S09FHwkUjGAfk6VFYfr06QHrPP300yHd3ksvvaQDBw74v3/99df1448/+rd/oo/r451o5vbs2RPwfUREhP8JvbLHxsUXX6zi4mLNnj3bv6ykpEQzZswIWC85OVnnn3++5s6dqx9//LHMdkLdX+nXt6qPf5Ww9JWv0pmHDRumkpISPfLII2WuX1xcfEKPqfKQMTJWkepmLJTrzZs3L+C8zdmzZ6u4uNh/TEpf2T42N0ePHtWsWbMqnf1YtZ07XhENo/T0dK1cuVJPPfWU0tLS1LZtW/Xq1UuPPfaY8vLy1KtXL91www3q3Lmz9u7dq02bNmnlypXau3dvpduNiIjQc889p4EDB6pLly4aPXq0mjdvrh9++EF5eXlKSkrSX//6V0nSQw89pL/97W/q16+fxo8fr+LiYs2YMUNdunQJONenMmlpaZoyZYq+//57dejQQX/5y1+Un5+vefPm+U+Svu666/Tqq6/qxhtvVF5ens477zyVlJRo8+bNevXVV7Vs2bKgz7cNZf/K8/XXXysrK0vDhg1T586dFRUVpSVLlqigoCDgDwVOBgcOHFCLFi00ZMgQde/eXQkJCVq5cqXWr1+vJ598Mmy384c//EErVqxQ3759NX78eEVFRWnu3Lnyer0Bnz14zz336JVXXtHAgQN1yy23qHHjxlqwYIG2bt2qN954w/8fNbRr104NGzbUnDlzlJiYqPj4ePXq1avM+dKVCfYx2aNHD1199dWaNWuWCgsL1adPH61atUrffPNNSMegcePG6tu3r0aPHq2CggI9/fTTat++vW644QZJJ/64ru7+VeT666/X3r171b9/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eGStYnUla3X+HNHo6Gilp6dr1apV/mU+n0+rVq2yfl6GkxhjdPPNN2vJkiV677331LZtW9sjleHz+eT1eq3cdlZWlv75z38qPz/f/3X22WfrmmuuUX5+viPCahtZq1pdyJlE1pyOrFWNrFWtrmStzr8iKkmTJk3SyJEjdfbZZ6tnz556+umnVVRUpNGjR1ub6eDBg/rmm2/832/dulX5+flq3LixWrVqVevz5OTk6OWXX9abb76pxMRE7dy5U5Lk8XgUGxtb6/Pce++9GjhwoFq1aqUDBw7o5Zdf1vvvv69ly5bV+iySlJiYWObcovj4eJ1yyinWzzlyEqdljZxVjazVTWStcmStanUma5b/aj9sZsyYYVq1amWio6NNz549zdq1a63Ok5eXZySV+Ro5cqSVecqbRZJ54YUXrMwzZswY07p1axMdHW2aNm1qsrKyzPLly63MUhEnfsyFEzgpa+SsamSt7iJrFSNr1ePErLmMMabG2y4AAABwnDp/jigAAADqJoooAAAArKCIAgAAwAqKKAAAAKygiAIAAMAKiigAAACsoIgCAADACoooAAAArKCIAgAAwAqKKAAAAKygiAIAAMAKiigAAACs+P/KiBcpA9JJYgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "res, (beliefs, smoothed_dense, smoothed_sparse) = experiment([2, 3])\n", "\n", @@ -235,10 +214,10 @@ "sns.heatmap(beliefs[1].mT, ax=axes[1, 0], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", "\n", "sns.heatmap(smoothed_dense[0][0].mT, ax=axes[0, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", - "sns.heatmap(smoothed_dense[1][0].mT, ax=axes[1, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(smoothed_dense[0][1].mT, ax=axes[1, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", "\n", "sns.heatmap(smoothed_sparse[0][0].mT, ax=axes[0, 2], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", - "sns.heatmap(smoothed_sparse[1][0].mT, ax=axes[1, 2], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(smoothed_sparse[0][1].mT, ax=axes[1, 2], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", "\n", "axes[0, 0].set_title('Filtered beliefs')\n", "axes[0, 1].set_title('smoothed beliefs dense')\n", @@ -254,43 +233,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Step 1\n", - "\t [1000, 3000]\n", - "\t {'time_dense': 0.582852840423584, 'size_dense': np.int64(10000000), 'time_sparse': 2.3802099227905273, 'size_sparse': np.int64(16000)}\n", - "Step 2\n", - "\t [2000, 6000]\n", - "\t {'time_dense': 0.9382140636444092, 'size_dense': np.int64(40000000), 'time_sparse': 2.4110450744628906, 'size_sparse': np.int64(32000)}\n", - "Step 3\n", - "\t [3000, 9000]\n", - "\t {'time_dense': 1.219473123550415, 'size_dense': np.int64(90000000), 'time_sparse': 1.3460800647735596, 'size_sparse': np.int64(48000)}\n", - "Step 4\n", - "\t [4000, 12000]\n", - "\t {'time_dense': 2.109867811203003, 'size_dense': np.int64(160000000), 'time_sparse': 2.434711217880249, 'size_sparse': np.int64(64000)}\n", - "Step 5\n", - "\t [5000, 15000]\n", - "\t {'time_dense': 3.250096082687378, 'size_dense': np.int64(250000000), 'time_sparse': 2.4678478240966797, 'size_sparse': np.int64(80000)}\n", - "Step 6\n", - "\t [6000, 18000]\n", - "\t {'time_dense': 4.432005167007446, 'size_dense': np.int64(360000000), 'time_sparse': 1.4304497241973877, 'size_sparse': np.int64(96000)}\n", - "Step 7\n", - "\t [7000, 21000]\n", - "\t {'time_dense': 7.202724933624268, 'size_dense': np.int64(490000000), 'time_sparse': 2.5208442211151123, 'size_sparse': np.int64(112000)}\n", - "Step 8\n", - "\t [8000, 24000]\n", - "\t {'time_dense': 9.165987014770508, 'size_dense': np.int64(640000000), 'time_sparse': 2.3921358585357666, 'size_sparse': np.int64(128000)}\n", - "Step 9\n", - "\t [9000, 27000]\n", - "\t {'time_dense': 13.732616186141968, 'size_dense': np.int64(810000000), 'time_sparse': 1.724376916885376, 'size_sparse': np.int64(144000)}\n" - ] - } - ], + "outputs": [], "source": [ "n_steps = 10\n", "\n", @@ -306,20 +251,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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J5EqK6xt27b0yy+/kEgkok2bNpVbTl+pqk4169atI3t7e60pA/jI+PHjacSIEWRvb08TJkzQ2nf8+HFq27YtLzP9NFOPfX19aciQIdy+goICysvL47pz9u3bx9vMTTVKpZImTpxIffv25bbdu3eP4uLiuDXRLl26RMOHDydnZ2feZeJqTuXRsGFDGjZsGEkkEmrcuHGZZS/4nImrSX5+PkVGRtK7775Lz58/p/T0dIqIiKBFixZxZeLi4nhbp2ry8vIoIiKCYmNj6dKlS/TXX39Rr169yNnZmRsbe/HiRRo+fDgvs8jrEr00S0REiYmJ1Lt375caprVr15JAIOBWRObb4N+q6NyxYwcJBAISCARaRsnQdF69epW++uorsre359JT+aRRjTrmcePG0aeffkoHDhwgc3NzbsDk8ePHSSKR0J07d2jLli00ePBg+vLLL+nIkSNax+szBQUF5OHhQeHh4dy22bNn08CBAykmJoZGjBjBGYl//vmHtzqJVHH26NGDli9fTkREY8aModDQUHJyciInJydavnw5KRQKSk9PpzNnztD48eNp/vz5dOLECe54fSc3N5fs7e1p6NCh3La1a9eSu7s7/f3331plb926xev6JFIZoYiICLp//z63bdiwYbRgwQL68ccfKT4+noiIMjIy6PTp07ysUyKiY8eOUbt27bSWJ9m/fz8JBAJydHTk7iePHz/m7blbV+itWSKq2g122bJltHfvXm47Hyu3Ip3qJ76LFy9SYGCgVsuZoemUyWR09OhR+vjjj7ksOb7qVNfb1q1b6ZNPPiEioi1btpClpSW1bNmS3N3d6datW+UeyyfNQ4cOJRcXFzp69CjFxsZSSEgIff311zR58mRq1qwZ+fj4kFgsLvdYfdepGVt+fj716NGDdu7cSWvWrKGwsDA6c+YMPXjwgL744gtydnam33//vcLP4YPOP//8k77++mutfdeuXaOGDRvSf/7zHyLid8Zxafbt20cmJib04MEDIiI6dOgQiUQi6tixIzVv3pzq1aunNbedJnzSunr1arK3t9dKjrpx4waNHTuWBg4cSPXr16cXL16UeyyfdNYFem2WiCq+wZbONuJ7xVakk0iVuqt+AjJknXK5nHJzc4mIXzrVmX6ls2tOnz5NoaGhXHbjW2+9RSYmJtSjRw+uDJ+yGtU6CwsLuW3Dhg0jgUBA0dHRdPfuXW77jRs3KDg4mD7++GNe1SVR+fU5atQoaty4MX3yySf0888/a5WfMGECNWrUqMw1Sd9R6yTSvp5q1tVXX31Frq6u9Pz58zqPryYpnY1LRNS6dWuqV68evfXWWyQUCmn58uXcgsBff/01OTs7827B2NI6b926RREREfTNN99QdnY2ZWZmUuPGjen9998niURCYWFh9H//939ExFqRXobemyWil7e8GAqVGQk1hnBCV0UnX9i2bRsJBALav38/EZXUj1wup3v37lGLFi2IiGjRokVkaWlJU6dOJVtbW/rggw90FvOrUFqnpmGaNm0azZ8/v4wp6t69u1a3Dh8orVPdmnL//n1q1qwZCQQCWrBgARERlyq/f/9+CgsLq7AVTR8prbP0tVRdj5cuXaLg4GCuC5KP19yK6lQqldLq1atp06ZN1K5dO8rKyuIebM6ePUsNGzbk1bIepXUSqR60v/32WwoLCyMXFxdydXWlXr16cftbtGhBU6dO1UW4vIMXQ919fX2xZMkSWFlZYfXq1di0aRMA4OHDh2UW2OUzFelMSkridBrCrKlV0ckHKsv0E4lE8Pf3h6+vL7p164bp06dj69atWLhwIZYtW4a1a9fi1q1bOoy+6pSn08zMjEtBnjt3LsaNGweBQACBQMBlirm6uiI4OBhA2VXr9ZGKMnEBwNvbGxMnToSPjw9+++03PH36lJth//79+7C1tYVCoeCtTqFQqBW7+jrTvHlzNGrUCOvWrePK8YmK6lShUMDKygpjxoyBlZUVnj9/Dnt7e1haWgIAEhIS4ODgAGtra12FXi0qyq62trbGl19+id9//x3/+c9/sGLFChw8eBAAUFBQAG9v7zLHMCpAt16teqhbJHr37k1Dhw4lJycnevToka7DqnGYTv5QUaafTCaj/Px8GjBgALm4uGg97cnlct51a1SmszzWr19PTk5OdObMmboKsUaoSCeRKrNo48aN1LhxY/L09KQxY8bQ2LFjycrKivbs2aOjiF+NqmSoqluRrl+/Tra2tlyXHd+oSKta37Nnzyg4OJgGDhxIu3fvpjlz5pCNjQ3t3r1bRxG/GpWdu6WRyWS0du1acnBwoLi4uDqKkN/wyiwRqW6wHTt2JA8PD4NObWQ6+UNl3YqpqamUkJBQ4bF86latSsLFlStX6LPPPiMbGxveLrj5snF1ycnJ9Omnn9LgwYNp1KhRWgkJfKIq9UlE9Pz5c2rdujWvb6qVaS0oKKDff/+dWrZsSZ6entS6dWvO/BpKnWqO1bp79y6NHj2a7O3tacuWLboIk5fwYiHd0jx9+hSpqalo0aKFrkOpVZhO/pCUlIRJkyYhLy8P77//PoYNG6brkGqFinQqlUoolUocO3YMu3btwsCBA9GrVy/eLrhZkc7SetTv1ZdRvmmtqs6cnBzY2dnpKswaobLvKBGhqKgIqampsLa2hpOTk0HX6dKlSxEQEIBu3brxVmddw0uzxGDoI5UZCb6N9aiMym46crkceXl5sLW15f1FuCKdcrmcG8tkCHVblfOWr6a3NBVpVc9gbihU5dwFwPvvaF3CzBKDUYNU9Umd7xh7S5qx1Keh6QTYQ42h6awr2H+MwahBDCXT72UwnUwnXzH27GpD01lXsJYlBqMWUD/VAYCVlRVOnDiBy5cvo0GDBjqOrGZhOplOvmIsWo1FZ61Th4PJGQyjwhAy/aoC02lYGItOIuPRaiw6axPWssRg1CKGkOlXFZhOw8JYdALGo9VYdNYWzCwxGAwGg8FgVAIb4M1gMBgMBoNRCcwsMRgMBoPBYFQCM0sMBoPBYDAYlcDMEoPBYDAYDEYlMLPEYDAYDAaDUQnMLDEYDAaDwWBUAjNLDAaDwWAwGJXAzBKDwWAwGAxGJTCzxGAwGAwGg1EJzCwxGAwGg8FgVML/A2zzGQYLjcPdAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "keys = list(set(r.replace(\"_dense\", \"\").replace(\"_sparse\", \"\") for r in res[0].keys())) \n", "n_plots = len(keys)\n", @@ -356,7 +290,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.7" + "version": "3.12.3" } }, "nbformat": 4, From 18aac7475a9a9815a39280e29b8b2aff34a00948 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Mon, 23 Sep 2024 11:09:47 +0200 Subject: [PATCH 160/196] cleanup the dependencies and poetry .toml --- poetry.lock | 4269 +++++++----------------------------------------- pyproject.toml | 43 +- 2 files changed, 602 insertions(+), 3710 deletions(-) diff --git a/poetry.lock b/poetry.lock index 48d5dba5..353b10ad 100644 --- a/poetry.lock +++ b/poetry.lock @@ -11,168 +11,6 @@ files = [ {file = "absl_py-2.1.0-py3-none-any.whl", hash = "sha256:526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308"}, ] -[[package]] -name = "alabaster" -version = "0.7.16" -description = "A light, configurable Sphinx theme" -optional = false -python-versions = ">=3.9" -files = [ - {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, - {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, -] - -[[package]] -name = "anyio" -version = "4.4.0" -description = "High level compatibility layer for multiple asynchronous event loop implementations" -optional = false -python-versions = ">=3.8" -files = [ - {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, - {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, -] - -[package.dependencies] -idna = ">=2.8" -sniffio = ">=1.1" - -[package.extras] -doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] -trio = ["trio (>=0.23)"] - -[[package]] -name = "appnope" -version = "0.1.4" -description = "Disable App Nap on macOS >= 10.9" -optional = false -python-versions = ">=3.6" -files = [ - {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, - {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, -] - -[[package]] -name = "argon2-cffi" -version = "23.1.0" -description = "Argon2 for Python" -optional = false -python-versions = ">=3.7" -files = [ - {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, - {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, -] - -[package.dependencies] -argon2-cffi-bindings = "*" - -[package.extras] -dev = ["argon2-cffi[tests,typing]", "tox (>4)"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] -tests = ["hypothesis", "pytest"] -typing = ["mypy"] - -[[package]] -name = "argon2-cffi-bindings" -version = "21.2.0" -description = "Low-level CFFI bindings for Argon2" -optional = false -python-versions = ">=3.6" -files = [ - {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, - {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, -] - -[package.dependencies] -cffi = ">=1.0.1" - -[package.extras] -dev = ["cogapp", "pre-commit", "pytest", "wheel"] -tests = ["pytest"] - -[[package]] -name = "arrow" -version = "1.3.0" -description = "Better dates & times for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, - {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, -] - -[package.dependencies] -python-dateutil = ">=2.7.0" -types-python-dateutil = ">=2.8.10" - -[package.extras] -doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] -test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] - -[[package]] -name = "arviz" -version = "0.13.0" -description = "Exploratory analysis of Bayesian models" -optional = false -python-versions = ">=3.8" -files = [ - {file = "arviz-0.13.0-py3-none-any.whl", hash = "sha256:c96c23726bd458f0266d2713ff728b4f7fcd306f0cbfa6399b6ede5139325b48"}, - {file = "arviz-0.13.0.tar.gz", hash = "sha256:65816761fd2a864e5da08c8663adf7260cd8c904933a88f3b86f2c1ed7510d5e"}, -] - -[package.dependencies] -matplotlib = ">=3.5" -netcdf4 = "*" -numpy = ">=1.20.0" -packaging = "*" -pandas = ">=1.4.0" -scipy = ">=1.8.0" -setuptools = ">=60.0.0" -typing-extensions = ">=4.1.0" -xarray = ">=0.21.0" -xarray-einstats = ">=0.3" - -[package.extras] -all = ["bokeh (>=1.4.0,<3.0)", "contourpy", "dask[distributed]", "numba", "ujson", "zarr (>=2.5.0)"] - -[[package]] -name = "asttokens" -version = "2.4.1" -description = "Annotate AST trees with source code positions" -optional = false -python-versions = "*" -files = [ - {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, - {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, -] - -[package.dependencies] -six = ">=1.12.0" - -[package.extras] -astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] -test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] - [[package]] name = "atomicwrites" version = "1.4.1" @@ -185,307 +23,22 @@ files = [ [[package]] name = "attrs" -version = "21.4.0" +version = "24.2.0" description = "Classes Without Boilerplate" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, - {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, -] - -[package.extras] -dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six", "sphinx", "sphinx-notfound-page", "zope.interface"] -docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] -tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six", "zope.interface"] -tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six"] - -[[package]] -name = "autograd" -version = "1.6.2" -description = "Efficiently computes derivatives of numpy code." -optional = false -python-versions = "*" -files = [ - {file = "autograd-1.6.2-py3-none-any.whl", hash = "sha256:208dde2a938e63b4f8f5049b1985505139e529068b0d26f8cd7771fd3eb145d5"}, - {file = "autograd-1.6.2.tar.gz", hash = "sha256:8731e08a0c4e389d8695a40072ada4512641c113b6cace8f4cfbe8eb7e9aedeb"}, -] - -[package.dependencies] -future = ">=0.15.2" -numpy = ">=1.12" - -[[package]] -name = "babel" -version = "2.15.0" -description = "Internationalization utilities" -optional = false -python-versions = ">=3.8" -files = [ - {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, - {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, -] - -[package.extras] -dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] - -[[package]] -name = "beautifulsoup4" -version = "4.12.3" -description = "Screen-scraping library" -optional = false -python-versions = ">=3.6.0" -files = [ - {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, - {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, -] - -[package.dependencies] -soupsieve = ">1.2" - -[package.extras] -cchardet = ["cchardet"] -chardet = ["chardet"] -charset-normalizer = ["charset-normalizer"] -html5lib = ["html5lib"] -lxml = ["lxml"] - -[[package]] -name = "bleach" -version = "6.1.0" -description = "An easy safelist-based HTML-sanitizing tool." -optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "bleach-6.1.0-py3-none-any.whl", hash = "sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6"}, - {file = "bleach-6.1.0.tar.gz", hash = "sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe"}, + {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, + {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, ] -[package.dependencies] -six = ">=1.9.0" -webencodings = "*" - [package.extras] -css = ["tinycss2 (>=1.1.0,<1.3)"] - -[[package]] -name = "certifi" -version = "2024.6.2" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"}, - {file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"}, -] - -[[package]] -name = "cffi" -version = "1.16.0" -description = "Foreign Function Interface for Python calling C code." -optional = false -python-versions = ">=3.8" -files = [ - {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, - {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, - {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, - {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, - {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, - {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, - {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, - {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, - {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, - {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, - {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, - {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, - {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, - {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, - {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, -] - -[package.dependencies] -pycparser = "*" - -[[package]] -name = "cftime" -version = "1.6.4" -description = "Time-handling functionality from netcdf4-python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "cftime-1.6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ee70074df4bae0d9ee98f201cf5f11fd302791cf1cdeb73c34f685d6b632e17d"}, - {file = "cftime-1.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e5456fd58d4cc6b8d7b4932b749617ee142b62a52bc5d8e3c282ce69ce3a20ba"}, - {file = "cftime-1.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1289e08617be350a6b26c6e4352a0cb088625ac33d25e95110df549c26d6ab8e"}, - {file = "cftime-1.6.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18b132d9225b4a109929866200846c72302316db9069e2de3ec8d8ec377f567f"}, - {file = "cftime-1.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ca1a264570e68fbb611bba251641b8efd0cf88c0ad2dcab5fa784df264232b75"}, - {file = "cftime-1.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:6fc82928cbf477bebf233f41914e64bff7b9e894c7f0c34170784a48250f8da7"}, - {file = "cftime-1.6.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c1558d9b477bd29626cd8bfc89e736635f72887d1a993e2834ab579bba7abb8c"}, - {file = "cftime-1.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:03494e7b66a2fbb6b04e364ab67185130dee0ced660abac5c1559070571d143d"}, - {file = "cftime-1.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dcb2a01d4e614437582af33b36db4fb441b7666758482864827a1f037d2b639"}, - {file = "cftime-1.6.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b47bf25195fb3889bbae34df0e80957eb69c48f66902f5d538c7a8ec34253f6"}, - {file = "cftime-1.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d4f2cc0d5c6ffba9c5b0fd1ecd0c7c1c426d0be7b8de1480e2a9fb857c1905e9"}, - {file = "cftime-1.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:76b8f1e5d1e424accdf760a43e0a1793a7b640bab83cb067273d5c9dbb336c44"}, - {file = "cftime-1.6.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c349a91fa7ac9ec50118b04a8746bdea967bd2fc525d87c776003040b8d3392"}, - {file = "cftime-1.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:588d073400798adc24ece759cd1cb24ef730f55d1f70e31a898e7686f9d763d8"}, - {file = "cftime-1.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e07b91b488570573bbeb6f815656a8974d13d15b2279c82de2927f4f692bbcd"}, - {file = "cftime-1.6.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f92f2e405eeda47b30ab6231d8b7d136a55f21034d394f93ade322d356948654"}, - {file = "cftime-1.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:567574df94d0de1101bb5da76e7fbc6eabfddeeb2eb8cf83286b3599a136bbf7"}, - {file = "cftime-1.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:5b5ad7559a16bedadb66af8e417b6805f758acb57aa38d2730844dfc63a1e667"}, - {file = "cftime-1.6.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c072fe9e09925af66a9473edf5752ca1890ba752e7c1935d1f0245ad48f0977c"}, - {file = "cftime-1.6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c05a71389f53d6340cb365b60f028c08268c72401660b9ef76108dee9f1cb5b2"}, - {file = "cftime-1.6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0edeb1cb019d8155b2513cffb96749c0d7d459370e69bdf03077e0bee214aed8"}, - {file = "cftime-1.6.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f05d5d6bb4137f9783fa61ad330030fcea8dcc6946dea69a27774edbe480e7"}, - {file = "cftime-1.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:b32ac1278a2a111b066d5a1e6e5ce6f38c4c505993a6a3130873b56f99d7b56f"}, - {file = "cftime-1.6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c20f03e12af39534c3450bba376272803bfb850b5ce6433c839bfaa99f8d835a"}, - {file = "cftime-1.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:90609b3c1a31a756a68ecdbc961a4ce0b22c1620f166c8dabfa3a4c337ac8b9e"}, - {file = "cftime-1.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbe11ad73b2a0ddc79995da21459fc2a3fd6b1593ca73f00a60e4d81c3e230f3"}, - {file = "cftime-1.6.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25f043703e785de0bd7cd8222c0a53317e9aeb3dfc062588b05e6f3ebb007468"}, - {file = "cftime-1.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f9acc272df1022f24fe7dbe9de43fa5d8271985161df14549e4d8d28c90dc9ea"}, - {file = "cftime-1.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:e8467b6fbf8dbfe0be8c04d61180765fdd3b9ab0fe51313a0bbf87e63634a3d8"}, - {file = "cftime-1.6.4.tar.gz", hash = "sha256:e325406193758a7ed67308deb52e727782a19e384e183378e7ff62098be0aedc"}, -] - -[package.dependencies] -numpy = [ - {version = ">=1.26.0b1", markers = "python_version >= \"3.12.0.rc1\""}, - {version = ">1.13.3", markers = "python_version < \"3.12.0.rc1\""}, -] - -[[package]] -name = "charset-normalizer" -version = "3.3.2" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, -] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] [[package]] name = "chex" @@ -518,86 +71,6 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] -[[package]] -name = "comm" -version = "0.2.2" -description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." -optional = false -python-versions = ">=3.8" -files = [ - {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, - {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, -] - -[package.dependencies] -traitlets = ">=4" - -[package.extras] -test = ["pytest"] - -[[package]] -name = "contourpy" -version = "1.2.1" -description = "Python library for calculating contours of 2D quadrilateral grids" -optional = false -python-versions = ">=3.9" -files = [ - {file = "contourpy-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd7c23df857d488f418439686d3b10ae2fbf9bc256cd045b37a8c16575ea1040"}, - {file = "contourpy-1.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5b9eb0ca724a241683c9685a484da9d35c872fd42756574a7cfbf58af26677fd"}, - {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c75507d0a55378240f781599c30e7776674dbaf883a46d1c90f37e563453480"}, - {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11959f0ce4a6f7b76ec578576a0b61a28bdc0696194b6347ba3f1c53827178b9"}, - {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eb3315a8a236ee19b6df481fc5f997436e8ade24a9f03dfdc6bd490fea20c6da"}, - {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39f3ecaf76cd98e802f094e0d4fbc6dc9c45a8d0c4d185f0f6c2234e14e5f75b"}, - {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:94b34f32646ca0414237168d68a9157cb3889f06b096612afdd296003fdd32fd"}, - {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:457499c79fa84593f22454bbd27670227874cd2ff5d6c84e60575c8b50a69619"}, - {file = "contourpy-1.2.1-cp310-cp310-win32.whl", hash = "sha256:ac58bdee53cbeba2ecad824fa8159493f0bf3b8ea4e93feb06c9a465d6c87da8"}, - {file = "contourpy-1.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:9cffe0f850e89d7c0012a1fb8730f75edd4320a0a731ed0c183904fe6ecfc3a9"}, - {file = "contourpy-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6022cecf8f44e36af10bd9118ca71f371078b4c168b6e0fab43d4a889985dbb5"}, - {file = "contourpy-1.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ef5adb9a3b1d0c645ff694f9bca7702ec2c70f4d734f9922ea34de02294fdf72"}, - {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6150ffa5c767bc6332df27157d95442c379b7dce3a38dff89c0f39b63275696f"}, - {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c863140fafc615c14a4bf4efd0f4425c02230eb8ef02784c9a156461e62c965"}, - {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00e5388f71c1a0610e6fe56b5c44ab7ba14165cdd6d695429c5cd94021e390b2"}, - {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4492d82b3bc7fbb7e3610747b159869468079fe149ec5c4d771fa1f614a14df"}, - {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:49e70d111fee47284d9dd867c9bb9a7058a3c617274900780c43e38d90fe1205"}, - {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b59c0ffceff8d4d3996a45f2bb6f4c207f94684a96bf3d9728dbb77428dd8cb8"}, - {file = "contourpy-1.2.1-cp311-cp311-win32.whl", hash = "sha256:7b4182299f251060996af5249c286bae9361fa8c6a9cda5efc29fe8bfd6062ec"}, - {file = "contourpy-1.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2855c8b0b55958265e8b5888d6a615ba02883b225f2227461aa9127c578a4922"}, - {file = "contourpy-1.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:62828cada4a2b850dbef89c81f5a33741898b305db244904de418cc957ff05dc"}, - {file = "contourpy-1.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:309be79c0a354afff9ff7da4aaed7c3257e77edf6c1b448a779329431ee79d7e"}, - {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e785e0f2ef0d567099b9ff92cbfb958d71c2d5b9259981cd9bee81bd194c9a4"}, - {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cac0a8f71a041aa587410424ad46dfa6a11f6149ceb219ce7dd48f6b02b87a7"}, - {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af3f4485884750dddd9c25cb7e3915d83c2db92488b38ccb77dd594eac84c4a0"}, - {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ce6889abac9a42afd07a562c2d6d4b2b7134f83f18571d859b25624a331c90b"}, - {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a1eea9aecf761c661d096d39ed9026574de8adb2ae1c5bd7b33558af884fb2ce"}, - {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:187fa1d4c6acc06adb0fae5544c59898ad781409e61a926ac7e84b8f276dcef4"}, - {file = "contourpy-1.2.1-cp312-cp312-win32.whl", hash = "sha256:c2528d60e398c7c4c799d56f907664673a807635b857df18f7ae64d3e6ce2d9f"}, - {file = "contourpy-1.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:1a07fc092a4088ee952ddae19a2b2a85757b923217b7eed584fdf25f53a6e7ce"}, - {file = "contourpy-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bb6834cbd983b19f06908b45bfc2dad6ac9479ae04abe923a275b5f48f1a186b"}, - {file = "contourpy-1.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1d59e739ab0e3520e62a26c60707cc3ab0365d2f8fecea74bfe4de72dc56388f"}, - {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd3db01f59fdcbce5b22afad19e390260d6d0222f35a1023d9adc5690a889364"}, - {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a12a813949e5066148712a0626895c26b2578874e4cc63160bb007e6df3436fe"}, - {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe0ccca550bb8e5abc22f530ec0466136379c01321fd94f30a22231e8a48d985"}, - {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1d59258c3c67c865435d8fbeb35f8c59b8bef3d6f46c1f29f6123556af28445"}, - {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f32c38afb74bd98ce26de7cc74a67b40afb7b05aae7b42924ea990d51e4dac02"}, - {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d31a63bc6e6d87f77d71e1abbd7387ab817a66733734883d1fc0021ed9bfa083"}, - {file = "contourpy-1.2.1-cp39-cp39-win32.whl", hash = "sha256:ddcb8581510311e13421b1f544403c16e901c4e8f09083c881fab2be80ee31ba"}, - {file = "contourpy-1.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:10a37ae557aabf2509c79715cd20b62e4c7c28b8cd62dd7d99e5ed3ce28c3fd9"}, - {file = "contourpy-1.2.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a31f94983fecbac95e58388210427d68cd30fe8a36927980fab9c20062645609"}, - {file = "contourpy-1.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef2b055471c0eb466033760a521efb9d8a32b99ab907fc8358481a1dd29e3bd3"}, - {file = "contourpy-1.2.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b33d2bc4f69caedcd0a275329eb2198f560b325605810895627be5d4b876bf7f"}, - {file = "contourpy-1.2.1.tar.gz", hash = "sha256:4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c"}, -] - -[package.dependencies] -numpy = ">=1.20" - -[package.extras] -bokeh = ["bokeh", "selenium"] -docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] -mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.8.0)", "types-Pillow"] -test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] -test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] - [[package]] name = "cycler" version = "0.12.1" @@ -613,3351 +86,787 @@ files = [ docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] tests = ["pytest", "pytest-cov", "pytest-xdist"] -[[package]] -name = "debugpy" -version = "1.8.2" -description = "An implementation of the Debug Adapter Protocol for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "debugpy-1.8.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7ee2e1afbf44b138c005e4380097d92532e1001580853a7cb40ed84e0ef1c3d2"}, - {file = "debugpy-1.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f8c3f7c53130a070f0fc845a0f2cee8ed88d220d6b04595897b66605df1edd6"}, - {file = "debugpy-1.8.2-cp310-cp310-win32.whl", hash = "sha256:f179af1e1bd4c88b0b9f0fa153569b24f6b6f3de33f94703336363ae62f4bf47"}, - {file = "debugpy-1.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:0600faef1d0b8d0e85c816b8bb0cb90ed94fc611f308d5fde28cb8b3d2ff0fe3"}, - {file = "debugpy-1.8.2-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:8a13417ccd5978a642e91fb79b871baded925d4fadd4dfafec1928196292aa0a"}, - {file = "debugpy-1.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acdf39855f65c48ac9667b2801234fc64d46778021efac2de7e50907ab90c634"}, - {file = "debugpy-1.8.2-cp311-cp311-win32.whl", hash = "sha256:2cbd4d9a2fc5e7f583ff9bf11f3b7d78dfda8401e8bb6856ad1ed190be4281ad"}, - {file = "debugpy-1.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:d3408fddd76414034c02880e891ea434e9a9cf3a69842098ef92f6e809d09afa"}, - {file = "debugpy-1.8.2-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:5d3ccd39e4021f2eb86b8d748a96c766058b39443c1f18b2dc52c10ac2757835"}, - {file = "debugpy-1.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62658aefe289598680193ff655ff3940e2a601765259b123dc7f89c0239b8cd3"}, - {file = "debugpy-1.8.2-cp312-cp312-win32.whl", hash = "sha256:bd11fe35d6fd3431f1546d94121322c0ac572e1bfb1f6be0e9b8655fb4ea941e"}, - {file = "debugpy-1.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:15bc2f4b0f5e99bf86c162c91a74c0631dbd9cef3c6a1d1329c946586255e859"}, - {file = "debugpy-1.8.2-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:5a019d4574afedc6ead1daa22736c530712465c0c4cd44f820d803d937531b2d"}, - {file = "debugpy-1.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40f062d6877d2e45b112c0bbade9a17aac507445fd638922b1a5434df34aed02"}, - {file = "debugpy-1.8.2-cp38-cp38-win32.whl", hash = "sha256:c78ba1680f1015c0ca7115671fe347b28b446081dada3fedf54138f44e4ba031"}, - {file = "debugpy-1.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:cf327316ae0c0e7dd81eb92d24ba8b5e88bb4d1b585b5c0d32929274a66a5210"}, - {file = "debugpy-1.8.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:1523bc551e28e15147815d1397afc150ac99dbd3a8e64641d53425dba57b0ff9"}, - {file = "debugpy-1.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e24ccb0cd6f8bfaec68d577cb49e9c680621c336f347479b3fce060ba7c09ec1"}, - {file = "debugpy-1.8.2-cp39-cp39-win32.whl", hash = "sha256:7f8d57a98c5a486c5c7824bc0b9f2f11189d08d73635c326abef268f83950326"}, - {file = "debugpy-1.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:16c8dcab02617b75697a0a925a62943e26a0330da076e2a10437edd9f0bf3755"}, - {file = "debugpy-1.8.2-py2.py3-none-any.whl", hash = "sha256:16e16df3a98a35c63c3ab1e4d19be4cbc7fdda92d9ddc059294f18910928e0ca"}, - {file = "debugpy-1.8.2.zip", hash = "sha256:95378ed08ed2089221896b9b3a8d021e642c24edc8fef20e5d4342ca8be65c00"}, -] - -[[package]] -name = "decorator" -version = "5.1.1" -description = "Decorators for Humans" -optional = false -python-versions = ">=3.5" -files = [ - {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, - {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, -] - -[[package]] -name = "defusedxml" -version = "0.7.1" -description = "XML bomb protection for Python stdlib modules" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, - {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, -] - -[[package]] -name = "docutils" -version = "0.17.1" -description = "Docutils -- Python Documentation Utilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, - {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, -] - -[[package]] -name = "entrypoints" -version = "0.4" -description = "Discover and load entry points from installed packages." -optional = false -python-versions = ">=3.6" -files = [ - {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, - {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, -] - [[package]] name = "equinox" -version = "0.11.4" +version = "0.11.7" description = "Elegant easy-to-use neural networks in JAX." optional = false python-versions = "~=3.9" files = [ - {file = "equinox-0.11.4-py3-none-any.whl", hash = "sha256:a9527b1fe0c4778c3c959d9091b1eea28c3fdcca01790a47e71b47df94889315"}, - {file = "equinox-0.11.4.tar.gz", hash = "sha256:0033d9731083f402a855b12a0777a80aa8507651f7aa86d9f0f9503bcddfd320"}, + {file = "equinox-0.11.7-py3-none-any.whl", hash = "sha256:1177354e1795061fbad71535fe54096d8887dc059b4ab7d400fea2d47dfaa283"}, + {file = "equinox-0.11.7.tar.gz", hash = "sha256:96e0216a9d822ec4b1465b0cbfbab14a36fb7e7d62c55f521287db3aaaa251be"}, ] [package.dependencies] -jax = ">=0.4.13" +jax = ">=0.4.13,<0.4.27 || >0.4.27" jaxtyping = ">=0.2.20" typing-extensions = ">=4.5.0" [[package]] -name = "et-xmlfile" -version = "1.1.0" -description = "An implementation of lxml.xmlfile for the standard library" +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "et_xmlfile-1.1.0-py3-none-any.whl", hash = "sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada"}, - {file = "et_xmlfile-1.1.0.tar.gz", hash = "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"}, + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] [[package]] -name = "executing" -version = "2.0.1" -description = "Get the currently executing AST node of a frame, and other information" +name = "jax" +version = "0.4.33" +description = "Differentiate, compile, and transform Numpy code." optional = false -python-versions = ">=3.5" +python-versions = ">=3.10" files = [ - {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, - {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, + {file = "jax-0.4.33-py3-none-any.whl", hash = "sha256:5f33e30b49060ebc990b1f8d75f89d15b9fec263f6fff34ef1af1d01996d314f"}, + {file = "jax-0.4.33.tar.gz", hash = "sha256:f0d788692fc0179653066c9e1c64e57311b8c15a389837fd7baf328abefcbb92"}, ] -[package.extras] -tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] - -[[package]] -name = "fastjsonschema" -version = "2.20.0" -description = "Fastest Python implementation of JSON schema" -optional = false -python-versions = "*" -files = [ - {file = "fastjsonschema-2.20.0-py3-none-any.whl", hash = "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a"}, - {file = "fastjsonschema-2.20.0.tar.gz", hash = "sha256:3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23"}, +[package.dependencies] +jaxlib = "0.4.33" +ml-dtypes = ">=0.2.0" +numpy = [ + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, + {version = ">=1.24", markers = "python_version < \"3.12\""}, ] - -[package.extras] -devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] - -[[package]] -name = "fonttools" -version = "4.53.0" -description = "Tools to manipulate font files" -optional = false -python-versions = ">=3.8" -files = [ - {file = "fonttools-4.53.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:52a6e0a7a0bf611c19bc8ec8f7592bdae79c8296c70eb05917fd831354699b20"}, - {file = "fonttools-4.53.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:099634631b9dd271d4a835d2b2a9e042ccc94ecdf7e2dd9f7f34f7daf333358d"}, - {file = "fonttools-4.53.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e40013572bfb843d6794a3ce076c29ef4efd15937ab833f520117f8eccc84fd6"}, - {file = "fonttools-4.53.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:715b41c3e231f7334cbe79dfc698213dcb7211520ec7a3bc2ba20c8515e8a3b5"}, - {file = "fonttools-4.53.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74ae2441731a05b44d5988d3ac2cf784d3ee0a535dbed257cbfff4be8bb49eb9"}, - {file = "fonttools-4.53.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:95db0c6581a54b47c30860d013977b8a14febc206c8b5ff562f9fe32738a8aca"}, - {file = "fonttools-4.53.0-cp310-cp310-win32.whl", hash = "sha256:9cd7a6beec6495d1dffb1033d50a3f82dfece23e9eb3c20cd3c2444d27514068"}, - {file = "fonttools-4.53.0-cp310-cp310-win_amd64.whl", hash = "sha256:daaef7390e632283051e3cf3e16aff2b68b247e99aea916f64e578c0449c9c68"}, - {file = "fonttools-4.53.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a209d2e624ba492df4f3bfad5996d1f76f03069c6133c60cd04f9a9e715595ec"}, - {file = "fonttools-4.53.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4f520d9ac5b938e6494f58a25c77564beca7d0199ecf726e1bd3d56872c59749"}, - {file = "fonttools-4.53.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eceef49f457253000e6a2d0f7bd08ff4e9fe96ec4ffce2dbcb32e34d9c1b8161"}, - {file = "fonttools-4.53.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa1f3e34373aa16045484b4d9d352d4c6b5f9f77ac77a178252ccbc851e8b2ee"}, - {file = "fonttools-4.53.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:28d072169fe8275fb1a0d35e3233f6df36a7e8474e56cb790a7258ad822b6fd6"}, - {file = "fonttools-4.53.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4a2a6ba400d386e904fd05db81f73bee0008af37799a7586deaa4aef8cd5971e"}, - {file = "fonttools-4.53.0-cp311-cp311-win32.whl", hash = "sha256:bb7273789f69b565d88e97e9e1da602b4ee7ba733caf35a6c2affd4334d4f005"}, - {file = "fonttools-4.53.0-cp311-cp311-win_amd64.whl", hash = "sha256:9fe9096a60113e1d755e9e6bda15ef7e03391ee0554d22829aa506cdf946f796"}, - {file = "fonttools-4.53.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d8f191a17369bd53a5557a5ee4bab91d5330ca3aefcdf17fab9a497b0e7cff7a"}, - {file = "fonttools-4.53.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:93156dd7f90ae0a1b0e8871032a07ef3178f553f0c70c386025a808f3a63b1f4"}, - {file = "fonttools-4.53.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bff98816cb144fb7b85e4b5ba3888a33b56ecef075b0e95b95bcd0a5fbf20f06"}, - {file = "fonttools-4.53.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:973d030180eca8255b1bce6ffc09ef38a05dcec0e8320cc9b7bcaa65346f341d"}, - {file = "fonttools-4.53.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c4ee5a24e281fbd8261c6ab29faa7fd9a87a12e8c0eed485b705236c65999109"}, - {file = "fonttools-4.53.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bd5bc124fae781a4422f61b98d1d7faa47985f663a64770b78f13d2c072410c2"}, - {file = "fonttools-4.53.0-cp312-cp312-win32.whl", hash = "sha256:a239afa1126b6a619130909c8404070e2b473dd2b7fc4aacacd2e763f8597fea"}, - {file = "fonttools-4.53.0-cp312-cp312-win_amd64.whl", hash = "sha256:45b4afb069039f0366a43a5d454bc54eea942bfb66b3fc3e9a2c07ef4d617380"}, - {file = "fonttools-4.53.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:93bc9e5aaa06ff928d751dc6be889ff3e7d2aa393ab873bc7f6396a99f6fbb12"}, - {file = "fonttools-4.53.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2367d47816cc9783a28645bc1dac07f8ffc93e0f015e8c9fc674a5b76a6da6e4"}, - {file = "fonttools-4.53.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:907fa0b662dd8fc1d7c661b90782ce81afb510fc4b7aa6ae7304d6c094b27bce"}, - {file = "fonttools-4.53.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e0ad3c6ea4bd6a289d958a1eb922767233f00982cf0fe42b177657c86c80a8f"}, - {file = "fonttools-4.53.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:73121a9b7ff93ada888aaee3985a88495489cc027894458cb1a736660bdfb206"}, - {file = "fonttools-4.53.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ee595d7ba9bba130b2bec555a40aafa60c26ce68ed0cf509983e0f12d88674fd"}, - {file = "fonttools-4.53.0-cp38-cp38-win32.whl", hash = "sha256:fca66d9ff2ac89b03f5aa17e0b21a97c21f3491c46b583bb131eb32c7bab33af"}, - {file = "fonttools-4.53.0-cp38-cp38-win_amd64.whl", hash = "sha256:31f0e3147375002aae30696dd1dc596636abbd22fca09d2e730ecde0baad1d6b"}, - {file = "fonttools-4.53.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7d6166192dcd925c78a91d599b48960e0a46fe565391c79fe6de481ac44d20ac"}, - {file = "fonttools-4.53.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef50ec31649fbc3acf6afd261ed89d09eb909b97cc289d80476166df8438524d"}, - {file = "fonttools-4.53.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f193f060391a455920d61684a70017ef5284ccbe6023bb056e15e5ac3de11d1"}, - {file = "fonttools-4.53.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba9f09ff17f947392a855e3455a846f9855f6cf6bec33e9a427d3c1d254c712f"}, - {file = "fonttools-4.53.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0c555e039d268445172b909b1b6bdcba42ada1cf4a60e367d68702e3f87e5f64"}, - {file = "fonttools-4.53.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5a4788036201c908079e89ae3f5399b33bf45b9ea4514913f4dbbe4fac08efe0"}, - {file = "fonttools-4.53.0-cp39-cp39-win32.whl", hash = "sha256:d1a24f51a3305362b94681120c508758a88f207fa0a681c16b5a4172e9e6c7a9"}, - {file = "fonttools-4.53.0-cp39-cp39-win_amd64.whl", hash = "sha256:1e677bfb2b4bd0e5e99e0f7283e65e47a9814b0486cb64a41adf9ef110e078f2"}, - {file = "fonttools-4.53.0-py3-none-any.whl", hash = "sha256:6b4f04b1fbc01a3569d63359f2227c89ab294550de277fd09d8fca6185669fa4"}, - {file = "fonttools-4.53.0.tar.gz", hash = "sha256:c93ed66d32de1559b6fc348838c7572d5c0ac1e4a258e76763a5caddd8944002"}, +opt-einsum = "*" +scipy = [ + {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, + {version = ">=1.10", markers = "python_version < \"3.12\""}, ] [package.extras] -all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] -graphite = ["lz4 (>=1.7.4.2)"] -interpolatable = ["munkres", "pycairo", "scipy"] -lxml = ["lxml (>=4.0)"] -pathops = ["skia-pathops (>=0.5.0)"] -plot = ["matplotlib"] -repacker = ["uharfbuzz (>=0.23.0)"] -symfont = ["sympy"] -type1 = ["xattr"] -ufo = ["fs (>=2.2.0,<3)"] -unicode = ["unicodedata2 (>=15.1.0)"] -woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] - -[[package]] -name = "fqdn" -version = "1.5.1" -description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" -optional = false -python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" -files = [ - {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, - {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, -] - -[[package]] -name = "future" -version = "1.0.0" -description = "Clean single-source support for Python 3 and 2" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "future-1.0.0-py3-none-any.whl", hash = "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216"}, - {file = "future-1.0.0.tar.gz", hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05"}, -] +ci = ["jaxlib (==0.4.31)"] +cuda = ["jax-cuda12-plugin[with-cuda] (==0.4.33)", "jaxlib (==0.4.33)"] +cuda12 = ["jax-cuda12-plugin[with-cuda] (==0.4.33)", "jaxlib (==0.4.33)"] +cuda12-local = ["jax-cuda12-plugin (==0.4.33)", "jaxlib (==0.4.33)"] +cuda12-pip = ["jax-cuda12-plugin[with-cuda] (==0.4.33)", "jaxlib (==0.4.33)"] +minimum-jaxlib = ["jaxlib (==0.4.33)"] +tpu = ["jaxlib (==0.4.33)", "libtpu-nightly (==0.1.dev20240916)", "requests"] [[package]] -name = "gitdb" -version = "4.0.11" -description = "Git Object Database" +name = "jaxlib" +version = "0.4.33" +description = "XLA library for JAX" optional = false -python-versions = ">=3.7" +python-versions = ">=3.10" files = [ - {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, - {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, + {file = "jaxlib-0.4.33-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:c12294ff10e5dcea9a4601833399a8b04aa7d0c8ab6e2c1afde930d36d5d0b20"}, + {file = "jaxlib-0.4.33-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0676ac605880ac6aa0ab9946a24a073ee8a1a83baf71cc1d35b71917a99d03d1"}, + {file = "jaxlib-0.4.33-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:5ba7eaa9722037755833cb70d9a98a049abea13e51dac3719b833dbf42ddf69a"}, + {file = "jaxlib-0.4.33-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:eaf21b55fd8f046fcd82c8ea956b636b4b11f892341f3fcd3dc29c4ce5ac4857"}, + {file = "jaxlib-0.4.33-cp310-cp310-win_amd64.whl", hash = "sha256:98e682e0d944ca8af8c05724dc4a14b7aaa87cd67ddb32737861eee7ccdaabb4"}, + {file = "jaxlib-0.4.33-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:6ee2f8692a5ea32acc63bbcc7390312f553614c22348c7366f08995e8764d839"}, + {file = "jaxlib-0.4.33-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:82c29635ddc51ba91671ab2be042f4701339df176e792eb6adf50ccabd723606"}, + {file = "jaxlib-0.4.33-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:9e6e933033cdfaebd018cdb5bfaf735bc164020316fe3ecff6c4b0dcf63f0f95"}, + {file = "jaxlib-0.4.33-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:400f401498675fd42dcaf0b855f325691951b250d619a8cbc5955f947e2494aa"}, + {file = "jaxlib-0.4.33-cp311-cp311-win_amd64.whl", hash = "sha256:95fedfb5f10f8bdfa57d81dd09933e78ba297719b40192357685b3aaa4287fef"}, + {file = "jaxlib-0.4.33-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:43c63e094948f0486505035b55a685b03ddde61705ce585f84b8c1438da20da0"}, + {file = "jaxlib-0.4.33-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3e14b4b50a19370312875541509a7ddc1ef8fc0bd95cff9508db9725038e8297"}, + {file = "jaxlib-0.4.33-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:4af6ee4070650ff120a92ff8454e70e0ef993434f3f3767a0e898cc484b836e2"}, + {file = "jaxlib-0.4.33-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:054aa0f122725e000b8f8815b1794067ef2ff821588b62e1fab2a1280847f5c6"}, + {file = "jaxlib-0.4.33-cp312-cp312-win_amd64.whl", hash = "sha256:94e8d7bdd0506e1471d36d5da1e5838711fbd2ce18dffe7b694cad6b56e64e8c"}, ] [package.dependencies] -smmap = ">=3.0.1,<6" - -[[package]] -name = "gitpython" -version = "3.1.43" -description = "GitPython is a Python library used to interact with Git repositories" -optional = false -python-versions = ">=3.7" -files = [ - {file = "GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff"}, - {file = "GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c"}, +ml-dtypes = ">=0.2.0" +numpy = ">=1.24" +scipy = [ + {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, + {version = ">=1.10", markers = "python_version < \"3.12\""}, ] -[package.dependencies] -gitdb = ">=4.0.1,<5" - -[package.extras] -doc = ["sphinx (==4.3.2)", "sphinx-autodoc-typehints", "sphinx-rtd-theme", "sphinxcontrib-applehelp (>=1.0.2,<=1.0.4)", "sphinxcontrib-devhelp (==1.0.2)", "sphinxcontrib-htmlhelp (>=2.0.0,<=2.0.1)", "sphinxcontrib-qthelp (==1.0.3)", "sphinxcontrib-serializinghtml (==1.1.5)"] -test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions"] - [[package]] -name = "greenlet" -version = "3.0.3" -description = "Lightweight in-process concurrent programming" +name = "jaxtyping" +version = "0.2.34" +description = "Type annotations and runtime checking for shape and dtype of JAX arrays, and PyTrees." optional = false -python-versions = ">=3.7" +python-versions = "~=3.9" files = [ - {file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405"}, - {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f"}, - {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb"}, - {file = "greenlet-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9"}, - {file = "greenlet-3.0.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22"}, - {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3"}, - {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d"}, - {file = "greenlet-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728"}, - {file = "greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf"}, - {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305"}, - {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6"}, - {file = "greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2"}, - {file = "greenlet-3.0.3-cp37-cp37m-macosx_11_0_universal2.whl", hash = "sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41"}, - {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7"}, - {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6"}, - {file = "greenlet-3.0.3-cp37-cp37m-win32.whl", hash = "sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d"}, - {file = "greenlet-3.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67"}, - {file = "greenlet-3.0.3-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4"}, - {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5"}, - {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da"}, - {file = "greenlet-3.0.3-cp38-cp38-win32.whl", hash = "sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3"}, - {file = "greenlet-3.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf"}, - {file = "greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b"}, - {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6"}, - {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113"}, - {file = "greenlet-3.0.3-cp39-cp39-win32.whl", hash = "sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e"}, - {file = "greenlet-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067"}, - {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"}, + {file = "jaxtyping-0.2.34-py3-none-any.whl", hash = "sha256:2f81fb6d1586e497a6ea2d28c06dcab37b108a096cbb36ea3fe4fa2e1c1f32e5"}, + {file = "jaxtyping-0.2.34.tar.gz", hash = "sha256:eed9a3458ec8726c84ea5457ebde53c964f65d2c22c0ec40d0555ae3fed5bbaf"}, ] -[package.extras] -docs = ["Sphinx", "furo"] -test = ["objgraph", "psutil"] - -[[package]] -name = "idna" -version = "3.7" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.5" -files = [ - {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, - {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, -] - -[[package]] -name = "imageio" -version = "2.34.2" -description = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats." -optional = false -python-versions = ">=3.8" -files = [ - {file = "imageio-2.34.2-py3-none-any.whl", hash = "sha256:a0bb27ec9d5bab36a9f4835e51b21d2cb099e1f78451441f94687ff3404b79f8"}, - {file = "imageio-2.34.2.tar.gz", hash = "sha256:5c0c0ee8faa018a1c42f649b90395dd4d3bb6187c09053a0cd6f1fdd51bbff5e"}, -] - -[package.dependencies] -numpy = "*" -pillow = ">=8.3.2" - -[package.extras] -all-plugins = ["astropy", "av", "imageio-ffmpeg", "pillow-heif", "psutil", "tifffile"] -all-plugins-pypy = ["av", "imageio-ffmpeg", "pillow-heif", "psutil", "tifffile"] -build = ["wheel"] -dev = ["black", "flake8", "fsspec[github]", "pytest", "pytest-cov"] -docs = ["numpydoc", "pydata-sphinx-theme", "sphinx (<6)"] -ffmpeg = ["imageio-ffmpeg", "psutil"] -fits = ["astropy"] -full = ["astropy", "av", "black", "flake8", "fsspec[github]", "gdal", "imageio-ffmpeg", "itk", "numpydoc", "pillow-heif", "psutil", "pydata-sphinx-theme", "pytest", "pytest-cov", "sphinx (<6)", "tifffile", "wheel"] -gdal = ["gdal"] -itk = ["itk"] -linting = ["black", "flake8"] -pillow-heif = ["pillow-heif"] -pyav = ["av"] -test = ["fsspec[github]", "pytest", "pytest-cov"] -tifffile = ["tifffile"] - -[[package]] -name = "imagesize" -version = "1.4.1" -description = "Getting image size from png/jpeg/jpeg2000/gif file" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] - -[[package]] -name = "importlib-metadata" -version = "8.0.0" -description = "Read metadata from Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "importlib_metadata-8.0.0-py3-none-any.whl", hash = "sha256:15584cf2b1bf449d98ff8a6ff1abef57bf20f3ac6454f431736cd3e660921b2f"}, - {file = "importlib_metadata-8.0.0.tar.gz", hash = "sha256:188bd24e4c346d3f0a933f275c2fec67050326a856b9a359881d7c2a697e8812"}, -] - -[package.dependencies] -zipp = ">=0.5" - -[package.extras] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -perf = ["ipython"] -test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] - -[[package]] -name = "iniconfig" -version = "2.0.0" -description = "brain-dead simple config-ini parsing" -optional = false -python-versions = ">=3.7" -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "ipykernel" -version = "6.29.4" -description = "IPython Kernel for Jupyter" -optional = false -python-versions = ">=3.8" -files = [ - {file = "ipykernel-6.29.4-py3-none-any.whl", hash = "sha256:1181e653d95c6808039c509ef8e67c4126b3b3af7781496c7cbfb5ed938a27da"}, - {file = "ipykernel-6.29.4.tar.gz", hash = "sha256:3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c"}, -] - -[package.dependencies] -appnope = {version = "*", markers = "platform_system == \"Darwin\""} -comm = ">=0.1.1" -debugpy = ">=1.6.5" -ipython = ">=7.23.1" -jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" -matplotlib-inline = ">=0.1" -nest-asyncio = "*" -packaging = "*" -psutil = "*" -pyzmq = ">=24" -tornado = ">=6.1" -traitlets = ">=5.4.0" - -[package.extras] -cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] -docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] -pyqt5 = ["pyqt5"] -pyside6 = ["pyside6"] -test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] - -[[package]] -name = "ipython" -version = "8.25.0" -description = "IPython: Productive Interactive Computing" -optional = false -python-versions = ">=3.10" -files = [ - {file = "ipython-8.25.0-py3-none-any.whl", hash = "sha256:53eee7ad44df903a06655871cbab66d156a051fd86f3ec6750470ac9604ac1ab"}, - {file = "ipython-8.25.0.tar.gz", hash = "sha256:c6ed726a140b6e725b911528f80439c534fac915246af3efc39440a6b0f9d716"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -decorator = "*" -jedi = ">=0.16" -matplotlib-inline = "*" -pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} -prompt-toolkit = ">=3.0.41,<3.1.0" -pygments = ">=2.4.0" -stack-data = "*" -traitlets = ">=5.13.0" -typing-extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} - -[package.extras] -all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"] -black = ["black"] -doc = ["docrepr", "exceptiongroup", "intersphinx-registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing-extensions"] -kernel = ["ipykernel"] -matplotlib = ["matplotlib"] -nbconvert = ["nbconvert"] -nbformat = ["nbformat"] -notebook = ["ipywidgets", "notebook"] -parallel = ["ipyparallel"] -qtconsole = ["qtconsole"] -test = ["pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"] -test-extra = ["curio", "ipython[test]", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"] - -[[package]] -name = "ipython-genutils" -version = "0.2.0" -description = "Vestigial utilities from IPython" -optional = false -python-versions = "*" -files = [ - {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, - {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, -] - -[[package]] -name = "ipywidgets" -version = "7.8.1" -description = "IPython HTML widgets for Jupyter" -optional = false -python-versions = "*" -files = [ - {file = "ipywidgets-7.8.1-py2.py3-none-any.whl", hash = "sha256:29f7056d368bf0a7b35d51cf0c56b58582da57c78bb9f765965fef7c332e807c"}, - {file = "ipywidgets-7.8.1.tar.gz", hash = "sha256:050b87bb9ac11641859af4c36cdb639ca072fb5e121f0f1a401f8a80f9fa008d"}, -] - -[package.dependencies] -comm = ">=0.1.3" -ipython = {version = ">=4.0.0", markers = "python_version >= \"3.3\""} -ipython-genutils = ">=0.2.0,<0.3.0" -jupyterlab-widgets = {version = ">=1.0.0,<3", markers = "python_version >= \"3.6\""} -traitlets = ">=4.3.1" -widgetsnbextension = ">=3.6.6,<3.7.0" - -[package.extras] -test = ["ipykernel", "mock", "pytest (>=3.6.0)", "pytest-cov"] - -[[package]] -name = "isoduration" -version = "20.11.0" -description = "Operations with ISO 8601 durations" -optional = false -python-versions = ">=3.7" -files = [ - {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, - {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, -] - -[package.dependencies] -arrow = ">=0.15.0" - -[[package]] -name = "jax" -version = "0.4.30" -description = "Differentiate, compile, and transform Numpy code." -optional = false -python-versions = ">=3.9" -files = [ - {file = "jax-0.4.30-py3-none-any.whl", hash = "sha256:289b30ae03b52f7f4baf6ef082a9f4e3e29c1080e22d13512c5ecf02d5f1a55b"}, - {file = "jax-0.4.30.tar.gz", hash = "sha256:94d74b5b2db0d80672b61d83f1f63ebf99d2ab7398ec12b2ca0c9d1e97afe577"}, -] - -[package.dependencies] -jaxlib = ">=0.4.27,<=0.4.30" -ml-dtypes = ">=0.2.0" -numpy = [ - {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, - {version = ">=1.23.2", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, -] -opt-einsum = "*" -scipy = [ - {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, - {version = ">=1.9", markers = "python_version < \"3.12\""}, -] - -[package.extras] -ci = ["jaxlib (==0.4.29)"] -cuda = ["jax-cuda12-plugin[with-cuda] (==0.4.30)", "jaxlib (==0.4.30)"] -cuda12 = ["jax-cuda12-plugin[with-cuda] (==0.4.30)", "jaxlib (==0.4.30)"] -cuda12-local = ["jax-cuda12-plugin (==0.4.30)", "jaxlib (==0.4.30)"] -cuda12-pip = ["jax-cuda12-plugin[with-cuda] (==0.4.30)", "jaxlib (==0.4.30)"] -minimum-jaxlib = ["jaxlib (==0.4.27)"] -tpu = ["jaxlib (==0.4.30)", "libtpu-nightly (==0.1.dev20240617)", "requests"] - -[[package]] -name = "jaxlib" -version = "0.4.30" -description = "XLA library for JAX" -optional = false -python-versions = ">=3.9" -files = [ - {file = "jaxlib-0.4.30-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:c40856e28f300938c6824ab1a615166193d6997dec946578823f6d402ad454e5"}, - {file = "jaxlib-0.4.30-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4bdfda6a3c7a2b0cc0a7131009eb279e98ca4a6f25679fabb5302dd135a5e349"}, - {file = "jaxlib-0.4.30-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:28e032c9b394ab7624d89b0d9d3bbcf4d1d71694fe8b3e09d3fe64122eda7b0c"}, - {file = "jaxlib-0.4.30-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:d83f36ef42a403bbf7c7f2da526b34ba286988e170f4df5e58b3bb735417868c"}, - {file = "jaxlib-0.4.30-cp310-cp310-win_amd64.whl", hash = "sha256:a56678b28f96b524ded6da8ef4b38e72a532356d139cfd434da804abf4234e14"}, - {file = "jaxlib-0.4.30-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:bfb5d85b69c29c3c6e8051a0ea715ac1e532d6e54494c8d9c3813dcc00deac30"}, - {file = "jaxlib-0.4.30-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:974998cd8a78550402e6c09935c1f8d850cad9cc19ccd7488bde45b6f7f99c12"}, - {file = "jaxlib-0.4.30-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:e93eb0646b41ba213252b51b0b69096b9cd1d81a35ea85c9d06663b5d11efe45"}, - {file = "jaxlib-0.4.30-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:16b2ab18ea90d2e15941bcf45de37afc2f289a029129c88c8d7aba0404dd0043"}, - {file = "jaxlib-0.4.30-cp311-cp311-win_amd64.whl", hash = "sha256:3a2e2c11c179f8851a72249ba1ae40ae817dfaee9877d23b3b8f7c6b7a012f76"}, - {file = "jaxlib-0.4.30-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:7704db5962b32a2be3cc07185433cbbcc94ed90ee50c84021a3f8a1ecfd66ee3"}, - {file = "jaxlib-0.4.30-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:57090d33477fd0f0c99dc686274882ea75c44c7d712ae42dd2460b10f896131d"}, - {file = "jaxlib-0.4.30-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:0a3850e76278038e21685975a62b622bcf3708485f13125757a0561ee4512940"}, - {file = "jaxlib-0.4.30-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:c58a8071c4e00898282118169f6a5a97eb15a79c2897858f3a732b17891c99ab"}, - {file = "jaxlib-0.4.30-cp312-cp312-win_amd64.whl", hash = "sha256:b7079a5b1ab6864a7d4f2afaa963841451186d22c90f39719a3ff85735ce3915"}, - {file = "jaxlib-0.4.30-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:ea3a00005faafbe3c18b178d3b534208b3b4027b2be6230227e7b87ce399fc29"}, - {file = "jaxlib-0.4.30-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3d31e01191ce8052bd611aaf16ff967d8d0ec0b63f1ea4b199020cecb248d667"}, - {file = "jaxlib-0.4.30-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:11602d5556e8baa2f16314c36518e9be4dfae0c2c256a361403fb29dc9dc79a4"}, - {file = "jaxlib-0.4.30-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:f74a6b0e09df4b5e2ee399ebb9f0e01190e26e84ccb0a758fadb516415c07f18"}, - {file = "jaxlib-0.4.30-cp39-cp39-win_amd64.whl", hash = "sha256:54987e97a22db70f3829b437b9329e4799d653634bacc8b398554d3b90c76b2a"}, -] - -[package.dependencies] -ml-dtypes = ">=0.2.0" -numpy = ">=1.22" -scipy = [ - {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, - {version = ">=1.9", markers = "python_version < \"3.12\""}, -] - -[[package]] -name = "jaxtyping" -version = "0.2.31" -description = "Type annotations and runtime checking for shape and dtype of JAX arrays, and PyTrees." -optional = false -python-versions = "~=3.9" -files = [ - {file = "jaxtyping-0.2.31-py3-none-any.whl", hash = "sha256:04ed0e16ad4327270c8832334aa5d06176f475f3f8bdf7200bebc54afb1e3fd3"}, - {file = "jaxtyping-0.2.31.tar.gz", hash = "sha256:83c7c0bfae1d1ce25801480b5572d96c0f2b889785b4e50bdc25a07058b7bd50"}, -] - -[package.dependencies] -typeguard = "2.13.3" - -[[package]] -name = "jedi" -version = "0.19.1" -description = "An autocompletion tool for Python that can be used for text editors." -optional = false -python-versions = ">=3.6" -files = [ - {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, - {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, -] - -[package.dependencies] -parso = ">=0.8.3,<0.9.0" - -[package.extras] -docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] -qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] -testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] - -[[package]] -name = "jinja2" -version = "3.1.4" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, - {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "jsonpointer" -version = "3.0.0" -description = "Identify specific nodes in a JSON document (RFC 6901)" -optional = false -python-versions = ">=3.7" -files = [ - {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, - {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, -] - -[[package]] -name = "jsonschema" -version = "4.17.3" -description = "An implementation of JSON Schema validation for Python" -optional = false -python-versions = ">=3.7" -files = [ - {file = "jsonschema-4.17.3-py3-none-any.whl", hash = "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"}, - {file = "jsonschema-4.17.3.tar.gz", hash = "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"}, -] - -[package.dependencies] -attrs = ">=17.4.0" -fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} -pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" -rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} -uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} - -[package.extras] -format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] -format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] - -[[package]] -name = "jupyter-cache" -version = "0.4.3" -description = "A defined interface for working with a cache of jupyter notebooks." -optional = false -python-versions = ">=3.6" -files = [ - {file = "jupyter-cache-0.4.3.tar.gz", hash = "sha256:4c9b5431b1d320bc68440c21fa0a155bbeb29c5b979bef72222e244a7bcd54fc"}, - {file = "jupyter_cache-0.4.3-py3-none-any.whl", hash = "sha256:6d5d662d81f565d18009e8dcfd3a56fb876af47eafead2a19ef0045aba8ffe3b"}, -] - -[package.dependencies] -attrs = "*" -nbclient = ">=0.2,<0.6" -nbdime = "*" -nbformat = "*" -sqlalchemy = ">=1.3.12,<1.5" - -[package.extras] -cli = ["click", "click-completion", "click-log", "pyyaml", "tabulate"] -code-style = ["black", "flake8 (>=3.7.0,<3.8.0)", "pre-commit (==1.17.0)"] -rtd = ["myst-nb (>=0.7,<1.0)", "pydata-sphinx-theme", "sphinx-copybutton"] -testing = ["coverage", "ipykernel", "matplotlib", "nbformat (>=5.1)", "numpy", "pandas", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions", "sympy"] - -[[package]] -name = "jupyter-client" -version = "7.4.9" -description = "Jupyter protocol implementation and client libraries" -optional = false -python-versions = ">=3.7" -files = [ - {file = "jupyter_client-7.4.9-py3-none-any.whl", hash = "sha256:214668aaea208195f4c13d28eb272ba79f945fc0cf3f11c7092c20b2ca1980e7"}, - {file = "jupyter_client-7.4.9.tar.gz", hash = "sha256:52be28e04171f07aed8f20e1616a5a552ab9fee9cbbe6c1896ae170c3880d392"}, -] - -[package.dependencies] -entrypoints = "*" -jupyter-core = ">=4.9.2" -nest-asyncio = ">=1.5.4" -python-dateutil = ">=2.8.2" -pyzmq = ">=23.0" -tornado = ">=6.2" -traitlets = "*" - -[package.extras] -doc = ["ipykernel", "myst-parser", "sphinx (>=1.3.6)", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] -test = ["codecov", "coverage", "ipykernel (>=6.12)", "ipython", "mypy", "pre-commit", "pytest", "pytest-asyncio (>=0.18)", "pytest-cov", "pytest-timeout"] - -[[package]] -name = "jupyter-core" -version = "5.7.2" -description = "Jupyter core package. A base package on which Jupyter projects rely." -optional = false -python-versions = ">=3.8" -files = [ - {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, - {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, -] - -[package.dependencies] -platformdirs = ">=2.5" -pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} -traitlets = ">=5.3" - -[package.extras] -docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] -test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] - -[[package]] -name = "jupyter-events" -version = "0.6.3" -description = "Jupyter Event System library" -optional = false -python-versions = ">=3.7" -files = [ - {file = "jupyter_events-0.6.3-py3-none-any.whl", hash = "sha256:57a2749f87ba387cd1bfd9b22a0875b889237dbf2edc2121ebb22bde47036c17"}, - {file = "jupyter_events-0.6.3.tar.gz", hash = "sha256:9a6e9995f75d1b7146b436ea24d696ce3a35bfa8bfe45e0c33c334c79464d0b3"}, -] - -[package.dependencies] -jsonschema = {version = ">=3.2.0", extras = ["format-nongpl"]} -python-json-logger = ">=2.0.4" -pyyaml = ">=5.3" -rfc3339-validator = "*" -rfc3986-validator = ">=0.1.1" -traitlets = ">=5.3" - -[package.extras] -cli = ["click", "rich"] -docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] -test = ["click", "coverage", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "pytest-cov", "rich"] - -[[package]] -name = "jupyter-server" -version = "2.10.0" -description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." -optional = false -python-versions = ">=3.8" -files = [ - {file = "jupyter_server-2.10.0-py3-none-any.whl", hash = "sha256:dde56c9bc3cb52d7b72cc0f696d15d7163603526f1a758eb4a27405b73eab2a5"}, - {file = "jupyter_server-2.10.0.tar.gz", hash = "sha256:47b8f5e63440125cb1bb8957bf12b18453ee5ed9efe42d2f7b2ca66a7019a278"}, -] - -[package.dependencies] -anyio = ">=3.1.0" -argon2-cffi = "*" -jinja2 = "*" -jupyter-client = ">=7.4.4" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" -jupyter-events = ">=0.6.0" -jupyter-server-terminals = "*" -nbconvert = ">=6.4.4" -nbformat = ">=5.3.0" -overrides = "*" -packaging = "*" -prometheus-client = "*" -pywinpty = {version = "*", markers = "os_name == \"nt\""} -pyzmq = ">=24" -send2trash = ">=1.8.2" -terminado = ">=0.8.3" -tornado = ">=6.2.0" -traitlets = ">=5.6.0" -websocket-client = "*" - -[package.extras] -docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] -test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] - -[[package]] -name = "jupyter-server-mathjax" -version = "0.2.6" -description = "MathJax resources as a Jupyter Server Extension." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jupyter_server_mathjax-0.2.6-py3-none-any.whl", hash = "sha256:416389dde2010df46d5fbbb7adb087a5607111070af65a1445391040f2babb5e"}, - {file = "jupyter_server_mathjax-0.2.6.tar.gz", hash = "sha256:bb1e6b6dc0686c1fe386a22b5886163db548893a99c2810c36399e9c4ca23943"}, -] - -[package.dependencies] -jupyter-server = ">=1.1" - -[package.extras] -test = ["jupyter-server[test]", "pytest"] - -[[package]] -name = "jupyter-server-terminals" -version = "0.5.3" -description = "A Jupyter Server Extension Providing Terminals." -optional = false -python-versions = ">=3.8" -files = [ - {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, - {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, -] - -[package.dependencies] -pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} -terminado = ">=0.8.3" - -[package.extras] -docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] -test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] - -[[package]] -name = "jupyter-sphinx" -version = "0.3.2" -description = "Jupyter Sphinx Extensions" -optional = false -python-versions = ">= 3.6" -files = [ - {file = "jupyter_sphinx-0.3.2-py3-none-any.whl", hash = "sha256:301e36d0fb3007bb5802f6b65b60c24990eb99c983332a2ab6eecff385207dc9"}, - {file = "jupyter_sphinx-0.3.2.tar.gz", hash = "sha256:37fc9408385c45326ac79ca0452fbd7ae2bf0e97842d626d2844d4830e30aaf2"}, -] - -[package.dependencies] -IPython = "*" -ipywidgets = ">=7.0.0" -nbconvert = ">=5.5" -nbformat = "*" -Sphinx = ">=2" - -[[package]] -name = "jupyterlab-pygments" -version = "0.3.0" -description = "Pygments theme using JupyterLab CSS variables" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, - {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, -] - -[[package]] -name = "jupyterlab-widgets" -version = "1.1.7" -description = "A JupyterLab extension." -optional = false -python-versions = ">=3.6" -files = [ - {file = "jupyterlab_widgets-1.1.7-py3-none-any.whl", hash = "sha256:0c4548cf42032e490447e4180f2c7d49ba5c30b42164992b38fb8c9d56c4e1b2"}, - {file = "jupyterlab_widgets-1.1.7.tar.gz", hash = "sha256:318dab34267915d658e7b0dc57433ff0ce0d52b3e283986b73b66f7ab9017ae8"}, -] - -[[package]] -name = "kiwisolver" -version = "1.4.5" -description = "A fast implementation of the Cassowary constraint solver" -optional = false -python-versions = ">=3.7" -files = [ - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, - {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, -] - -[[package]] -name = "lxml" -version = "5.2.2" -description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." -optional = false -python-versions = ">=3.6" -files = [ - {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:364d03207f3e603922d0d3932ef363d55bbf48e3647395765f9bfcbdf6d23632"}, - {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50127c186f191b8917ea2fb8b206fbebe87fd414a6084d15568c27d0a21d60db"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74e4f025ef3db1c6da4460dd27c118d8cd136d0391da4e387a15e48e5c975147"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981a06a3076997adf7c743dcd0d7a0415582661e2517c7d961493572e909aa1d"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aef5474d913d3b05e613906ba4090433c515e13ea49c837aca18bde190853dff"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e275ea572389e41e8b039ac076a46cb87ee6b8542df3fff26f5baab43713bca"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5b65529bb2f21ac7861a0e94fdbf5dc0daab41497d18223b46ee8515e5ad297"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bcc98f911f10278d1daf14b87d65325851a1d29153caaf146877ec37031d5f36"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:b47633251727c8fe279f34025844b3b3a3e40cd1b198356d003aa146258d13a2"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:fbc9d316552f9ef7bba39f4edfad4a734d3d6f93341232a9dddadec4f15d425f"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:13e69be35391ce72712184f69000cda04fc89689429179bc4c0ae5f0b7a8c21b"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3b6a30a9ab040b3f545b697cb3adbf3696c05a3a68aad172e3fd7ca73ab3c835"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a233bb68625a85126ac9f1fc66d24337d6e8a0f9207b688eec2e7c880f012ec0"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:dfa7c241073d8f2b8e8dbc7803c434f57dbb83ae2a3d7892dd068d99e96efe2c"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1a7aca7964ac4bb07680d5c9d63b9d7028cace3e2d43175cb50bba8c5ad33316"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae4073a60ab98529ab8a72ebf429f2a8cc612619a8c04e08bed27450d52103c0"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ffb2be176fed4457e445fe540617f0252a72a8bc56208fd65a690fdb1f57660b"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e290d79a4107d7d794634ce3e985b9ae4f920380a813717adf61804904dc4393"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96e85aa09274955bb6bd483eaf5b12abadade01010478154b0ec70284c1b1526"}, - {file = "lxml-5.2.2-cp310-cp310-win32.whl", hash = "sha256:f956196ef61369f1685d14dad80611488d8dc1ef00be57c0c5a03064005b0f30"}, - {file = "lxml-5.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:875a3f90d7eb5c5d77e529080d95140eacb3c6d13ad5b616ee8095447b1d22e7"}, - {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45f9494613160d0405682f9eee781c7e6d1bf45f819654eb249f8f46a2c22545"}, - {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0b3f2df149efb242cee2ffdeb6674b7f30d23c9a7af26595099afaf46ef4e88"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d28cb356f119a437cc58a13f8135ab8a4c8ece18159eb9194b0d269ec4e28083"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:657a972f46bbefdbba2d4f14413c0d079f9ae243bd68193cb5061b9732fa54c1"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b9ea10063efb77a965a8d5f4182806fbf59ed068b3c3fd6f30d2ac7bee734"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07542787f86112d46d07d4f3c4e7c760282011b354d012dc4141cc12a68cef5f"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:303f540ad2dddd35b92415b74b900c749ec2010e703ab3bfd6660979d01fd4ed"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2eb2227ce1ff998faf0cd7fe85bbf086aa41dfc5af3b1d80867ecfe75fb68df3"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:1d8a701774dfc42a2f0b8ccdfe7dbc140500d1049e0632a611985d943fcf12df"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:56793b7a1a091a7c286b5f4aa1fe4ae5d1446fe742d00cdf2ffb1077865db10d"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eb00b549b13bd6d884c863554566095bf6fa9c3cecb2e7b399c4bc7904cb33b5"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a2569a1f15ae6c8c64108a2cd2b4a858fc1e13d25846be0666fc144715e32ab"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:8cf85a6e40ff1f37fe0f25719aadf443686b1ac7652593dc53c7ef9b8492b115"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:d237ba6664b8e60fd90b8549a149a74fcc675272e0e95539a00522e4ca688b04"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0b3f5016e00ae7630a4b83d0868fca1e3d494c78a75b1c7252606a3a1c5fc2ad"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23441e2b5339bc54dc949e9e675fa35efe858108404ef9aa92f0456929ef6fe8"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2fb0ba3e8566548d6c8e7dd82a8229ff47bd8fb8c2da237607ac8e5a1b8312e5"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:79d1fb9252e7e2cfe4de6e9a6610c7cbb99b9708e2c3e29057f487de5a9eaefa"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6dcc3d17eac1df7859ae01202e9bb11ffa8c98949dcbeb1069c8b9a75917e01b"}, - {file = "lxml-5.2.2-cp311-cp311-win32.whl", hash = "sha256:4c30a2f83677876465f44c018830f608fa3c6a8a466eb223535035fbc16f3438"}, - {file = "lxml-5.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:49095a38eb333aaf44c06052fd2ec3b8f23e19747ca7ec6f6c954ffea6dbf7be"}, - {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7429e7faa1a60cad26ae4227f4dd0459efde239e494c7312624ce228e04f6391"}, - {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:50ccb5d355961c0f12f6cf24b7187dbabd5433f29e15147a67995474f27d1776"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc911208b18842a3a57266d8e51fc3cfaccee90a5351b92079beed912a7914c2"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33ce9e786753743159799fdf8e92a5da351158c4bfb6f2db0bf31e7892a1feb5"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec87c44f619380878bd49ca109669c9f221d9ae6883a5bcb3616785fa8f94c97"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08ea0f606808354eb8f2dfaac095963cb25d9d28e27edcc375d7b30ab01abbf6"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75a9632f1d4f698b2e6e2e1ada40e71f369b15d69baddb8968dcc8e683839b18"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74da9f97daec6928567b48c90ea2c82a106b2d500f397eeb8941e47d30b1ca85"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:0969e92af09c5687d769731e3f39ed62427cc72176cebb54b7a9d52cc4fa3b73"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:9164361769b6ca7769079f4d426a41df6164879f7f3568be9086e15baca61466"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d26a618ae1766279f2660aca0081b2220aca6bd1aa06b2cf73f07383faf48927"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab67ed772c584b7ef2379797bf14b82df9aa5f7438c5b9a09624dd834c1c1aaf"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:3d1e35572a56941b32c239774d7e9ad724074d37f90c7a7d499ab98761bd80cf"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:8268cbcd48c5375f46e000adb1390572c98879eb4f77910c6053d25cc3ac2c67"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e282aedd63c639c07c3857097fc0e236f984ceb4089a8b284da1c526491e3f3d"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfdc2bfe69e9adf0df4915949c22a25b39d175d599bf98e7ddf620a13678585"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4aefd911793b5d2d7a921233a54c90329bf3d4a6817dc465f12ffdfe4fc7b8fe"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:8b8df03a9e995b6211dafa63b32f9d405881518ff1ddd775db4e7b98fb545e1c"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f11ae142f3a322d44513de1018b50f474f8f736bc3cd91d969f464b5bfef8836"}, - {file = "lxml-5.2.2-cp312-cp312-win32.whl", hash = "sha256:16a8326e51fcdffc886294c1e70b11ddccec836516a343f9ed0f82aac043c24a"}, - {file = "lxml-5.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:bbc4b80af581e18568ff07f6395c02114d05f4865c2812a1f02f2eaecf0bfd48"}, - {file = "lxml-5.2.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e3d9d13603410b72787579769469af730c38f2f25505573a5888a94b62b920f8"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38b67afb0a06b8575948641c1d6d68e41b83a3abeae2ca9eed2ac59892b36706"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c689d0d5381f56de7bd6966a4541bff6e08bf8d3871bbd89a0c6ab18aa699573"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:cf2a978c795b54c539f47964ec05e35c05bd045db5ca1e8366988c7f2fe6b3ce"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:739e36ef7412b2bd940f75b278749106e6d025e40027c0b94a17ef7968d55d56"}, - {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d8bbcd21769594dbba9c37d3c819e2d5847656ca99c747ddb31ac1701d0c0ed9"}, - {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:2304d3c93f2258ccf2cf7a6ba8c761d76ef84948d87bf9664e14d203da2cd264"}, - {file = "lxml-5.2.2-cp36-cp36m-win32.whl", hash = "sha256:02437fb7308386867c8b7b0e5bc4cd4b04548b1c5d089ffb8e7b31009b961dc3"}, - {file = "lxml-5.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edcfa83e03370032a489430215c1e7783128808fd3e2e0a3225deee278585196"}, - {file = "lxml-5.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:28bf95177400066596cdbcfc933312493799382879da504633d16cf60bba735b"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a745cc98d504d5bd2c19b10c79c61c7c3df9222629f1b6210c0368177589fb8"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b336b0416828022bfd5a2e3083e7f5ba54b96242159f83c7e3eebaec752f1716"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:4bc6cb140a7a0ad1f7bc37e018d0ed690b7b6520ade518285dc3171f7a117905"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:57f0a0bbc9868e10ebe874e9f129d2917750adf008fe7b9c1598c0fbbfdde6a6"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:60499fe961b21264e17a471ec296dcbf4365fbea611bf9e303ab69db7159ce61"}, - {file = "lxml-5.2.2-cp37-cp37m-win32.whl", hash = "sha256:d9b342c76003c6b9336a80efcc766748a333573abf9350f4094ee46b006ec18f"}, - {file = "lxml-5.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b16db2770517b8799c79aa80f4053cd6f8b716f21f8aca962725a9565ce3ee40"}, - {file = "lxml-5.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7ed07b3062b055d7a7f9d6557a251cc655eed0b3152b76de619516621c56f5d3"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f60fdd125d85bf9c279ffb8e94c78c51b3b6a37711464e1f5f31078b45002421"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a7e24cb69ee5f32e003f50e016d5fde438010c1022c96738b04fc2423e61706"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23cfafd56887eaed93d07bc4547abd5e09d837a002b791e9767765492a75883f"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:19b4e485cd07b7d83e3fe3b72132e7df70bfac22b14fe4bf7a23822c3a35bff5"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7ce7ad8abebe737ad6143d9d3bf94b88b93365ea30a5b81f6877ec9c0dee0a48"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e49b052b768bb74f58c7dda4e0bdf7b79d43a9204ca584ffe1fb48a6f3c84c66"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d14a0d029a4e176795cef99c056d58067c06195e0c7e2dbb293bf95c08f772a3"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:be49ad33819d7dcc28a309b86d4ed98e1a65f3075c6acd3cd4fe32103235222b"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a6d17e0370d2516d5bb9062c7b4cb731cff921fc875644c3d751ad857ba9c5b1"}, - {file = "lxml-5.2.2-cp38-cp38-win32.whl", hash = "sha256:5b8c041b6265e08eac8a724b74b655404070b636a8dd6d7a13c3adc07882ef30"}, - {file = "lxml-5.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:f61efaf4bed1cc0860e567d2ecb2363974d414f7f1f124b1df368bbf183453a6"}, - {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fb91819461b1b56d06fa4bcf86617fac795f6a99d12239fb0c68dbeba41a0a30"}, - {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d4ed0c7cbecde7194cd3228c044e86bf73e30a23505af852857c09c24e77ec5d"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54401c77a63cc7d6dc4b4e173bb484f28a5607f3df71484709fe037c92d4f0ed"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:625e3ef310e7fa3a761d48ca7ea1f9d8718a32b1542e727d584d82f4453d5eeb"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:519895c99c815a1a24a926d5b60627ce5ea48e9f639a5cd328bda0515ea0f10c"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c7079d5eb1c1315a858bbf180000757db8ad904a89476653232db835c3114001"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:343ab62e9ca78094f2306aefed67dcfad61c4683f87eee48ff2fd74902447726"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:cd9e78285da6c9ba2d5c769628f43ef66d96ac3085e59b10ad4f3707980710d3"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:546cf886f6242dff9ec206331209db9c8e1643ae642dea5fdbecae2453cb50fd"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:02f6a8eb6512fdc2fd4ca10a49c341c4e109aa6e9448cc4859af5b949622715a"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:339ee4a4704bc724757cd5dd9dc8cf4d00980f5d3e6e06d5847c1b594ace68ab"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0a028b61a2e357ace98b1615fc03f76eb517cc028993964fe08ad514b1e8892d"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f90e552ecbad426eab352e7b2933091f2be77115bb16f09f78404861c8322981"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d83e2d94b69bf31ead2fa45f0acdef0757fa0458a129734f59f67f3d2eb7ef32"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a02d3c48f9bb1e10c7788d92c0c7db6f2002d024ab6e74d6f45ae33e3d0288a3"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6d68ce8e7b2075390e8ac1e1d3a99e8b6372c694bbe612632606d1d546794207"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:453d037e09a5176d92ec0fd282e934ed26d806331a8b70ab431a81e2fbabf56d"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:3b019d4ee84b683342af793b56bb35034bd749e4cbdd3d33f7d1107790f8c472"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb3942960f0beb9f46e2a71a3aca220d1ca32feb5a398656be934320804c0df9"}, - {file = "lxml-5.2.2-cp39-cp39-win32.whl", hash = "sha256:ac6540c9fff6e3813d29d0403ee7a81897f1d8ecc09a8ff84d2eea70ede1cdbf"}, - {file = "lxml-5.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:610b5c77428a50269f38a534057444c249976433f40f53e3b47e68349cca1425"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b537bd04d7ccd7c6350cdaaaad911f6312cbd61e6e6045542f781c7f8b2e99d2"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4820c02195d6dfb7b8508ff276752f6b2ff8b64ae5d13ebe02e7667e035000b9"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a09f6184f17a80897172863a655467da2b11151ec98ba8d7af89f17bf63dae"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:76acba4c66c47d27c8365e7c10b3d8016a7da83d3191d053a58382311a8bf4e1"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b128092c927eaf485928cec0c28f6b8bead277e28acf56800e972aa2c2abd7a2"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ae791f6bd43305aade8c0e22f816b34f3b72b6c820477aab4d18473a37e8090b"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a2f6a1bc2460e643785a2cde17293bd7a8f990884b822f7bca47bee0a82fc66b"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e8d351ff44c1638cb6e980623d517abd9f580d2e53bfcd18d8941c052a5a009"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bec4bd9133420c5c52d562469c754f27c5c9e36ee06abc169612c959bd7dbb07"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:55ce6b6d803890bd3cc89975fca9de1dff39729b43b73cb15ddd933b8bc20484"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8ab6a358d1286498d80fe67bd3d69fcbc7d1359b45b41e74c4a26964ca99c3f8"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:06668e39e1f3c065349c51ac27ae430719d7806c026fec462e5693b08b95696b"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9cd5323344d8ebb9fb5e96da5de5ad4ebab993bbf51674259dbe9d7a18049525"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89feb82ca055af0fe797a2323ec9043b26bc371365847dbe83c7fd2e2f181c34"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e481bba1e11ba585fb06db666bfc23dbe181dbafc7b25776156120bf12e0d5a6"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d6c6ea6a11ca0ff9cd0390b885984ed31157c168565702959c25e2191674a14"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3d98de734abee23e61f6b8c2e08a88453ada7d6486dc7cdc82922a03968928db"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:69ab77a1373f1e7563e0fb5a29a8440367dec051da6c7405333699d07444f511"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:34e17913c431f5ae01d8658dbf792fdc457073dcdfbb31dc0cc6ab256e664a8d"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05f8757b03208c3f50097761be2dea0aba02e94f0dc7023ed73a7bb14ff11eb0"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a520b4f9974b0a0a6ed73c2154de57cdfd0c8800f4f15ab2b73238ffed0b36e"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5e097646944b66207023bc3c634827de858aebc226d5d4d6d16f0b77566ea182"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b5e4ef22ff25bfd4ede5f8fb30f7b24446345f3e79d9b7455aef2836437bc38a"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ff69a9a0b4b17d78170c73abe2ab12084bdf1691550c5629ad1fe7849433f324"}, - {file = "lxml-5.2.2.tar.gz", hash = "sha256:bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87"}, -] - -[package.extras] -cssselect = ["cssselect (>=0.7)"] -html-clean = ["lxml-html-clean"] -html5 = ["html5lib"] -htmlsoup = ["BeautifulSoup4"] -source = ["Cython (>=3.0.10)"] - -[[package]] -name = "markdown-it-py" -version = "1.1.0" -description = "Python port of markdown-it. Markdown parsing, done right!" -optional = false -python-versions = "~=3.6" -files = [ - {file = "markdown-it-py-1.1.0.tar.gz", hash = "sha256:36be6bb3ad987bfdb839f5ba78ddf094552ca38ccbd784ae4f74a4e1419fc6e3"}, - {file = "markdown_it_py-1.1.0-py3-none-any.whl", hash = "sha256:98080fc0bc34c4f2bcf0846a096a9429acbd9d5d8e67ed34026c03c61c464389"}, -] - -[package.dependencies] -attrs = ">=19,<22" - -[package.extras] -code-style = ["pre-commit (==2.6)"] -compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.2.2,<3.3.0)", "mistletoe-ebp (>=0.10.0,<0.11.0)", "mistune (>=0.8.4,<0.9.0)", "panflute (>=1.12,<2.0)"] -linkify = ["linkify-it-py (>=1.0,<2.0)"] -plugins = ["mdit-py-plugins"] -rtd = ["myst-nb (==0.13.0a1)", "pyyaml", "sphinx (>=2,<4)", "sphinx-book-theme", "sphinx-copybutton", "sphinx-panels (>=0.4.0,<0.5.0)"] -testing = ["coverage", "psutil", "pytest (>=3.6,<4)", "pytest-benchmark (>=3.2,<4.0)", "pytest-cov", "pytest-regressions"] - -[[package]] -name = "markupsafe" -version = "2.1.5" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.7" -files = [ - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, -] - -[[package]] -name = "matplotlib" -version = "3.9.0" -description = "Python plotting package" -optional = false -python-versions = ">=3.9" -files = [ - {file = "matplotlib-3.9.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2bcee1dffaf60fe7656183ac2190bd630842ff87b3153afb3e384d966b57fe56"}, - {file = "matplotlib-3.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f988bafb0fa39d1074ddd5bacd958c853e11def40800c5824556eb630f94d3b"}, - {file = "matplotlib-3.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe428e191ea016bb278758c8ee82a8129c51d81d8c4bc0846c09e7e8e9057241"}, - {file = "matplotlib-3.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaf3978060a106fab40c328778b148f590e27f6fa3cd15a19d6892575bce387d"}, - {file = "matplotlib-3.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2e7f03e5cbbfacdd48c8ea394d365d91ee8f3cae7e6ec611409927b5ed997ee4"}, - {file = "matplotlib-3.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:13beb4840317d45ffd4183a778685e215939be7b08616f431c7795276e067463"}, - {file = "matplotlib-3.9.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:063af8587fceeac13b0936c42a2b6c732c2ab1c98d38abc3337e430e1ff75e38"}, - {file = "matplotlib-3.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a2fa6d899e17ddca6d6526cf6e7ba677738bf2a6a9590d702c277204a7c6152"}, - {file = "matplotlib-3.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:550cdda3adbd596078cca7d13ed50b77879104e2e46392dcd7c75259d8f00e85"}, - {file = "matplotlib-3.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76cce0f31b351e3551d1f3779420cf8f6ec0d4a8cf9c0237a3b549fd28eb4abb"}, - {file = "matplotlib-3.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c53aeb514ccbbcbab55a27f912d79ea30ab21ee0531ee2c09f13800efb272674"}, - {file = "matplotlib-3.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:a5be985db2596d761cdf0c2eaf52396f26e6a64ab46bd8cd810c48972349d1be"}, - {file = "matplotlib-3.9.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c79f3a585f1368da6049318bdf1f85568d8d04b2e89fc24b7e02cc9b62017382"}, - {file = "matplotlib-3.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bdd1ecbe268eb3e7653e04f451635f0fb0f77f07fd070242b44c076c9106da84"}, - {file = "matplotlib-3.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d38e85a1a6d732f645f1403ce5e6727fd9418cd4574521d5803d3d94911038e5"}, - {file = "matplotlib-3.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a490715b3b9984fa609116481b22178348c1a220a4499cda79132000a79b4db"}, - {file = "matplotlib-3.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8146ce83cbc5dc71c223a74a1996d446cd35cfb6a04b683e1446b7e6c73603b7"}, - {file = "matplotlib-3.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:d91a4ffc587bacf5c4ce4ecfe4bcd23a4b675e76315f2866e588686cc97fccdf"}, - {file = "matplotlib-3.9.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:616fabf4981a3b3c5a15cd95eba359c8489c4e20e03717aea42866d8d0465956"}, - {file = "matplotlib-3.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cd53c79fd02f1c1808d2cfc87dd3cf4dbc63c5244a58ee7944497107469c8d8a"}, - {file = "matplotlib-3.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06a478f0d67636554fa78558cfbcd7b9dba85b51f5c3b5a0c9be49010cf5f321"}, - {file = "matplotlib-3.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81c40af649d19c85f8073e25e5806926986806fa6d54be506fbf02aef47d5a89"}, - {file = "matplotlib-3.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52146fc3bd7813cc784562cb93a15788be0b2875c4655e2cc6ea646bfa30344b"}, - {file = "matplotlib-3.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:0fc51eaa5262553868461c083d9adadb11a6017315f3a757fc45ec6ec5f02888"}, - {file = "matplotlib-3.9.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bd4f2831168afac55b881db82a7730992aa41c4f007f1913465fb182d6fb20c0"}, - {file = "matplotlib-3.9.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:290d304e59be2b33ef5c2d768d0237f5bd132986bdcc66f80bc9bcc300066a03"}, - {file = "matplotlib-3.9.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff2e239c26be4f24bfa45860c20ffccd118d270c5b5d081fa4ea409b5469fcd"}, - {file = "matplotlib-3.9.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:af4001b7cae70f7eaacfb063db605280058246de590fa7874f00f62259f2df7e"}, - {file = "matplotlib-3.9.0.tar.gz", hash = "sha256:e6d29ea6c19e34b30fb7d88b7081f869a03014f66fe06d62cc77d5a6ea88ed7a"}, -] - -[package.dependencies] -contourpy = ">=1.0.1" -cycler = ">=0.10" -fonttools = ">=4.22.0" -kiwisolver = ">=1.3.1" -numpy = ">=1.23" -packaging = ">=20.0" -pillow = ">=8" -pyparsing = ">=2.3.1" -python-dateutil = ">=2.7" - -[package.extras] -dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] - -[[package]] -name = "matplotlib-inline" -version = "0.1.7" -description = "Inline Matplotlib backend for Jupyter" -optional = false -python-versions = ">=3.8" -files = [ - {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, - {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, -] - -[package.dependencies] -traitlets = "*" - -[[package]] -name = "mctx" -version = "0.0.5" -description = "Monte Carlo tree search in JAX." -optional = false -python-versions = ">=3.9" -files = [ - {file = "mctx-0.0.5-py3-none-any.whl", hash = "sha256:d263830a1e44a16fe2ede5ed5b37fd83626459bfccbb1ab814a6bd49bf62ffd3"}, - {file = "mctx-0.0.5.tar.gz", hash = "sha256:e9f669bf4fd4c4f61837be6f9ab0ca60180945108c36bcdf5beaabc481020e21"}, -] - -[package.dependencies] -chex = ">=0.0.8" -jax = ">=0.1.55" -jaxlib = ">=0.1.37" - -[[package]] -name = "mdit-py-plugins" -version = "0.2.8" -description = "Collection of plugins for markdown-it-py" -optional = false -python-versions = "~=3.6" -files = [ - {file = "mdit-py-plugins-0.2.8.tar.gz", hash = "sha256:5991cef645502e80a5388ec4fc20885d2313d4871e8b8e320ca2de14ac0c015f"}, - {file = "mdit_py_plugins-0.2.8-py3-none-any.whl", hash = "sha256:1833bf738e038e35d89cb3a07eb0d227ed647ce7dd357579b65343740c6d249c"}, -] - -[package.dependencies] -markdown-it-py = ">=1.0,<2.0" - -[package.extras] -code-style = ["pre-commit (==2.6)"] -rtd = ["myst-parser (==0.14.0a3)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] -testing = ["coverage", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"] - -[[package]] -name = "mediapy" -version = "1.2.2" -description = "Read/write/show images and videos in an IPython notebook" -optional = false -python-versions = ">=3.8" -files = [ - {file = "mediapy-1.2.2-py3-none-any.whl", hash = "sha256:2b159c385120c6eca9c88ccf96a19fb2b5b5937c788cf430db637d27270618ba"}, - {file = "mediapy-1.2.2.tar.gz", hash = "sha256:42d9a1aa93c183550b824dbb4f0de5da61aa5c84db8f01f063acd1f23b90ef0a"}, -] - -[package.dependencies] -ipython = "*" -matplotlib = "*" -numpy = "*" -Pillow = "*" - -[package.extras] -dev = ["absl-py", "pyink", "pylint (>=2.6.0)", "pytest", "pytest-xdist", "pytype"] - -[[package]] -name = "mistune" -version = "0.8.4" -description = "The fastest markdown parser in pure Python" -optional = false -python-versions = "*" -files = [ - {file = "mistune-0.8.4-py2.py3-none-any.whl", hash = "sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4"}, - {file = "mistune-0.8.4.tar.gz", hash = "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e"}, -] - -[[package]] -name = "ml-dtypes" -version = "0.4.0" -description = "" -optional = false -python-versions = ">=3.9" -files = [ - {file = "ml_dtypes-0.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:93afe37f3a879d652ec9ef1fc47612388890660a2657fbb5747256c3b818fd81"}, - {file = "ml_dtypes-0.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bb83fd064db43e67e67d021e547698af4c8d5c6190f2e9b1c53c09f6ff5531d"}, - {file = "ml_dtypes-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03e7cda6ef164eed0abb31df69d2c00c3a5ab3e2610b6d4c42183a43329c72a5"}, - {file = "ml_dtypes-0.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:a15d96d090aebb55ee85173d1775ae325a001aab607a76c8ea0b964ccd6b5364"}, - {file = "ml_dtypes-0.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bdf689be7351cc3c95110c910c1b864002f113e682e44508910c849e144f3df1"}, - {file = "ml_dtypes-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c83e4d443962d891d51669ff241d5aaad10a8d3d37a81c5532a45419885d591c"}, - {file = "ml_dtypes-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1e2f4237b459a63c97c2c9f449baa637d7e4c20addff6a9bac486f22432f3b6"}, - {file = "ml_dtypes-0.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:75b4faf99d0711b81f393db36d210b4255fd419f6f790bc6c1b461f95ffb7a9e"}, - {file = "ml_dtypes-0.4.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ee9f91d4c4f9959a7e1051c141dc565f39e54435618152219769e24f5e9a4d06"}, - {file = "ml_dtypes-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad6849a2db386b38e4d54fe13eb3293464561780531a918f8ef4c8169170dd49"}, - {file = "ml_dtypes-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa32979ebfde3a0d7c947cafbf79edc1ec77ac05ad0780ee86c1d8df70f2259"}, - {file = "ml_dtypes-0.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:3b67ec73a697c88c1122038e0de46520e48dc2ec876d42cf61bc5efe3c0b7675"}, - {file = "ml_dtypes-0.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:41affb38fdfe146e3db226cf2953021184d6f0c4ffab52136613e9601706e368"}, - {file = "ml_dtypes-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43cf4356a0fe2eeac6d289018d0734e17a403bdf1fd911953c125dd0358edcc0"}, - {file = "ml_dtypes-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1724ddcdf5edbaf615a62110af47407f1719b8d02e68ccee60683acb5f74da1"}, - {file = "ml_dtypes-0.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:723af6346447268a3cf0b7356e963d80ecb5732b5279b2aa3fa4b9fc8297c85e"}, - {file = "ml_dtypes-0.4.0.tar.gz", hash = "sha256:eaf197e72f4f7176a19fe3cb8b61846b38c6757607e7bf9cd4b1d84cd3e74deb"}, -] - -[package.dependencies] -numpy = [ - {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, - {version = ">=1.23.3", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, -] - -[package.extras] -dev = ["absl-py", "pyink", "pylint (>=2.6.0)", "pytest", "pytest-xdist"] - -[[package]] -name = "multimethod" -version = "1.11.2" -description = "Multiple argument dispatching." -optional = false -python-versions = ">=3.9" -files = [ - {file = "multimethod-1.11.2-py3-none-any.whl", hash = "sha256:cb338f09395c0ee87d36c7691cdd794d13d8864358082cf1205f812edd5ce05a"}, - {file = "multimethod-1.11.2.tar.gz", hash = "sha256:7f2a4863967142e6db68632fef9cd79053c09670ba0c5f113301e245140bba5c"}, -] - -[[package]] -name = "multipledispatch" -version = "1.0.0" -description = "Multiple dispatch" -optional = false -python-versions = "*" -files = [ - {file = "multipledispatch-1.0.0-py3-none-any.whl", hash = "sha256:0c53cd8b077546da4e48869f49b13164bebafd0c2a5afceb6bb6a316e7fb46e4"}, - {file = "multipledispatch-1.0.0.tar.gz", hash = "sha256:5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0"}, -] - -[[package]] -name = "myst-nb" -version = "0.13.2" -description = "A Jupyter Notebook Sphinx reader built on top of the MyST markdown parser." -optional = false -python-versions = ">=3.6" -files = [ - {file = "myst-nb-0.13.2.tar.gz", hash = "sha256:81e0a4f186bb35c487f5443c7005a474d68ffb58f518f469102d1db7b452066a"}, - {file = "myst_nb-0.13.2-py3-none-any.whl", hash = "sha256:1b9ea3a04c9e0eee05145aa297d2feeabb94c4e23e3047b92efa011ddba4f4b4"}, -] - -[package.dependencies] -docutils = ">=0.15,<0.18" -importlib-metadata = "*" -ipython = "*" -ipywidgets = ">=7.0.0,<8" -jupyter-cache = ">=0.4.1,<0.5.0" -jupyter-sphinx = ">=0.3.2,<0.4.0" -myst-parser = ">=0.15.2,<0.16.0" -nbconvert = ">=5.6,<7" -nbformat = ">=5.0,<6.0" -pyyaml = "*" -sphinx = ">=3.1,<5" -sphinx-togglebutton = ">=0.3.0,<0.4.0" - -[package.extras] -code-style = ["pre-commit (>=2.12,<3.0)"] -rtd = ["alabaster", "altair", "bokeh", "coconut (>=1.4.3,<1.5.0)", "ipykernel (>=5.5,<6.0)", "ipywidgets", "jupytext (>=1.11.2,<1.12.0)", "matplotlib", "numpy", "pandas", "plotly", "sphinx-book-theme (>=0.1.0,<0.2.0)", "sphinx-copybutton", "sphinx-panels (>=0.4.1,<0.5.0)", "sphinxcontrib-bibtex", "sympy"] -testing = ["coverage (<5.0)", "ipykernel (>=5.5,<6.0)", "ipython (<8)", "jupytext (>=1.11.2,<1.12.0)", "matplotlib (>=3.3.0,<3.4.0)", "numpy", "pandas (<1.4)", "pytest (>=5.4,<6.0)", "pytest-cov (>=2.8,<3.0)", "pytest-regressions", "sympy"] - -[[package]] -name = "myst-parser" -version = "0.15.2" -description = "An extended commonmark compliant parser, with bridges to docutils & sphinx." -optional = false -python-versions = ">=3.6" -files = [ - {file = "myst-parser-0.15.2.tar.gz", hash = "sha256:f7f3b2d62db7655cde658eb5d62b2ec2a4631308137bd8d10f296a40d57bbbeb"}, - {file = "myst_parser-0.15.2-py3-none-any.whl", hash = "sha256:40124b6f27a4c42ac7f06b385e23a9dcd03d84801e9c7130b59b3729a554b1f9"}, -] - -[package.dependencies] -docutils = ">=0.15,<0.18" -jinja2 = "*" -markdown-it-py = ">=1.0.0,<2.0.0" -mdit-py-plugins = ">=0.2.8,<0.3.0" -pyyaml = "*" -sphinx = ">=3.1,<5" - -[package.extras] -code-style = ["pre-commit (>=2.12,<3.0)"] -linkify = ["linkify-it-py (>=1.0,<2.0)"] -rtd = ["ipython", "sphinx-book-theme (>=0.1.0,<0.2.0)", "sphinx-panels (>=0.5.2,<0.6.0)", "sphinxcontrib-bibtex (>=2.1,<3.0)", "sphinxcontrib.mermaid (>=0.6.3,<0.7.0)", "sphinxext-opengraph (>=0.4.2,<0.5.0)", "sphinxext-rediraffe (>=0.2,<1.0)"] -testing = ["beautifulsoup4", "coverage", "docutils (>=0.17.0,<0.18.0)", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"] - -[[package]] -name = "nbclassic" -version = "1.1.0" -description = "Jupyter Notebook as a Jupyter Server extension." -optional = false -python-versions = ">=3.7" -files = [ - {file = "nbclassic-1.1.0-py3-none-any.whl", hash = "sha256:8c0fd6e36e320a18657ff44ed96c3a400f17a903a3744fc322303a515778f2ba"}, - {file = "nbclassic-1.1.0.tar.gz", hash = "sha256:77b77ba85f9e988f9bad85df345b514e9e64c7f0e822992ab1df4a78ac64fc1e"}, -] - -[package.dependencies] -ipykernel = "*" -ipython-genutils = "*" -nest-asyncio = ">=1.5" -notebook-shim = ">=0.2.3" - -[package.extras] -docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] -json-logging = ["json-logging"] -test = ["coverage", "nbval", "pytest", "pytest-cov", "pytest-jupyter", "pytest-playwright", "pytest-tornasync", "requests", "requests-unixsocket", "testpath"] - -[[package]] -name = "nbclient" -version = "0.5.13" -description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "nbclient-0.5.13-py3-none-any.whl", hash = "sha256:47ac905af59379913c1f8f541098d2550153cf8dc58553cbe18c702b181518b0"}, - {file = "nbclient-0.5.13.tar.gz", hash = "sha256:40c52c9b5e3c31faecaee69f202b3f53e38d7c1c563de0fadde9d7eda0fdafe8"}, -] - -[package.dependencies] -jupyter-client = ">=6.1.5" -nbformat = ">=5.0" -nest-asyncio = "*" -traitlets = ">=5.0.0" - -[package.extras] -sphinx = ["Sphinx (>=1.7)", "mock", "moto", "myst-parser", "sphinx-book-theme"] -test = ["black", "check-manifest", "flake8", "ipykernel", "ipython (<8.0.0)", "ipywidgets (<8.0.0)", "mypy", "pip (>=18.1)", "pytest (>=4.1)", "pytest-asyncio", "pytest-cov (>=2.6.1)", "setuptools (>=38.6.0)", "twine (>=1.11.0)", "wheel (>=0.31.0)", "xmltodict"] - -[[package]] -name = "nbconvert" -version = "6.5.4" -description = "Converting Jupyter Notebooks" -optional = false -python-versions = ">=3.7" -files = [ - {file = "nbconvert-6.5.4-py3-none-any.whl", hash = "sha256:d679a947f849a966cbbd0bf6e7fedcfdb64be3b20ce7cef11ad55c13f5820e19"}, - {file = "nbconvert-6.5.4.tar.gz", hash = "sha256:9e3c7c6d491374cbdd5f35d268c05809357716d346f4573186bbeab32ee50bc1"}, -] - -[package.dependencies] -beautifulsoup4 = "*" -bleach = "*" -defusedxml = "*" -entrypoints = ">=0.2.2" -jinja2 = ">=3.0" -jupyter-core = ">=4.7" -jupyterlab-pygments = "*" -lxml = "*" -MarkupSafe = ">=2.0" -mistune = ">=0.8.1,<2" -nbclient = ">=0.5.0" -nbformat = ">=5.1" -packaging = "*" -pandocfilters = ">=1.4.1" -pygments = ">=2.4.1" -tinycss2 = "*" -traitlets = ">=5.0" - -[package.extras] -all = ["ipykernel", "ipython", "ipywidgets (>=7)", "nbsphinx (>=0.2.12)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-cov", "pytest-dependency", "sphinx (>=1.5.1)", "sphinx-rtd-theme", "tornado (>=6.1)"] -docs = ["ipython", "nbsphinx (>=0.2.12)", "sphinx (>=1.5.1)", "sphinx-rtd-theme"] -serve = ["tornado (>=6.1)"] -test = ["ipykernel", "ipywidgets (>=7)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-cov", "pytest-dependency"] -webpdf = ["pyppeteer (>=1,<1.1)"] - -[[package]] -name = "nbdime" -version = "4.0.1" -description = "Diff and merge of Jupyter Notebooks" -optional = false -python-versions = ">=3.6" -files = [ - {file = "nbdime-4.0.1-py3-none-any.whl", hash = "sha256:82538e2b52e0834e9c07607e2dea27aceaaf7e8cf2269a4607c67ea9aa625404"}, - {file = "nbdime-4.0.1.tar.gz", hash = "sha256:f1a760c0b00c1ba9b4945c16ce92577f393fb51d184f351b7685ba6e8502098e"}, -] - -[package.dependencies] -colorama = "*" -gitpython = "<2.1.4 || >2.1.4,<2.1.5 || >2.1.5,<2.1.6 || >2.1.6" -jinja2 = ">=2.9" -jupyter-server = "*" -jupyter-server-mathjax = ">=0.2.2" -nbformat = "*" -pygments = "*" -requests = "*" -tornado = "*" - -[package.extras] -docs = ["recommonmark", "sphinx", "sphinx-rtd-theme"] -test = ["jsonschema", "jupyter-server[test]", "mock", "notebook", "pytest (>=6.0)", "pytest-cov", "pytest-timeout", "pytest-tornado", "requests", "tabulate"] - -[[package]] -name = "nbformat" -version = "5.10.4" -description = "The Jupyter Notebook format" -optional = false -python-versions = ">=3.8" -files = [ - {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, - {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, -] - -[package.dependencies] -fastjsonschema = ">=2.15" -jsonschema = ">=2.6" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" -traitlets = ">=5.1" - -[package.extras] -docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["pep440", "pre-commit", "pytest", "testpath"] - -[[package]] -name = "nest-asyncio" -version = "1.6.0" -description = "Patch asyncio to allow nested event loops" -optional = false -python-versions = ">=3.5" -files = [ - {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, - {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, -] - -[[package]] -name = "netcdf4" -version = "1.7.1.post1" -description = "Provides an object-oriented python interface to the netCDF version 4 library" -optional = false -python-versions = ">=3.8" -files = [ - {file = "netCDF4-1.7.1.post1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:5abdc8ab27bcb11325547841311717a0ba8f5b73a5fc5e93b933bc23285d0c03"}, - {file = "netCDF4-1.7.1.post1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:33f5d66ee9cedf43d3932d0e5447eb471f9c53332f93476133b4bfc6b682f790"}, - {file = "netCDF4-1.7.1.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d649fad9d1f63e25a191576c7de158c8c3afa8d4b4001e8683e20da90b49b939"}, - {file = "netCDF4-1.7.1.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:860222bc57bbc714e55705f263162be2c935129dcb700a944bda61aee785ff03"}, - {file = "netCDF4-1.7.1.post1-cp310-cp310-win_amd64.whl", hash = "sha256:d5420155ca6c768c070922d80acd9f4088a913afd25a9fd2f429e7af626374eb"}, - {file = "netCDF4-1.7.1.post1-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:a8d3209516aa8c58d70863ab1059af4ec82ef8ecb1c6b8cb4842d7825a6f64da"}, - {file = "netCDF4-1.7.1.post1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:7a10da9b60d3358876d53a0cd691d2c900c2b39903bf25ad5235fd321d59eb2f"}, - {file = "netCDF4-1.7.1.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac99e03d6e28419b206444fd6dc80a5e21d0ae8e53ff37d756fbc16c5d3775"}, - {file = "netCDF4-1.7.1.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e15f3afa4e6910fc158a318ea73fdc6f9e41058c71bf98a99fd63994334d16b0"}, - {file = "netCDF4-1.7.1.post1-cp311-cp311-win_amd64.whl", hash = "sha256:115160fc8e09333754542c33d721d42625a7bd62381a74f2f759297e3e38810b"}, - {file = "netCDF4-1.7.1.post1-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:75bba24ef0354fb6913bc3acdcb3790534e86bf329bbeaaf54122b18e5fd05ea"}, - {file = "netCDF4-1.7.1.post1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:ce7f89b98dbb3acd9582db30e6478ce7a7003b2cb70dc20d85fe9506e65ab001"}, - {file = "netCDF4-1.7.1.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac4e30a0d5a8e227d6a890502cfa201388acf606c0c73a5a7594232f3a74e67e"}, - {file = "netCDF4-1.7.1.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:988c45f9122337a12267fb158953c0609e3ea50a557335a3105f104416a4821a"}, - {file = "netCDF4-1.7.1.post1-cp312-cp312-win_amd64.whl", hash = "sha256:8fb3ed3541fa1b5b46e9d92d7e803734a1a3f37d8f5adf5fdf7957c7750cb20e"}, - {file = "netCDF4-1.7.1.post1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:a4d05cc4c3628a7b88d623cb1a02908100a4938335a0289fa79c19016c21d7f9"}, - {file = "netCDF4-1.7.1.post1-cp38-cp38-macosx_14_0_arm64.whl", hash = "sha256:3a9ba8dc93f3d9019db921e42d40fa6791e7e244f3bb3a874bf2bfb96aea7380"}, - {file = "netCDF4-1.7.1.post1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fbbca82a822ba74b605254f7a267d258f13d67f8a4156a09e26322bfa002a82d"}, - {file = "netCDF4-1.7.1.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a09da245f4784421fb4d5740dae0367cdbb270d0a931a33474ec17a9433314d"}, - {file = "netCDF4-1.7.1.post1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:fdcec3a3150f9248e76301ad723f51955efc770edf015dfb61a6480cc7c04a70"}, - {file = "netCDF4-1.7.1.post1-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:0fed0eb65a7751a99a0cee08c6df383737d46d17c73cabae81d113f1b4fa3643"}, - {file = "netCDF4-1.7.1.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daa6169fe6617a4612cb75a8ef61ee14011a012633ad1ace1b629a1ff87bf5cf"}, - {file = "netCDF4-1.7.1.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcad21e965978cc5530131bd7e73dcabe7dda1f681f9e4ebf940a65a176d25fe"}, - {file = "netCDF4-1.7.1.post1-cp39-cp39-win_amd64.whl", hash = "sha256:f24027ae19b68cc1274aad8b00d6d81879d506ddca011a080dff2117014398b9"}, - {file = "netcdf4-1.7.1.post1.tar.gz", hash = "sha256:797f0b25d87827fc6821e415d9e15a2068604b18c3be62563e72682bcba76548"}, -] - -[package.dependencies] -certifi = "*" -cftime = "*" -numpy = "*" - -[package.extras] -tests = ["Cython", "packaging", "pytest"] - -[[package]] -name = "networkx" -version = "3.3" -description = "Python package for creating and manipulating graphs and networks" -optional = false -python-versions = ">=3.10" -files = [ - {file = "networkx-3.3-py3-none-any.whl", hash = "sha256:28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2"}, - {file = "networkx-3.3.tar.gz", hash = "sha256:0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9"}, -] - -[package.extras] -default = ["matplotlib (>=3.6)", "numpy (>=1.23)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] -developer = ["changelist (==0.5)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] -doc = ["myst-nb (>=1.0)", "numpydoc (>=1.7)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] -extra = ["lxml (>=4.6)", "pydot (>=2.0)", "pygraphviz (>=1.12)", "sympy (>=1.10)"] -test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] - -[[package]] -name = "notebook" -version = "6.5.7" -description = "A web-based notebook environment for interactive computing" -optional = false -python-versions = ">=3.7" -files = [ - {file = "notebook-6.5.7-py3-none-any.whl", hash = "sha256:a6afa9a4ff4d149a0771ff8b8c881a7a73b3835f9add0606696d6e9d98ac1cd0"}, - {file = "notebook-6.5.7.tar.gz", hash = "sha256:04eb9011dfac634fbd4442adaf0a8c27cd26beef831fe1d19faf930c327768e4"}, -] - -[package.dependencies] -argon2-cffi = "*" -ipykernel = "*" -ipython-genutils = "*" -jinja2 = "*" -jupyter-client = ">=5.3.4,<8" -jupyter-core = ">=4.6.1" -nbclassic = ">=0.4.7" -nbconvert = ">=5" -nbformat = "*" -nest-asyncio = ">=1.5" -prometheus-client = "*" -pyzmq = ">=17" -Send2Trash = ">=1.8.0" -terminado = ">=0.8.3" -tornado = ">=6.1" -traitlets = ">=4.2.1" - -[package.extras] -docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] -json-logging = ["json-logging"] -test = ["coverage", "nbval", "pytest", "pytest-cov", "requests", "requests-unixsocket", "selenium (==4.1.5)", "testpath"] - -[[package]] -name = "notebook-shim" -version = "0.2.4" -description = "A shim layer for notebook traits and config" -optional = false -python-versions = ">=3.7" -files = [ - {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, - {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, -] - -[package.dependencies] -jupyter-server = ">=1.8,<3" - -[package.extras] -test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] - -[[package]] -name = "numpy" -version = "2.0.0" -description = "Fundamental package for array computing in Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "numpy-2.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:04494f6ec467ccb5369d1808570ae55f6ed9b5809d7f035059000a37b8d7e86f"}, - {file = "numpy-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2635dbd200c2d6faf2ef9a0d04f0ecc6b13b3cad54f7c67c61155138835515d2"}, - {file = "numpy-2.0.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:0a43f0974d501842866cc83471bdb0116ba0dffdbaac33ec05e6afed5b615238"}, - {file = "numpy-2.0.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:8d83bb187fb647643bd56e1ae43f273c7f4dbcdf94550d7938cfc32566756514"}, - {file = "numpy-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79e843d186c8fb1b102bef3e2bc35ef81160ffef3194646a7fdd6a73c6b97196"}, - {file = "numpy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d7696c615765091cc5093f76fd1fa069870304beaccfd58b5dcc69e55ef49c1"}, - {file = "numpy-2.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b4c76e3d4c56f145d41b7b6751255feefae92edbc9a61e1758a98204200f30fc"}, - {file = "numpy-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acd3a644e4807e73b4e1867b769fbf1ce8c5d80e7caaef0d90dcdc640dfc9787"}, - {file = "numpy-2.0.0-cp310-cp310-win32.whl", hash = "sha256:cee6cc0584f71adefe2c908856ccc98702baf95ff80092e4ca46061538a2ba98"}, - {file = "numpy-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:ed08d2703b5972ec736451b818c2eb9da80d66c3e84aed1deeb0c345fefe461b"}, - {file = "numpy-2.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad0c86f3455fbd0de6c31a3056eb822fc939f81b1618f10ff3406971893b62a5"}, - {file = "numpy-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e7f387600d424f91576af20518334df3d97bc76a300a755f9a8d6e4f5cadd289"}, - {file = "numpy-2.0.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:34f003cb88b1ba38cb9a9a4a3161c1604973d7f9d5552c38bc2f04f829536609"}, - {file = "numpy-2.0.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:b6f6a8f45d0313db07d6d1d37bd0b112f887e1369758a5419c0370ba915b3871"}, - {file = "numpy-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f64641b42b2429f56ee08b4f427a4d2daf916ec59686061de751a55aafa22e4"}, - {file = "numpy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7039a136017eaa92c1848152827e1424701532ca8e8967fe480fe1569dae581"}, - {file = "numpy-2.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:46e161722e0f619749d1cd892167039015b2c2817296104487cd03ed4a955995"}, - {file = "numpy-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0e50842b2295ba8414c8c1d9d957083d5dfe9e16828b37de883f51fc53c4016f"}, - {file = "numpy-2.0.0-cp311-cp311-win32.whl", hash = "sha256:2ce46fd0b8a0c947ae047d222f7136fc4d55538741373107574271bc00e20e8f"}, - {file = "numpy-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd6acc766814ea6443628f4e6751d0da6593dae29c08c0b2606164db026970c"}, - {file = "numpy-2.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:354f373279768fa5a584bac997de6a6c9bc535c482592d7a813bb0c09be6c76f"}, - {file = "numpy-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4d2f62e55a4cd9c58c1d9a1c9edaedcd857a73cb6fda875bf79093f9d9086f85"}, - {file = "numpy-2.0.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:1e72728e7501a450288fc8e1f9ebc73d90cfd4671ebbd631f3e7857c39bd16f2"}, - {file = "numpy-2.0.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:84554fc53daa8f6abf8e8a66e076aff6ece62de68523d9f665f32d2fc50fd66e"}, - {file = "numpy-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c73aafd1afca80afecb22718f8700b40ac7cab927b8abab3c3e337d70e10e5a2"}, - {file = "numpy-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49d9f7d256fbc804391a7f72d4a617302b1afac1112fac19b6c6cec63fe7fe8a"}, - {file = "numpy-2.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0ec84b9ba0654f3b962802edc91424331f423dcf5d5f926676e0150789cb3d95"}, - {file = "numpy-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:feff59f27338135776f6d4e2ec7aeeac5d5f7a08a83e80869121ef8164b74af9"}, - {file = "numpy-2.0.0-cp312-cp312-win32.whl", hash = "sha256:c5a59996dc61835133b56a32ebe4ef3740ea5bc19b3983ac60cc32be5a665d54"}, - {file = "numpy-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:a356364941fb0593bb899a1076b92dfa2029f6f5b8ba88a14fd0984aaf76d0df"}, - {file = "numpy-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e61155fae27570692ad1d327e81c6cf27d535a5d7ef97648a17d922224b216de"}, - {file = "numpy-2.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4554eb96f0fd263041baf16cf0881b3f5dafae7a59b1049acb9540c4d57bc8cb"}, - {file = "numpy-2.0.0-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:903703372d46bce88b6920a0cd86c3ad82dae2dbef157b5fc01b70ea1cfc430f"}, - {file = "numpy-2.0.0-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:3e8e01233d57639b2e30966c63d36fcea099d17c53bf424d77f088b0f4babd86"}, - {file = "numpy-2.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cde1753efe513705a0c6d28f5884e22bdc30438bf0085c5c486cdaff40cd67a"}, - {file = "numpy-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821eedb7165ead9eebdb569986968b541f9908979c2da8a4967ecac4439bae3d"}, - {file = "numpy-2.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a1712c015831da583b21c5bfe15e8684137097969c6d22e8316ba66b5baabe4"}, - {file = "numpy-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9c27f0946a3536403efb0e1c28def1ae6730a72cd0d5878db38824855e3afc44"}, - {file = "numpy-2.0.0-cp39-cp39-win32.whl", hash = "sha256:63b92c512d9dbcc37f9d81b123dec99fdb318ba38c8059afc78086fe73820275"}, - {file = "numpy-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:3f6bed7f840d44c08ebdb73b1825282b801799e325bcbdfa6bc5c370e5aecc65"}, - {file = "numpy-2.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9416a5c2e92ace094e9f0082c5fd473502c91651fb896bc17690d6fc475128d6"}, - {file = "numpy-2.0.0-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:17067d097ed036636fa79f6a869ac26df7db1ba22039d962422506640314933a"}, - {file = "numpy-2.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ecb5b0582cd125f67a629072fed6f83562d9dd04d7e03256c9829bdec027ad"}, - {file = "numpy-2.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cef04d068f5fb0518a77857953193b6bb94809a806bd0a14983a8f12ada060c9"}, - {file = "numpy-2.0.0.tar.gz", hash = "sha256:cf5d1c9e6837f8af9f92b6bd3e86d513cdc11f60fd62185cc49ec7d1aba34864"}, -] - -[[package]] -name = "numpyro" -version = "0.14.0" -description = "Pyro PPL on NumPy" -optional = false -python-versions = ">=3.9" -files = [ - {file = "numpyro-0.14.0-py3-none-any.whl", hash = "sha256:1aef9b30e263f4dc4c829d0f8ce6d0640b030d33b32c2b6e1ed20be5f7c12478"}, - {file = "numpyro-0.14.0.tar.gz", hash = "sha256:3e43eaa9c843473d7ae939c183e10db14e23bb42b0ad1de90ae15a451176de48"}, -] - -[package.dependencies] -jax = ">=0.4.14" -jaxlib = ">=0.4.14" -multipledispatch = "*" -numpy = "*" -tqdm = "*" - -[package.extras] -cpu = ["jax[cpu] (>=0.4.14)"] -cuda = ["jax[cuda] (>=0.4.14)"] -dev = ["dm-haiku", "flax", "funsor (>=0.4.1)", "graphviz", "jaxns (==2.4.8)", "matplotlib", "optax (>=0.0.6)", "pylab-sdk", "pyyaml", "requests", "tensorflow-probability (>=0.18.0)"] -doc = ["ipython", "nbsphinx (>=0.8.9)", "readthedocs-sphinx-search (>=0.3.2)", "sphinx (>=5)", "sphinx-gallery", "sphinx-rtd-theme"] -examples = ["arviz", "jupyter", "matplotlib", "pandas", "scikit-learn", "seaborn", "wordcloud"] -test = ["importlib-metadata (<5.0)", "pyro-api (>=0.1.1)", "pytest (>=4.1)", "ruff (>=0.1.8)", "scipy (>=1.9)"] -tpu = ["jax[tpu] (>=0.4.14)"] - -[[package]] -name = "opencv-python" -version = "4.10.0.84" -description = "Wrapper package for OpenCV python bindings." -optional = false -python-versions = ">=3.6" -files = [ - {file = "opencv-python-4.10.0.84.tar.gz", hash = "sha256:72d234e4582e9658ffea8e9cae5b63d488ad06994ef12d81dc303b17472f3526"}, - {file = "opencv_python-4.10.0.84-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:fc182f8f4cda51b45f01c64e4cbedfc2f00aff799debebc305d8d0210c43f251"}, - {file = "opencv_python-4.10.0.84-cp37-abi3-macosx_12_0_x86_64.whl", hash = "sha256:71e575744f1d23f79741450254660442785f45a0797212852ee5199ef12eed98"}, - {file = "opencv_python-4.10.0.84-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09a332b50488e2dda866a6c5573ee192fe3583239fb26ff2f7f9ceb0bc119ea6"}, - {file = "opencv_python-4.10.0.84-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ace140fc6d647fbe1c692bcb2abce768973491222c067c131d80957c595b71f"}, - {file = "opencv_python-4.10.0.84-cp37-abi3-win32.whl", hash = "sha256:2db02bb7e50b703f0a2d50c50ced72e95c574e1e5a0bb35a8a86d0b35c98c236"}, - {file = "opencv_python-4.10.0.84-cp37-abi3-win_amd64.whl", hash = "sha256:32dbbd94c26f611dc5cc6979e6b7aa1f55a64d6b463cc1dcd3c95505a63e48fe"}, -] - -[package.dependencies] -numpy = [ - {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, - {version = ">=1.23.5", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, -] - -[[package]] -name = "openpyxl" -version = "3.1.4" -description = "A Python library to read/write Excel 2010 xlsx/xlsm files" -optional = false -python-versions = ">=3.8" -files = [ - {file = "openpyxl-3.1.4-py2.py3-none-any.whl", hash = "sha256:ec17f6483f2b8f7c88c57e5e5d3b0de0e3fb9ac70edc084d28e864f5b33bbefd"}, - {file = "openpyxl-3.1.4.tar.gz", hash = "sha256:8d2c8adf5d20d6ce8f9bca381df86b534835e974ed0156dacefa76f68c1d69fb"}, -] - -[package.dependencies] -et-xmlfile = "*" - -[[package]] -name = "opt-einsum" -version = "3.3.0" -description = "Optimizing numpys einsum function" -optional = false -python-versions = ">=3.5" -files = [ - {file = "opt_einsum-3.3.0-py3-none-any.whl", hash = "sha256:2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147"}, - {file = "opt_einsum-3.3.0.tar.gz", hash = "sha256:59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549"}, -] - -[package.dependencies] -numpy = ">=1.7" - -[package.extras] -docs = ["numpydoc", "sphinx (==1.2.3)", "sphinx-rtd-theme", "sphinxcontrib-napoleon"] -tests = ["pytest", "pytest-cov", "pytest-pep8"] - -[[package]] -name = "optax" -version = "0.1.9" -description = "A gradient processing and optimisation library in JAX." -optional = false -python-versions = ">=3.9" -files = [ - {file = "optax-0.1.9-py3-none-any.whl", hash = "sha256:3cbcfac6e70dff9484cd7560dc92e43a50df1eac0d4af2a1f7c2e1fd116bf972"}, - {file = "optax-0.1.9.tar.gz", hash = "sha256:731f43e8b404f50a5ef025b1261894d7d0300f7ad9cb688ea08f67b40822e94f"}, -] - -[package.dependencies] -absl-py = ">=0.7.1" -chex = ">=0.1.7" -jax = ">=0.1.55" -jaxlib = ">=0.1.37" -numpy = ">=1.18.0" - -[package.extras] -docs = ["dm-haiku (>=0.0.11)", "ipython (>=8.8.0)", "matplotlib (>=3.5.0)", "myst-nb (>=1.0.0)", "sphinx (>=6.0.0)", "sphinx-autodoc-typehints", "sphinx-book-theme (>=1.0.1)", "sphinx-collections (>=0.0.1)", "sphinx-gallery (>=0.14.0)", "sphinxcontrib-katex", "tensorflow (>=2.4.0)", "tensorflow-datasets (>=4.2.0)"] -dp-accounting = ["absl-py (>=1.0.0)", "attrs (>=21.4.0)", "mpmath (>=1.2.1)", "numpy (>=1.21.4)", "scipy (>=1.7.1)"] -examples = ["dm-haiku (>=0.0.3)", "tensorflow (>=2.4.0)", "tensorflow-datasets (>=4.2.0)"] -test = ["dm-haiku (>=0.0.3)", "dm-tree (>=0.1.7)", "flax (==0.5.3)"] - -[[package]] -name = "overrides" -version = "7.7.0" -description = "A decorator to automatically detect mismatch when overriding a method." -optional = false -python-versions = ">=3.6" -files = [ - {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, - {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, -] - -[[package]] -name = "packaging" -version = "20.9" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"}, - {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"}, -] - -[package.dependencies] -pyparsing = ">=2.0.2" - -[[package]] -name = "pandas" -version = "2.2.2" -description = "Powerful data structures for data analysis, time series, and statistics" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, - {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, - {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, - {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, - {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, - {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, - {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, - {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, - {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, - {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, - {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, - {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, - {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, - {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, - {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, - {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, - {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, - {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, - {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, - {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, - {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, - {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, - {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, - {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, - {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, - {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, - {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, - {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, - {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, -] - -[package.dependencies] -numpy = [ - {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, - {version = ">=1.23.2", markers = "python_version == \"3.11\""}, -] -python-dateutil = ">=2.8.2" -pytz = ">=2020.1" -tzdata = ">=2022.7" - -[package.extras] -all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] -aws = ["s3fs (>=2022.11.0)"] -clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] -compression = ["zstandard (>=0.19.0)"] -computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] -consortium-standard = ["dataframe-api-compat (>=0.1.7)"] -excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] -feather = ["pyarrow (>=10.0.1)"] -fss = ["fsspec (>=2022.11.0)"] -gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] -hdf5 = ["tables (>=3.8.0)"] -html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] -mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] -output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] -parquet = ["pyarrow (>=10.0.1)"] -performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] -plot = ["matplotlib (>=3.6.3)"] -postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] -pyarrow = ["pyarrow (>=10.0.1)"] -spss = ["pyreadstat (>=1.2.0)"] -sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] -test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] -xml = ["lxml (>=4.9.2)"] - -[[package]] -name = "pandocfilters" -version = "1.5.1" -description = "Utilities for writing pandoc filters in python" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, - {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, -] - -[[package]] -name = "parso" -version = "0.8.4" -description = "A Python Parser" -optional = false -python-versions = ">=3.6" -files = [ - {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, - {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, -] - -[package.extras] -qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] -testing = ["docopt", "pytest"] - -[[package]] -name = "pexpect" -version = "4.9.0" -description = "Pexpect allows easy control of interactive console applications." -optional = false -python-versions = "*" -files = [ - {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, - {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, -] - -[package.dependencies] -ptyprocess = ">=0.5" - -[[package]] -name = "pillow" -version = "8.4.0" -description = "Python Imaging Library (Fork)" -optional = false -python-versions = ">=3.6" -files = [ - {file = "Pillow-8.4.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:81f8d5c81e483a9442d72d182e1fb6dcb9723f289a57e8030811bac9ea3fef8d"}, - {file = "Pillow-8.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f97cfb1e5a392d75dd8b9fd274d205404729923840ca94ca45a0af57e13dbe6"}, - {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb9fc393f3c61f9054e1ed26e6fe912c7321af2f41ff49d3f83d05bacf22cc78"}, - {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d82cdb63100ef5eedb8391732375e6d05993b765f72cb34311fab92103314649"}, - {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62cc1afda735a8d109007164714e73771b499768b9bb5afcbbee9d0ff374b43f"}, - {file = "Pillow-8.4.0-cp310-cp310-win32.whl", hash = "sha256:e3dacecfbeec9a33e932f00c6cd7996e62f53ad46fbe677577394aaa90ee419a"}, - {file = "Pillow-8.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:620582db2a85b2df5f8a82ddeb52116560d7e5e6b055095f04ad828d1b0baa39"}, - {file = "Pillow-8.4.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:1bc723b434fbc4ab50bb68e11e93ce5fb69866ad621e3c2c9bdb0cd70e345f55"}, - {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72cbcfd54df6caf85cc35264c77ede902452d6df41166010262374155947460c"}, - {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70ad9e5c6cb9b8487280a02c0ad8a51581dcbbe8484ce058477692a27c151c0a"}, - {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25a49dc2e2f74e65efaa32b153527fc5ac98508d502fa46e74fa4fd678ed6645"}, - {file = "Pillow-8.4.0-cp36-cp36m-win32.whl", hash = "sha256:93ce9e955cc95959df98505e4608ad98281fff037350d8c2671c9aa86bcf10a9"}, - {file = "Pillow-8.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2e4440b8f00f504ee4b53fe30f4e381aae30b0568193be305256b1462216feff"}, - {file = "Pillow-8.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8c803ac3c28bbc53763e6825746f05cc407b20e4a69d0122e526a582e3b5e153"}, - {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8a17b5d948f4ceeceb66384727dde11b240736fddeda54ca740b9b8b1556b29"}, - {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1394a6ad5abc838c5cd8a92c5a07535648cdf6d09e8e2d6df916dfa9ea86ead8"}, - {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:792e5c12376594bfcb986ebf3855aa4b7c225754e9a9521298e460e92fb4a488"}, - {file = "Pillow-8.4.0-cp37-cp37m-win32.whl", hash = "sha256:d99ec152570e4196772e7a8e4ba5320d2d27bf22fdf11743dd882936ed64305b"}, - {file = "Pillow-8.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7b7017b61bbcdd7f6363aeceb881e23c46583739cb69a3ab39cb384f6ec82e5b"}, - {file = "Pillow-8.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:d89363f02658e253dbd171f7c3716a5d340a24ee82d38aab9183f7fdf0cdca49"}, - {file = "Pillow-8.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a0956fdc5defc34462bb1c765ee88d933239f9a94bc37d132004775241a7585"}, - {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b7bb9de00197fb4261825c15551adf7605cf14a80badf1761d61e59da347779"}, - {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72b9e656e340447f827885b8d7a15fc8c4e68d410dc2297ef6787eec0f0ea409"}, - {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5a4532a12314149d8b4e4ad8ff09dde7427731fcfa5917ff16d0291f13609df"}, - {file = "Pillow-8.4.0-cp38-cp38-win32.whl", hash = "sha256:82aafa8d5eb68c8463b6e9baeb4f19043bb31fefc03eb7b216b51e6a9981ae09"}, - {file = "Pillow-8.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:066f3999cb3b070a95c3652712cffa1a748cd02d60ad7b4e485c3748a04d9d76"}, - {file = "Pillow-8.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:5503c86916d27c2e101b7f71c2ae2cddba01a2cf55b8395b0255fd33fa4d1f1a"}, - {file = "Pillow-8.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4acc0985ddf39d1bc969a9220b51d94ed51695d455c228d8ac29fcdb25810e6e"}, - {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b052a619a8bfcf26bd8b3f48f45283f9e977890263e4571f2393ed8898d331b"}, - {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:493cb4e415f44cd601fcec11c99836f707bb714ab03f5ed46ac25713baf0ff20"}, - {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8831cb7332eda5dc89b21a7bce7ef6ad305548820595033a4b03cf3091235ed"}, - {file = "Pillow-8.4.0-cp39-cp39-win32.whl", hash = "sha256:5e9ac5f66616b87d4da618a20ab0a38324dbe88d8a39b55be8964eb520021e02"}, - {file = "Pillow-8.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:3eb1ce5f65908556c2d8685a8f0a6e989d887ec4057326f6c22b24e8a172c66b"}, - {file = "Pillow-8.4.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ddc4d832a0f0b4c52fff973a0d44b6c99839a9d016fe4e6a1cb8f3eea96479c2"}, - {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3e5ddc44c14042f0844b8cf7d2cd455f6cc80fd7f5eefbe657292cf601d9ad"}, - {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70e94281588ef053ae8998039610dbd71bc509e4acbc77ab59d7d2937b10698"}, - {file = "Pillow-8.4.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:3862b7256046fcd950618ed22d1d60b842e3a40a48236a5498746f21189afbbc"}, - {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4901622493f88b1a29bd30ec1a2f683782e57c3c16a2dbc7f2595ba01f639df"}, - {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c471a734240653a0ec91dec0996696eea227eafe72a33bd06c92697728046b"}, - {file = "Pillow-8.4.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:244cf3b97802c34c41905d22810846802a3329ddcb93ccc432870243211c79fc"}, - {file = "Pillow-8.4.0.tar.gz", hash = "sha256:b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed"}, -] - -[[package]] -name = "platformdirs" -version = "4.2.2" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -optional = false -python-versions = ">=3.8" -files = [ - {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, - {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, -] - -[package.extras] -docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] -type = ["mypy (>=1.8)"] - -[[package]] -name = "pluggy" -version = "0.13.1" -description = "plugin and hook calling mechanisms for python" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, - {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, -] - -[package.extras] -dev = ["pre-commit", "tox"] - -[[package]] -name = "prometheus-client" -version = "0.20.0" -description = "Python client for the Prometheus monitoring system." -optional = false -python-versions = ">=3.8" -files = [ - {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, - {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, -] - -[package.extras] -twisted = ["twisted"] - -[[package]] -name = "prompt-toolkit" -version = "3.0.47" -description = "Library for building powerful interactive command lines in Python" -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "prompt_toolkit-3.0.47-py3-none-any.whl", hash = "sha256:0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10"}, - {file = "prompt_toolkit-3.0.47.tar.gz", hash = "sha256:1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360"}, -] - -[package.dependencies] -wcwidth = "*" - -[[package]] -name = "psutil" -version = "6.0.0" -description = "Cross-platform lib for process and system monitoring in Python." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" -files = [ - {file = "psutil-6.0.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a021da3e881cd935e64a3d0a20983bda0bb4cf80e4f74fa9bfcb1bc5785360c6"}, - {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:1287c2b95f1c0a364d23bc6f2ea2365a8d4d9b726a3be7294296ff7ba97c17f0"}, - {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:a9a3dbfb4de4f18174528d87cc352d1f788b7496991cca33c6996f40c9e3c92c"}, - {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6ec7588fb3ddaec7344a825afe298db83fe01bfaaab39155fa84cf1c0d6b13c3"}, - {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:1e7c870afcb7d91fdea2b37c24aeb08f98b6d67257a5cb0a8bc3ac68d0f1a68c"}, - {file = "psutil-6.0.0-cp27-none-win32.whl", hash = "sha256:02b69001f44cc73c1c5279d02b30a817e339ceb258ad75997325e0e6169d8b35"}, - {file = "psutil-6.0.0-cp27-none-win_amd64.whl", hash = "sha256:21f1fb635deccd510f69f485b87433460a603919b45e2a324ad65b0cc74f8fb1"}, - {file = "psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c588a7e9b1173b6e866756dde596fd4cad94f9399daf99ad8c3258b3cb2b47a0"}, - {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ed2440ada7ef7d0d608f20ad89a04ec47d2d3ab7190896cd62ca5fc4fe08bf0"}, - {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fd9a97c8e94059b0ef54a7d4baf13b405011176c3b6ff257c247cae0d560ecd"}, - {file = "psutil-6.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e8d0054fc88153ca0544f5c4d554d42e33df2e009c4ff42284ac9ebdef4132"}, - {file = "psutil-6.0.0-cp36-cp36m-win32.whl", hash = "sha256:fc8c9510cde0146432bbdb433322861ee8c3efbf8589865c8bf8d21cb30c4d14"}, - {file = "psutil-6.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:34859b8d8f423b86e4385ff3665d3f4d94be3cdf48221fbe476e883514fdb71c"}, - {file = "psutil-6.0.0-cp37-abi3-win32.whl", hash = "sha256:a495580d6bae27291324fe60cea0b5a7c23fa36a7cd35035a16d93bdcf076b9d"}, - {file = "psutil-6.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:33ea5e1c975250a720b3a6609c490db40dae5d83a4eb315170c4fe0d8b1f34b3"}, - {file = "psutil-6.0.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:ffe7fc9b6b36beadc8c322f84e1caff51e8703b88eee1da46d1e3a6ae11b4fd0"}, - {file = "psutil-6.0.0.tar.gz", hash = "sha256:8faae4f310b6d969fa26ca0545338b21f73c6b15db7c4a8d934a5482faa818f2"}, -] - -[package.extras] -test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] - -[[package]] -name = "ptyprocess" -version = "0.7.0" -description = "Run a subprocess in a pseudo terminal" -optional = false -python-versions = "*" -files = [ - {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, - {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, -] - -[[package]] -name = "pure-eval" -version = "0.2.2" -description = "Safely evaluate AST nodes without side effects" -optional = false -python-versions = "*" -files = [ - {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, - {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, -] - -[package.extras] -tests = ["pytest"] - -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] - -[[package]] -name = "pycparser" -version = "2.22" -description = "C parser in Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, - {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, -] - -[[package]] -name = "pygments" -version = "2.18.0" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, - {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pyparsing" -version = "2.4.7" -description = "Python parsing module" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, - {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, -] - -[[package]] -name = "pyrsistent" -version = "0.20.0" -description = "Persistent/Functional/Immutable data structures" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pyrsistent-0.20.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c3aba3e01235221e5b229a6c05f585f344734bd1ad42a8ac51493d74722bbce"}, - {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1beb78af5423b879edaf23c5591ff292cf7c33979734c99aa66d5914ead880f"}, - {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21cc459636983764e692b9eba7144cdd54fdec23ccdb1e8ba392a63666c60c34"}, - {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5ac696f02b3fc01a710427585c855f65cd9c640e14f52abe52020722bb4906b"}, - {file = "pyrsistent-0.20.0-cp310-cp310-win32.whl", hash = "sha256:0724c506cd8b63c69c7f883cc233aac948c1ea946ea95996ad8b1380c25e1d3f"}, - {file = "pyrsistent-0.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:8441cf9616d642c475684d6cf2520dd24812e996ba9af15e606df5f6fd9d04a7"}, - {file = "pyrsistent-0.20.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0f3b1bcaa1f0629c978b355a7c37acd58907390149b7311b5db1b37648eb6958"}, - {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdd7ef1ea7a491ae70d826b6cc64868de09a1d5ff9ef8d574250d0940e275b8"}, - {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cae40a9e3ce178415040a0383f00e8d68b569e97f31928a3a8ad37e3fde6df6a"}, - {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6288b3fa6622ad8a91e6eb759cfc48ff3089e7c17fb1d4c59a919769314af224"}, - {file = "pyrsistent-0.20.0-cp311-cp311-win32.whl", hash = "sha256:7d29c23bdf6e5438c755b941cef867ec2a4a172ceb9f50553b6ed70d50dfd656"}, - {file = "pyrsistent-0.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:59a89bccd615551391f3237e00006a26bcf98a4d18623a19909a2c48b8e986ee"}, - {file = "pyrsistent-0.20.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:09848306523a3aba463c4b49493a760e7a6ca52e4826aa100ee99d8d39b7ad1e"}, - {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a14798c3005ec892bbada26485c2eea3b54109cb2533713e355c806891f63c5e"}, - {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b14decb628fac50db5e02ee5a35a9c0772d20277824cfe845c8a8b717c15daa3"}, - {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e2c116cc804d9b09ce9814d17df5edf1df0c624aba3b43bc1ad90411487036d"}, - {file = "pyrsistent-0.20.0-cp312-cp312-win32.whl", hash = "sha256:e78d0c7c1e99a4a45c99143900ea0546025e41bb59ebc10182e947cf1ece9174"}, - {file = "pyrsistent-0.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:4021a7f963d88ccd15b523787d18ed5e5269ce57aa4037146a2377ff607ae87d"}, - {file = "pyrsistent-0.20.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:79ed12ba79935adaac1664fd7e0e585a22caa539dfc9b7c7c6d5ebf91fb89054"}, - {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f920385a11207dc372a028b3f1e1038bb244b3ec38d448e6d8e43c6b3ba20e98"}, - {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f5c2d012671b7391803263419e31b5c7c21e7c95c8760d7fc35602353dee714"}, - {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef3992833fbd686ee783590639f4b8343a57f1f75de8633749d984dc0eb16c86"}, - {file = "pyrsistent-0.20.0-cp38-cp38-win32.whl", hash = "sha256:881bbea27bbd32d37eb24dd320a5e745a2a5b092a17f6debc1349252fac85423"}, - {file = "pyrsistent-0.20.0-cp38-cp38-win_amd64.whl", hash = "sha256:6d270ec9dd33cdb13f4d62c95c1a5a50e6b7cdd86302b494217137f760495b9d"}, - {file = "pyrsistent-0.20.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ca52d1ceae015859d16aded12584c59eb3825f7b50c6cfd621d4231a6cc624ce"}, - {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b318ca24db0f0518630e8b6f3831e9cba78f099ed5c1d65ffe3e023003043ba0"}, - {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fed2c3216a605dc9a6ea50c7e84c82906e3684c4e80d2908208f662a6cbf9022"}, - {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e14c95c16211d166f59c6611533d0dacce2e25de0f76e4c140fde250997b3ca"}, - {file = "pyrsistent-0.20.0-cp39-cp39-win32.whl", hash = "sha256:f058a615031eea4ef94ead6456f5ec2026c19fb5bd6bfe86e9665c4158cf802f"}, - {file = "pyrsistent-0.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:58b8f6366e152092194ae68fefe18b9f0b4f89227dfd86a07770c3d86097aebf"}, - {file = "pyrsistent-0.20.0-py3-none-any.whl", hash = "sha256:c55acc4733aad6560a7f5f818466631f07efc001fd023f34a6c203f8b6df0f0b"}, - {file = "pyrsistent-0.20.0.tar.gz", hash = "sha256:4c48f78f62ab596c679086084d0dd13254ae4f3d6c72a83ffdf5ebdef8f265a4"}, -] - -[[package]] -name = "pytest" -version = "6.2.5" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.6" -files = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, -] - -[package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} -attrs = ">=19.2.0" -colorama = {version = "*", markers = "sys_platform == \"win32\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=0.12,<2.0" -py = ">=1.8.2" -toml = "*" - -[package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -description = "Extensions to the standard Python datetime module" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "python-json-logger" -version = "2.0.7" -description = "A python library adding a json log formatter" -optional = false -python-versions = ">=3.6" -files = [ - {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, - {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, -] - -[[package]] -name = "pytz" -version = "2020.5" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2020.5-py2.py3-none-any.whl", hash = "sha256:16962c5fb8db4a8f63a26646d8886e9d769b6c511543557bc84e9569fb9a9cb4"}, - {file = "pytz-2020.5.tar.gz", hash = "sha256:180befebb1927b16f6b57101720075a984c019ac16b1b7575673bea42c6c3da5"}, -] - -[[package]] -name = "pywin32" -version = "306" -description = "Python for Window Extensions" -optional = false -python-versions = "*" -files = [ - {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, - {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, - {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, - {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, - {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, - {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, - {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, - {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, - {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, - {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, - {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, - {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, - {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, - {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, -] - -[[package]] -name = "pywinpty" -version = "2.0.13" -description = "Pseudo terminal support for Windows from Python." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pywinpty-2.0.13-cp310-none-win_amd64.whl", hash = "sha256:697bff211fb5a6508fee2dc6ff174ce03f34a9a233df9d8b5fe9c8ce4d5eaf56"}, - {file = "pywinpty-2.0.13-cp311-none-win_amd64.whl", hash = "sha256:b96fb14698db1284db84ca38c79f15b4cfdc3172065b5137383910567591fa99"}, - {file = "pywinpty-2.0.13-cp312-none-win_amd64.whl", hash = "sha256:2fd876b82ca750bb1333236ce98488c1be96b08f4f7647cfdf4129dfad83c2d4"}, - {file = "pywinpty-2.0.13-cp38-none-win_amd64.whl", hash = "sha256:61d420c2116c0212808d31625611b51caf621fe67f8a6377e2e8b617ea1c1f7d"}, - {file = "pywinpty-2.0.13-cp39-none-win_amd64.whl", hash = "sha256:71cb613a9ee24174730ac7ae439fd179ca34ccb8c5349e8d7b72ab5dea2c6f4b"}, - {file = "pywinpty-2.0.13.tar.gz", hash = "sha256:c34e32351a3313ddd0d7da23d27f835c860d32fe4ac814d372a3ea9594f41dde"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.1" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.6" -files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, - {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, -] - -[[package]] -name = "pyzmq" -version = "26.0.3" -description = "Python bindings for 0MQ" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:44dd6fc3034f1eaa72ece33588867df9e006a7303725a12d64c3dff92330f625"}, - {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:acb704195a71ac5ea5ecf2811c9ee19ecdc62b91878528302dd0be1b9451cc90"}, - {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dbb9c997932473a27afa93954bb77a9f9b786b4ccf718d903f35da3232317de"}, - {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bcb34f869d431799c3ee7d516554797f7760cb2198ecaa89c3f176f72d062be"}, - {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ece17ec5f20d7d9b442e5174ae9f020365d01ba7c112205a4d59cf19dc38ee"}, - {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ba6e5e6588e49139a0979d03a7deb9c734bde647b9a8808f26acf9c547cab1bf"}, - {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3bf8b000a4e2967e6dfdd8656cd0757d18c7e5ce3d16339e550bd462f4857e59"}, - {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2136f64fbb86451dbbf70223635a468272dd20075f988a102bf8a3f194a411dc"}, - {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e8918973fbd34e7814f59143c5f600ecd38b8038161239fd1a3d33d5817a38b8"}, - {file = "pyzmq-26.0.3-cp310-cp310-win32.whl", hash = "sha256:0aaf982e68a7ac284377d051c742610220fd06d330dcd4c4dbb4cdd77c22a537"}, - {file = "pyzmq-26.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:f1a9b7d00fdf60b4039f4455afd031fe85ee8305b019334b72dcf73c567edc47"}, - {file = "pyzmq-26.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:80b12f25d805a919d53efc0a5ad7c0c0326f13b4eae981a5d7b7cc343318ebb7"}, - {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:a72a84570f84c374b4c287183debc776dc319d3e8ce6b6a0041ce2e400de3f32"}, - {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ca684ee649b55fd8f378127ac8462fb6c85f251c2fb027eb3c887e8ee347bcd"}, - {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e222562dc0f38571c8b1ffdae9d7adb866363134299264a1958d077800b193b7"}, - {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f17cde1db0754c35a91ac00b22b25c11da6eec5746431d6e5092f0cd31a3fea9"}, - {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b7c0c0b3244bb2275abe255d4a30c050d541c6cb18b870975553f1fb6f37527"}, - {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:ac97a21de3712afe6a6c071abfad40a6224fd14fa6ff0ff8d0c6e6cd4e2f807a"}, - {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:88b88282e55fa39dd556d7fc04160bcf39dea015f78e0cecec8ff4f06c1fc2b5"}, - {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:72b67f966b57dbd18dcc7efbc1c7fc9f5f983e572db1877081f075004614fcdd"}, - {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f4b6cecbbf3b7380f3b61de3a7b93cb721125dc125c854c14ddc91225ba52f83"}, - {file = "pyzmq-26.0.3-cp311-cp311-win32.whl", hash = "sha256:eed56b6a39216d31ff8cd2f1d048b5bf1700e4b32a01b14379c3b6dde9ce3aa3"}, - {file = "pyzmq-26.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:3191d312c73e3cfd0f0afdf51df8405aafeb0bad71e7ed8f68b24b63c4f36500"}, - {file = "pyzmq-26.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:b6907da3017ef55139cf0e417c5123a84c7332520e73a6902ff1f79046cd3b94"}, - {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:068ca17214038ae986d68f4a7021f97e187ed278ab6dccb79f837d765a54d753"}, - {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7821d44fe07335bea256b9f1f41474a642ca55fa671dfd9f00af8d68a920c2d4"}, - {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eeb438a26d87c123bb318e5f2b3d86a36060b01f22fbdffd8cf247d52f7c9a2b"}, - {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69ea9d6d9baa25a4dc9cef5e2b77b8537827b122214f210dd925132e34ae9b12"}, - {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7daa3e1369355766dea11f1d8ef829905c3b9da886ea3152788dc25ee6079e02"}, - {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:6ca7a9a06b52d0e38ccf6bca1aeff7be178917893f3883f37b75589d42c4ac20"}, - {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1b7d0e124948daa4d9686d421ef5087c0516bc6179fdcf8828b8444f8e461a77"}, - {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e746524418b70f38550f2190eeee834db8850088c834d4c8406fbb9bc1ae10b2"}, - {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:6b3146f9ae6af82c47a5282ac8803523d381b3b21caeae0327ed2f7ecb718798"}, - {file = "pyzmq-26.0.3-cp312-cp312-win32.whl", hash = "sha256:2b291d1230845871c00c8462c50565a9cd6026fe1228e77ca934470bb7d70ea0"}, - {file = "pyzmq-26.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:926838a535c2c1ea21c903f909a9a54e675c2126728c21381a94ddf37c3cbddf"}, - {file = "pyzmq-26.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:5bf6c237f8c681dfb91b17f8435b2735951f0d1fad10cc5dfd96db110243370b"}, - {file = "pyzmq-26.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c0991f5a96a8e620f7691e61178cd8f457b49e17b7d9cfa2067e2a0a89fc1d5"}, - {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dbf012d8fcb9f2cf0643b65df3b355fdd74fc0035d70bb5c845e9e30a3a4654b"}, - {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:01fbfbeb8249a68d257f601deb50c70c929dc2dfe683b754659569e502fbd3aa"}, - {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c8eb19abe87029c18f226d42b8a2c9efdd139d08f8bf6e085dd9075446db450"}, - {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:5344b896e79800af86ad643408ca9aa303a017f6ebff8cee5a3163c1e9aec987"}, - {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:204e0f176fd1d067671157d049466869b3ae1fc51e354708b0dc41cf94e23a3a"}, - {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a42db008d58530efa3b881eeee4991146de0b790e095f7ae43ba5cc612decbc5"}, - {file = "pyzmq-26.0.3-cp37-cp37m-win32.whl", hash = "sha256:8d7a498671ca87e32b54cb47c82a92b40130a26c5197d392720a1bce1b3c77cf"}, - {file = "pyzmq-26.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:3b4032a96410bdc760061b14ed6a33613ffb7f702181ba999df5d16fb96ba16a"}, - {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2cc4e280098c1b192c42a849de8de2c8e0f3a84086a76ec5b07bfee29bda7d18"}, - {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5bde86a2ed3ce587fa2b207424ce15b9a83a9fa14422dcc1c5356a13aed3df9d"}, - {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:34106f68e20e6ff253c9f596ea50397dbd8699828d55e8fa18bd4323d8d966e6"}, - {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ebbbd0e728af5db9b04e56389e2299a57ea8b9dd15c9759153ee2455b32be6ad"}, - {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6b1d1c631e5940cac5a0b22c5379c86e8df6a4ec277c7a856b714021ab6cfad"}, - {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e891ce81edd463b3b4c3b885c5603c00141151dd9c6936d98a680c8c72fe5c67"}, - {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9b273ecfbc590a1b98f014ae41e5cf723932f3b53ba9367cfb676f838038b32c"}, - {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b32bff85fb02a75ea0b68f21e2412255b5731f3f389ed9aecc13a6752f58ac97"}, - {file = "pyzmq-26.0.3-cp38-cp38-win32.whl", hash = "sha256:f6c21c00478a7bea93caaaef9e7629145d4153b15a8653e8bb4609d4bc70dbfc"}, - {file = "pyzmq-26.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:3401613148d93ef0fd9aabdbddb212de3db7a4475367f49f590c837355343972"}, - {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:2ed8357f4c6e0daa4f3baf31832df8a33334e0fe5b020a61bc8b345a3db7a606"}, - {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c1c8f2a2ca45292084c75bb6d3a25545cff0ed931ed228d3a1810ae3758f975f"}, - {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b63731993cdddcc8e087c64e9cf003f909262b359110070183d7f3025d1c56b5"}, - {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b3cd31f859b662ac5d7f4226ec7d8bd60384fa037fc02aee6ff0b53ba29a3ba8"}, - {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:115f8359402fa527cf47708d6f8a0f8234f0e9ca0cab7c18c9c189c194dbf620"}, - {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:715bdf952b9533ba13dfcf1f431a8f49e63cecc31d91d007bc1deb914f47d0e4"}, - {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e1258c639e00bf5e8a522fec6c3eaa3e30cf1c23a2f21a586be7e04d50c9acab"}, - {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:15c59e780be8f30a60816a9adab900c12a58d79c1ac742b4a8df044ab2a6d920"}, - {file = "pyzmq-26.0.3-cp39-cp39-win32.whl", hash = "sha256:d0cdde3c78d8ab5b46595054e5def32a755fc028685add5ddc7403e9f6de9879"}, - {file = "pyzmq-26.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:ce828058d482ef860746bf532822842e0ff484e27f540ef5c813d516dd8896d2"}, - {file = "pyzmq-26.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:788f15721c64109cf720791714dc14afd0f449d63f3a5487724f024345067381"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c18645ef6294d99b256806e34653e86236eb266278c8ec8112622b61db255de"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e6bc96ebe49604df3ec2c6389cc3876cabe475e6bfc84ced1bf4e630662cb35"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:971e8990c5cc4ddcff26e149398fc7b0f6a042306e82500f5e8db3b10ce69f84"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8416c23161abd94cc7da80c734ad7c9f5dbebdadfdaa77dad78244457448223"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:082a2988364b60bb5de809373098361cf1dbb239623e39e46cb18bc035ed9c0c"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d57dfbf9737763b3a60d26e6800e02e04284926329aee8fb01049635e957fe81"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:77a85dca4c2430ac04dc2a2185c2deb3858a34fe7f403d0a946fa56970cf60a1"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4c82a6d952a1d555bf4be42b6532927d2a5686dd3c3e280e5f63225ab47ac1f5"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4496b1282c70c442809fc1b151977c3d967bfb33e4e17cedbf226d97de18f709"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:e4946d6bdb7ba972dfda282f9127e5756d4f299028b1566d1245fa0d438847e6"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:03c0ae165e700364b266876d712acb1ac02693acd920afa67da2ebb91a0b3c09"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:3e3070e680f79887d60feeda051a58d0ac36622e1759f305a41059eff62c6da7"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6ca08b840fe95d1c2bd9ab92dac5685f949fc6f9ae820ec16193e5ddf603c3b2"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e76654e9dbfb835b3518f9938e565c7806976c07b37c33526b574cc1a1050480"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:871587bdadd1075b112e697173e946a07d722459d20716ceb3d1bd6c64bd08ce"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d0a2d1bd63a4ad79483049b26514e70fa618ce6115220da9efdff63688808b17"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0270b49b6847f0d106d64b5086e9ad5dc8a902413b5dbbb15d12b60f9c1747a4"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:703c60b9910488d3d0954ca585c34f541e506a091a41930e663a098d3b794c67"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74423631b6be371edfbf7eabb02ab995c2563fee60a80a30829176842e71722a"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4adfbb5451196842a88fda3612e2c0414134874bffb1c2ce83ab4242ec9e027d"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3516119f4f9b8671083a70b6afaa0a070f5683e431ab3dc26e9215620d7ca1ad"}, - {file = "pyzmq-26.0.3.tar.gz", hash = "sha256:dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a"}, -] - -[package.dependencies] -cffi = {version = "*", markers = "implementation_name == \"pypy\""} - -[[package]] -name = "requests" -version = "2.32.3" -description = "Python HTTP for Humans." -optional = false -python-versions = ">=3.8" -files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, -] - -[package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" -idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "rfc3339-validator" -version = "0.1.4" -description = "A pure python RFC3339 validator" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, - {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, -] - -[package.dependencies] -six = "*" - -[[package]] -name = "rfc3986-validator" -version = "0.1.1" -description = "Pure python rfc3986 validator" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, - {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, -] - -[[package]] -name = "scipy" -version = "1.14.0" -description = "Fundamental algorithms for scientific computing in Python" -optional = false -python-versions = ">=3.10" -files = [ - {file = "scipy-1.14.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7e911933d54ead4d557c02402710c2396529540b81dd554fc1ba270eb7308484"}, - {file = "scipy-1.14.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:687af0a35462402dd851726295c1a5ae5f987bd6e9026f52e9505994e2f84ef6"}, - {file = "scipy-1.14.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:07e179dc0205a50721022344fb85074f772eadbda1e1b3eecdc483f8033709b7"}, - {file = "scipy-1.14.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a9c9a9b226d9a21e0a208bdb024c3982932e43811b62d202aaf1bb59af264b1"}, - {file = "scipy-1.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:076c27284c768b84a45dcf2e914d4000aac537da74236a0d45d82c6fa4b7b3c0"}, - {file = "scipy-1.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42470ea0195336df319741e230626b6225a740fd9dce9642ca13e98f667047c0"}, - {file = "scipy-1.14.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:176c6f0d0470a32f1b2efaf40c3d37a24876cebf447498a4cefb947a79c21e9d"}, - {file = "scipy-1.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:ad36af9626d27a4326c8e884917b7ec321d8a1841cd6dacc67d2a9e90c2f0359"}, - {file = "scipy-1.14.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6d056a8709ccda6cf36cdd2eac597d13bc03dba38360f418560a93050c76a16e"}, - {file = "scipy-1.14.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:f0a50da861a7ec4573b7c716b2ebdcdf142b66b756a0d392c236ae568b3a93fb"}, - {file = "scipy-1.14.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:94c164a9e2498e68308e6e148646e486d979f7fcdb8b4cf34b5441894bdb9caf"}, - {file = "scipy-1.14.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:a7d46c3e0aea5c064e734c3eac5cf9eb1f8c4ceee756262f2c7327c4c2691c86"}, - {file = "scipy-1.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9eee2989868e274aae26125345584254d97c56194c072ed96cb433f32f692ed8"}, - {file = "scipy-1.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e3154691b9f7ed73778d746da2df67a19d046a6c8087c8b385bc4cdb2cfca74"}, - {file = "scipy-1.14.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c40003d880f39c11c1edbae8144e3813904b10514cd3d3d00c277ae996488cdb"}, - {file = "scipy-1.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:5b083c8940028bb7e0b4172acafda6df762da1927b9091f9611b0bcd8676f2bc"}, - {file = "scipy-1.14.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:bff2438ea1330e06e53c424893ec0072640dac00f29c6a43a575cbae4c99b2b9"}, - {file = "scipy-1.14.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:bbc0471b5f22c11c389075d091d3885693fd3f5e9a54ce051b46308bc787e5d4"}, - {file = "scipy-1.14.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:64b2ff514a98cf2bb734a9f90d32dc89dc6ad4a4a36a312cd0d6327170339eb0"}, - {file = "scipy-1.14.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:7d3da42fbbbb860211a811782504f38ae7aaec9de8764a9bef6b262de7a2b50f"}, - {file = "scipy-1.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d91db2c41dd6c20646af280355d41dfa1ec7eead235642178bd57635a3f82209"}, - {file = "scipy-1.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a01cc03bcdc777c9da3cfdcc74b5a75caffb48a6c39c8450a9a05f82c4250a14"}, - {file = "scipy-1.14.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:65df4da3c12a2bb9ad52b86b4dcf46813e869afb006e58be0f516bc370165159"}, - {file = "scipy-1.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:4c4161597c75043f7154238ef419c29a64ac4a7c889d588ea77690ac4d0d9b20"}, - {file = "scipy-1.14.0.tar.gz", hash = "sha256:b5923f48cb840380f9854339176ef21763118a7300a88203ccd0bdd26e58527b"}, -] - -[package.dependencies] -numpy = ">=1.23.5,<2.3" - -[package.extras] -dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodestyle", "pydevtool", "rich-click", "ruff (>=0.0.292)", "types-psutil", "typing_extensions"] -doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.13.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] -test = ["Cython", "array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] - -[[package]] -name = "seaborn" -version = "0.13.2" -description = "Statistical data visualization" -optional = false -python-versions = ">=3.8" -files = [ - {file = "seaborn-0.13.2-py3-none-any.whl", hash = "sha256:636f8336facf092165e27924f223d3c62ca560b1f2bb5dff7ab7fad265361987"}, - {file = "seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7"}, -] - -[package.dependencies] -matplotlib = ">=3.4,<3.6.1 || >3.6.1" -numpy = ">=1.20,<1.24.0 || >1.24.0" -pandas = ">=1.2" - -[package.extras] -dev = ["flake8", "flit", "mypy", "pandas-stubs", "pre-commit", "pytest", "pytest-cov", "pytest-xdist"] -docs = ["ipykernel", "nbconvert", "numpydoc", "pydata_sphinx_theme (==0.10.0rc2)", "pyyaml", "sphinx (<6.0.0)", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] -stats = ["scipy (>=1.7)", "statsmodels (>=0.12)"] - -[[package]] -name = "send2trash" -version = "1.8.3" -description = "Send file to trash natively under Mac OS X, Windows and Linux" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" -files = [ - {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, - {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, -] - -[package.extras] -nativelib = ["pyobjc-framework-Cocoa", "pywin32"] -objc = ["pyobjc-framework-Cocoa"] -win32 = ["pywin32"] - -[[package]] -name = "setuptools" -version = "70.1.1" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "setuptools-70.1.1-py3-none-any.whl", hash = "sha256:a58a8fde0541dab0419750bcc521fbdf8585f6e5cb41909df3a472ef7b81ca95"}, - {file = "setuptools-70.1.1.tar.gz", hash = "sha256:937a48c7cdb7a21eb53cd7f9b59e525503aa8abaf3584c730dc5f7a5bec3a650"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.10.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "smmap" -version = "5.0.1" -description = "A pure Python implementation of a sliding window memory map manager" -optional = false -python-versions = ">=3.7" -files = [ - {file = "smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"}, - {file = "smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62"}, -] - -[[package]] -name = "sniffio" -version = "1.3.1" -description = "Sniff out which async library your code is running under" -optional = false -python-versions = ">=3.7" -files = [ - {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, - {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, -] - -[[package]] -name = "snowballstemmer" -version = "2.2.0" -description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -optional = false -python-versions = "*" -files = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] - -[[package]] -name = "soupsieve" -version = "2.5" -description = "A modern CSS selector implementation for Beautiful Soup." -optional = false -python-versions = ">=3.8" -files = [ - {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, - {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, -] - -[[package]] -name = "sphinx" -version = "4.5.0" -description = "Python documentation generator" -optional = false -python-versions = ">=3.6" -files = [ - {file = "Sphinx-4.5.0-py3-none-any.whl", hash = "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"}, - {file = "Sphinx-4.5.0.tar.gz", hash = "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6"}, -] - -[package.dependencies] -alabaster = ">=0.7,<0.8" -babel = ">=1.3" -colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.14,<0.18" -imagesize = "*" -Jinja2 = ">=2.3" -packaging = "*" -Pygments = ">=2.0" -requests = ">=2.5.0" -snowballstemmer = ">=1.1" -sphinxcontrib-applehelp = "*" -sphinxcontrib-devhelp = "*" -sphinxcontrib-htmlhelp = ">=2.0.0" -sphinxcontrib-jsmath = "*" -sphinxcontrib-qthelp = "*" -sphinxcontrib-serializinghtml = ">=1.1.5" - -[package.extras] -docs = ["sphinxcontrib-websupport"] -lint = ["docutils-stubs", "flake8 (>=3.5.0)", "isort", "mypy (>=0.931)", "types-requests", "types-typed-ast"] -test = ["cython", "html5lib", "pytest", "pytest-cov", "typed-ast"] - -[[package]] -name = "sphinx-rtd-theme" -version = "0.4.3" -description = "Read the Docs theme for Sphinx" -optional = false -python-versions = "*" -files = [ - {file = "sphinx_rtd_theme-0.4.3-py2.py3-none-any.whl", hash = "sha256:00cf895504a7895ee433807c62094cf1e95f065843bf3acd17037c3e9a2becd4"}, - {file = "sphinx_rtd_theme-0.4.3.tar.gz", hash = "sha256:728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a"}, -] - -[package.dependencies] -sphinx = "*" - -[[package]] -name = "sphinx-togglebutton" -version = "0.3.2" -description = "Toggle page content and collapse admonitions in Sphinx." -optional = false -python-versions = "*" -files = [ - {file = "sphinx-togglebutton-0.3.2.tar.gz", hash = "sha256:ab0c8b366427b01e4c89802d5d078472c427fa6e9d12d521c34fa0442559dc7a"}, - {file = "sphinx_togglebutton-0.3.2-py3-none-any.whl", hash = "sha256:9647ba7874b7d1e2d43413d8497153a85edc6ac95a3fea9a75ef9c1e08aaae2b"}, -] - -[package.dependencies] -docutils = "*" -setuptools = "*" -sphinx = "*" -wheel = "*" - -[package.extras] -sphinx = ["matplotlib", "myst-nb", "numpy", "sphinx-book-theme", "sphinx-design", "sphinx-examples"] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "1.0.8" -description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_applehelp-1.0.8-py3-none-any.whl", hash = "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"}, - {file = "sphinxcontrib_applehelp-1.0.8.tar.gz", hash = "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619"}, -] - -[package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "1.0.6" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_devhelp-1.0.6-py3-none-any.whl", hash = "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f"}, - {file = "sphinxcontrib_devhelp-1.0.6.tar.gz", hash = "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"}, -] - -[package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.0.5" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_htmlhelp-2.0.5-py3-none-any.whl", hash = "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"}, - {file = "sphinxcontrib_htmlhelp-2.0.5.tar.gz", hash = "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015"}, -] - -[package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] -standalone = ["Sphinx (>=5)"] -test = ["html5lib", "pytest"] - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -description = "A sphinx extension which renders display math in HTML via JavaScript" -optional = false -python-versions = ">=3.5" -files = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] - -[package.extras] -test = ["flake8", "mypy", "pytest"] - -[[package]] -name = "sphinxcontrib-qthelp" -version = "1.0.7" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -optional = false -python-versions = ">=3.9" -files = [ - {file = "sphinxcontrib_qthelp-1.0.7-py3-none-any.whl", hash = "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"}, - {file = "sphinxcontrib_qthelp-1.0.7.tar.gz", hash = "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6"}, -] - -[package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] +[package.dependencies] +typeguard = "2.13.3" [[package]] -name = "sphinxcontrib-serializinghtml" -version = "1.1.10" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" +name = "kiwisolver" +version = "1.4.7" +description = "A fast implementation of the Cassowary constraint solver" optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" files = [ - {file = "sphinxcontrib_serializinghtml-1.1.10-py3-none-any.whl", hash = "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7"}, - {file = "sphinxcontrib_serializinghtml-1.1.10.tar.gz", hash = "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a9c83f75223d5e48b0bc9cb1bf2776cf01563e00ade8775ffe13b0b6e1af3a6"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58370b1ffbd35407444d57057b57da5d6549d2d854fa30249771775c63b5fe17"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa0abdf853e09aff551db11fce173e2177d00786c688203f52c87ad7fcd91ef9"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8d53103597a252fb3ab8b5845af04c7a26d5e7ea8122303dd7a021176a87e8b9"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:88f17c5ffa8e9462fb79f62746428dd57b46eb931698e42e990ad63103f35e6c"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a9ca9c710d598fd75ee5de59d5bda2684d9db36a9f50b6125eaea3969c2599"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f4d742cb7af1c28303a51b7a27aaee540e71bb8e24f68c736f6f2ffc82f2bf05"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e28c7fea2196bf4c2f8d46a0415c77a1c480cc0724722f23d7410ffe9842c407"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e968b84db54f9d42046cf154e02911e39c0435c9801681e3fc9ce8a3c4130278"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0c18ec74c0472de033e1bebb2911c3c310eef5649133dd0bedf2a169a1b269e5"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8f0ea6da6d393d8b2e187e6a5e3fb81f5862010a40c3945e2c6d12ae45cfb2ad"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:f106407dda69ae456dd1227966bf445b157ccc80ba0dff3802bb63f30b74e895"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84ec80df401cfee1457063732d90022f93951944b5b58975d34ab56bb150dfb3"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win32.whl", hash = "sha256:71bb308552200fb2c195e35ef05de12f0c878c07fc91c270eb3d6e41698c3bcc"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win_amd64.whl", hash = "sha256:44756f9fd339de0fb6ee4f8c1696cfd19b2422e0d70b4cefc1cc7f1f64045a8c"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win_arm64.whl", hash = "sha256:78a42513018c41c2ffd262eb676442315cbfe3c44eed82385c2ed043bc63210a"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win32.whl", hash = "sha256:4c00336b9dd5ad96d0a558fd18a8b6f711b7449acce4c157e7343ba92dd0cf3d"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:929e294c1ac1e9f615c62a4e4313ca1823ba37326c164ec720a803287c4c499b"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:e33e8fbd440c917106b237ef1a2f1449dfbb9b6f6e1ce17c94cd6a1e0d438376"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win32.whl", hash = "sha256:18e0cca3e008e17fe9b164b55735a325140a5a35faad8de92dd80265cd5eb80b"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:58cb20602b18f86f83a5c87d3ee1c766a79c0d452f8def86d925e6c60fbf7bfb"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:f5a8b53bdc0b3961f8b6125e198617c40aeed638b387913bf1ce78afb1b0be2a"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f816dd2277f8d63d79f9c8473a79fe54047bc0467754962840782c575522224d"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf8bcc23ceb5a1b624572a1623b9f79d2c3b337c8c455405ef231933a10da379"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dea0bf229319828467d7fca8c7c189780aa9ff679c94539eed7532ebe33ed37c"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c06a4c7cf15ec739ce0e5971b26c93638730090add60e183530d70848ebdd34"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913983ad2deb14e66d83c28b632fd35ba2b825031f2fa4ca29675e665dfecbe1"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5337ec7809bcd0f424c6b705ecf97941c46279cf5ed92311782c7c9c2026f07f"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c26ed10c4f6fa6ddb329a5120ba3b6db349ca192ae211e882970bfc9d91420b"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win32.whl", hash = "sha256:f4c9aee212bc89d4e13f58be11a56cc8036cabad119259d12ace14b34476fd07"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:8a3ec5aa8e38fc4c8af308917ce12c536f1c88452ce554027e55b22cbbfbff76"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5d5abf8f8ec1f4e22882273c423e16cae834c36856cac348cfbfa68e01c40f3a"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:aeb3531b196ef6f11776c21674dba836aeea9d5bd1cf630f869e3d90b16cfade"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b7d755065e4e866a8086c9bdada157133ff466476a2ad7861828e17b6026e22c"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08471d4d86cbaec61f86b217dd938a83d85e03785f51121e791a6e6689a3be95"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7bbfcb7165ce3d54a3dfbe731e470f65739c4c1f85bb1018ee912bae139e263b"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d34eb8494bea691a1a450141ebb5385e4b69d38bb8403b5146ad279f4b30fa3"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9242795d174daa40105c1d86aba618e8eab7bf96ba8c3ee614da8302a9f95503"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a0f64a48bb81af7450e641e3fe0b0394d7381e342805479178b3d335d60ca7cf"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8e045731a5416357638d1700927529e2b8ab304811671f665b225f8bf8d8f933"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4322872d5772cae7369f8351da1edf255a604ea7087fe295411397d0cfd9655e"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:e1631290ee9271dffe3062d2634c3ecac02c83890ada077d225e081aca8aab89"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:edcfc407e4eb17e037bca59be0e85a2031a2ac87e4fed26d3e9df88b4165f92d"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:4d05d81ecb47d11e7f8932bd8b61b720bf0b41199358f3f5e36d38e28f0532c5"}, + {file = "kiwisolver-1.4.7-cp38-cp38-win32.whl", hash = "sha256:b38ac83d5f04b15e515fd86f312479d950d05ce2368d5413d46c088dda7de90a"}, + {file = "kiwisolver-1.4.7-cp38-cp38-win_amd64.whl", hash = "sha256:d83db7cde68459fc803052a55ace60bea2bae361fc3b7a6d5da07e11954e4b09"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f9362ecfca44c863569d3d3c033dbe8ba452ff8eed6f6b5806382741a1334bd"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e8df2eb9b2bac43ef8b082e06f750350fbbaf2887534a5be97f6cf07b19d9583"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f32d6edbc638cde7652bd690c3e728b25332acbadd7cad670cc4a02558d9c417"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e2e6c39bd7b9372b0be21456caab138e8e69cc0fc1190a9dfa92bd45a1e6e904"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dda56c24d869b1193fcc763f1284b9126550eaf84b88bbc7256e15028f19188a"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79849239c39b5e1fd906556c474d9b0439ea6792b637511f3fe3a41158d89ca8"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e3bc157fed2a4c02ec468de4ecd12a6e22818d4f09cde2c31ee3226ffbefab2"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3da53da805b71e41053dc670f9a820d1157aae77b6b944e08024d17bcd51ef88"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8705f17dfeb43139a692298cb6637ee2e59c0194538153e83e9ee0c75c2eddde"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:82a5c2f4b87c26bb1a0ef3d16b5c4753434633b83d365cc0ddf2770c93829e3c"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce8be0466f4c0d585cdb6c1e2ed07232221df101a4c6f28821d2aa754ca2d9e2"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:409afdfe1e2e90e6ee7fc896f3df9a7fec8e793e58bfa0d052c8a82f99c37abb"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5b9c3f4ee0b9a439d2415012bd1b1cc2df59e4d6a9939f4d669241d30b414327"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win32.whl", hash = "sha256:a79ae34384df2b615eefca647a2873842ac3b596418032bef9a7283675962644"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win_amd64.whl", hash = "sha256:cf0438b42121a66a3a667de17e779330fc0f20b0d97d59d2f2121e182b0505e4"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win_arm64.whl", hash = "sha256:764202cc7e70f767dab49e8df52c7455e8de0df5d858fa801a11aa0d882ccf3f"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:94252291e3fe68001b1dd747b4c0b3be12582839b95ad4d1b641924d68fd4643"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b7dfa3b546da08a9f622bb6becdb14b3e24aaa30adba66749d38f3cc7ea9706"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd3de6481f4ed8b734da5df134cd5a6a64fe32124fe83dde1e5b5f29fe30b1e6"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a91b5f9f1205845d488c928e8570dcb62b893372f63b8b6e98b863ebd2368ff2"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fa14dbd66b8b8f470d5fc79c089a66185619d31645f9b0773b88b19f7223c4"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:eb542fe7933aa09d8d8f9d9097ef37532a7df6497819d16efe4359890a2f417a"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bfa1acfa0c54932d5607e19a2c24646fb4c1ae2694437789129cf099789a3b00"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:eee3ea935c3d227d49b4eb85660ff631556841f6e567f0f7bda972df6c2c9935"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f3160309af4396e0ed04db259c3ccbfdc3621b5559b5453075e5de555e1f3a1b"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a17f6a29cf8935e587cc8a4dbfc8368c55edc645283db0ce9801016f83526c2d"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10849fb2c1ecbfae45a693c070e0320a91b35dd4bcf58172c023b994283a124d"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:ac542bf38a8a4be2dc6b15248d36315ccc65f0743f7b1a76688ffb6b5129a5c2"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8b01aac285f91ca889c800042c35ad3b239e704b150cfd3382adfc9dcc780e39"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:48be928f59a1f5c8207154f935334d374e79f2b5d212826307d072595ad76a2e"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f37cfe618a117e50d8c240555331160d73d0411422b59b5ee217843d7b693608"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:599b5c873c63a1f6ed7eead644a8a380cfbdf5db91dcb6f85707aaab213b1674"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:801fa7802e5cfabe3ab0c81a34c323a319b097dfb5004be950482d882f3d7225"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0c6c43471bc764fad4bc99c5c2d6d16a676b1abf844ca7c8702bdae92df01ee0"}, + {file = "kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60"}, ] -[package.extras] -lint = ["docutils-stubs", "flake8", "mypy"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - [[package]] -name = "sqlalchemy" -version = "1.4.52" -description = "Database Abstraction Library" +name = "matplotlib" +version = "3.1.3" +description = "Python plotting package" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +python-versions = ">=3.6" files = [ - {file = "SQLAlchemy-1.4.52-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:f68016f9a5713684c1507cc37133c28035f29925c75c0df2f9d0f7571e23720a"}, - {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24bb0f81fbbb13d737b7f76d1821ec0b117ce8cbb8ee5e8641ad2de41aa916d3"}, - {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e93983cc0d2edae253b3f2141b0a3fb07e41c76cd79c2ad743fc27eb79c3f6db"}, - {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:84e10772cfc333eb08d0b7ef808cd76e4a9a30a725fb62a0495877a57ee41d81"}, - {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:427988398d2902de042093d17f2b9619a5ebc605bf6372f7d70e29bde6736842"}, - {file = "SQLAlchemy-1.4.52-cp310-cp310-win32.whl", hash = "sha256:1296f2cdd6db09b98ceb3c93025f0da4835303b8ac46c15c2136e27ee4d18d94"}, - {file = "SQLAlchemy-1.4.52-cp310-cp310-win_amd64.whl", hash = "sha256:80e7f697bccc56ac6eac9e2df5c98b47de57e7006d2e46e1a3c17c546254f6ef"}, - {file = "SQLAlchemy-1.4.52-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2f251af4c75a675ea42766880ff430ac33291c8d0057acca79710f9e5a77383d"}, - {file = "SQLAlchemy-1.4.52-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb8f9e4c4718f111d7b530c4e6fb4d28f9f110eb82e7961412955b3875b66de0"}, - {file = "SQLAlchemy-1.4.52-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afb1672b57f58c0318ad2cff80b384e816735ffc7e848d8aa51e0b0fc2f4b7bb"}, - {file = "SQLAlchemy-1.4.52-cp311-cp311-win32.whl", hash = "sha256:6e41cb5cda641f3754568d2ed8962f772a7f2b59403b95c60c89f3e0bd25f15e"}, - {file = "SQLAlchemy-1.4.52-cp311-cp311-win_amd64.whl", hash = "sha256:5bed4f8c3b69779de9d99eb03fd9ab67a850d74ab0243d1be9d4080e77b6af12"}, - {file = "SQLAlchemy-1.4.52-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:49e3772eb3380ac88d35495843daf3c03f094b713e66c7d017e322144a5c6b7c"}, - {file = "SQLAlchemy-1.4.52-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:618827c1a1c243d2540314c6e100aee7af09a709bd005bae971686fab6723554"}, - {file = "SQLAlchemy-1.4.52-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de9acf369aaadb71a725b7e83a5ef40ca3de1cf4cdc93fa847df6b12d3cd924b"}, - {file = "SQLAlchemy-1.4.52-cp312-cp312-win32.whl", hash = "sha256:763bd97c4ebc74136ecf3526b34808c58945023a59927b416acebcd68d1fc126"}, - {file = "SQLAlchemy-1.4.52-cp312-cp312-win_amd64.whl", hash = "sha256:f12aaf94f4d9679ca475975578739e12cc5b461172e04d66f7a3c39dd14ffc64"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:853fcfd1f54224ea7aabcf34b227d2b64a08cbac116ecf376907968b29b8e763"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f98dbb8fcc6d1c03ae8ec735d3c62110949a3b8bc6e215053aa27096857afb45"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e135fff2e84103bc15c07edd8569612ce317d64bdb391f49ce57124a73f45c5"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5b5de6af8852500d01398f5047d62ca3431d1e29a331d0b56c3e14cb03f8094c"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3491c85df263a5c2157c594f54a1a9c72265b75d3777e61ee13c556d9e43ffc9"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-win32.whl", hash = "sha256:427c282dd0deba1f07bcbf499cbcc9fe9a626743f5d4989bfdfd3ed3513003dd"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-win_amd64.whl", hash = "sha256:ca5ce82b11731492204cff8845c5e8ca1a4bd1ade85e3b8fcf86e7601bfc6a39"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:29d4247313abb2015f8979137fe65f4eaceead5247d39603cc4b4a610936cd2b"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a752bff4796bf22803d052d4841ebc3c55c26fb65551f2c96e90ac7c62be763a"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7ea11727feb2861deaa293c7971a4df57ef1c90e42cb53f0da40c3468388000"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d913f8953e098ca931ad7f58797f91deed26b435ec3756478b75c608aa80d139"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a251146b921725547ea1735b060a11e1be705017b568c9f8067ca61e6ef85f20"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-win32.whl", hash = "sha256:1f8e1c6a6b7f8e9407ad9afc0ea41c1f65225ce505b79bc0342159de9c890782"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-win_amd64.whl", hash = "sha256:346ed50cb2c30f5d7a03d888e25744154ceac6f0e6e1ab3bc7b5b77138d37710"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:4dae6001457d4497736e3bc422165f107ecdd70b0d651fab7f731276e8b9e12d"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5d2e08d79f5bf250afb4a61426b41026e448da446b55e4770c2afdc1e200fce"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bbce5dd7c7735e01d24f5a60177f3e589078f83c8a29e124a6521b76d825b85"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bdb7b4d889631a3b2a81a3347c4c3f031812eb4adeaa3ee4e6b0d028ad1852b5"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c294ae4e6bbd060dd79e2bd5bba8b6274d08ffd65b58d106394cb6abbf35cf45"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-win32.whl", hash = "sha256:bcdfb4b47fe04967669874fb1ce782a006756fdbebe7263f6a000e1db969120e"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-win_amd64.whl", hash = "sha256:7d0dbc56cb6af5088f3658982d3d8c1d6a82691f31f7b0da682c7b98fa914e91"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:a551d5f3dc63f096ed41775ceec72fdf91462bb95abdc179010dc95a93957800"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ab773f9ad848118df7a9bbabca53e3f1002387cdbb6ee81693db808b82aaab0"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2de46f5d5396d5331127cfa71f837cca945f9a2b04f7cb5a01949cf676db7d1"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7027be7930a90d18a386b25ee8af30514c61f3852c7268899f23fdfbd3107181"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99224d621affbb3c1a4f72b631f8393045f4ce647dd3262f12fe3576918f8bf3"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-win32.whl", hash = "sha256:c124912fd4e1bb9d1e7dc193ed482a9f812769cb1e69363ab68e01801e859821"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-win_amd64.whl", hash = "sha256:2c286fab42e49db23c46ab02479f328b8bdb837d3e281cae546cc4085c83b680"}, - {file = "SQLAlchemy-1.4.52.tar.gz", hash = "sha256:80e63bbdc5217dad3485059bdf6f65a7d43f33c8bde619df5c220edf03d87296"}, + {file = "matplotlib-3.1.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6a0031774c6c68298183438edf2e738856d63a4c4797876fa81d0ee337f5361c"}, + {file = "matplotlib-3.1.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:b4c0010eff09ab65c77ad1a0eec6c7cccb9f6838c3c77dc5b4002fe0cf2912fd"}, + {file = "matplotlib-3.1.3-cp36-cp36m-win32.whl", hash = "sha256:78d0772412c0653aa3e860c52ff08d1f5ba64334e2b86b09dc2d502657d8ca73"}, + {file = "matplotlib-3.1.3-cp36-cp36m-win_amd64.whl", hash = "sha256:97f04d29a358826f205320fbc88d46ce5c5ff6fb54ae050042ff396beda52ca4"}, + {file = "matplotlib-3.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4164265ca573481ce61c83322e6b33628203afeabeb3e22c50376f5d3ee0f9be"}, + {file = "matplotlib-3.1.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:b5ace0531255932ad19fe64c116ada2713f7b38381db8f68df0fa694409e67d1"}, + {file = "matplotlib-3.1.3-cp37-cp37m-win32.whl", hash = "sha256:c7bb7ed3e011324b56462391ec3f4bbb7c8c6af5892ebfb45d312b15b4cdfc8d"}, + {file = "matplotlib-3.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:f0023322c99328c40ce22678ab0ab5adfc27e338419966539398239996f63e8d"}, + {file = "matplotlib-3.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:db8bbba9284845034a2f0e1add91dc5e89db8c996359bdcf677a8d6f88875cf1"}, + {file = "matplotlib-3.1.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:635ded7834f43c8d999076236f7e90074d77f7b8345e5e82cd95af053cc29df1"}, + {file = "matplotlib-3.1.3-cp38-cp38-win32.whl", hash = "sha256:8efff896c49676700dc6adace6137a854ff64a4d44ca057ff726960ffdaa47bf"}, + {file = "matplotlib-3.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:470eed601ff5132364e0121a20d7c3d43fab969c8c333422c1b6b72fde2ed3c1"}, + {file = "matplotlib-3.1.3-pp373-pypy36_pp73-win32.whl", hash = "sha256:23b71560c721109954c0215ffc81f4c80ce8528749d534a01a61e8ab737c5bce"}, + {file = "matplotlib-3.1.3.tar.gz", hash = "sha256:db3121f12fb9b99f105d1413aebaeb3d943f269f3d262b45586d12765866f0c6"}, ] [package.dependencies] -greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} - -[package.extras] -aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] -aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] -asyncio = ["greenlet (!=0.4.17)"] -asyncmy = ["asyncmy (>=0.2.3,!=0.2.4)", "greenlet (!=0.4.17)"] -mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2)"] -mssql = ["pyodbc"] -mssql-pymssql = ["pymssql"] -mssql-pyodbc = ["pyodbc"] -mypy = ["mypy (>=0.910)", "sqlalchemy2-stubs"] -mysql = ["mysqlclient (>=1.4.0)", "mysqlclient (>=1.4.0,<2)"] -mysql-connector = ["mysql-connector-python"] -oracle = ["cx_oracle (>=7)", "cx_oracle (>=7,<8)"] -postgresql = ["psycopg2 (>=2.7)"] -postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] -postgresql-pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] -postgresql-psycopg2binary = ["psycopg2-binary"] -postgresql-psycopg2cffi = ["psycopg2cffi"] -pymysql = ["pymysql", "pymysql (<1)"] -sqlcipher = ["sqlcipher3_binary"] +cycler = ">=0.10" +kiwisolver = ">=1.0.1" +numpy = ">=1.11" +pyparsing = ">=2.0.1,<2.0.4 || >2.0.4,<2.1.2 || >2.1.2,<2.1.6 || >2.1.6" +python-dateutil = ">=2.1" [[package]] -name = "stack-data" -version = "0.6.3" -description = "Extract data from python stack frames and tracebacks for informative displays" +name = "mctx" +version = "0.0.5" +description = "Monte Carlo tree search in JAX." optional = false -python-versions = "*" +python-versions = ">=3.9" files = [ - {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, - {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, + {file = "mctx-0.0.5-py3-none-any.whl", hash = "sha256:d263830a1e44a16fe2ede5ed5b37fd83626459bfccbb1ab814a6bd49bf62ffd3"}, + {file = "mctx-0.0.5.tar.gz", hash = "sha256:e9f669bf4fd4c4f61837be6f9ab0ca60180945108c36bcdf5beaabc481020e21"}, ] [package.dependencies] -asttokens = ">=2.1.0" -executing = ">=1.2.0" -pure-eval = "*" - -[package.extras] -tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] +chex = ">=0.0.8" +jax = ">=0.1.55" +jaxlib = ">=0.1.37" [[package]] -name = "terminado" -version = "0.18.1" -description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +name = "ml-dtypes" +version = "0.4.1" +description = "" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, - {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, + {file = "ml_dtypes-0.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1fe8b5b5e70cd67211db94b05cfd58dace592f24489b038dc6f9fe347d2e07d5"}, + {file = "ml_dtypes-0.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c09a6d11d8475c2a9fd2bc0695628aec105f97cab3b3a3fb7c9660348ff7d24"}, + {file = "ml_dtypes-0.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5e8f75fa371020dd30f9196e7d73babae2abd51cf59bdd56cb4f8de7e13354"}, + {file = "ml_dtypes-0.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:15fdd922fea57e493844e5abb930b9c0bd0af217d9edd3724479fc3d7ce70e3f"}, + {file = "ml_dtypes-0.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2d55b588116a7085d6e074cf0cdb1d6fa3875c059dddc4d2c94a4cc81c23e975"}, + {file = "ml_dtypes-0.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e138a9b7a48079c900ea969341a5754019a1ad17ae27ee330f7ebf43f23877f9"}, + {file = "ml_dtypes-0.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74c6cfb5cf78535b103fde9ea3ded8e9f16f75bc07789054edc7776abfb3d752"}, + {file = "ml_dtypes-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:274cc7193dd73b35fb26bef6c5d40ae3eb258359ee71cd82f6e96a8c948bdaa6"}, + {file = "ml_dtypes-0.4.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:827d3ca2097085cf0355f8fdf092b888890bb1b1455f52801a2d7756f056f54b"}, + {file = "ml_dtypes-0.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:772426b08a6172a891274d581ce58ea2789cc8abc1c002a27223f314aaf894e7"}, + {file = "ml_dtypes-0.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:126e7d679b8676d1a958f2651949fbfa182832c3cd08020d8facd94e4114f3e9"}, + {file = "ml_dtypes-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:df0fb650d5c582a9e72bb5bd96cfebb2cdb889d89daff621c8fbc60295eba66c"}, + {file = "ml_dtypes-0.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e35e486e97aee577d0890bc3bd9e9f9eece50c08c163304008587ec8cfe7575b"}, + {file = "ml_dtypes-0.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:560be16dc1e3bdf7c087eb727e2cf9c0e6a3d87e9f415079d2491cc419b3ebf5"}, + {file = "ml_dtypes-0.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad0b757d445a20df39035c4cdeed457ec8b60d236020d2560dbc25887533cf50"}, + {file = "ml_dtypes-0.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:ef0d7e3fece227b49b544fa69e50e607ac20948f0043e9f76b44f35f229ea450"}, + {file = "ml_dtypes-0.4.1.tar.gz", hash = "sha256:fad5f2de464fd09127e49b7fd1252b9006fb43d2edc1ff112d390c324af5ca7a"}, ] [package.dependencies] -ptyprocess = {version = "*", markers = "os_name != \"nt\""} -pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} -tornado = ">=6.1.0" +numpy = {version = ">=1.26.0", markers = "python_version >= \"3.12\""} [package.extras] -docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] -typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] +dev = ["absl-py", "pyink", "pylint (>=2.6.0)", "pytest", "pytest-xdist"] [[package]] -name = "tinycss2" -version = "1.3.0" -description = "A tiny CSS parser" +name = "ml-dtypes" +version = "0.5.0" +description = "" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "tinycss2-1.3.0-py3-none-any.whl", hash = "sha256:54a8dbdffb334d536851be0226030e9505965bb2f30f21a4a82c55fb2a80fae7"}, - {file = "tinycss2-1.3.0.tar.gz", hash = "sha256:152f9acabd296a8375fbca5b84c961ff95971fcfc32e79550c8df8e29118c54d"}, + {file = "ml_dtypes-0.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c32138975797e681eb175996d64356bcfa124bdbb6a70460b9768c2b35a6fa4"}, + {file = "ml_dtypes-0.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab046f2ff789b1f11b2491909682c5d089934835f9a760fafc180e47dcb676b8"}, + {file = "ml_dtypes-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7a9152f5876fef565516aa5dd1dccd6fc298a5891b2467973905103eb5c7856"}, + {file = "ml_dtypes-0.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:968fede07d1f9b926a63df97d25ac656cac1a57ebd33701734eaf704bc55d8d8"}, + {file = "ml_dtypes-0.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:60275f2b51b56834e840c4809fca840565f9bf8e9a73f6d8c94f5b5935701215"}, + {file = "ml_dtypes-0.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76942f6aeb5c40766d5ea62386daa4148e6a54322aaf5b53eae9e7553240222f"}, + {file = "ml_dtypes-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e7534392682c3098bc7341648c650864207169c654aed83143d7a19c67ae06f"}, + {file = "ml_dtypes-0.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:dc74fd9995513d33eac63d64e436240f5494ec74d522a9f0920194942fc3d2d7"}, + {file = "ml_dtypes-0.5.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d4b1a70a3e5219790d6b55b9507606fc4e02911d1497d16c18dd721eb7efe7d0"}, + {file = "ml_dtypes-0.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a988bac6572630e1e9c2edd9b1277b4eefd1c86209e52b0d061b775ac33902ff"}, + {file = "ml_dtypes-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a38df8df61194aeaae1ab7579075779b4ad32cd1cffd012c28be227fa7f2a70a"}, + {file = "ml_dtypes-0.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:afa08343069874a30812871d639f9c02b4158ace065601406a493a8511180c02"}, + {file = "ml_dtypes-0.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d3b3db9990c3840986a0e70524e122cfa32b91139c3653df76121ba7776e015f"}, + {file = "ml_dtypes-0.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e04fde367b2fe901b1d47234426fe8819909bd1dd862a5adb630f27789c20599"}, + {file = "ml_dtypes-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54415257f00eb44fbcc807454efac3356f75644f1cbfc2d4e5522a72ae1dacab"}, + {file = "ml_dtypes-0.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:cb5cc7b25acabd384f75bbd78892d0c724943f3e2e1986254665a1aa10982e07"}, + {file = "ml_dtypes-0.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5f2b59233a0dbb6a560b3137ed6125433289ccba2f8d9c3695a52423a369ed15"}, + {file = "ml_dtypes-0.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:099e09edd54e676903b4538f3815b5ab96f5b119690514602d96bfdb67172cbe"}, + {file = "ml_dtypes-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a03fc861b86cc586728e3d093ba37f0cc05e65330c3ebd7688e7bae8290f8859"}, + {file = "ml_dtypes-0.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:7ee9c320bb0f9ffdf9f6fa6a696ef2e005d1f66438d6f1c1457338e00a02e8cf"}, + {file = "ml_dtypes-0.5.0.tar.gz", hash = "sha256:3e7d3a380fe73a63c884f06136f8baa7a5249cc8e9fdec677997dd78549f8128"}, ] [package.dependencies] -webencodings = ">=0.4" +numpy = [ + {version = ">=1.26.0", markers = "python_version >= \"3.12\" and python_version < \"3.13\""}, + {version = ">=1.23.3", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, +] [package.extras] -doc = ["sphinx", "sphinx_rtd_theme"] -test = ["pytest", "ruff"] +dev = ["absl-py", "pyink", "pylint (>=2.6.0)", "pytest", "pytest-xdist"] [[package]] -name = "toml" -version = "0.10.2" -description = "Python Library for Tom's Obvious, Minimal Language" +name = "multimethod" +version = "1.12" +description = "Multiple argument dispatching." optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = ">=3.9" files = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, + {file = "multimethod-1.12-py3-none-any.whl", hash = "sha256:fd0c473c43558908d97cc06e4d68e8f69202f167db46f7b4e4058893e7dbdf60"}, + {file = "multimethod-1.12.tar.gz", hash = "sha256:8db8ef2a8d2a247e3570cc23317680892fdf903d84c8c1053667c8e8f7671a67"}, ] [[package]] -name = "toolz" -version = "0.12.1" -description = "List processing tools and functional utilities" +name = "networkx" +version = "3.3" +description = "Python package for creating and manipulating graphs and networks" optional = false -python-versions = ">=3.7" +python-versions = ">=3.10" files = [ - {file = "toolz-0.12.1-py3-none-any.whl", hash = "sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85"}, - {file = "toolz-0.12.1.tar.gz", hash = "sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"}, + {file = "networkx-3.3-py3-none-any.whl", hash = "sha256:28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2"}, + {file = "networkx-3.3.tar.gz", hash = "sha256:0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9"}, ] +[package.extras] +default = ["matplotlib (>=3.6)", "numpy (>=1.23)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.5)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["myst-nb (>=1.0)", "numpydoc (>=1.7)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=2.0)", "pygraphviz (>=1.12)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] + [[package]] -name = "tornado" -version = "6.4.1" -description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +name = "numpy" +version = "1.26.4" +description = "Fundamental package for array computing in Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"}, - {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"}, - {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"}, - {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"}, - {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"}, - {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"}, - {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"}, - {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"}, - {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"}, - {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"}, - {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, ] [[package]] -name = "tqdm" -version = "4.66.4" -description = "Fast, Extensible Progress Meter" +name = "opt-einsum" +version = "3.3.0" +description = "Optimizing numpys einsum function" optional = false -python-versions = ">=3.7" +python-versions = ">=3.5" files = [ - {file = "tqdm-4.66.4-py3-none-any.whl", hash = "sha256:b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644"}, - {file = "tqdm-4.66.4.tar.gz", hash = "sha256:e4d936c9de8727928f3be6079590e97d9abfe8d39a590be678eb5919ffc186bb"}, + {file = "opt_einsum-3.3.0-py3-none-any.whl", hash = "sha256:2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147"}, + {file = "opt_einsum-3.3.0.tar.gz", hash = "sha256:59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549"}, ] [package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} +numpy = ">=1.7" [package.extras] -dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] -notebook = ["ipywidgets (>=6)"] -slack = ["slack-sdk"] -telegram = ["requests"] +docs = ["numpydoc", "sphinx (==1.2.3)", "sphinx-rtd-theme", "sphinxcontrib-napoleon"] +tests = ["pytest", "pytest-cov", "pytest-pep8"] [[package]] -name = "traitlets" -version = "5.14.3" -description = "Traitlets Python configuration system" +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, - {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, ] -[package.extras] -docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] - [[package]] -name = "typeguard" -version = "2.13.3" -description = "Run-time type checker for Python" +name = "pandas" +version = "2.2.3" +description = "Powerful data structures for data analysis, time series, and statistics" optional = false -python-versions = ">=3.5.3" +python-versions = ">=3.9" files = [ - {file = "typeguard-2.13.3-py3-none-any.whl", hash = "sha256:5e3e3be01e887e7eafae5af63d1f36c849aaa94e3a0112097312aabfa16284f1"}, - {file = "typeguard-2.13.3.tar.gz", hash = "sha256:00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, ] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" [package.extras] -doc = ["sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["mypy", "pytest", "typing-extensions"] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] [[package]] -name = "types-python-dateutil" -version = "2.9.0.20240316" -description = "Typing stubs for python-dateutil" +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" files = [ - {file = "types-python-dateutil-2.9.0.20240316.tar.gz", hash = "sha256:5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202"}, - {file = "types_python_dateutil-2.9.0.20240316-py3-none-any.whl", hash = "sha256:6b8cb66d960771ce5ff974e9dd45e38facb81718cc1e208b10b1baccbfdbee3b"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + [[package]] -name = "typing-extensions" -version = "4.12.2" -description = "Backported and Experimental Type Hints for Python 3.8+" +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" optional = false -python-versions = ">=3.8" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ - {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, - {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, ] [[package]] -name = "tzdata" -version = "2024.1" -description = "Provider of IANA time zone data" +name = "pyparsing" +version = "3.1.4" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false -python-versions = ">=2" +python-versions = ">=3.6.8" files = [ - {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, - {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, + {file = "pyparsing-3.1.4-py3-none-any.whl", hash = "sha256:a6a7ee4235a3f944aa1fa2249307708f893fe5717dc603503c6c7969c070fb7c"}, + {file = "pyparsing-3.1.4.tar.gz", hash = "sha256:f86ec8d1a83f11977c9a6ea7598e8c27fc5cddfa5b07ea2241edbbde1d7bc032"}, ] +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + [[package]] -name = "uri-template" -version = "1.3.0" -description = "RFC 6570 URI Template Processor" +name = "pytest" +version = "6.2.5" +description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.6" files = [ - {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, - {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, + {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, + {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, ] +[package.dependencies] +atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +py = ">=1.8.2" +toml = "*" + [package.extras] -dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] [[package]] -name = "urllib3" -version = "2.2.2" -description = "HTTP library with thread-safe connection pooling, file post, and more." +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" optional = false -python-versions = ">=3.8" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, - {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] +[package.dependencies] +six = ">=1.5" [[package]] -name = "wcwidth" -version = "0.2.13" -description = "Measures the displayed width of unicode strings in a terminal" +name = "pytz" +version = "2024.2" +description = "World timezone definitions, modern and historical" optional = false python-versions = "*" files = [ - {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, - {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, ] [[package]] -name = "webcolors" -version = "24.6.0" -description = "A library for working with the color formats defined by HTML and CSS." +name = "scipy" +version = "1.14.1" +description = "Fundamental algorithms for scientific computing in Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" files = [ - {file = "webcolors-24.6.0-py3-none-any.whl", hash = "sha256:8cf5bc7e28defd1d48b9e83d5fc30741328305a8195c29a8e668fa45586568a1"}, - {file = "webcolors-24.6.0.tar.gz", hash = "sha256:1d160d1de46b3e81e58d0a280d0c78b467dc80f47294b91b1ad8029d2cedb55b"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:b28d2ca4add7ac16ae8bb6632a3c86e4b9e4d52d3e34267f6e1b0c1f8d87e389"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0d2821003174de06b69e58cef2316a6622b60ee613121199cb2852a873f8cf3"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8bddf15838ba768bb5f5083c1ea012d64c9a444e16192762bd858f1e126196d0"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:97c5dddd5932bd2a1a31c927ba5e1463a53b87ca96b5c9bdf5dfd6096e27efc3"}, + {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ff0a7e01e422c15739ecd64432743cf7aae2b03f3084288f399affcefe5222d"}, + {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e32dced201274bf96899e6491d9ba3e9a5f6b336708656466ad0522d8528f69"}, + {file = "scipy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8426251ad1e4ad903a4514712d2fa8fdd5382c978010d1c6f5f37ef286a713ad"}, + {file = "scipy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:a49f6ed96f83966f576b33a44257d869756df6cf1ef4934f59dd58b25e0327e5"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8"}, + {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37"}, + {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2"}, + {file = "scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2"}, + {file = "scipy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc"}, + {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310"}, + {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066"}, + {file = "scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1"}, + {file = "scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e"}, + {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d"}, + {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e"}, + {file = "scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06"}, + {file = "scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84"}, + {file = "scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417"}, ] +[package.dependencies] +numpy = ">=1.23.5,<2.3" + [package.extras] -docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] -tests = ["coverage[toml]"] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodestyle", "pydevtool", "rich-click", "ruff (>=0.0.292)", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.13.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<=7.3.7)", "sphinx-design (>=0.4.0)"] +test = ["Cython", "array-api-strict (>=2.0)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] -name = "webencodings" -version = "0.5.1" -description = "Character encoding aliases for legacy web content" +name = "seaborn" +version = "0.11.2" +description = "seaborn: statistical data visualization" optional = false -python-versions = "*" +python-versions = ">=3.6" files = [ - {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, - {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, + {file = "seaborn-0.11.2-py3-none-any.whl", hash = "sha256:85a6baa9b55f81a0623abddc4a26b334653ff4c6b18c418361de19dbba0ef283"}, + {file = "seaborn-0.11.2.tar.gz", hash = "sha256:cf45e9286d40826864be0e3c066f98536982baf701a7caa386511792d61ff4f6"}, ] +[package.dependencies] +matplotlib = ">=2.2" +numpy = ">=1.15" +pandas = ">=0.23" +scipy = ">=1.0" + [[package]] -name = "websocket-client" -version = "1.8.0" -description = "WebSocket client for Python with low level API options" +name = "setuptools" +version = "75.1.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, - {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, + {file = "setuptools-75.1.0-py3-none-any.whl", hash = "sha256:35ab7fd3bcd95e6b7fd704e4a1539513edad446c097797f2985e0e4b960772f2"}, + {file = "setuptools-75.1.0.tar.gz", hash = "sha256:d59a21b17a275fb872a9c3dae73963160ae079f1049ed956880cd7c09b120538"}, ] [package.extras] -docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] -optional = ["python-socks", "wsaccel"] -test = ["websockets"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"] +core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.11.*)", "pytest-mypy"] [[package]] -name = "wheel" -version = "0.43.0" -description = "A built-package format for Python" +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" optional = false -python-versions = ">=3.8" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ - {file = "wheel-0.43.0-py3-none-any.whl", hash = "sha256:55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81"}, - {file = "wheel-0.43.0.tar.gz", hash = "sha256:465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85"}, + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] -[package.extras] -test = ["pytest (>=6.0.0)", "setuptools (>=65)"] - [[package]] -name = "widgetsnbextension" -version = "3.6.6" -description = "IPython HTML widgets for Jupyter" +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" optional = false -python-versions = "*" +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ - {file = "widgetsnbextension-3.6.6-py2.py3-none-any.whl", hash = "sha256:e7fb9999845affc9024ecfbe0a824dd8e633403d027b28ceadab398b633ad51c"}, - {file = "widgetsnbextension-3.6.6.tar.gz", hash = "sha256:46f4e3cb2d451bbd6141a13696d6ba17c9b5f50645dca9cfd26fe9644d5a00e1"}, + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, ] -[package.dependencies] -notebook = ">=4.4.1" - [[package]] -name = "xarray" -version = "2022.9.0" -description = "N-D labeled arrays and datasets in Python" +name = "toolz" +version = "0.12.1" +description = "List processing tools and functional utilities" optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "xarray-2022.9.0-py3-none-any.whl", hash = "sha256:baa7c1a9135198435a2cfb2c68e8b1fdd100d8a44ddaece6031116f585734da7"}, - {file = "xarray-2022.9.0.tar.gz", hash = "sha256:a2a5b48ec0a3890b71ef48853fe9d5107d2f75452722f319cb8ed6ff8e72e883"}, + {file = "toolz-0.12.1-py3-none-any.whl", hash = "sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85"}, + {file = "toolz-0.12.1.tar.gz", hash = "sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"}, ] -[package.dependencies] -numpy = ">=1.19" -packaging = ">=20.0" -pandas = ">=1.2" - -[package.extras] -accel = ["bottleneck", "flox", "numbagg", "scipy"] -complete = ["bottleneck", "cfgrib", "cftime", "dask[complete]", "flox", "fsspec", "h5netcdf", "matplotlib", "nc-time-axis", "netCDF4", "numbagg", "pooch", "pydap", "rasterio", "scipy", "seaborn", "zarr"] -docs = ["bottleneck", "cfgrib", "cftime", "dask[complete]", "flox", "fsspec", "h5netcdf", "ipykernel", "ipython", "jupyter-client", "matplotlib", "nbsphinx", "nc-time-axis", "netCDF4", "numbagg", "pooch", "pydap", "rasterio", "scanpydoc", "scipy", "seaborn", "sphinx-autosummary-accessors", "sphinx-rtd-theme", "zarr"] -io = ["cfgrib", "cftime", "fsspec", "h5netcdf", "netCDF4", "pooch", "pydap", "rasterio", "scipy", "zarr"] -parallel = ["dask[complete]"] -viz = ["matplotlib", "nc-time-axis", "seaborn"] - [[package]] -name = "xarray-einstats" -version = "0.7.0" -description = "Stats, linear algebra and einops for xarray" +name = "typeguard" +version = "2.13.3" +description = "Run-time type checker for Python" optional = false -python-versions = ">=3.9" +python-versions = ">=3.5.3" files = [ - {file = "xarray_einstats-0.7.0-py3-none-any.whl", hash = "sha256:f39403341ebf5b634ab1f1bd0e1bb2dc51046e0df31aa908dfbe2fa6a493712e"}, - {file = "xarray_einstats-0.7.0.tar.gz", hash = "sha256:2d7b571b3bbad3cf2fd10c6c75fd949d247d14c29574184c8489d9d607278d38"}, + {file = "typeguard-2.13.3-py3-none-any.whl", hash = "sha256:5e3e3be01e887e7eafae5af63d1f36c849aaa94e3a0112097312aabfa16284f1"}, + {file = "typeguard-2.13.3.tar.gz", hash = "sha256:00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4"}, ] -[package.dependencies] -numpy = ">=1.22" -scipy = ">=1.8" -xarray = ">=2022.09.0" - [package.extras] -doc = ["furo", "jupyter-sphinx", "matplotlib", "myst-nb", "myst-parser[linkify]", "numpydoc", "sphinx (>=5)", "sphinx-copybutton", "sphinx-design", "sphinx-togglebutton", "watermark"] -einops = ["einops"] -numba = ["numba (>=0.55)"] -test = ["hypothesis", "packaging", "pytest", "pytest-cov"] +doc = ["sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["mypy", "pytest", "typing-extensions"] [[package]] -name = "xlsxwriter" -version = "1.4.5" -description = "A Python module for creating Excel XLSX files." +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "XlsxWriter-1.4.5-py2.py3-none-any.whl", hash = "sha256:f9335f1736e2c4fd80e940fe1b6d92d967bf454a1e5d639b0b7a4459ade790cc"}, - {file = "XlsxWriter-1.4.5.tar.gz", hash = "sha256:0956747859567ec01907e561a7d8413de18a7aae36860f979f9da52b9d58bc19"}, + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] [[package]] -name = "zipp" -version = "3.19.2" -description = "Backport of pathlib-compatible object wrapper for zip files" +name = "tzdata" +version = "2024.1" +description = "Provider of IANA time zone data" optional = false -python-versions = ">=3.8" +python-versions = ">=2" files = [ - {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, - {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, ] -[package.extras] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] - [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "d235fb420995c590669047e1fec923856f26dee175f44fe8c72ab021dc5408de" +content-hash = "6516365f62b8d34a1cb5dbeb754c76cfd79d23306a33f5c95e5dd248f473f74b" diff --git a/pyproject.toml b/pyproject.toml index 8bd5dbf1..a9b0c0dc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,44 +1,27 @@ [tool.poetry] -name = "pymdp" -version = "0.1.0" -description = "" -authors = ["Your Name "] +name = "inferactively-pymdp" +version = "1.0.0" +description = "A Python package for solving Markov Decision Processes with Active Inference" +authors = ["Conor Heins "] license = "MIT" readme = "README.md" +packages = [{include="pymdp"}] [tool.poetry.dependencies] python = "^3.11" -openpyxl = "^3.0.7" -packaging = "^20.8" -Pillow = "^8.2.0" -pluggy = "^0.13.1" -py = "^1.10.0" -pyparsing = "^2.4.7" -pytest = "^6.2.1" -python-dateutil = "^2.8.1" -pytz = "^2020.5" -scipy = "^1.6.0" -seaborn = "^0.13" -six = "^1.15.0" -toml = "^0.10.2" -typing-extensions = "^4" -xlsxwriter = "^1.4.3" -sphinx-rtd-theme = "^0.4" -myst-nb = "^0.13.1" -autograd = "^1.3" +numpy = "^1.19.5" jax = "^0.4" +jaxlib = "^0.4" +jaxtyping = "^0.2" equinox = "^0.11" -numpyro = "^0.14" -arviz = "^0.13" -optax = "^0.1" -matplotlib = "^3.9" multimethod = "^1.11" -networkx = "^3.3" -opencv-python = "^4.10.0.82" -imageio = "^2.34.1" +matplotlib= "3.1.3" +seaborn = "^0.11.1" mctx = "^0.0.5" -mediapy = "^1.2.2" +networkx = "^3.3" +[tool.poetry.group.test.dependencies] +pytest = "^6.0.0" [tool.black] line-length = 120 From 249db72320aa7cb8e217bf92119da384e7640e48 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Mon, 23 Sep 2024 11:11:03 +0200 Subject: [PATCH 161/196] remove unused pandas import --- pymdp/utils.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pymdp/utils.py b/pymdp/utils.py index 7b0fab9c..4d01ffd9 100644 --- a/pymdp/utils.py +++ b/pymdp/utils.py @@ -7,7 +7,6 @@ """ import numpy as np -import pandas as pd import seaborn as sns import matplotlib.pyplot as plt From a741886bbe09d800c9607b5a42ccec2682c03e49 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Mon, 23 Sep 2024 11:11:23 +0200 Subject: [PATCH 162/196] fix distribution unit test --- test/test_distribution.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/test/test_distribution.py b/test/test_distribution.py index d1b94944..fe5801bd 100644 --- a/test/test_distribution.py +++ b/test/test_distribution.py @@ -99,13 +99,13 @@ def test_agent_compile(self): }, }, } - like, trans = distribution.compile_model(model_example) - self.assertEqual(len(trans), 2) - self.assertEqual(len(like), 2) - self.assertEqual(trans[0].data.shape, (3, 3, 2, 2, 2)) - self.assertEqual(trans[1].data.shape, (2, 2, 2)) - self.assertEqual(like[0].data.shape, (10, 3)) - self.assertEqual(like[1].data.shape, (2, 3)) + model = distribution.compile_model(model_example) + self.assertEqual(len(model.B), 2) + self.assertEqual(len(model.A), 2) + self.assertEqual(model.B[0].data.shape, (3, 3, 2, 2, 2)) + self.assertEqual(model.B[1].data.shape, (2, 2, 2)) + self.assertEqual(model.A[0].data.shape, (10, 3)) + self.assertEqual(model.A[1].data.shape, (2, 3)) self.assertIsNotNone - self.assertIsNotNone(like[0][:, "II"]) - self.assertIsNotNone(like[1][1, :]) + self.assertIsNotNone(model.A[0][:, "II"]) + self.assertIsNotNone(model.A[1][1, :]) From d9c9a83c96dba7a8ba8be8d5ce0bb1bd245f4692 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Mon, 23 Sep 2024 11:12:26 +0200 Subject: [PATCH 163/196] fix update_empirical_prior and infer_states in tests --- test/test_agent_jax.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_agent_jax.py b/test/test_agent_jax.py index 97a06682..4f2d3c12 100644 --- a/test/test_agent_jax.py +++ b/test/test_agent_jax.py @@ -89,8 +89,8 @@ def test_agent_complex_action(self): observation = [np.random.randint(0, d, size=(1, 1)) for d in agent.num_obs] qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), agent.D) - prior, _ = agent.infer_empirical_prior(action, qs_hist) - qs = agent.infer_states(observation, None, prior, None) + prior, _ = agent.update_empirical_prior(action, qs_hist) + qs = agent.infer_states(observation, prior) q_pi, G = agent.infer_policies(qs) action = agent.sample_action(q_pi) From ff6e27acd7e0c4da86243ecfc3c532674d1dda0e Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Mon, 23 Sep 2024 16:12:03 +0200 Subject: [PATCH 164/196] configure setuptools using pyproject.toml --- poetry.lock | 872 ----------------------------------------------- pyproject.toml | 59 ++-- requirements.txt | 32 -- setup.py | 78 ----- 4 files changed, 37 insertions(+), 1004 deletions(-) delete mode 100644 poetry.lock delete mode 100644 requirements.txt delete mode 100644 setup.py diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index 353b10ad..00000000 --- a/poetry.lock +++ /dev/null @@ -1,872 +0,0 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. - -[[package]] -name = "absl-py" -version = "2.1.0" -description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py." -optional = false -python-versions = ">=3.7" -files = [ - {file = "absl-py-2.1.0.tar.gz", hash = "sha256:7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff"}, - {file = "absl_py-2.1.0-py3-none-any.whl", hash = "sha256:526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308"}, -] - -[[package]] -name = "atomicwrites" -version = "1.4.1" -description = "Atomic file writes." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, -] - -[[package]] -name = "attrs" -version = "24.2.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.7" -files = [ - {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, - {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, -] - -[package.extras] -benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] - -[[package]] -name = "chex" -version = "0.1.86" -description = "Chex: Testing made fun, in JAX!" -optional = false -python-versions = ">=3.9" -files = [ - {file = "chex-0.1.86-py3-none-any.whl", hash = "sha256:251c20821092323a3d9c28e1cf80e4a58180978bec368f531949bd9847eee568"}, - {file = "chex-0.1.86.tar.gz", hash = "sha256:e8b0f96330eba4144659e1617c0f7a57b161e8cbb021e55c6d5056c7378091d1"}, -] - -[package.dependencies] -absl-py = ">=0.9.0" -jax = ">=0.4.16" -jaxlib = ">=0.1.37" -numpy = ">=1.24.1" -setuptools = {version = "*", markers = "python_version >= \"3.12\""} -toolz = ">=0.9.0" -typing-extensions = ">=4.2.0" - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "cycler" -version = "0.12.1" -description = "Composable style cycles" -optional = false -python-versions = ">=3.8" -files = [ - {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, - {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, -] - -[package.extras] -docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] -tests = ["pytest", "pytest-cov", "pytest-xdist"] - -[[package]] -name = "equinox" -version = "0.11.7" -description = "Elegant easy-to-use neural networks in JAX." -optional = false -python-versions = "~=3.9" -files = [ - {file = "equinox-0.11.7-py3-none-any.whl", hash = "sha256:1177354e1795061fbad71535fe54096d8887dc059b4ab7d400fea2d47dfaa283"}, - {file = "equinox-0.11.7.tar.gz", hash = "sha256:96e0216a9d822ec4b1465b0cbfbab14a36fb7e7d62c55f521287db3aaaa251be"}, -] - -[package.dependencies] -jax = ">=0.4.13,<0.4.27 || >0.4.27" -jaxtyping = ">=0.2.20" -typing-extensions = ">=4.5.0" - -[[package]] -name = "iniconfig" -version = "2.0.0" -description = "brain-dead simple config-ini parsing" -optional = false -python-versions = ">=3.7" -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "jax" -version = "0.4.33" -description = "Differentiate, compile, and transform Numpy code." -optional = false -python-versions = ">=3.10" -files = [ - {file = "jax-0.4.33-py3-none-any.whl", hash = "sha256:5f33e30b49060ebc990b1f8d75f89d15b9fec263f6fff34ef1af1d01996d314f"}, - {file = "jax-0.4.33.tar.gz", hash = "sha256:f0d788692fc0179653066c9e1c64e57311b8c15a389837fd7baf328abefcbb92"}, -] - -[package.dependencies] -jaxlib = "0.4.33" -ml-dtypes = ">=0.2.0" -numpy = [ - {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, - {version = ">=1.24", markers = "python_version < \"3.12\""}, -] -opt-einsum = "*" -scipy = [ - {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, - {version = ">=1.10", markers = "python_version < \"3.12\""}, -] - -[package.extras] -ci = ["jaxlib (==0.4.31)"] -cuda = ["jax-cuda12-plugin[with-cuda] (==0.4.33)", "jaxlib (==0.4.33)"] -cuda12 = ["jax-cuda12-plugin[with-cuda] (==0.4.33)", "jaxlib (==0.4.33)"] -cuda12-local = ["jax-cuda12-plugin (==0.4.33)", "jaxlib (==0.4.33)"] -cuda12-pip = ["jax-cuda12-plugin[with-cuda] (==0.4.33)", "jaxlib (==0.4.33)"] -minimum-jaxlib = ["jaxlib (==0.4.33)"] -tpu = ["jaxlib (==0.4.33)", "libtpu-nightly (==0.1.dev20240916)", "requests"] - -[[package]] -name = "jaxlib" -version = "0.4.33" -description = "XLA library for JAX" -optional = false -python-versions = ">=3.10" -files = [ - {file = "jaxlib-0.4.33-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:c12294ff10e5dcea9a4601833399a8b04aa7d0c8ab6e2c1afde930d36d5d0b20"}, - {file = "jaxlib-0.4.33-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0676ac605880ac6aa0ab9946a24a073ee8a1a83baf71cc1d35b71917a99d03d1"}, - {file = "jaxlib-0.4.33-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:5ba7eaa9722037755833cb70d9a98a049abea13e51dac3719b833dbf42ddf69a"}, - {file = "jaxlib-0.4.33-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:eaf21b55fd8f046fcd82c8ea956b636b4b11f892341f3fcd3dc29c4ce5ac4857"}, - {file = "jaxlib-0.4.33-cp310-cp310-win_amd64.whl", hash = "sha256:98e682e0d944ca8af8c05724dc4a14b7aaa87cd67ddb32737861eee7ccdaabb4"}, - {file = "jaxlib-0.4.33-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:6ee2f8692a5ea32acc63bbcc7390312f553614c22348c7366f08995e8764d839"}, - {file = "jaxlib-0.4.33-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:82c29635ddc51ba91671ab2be042f4701339df176e792eb6adf50ccabd723606"}, - {file = "jaxlib-0.4.33-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:9e6e933033cdfaebd018cdb5bfaf735bc164020316fe3ecff6c4b0dcf63f0f95"}, - {file = "jaxlib-0.4.33-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:400f401498675fd42dcaf0b855f325691951b250d619a8cbc5955f947e2494aa"}, - {file = "jaxlib-0.4.33-cp311-cp311-win_amd64.whl", hash = "sha256:95fedfb5f10f8bdfa57d81dd09933e78ba297719b40192357685b3aaa4287fef"}, - {file = "jaxlib-0.4.33-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:43c63e094948f0486505035b55a685b03ddde61705ce585f84b8c1438da20da0"}, - {file = "jaxlib-0.4.33-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3e14b4b50a19370312875541509a7ddc1ef8fc0bd95cff9508db9725038e8297"}, - {file = "jaxlib-0.4.33-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:4af6ee4070650ff120a92ff8454e70e0ef993434f3f3767a0e898cc484b836e2"}, - {file = "jaxlib-0.4.33-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:054aa0f122725e000b8f8815b1794067ef2ff821588b62e1fab2a1280847f5c6"}, - {file = "jaxlib-0.4.33-cp312-cp312-win_amd64.whl", hash = "sha256:94e8d7bdd0506e1471d36d5da1e5838711fbd2ce18dffe7b694cad6b56e64e8c"}, -] - -[package.dependencies] -ml-dtypes = ">=0.2.0" -numpy = ">=1.24" -scipy = [ - {version = ">=1.11.1", markers = "python_version >= \"3.12\""}, - {version = ">=1.10", markers = "python_version < \"3.12\""}, -] - -[[package]] -name = "jaxtyping" -version = "0.2.34" -description = "Type annotations and runtime checking for shape and dtype of JAX arrays, and PyTrees." -optional = false -python-versions = "~=3.9" -files = [ - {file = "jaxtyping-0.2.34-py3-none-any.whl", hash = "sha256:2f81fb6d1586e497a6ea2d28c06dcab37b108a096cbb36ea3fe4fa2e1c1f32e5"}, - {file = "jaxtyping-0.2.34.tar.gz", hash = "sha256:eed9a3458ec8726c84ea5457ebde53c964f65d2c22c0ec40d0555ae3fed5bbaf"}, -] - -[package.dependencies] -typeguard = "2.13.3" - -[[package]] -name = "kiwisolver" -version = "1.4.7" -description = "A fast implementation of the Cassowary constraint solver" -optional = false -python-versions = ">=3.8" -files = [ - {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a9c83f75223d5e48b0bc9cb1bf2776cf01563e00ade8775ffe13b0b6e1af3a6"}, - {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58370b1ffbd35407444d57057b57da5d6549d2d854fa30249771775c63b5fe17"}, - {file = "kiwisolver-1.4.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa0abdf853e09aff551db11fce173e2177d00786c688203f52c87ad7fcd91ef9"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8d53103597a252fb3ab8b5845af04c7a26d5e7ea8122303dd7a021176a87e8b9"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:88f17c5ffa8e9462fb79f62746428dd57b46eb931698e42e990ad63103f35e6c"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a9ca9c710d598fd75ee5de59d5bda2684d9db36a9f50b6125eaea3969c2599"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f4d742cb7af1c28303a51b7a27aaee540e71bb8e24f68c736f6f2ffc82f2bf05"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e28c7fea2196bf4c2f8d46a0415c77a1c480cc0724722f23d7410ffe9842c407"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e968b84db54f9d42046cf154e02911e39c0435c9801681e3fc9ce8a3c4130278"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0c18ec74c0472de033e1bebb2911c3c310eef5649133dd0bedf2a169a1b269e5"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8f0ea6da6d393d8b2e187e6a5e3fb81f5862010a40c3945e2c6d12ae45cfb2ad"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:f106407dda69ae456dd1227966bf445b157ccc80ba0dff3802bb63f30b74e895"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84ec80df401cfee1457063732d90022f93951944b5b58975d34ab56bb150dfb3"}, - {file = "kiwisolver-1.4.7-cp310-cp310-win32.whl", hash = "sha256:71bb308552200fb2c195e35ef05de12f0c878c07fc91c270eb3d6e41698c3bcc"}, - {file = "kiwisolver-1.4.7-cp310-cp310-win_amd64.whl", hash = "sha256:44756f9fd339de0fb6ee4f8c1696cfd19b2422e0d70b4cefc1cc7f1f64045a8c"}, - {file = "kiwisolver-1.4.7-cp310-cp310-win_arm64.whl", hash = "sha256:78a42513018c41c2ffd262eb676442315cbfe3c44eed82385c2ed043bc63210a"}, - {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54"}, - {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95"}, - {file = "kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523"}, - {file = "kiwisolver-1.4.7-cp311-cp311-win32.whl", hash = "sha256:4c00336b9dd5ad96d0a558fd18a8b6f711b7449acce4c157e7343ba92dd0cf3d"}, - {file = "kiwisolver-1.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:929e294c1ac1e9f615c62a4e4313ca1823ba37326c164ec720a803287c4c499b"}, - {file = "kiwisolver-1.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:e33e8fbd440c917106b237ef1a2f1449dfbb9b6f6e1ce17c94cd6a1e0d438376"}, - {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2"}, - {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a"}, - {file = "kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520"}, - {file = "kiwisolver-1.4.7-cp312-cp312-win32.whl", hash = "sha256:18e0cca3e008e17fe9b164b55735a325140a5a35faad8de92dd80265cd5eb80b"}, - {file = "kiwisolver-1.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:58cb20602b18f86f83a5c87d3ee1c766a79c0d452f8def86d925e6c60fbf7bfb"}, - {file = "kiwisolver-1.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:f5a8b53bdc0b3961f8b6125e198617c40aeed638b387913bf1ce78afb1b0be2a"}, - {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e"}, - {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6"}, - {file = "kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f816dd2277f8d63d79f9c8473a79fe54047bc0467754962840782c575522224d"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf8bcc23ceb5a1b624572a1623b9f79d2c3b337c8c455405ef231933a10da379"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dea0bf229319828467d7fca8c7c189780aa9ff679c94539eed7532ebe33ed37c"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c06a4c7cf15ec739ce0e5971b26c93638730090add60e183530d70848ebdd34"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913983ad2deb14e66d83c28b632fd35ba2b825031f2fa4ca29675e665dfecbe1"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5337ec7809bcd0f424c6b705ecf97941c46279cf5ed92311782c7c9c2026f07f"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c26ed10c4f6fa6ddb329a5120ba3b6db349ca192ae211e882970bfc9d91420b"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee"}, - {file = "kiwisolver-1.4.7-cp313-cp313-win32.whl", hash = "sha256:f4c9aee212bc89d4e13f58be11a56cc8036cabad119259d12ace14b34476fd07"}, - {file = "kiwisolver-1.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:8a3ec5aa8e38fc4c8af308917ce12c536f1c88452ce554027e55b22cbbfbff76"}, - {file = "kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650"}, - {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5d5abf8f8ec1f4e22882273c423e16cae834c36856cac348cfbfa68e01c40f3a"}, - {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:aeb3531b196ef6f11776c21674dba836aeea9d5bd1cf630f869e3d90b16cfade"}, - {file = "kiwisolver-1.4.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b7d755065e4e866a8086c9bdada157133ff466476a2ad7861828e17b6026e22c"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08471d4d86cbaec61f86b217dd938a83d85e03785f51121e791a6e6689a3be95"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7bbfcb7165ce3d54a3dfbe731e470f65739c4c1f85bb1018ee912bae139e263b"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d34eb8494bea691a1a450141ebb5385e4b69d38bb8403b5146ad279f4b30fa3"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9242795d174daa40105c1d86aba618e8eab7bf96ba8c3ee614da8302a9f95503"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a0f64a48bb81af7450e641e3fe0b0394d7381e342805479178b3d335d60ca7cf"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8e045731a5416357638d1700927529e2b8ab304811671f665b225f8bf8d8f933"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4322872d5772cae7369f8351da1edf255a604ea7087fe295411397d0cfd9655e"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:e1631290ee9271dffe3062d2634c3ecac02c83890ada077d225e081aca8aab89"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:edcfc407e4eb17e037bca59be0e85a2031a2ac87e4fed26d3e9df88b4165f92d"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:4d05d81ecb47d11e7f8932bd8b61b720bf0b41199358f3f5e36d38e28f0532c5"}, - {file = "kiwisolver-1.4.7-cp38-cp38-win32.whl", hash = "sha256:b38ac83d5f04b15e515fd86f312479d950d05ce2368d5413d46c088dda7de90a"}, - {file = "kiwisolver-1.4.7-cp38-cp38-win_amd64.whl", hash = "sha256:d83db7cde68459fc803052a55ace60bea2bae361fc3b7a6d5da07e11954e4b09"}, - {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f9362ecfca44c863569d3d3c033dbe8ba452ff8eed6f6b5806382741a1334bd"}, - {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e8df2eb9b2bac43ef8b082e06f750350fbbaf2887534a5be97f6cf07b19d9583"}, - {file = "kiwisolver-1.4.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f32d6edbc638cde7652bd690c3e728b25332acbadd7cad670cc4a02558d9c417"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e2e6c39bd7b9372b0be21456caab138e8e69cc0fc1190a9dfa92bd45a1e6e904"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dda56c24d869b1193fcc763f1284b9126550eaf84b88bbc7256e15028f19188a"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79849239c39b5e1fd906556c474d9b0439ea6792b637511f3fe3a41158d89ca8"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e3bc157fed2a4c02ec468de4ecd12a6e22818d4f09cde2c31ee3226ffbefab2"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3da53da805b71e41053dc670f9a820d1157aae77b6b944e08024d17bcd51ef88"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8705f17dfeb43139a692298cb6637ee2e59c0194538153e83e9ee0c75c2eddde"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:82a5c2f4b87c26bb1a0ef3d16b5c4753434633b83d365cc0ddf2770c93829e3c"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce8be0466f4c0d585cdb6c1e2ed07232221df101a4c6f28821d2aa754ca2d9e2"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:409afdfe1e2e90e6ee7fc896f3df9a7fec8e793e58bfa0d052c8a82f99c37abb"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5b9c3f4ee0b9a439d2415012bd1b1cc2df59e4d6a9939f4d669241d30b414327"}, - {file = "kiwisolver-1.4.7-cp39-cp39-win32.whl", hash = "sha256:a79ae34384df2b615eefca647a2873842ac3b596418032bef9a7283675962644"}, - {file = "kiwisolver-1.4.7-cp39-cp39-win_amd64.whl", hash = "sha256:cf0438b42121a66a3a667de17e779330fc0f20b0d97d59d2f2121e182b0505e4"}, - {file = "kiwisolver-1.4.7-cp39-cp39-win_arm64.whl", hash = "sha256:764202cc7e70f767dab49e8df52c7455e8de0df5d858fa801a11aa0d882ccf3f"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:94252291e3fe68001b1dd747b4c0b3be12582839b95ad4d1b641924d68fd4643"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b7dfa3b546da08a9f622bb6becdb14b3e24aaa30adba66749d38f3cc7ea9706"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd3de6481f4ed8b734da5df134cd5a6a64fe32124fe83dde1e5b5f29fe30b1e6"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a91b5f9f1205845d488c928e8570dcb62b893372f63b8b6e98b863ebd2368ff2"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fa14dbd66b8b8f470d5fc79c089a66185619d31645f9b0773b88b19f7223c4"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:eb542fe7933aa09d8d8f9d9097ef37532a7df6497819d16efe4359890a2f417a"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bfa1acfa0c54932d5607e19a2c24646fb4c1ae2694437789129cf099789a3b00"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:eee3ea935c3d227d49b4eb85660ff631556841f6e567f0f7bda972df6c2c9935"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f3160309af4396e0ed04db259c3ccbfdc3621b5559b5453075e5de555e1f3a1b"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a17f6a29cf8935e587cc8a4dbfc8368c55edc645283db0ce9801016f83526c2d"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10849fb2c1ecbfae45a693c070e0320a91b35dd4bcf58172c023b994283a124d"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:ac542bf38a8a4be2dc6b15248d36315ccc65f0743f7b1a76688ffb6b5129a5c2"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8b01aac285f91ca889c800042c35ad3b239e704b150cfd3382adfc9dcc780e39"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:48be928f59a1f5c8207154f935334d374e79f2b5d212826307d072595ad76a2e"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f37cfe618a117e50d8c240555331160d73d0411422b59b5ee217843d7b693608"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:599b5c873c63a1f6ed7eead644a8a380cfbdf5db91dcb6f85707aaab213b1674"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:801fa7802e5cfabe3ab0c81a34c323a319b097dfb5004be950482d882f3d7225"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0c6c43471bc764fad4bc99c5c2d6d16a676b1abf844ca7c8702bdae92df01ee0"}, - {file = "kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60"}, -] - -[[package]] -name = "matplotlib" -version = "3.1.3" -description = "Python plotting package" -optional = false -python-versions = ">=3.6" -files = [ - {file = "matplotlib-3.1.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6a0031774c6c68298183438edf2e738856d63a4c4797876fa81d0ee337f5361c"}, - {file = "matplotlib-3.1.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:b4c0010eff09ab65c77ad1a0eec6c7cccb9f6838c3c77dc5b4002fe0cf2912fd"}, - {file = "matplotlib-3.1.3-cp36-cp36m-win32.whl", hash = "sha256:78d0772412c0653aa3e860c52ff08d1f5ba64334e2b86b09dc2d502657d8ca73"}, - {file = "matplotlib-3.1.3-cp36-cp36m-win_amd64.whl", hash = "sha256:97f04d29a358826f205320fbc88d46ce5c5ff6fb54ae050042ff396beda52ca4"}, - {file = "matplotlib-3.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4164265ca573481ce61c83322e6b33628203afeabeb3e22c50376f5d3ee0f9be"}, - {file = "matplotlib-3.1.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:b5ace0531255932ad19fe64c116ada2713f7b38381db8f68df0fa694409e67d1"}, - {file = "matplotlib-3.1.3-cp37-cp37m-win32.whl", hash = "sha256:c7bb7ed3e011324b56462391ec3f4bbb7c8c6af5892ebfb45d312b15b4cdfc8d"}, - {file = "matplotlib-3.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:f0023322c99328c40ce22678ab0ab5adfc27e338419966539398239996f63e8d"}, - {file = "matplotlib-3.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:db8bbba9284845034a2f0e1add91dc5e89db8c996359bdcf677a8d6f88875cf1"}, - {file = "matplotlib-3.1.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:635ded7834f43c8d999076236f7e90074d77f7b8345e5e82cd95af053cc29df1"}, - {file = "matplotlib-3.1.3-cp38-cp38-win32.whl", hash = "sha256:8efff896c49676700dc6adace6137a854ff64a4d44ca057ff726960ffdaa47bf"}, - {file = "matplotlib-3.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:470eed601ff5132364e0121a20d7c3d43fab969c8c333422c1b6b72fde2ed3c1"}, - {file = "matplotlib-3.1.3-pp373-pypy36_pp73-win32.whl", hash = "sha256:23b71560c721109954c0215ffc81f4c80ce8528749d534a01a61e8ab737c5bce"}, - {file = "matplotlib-3.1.3.tar.gz", hash = "sha256:db3121f12fb9b99f105d1413aebaeb3d943f269f3d262b45586d12765866f0c6"}, -] - -[package.dependencies] -cycler = ">=0.10" -kiwisolver = ">=1.0.1" -numpy = ">=1.11" -pyparsing = ">=2.0.1,<2.0.4 || >2.0.4,<2.1.2 || >2.1.2,<2.1.6 || >2.1.6" -python-dateutil = ">=2.1" - -[[package]] -name = "mctx" -version = "0.0.5" -description = "Monte Carlo tree search in JAX." -optional = false -python-versions = ">=3.9" -files = [ - {file = "mctx-0.0.5-py3-none-any.whl", hash = "sha256:d263830a1e44a16fe2ede5ed5b37fd83626459bfccbb1ab814a6bd49bf62ffd3"}, - {file = "mctx-0.0.5.tar.gz", hash = "sha256:e9f669bf4fd4c4f61837be6f9ab0ca60180945108c36bcdf5beaabc481020e21"}, -] - -[package.dependencies] -chex = ">=0.0.8" -jax = ">=0.1.55" -jaxlib = ">=0.1.37" - -[[package]] -name = "ml-dtypes" -version = "0.4.1" -description = "" -optional = false -python-versions = ">=3.9" -files = [ - {file = "ml_dtypes-0.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1fe8b5b5e70cd67211db94b05cfd58dace592f24489b038dc6f9fe347d2e07d5"}, - {file = "ml_dtypes-0.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c09a6d11d8475c2a9fd2bc0695628aec105f97cab3b3a3fb7c9660348ff7d24"}, - {file = "ml_dtypes-0.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5e8f75fa371020dd30f9196e7d73babae2abd51cf59bdd56cb4f8de7e13354"}, - {file = "ml_dtypes-0.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:15fdd922fea57e493844e5abb930b9c0bd0af217d9edd3724479fc3d7ce70e3f"}, - {file = "ml_dtypes-0.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2d55b588116a7085d6e074cf0cdb1d6fa3875c059dddc4d2c94a4cc81c23e975"}, - {file = "ml_dtypes-0.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e138a9b7a48079c900ea969341a5754019a1ad17ae27ee330f7ebf43f23877f9"}, - {file = "ml_dtypes-0.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74c6cfb5cf78535b103fde9ea3ded8e9f16f75bc07789054edc7776abfb3d752"}, - {file = "ml_dtypes-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:274cc7193dd73b35fb26bef6c5d40ae3eb258359ee71cd82f6e96a8c948bdaa6"}, - {file = "ml_dtypes-0.4.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:827d3ca2097085cf0355f8fdf092b888890bb1b1455f52801a2d7756f056f54b"}, - {file = "ml_dtypes-0.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:772426b08a6172a891274d581ce58ea2789cc8abc1c002a27223f314aaf894e7"}, - {file = "ml_dtypes-0.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:126e7d679b8676d1a958f2651949fbfa182832c3cd08020d8facd94e4114f3e9"}, - {file = "ml_dtypes-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:df0fb650d5c582a9e72bb5bd96cfebb2cdb889d89daff621c8fbc60295eba66c"}, - {file = "ml_dtypes-0.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e35e486e97aee577d0890bc3bd9e9f9eece50c08c163304008587ec8cfe7575b"}, - {file = "ml_dtypes-0.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:560be16dc1e3bdf7c087eb727e2cf9c0e6a3d87e9f415079d2491cc419b3ebf5"}, - {file = "ml_dtypes-0.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad0b757d445a20df39035c4cdeed457ec8b60d236020d2560dbc25887533cf50"}, - {file = "ml_dtypes-0.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:ef0d7e3fece227b49b544fa69e50e607ac20948f0043e9f76b44f35f229ea450"}, - {file = "ml_dtypes-0.4.1.tar.gz", hash = "sha256:fad5f2de464fd09127e49b7fd1252b9006fb43d2edc1ff112d390c324af5ca7a"}, -] - -[package.dependencies] -numpy = {version = ">=1.26.0", markers = "python_version >= \"3.12\""} - -[package.extras] -dev = ["absl-py", "pyink", "pylint (>=2.6.0)", "pytest", "pytest-xdist"] - -[[package]] -name = "ml-dtypes" -version = "0.5.0" -description = "" -optional = false -python-versions = ">=3.9" -files = [ - {file = "ml_dtypes-0.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c32138975797e681eb175996d64356bcfa124bdbb6a70460b9768c2b35a6fa4"}, - {file = "ml_dtypes-0.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab046f2ff789b1f11b2491909682c5d089934835f9a760fafc180e47dcb676b8"}, - {file = "ml_dtypes-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7a9152f5876fef565516aa5dd1dccd6fc298a5891b2467973905103eb5c7856"}, - {file = "ml_dtypes-0.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:968fede07d1f9b926a63df97d25ac656cac1a57ebd33701734eaf704bc55d8d8"}, - {file = "ml_dtypes-0.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:60275f2b51b56834e840c4809fca840565f9bf8e9a73f6d8c94f5b5935701215"}, - {file = "ml_dtypes-0.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76942f6aeb5c40766d5ea62386daa4148e6a54322aaf5b53eae9e7553240222f"}, - {file = "ml_dtypes-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e7534392682c3098bc7341648c650864207169c654aed83143d7a19c67ae06f"}, - {file = "ml_dtypes-0.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:dc74fd9995513d33eac63d64e436240f5494ec74d522a9f0920194942fc3d2d7"}, - {file = "ml_dtypes-0.5.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d4b1a70a3e5219790d6b55b9507606fc4e02911d1497d16c18dd721eb7efe7d0"}, - {file = "ml_dtypes-0.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a988bac6572630e1e9c2edd9b1277b4eefd1c86209e52b0d061b775ac33902ff"}, - {file = "ml_dtypes-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a38df8df61194aeaae1ab7579075779b4ad32cd1cffd012c28be227fa7f2a70a"}, - {file = "ml_dtypes-0.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:afa08343069874a30812871d639f9c02b4158ace065601406a493a8511180c02"}, - {file = "ml_dtypes-0.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d3b3db9990c3840986a0e70524e122cfa32b91139c3653df76121ba7776e015f"}, - {file = "ml_dtypes-0.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e04fde367b2fe901b1d47234426fe8819909bd1dd862a5adb630f27789c20599"}, - {file = "ml_dtypes-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54415257f00eb44fbcc807454efac3356f75644f1cbfc2d4e5522a72ae1dacab"}, - {file = "ml_dtypes-0.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:cb5cc7b25acabd384f75bbd78892d0c724943f3e2e1986254665a1aa10982e07"}, - {file = "ml_dtypes-0.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5f2b59233a0dbb6a560b3137ed6125433289ccba2f8d9c3695a52423a369ed15"}, - {file = "ml_dtypes-0.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:099e09edd54e676903b4538f3815b5ab96f5b119690514602d96bfdb67172cbe"}, - {file = "ml_dtypes-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a03fc861b86cc586728e3d093ba37f0cc05e65330c3ebd7688e7bae8290f8859"}, - {file = "ml_dtypes-0.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:7ee9c320bb0f9ffdf9f6fa6a696ef2e005d1f66438d6f1c1457338e00a02e8cf"}, - {file = "ml_dtypes-0.5.0.tar.gz", hash = "sha256:3e7d3a380fe73a63c884f06136f8baa7a5249cc8e9fdec677997dd78549f8128"}, -] - -[package.dependencies] -numpy = [ - {version = ">=1.26.0", markers = "python_version >= \"3.12\" and python_version < \"3.13\""}, - {version = ">=1.23.3", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, -] - -[package.extras] -dev = ["absl-py", "pyink", "pylint (>=2.6.0)", "pytest", "pytest-xdist"] - -[[package]] -name = "multimethod" -version = "1.12" -description = "Multiple argument dispatching." -optional = false -python-versions = ">=3.9" -files = [ - {file = "multimethod-1.12-py3-none-any.whl", hash = "sha256:fd0c473c43558908d97cc06e4d68e8f69202f167db46f7b4e4058893e7dbdf60"}, - {file = "multimethod-1.12.tar.gz", hash = "sha256:8db8ef2a8d2a247e3570cc23317680892fdf903d84c8c1053667c8e8f7671a67"}, -] - -[[package]] -name = "networkx" -version = "3.3" -description = "Python package for creating and manipulating graphs and networks" -optional = false -python-versions = ">=3.10" -files = [ - {file = "networkx-3.3-py3-none-any.whl", hash = "sha256:28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2"}, - {file = "networkx-3.3.tar.gz", hash = "sha256:0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9"}, -] - -[package.extras] -default = ["matplotlib (>=3.6)", "numpy (>=1.23)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] -developer = ["changelist (==0.5)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] -doc = ["myst-nb (>=1.0)", "numpydoc (>=1.7)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] -extra = ["lxml (>=4.6)", "pydot (>=2.0)", "pygraphviz (>=1.12)", "sympy (>=1.10)"] -test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] - -[[package]] -name = "numpy" -version = "1.26.4" -description = "Fundamental package for array computing in Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, - {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, - {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, - {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, - {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, - {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, - {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, - {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, - {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, - {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, - {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, -] - -[[package]] -name = "opt-einsum" -version = "3.3.0" -description = "Optimizing numpys einsum function" -optional = false -python-versions = ">=3.5" -files = [ - {file = "opt_einsum-3.3.0-py3-none-any.whl", hash = "sha256:2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147"}, - {file = "opt_einsum-3.3.0.tar.gz", hash = "sha256:59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549"}, -] - -[package.dependencies] -numpy = ">=1.7" - -[package.extras] -docs = ["numpydoc", "sphinx (==1.2.3)", "sphinx-rtd-theme", "sphinxcontrib-napoleon"] -tests = ["pytest", "pytest-cov", "pytest-pep8"] - -[[package]] -name = "packaging" -version = "24.1" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, - {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, -] - -[[package]] -name = "pandas" -version = "2.2.3" -description = "Powerful data structures for data analysis, time series, and statistics" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, - {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, - {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, - {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, - {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, - {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, - {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, - {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, - {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, - {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, - {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, - {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, - {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, - {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, - {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, - {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, - {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, - {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, - {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, - {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, - {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, - {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, - {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, - {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, - {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, - {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, - {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, - {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, - {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, - {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, - {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, - {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, - {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, - {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, - {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, - {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, - {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, - {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, - {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, - {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, - {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, - {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, -] - -[package.dependencies] -numpy = [ - {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, - {version = ">=1.23.2", markers = "python_version == \"3.11\""}, -] -python-dateutil = ">=2.8.2" -pytz = ">=2020.1" -tzdata = ">=2022.7" - -[package.extras] -all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] -aws = ["s3fs (>=2022.11.0)"] -clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] -compression = ["zstandard (>=0.19.0)"] -computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] -consortium-standard = ["dataframe-api-compat (>=0.1.7)"] -excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] -feather = ["pyarrow (>=10.0.1)"] -fss = ["fsspec (>=2022.11.0)"] -gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] -hdf5 = ["tables (>=3.8.0)"] -html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] -mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] -output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] -parquet = ["pyarrow (>=10.0.1)"] -performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] -plot = ["matplotlib (>=3.6.3)"] -postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] -pyarrow = ["pyarrow (>=10.0.1)"] -spss = ["pyreadstat (>=1.2.0)"] -sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] -test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] -xml = ["lxml (>=4.9.2)"] - -[[package]] -name = "pluggy" -version = "1.5.0" -description = "plugin and hook calling mechanisms for python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, -] - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] - -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] - -[[package]] -name = "pyparsing" -version = "3.1.4" -description = "pyparsing module - Classes and methods to define and execute parsing grammars" -optional = false -python-versions = ">=3.6.8" -files = [ - {file = "pyparsing-3.1.4-py3-none-any.whl", hash = "sha256:a6a7ee4235a3f944aa1fa2249307708f893fe5717dc603503c6c7969c070fb7c"}, - {file = "pyparsing-3.1.4.tar.gz", hash = "sha256:f86ec8d1a83f11977c9a6ea7598e8c27fc5cddfa5b07ea2241edbbde1d7bc032"}, -] - -[package.extras] -diagrams = ["jinja2", "railroad-diagrams"] - -[[package]] -name = "pytest" -version = "6.2.5" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.6" -files = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, -] - -[package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} -attrs = ">=19.2.0" -colorama = {version = "*", markers = "sys_platform == \"win32\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=0.12,<2.0" -py = ">=1.8.2" -toml = "*" - -[package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -description = "Extensions to the standard Python datetime module" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "pytz" -version = "2024.2" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, - {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, -] - -[[package]] -name = "scipy" -version = "1.14.1" -description = "Fundamental algorithms for scientific computing in Python" -optional = false -python-versions = ">=3.10" -files = [ - {file = "scipy-1.14.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:b28d2ca4add7ac16ae8bb6632a3c86e4b9e4d52d3e34267f6e1b0c1f8d87e389"}, - {file = "scipy-1.14.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0d2821003174de06b69e58cef2316a6622b60ee613121199cb2852a873f8cf3"}, - {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8bddf15838ba768bb5f5083c1ea012d64c9a444e16192762bd858f1e126196d0"}, - {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:97c5dddd5932bd2a1a31c927ba5e1463a53b87ca96b5c9bdf5dfd6096e27efc3"}, - {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ff0a7e01e422c15739ecd64432743cf7aae2b03f3084288f399affcefe5222d"}, - {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e32dced201274bf96899e6491d9ba3e9a5f6b336708656466ad0522d8528f69"}, - {file = "scipy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8426251ad1e4ad903a4514712d2fa8fdd5382c978010d1c6f5f37ef286a713ad"}, - {file = "scipy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:a49f6ed96f83966f576b33a44257d869756df6cf1ef4934f59dd58b25e0327e5"}, - {file = "scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675"}, - {file = "scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2"}, - {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617"}, - {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8"}, - {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37"}, - {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2"}, - {file = "scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2"}, - {file = "scipy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94"}, - {file = "scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d"}, - {file = "scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07"}, - {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5"}, - {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc"}, - {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310"}, - {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066"}, - {file = "scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1"}, - {file = "scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f"}, - {file = "scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79"}, - {file = "scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e"}, - {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73"}, - {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e"}, - {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d"}, - {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e"}, - {file = "scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06"}, - {file = "scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84"}, - {file = "scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417"}, -] - -[package.dependencies] -numpy = ">=1.23.5,<2.3" - -[package.extras] -dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodestyle", "pydevtool", "rich-click", "ruff (>=0.0.292)", "types-psutil", "typing_extensions"] -doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.13.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<=7.3.7)", "sphinx-design (>=0.4.0)"] -test = ["Cython", "array-api-strict (>=2.0)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] - -[[package]] -name = "seaborn" -version = "0.11.2" -description = "seaborn: statistical data visualization" -optional = false -python-versions = ">=3.6" -files = [ - {file = "seaborn-0.11.2-py3-none-any.whl", hash = "sha256:85a6baa9b55f81a0623abddc4a26b334653ff4c6b18c418361de19dbba0ef283"}, - {file = "seaborn-0.11.2.tar.gz", hash = "sha256:cf45e9286d40826864be0e3c066f98536982baf701a7caa386511792d61ff4f6"}, -] - -[package.dependencies] -matplotlib = ">=2.2" -numpy = ">=1.15" -pandas = ">=0.23" -scipy = ">=1.0" - -[[package]] -name = "setuptools" -version = "75.1.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "setuptools-75.1.0-py3-none-any.whl", hash = "sha256:35ab7fd3bcd95e6b7fd704e4a1539513edad446c097797f2985e0e4b960772f2"}, - {file = "setuptools-75.1.0.tar.gz", hash = "sha256:d59a21b17a275fb872a9c3dae73963160ae079f1049ed956880cd7c09b120538"}, -] - -[package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"] -core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -enabler = ["pytest-enabler (>=2.2)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.11.*)", "pytest-mypy"] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "toml" -version = "0.10.2" -description = "Python Library for Tom's Obvious, Minimal Language" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] - -[[package]] -name = "toolz" -version = "0.12.1" -description = "List processing tools and functional utilities" -optional = false -python-versions = ">=3.7" -files = [ - {file = "toolz-0.12.1-py3-none-any.whl", hash = "sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85"}, - {file = "toolz-0.12.1.tar.gz", hash = "sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"}, -] - -[[package]] -name = "typeguard" -version = "2.13.3" -description = "Run-time type checker for Python" -optional = false -python-versions = ">=3.5.3" -files = [ - {file = "typeguard-2.13.3-py3-none-any.whl", hash = "sha256:5e3e3be01e887e7eafae5af63d1f36c849aaa94e3a0112097312aabfa16284f1"}, - {file = "typeguard-2.13.3.tar.gz", hash = "sha256:00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4"}, -] - -[package.extras] -doc = ["sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["mypy", "pytest", "typing-extensions"] - -[[package]] -name = "typing-extensions" -version = "4.12.2" -description = "Backported and Experimental Type Hints for Python 3.8+" -optional = false -python-versions = ">=3.8" -files = [ - {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, - {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, -] - -[[package]] -name = "tzdata" -version = "2024.1" -description = "Provider of IANA time zone data" -optional = false -python-versions = ">=2" -files = [ - {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, - {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, -] - -[metadata] -lock-version = "2.0" -python-versions = "^3.11" -content-hash = "6516365f62b8d34a1cb5dbeb754c76cfd79d23306a33f5c95e5dd248f473f74b" diff --git a/pyproject.toml b/pyproject.toml index a9b0c0dc..cf18ea8c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,31 +1,46 @@ -[tool.poetry] +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[project] name = "inferactively-pymdp" version = "1.0.0" description = "A Python package for solving Markov Decision Processes with Active Inference" -authors = ["Conor Heins "] -license = "MIT" +authors = [ + { name = "Conor Heins", email="conor.heins@gmail.com"}, +] readme = "README.md" -packages = [{include="pymdp"}] +license = {file = "LICENSE"} +classifiers=[ + 'Development Status :: 4 - Beta', + 'Intended Audience :: Developers', + 'Topic :: Scientific/Engineering :: Artificial Intelligence', + 'License :: OSI Approved :: MIT License', + 'Programming Language :: Python :: 3', +] +requires-python = ">=3.11" +dependencies = [ + 'numpy>=1.19.5', + 'jax>=0.3.4', + 'jaxlib>=0.3.4', + 'equinox>=0.9', + 'multimethod>=1.11', + 'matplotlib>=3.1.3', + 'seaborn>=0.11.1', + 'mctx>=0.0.5', + 'networkx>=3.3', + 'pytest>=6.2.1', +] -[tool.poetry.dependencies] -python = "^3.11" -numpy = "^1.19.5" -jax = "^0.4" -jaxlib = "^0.4" -jaxtyping = "^0.2" -equinox = "^0.11" -multimethod = "^1.11" -matplotlib= "3.1.3" -seaborn = "^0.11.1" -mctx = "^0.0.5" -networkx = "^3.3" +[project.optional-dependencies] +gpu = [ + 'jax[cuda12]>=0.3.4', + 'jaxlib[12]>=0.3.4', +] -[tool.poetry.group.test.dependencies] -pytest = "^6.0.0" +[project.urls] +Documentation = "https://pymdp-rtd.readthedocs.io/en/stable/" +Repository = "https://github.com/infer-actively/pymdp" [tool.black] line-length = 120 - -[build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 99a4adb8..00000000 --- a/requirements.txt +++ /dev/null @@ -1,32 +0,0 @@ -attrs>=20.3.0 -cycler>=0.10.0 -iniconfig>=1.1.1 -kiwisolver>=1.3.1 -matplotlib>=3.1.3 -nose>=1.3.7 -numpy>=1.19.5 -openpyxl>=3.0.7 -packaging>=20.8 -Pillow>=8.2.0 -pluggy>=0.13.1 -py>=1.10.0 -pyparsing>=2.4.7 -pytest>=6.2.1 -python-dateutil>=2.8.1 -pytz>=2020.5 -scipy>=1.6.0 -seaborn>=0.11.1 -six>=1.15.0 -toml>=0.10.2 -typing-extensions>=3.7.4.3 -xlsxwriter>=1.4.3 -sphinx-rtd-theme>=0.4 -myst-nb>=0.13.1 -autograd>=1.3 -jax>=0.3.4 -jaxlib>=0.3.4 -equinox>=0.9 -numpyro>=0.1 -arviz>=0.13 -optax>=0.1 -multimethod>=1.11 \ No newline at end of file diff --git a/setup.py b/setup.py deleted file mode 100644 index 03e2cbae..00000000 --- a/setup.py +++ /dev/null @@ -1,78 +0,0 @@ -import setuptools - -with open("README.md", "r", encoding="utf-8") as fh: - long_description = fh.read() - -setuptools.setup( - name="inferactively-pymdp", - version="0.0.7.1", - author="infer-actively", - author_email="conor.heins@gmail.com", - description= ("A Python package for solving Markov Decision Processes with Active Inference"), - long_description=long_description, - long_description_content_type="text/markdown", - license='MIT', - url="https://github.com/infer-actively/pymdp", - python_requires='>3.7', - install_requires =[ - 'attrs>=20.3.0', - 'cycler>=0.10.0', - 'iniconfig>=1.1.1', - 'kiwisolver>=1.3.1', - 'matplotlib>=3.1.3', - 'nose>=1.3.7', - 'numpy>=1.19.5', - 'openpyxl>=3.0.7', - 'packaging>=20.8', - 'pandas>=1.2.4', - 'Pillow>=8.2.0', - 'pluggy>=0.13.1', - 'py>=1.10.0', - 'pyparsing>=2.4.7', - 'pytest>=6.2.1', - 'python-dateutil>=2.8.1', - 'pytz>=2020.5', - 'scipy>=1.6.0', - 'seaborn>=0.11.1', - 'six>=1.15.0', - 'toml>=0.10.2', - 'typing-extensions>=3.7.4.3', - 'xlsxwriter>=1.4.3', - 'sphinx-rtd-theme>=0.4', - 'myst-nb>=0.13.1', - 'autograd>=1.3', - 'jax>=0.3.4', - 'jaxlib>=0.3.4', - 'equinox>=0.9', - 'numpyro>=0.1', - 'arviz>=0.13', - 'optax>=0.1' - ], - packages=[ - "pymdp", - "pymdp.envs", - "pymdp.algos", - "pymdp.jax" - ], - include_package_data=True, - keywords=[ - "artificial intelligence", - "active inference", - "free energy principle" - "information theory", - "decision-making", - "MDP", - "Markov Decision Process", - "Bayesian inference", - "variational inference", - "reinforcement learning" - ], - classifiers=[ - 'Development Status :: 4 - Beta', - 'Intended Audience :: Developers', - 'Topic :: Scientific/Engineering :: Artificial Intelligence', - 'License :: OSI Approved :: MIT License', - 'Programming Language :: Python :: 3.7', - ], -) - From d41fccc46083bc30fdd747e4c4921b09754c7ce6 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Mon, 23 Sep 2024 16:19:40 +0200 Subject: [PATCH 165/196] fix typo --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index cf18ea8c..c78cbc4d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ dependencies = [ [project.optional-dependencies] gpu = [ 'jax[cuda12]>=0.3.4', - 'jaxlib[12]>=0.3.4', + 'jaxlib[cuda12]>=0.3.4', ] [project.urls] From e0d63c32bb843f80825483604705958b641abbb3 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Tue, 24 Sep 2024 08:40:20 +0200 Subject: [PATCH 166/196] declare packages --- pyproject.toml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index c78cbc4d..f3cc1cc3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,5 +42,15 @@ gpu = [ Documentation = "https://pymdp-rtd.readthedocs.io/en/stable/" Repository = "https://github.com/infer-actively/pymdp" +[tool.setuptools] +packages = [ + 'pymdp', + 'pymdp.envs', + 'pymdp.algos', + 'pymdp.jax', + 'pymdp.jax.envs', + 'pymdp.jax.planning', +] + [tool.black] line-length = 120 From f9049dab8346e2afdb3976cbd6b1c7a9d30718b5 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Tue, 24 Sep 2024 08:41:34 +0200 Subject: [PATCH 167/196] remove requirements.txt from README --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 4b0411a8..cb54b352 100644 --- a/README.md +++ b/README.md @@ -120,8 +120,7 @@ If you would like to contribute to this repo, we recommend using venv and pip cd python3 -m venv env source env/bin/activate -pip install -r requirements.txt -pip install -e ./ # This will install pymdp as a local dev package +pip install -e . # This will install pymdp as a local dev package ``` You should then be able to run tests locally with `pytest` From 5afbf386b7cfde3e96fadeef62d8fa4c2c3df0ab Mon Sep 17 00:00:00 2001 From: conorheins Date: Tue, 24 Sep 2024 09:34:14 +0200 Subject: [PATCH 168/196] added back in `decode_multi_actions` as method of `Agent`, originally from @ran-weii's `complex_act_dependencies` branch --- pymdp/jax/agent.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py index 20009b69..61c485bf 100644 --- a/pymdp/jax/agent.py +++ b/pymdp/jax/agent.py @@ -521,6 +521,20 @@ def sample_action(self, q_pi: Array, rng_key=None): action = vmap(sample_policy)(q_pi, alpha=self.alpha, rng_key=rng_key) return action + + def decode_multi_actions(self, action): + """Decode flattened actions to multiple actions""" + if self.action_maps is None: + return action + + action_multi = jnp.zeros((self.batch_size, len(self.num_controls_multi))).astype(action.dtype) + for f, action_map in enumerate(self.action_maps): + if action_map["multi_dependency"] == []: + continue + + action_multi_f = utils.index_to_combination(action[..., f], action_map["multi_dims"]) + action_multi = action_multi.at[..., action_map["multi_dependency"]].set(action_multi_f) + return action_multi def encode_multi_actions(self, action_multi): """Encode multiple actions to flattened actions""" From c9630afdc3ea2cdfc535f4cd34ef276ced8dc463 Mon Sep 17 00:00:00 2001 From: conorheins Date: Tue, 24 Sep 2024 10:59:40 +0200 Subject: [PATCH 169/196] added optional `factors_to_update` argument into `pymdp.jax.learning.update_state_likelihood_dirichlet()` function --- pymdp/jax/learning.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/pymdp/jax/learning.py b/pymdp/jax/learning.py index d30c97c6..95b4e1c9 100644 --- a/pymdp/jax/learning.py +++ b/pymdp/jax/learning.py @@ -70,22 +70,28 @@ def update_state_transition_dirichlet_f(pB_f, actions_f, joint_qs_f, lr=1.0): return qB_f, dirichlet_expected_value(qB_f) -def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_controls, lr): - +def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_controls, lr, factors_to_update='all'): + """" + Update posterior Diriichlet parameters of the state transition likelihood model (B) given the joint beliefs over hidden states and actions. + """ nf = len(pB) actions_onehot_fn = lambda f, dim: nn.one_hot(actions[..., f], dim, axis=-1) update_B_f_fn = lambda pB_f, joint_qs_f, f, na: update_state_transition_dirichlet_f( pB_f, actions_onehot_fn(f, na), joint_qs_f, lr=lr ) + + if factors_to_update == 'all': + factors_to_update = list(range(nf)) + result = tree_map( - update_B_f_fn, pB, joint_beliefs, list(range(nf)), num_controls + update_B_f_fn, pB, joint_beliefs, factors_to_update, num_controls ) - qB = [] - E_qB = [] - for r in result: - qB.append(r[0]) - E_qB.append(r[1]) + qB = [pb_f for pb_f in pB] + E_qB = [dirichlet_expected_value(qb_f) for qb_f in qB] + for (f,r) in zip(factors_to_update, result): + qB[f] = r[0] + E_qB[f] = r[1] return qB, E_qB From 6652e398e708dc52961b08e8a0f13e2f682066df Mon Sep 17 00:00:00 2001 From: conorheins Date: Tue, 24 Sep 2024 11:00:26 +0200 Subject: [PATCH 170/196] fixed unit test `test_sparse_smoothing` in `test_jax_sparse_backend` to respect new output structure of `pymdp.jax.inference.smoothing_ovf` --- test/test_jax_sparse_backend.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/test/test_jax_sparse_backend.py b/test/test_jax_sparse_backend.py index 163e713d..b71260cd 100644 --- a/test/test_jax_sparse_backend.py +++ b/test/test_jax_sparse_backend.py @@ -164,20 +164,24 @@ def test_sparse_smoothing(self): for i in range(n_batch): smoothed_beliefs_dense = smoothing_ovf(take_i(beliefs, i), B, action_hist[i]) + dense_marginals, dense_joints = smoothed_beliefs_dense # sparse jax version smoothed_beliefs_sparse = smoothing_ovf(take_i(beliefs, i), sparse_B, action_hist[i]) + sparse_marginals, sparse_joints = smoothed_beliefs_sparse - # for example, something like this - for f, (dense_out, sparse_out) in enumerate(zip(smoothed_beliefs_dense, smoothed_beliefs_sparse)): - qs_smooth_dense, qs_joint_dense = dense_out - qs_smooth_sparse, qs_joint_sparse = sparse_out + # test equality of marginal distributions from dense and sparse versions of smoothing + for f, (dense_out, sparse_out) in enumerate(zip(dense_marginals, sparse_marginals)): + + self.assertTrue(np.allclose(dense_out, sparse_out)) + + # test equality of joint distributions from dense and sparse versions of smoothing + for f, (dense_out, sparse_out) in enumerate(zip(dense_joints, sparse_joints)): # Densify - qs_joint_sparse = jnp.array([i.todense() for i in qs_joint_sparse]) + qs_joint_sparse = jnp.array([i.todense() for i in sparse_out]) - self.assertTrue(np.allclose(qs_smooth_dense, qs_smooth_sparse)) - self.assertTrue(np.allclose(qs_joint_dense, qs_joint_sparse)) + self.assertTrue(np.allclose(dense_out, qs_joint_sparse)) if __name__ == "__main__": From 89ac75420b97b04072eb314f5cf4792307b58083 Mon Sep 17 00:00:00 2001 From: conorheins Date: Tue, 24 Sep 2024 11:00:41 +0200 Subject: [PATCH 171/196] removed calls to `np.random.seed(0)` in `test_learning_jax.py` --- test/test_learning_jax.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/test_learning_jax.py b/test/test_learning_jax.py index 4c105ff3..99a33ce5 100644 --- a/test/test_learning_jax.py +++ b/test/test_learning_jax.py @@ -287,7 +287,6 @@ def test_update_state_likelihood_multi_factor_some_factors_no_action(self): qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)]$ """ - np.random.seed(0) num_states = [3, 4, 2] num_controls = [3, 5, 5] @@ -342,7 +341,6 @@ def test_update_state_likelihood_multi_factor_some_factors_no_action_2(self): qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)]$ """ - np.random.seed(0) num_states = [3, 4, 2] num_controls = [3, 5, 5] From 58590deb8860cf51a7bcc080582114746f7b7608 Mon Sep 17 00:00:00 2001 From: conorheins Date: Tue, 24 Sep 2024 11:00:54 +0200 Subject: [PATCH 172/196] added more authors to author list in `pyproject.toml` (unfinished/WIP) --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index f3cc1cc3..be6008e7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,6 +8,9 @@ version = "1.0.0" description = "A Python package for solving Markov Decision Processes with Active Inference" authors = [ { name = "Conor Heins", email="conor.heins@gmail.com"}, + { name = "Alexander Tschantz", email="tschantz.alec@gmail.com"}, + { name = "Tim Verbelen", email="verbelen.tim@gmail.com"}, + { name = "Dimitrije Markovic", email="dimitrije.markovic@tu-dresden.de"} ] readme = "README.md" license = {file = "LICENSE"} From 265e50a56a64fe24ed07396c85fc178a9fc80e94 Mon Sep 17 00:00:00 2001 From: conorheins Date: Tue, 24 Sep 2024 12:11:33 +0200 Subject: [PATCH 173/196] fixed `update_state_likelihood_dirichlet` to allow for `factors_to_update` to work properly, not using `tree_map` anymore --- pymdp/learning.py | 691 +++++++++++++++++++--------------------------- 1 file changed, 284 insertions(+), 407 deletions(-) diff --git a/pymdp/learning.py b/pymdp/learning.py index 1c21568a..f9a8f0c5 100644 --- a/pymdp/learning.py +++ b/pymdp/learning.py @@ -2,458 +2,335 @@ # -*- coding: utf-8 -*- # pylint: disable=no-member -import numpy as np -from pymdp import utils, maths -import copy - -def update_obs_likelihood_dirichlet(pA, A, obs, qs, lr=1.0, modalities="all"): - """ - Update Dirichlet parameters of the observation likelihood distribution. - - Parameters - ----------- - pA: ``numpy.ndarray`` of dtype object - Prior Dirichlet parameters over observation model (same shape as ``A``) - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, ``int`` or ``tuple`` - The observation (generated by the environment). If single modality, this can be a 1D ``numpy.ndarray`` - (one-hot vector representation) or an ``int`` (observation index) - If multi-modality, this can be ``numpy.ndarray`` of dtype object whose entries are 1D one-hot vectors, - or a ``tuple`` (of ``int``) - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None - Marginal posterior beliefs over hidden states at current timepoint. - lr: float, default 1.0 - Learning rate, scale of the Dirichlet pseudo-count update. - modalities: ``list``, default "all" - Indices (ranging from 0 to ``n_modalities - 1``) of the observation modalities to include - in learning. Defaults to "all", meaning that modality-specific sub-arrays of ``pA`` - are all updated using the corresponding observations. - - Returns - ----------- - qA: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. - """ - - - num_modalities = len(pA) - num_observations = [pA[modality].shape[0] for modality in range(num_modalities)] +from pymdp.maths import multidimensional_outer, dirichlet_expected_value +from jax.tree_util import tree_map +from jaxtyping import Array +from jax import vmap, nn - obs_processed = utils.process_observation(obs, num_modalities, num_observations) - obs = utils.to_obj_array(obs_processed) +def update_obs_likelihood_dirichlet_m(pA_m, obs_m, qs, dependencies_m, lr=1.0): + """JAX version of ``pymdp.learning.update_obs_likelihood_dirichlet_m``""" + # pA_m - parameters of the dirichlet from the prior + # pA_m.shape = (no_m x num_states[k] x num_states[j] x ... x num_states[n]) where (k, j, n) are indices of the hidden state factors that are parents of modality m - if modalities == "all": - modalities = list(range(num_modalities)) + # \alpha^{*} = \alpha_{0} + \kappa * \sum_{t=t_begin}^{t=T} o_{m,t} \otimes \mathbf{s}_{f \in parents(m), t} - qA = copy.deepcopy(pA) - - for modality in modalities: - dfda = maths.spm_cross(obs[modality], qs) - dfda = dfda * (A[modality] > 0).astype("float") - qA[modality] = qA[modality] + (lr * dfda) - - return qA - -def update_obs_likelihood_dirichlet_factorized(pA, A, obs, qs, A_factor_list, lr=1.0, modalities="all"): - """ - Update Dirichlet parameters of the observation likelihood distribution, in a case where the observation model is reduced (factorized) and only represents - the conditional dependencies between the observation modalities and particular hidden state factors (whose indices are specified in each modality-specific entry of ``A_factor_list``) - - Parameters - ----------- - pA: ``numpy.ndarray`` of dtype object - Prior Dirichlet parameters over observation model (same shape as ``A``) - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, ``int`` or ``tuple`` - The observation (generated by the environment). If single modality, this can be a 1D ``numpy.ndarray`` - (one-hot vector representation) or an ``int`` (observation index) - If multi-modality, this can be ``numpy.ndarray`` of dtype object whose entries are 1D one-hot vectors, - or a ``tuple`` (of ``int``) - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None - Marginal posterior beliefs over hidden states at current timepoint. - A_factor_list: ``list`` of ``list`` of ``int`` - List of lists, where each list with index `m` contains the indices of the hidden states that observation modality `m` depends on. - lr: float, default 1.0 - Learning rate, scale of the Dirichlet pseudo-count update. - modalities: ``list``, default "all" - Indices (ranging from 0 to ``n_modalities - 1``) of the observation modalities to include - in learning. Defaults to "all", meaning that modality-specific sub-arrays of ``pA`` - are all updated using the corresponding observations. - - Returns - ----------- - qA: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. - """ + # \alpha^{*} is the VFE-minimizing solution for the parameters of q(A) + # \alpha_{0} are the Dirichlet parameters of p(A) + # o_{m,t} = observation (one-hot vector) of modality m at time t + # \mathbf{s}_{f \in parents(m), t} = categorical parameters of marginal posteriors over hidden state factors that are parents of modality m, at time t + # \otimes is a multidimensional outer product, not just a outer product of two vectors + # \kappa is an optional learning rate - num_modalities = len(pA) - num_observations = [pA[modality].shape[0] for modality in range(num_modalities)] + relevant_factors = tree_map(lambda f_idx: qs[f_idx], dependencies_m) - obs_processed = utils.process_observation(obs, num_modalities, num_observations) - obs = utils.to_obj_array(obs_processed) + dfda = vmap(multidimensional_outer)([obs_m] + relevant_factors).sum(axis=0) - if modalities == "all": - modalities = list(range(num_modalities)) + new_pA_m = pA_m + lr * dfda + A_m = dirichlet_expected_value(new_pA_m) - qA = copy.deepcopy(pA) - - for modality in modalities: - dfda = maths.spm_cross(obs[modality], qs[A_factor_list[modality]]) - dfda = dfda * (A[modality] > 0).astype("float") - qA[modality] = qA[modality] + (lr * dfda) + return new_pA_m, A_m + +def update_obs_likelihood_dirichlet(pA, A, obs, qs, *, A_dependencies, onehot_obs, num_obs, lr): + """ JAX version of ``pymdp.learning.update_obs_likelihood_dirichlet`` """ + + obs_m = lambda o, dim: nn.one_hot(o, dim) if not onehot_obs else o + update_A_fn = lambda pA_m, o_m, dim, dependencies_m: update_obs_likelihood_dirichlet_m( + pA_m, obs_m(o_m, dim), qs, dependencies_m, lr=lr + ) + result = tree_map(update_A_fn, pA, obs, num_obs, A_dependencies) + qA = [] + E_qA = [] + for i, r in enumerate(result): + if r is None: + qA.append(r) + E_qA.append(A[i]) + else: + qA.append(r[0]) + E_qA.append(r[1]) - return qA + return qA, E_qA -def update_state_likelihood_dirichlet( - pB, B, actions, qs, qs_prev, lr=1.0, factors="all" -): - """ - Update Dirichlet parameters of the transition distribution. - - Parameters - ----------- - pB: ``numpy.ndarray`` of dtype object - Prior Dirichlet parameters over transition model (same shape as ``B``) - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - actions: 1D ``numpy.ndarray`` - A vector with length equal to the number of control factors, where each element contains the index of the action (for that control factor) performed at - a given timestep. - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint. - qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at previous timepoint. - lr: float, default ``1.0`` - Learning rate, scale of the Dirichlet pseudo-count update. - factors: ``list``, default "all" - Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include - in learning. Defaults to "all", meaning that factor-specific sub-arrays of ``pB`` - are all updated using the corresponding hidden state distributions and actions. - - Returns - ----------- - qB: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. - """ +def update_state_transition_dirichlet_f(pB_f, actions_f, joint_qs_f, lr=1.0): + """ JAX version of ``pymdp.learning.update_state_likelihood_dirichlet_f`` """ + # pB_f - parameters of the dirichlet from the prior + # pB_f.shape = (num_states[f] x num_states[f] x num_actions[f]) where f is the index of the hidden state factor - num_factors = len(pB) + # \alpha^{*} = \alpha_{0} + \kappa * \sum_{t=t_begin}^{t=T} \mathbf{s}_{f, t} \otimes \mathbf{s}_{f, t-1} \otimes \mathbf{a}_{f, t-1} - qB = copy.deepcopy(pB) - - if factors == "all": - factors = list(range(num_factors)) + # \alpha^{*} is the VFE-minimizing solution for the parameters of q(B) + # \alpha_{0} are the Dirichlet parameters of p(B) + # \mathbf{s}_{f, t} = categorical parameters of marginal posteriors over hidden state factor f, at time t + # \mathbf{a}_{f, t-1} = categorical parameters of marginal posteriors over control factor f, at time t-1 + # \otimes is a multidimensional outer product, not just a outer product of two vectors + # \kappa is an optional learning rate - for factor in factors: - dfdb = maths.spm_cross(qs[factor], qs_prev[factor]) - dfdb *= (B[factor][:, :, int(actions[factor])] > 0).astype("float") - qB[factor][:,:,int(actions[factor])] += (lr*dfdb) + joint_qs_f = [joint_qs_f] if isinstance(joint_qs_f, Array) else joint_qs_f + dfdb = vmap(multidimensional_outer)(joint_qs_f + [actions_f]).sum(axis=0) + qB_f = pB_f + lr * dfdb - return qB + return qB_f, dirichlet_expected_value(qB_f) -def update_state_likelihood_dirichlet_interactions( - pB, B, actions, qs, qs_prev, B_factor_list, lr=1.0, factors="all" -): - """ - Update Dirichlet parameters of the transition distribution, in the case when 'interacting' hidden state factors are present, i.e. - the dynamics of a given hidden state factor `f` are no longer independent of the dynamics of other hidden state factors. - - Parameters - ----------- - pB: ``numpy.ndarray`` of dtype object - Prior Dirichlet parameters over transition model (same shape as ``B``) - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - actions: 1D ``numpy.ndarray`` - A vector with length equal to the number of control factors, where each element contains the index of the action (for that control factor) performed at - a given timestep. - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint. - qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at previous timepoint. - B_factor_list: ``list`` of ``list`` of ``int`` - A list of lists, where each element ``B_factor_list[f]`` is a list of indices of hidden state factors that that are needed to predict the dynamics of hidden state factor ``f``. - lr: float, default ``1.0`` - Learning rate, scale of the Dirichlet pseudo-count update. - factors: ``list``, default "all" - Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include - in learning. Defaults to "all", meaning that factor-specific sub-arrays of ``pB`` - are all updated using the corresponding hidden state distributions and actions. - - Returns - ----------- - qB: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. +def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_controls, lr, factors_to_update='all'): + """" + Update posterior Diriichlet parameters of the state transition likelihood model (B) given the joint beliefs over hidden states and actions. """ + nf = len(pB) - num_factors = len(pB) + if factors_to_update == 'all': + factors_to_update = list(range(nf)) + qB = [pb_f for pb_f in pB] + E_qB = [dirichlet_expected_value(qb_f) for qb_f in qB] - qB = copy.deepcopy(pB) - - if factors == "all": - factors = list(range(num_factors)) - - for factor in factors: - dfdb = maths.spm_cross(qs[factor], qs_prev[B_factor_list[factor]]) - dfdb *= (B[factor][...,int(actions[factor])] > 0).astype("float") - qB[factor][...,int(actions[factor])] += (lr*dfdb) + for f in factors_to_update: + qB[f], E_qB[f] = update_state_transition_dirichlet_f(pB[f], nn.one_hot(actions[..., f], num_controls[f], axis=-1), joint_beliefs[f], lr=lr) - return qB - -def update_state_prior_dirichlet( - pD, qs, lr=1.0, factors="all" -): - """ - Update Dirichlet parameters of the initial hidden state distribution - (prior beliefs about hidden states at the beginning of the inference window). - - Parameters - ----------- - pD: ``numpy.ndarray`` of dtype object - Prior Dirichlet parameters over initial hidden state prior (same shape as ``qs``) - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint - lr: float, default ``1.0`` - Learning rate, scale of the Dirichlet pseudo-count update. - factors: ``list``, default "all" - Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include - in learning. Defaults to "all", meaning that factor-specific sub-vectors of ``pD`` - are all updated using the corresponding hidden state distributions. + return qB, E_qB - Returns - ----------- - qD: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs``), after having updated it with state beliefs. - """ +# def update_state_prior_dirichlet( +# pD, qs, lr=1.0, factors="all" +# ): +# """ +# Update Dirichlet parameters of the initial hidden state distribution +# (prior beliefs about hidden states at the beginning of the inference window). + +# Parameters +# ----------- +# pD: ``numpy.ndarray`` of dtype object +# Prior Dirichlet parameters over initial hidden state prior (same shape as ``qs``) +# qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object +# Marginal posterior beliefs over hidden states at current timepoint +# lr: float, default ``1.0`` +# Learning rate, scale of the Dirichlet pseudo-count update. +# factors: ``list``, default "all" +# Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include +# in learning. Defaults to "all", meaning that factor-specific sub-vectors of ``pD`` +# are all updated using the corresponding hidden state distributions. + +# Returns +# ----------- +# qD: ``numpy.ndarray`` of dtype object +# Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs``), after having updated it with state beliefs. +# """ - num_factors = len(pD) +# num_factors = len(pD) - qD = copy.deepcopy(pD) +# qD = copy.deepcopy(pD) - if factors == "all": - factors = list(range(num_factors)) +# if factors == "all": +# factors = list(range(num_factors)) - for factor in factors: - idx = pD[factor] > 0 # only update those state level indices that have some prior probability - qD[factor][idx] += (lr * qs[factor][idx]) +# for factor in factors: +# idx = pD[factor] > 0 # only update those state level indices that have some prior probability +# qD[factor][idx] += (lr * qs[factor][idx]) - return qD - -def _prune_prior(prior, levels_to_remove, dirichlet = False): - """ - Function for pruning a prior Categorical distribution (e.g. C, D) - - Parameters - ----------- - prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - The vector(s) containing the priors over hidden states of a generative model, e.g. the prior over hidden states (``D`` vector). - levels_to_remove: ``list`` of ``int``, ``list`` of ``list`` - A ``list`` of the levels (indices of the support) to remove. If the prior in question has multiple hidden state factors / multiple observation modalities, - then this will be a ``list`` of ``list``, where each sub-list within ``levels_to_remove`` will contain the levels to prune for a particular hidden state factor or modality - dirichlet: ``Bool``, default ``False`` - A Boolean flag indicating whether the input vector(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. - @TODO: Instead, the dirichlet parameters from the pruned levels should somehow be re-distributed among the remaining levels - - Returns - ----------- - reduced_prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - The prior vector(s), after pruning, that lacks the hidden state or modality levels indexed by ``levels_to_remove`` - """ +# return qD - if utils.is_obj_array(prior): # in case of multiple hidden state factors +# def _prune_prior(prior, levels_to_remove, dirichlet = False): +# """ +# Function for pruning a prior Categorical distribution (e.g. C, D) - assert all([type(levels) == list for levels in levels_to_remove]) +# Parameters +# ----------- +# prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object +# The vector(s) containing the priors over hidden states of a generative model, e.g. the prior over hidden states (``D`` vector). +# levels_to_remove: ``list`` of ``int``, ``list`` of ``list`` +# A ``list`` of the levels (indices of the support) to remove. If the prior in question has multiple hidden state factors / multiple observation modalities, +# then this will be a ``list`` of ``list``, where each sub-list within ``levels_to_remove`` will contain the levels to prune for a particular hidden state factor or modality +# dirichlet: ``Bool``, default ``False`` +# A Boolean flag indicating whether the input vector(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. +# @TODO: Instead, the dirichlet parameters from the pruned levels should somehow be re-distributed among the remaining levels - num_factors = len(prior) +# Returns +# ----------- +# reduced_prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object +# The prior vector(s), after pruning, that lacks the hidden state or modality levels indexed by ``levels_to_remove`` +# """ - reduced_prior = utils.obj_array(num_factors) - - factors_to_remove = [] - for f, s_i in enumerate(prior): # loop over factors (or modalities) - - ns = len(s_i) - levels_to_keep = list(set(range(ns)) - set(levels_to_remove[f])) - if len(levels_to_keep) == 0: - print(f'Warning... removing ALL levels of factor {f} - i.e. the whole hidden state factor is being removed\n') - factors_to_remove.append(f) - else: - if not dirichlet: - reduced_prior[f] = utils.norm_dist(s_i[levels_to_keep]) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) +# if utils.is_obj_array(prior): # in case of multiple hidden state factors +# assert all([type(levels) == list for levels in levels_to_remove]) - if len(factors_to_remove) > 0: - factors_to_keep = list(set(range(num_factors)) - set(factors_to_remove)) - reduced_prior = reduced_prior[factors_to_keep] +# num_factors = len(prior) - else: # in case of one hidden state factor +# reduced_prior = utils.obj_array(num_factors) - assert all([type(level_i) == int for level_i in levels_to_remove]) - - ns = len(prior) - levels_to_keep = list(set(range(ns)) - set(levels_to_remove)) - - if not dirichlet: - reduced_prior = utils.norm_dist(prior[levels_to_keep]) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) - - return reduced_prior - -def _prune_A(A, obs_levels_to_prune, state_levels_to_prune, dirichlet = False): - """ - Function for pruning a observation likelihood model (with potentially multiple hidden state factors) - :meta private: - Parameters - ----------- - A: ``numpy.ndarray`` with ``ndim >= 2``, or ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - obs_levels_to_prune: ``list`` of int or ``list`` of ``list``: - A ``list`` of the observation levels to remove. If the likelihood in question has multiple observation modalities, - then this will be a ``list`` of ``list``, where each sub-list within ``obs_levels_to_prune`` will contain the observation levels - to remove for a particular observation modality - state_levels_to_prune: ``list`` of ``int`` - A ``list`` of the hidden state levels to remove (this will be the same across modalities) - dirichlet: ``Bool``, default ``False`` - A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. - @TODO: Instead, the dirichlet parameters from the pruned columns should somehow be re-distributed among the remaining columns - - Returns - ----------- - reduced_A: ``numpy.ndarray`` with ndim >= 2, or ``numpy.ndarray ``of dtype object - The observation model, after pruning, which lacks the observation or hidden state levels given by the arguments ``obs_levels_to_prune`` and ``state_levels_to_prune`` - """ - - columns_to_keep_list = [] - if utils.is_obj_array(A): - num_states = A[0].shape[1:] - for f, ns in enumerate(num_states): - indices_f = np.array( list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) - columns_to_keep_list.append(indices_f) - else: - num_states = A.shape[1] - indices = np.array( list(set(range(num_states)) - set(state_levels_to_prune)), dtype = np.intp ) - columns_to_keep_list.append(indices) - - if utils.is_obj_array(A): # in case of multiple observation modality - - assert all([type(o_m_levels) == list for o_m_levels in obs_levels_to_prune]) - - num_modalities = len(A) - - reduced_A = utils.obj_array(num_modalities) +# factors_to_remove = [] +# for f, s_i in enumerate(prior): # loop over factors (or modalities) + +# ns = len(s_i) +# levels_to_keep = list(set(range(ns)) - set(levels_to_remove[f])) +# if len(levels_to_keep) == 0: +# print(f'Warning... removing ALL levels of factor {f} - i.e. the whole hidden state factor is being removed\n') +# factors_to_remove.append(f) +# else: +# if not dirichlet: +# reduced_prior[f] = utils.norm_dist(s_i[levels_to_keep]) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) + + +# if len(factors_to_remove) > 0: +# factors_to_keep = list(set(range(num_factors)) - set(factors_to_remove)) +# reduced_prior = reduced_prior[factors_to_keep] + +# else: # in case of one hidden state factor + +# assert all([type(level_i) == int for level_i in levels_to_remove]) + +# ns = len(prior) +# levels_to_keep = list(set(range(ns)) - set(levels_to_remove)) + +# if not dirichlet: +# reduced_prior = utils.norm_dist(prior[levels_to_keep]) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) + +# return reduced_prior + +# def _prune_A(A, obs_levels_to_prune, state_levels_to_prune, dirichlet = False): +# """ +# Function for pruning a observation likelihood model (with potentially multiple hidden state factors) +# :meta private: +# Parameters +# ----------- +# A: ``numpy.ndarray`` with ``ndim >= 2``, or ``numpy.ndarray`` of dtype object +# Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of +# stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store +# the probability of observation level ``i`` given hidden state levels ``j, k, ...`` +# obs_levels_to_prune: ``list`` of int or ``list`` of ``list``: +# A ``list`` of the observation levels to remove. If the likelihood in question has multiple observation modalities, +# then this will be a ``list`` of ``list``, where each sub-list within ``obs_levels_to_prune`` will contain the observation levels +# to remove for a particular observation modality +# state_levels_to_prune: ``list`` of ``int`` +# A ``list`` of the hidden state levels to remove (this will be the same across modalities) +# dirichlet: ``Bool``, default ``False`` +# A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. +# @TODO: Instead, the dirichlet parameters from the pruned columns should somehow be re-distributed among the remaining columns + +# Returns +# ----------- +# reduced_A: ``numpy.ndarray`` with ndim >= 2, or ``numpy.ndarray ``of dtype object +# The observation model, after pruning, which lacks the observation or hidden state levels given by the arguments ``obs_levels_to_prune`` and ``state_levels_to_prune`` +# """ + +# columns_to_keep_list = [] +# if utils.is_obj_array(A): +# num_states = A[0].shape[1:] +# for f, ns in enumerate(num_states): +# indices_f = np.array( list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) +# columns_to_keep_list.append(indices_f) +# else: +# num_states = A.shape[1] +# indices = np.array( list(set(range(num_states)) - set(state_levels_to_prune)), dtype = np.intp ) +# columns_to_keep_list.append(indices) + +# if utils.is_obj_array(A): # in case of multiple observation modality + +# assert all([type(o_m_levels) == list for o_m_levels in obs_levels_to_prune]) + +# num_modalities = len(A) + +# reduced_A = utils.obj_array(num_modalities) - for m, A_i in enumerate(A): # loop over modalities +# for m, A_i in enumerate(A): # loop over modalities - no = A_i.shape[0] - rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune[m])), dtype = np.intp) +# no = A_i.shape[0] +# rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune[m])), dtype = np.intp) - reduced_A[m] = A_i[np.ix_(rows_to_keep, *columns_to_keep_list)] - if not dirichlet: - reduced_A = utils.norm_dist_obj_arr(reduced_A) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - else: # in case of one observation modality +# reduced_A[m] = A_i[np.ix_(rows_to_keep, *columns_to_keep_list)] +# if not dirichlet: +# reduced_A = utils.norm_dist_obj_arr(reduced_A) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) +# else: # in case of one observation modality - assert all([type(o_levels_i) == int for o_levels_i in obs_levels_to_prune]) +# assert all([type(o_levels_i) == int for o_levels_i in obs_levels_to_prune]) - no = A.shape[0] - rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune)), dtype = np.intp) +# no = A.shape[0] +# rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune)), dtype = np.intp) - reduced_A = A[np.ix_(rows_to_keep, *columns_to_keep_list)] - - if not dirichlet: - reduced_A = utils.norm_dist(reduced_A) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - - return reduced_A - -def _prune_B(B, state_levels_to_prune, action_levels_to_prune, dirichlet = False): - """ - Function for pruning a transition likelihood model (with potentially multiple hidden state factors) - - Parameters - ----------- - B: ``numpy.ndarray`` of ``ndim == 3`` or ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at `t` to hidden states at `t+1`, given some control state `u`. - Each element B[f] of this object array stores a 3-D tensor for hidden state factor `f`, whose entries `B[f][s, v, u] store the probability - of hidden state level `s` at the current time, given hidden state level `v` and action `u` at the previous time. - state_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` - A ``list`` of the state levels to remove. If the likelihood in question has multiple hidden state factors, - then this will be a ``list`` of ``list``, where each sub-list within ``state_levels_to_prune`` will contain the state levels - to remove for a particular hidden state factor - action_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` - A ``list`` of the control state or action levels to remove. If the likelihood in question has multiple control state factors, - then this will be a ``list`` of ``list``, where each sub-list within ``action_levels_to_prune`` will contain the control state levels - to remove for a particular control state factor - dirichlet: ``Bool``, default ``False`` - A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. - @TODO: Instead, the dirichlet parameters from the pruned rows/columns should somehow be re-distributed among the remaining rows/columns - - Returns - ----------- - reduced_B: ``numpy.ndarray`` of `ndim == 3` or ``numpy.ndarray`` of dtype object - The transition model, after pruning, which lacks the hidden state levels/action levels given by the arguments ``state_levels_to_prune`` and ``action_levels_to_prune`` - """ - - slices_to_keep_list = [] - - if utils.is_obj_array(B): - - num_controls = [B_arr.shape[2] for _, B_arr in enumerate(B)] - - for c, nc in enumerate(num_controls): - indices_c = np.array( list(set(range(nc)) - set(action_levels_to_prune[c])), dtype = np.intp) - slices_to_keep_list.append(indices_c) - else: - num_controls = B.shape[2] - slices_to_keep = np.array( list(set(range(num_controls)) - set(action_levels_to_prune)), dtype = np.intp ) - - if utils.is_obj_array(B): # in case of multiple hidden state factors - - assert all([type(ns_f_levels) == list for ns_f_levels in state_levels_to_prune]) - - num_factors = len(B) - - reduced_B = utils.obj_array(num_factors) +# reduced_A = A[np.ix_(rows_to_keep, *columns_to_keep_list)] + +# if not dirichlet: +# reduced_A = utils.norm_dist(reduced_A) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) + +# return reduced_A + +# def _prune_B(B, state_levels_to_prune, action_levels_to_prune, dirichlet = False): +# """ +# Function for pruning a transition likelihood model (with potentially multiple hidden state factors) + +# Parameters +# ----------- +# B: ``numpy.ndarray`` of ``ndim == 3`` or ``numpy.ndarray`` of dtype object +# Dynamics likelihood mapping or 'transition model', mapping from hidden states at `t` to hidden states at `t+1`, given some control state `u`. +# Each element B[f] of this object array stores a 3-D tensor for hidden state factor `f`, whose entries `B[f][s, v, u] store the probability +# of hidden state level `s` at the current time, given hidden state level `v` and action `u` at the previous time. +# state_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` +# A ``list`` of the state levels to remove. If the likelihood in question has multiple hidden state factors, +# then this will be a ``list`` of ``list``, where each sub-list within ``state_levels_to_prune`` will contain the state levels +# to remove for a particular hidden state factor +# action_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` +# A ``list`` of the control state or action levels to remove. If the likelihood in question has multiple control state factors, +# then this will be a ``list`` of ``list``, where each sub-list within ``action_levels_to_prune`` will contain the control state levels +# to remove for a particular control state factor +# dirichlet: ``Bool``, default ``False`` +# A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. +# @TODO: Instead, the dirichlet parameters from the pruned rows/columns should somehow be re-distributed among the remaining rows/columns + +# Returns +# ----------- +# reduced_B: ``numpy.ndarray`` of `ndim == 3` or ``numpy.ndarray`` of dtype object +# The transition model, after pruning, which lacks the hidden state levels/action levels given by the arguments ``state_levels_to_prune`` and ``action_levels_to_prune`` +# """ + +# slices_to_keep_list = [] + +# if utils.is_obj_array(B): + +# num_controls = [B_arr.shape[2] for _, B_arr in enumerate(B)] + +# for c, nc in enumerate(num_controls): +# indices_c = np.array( list(set(range(nc)) - set(action_levels_to_prune[c])), dtype = np.intp) +# slices_to_keep_list.append(indices_c) +# else: +# num_controls = B.shape[2] +# slices_to_keep = np.array( list(set(range(num_controls)) - set(action_levels_to_prune)), dtype = np.intp ) + +# if utils.is_obj_array(B): # in case of multiple hidden state factors + +# assert all([type(ns_f_levels) == list for ns_f_levels in state_levels_to_prune]) + +# num_factors = len(B) + +# reduced_B = utils.obj_array(num_factors) - for f, B_f in enumerate(B): # loop over modalities +# for f, B_f in enumerate(B): # loop over modalities - ns = B_f.shape[0] - states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) +# ns = B_f.shape[0] +# states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) - reduced_B[f] = B_f[np.ix_(states_to_keep, states_to_keep, slices_to_keep_list[f])] +# reduced_B[f] = B_f[np.ix_(states_to_keep, states_to_keep, slices_to_keep_list[f])] - if not dirichlet: - reduced_B = utils.norm_dist_obj_arr(reduced_B) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) +# if not dirichlet: +# reduced_B = utils.norm_dist_obj_arr(reduced_B) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - else: # in case of one hidden state factor +# else: # in case of one hidden state factor - assert all([type(state_level_i) == int for state_level_i in state_levels_to_prune]) +# assert all([type(state_level_i) == int for state_level_i in state_levels_to_prune]) - ns = B.shape[0] - states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune)), dtype = np.intp) +# ns = B.shape[0] +# states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune)), dtype = np.intp) - reduced_B = B[np.ix_(states_to_keep, states_to_keep, slices_to_keep)] +# reduced_B = B[np.ix_(states_to_keep, states_to_keep, slices_to_keep)] - if not dirichlet: - reduced_B = utils.norm_dist(reduced_B) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) +# if not dirichlet: +# reduced_B = utils.norm_dist(reduced_B) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - return reduced_B +# return reduced_B From 57d730da2615867e7ae92917f8bf8e9705315703 Mon Sep 17 00:00:00 2001 From: conorheins Date: Tue, 24 Sep 2024 12:12:20 +0200 Subject: [PATCH 174/196] Refactor of `pymdp` so that `jax` is the main backend, and numpy version now relegated to a `legacy` folder. Co-authored-by: Tim Verbelen --- docs/env.rst | 2 +- examples/A_matrix_demo.ipynb | 261 --- examples/A_matrix_demo.py | 97 - .../complex_action_dependency.ipynb | 0 .../testing_large_latent_spaces.ipynb | 0 examples/agent_demo.py | 78 - examples/building_up_agent_loop.ipynb | 182 -- examples/{ => envs}/knapsack_demo.ipynb | 0 .../inductive_inference_example.ipynb | 0 .../inductive_inference_gridworld.ipynb | 0 examples/{ => legacy}/agent_demo.ipynb | 0 .../free_energy_calculation.ipynb | 0 .../{ => legacy}/gridworld_tutorial_1.ipynb | 0 .../{ => legacy}/gridworld_tutorial_2.ipynb | 0 examples/{ => legacy}/tmaze_demo.ipynb | 0 .../{ => legacy}/tmaze_learning_demo.ipynb | 0 .../{ => model_fitting}/model_inversion.ipynb | 0 examples/tmp_dir/my_a_matrix.xlsx | Bin 9043 -> 0 bytes pymdp/__init__.py | 10 - pymdp/agent.py | 1325 ++++++-------- pymdp/{jax => }/algos.py | 2 +- pymdp/control.py | 1618 ++++------------- pymdp/{jax => }/distribution.py | 0 pymdp/envs/__init__.py | 6 +- pymdp/envs/env.py | 122 +- pymdp/{jax => }/envs/generalized_tmaze.py | 0 pymdp/{jax => }/envs/graph_worlds.py | 0 pymdp/{jax => }/envs/rollout.py | 0 pymdp/inference.py | 469 ++--- pymdp/jax/__init__.py | 1 - pymdp/jax/agent.py | 673 ------- pymdp/jax/control.py | 476 ----- pymdp/jax/envs/__init__.py | 2 - pymdp/jax/envs/env.py | 73 - pymdp/jax/inference.py | 142 -- pymdp/jax/learning.py | 345 ---- pymdp/jax/maths.py | 203 --- pymdp/jax/utils.py | 665 ------- pymdp/legacy/__init__.py | 9 + pymdp/legacy/agent.py | 941 ++++++++++ pymdp/{ => legacy}/algos/__init__.py | 0 pymdp/{ => legacy}/algos/fpi.py | 4 +- pymdp/{ => legacy}/algos/mmp.py | 4 +- pymdp/{ => legacy}/algos/mmp_old.py | 4 +- pymdp/legacy/control.py | 1466 +++++++++++++++ pymdp/{ => legacy}/default_models.py | 2 +- pymdp/legacy/envs/__init__.py | 4 + pymdp/legacy/envs/env.py | 87 + pymdp/{ => legacy}/envs/grid_worlds.py | 2 +- pymdp/{ => legacy}/envs/tmaze.py | 4 +- pymdp/{ => legacy}/envs/visual_foraging.py | 137 +- pymdp/legacy/inference.py | 371 ++++ pymdp/legacy/learning.py | 459 +++++ pymdp/legacy/maths.py | 608 +++++++ pymdp/legacy/utils.py | 647 +++++++ pymdp/{jax => }/likelihoods.py | 0 pymdp/maths.py | 655 ++----- pymdp/{jax => }/planning/mcts.py | 0 pymdp/{jax => }/planning/si.py | 0 pymdp/utils.py | 643 +------ test/test_SPM_validation.py | 6 +- test/test_agent.py | 8 +- test/test_agent_jax.py | 8 +- test/test_control.py | 4 +- test/test_control_jax.py | 7 +- test/test_demos.py | 12 +- test/test_distribution.py | 4 +- test/test_fpi.py | 4 +- test/test_inference.py | 4 +- test/test_inference_jax.py | 6 +- test/test_jax_sparse_backend.py | 7 +- test/test_learning.py | 2 +- test/test_learning_jax.py | 16 +- test/test_message_passing_jax.py | 17 +- test/test_mmp.py | 6 +- test/test_utils.py | 4 +- test/test_wrappers.py | 2 +- 77 files changed, 5863 insertions(+), 7053 deletions(-) delete mode 100644 examples/A_matrix_demo.ipynb delete mode 100644 examples/A_matrix_demo.py rename examples/{ => advanced}/complex_action_dependency.ipynb (100%) rename examples/{ => advanced}/testing_large_latent_spaces.ipynb (100%) delete mode 100644 examples/agent_demo.py delete mode 100644 examples/building_up_agent_loop.ipynb rename examples/{ => envs}/knapsack_demo.ipynb (100%) rename examples/{ => inductive_inference}/inductive_inference_example.ipynb (100%) rename examples/{ => inductive_inference}/inductive_inference_gridworld.ipynb (100%) rename examples/{ => legacy}/agent_demo.ipynb (100%) rename examples/{ => legacy}/free_energy_calculation.ipynb (100%) rename examples/{ => legacy}/gridworld_tutorial_1.ipynb (100%) rename examples/{ => legacy}/gridworld_tutorial_2.ipynb (100%) rename examples/{ => legacy}/tmaze_demo.ipynb (100%) rename examples/{ => legacy}/tmaze_learning_demo.ipynb (100%) rename examples/{ => model_fitting}/model_inversion.ipynb (100%) delete mode 100644 examples/tmp_dir/my_a_matrix.xlsx rename pymdp/{jax => }/algos.py (98%) rename pymdp/{jax => }/distribution.py (100%) rename pymdp/{jax => }/envs/generalized_tmaze.py (100%) rename pymdp/{jax => }/envs/graph_worlds.py (100%) rename pymdp/{jax => }/envs/rollout.py (100%) delete mode 100644 pymdp/jax/__init__.py delete mode 100644 pymdp/jax/agent.py delete mode 100644 pymdp/jax/control.py delete mode 100644 pymdp/jax/envs/__init__.py delete mode 100644 pymdp/jax/envs/env.py delete mode 100644 pymdp/jax/inference.py delete mode 100644 pymdp/jax/learning.py delete mode 100644 pymdp/jax/maths.py delete mode 100644 pymdp/jax/utils.py create mode 100644 pymdp/legacy/__init__.py create mode 100644 pymdp/legacy/agent.py rename pymdp/{ => legacy}/algos/__init__.py (100%) rename pymdp/{ => legacy}/algos/fpi.py (99%) rename pymdp/{ => legacy}/algos/mmp.py (99%) rename pymdp/{ => legacy}/algos/mmp_old.py (99%) create mode 100644 pymdp/legacy/control.py rename pymdp/{ => legacy}/default_models.py (99%) create mode 100644 pymdp/legacy/envs/__init__.py create mode 100644 pymdp/legacy/envs/env.py rename pymdp/{ => legacy}/envs/grid_worlds.py (99%) rename pymdp/{ => legacy}/envs/tmaze.py (99%) rename pymdp/{ => legacy}/envs/visual_foraging.py (74%) create mode 100644 pymdp/legacy/inference.py create mode 100644 pymdp/legacy/learning.py create mode 100644 pymdp/legacy/maths.py create mode 100644 pymdp/legacy/utils.py rename pymdp/{jax => }/likelihoods.py (100%) rename pymdp/{jax => }/planning/mcts.py (100%) rename pymdp/{jax => }/planning/si.py (100%) diff --git a/docs/env.rst b/docs/env.rst index 93b1b5bd..076361c0 100644 --- a/docs/env.rst +++ b/docs/env.rst @@ -19,6 +19,6 @@ same general usage as above. pymdp.envs.GridWorldEnv pymdp.envs.DGridWorldEnv - pymdp.envs.VisualForagingEnv + pymdp.envs.SceneConstruction pymdp.envs.TMazeEnv pymdp.envs.TMazeEnvNullOutcome diff --git a/examples/A_matrix_demo.ipynb b/examples/A_matrix_demo.ipynb deleted file mode 100644 index 3bd9af37..00000000 --- a/examples/A_matrix_demo.ipynb +++ /dev/null @@ -1,261 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Generative Model Demo: Constructing a simple likelihood model \n", - "This demo notebook provides a walk-through of how to build a simple A matrix (or likelihood mapping) that encodes an aegnt's beliefs about how hidden states 'cause' or probabilistically relate to observations" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Imports\n", - "\n", - "First, import `pymdp` and the modules we'll need." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import sys\n", - "import pathlib\n", - "\n", - "import numpy as np\n", - "import itertools\n", - "import pandas as pd\n", - "\n", - "path = pathlib.Path(os.getcwd())\n", - "module_path = str(path.parent) + '/'\n", - "sys.path.append(module_path)\n", - "\n", - "import pymdp.utils as utils\n", - "from pymdp.utils import create_A_matrix_stub, read_A_matrix\n", - "from pymdp.algos import run_vanilla_fpi" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## The world (as represented by the agent's generative model)\n", - "\n", - "### Hidden states\n", - "\n", - "We assume the agent's \"represents\" (this should make you think: generative _model_ , not _process_ ) its environment using two latent variables that are statistically independent of one another - we can thus represent them using two _hidden state factors._\n", - "\n", - "We refer to these two hidden state factors are `DID_IT_RAIN` and `WAS_SPRINKLER_ON`. \n", - "\n", - "#### 1. `DID_IT_RAIN`\n", - "The first factor is a binary variable representing whether or not it rained earlier today.\n", - "\n", - "#### 2. `WAS_SPRINKLER_ON`\n", - "\n", - "The second factor is a binary variable representing whether or not the sprinkler was on or off earlier today.\n", - "\n", - "### Observations\n", - "\n", - "The agent believes that these two hidden states probabilistically relate to two observation modalities, i.e. two independent 'sensory channels', which we can call `GRASS_OBSERVATION` and `WEATHER_OBSERVATION`. \n", - "\n", - "#### 1. `GRASS_OBSERVATION`\n", - "The first modality is a binary variable representing the agent's observation (e.g. via vision, for instance) of the grass being wet or being dry.\n", - "\n", - "#### 2. `WEATHER_OBSERVATION`\n", - "\n", - "The second modality is a ternary (3-valued) variable representing the agent's observation of the state of the weather, e.g. by looking at the sky. In this example, it can either look `clear`, `rainy`, or `cloudy`\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "model_labels = {\n", - " \"observations\": {\n", - " \"grass_observation\": [\n", - " \"wet\",\n", - " \"dry\" \n", - " ],\n", - " \"weather_observation\": [\n", - " \"clear\",\n", - " \"rainy\",\n", - " \"cloudy\"\n", - " ]\n", - " },\n", - " \"states\": {\n", - " \"did_it_rain\": [\"rained\", \"did_not_rain\"],\n", - " \"was_sprinkler_on\": [\"on\", \"off\"],\n", - " },\n", - " }\n", - "\n", - "num_obs, _, n_states, n_factors = utils.get_model_dimensions_from_labels(model_labels)\n", - "\n", - "read_from_excel = True\n", - "pre_specified_excel = True\n", - "\n", - "A_stub = create_A_matrix_stub(model_labels)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Option 1. Write the empty A matrix stub to an excel file, fill it out separately (e.g. manually in excel, and then read it back into memory). Remember, these represent the agent's generative model, not the true probabilities that relate states to observations. So you can think of these as the agent's personal/subjective 'assumptions' about how hidden states relate to observations." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "if read_from_excel:\n", - " ## Option 1: fill out A matrix 'offline' (e.g. in an excel spreadsheet)\n", - "\n", - " excel_dir = 'tmp_dir'\n", - " if not os.path.exists(excel_dir):\n", - " os.mkdir(excel_dir)\n", - "\n", - " excel_path = os.path.join(excel_dir, 'my_a_matrix.xlsx')\n", - "\n", - " if not pre_specified_excel:\n", - " A_stub.to_excel(excel_path)\n", - " print(f'Go fill out the A matrix in {excel_path} and then continue running this code\\n')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "After you've filled out the Excel sheet separately (e.g. opening up Microsoft Excel and filling out the cells, you can read it back into memory)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "if read_from_excel:\n", - " A_stub = read_A_matrix(excel_path, n_factors)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Option 2. Fill out the A matrix using the desired probabilities. Remember, these represent the agent's generative model, not the true probabilities that relate states to observations. So you can think of these as the agent's personal/subjective 'assumptions' about how hidden states relate to observations." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "if not read_from_excel:\n", - " A_stub.loc[('grass_observation','wet'),('rained', 'on')] = 1.0\n", - "\n", - " A_stub.loc[('grass_observation','wet'),('rained', 'off')] = 0.7\n", - " A_stub.loc[('grass_observation','dry'),('rained', 'off')] = 0.3\n", - "\n", - " A_stub.loc[('grass_observation','wet'),('did_not_rain', 'on')] = 0.5\n", - " A_stub.loc[('grass_observation','dry'),('did_not_rain', 'on')] = 0.5\n", - "\n", - " A_stub.loc[('grass_observation','dry'),('did_not_rain', 'off')] = 1.0\n", - "\n", - " A_stub.loc['weather_observation','rained'] = np.tile(np.array([0.1, 0.65, 0.25]).reshape(-1,1), (1,2)) \n", - "\n", - " A_stub.loc[('weather_observation'),('did_not_rain')] = np.tile(np.array([0.9, 0.05, 0.05]).reshape(-1,1), (1,2)) \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Now we can use a utility function `convert_stub_to_ndarray` to convert the human-readable A matrix into the multi-dimensional tensor form needed by `pymdp` to achieve things like inference and action selection" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "A = utils.convert_A_stub_to_ndarray(A_stub, model_labels)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Sample a random observation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "obs_idx = [np.random.randint(o_dim) for o_dim in num_obs]\n", - "# obs_idx = [0, 1] # wet and rainy\n", - "\n", - "observation = utils.obj_array_zeros(num_obs)\n", - "\n", - "for g, modality_name in enumerate(model_labels['observations'].keys()):\n", - " observation[g][obs_idx[g]] = 1.0\n", - " print('%s: %s'%(modality_name, model_labels['observations'][modality_name][obs_idx[g]]))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Given the observation and your A matrix, perform inference to optimize a simple posterior belief about the state of the world " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "qs = run_vanilla_fpi(A, observation, num_obs, n_states, prior=None, num_iter=10, dF=1.0, dF_tol=0.001)\n", - "\n", - "print('Belief that it rained: %.2f'%(qs[0][0]))\n", - "print('Belief that the sprinkler was on: %.2f'%(qs[1][0]))" - ] - } - ], - "metadata": { - "interpreter": { - "hash": "43ee964e2ad3601b7244370fb08e7f23a81bd2f0e3c87ee41227da88c57ff102" - }, - "kernelspec": { - "display_name": "Python 3.7.10 64-bit ('pymdp_env': conda)", - "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.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/examples/A_matrix_demo.py b/examples/A_matrix_demo.py deleted file mode 100644 index c3c0531b..00000000 --- a/examples/A_matrix_demo.py +++ /dev/null @@ -1,97 +0,0 @@ -# %% This notebook is supposed to be stepped through cell-by-cell, like a jupyter notebook - -import os -import sys -import pathlib - -import numpy as np -import itertools -import pandas as pd - -path = pathlib.Path(os.getcwd()) -module_path = str(path.parent) + '/' -sys.path.append(module_path) - -from pymdp import utils -from pymdp.utils import create_A_matrix_stub, read_A_matrix -from pymdp.algos import run_vanilla_fpi - -# %% Create an empty A matrix -model_labels = { - "observations": { - "grass_observation": [ - "wet", - "dry" - ], - "weather_observation": [ - "clear", - "rainy", - "cloudy" - ] - }, - "states": { - "did_it_rain": ["rained", "did_not_rain"], - "was_sprinkler_on": ["on", "off"], - }, - } - -num_obs, _, n_states, n_factors = utils.get_model_dimensions_from_labels(model_labels) - -read_from_excel = True -pre_specified_excel = True - -A_stub = create_A_matrix_stub(model_labels) - -if read_from_excel: - ## Option 1: fill out A matrix 'offline' (e.g. in an excel spreadsheet) - - excel_dir = 'examples/tmp_dir' - if not os.path.exists(excel_dir): - os.mkdir(excel_dir) - - excel_path = os.path.join(excel_dir, 'my_a_matrix.xlsx') - - if not pre_specified_excel: - A_stub.to_excel(excel_path) - print(f'Go fill out the A matrix in {excel_path} and then continue running this code\n') - -if read_from_excel: - - A_stub = read_A_matrix(excel_path, n_factors) - -if not read_from_excel: - ## Option 2: fill out the A matrix here in Python, using our knowledge of the dependencies in the system and pandas multindexing assignments - - A_stub.loc[('grass_observation','wet'),('rained', 'on')] = 1.0 - - A_stub.loc[('grass_observation','wet'),('rained', 'off')] = 0.7 - A_stub.loc[('grass_observation','dry'),('rained', 'off')] = 0.3 - - A_stub.loc[('grass_observation','wet'),('did_not_rain', 'on')] = 0.5 - A_stub.loc[('grass_observation','dry'),('did_not_rain', 'on')] = 0.5 - - A_stub.loc[('grass_observation','dry'),('did_not_rain', 'off')] = 1.0 - - A_stub.loc['weather_observation','rained'] = np.tile(np.array([0.1, 0.65, 0.25]).reshape(-1,1), (1,2)) - - A_stub.loc[('weather_observation'),('did_not_rain')] = np.tile(np.array([0.9, 0.05, 0.05]).reshape(-1,1), (1,2)) - -# %% now convert the A matrix into a sequence of appopriately shaped numpy arrays - -A = utils.convert_A_stub_to_ndarray(A_stub, model_labels) - -obs_idx = [np.random.randint(o_dim) for o_dim in num_obs] -# obs_idx = [0, 1] # wet and rainy - -observation = utils.obj_array_zeros(num_obs) - -for g, modality_name in enumerate(model_labels['observations'].keys()): - observation[g][obs_idx[g]] = 1.0 - print('%s: %s'%(modality_name, model_labels['observations'][modality_name][obs_idx[g]])) - -qs = run_vanilla_fpi(A, observation, num_obs, n_states, prior=None, num_iter=10, dF=1.0, dF_tol=0.001) - -print('Belief that it rained: %.2f'%(qs[0][0])) -print('Belief that the sprinkler was on: %.2f'%(qs[1][0])) - -# %% diff --git a/examples/complex_action_dependency.ipynb b/examples/advanced/complex_action_dependency.ipynb similarity index 100% rename from examples/complex_action_dependency.ipynb rename to examples/advanced/complex_action_dependency.ipynb diff --git a/examples/testing_large_latent_spaces.ipynb b/examples/advanced/testing_large_latent_spaces.ipynb similarity index 100% rename from examples/testing_large_latent_spaces.ipynb rename to examples/advanced/testing_large_latent_spaces.ipynb diff --git a/examples/agent_demo.py b/examples/agent_demo.py deleted file mode 100644 index e921f933..00000000 --- a/examples/agent_demo.py +++ /dev/null @@ -1,78 +0,0 @@ -import numpy as np -from pymdp.agent import Agent -from pymdp import utils -from pymdp.maths import softmax -import copy - -obs_names = ["state_observation", "reward", "decision_proprioceptive"] -state_names = ["reward_level", "decision_state"] -action_names = ["uncontrolled", "decision_state"] - -num_obs = [3, 3, 3] -num_states = [2, 3] -num_modalities = len(num_obs) -num_factors = len(num_states) - -A = utils.obj_array_zeros([[o] + num_states for _, o in enumerate(num_obs)]) - -A[0][:, :, 0] = np.ones( (num_obs[0], num_states[0]) ) / num_obs[0] -A[0][:, :, 1] = np.ones( (num_obs[0], num_states[0]) ) / num_obs[0] -A[0][:, :, 2] = np.array([[0.8, 0.2], [0.0, 0.0], [0.2, 0.8]]) - -A[1][2, :, 0] = np.ones(num_states[0]) -A[1][0:2, :, 1] = softmax(np.eye(num_obs[1] - 1)) # bandit statistics (mapping between reward-state (first hidden state factor) and rewards (Good vs Bad)) -A[1][2, :, 2] = np.ones(num_states[0]) - -# establish a proprioceptive mapping that determines how the agent perceives its own `decision_state` -A[2][0,:,0] = 1.0 -A[2][1,:,1] = 1.0 -A[2][2,:,2] = 1.0 - -control_fac_idx = [1] -B = utils.obj_array(num_factors) -for f, ns in enumerate(num_states): - B[f] = np.eye(ns) - if f in control_fac_idx: - B[f] = B[f].reshape(ns, ns, 1) - B[f] = np.tile(B[f], (1, 1, ns)) - B[f] = B[f].transpose(1, 2, 0) - else: - B[f] = B[f].reshape(ns, ns, 1) - -C = utils.obj_array_zeros(num_obs) -C[1][0] = 1.0 # put a 'reward' over first observation -C[1][1] = -2.0 # put a 'punishment' over first observation -# this implies that C[1][2] is 'neutral' - -agent = Agent(A=A, B=B, C=C, control_fac_idx=[1]) - -# initial state -T = 5 -o = [2, 2, 0] -s = [0, 0] - -# transition/observation matrices characterising the generative process -A_gp = copy.deepcopy(A) -B_gp = copy.deepcopy(B) - -for t in range(T): - - for g in range(num_modalities): - print(f"{t}: Observation {obs_names[g]}: {o[g]}") - - qx = agent.infer_states(o) - - for f in range(num_factors): - print(f"{t}: Beliefs about {state_names[f]}: {qx[f]}") - - agent.infer_policies() - action = agent.sample_action() - - for f, s_i in enumerate(s): - s[f] = utils.sample(B_gp[f][:, s_i, int(action[f])]) - - for g, _ in enumerate(o): - o[g] = utils.sample(A_gp[g][:, s[0], s[1]]) - - print(np.argmax(s)) - print(f"{t}: Action: {action} / State: {s}") diff --git a/examples/building_up_agent_loop.ipynb b/examples/building_up_agent_loop.ipynb deleted file mode 100644 index cdb45e55..00000000 --- a/examples/building_up_agent_loop.ipynb +++ /dev/null @@ -1,182 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import jax.numpy as jnp\n", - "import jax.tree_util as jtu\n", - "from jax import random as jr\n", - "from pymdp.jax.agent import Agent as AIFAgent\n", - "from pymdp.utils import random_A_matrix, random_B_matrix" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(2, 10, 5, 4)\n", - "[1 1]\n", - "(10, 3, 3, 3)\n", - "(10, 3, 3, 2)\n" - ] - } - ], - "source": [ - "def scan(f, init, xs, length=None, axis=0):\n", - " if xs is None:\n", - " xs = [None] * length\n", - " carry = init\n", - " ys = []\n", - " for x in xs:\n", - " carry, y = f(carry, x)\n", - " if y is not None:\n", - " ys.append(y)\n", - " \n", - " ys = None if len(ys) < 1 else jtu.tree_map(lambda *x: jnp.stack(x,axis=axis), *ys)\n", - "\n", - " return carry, ys\n", - "\n", - "def evolve_trials(agent, env, block_idx, num_timesteps, prng_key=jr.PRNGKey(0)):\n", - "\n", - " batch_keys = jr.split(prng_key, batch_size)\n", - " def step_fn(carry, xs):\n", - " actions = carry['actions']\n", - " outcomes = carry['outcomes']\n", - " beliefs = agent.infer_states(outcomes, actions, *carry['args'])\n", - " q_pi, _ = agent.infer_policies(beliefs)\n", - " actions_t = agent.sample_action(q_pi, rng_key=batch_keys)\n", - "\n", - " outcome_t = env.step(actions_t)\n", - " outcomes = jtu.tree_map(\n", - " lambda prev_o, new_o: jnp.concatenate([prev_o, jnp.expand_dims(new_o, -1)], -1), outcomes, outcome_t\n", - " )\n", - "\n", - " if actions is not None:\n", - " actions = jnp.concatenate([actions, jnp.expand_dims(actions_t, -2)], -2)\n", - " else:\n", - " actions = jnp.expand_dims(actions_t, -2)\n", - "\n", - " args = agent.update_empirical_prior(actions_t, beliefs)\n", - "\n", - " ### @ NOTE !!!!: Shape of policy_probs = (num_blocks, num_trials, batch_size, num_policies) if scan axis = 0, but size of `actions` will \n", - " ### be (num_blocks, batch_size, num_trials, num_controls) -- so we need to 1) swap axes to both to have the same first three dimensiosn aligned,\n", - " # 2) use the action indices (the integers stored in the last dimension of `actions`) to index into the policy_probs array\n", - " \n", - " # args = (pred_{t+1}, [post_1, post_{2}, ..., post_{t}])\n", - " # beliefs = [post_1, post_{2}, ..., post_{t}]\n", - " return {'args': args, 'outcomes': outcomes, 'beliefs': beliefs, 'actions': actions}, {'policy_probs': q_pi}\n", - "\n", - " \n", - " outcome_0 = jtu.tree_map(lambda x: jnp.expand_dims(x, -1), env.step())\n", - " # qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, -2), agent.D) # add a time dimension to the initial state prior\n", - " init = {\n", - " 'args': (agent.D, None,),\n", - " 'outcomes': outcome_0, \n", - " 'beliefs': [],\n", - " 'actions': None\n", - " }\n", - " last, q_pis_ = scan(step_fn, init, range(num_timesteps), axis=1)\n", - "\n", - " return last, q_pis_, env\n", - "\n", - "def step_fn(carry, block_idx):\n", - " agent, env = carry\n", - " output, q_pis_, env = evolve_trials(agent, env, block_idx, num_timesteps)\n", - " args = output.pop('args')\n", - " output['beliefs'] = agent.infer_states(output['outcomes'], output['actions'], *args)\n", - " output.update(q_pis_)\n", - "\n", - " # How to deal with contiguous blocks of trials? Two options we can imagine: \n", - " # A) you use final posterior (over current and past timesteps) to compute the smoothing distribution over qs_{t=0} and update pD, and then pass pD as the initial state prior ($D = \\mathbb{E}_{pD}[qs_{t=0}]$);\n", - " # B) we don't assume that blocks 'reset time', and are really just adjacent chunks of one long sequence, so you set the initial state prior to be the final output (`output['beliefs']`) passed through\n", - " # the transition model entailed by the action taken at the last timestep of the previous block.\n", - " # print(output['beliefs'].shape)\n", - " agent = agent.learning(**output)\n", - " \n", - " return (agent, env), output\n", - "\n", - "# define an agent and environment here\n", - "batch_size = 10\n", - "num_obs = [3, 3]\n", - "num_states = [3, 3]\n", - "num_controls = [2, 2]\n", - "num_blocks = 2\n", - "num_timesteps = 5\n", - "\n", - "A_np = random_A_matrix(num_obs=num_obs, num_states=num_states)\n", - "B_np = random_B_matrix(num_states=num_states, num_controls=num_controls)\n", - "A = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), list(A_np))\n", - "B = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), list(B_np))\n", - "C = [jnp.zeros((batch_size, no)) for no in num_obs]\n", - "D = [jnp.ones((batch_size, ns)) / ns for ns in num_states]\n", - "E = jnp.ones((batch_size, 4 )) / 4 \n", - "\n", - "pA = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), list(A_np))\n", - "pB = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), list(B_np))\n", - "\n", - "class TestEnv:\n", - " def __init__(self, num_obs, prng_key=jr.PRNGKey(0)):\n", - " self.num_obs=num_obs\n", - " self.key = prng_key\n", - " def step(self, actions=None):\n", - " # return a list of random observations for each agent or parallel realization (each entry in batch_dim)\n", - " obs = [jr.randint(self.key, (batch_size,), 0, no) for no in self.num_obs]\n", - " self.key, _ = jr.split(self.key)\n", - " return obs\n", - "\n", - "agents = AIFAgent(A, B, C, D, E, pA, pB, use_param_info_gain=True, use_inductive=False, inference_algo='fpi', sampling_mode='marginal', action_selection='stochastic')\n", - "env = TestEnv(num_obs)\n", - "init = (agents, env)\n", - "(agents, env), sequences = scan(step_fn, init, range(num_blocks) )\n", - "print(sequences['policy_probs'].shape)\n", - "print(sequences['actions'][0][0][0])\n", - "print(agents.A[0].shape)\n", - "print(agents.B[0].shape)\n", - "# def loss_fn(agents):\n", - "# env = TestEnv(num_obs)\n", - "# init = (agents, env)\n", - "# (agents, env), sequences = scan(step_fn, init, range(num_blocks)) \n", - "\n", - "# return jnp.sum(jnp.log(sequences['policy_probs']))\n", - "\n", - "# dLoss_dAgents = jax.grad(loss_fn)(agents)\n", - "# print(dLoss_dAgents.A[0].shape)\n", - "\n", - "\n", - "# sequences = jtu.tree_map(lambda x: x.swapaxes(1, 2), sequences)\n", - "\n", - "# NOTE: all elements of sequences will have dimensionality blocks, trials, batch_size, ...\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "jax_pymdp_test", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.6" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/examples/knapsack_demo.ipynb b/examples/envs/knapsack_demo.ipynb similarity index 100% rename from examples/knapsack_demo.ipynb rename to examples/envs/knapsack_demo.ipynb diff --git a/examples/inductive_inference_example.ipynb b/examples/inductive_inference/inductive_inference_example.ipynb similarity index 100% rename from examples/inductive_inference_example.ipynb rename to examples/inductive_inference/inductive_inference_example.ipynb diff --git a/examples/inductive_inference_gridworld.ipynb b/examples/inductive_inference/inductive_inference_gridworld.ipynb similarity index 100% rename from examples/inductive_inference_gridworld.ipynb rename to examples/inductive_inference/inductive_inference_gridworld.ipynb diff --git a/examples/agent_demo.ipynb b/examples/legacy/agent_demo.ipynb similarity index 100% rename from examples/agent_demo.ipynb rename to examples/legacy/agent_demo.ipynb diff --git a/examples/free_energy_calculation.ipynb b/examples/legacy/free_energy_calculation.ipynb similarity index 100% rename from examples/free_energy_calculation.ipynb rename to examples/legacy/free_energy_calculation.ipynb diff --git a/examples/gridworld_tutorial_1.ipynb b/examples/legacy/gridworld_tutorial_1.ipynb similarity index 100% rename from examples/gridworld_tutorial_1.ipynb rename to examples/legacy/gridworld_tutorial_1.ipynb diff --git a/examples/gridworld_tutorial_2.ipynb b/examples/legacy/gridworld_tutorial_2.ipynb similarity index 100% rename from examples/gridworld_tutorial_2.ipynb rename to examples/legacy/gridworld_tutorial_2.ipynb diff --git a/examples/tmaze_demo.ipynb b/examples/legacy/tmaze_demo.ipynb similarity index 100% rename from examples/tmaze_demo.ipynb rename to examples/legacy/tmaze_demo.ipynb diff --git a/examples/tmaze_learning_demo.ipynb b/examples/legacy/tmaze_learning_demo.ipynb similarity index 100% rename from examples/tmaze_learning_demo.ipynb rename to examples/legacy/tmaze_learning_demo.ipynb diff --git a/examples/model_inversion.ipynb b/examples/model_fitting/model_inversion.ipynb similarity index 100% rename from examples/model_inversion.ipynb rename to examples/model_fitting/model_inversion.ipynb diff --git a/examples/tmp_dir/my_a_matrix.xlsx b/examples/tmp_dir/my_a_matrix.xlsx deleted file mode 100644 index 29108dcb6fbc6ec17ced7ca793699d4266bfc657..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9043 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 my_agent = Agent(A = A, B = C, ) >>> observation = env.step(initial_action) >>> qs = my_agent.infer_states(observation) - >>> q_pi, G = my_agent.infer_policies() + >>> q_pi, G = my_agent.infer_policies(qs) >>> next_action = my_agent.sample_action() >>> next_observation = env.step(next_action) @@ -30,589 +36,401 @@ class Agent(object): observations and takes actions as inputs, would entail a dynamic agent-environment interaction. """ + A: List[Array] + B: List[Array] + C: List[Array] + D: List[Array] + E: Array + pA: List[Array] + pB: List[Array] + gamma: Array + alpha: Array + + # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) + inductive_threshold: Array + # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) + inductive_epsilon: Array + # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints + H: List[Array] + # I matrices (one per hidden state factor) used for inductive inference -- these encode the 'reachability' matrices of goal states encoded in `self.H` + I: List[Array] + # static parameters not leaves of the PyTree + A_dependencies: Optional[List] = field(static=True) + B_dependencies: Optional[List] = field(static=True) + B_action_dependencies: Optional[List] = field(static=True) + # mapping from multi action dependencies to flat action dependencies for each B + action_maps: List[dict] = field(static=True) + batch_size: int = field(static=True) + num_iter: int = field(static=True) + num_obs: List[int] = field(static=True) + num_modalities: int = field(static=True) + num_states: List[int] = field(static=True) + num_factors: int = field(static=True) + num_controls: List[int] = field(static=True) + # Used to store original action dimensions in case there are multiple action dependencies per state + num_controls_multi: List[int] = field(static=True) + control_fac_idx: Optional[List[int]] = field(static=True) + # depth of planning during roll-outs (i.e. number of timesteps to look ahead when computing expected free energy of policies) + policy_len: int = field(static=True) + # depth of inductive inference (i.e. number of future timesteps to use when computing inductive `I` matrix) + inductive_depth: int = field(static=True) + # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) + policies: Array = field(static=True) + # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy + use_utility: bool = field(static=True) + # flag for whether to use state information gain ("salience") when computing expected free energy + use_states_info_gain: bool = field(static=True) + # flag for whether to use parameter information gain ("novelty") when computing expected free energy + use_param_info_gain: bool = field(static=True) + # flag for whether to use inductive inference ("intentional inference") when computing expected free energy + use_inductive: bool = field(static=True) + onehot_obs: bool = field(static=True) + # determinstic or stochastic action selection + action_selection: str = field(static=True) + # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") + sampling_mode: str = field(static=True) + # fpi, vmp, mmp, ovf + inference_algo: str = field(static=True) + + learn_A: bool = field(static=True) + learn_B: bool = field(static=True) + learn_C: bool = field(static=True) + learn_D: bool = field(static=True) + learn_E: bool = field(static=True) + def __init__( self, - A, - B, - C=None, - D=None, - E=None, - H=None, + A: Union[List[Array], List[Distribution]], + B: Union[List[Array], List[Distribution]], + C: Optional[List[Array]] = None, + D: Optional[List[Array]] = None, + E: Optional[Array] = None, pA=None, pB=None, - pD=None, + H=None, + I=None, + A_dependencies=None, + B_dependencies=None, + B_action_dependencies=None, num_controls=None, - policy_len=1, - inference_horizon=1, control_fac_idx=None, + policy_len=1, policies=None, - gamma=16.0, - alpha=16.0, + gamma=1.0, + alpha=1.0, + inductive_depth=1, + inductive_threshold=0.1, + inductive_epsilon=1e-3, use_utility=True, use_states_info_gain=True, use_param_info_gain=False, + use_inductive=False, + onehot_obs=False, action_selection="deterministic", - sampling_mode = "marginal", # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") - inference_algo="VANILLA", - inference_params=None, - modalities_to_learn="all", - lr_pA=1.0, - factors_to_learn="all", - lr_pB=1.0, - lr_pD=1.0, - use_BMA=True, - policy_sep_prior=False, - save_belief_hist=False, - A_factor_list=None, - B_factor_list=None, - sophisticated=False, - si_horizon=3, - si_policy_prune_threshold=1/16, - si_state_prune_threshold=1/16, - si_prune_penalty=512, - ii_depth=10, - ii_threshold=1/16, + sampling_mode="full", + inference_algo="fpi", + num_iter=16, + apply_batch=True, + learn_A=True, + learn_B=True, + learn_C=False, + learn_D=True, + learn_E=False, ): + if B_action_dependencies is not None: + assert num_controls is not None, "Please specify num_controls for complex action dependencies" + + # extract high level variables + self.num_modalities = len(A) + self.num_factors = len(B) + self.num_controls = num_controls + self.num_controls_multi = num_controls + + # extract dependencies for A and B matrices + ( + self.A_dependencies, + self.B_dependencies, + self.B_action_dependencies, + ) = self._construct_dependencies(A_dependencies, B_dependencies, B_action_dependencies, A, B) + + # extract A, B, C and D tensors from optional Distributions + A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] + B = [jnp.array(b.data) if isinstance(b, Distribution) else b for b in B] + if C is not None: + C = [jnp.array(c.data) if isinstance(c, Distribution) else c for c in C] + if D is not None: + D = [jnp.array(d.data) if isinstance(d, Distribution) else d for d in D] + if E is not None: + E = jnp.array(E.data) if isinstance(E, Distribution) else E + if H is not None: + H = [jnp.array(h.data) if isinstance(h, Distribution) else h for h in H] + + self.batch_size = A[0].shape[0] if not apply_batch else 1 + + # flatten B action dims for multiple action dependencies + self.action_maps = None + self.num_controls_multi = num_controls + if ( + B_action_dependencies is not None + ): # note, this only works when B_action_dependencies is not the trivial case of [[0], [1], ...., [num_factors-1]] + policies_multi = control.construct_policies( + self.num_controls_multi, + self.num_controls_multi, + policy_len, + control_fac_idx, + ) + B, self.action_maps = self._flatten_B_action_dims(B, self.B_action_dependencies) + policies = self._construct_flattend_policies(policies_multi, self.action_maps) + self.sampling_mode = "full" + + # extract shapes from A and B + batch_dim_fn = lambda x: x.shape[0] if apply_batch else x.shape[1] + self.num_states = jtu.tree_map(batch_dim_fn, B) + self.num_obs = jtu.tree_map(batch_dim_fn, A) + self.num_controls = [B[f].shape[-1] for f in range(self.num_factors)] - ### Constant parameters ### + # static parameters + self.num_iter = num_iter + self.inference_algo = inference_algo + self.inductive_depth = inductive_depth # policy parameters self.policy_len = policy_len - self.gamma = gamma - self.alpha = alpha self.action_selection = action_selection self.sampling_mode = sampling_mode self.use_utility = use_utility self.use_states_info_gain = use_states_info_gain self.use_param_info_gain = use_param_info_gain + self.use_inductive = use_inductive # learning parameters - self.modalities_to_learn = modalities_to_learn - self.lr_pA = lr_pA - self.factors_to_learn = factors_to_learn - self.lr_pB = lr_pB - self.lr_pD = lr_pD - - # sophisticated inference parameters - self.sophisticated = sophisticated - if self.sophisticated: - assert self.policy_len == 1, "Sophisticated inference only works with policy_len = 1" - self.si_horizon = si_horizon - self.si_policy_prune_threshold = si_policy_prune_threshold - self.si_state_prune_threshold = si_state_prune_threshold - self.si_prune_penalty = si_prune_penalty - - # Initialise observation model (A matrices) - if not isinstance(A, np.ndarray): - raise TypeError( - 'A matrix must be a numpy array' - ) - - self.A = utils.to_obj_array(A) - - assert utils.is_normalized(self.A), "A matrix is not normalized (i.e. A[m].sum(axis = 0) must all equal 1.0 for all modalities)" - - # Determine number of observation modalities and their respective dimensions - self.num_obs = [self.A[m].shape[0] for m in range(len(self.A))] - self.num_modalities = len(self.num_obs) + self.learn_A = learn_A + self.learn_B = learn_B + self.learn_C = learn_C + self.learn_D = learn_D + self.learn_E = learn_E - # Assigning prior parameters on observation model (pA matrices) - self.pA = pA - - # Initialise transition model (B matrices) - if not isinstance(B, np.ndarray): - raise TypeError( - 'B matrix must be a numpy array' - ) - - self.B = utils.to_obj_array(B) - - assert utils.is_normalized(self.B), "B matrix is not normalized (i.e. B[f].sum(axis = 0) must all equal 1.0 for all factors)" - - # Determine number of hidden state factors and their dimensionalities - self.num_states = [self.B[f].shape[0] for f in range(len(self.B))] - self.num_factors = len(self.num_states) - - # Assigning prior parameters on transition model (pB matrices) - self.pB = pB - - # If no `num_controls` are given, then this is inferred from the shapes of the input B matrices - if num_controls == None: - self.num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] - else: - inferred_num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] - assert num_controls == inferred_num_controls, "num_controls must be consistent with the shapes of the input B matrices" - self.num_controls = num_controls - - # checking that `A_factor_list` and `B_factor_list` are consistent with `num_factors`, `num_states`, and lagging dimensions of `A` and `B` tensors - self.factorized = False - if A_factor_list == None: - self.A_factor_list = self.num_modalities * [list(range(self.num_factors))] # defaults to having all modalities depend on all factors - for m in range(self.num_modalities): - factor_dims = tuple([self.num_states[f] for f in self.A_factor_list[m]]) - assert self.A[m].shape[1:] == factor_dims, f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of A{m}..." - if self.pA is not None: - assert self.pA[m].shape[1:] == factor_dims, f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of pA{m}..." - else: - self.factorized = True - for m in range(self.num_modalities): - assert max(A_factor_list[m]) <= (self.num_factors - 1), f"Check modality {m} of A_factor_list - must be consistent with `num_states` and `num_factors`..." - factor_dims = tuple([self.num_states[f] for f in A_factor_list[m]]) - assert self.A[m].shape[1:] == factor_dims, f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of A{m}..." - if self.pA is not None: - assert self.pA[m].shape[1:] == factor_dims, f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of pA{m}..." - self.A_factor_list = A_factor_list - - # generate a list of the modalities that depend on each factor - A_modality_list = [] - for f in range(self.num_factors): - A_modality_list.append( [m for m in range(self.num_modalities) if f in self.A_factor_list[m]] ) - - # Store thee `A_factor_list` and the `A_modality_list` in a Markov blanket dictionary - self.mb_dict = { - 'A_factor_list': self.A_factor_list, - 'A_modality_list': A_modality_list - } - - if B_factor_list == None: - self.B_factor_list = [[f] for f in range(self.num_factors)] # defaults to having all factors depend only on themselves - for f in range(self.num_factors): - factor_dims = tuple([self.num_states[f] for f in self.B_factor_list[f]]) - assert self.B[f].shape[1:-1] == factor_dims, f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B{f}..." - if self.pB is not None: - assert self.pB[f].shape[1:-1] == factor_dims, f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB{f}..." - else: - self.factorized = True - for f in range(self.num_factors): - assert max(B_factor_list[f]) <= (self.num_factors - 1), f"Check factor {f} of B_factor_list - must be consistent with `num_states` and `num_factors`..." - factor_dims = tuple([self.num_states[f] for f in B_factor_list[f]]) - assert self.B[f].shape[1:-1] == factor_dims, f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of B{f}..." - if self.pB is not None: - assert self.pB[f].shape[1:-1] == factor_dims, f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of pB{f}..." - self.B_factor_list = B_factor_list - - # Users have the option to make only certain factors controllable. - # default behaviour is to make all hidden state factors controllable, i.e. `self.num_factors == len(self.num_controls)` + # construct control factor indices if control_fac_idx == None: self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] else: - - assert max(control_fac_idx) <= (self.num_factors - 1), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + msg = "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + assert max(control_fac_idx) <= (self.num_factors - 1), msg self.control_fac_idx = control_fac_idx - for factor_idx in self.control_fac_idx: - assert self.num_controls[factor_idx] > 1, "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" - - # Again, the use can specify a set of possible policies, or - # all possible combinations of actions and timesteps will be considered + # construct policies if policies is None: - policies = self._construct_policies() - self.policies = policies - - assert all([len(self.num_controls) == policy.shape[1] for policy in self.policies]), "Number of control states is not consistent with policy dimensionalities" - - all_policies = np.vstack(self.policies) - - assert all([n_c >= max_action for (n_c, max_action) in zip(self.num_controls, list(np.max(all_policies, axis =0)+1))]), "Maximum number of actions is not consistent with `num_controls`" - - # Construct prior preferences (uniform if not specified) - - if C is not None: - if not isinstance(C, np.ndarray): - raise TypeError( - 'C vector must be a numpy array' - ) - self.C = utils.to_obj_array(C) - - assert len(self.C) == self.num_modalities, f"Check C vector: number of sub-arrays must be equal to number of observation modalities: {self.num_modalities}" - - for modality, c_m in enumerate(self.C): - assert c_m.shape[0] == self.num_obs[modality], f"Check C vector: number of rows of C vector for modality {modality} should be equal to {self.num_obs[modality]}" - else: - self.C = self._construct_C_prior() - - # Construct prior over hidden states (uniform if not specified) - - if D is not None: - if not isinstance(D, np.ndarray): - raise TypeError( - 'D vector must be a numpy array' - ) - self.D = utils.to_obj_array(D) - - assert len(self.D) == self.num_factors, f"Check D vector: number of sub-arrays must be equal to number of hidden state factors: {self.num_factors}" - - for f, d_f in enumerate(self.D): - assert d_f.shape[0] == self.num_states[f], f"Check D vector: number of entries of D vector for factor {f} should be equal to {self.num_states[f]}" + self.policies = control.construct_policies( + self.num_states, + self.num_controls, + self.policy_len, + self.control_fac_idx, + ) else: - if pD is not None: - self.D = utils.norm_dist_obj_arr(pD) - else: - self.D = self._construct_D_prior() - - assert utils.is_normalized(self.D), "D vector is not normalized (i.e. D[f].sum() must all equal 1.0 for all factors)" + self.policies = policies + + # setup pytree leaves A, B, C, D, E, pA, pB, H, I + if apply_batch: + A = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), A) + B = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), B) + + if pA is not None and apply_batch: + pA = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pA) + + if pB is not None and apply_batch: + pB = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pB) + + if C is None: + C = [jnp.ones((self.batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities)] + elif apply_batch: + C = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), C) + + if D is None: + D = [jnp.ones((self.batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors)] + elif apply_batch: + D = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), D) + + if E is None: + E = jnp.ones((self.batch_size, len(self.policies))) / len(self.policies) + elif apply_batch: + E = jnp.broadcast_to(E, (self.batch_size,) + E.shape) + + if H is not None and apply_batch: + H = jtu.tree_map( + lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), + H, + ) - # Assigning prior parameters on initial hidden states (pD vectors) - self.pD = pD + self.A = A + self.B = B + self.C = C + self.D = D + self.E = E + self.H = H + self.I = I + self.pA = pA + self.pB = pB - # Construct prior over policies (uniform if not specified) - if E is not None: - if not isinstance(E, np.ndarray): - raise TypeError( - 'E vector must be a numpy array' - ) - self.E = E + self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) + self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) - assert len(self.E) == len(self.policies), f"Check E vector: length of E must be equal to number of policies: {len(self.policies)}" + self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) + self.inductive_epsilon = jnp.broadcast_to(inductive_epsilon, (self.batch_size,)) - else: - self.E = self._construct_E_prior() - - # Construct I for backwards induction (if H specified) - if H is not None: - self.H = H - self.I = control.backwards_induction(H, B, B_factor_list, threshold=ii_threshold, depth=ii_depth) - else: - self.H = None - self.I = None - - self.edge_handling_params = {} - self.edge_handling_params['use_BMA'] = use_BMA # creates a 'D-like' moving prior - self.edge_handling_params['policy_sep_prior'] = policy_sep_prior # carries forward last timesteps posterior, in a policy-conditioned way - - # use_BMA and policy_sep_prior can both be False, but both cannot be simultaneously be True. If one of them is True, the other must be False - if policy_sep_prior: - if use_BMA: - warnings.warn( - "Inconsistent choice of `policy_sep_prior` and `use_BMA`.\ - You have set `policy_sep_prior` to True, so we are setting `use_BMA` to False" + if self.use_inductive and H is not None: + I = vmap( + partial( + control.generate_I_matrix, + depth=self.inductive_depth, ) - self.edge_handling_params['use_BMA'] = False - - if inference_algo == None: - self.inference_algo = "VANILLA" - self.inference_params = self._get_default_params() - if inference_horizon > 1: - warnings.warn( - "If `inference_algo` is VANILLA, then inference_horizon must be 1\n. \ - Setting inference_horizon to default value of 1...\n" - ) - self.inference_horizon = 1 - else: - self.inference_horizon = 1 + )(H, B, self.inductive_threshold) + elif self.use_inductive and I is not None: + I = I else: - self.inference_algo = inference_algo - self.inference_params = self._get_default_params() - self.inference_horizon = inference_horizon + I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), D) - if save_belief_hist: - self.qs_hist = [] - self.q_pi_hist = [] - - self.prev_obs = [] - self.reset() - - self.action = None - self.prev_actions = None - - def _construct_C_prior(self): - - C = utils.obj_array_zeros(self.num_obs) + self.onehot_obs = onehot_obs - return C + # validate model + self._validate() - def _construct_D_prior(self): + @property + def unique_multiactions(self): + size = pymath.prod(self.num_controls) + return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) - D = utils.obj_array_uniform(self.num_states) - - return D - - def _construct_policies(self): - - policies = control.construct_policies( - self.num_states, self.num_controls, self.policy_len, self.control_fac_idx - ) - - return policies - - def _construct_num_controls(self): - num_controls = control.get_num_controls_from_policies( - self.policies - ) - - return num_controls - - def _construct_E_prior(self): - E = np.ones(len(self.policies)) / len(self.policies) - return E - - def reset(self, init_qs=None): - """ - Resets the posterior beliefs about hidden states of the agent to a uniform distribution, and resets time to first timestep of the simulation's temporal horizon. - Returns the posterior beliefs about hidden states. - - Returns - --------- - qs: ``numpy.ndarray`` of dtype object - Initialized posterior over hidden states. Depending on the inference algorithm chosen and other parameters (such as the parameters stored within ``edge_handling_paramss), - the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `, the indexing structure of ``qs`` is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` - at timepoint ``t_idx``. In this case, the returned ``qs`` will only have entries filled out for the first timestep, i.e. for ``q[p_idx][0]``, for all - policy-indices ``p_idx``. Subsequent entries ``q[:][1, 2, ...]`` will be initialized to empty ``numpy.ndarray`` objects. - """ - - self.curr_timestep = 0 - - if init_qs is None: - if self.inference_algo == 'VANILLA': - self.qs = utils.obj_array_uniform(self.num_states) - else: # in the case you're doing MMP (i.e. you have an inference_horizon > 1), we have to account for policy- and timestep-conditioned posterior beliefs - self.qs = utils.obj_array(len(self.policies)) - for p_i, _ in enumerate(self.policies): - self.qs[p_i] = utils.obj_array(self.inference_horizon + self.policy_len + 1) # + 1 to include belief about current timestep - self.qs[p_i][0] = utils.obj_array_uniform(self.num_states) - - first_belief = utils.obj_array(len(self.policies)) - for p_i, _ in enumerate(self.policies): - first_belief[p_i] = copy.deepcopy(self.D) - - if self.edge_handling_params['policy_sep_prior']: - self.set_latest_beliefs(last_belief = first_belief) - else: - self.set_latest_beliefs(last_belief = self.D) - - else: - self.qs = init_qs - - if self.pA is not None: - self.A = utils.norm_dist_obj_arr(self.pA) - - if self.pB is not None: - self.B = utils.norm_dist_obj_arr(self.pB) - - return self.qs - - def step_time(self): - """ - Advances time by one step. This involves updating the ``self.prev_actions``, and in the case of a moving - inference horizon, this also shifts the history of post-dictive beliefs forward in time (using ``self.set_latest_beliefs()``), - so that the penultimate belief before the beginning of the horizon is correctly indexed. - - Returns - --------- - curr_timestep: ``int`` - The index in absolute simulation time of the current timestep. - """ - - if self.prev_actions is None: - self.prev_actions = [self.action] + def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1., lr_pB=1., **kwargs): + agent = self + beliefs_B = beliefs_A if beliefs_B is None else beliefs_B + if self.inference_algo == 'ovf': + smoothed_marginals_and_joints = vmap(inference.smoothing_ovf)(beliefs_A, self.B, actions) + marginal_beliefs = smoothed_marginals_and_joints[0] + joint_beliefs = smoothed_marginals_and_joints[1] else: - self.prev_actions.append(self.action) - - self.curr_timestep += 1 - - if self.inference_algo == "MMP" and (self.curr_timestep - self.inference_horizon) >= 0: - self.set_latest_beliefs() - - return self.curr_timestep - - def set_latest_beliefs(self,last_belief=None): - """ - Both sets and returns the penultimate belief before the first timestep of the backwards inference horizon. - In the case that the inference horizon includes the first timestep of the simulation, then the ``latest_belief`` is - simply the first belief of the whole simulation, or the prior (``self.D``). The particular structure of the ``latest_belief`` - depends on the value of ``self.edge_handling_params['use_BMA']``. - - Returns - --------- - latest_belief: ``numpy.ndarray`` of dtype object - Penultimate posterior beliefs over hidden states at the timestep just before the first timestep of the inference horizon. - Depending on the value of ``self.edge_handling_params['use_BMA']``, the shape of this output array will differ. - If ``self.edge_handling_params['use_BMA'] == True``, then ``latest_belief`` will be a Bayesian model average - of beliefs about hidden states, where the average is taken with respect to posterior beliefs about policies. - Otherwise, `latest_belief`` will be the full, policy-conditioned belief about hidden states, and will have indexing structure - policies->factors, such that ``latest_belief[p_idx][f_idx]`` refers to the penultimate belief about marginal factor ``f_idx`` - under policy ``p_idx``. - """ - - if last_belief is None: - last_belief = utils.obj_array(len(self.policies)) - for p_i, _ in enumerate(self.policies): - last_belief[p_i] = copy.deepcopy(self.qs[p_i][0]) + marginal_beliefs = beliefs_A + if self.learn_B: + nf = len(beliefs_B) + joint_fn = lambda f: [beliefs_B[f][:, 1:]] + [beliefs_B[f_idx][:, :-1] for f_idx in self.B_dependencies[f]] + joint_beliefs = jtu.tree_map(joint_fn, list(range(nf))) + + if self.learn_A: + update_A = partial( + learning.update_obs_likelihood_dirichlet, + A_dependencies=self.A_dependencies, + num_obs=self.num_obs, + onehot_obs=self.onehot_obs, + ) + + lr = jnp.broadcast_to(lr_pA, (self.batch_size,)) + qA, E_qA = vmap(update_A)( + self.pA, + self.A, + outcomes, + marginal_beliefs, + lr=lr, + ) + + agent = tree_at(lambda x: (x.A, x.pA), agent, (E_qA, qA)) + + if self.learn_B: + assert beliefs_B[0].shape[1] == actions.shape[1] + 1 + update_B = partial( + learning.update_state_transition_dirichlet, + num_controls=self.num_controls + ) - begin_horizon_step = self.curr_timestep - self.inference_horizon - if self.edge_handling_params['use_BMA'] and (begin_horizon_step >= 0): - if hasattr(self, "q_pi_hist"): - self.latest_belief = inference.average_states_over_policies(last_belief, self.q_pi_hist[begin_horizon_step]) # average the earliest marginals together using contemporaneous posterior over policies (`self.q_pi_hist[0]`) + lr = jnp.broadcast_to(lr_pB, (self.batch_size,)) + qB, E_qB = vmap(update_B)( + self.pB, + joint_beliefs, + actions, + lr=lr + ) + + # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece + if self.use_inductive and self.H is not None: + I_updated = vmap(control.generate_I_matrix)(self.H, E_qB, self.inductive_threshold, self.inductive_depth) else: - self.latest_belief = inference.average_states_over_policies(last_belief, self.q_pi) # average the earliest marginals together using posterior over policies (`self.q_pi`) - else: - self.latest_belief = last_belief - - return self.latest_belief - - def get_future_qs(self): - """ - Returns the last ``self.policy_len`` timesteps of each policy-conditioned belief - over hidden states. This is a step of pre-processing that needs to be done before computing - the expected free energy of policies. We do this to avoid computing the expected free energy of - policies using beliefs about hidden states in the past (so-called "post-dictive" beliefs). - - Returns - --------- - future_qs_seq: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states under a policy, in the future. This is a nested ``numpy.ndarray`` object array, with one - sub-array ``future_qs_seq[p_idx]`` for each policy. The indexing structure is policy->timepoint-->factor, so that - ``future_qs_seq[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` - at future timepoint ``t_idx``, relative to the current timestep. - """ - - future_qs_seq = utils.obj_array(len(self.qs)) - for p_idx in range(len(self.qs)): - future_qs_seq[p_idx] = self.qs[p_idx][-(self.policy_len+1):] # this grabs only the last `policy_len`+1 beliefs about hidden states, under each policy - - return future_qs_seq + I_updated = self.I + agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) - def infer_states(self, observation, distr_obs=False): + return agent + + def infer_states(self, observations, empirical_prior, *, past_actions=None, qs_hist=None, mask=None): """ Update approximate posterior over hidden states by solving variational inference problem, given an observation. Parameters ---------- - observation: ``list`` or ``tuple`` of ints - The observation input. Each entry ``observation[m]`` stores the index of the discrete - observation for modality ``m``. - distr_obs: ``bool`` - Whether the observation is a distribution over possible observations, rather than a single observation. - + observations: ``list`` or ``tuple`` of ints + The observation input. Each entry ``observation[m]`` stores one-hot vectors representing the observations for modality ``m``. + past_actions: ``list`` or ``tuple`` of ints + The action input. Each entry ``past_actions[f]`` stores indices (or one-hots?) representing the actions for control factor ``f``. + empirical_prior: ``list`` or ``tuple`` of ``jax.numpy.ndarray`` of dtype object + Empirical prior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``empirical_prior`` variable may be a matrix (or list of matrices) + of additional dimensions to encode extra conditioning variables like timepoint and policy. Returns --------- qs: ``numpy.ndarray`` of dtype object Posterior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` at timepoint ``t_idx``. """ - observation = tuple(observation) if not distr_obs else observation - - if not hasattr(self, "qs"): - self.reset() - - if self.inference_algo == "VANILLA": - if self.action is not None: - empirical_prior = control.get_expected_states_interactions( - self.qs, self.B, self.B_factor_list, self.action.reshape(1, -1) - )[0] - else: - empirical_prior = self.D - qs = inference.update_posterior_states_factorized( - self.A, - observation, - self.num_obs, - self.num_states, - self.mb_dict, - empirical_prior, - **self.inference_params - ) - elif self.inference_algo == "MMP": - - self.prev_obs.append(observation) - if len(self.prev_obs) > self.inference_horizon: - latest_obs = self.prev_obs[-self.inference_horizon:] - latest_actions = self.prev_actions[-(self.inference_horizon-1):] - else: - latest_obs = self.prev_obs - latest_actions = self.prev_actions - - qs, F = inference.update_posterior_states_full_factorized( - self.A, - self.mb_dict, - self.B, - self.B_factor_list, - latest_obs, - self.policies, - latest_actions, - prior = self.latest_belief, - policy_sep_prior = self.edge_handling_params['policy_sep_prior'], - **self.inference_params - ) - - self.F = F # variational free energy of each policy - - if hasattr(self, "qs_hist"): - self.qs_hist.append(qs) - self.qs = qs - - return qs - - def _infer_states_test(self, observation, distr_obs=False): - """ - Test version of ``infer_states()`` that additionally returns intermediate variables of MMP, such as - the prediction errors and intermediate beliefs from the optimization. Used for benchmarking against SPM outputs. - """ - observation = tuple(observation) if not distr_obs else observation - - if not hasattr(self, "qs"): - self.reset() - - if self.inference_algo == "VANILLA": - if self.action is not None: - empirical_prior = control.get_expected_states( - self.qs, self.B, self.action.reshape(1, -1) - )[0] - else: - empirical_prior = self.D - qs = inference.update_posterior_states( - self.A, - observation, - empirical_prior, - **self.inference_params - ) - elif self.inference_algo == "MMP": - - self.prev_obs.append(observation) - if len(self.prev_obs) > self.inference_horizon: - latest_obs = self.prev_obs[-self.inference_horizon:] - latest_actions = self.prev_actions[-(self.inference_horizon-1):] - else: - latest_obs = self.prev_obs - latest_actions = self.prev_actions - - qs, F, xn, vn = inference._update_posterior_states_full_test( - self.A, - self.B, - latest_obs, - self.policies, - latest_actions, - prior = self.latest_belief, - policy_sep_prior = self.edge_handling_params['policy_sep_prior'], - **self.inference_params - ) - - self.F = F # variational free energy of each policy + # TODO: infer this from shapes + if not self.onehot_obs: + o_vec = [nn.one_hot(o, self.num_obs[m]) for m, o in enumerate(observations)] + else: + o_vec = observations + + A = self.A + if mask is not None: + for i, m in enumerate(mask): + o_vec[i] = m * o_vec[i] + (1 - m) * jnp.ones_like(o_vec[i]) / self.num_obs[i] + A[i] = m * A[i] + (1 - m) * jnp.ones_like(A[i]) / self.num_obs[i] + + infer_states = partial( + inference.update_posterior_states, + A_dependencies=self.A_dependencies, + B_dependencies=self.B_dependencies, + num_iter=self.num_iter, + method=self.inference_algo, + ) + + output = vmap(infer_states)( + A, + self.B, + o_vec, + past_actions, + prior=empirical_prior, + qs_hist=qs_hist + ) - if hasattr(self, "qs_hist"): - self.qs_hist.append(qs) + return output - self.qs = qs + def update_empirical_prior(self, action, qs): + # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t - if self.inference_algo == "MMP": - return qs, xn, vn + # this computation of the predictive prior is correct only for fully factorised Bs. + if self.inference_algo in ['mmp', 'vmp']: + # in the case of the 'mmp' or 'vmp' we have to use D as prior parameter for infer states + pred = self.D else: - return qs - - def infer_policies(self): + qs_last = jtu.tree_map( lambda x: x[:, -1], qs) + propagate_beliefs = partial(control.compute_expected_state, B_dependencies=self.B_dependencies) + pred = vmap(propagate_beliefs)(qs_last, self.B, action) + + return (pred, qs) + + def infer_policies(self, qs: List): """ Perform policy inference by optimizing a posterior (categorical) distribution over policies. This distribution is computed as the softmax of ``G * gamma + lnE`` where ``G`` is the negative expected free energy of policies, ``gamma`` is a policy precision and ``lnE`` is the (log) prior probability of policies. This function returns the posterior over policies as well as the negative expected free energy of each policy. - In this version of the function, the expected free energy of policies is computed using known factorized structure - in the model, which speeds up computation (particular the state information gain calculations). Returns ---------- @@ -622,311 +440,194 @@ def infer_policies(self): Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. """ - if self.inference_algo == "VANILLA": - if self.sophisticated: - q_pi, G = control.sophisticated_inference_search( - self.qs, - self.policies, - self.A, - self.B, - self.C, - self.A_factor_list, - self.B_factor_list, - self.I, - self.si_horizon, - self.si_policy_prune_threshold, - self.si_state_prune_threshold, - self.si_prune_penalty, - 1.0, - self.inference_params, - n=0 - ) - else: - q_pi, G = control.update_posterior_policies_factorized( - self.qs, - self.A, - self.B, - self.C, - self.A_factor_list, - self.B_factor_list, - self.policies, - self.use_utility, - self.use_states_info_gain, - self.use_param_info_gain, - self.pA, - self.pB, - E = self.E, - I = self.I, - gamma = self.gamma - ) - elif self.inference_algo == "MMP": - - future_qs_seq = self.get_future_qs() - - q_pi, G = control.update_posterior_policies_full_factorized( - future_qs_seq, - self.A, - self.B, - self.C, - self.A_factor_list, - self.B_factor_list, - self.policies, - self.use_utility, - self.use_states_info_gain, - self.use_param_info_gain, - self.latest_belief, - self.pA, - self.pB, - F=self.F, - E=self.E, - I=self.I, - gamma=self.gamma - ) + latest_belief = jtu.tree_map(lambda x: x[:, -1], qs) # only get the posterior belief held at the current timepoint + infer_policies = partial( + control.update_posterior_policies_inductive, + self.policies, + A_dependencies=self.A_dependencies, + B_dependencies=self.B_dependencies, + use_utility=self.use_utility, + use_states_info_gain=self.use_states_info_gain, + use_param_info_gain=self.use_param_info_gain, + use_inductive=self.use_inductive + ) - if hasattr(self, "q_pi_hist"): - self.q_pi_hist.append(q_pi) - if len(self.q_pi_hist) > self.inference_horizon: - self.q_pi_hist = self.q_pi_hist[-(self.inference_horizon-1):] + q_pi, G = vmap(infer_policies)( + latest_belief, + self.A, + self.B, + self.C, + self.E, + self.pA, + self.pB, + I = self.I, + gamma=self.gamma, + inductive_epsilon=self.inductive_epsilon + ) - self.q_pi = q_pi - self.G = G return q_pi, G - - def sample_action(self): + + def multiaction_probabilities(self, q_pi: Array): """ - Sample or select a discrete action from the posterior over control states. - This function both sets or cachés the action as an internal variable with the agent and returns it. - This function also updates time variable (and thus manages consequences of updating the moving reference frame of beliefs) - using ``self.step_time()``. + Compute probabilities of unique multi-actions from the posterior over policies. + + Parameters + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - Returns ---------- - action: 1D ``numpy.ndarray`` - Vector containing the indices of the actions for each control factor + multi-action: 1D ``jax.numpy.ndarray`` + Vector containing probabilities of possible multi-actions for different factors """ if self.sampling_mode == "marginal": - action = control.sample_action( - self.q_pi, self.policies, self.num_controls, action_selection = self.action_selection, alpha = self.alpha - ) - elif self.sampling_mode == "full": - action = control.sample_policy(self.q_pi, self.policies, self.num_controls, - action_selection=self.action_selection, alpha=self.alpha) + get_marginals = partial(control.get_marginals, policies=self.policies, num_controls=self.num_controls) + marginals = get_marginals(q_pi) + outer = lambda a, b: jnp.outer(a, b).reshape(-1) + marginals = jtu.tree_reduce(outer, marginals) - self.action = action + elif self.sampling_mode == "full": + locs = jnp.all( + self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), + -1, + ) + get_marginals = lambda x: jnp.where(locs, x, 0.).sum(-1) + marginals = vmap(get_marginals)(q_pi) - self.step_time() + return marginals - return action - - def _sample_action_test(self): + def sample_action(self, q_pi: Array, rng_key=None): """ Sample or select a discrete action from the posterior over control states. - This function both sets or cachés the action as an internal variable with the agent and returns it. - This function also updates time variable (and thus manages consequences of updating the moving reference frame of beliefs) - using ``self.step_time()``. Returns ---------- - action: 1D ``numpy.ndarray`` + action: 1D ``jax.numpy.ndarray`` Vector containing the indices of the actions for each control factor + action_probs: 2D ``jax.numpy.ndarray`` + Array of action probabilities """ + if (rng_key is None) and (self.action_selection == "stochastic"): + raise ValueError("Please provide a random number generator key to sample actions stochastically") if self.sampling_mode == "marginal": - action, p_dist = control._sample_action_test(self.q_pi, self.policies, self.num_controls, - action_selection=self.action_selection, alpha=self.alpha) + sample_action = partial(control.sample_action, self.policies, self.num_controls, action_selection=self.action_selection) + action = vmap(sample_action)(q_pi, alpha=self.alpha, rng_key=rng_key) elif self.sampling_mode == "full": - action, p_dist = control._sample_policy_test(self.q_pi, self.policies, self.num_controls, - action_selection=self.action_selection, alpha=self.alpha) - - self.action = action - - self.step_time() - - return action, p_dist + sample_policy = partial(control.sample_policy, self.policies, action_selection=self.action_selection) + action = vmap(sample_policy)(q_pi, alpha=self.alpha, rng_key=rng_key) - def update_A(self, obs): - """ - Update approximate posterior beliefs about Dirichlet parameters that parameterise the observation likelihood or ``A`` array. - - Parameters - ---------- - observation: ``list`` or ``tuple`` of ints - The observation input. Each entry ``observation[m]`` stores the index of the discrete - observation for modality ``m``. - - Returns - ----------- - qA: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. - """ - - qA = learning.update_obs_likelihood_dirichlet_factorized( - self.pA, - self.A, - obs, - self.qs, - self.A_factor_list, - self.lr_pA, - self.modalities_to_learn - ) - - self.pA = qA # set new prior to posterior - self.A = utils.norm_dist_obj_arr(qA) # take expected value of posterior Dirichlet parameters to calculate posterior over A array - - return qA - - def _update_A_old(self, obs): - """ - Update approximate posterior beliefs about Dirichlet parameters that parameterise the observation likelihood or ``A`` array. - - Parameters - ---------- - observation: ``list`` or ``tuple`` of ints - The observation input. Each entry ``observation[m]`` stores the index of the discrete - observation for modality ``m``. - - Returns - ----------- - qA: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. - """ - - qA = learning.update_obs_likelihood_dirichlet( - self.pA, - self.A, - obs, - self.qs, - self.lr_pA, - self.modalities_to_learn - ) - - self.pA = qA # set new prior to posterior - self.A = utils.norm_dist_obj_arr(qA) # take expected value of posterior Dirichlet parameters to calculate posterior over A array - - return qA - - def update_B(self, qs_prev): - """ - Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood - - Parameters - ----------- - qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at previous timepoint. - - Returns - ----------- - qB: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. - """ - - qB = learning.update_state_likelihood_dirichlet_interactions( - self.pB, - self.B, - self.action, - self.qs, - qs_prev, - self.B_factor_list, - self.lr_pB, - self.factors_to_learn - ) - - self.pB = qB # set new prior to posterior - self.B = utils.norm_dist_obj_arr(qB) # take expected value of posterior Dirichlet parameters to calculate posterior over B array - - return qB - - def _update_B_old(self, qs_prev): - """ - Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood - - Parameters - ----------- - qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at previous timepoint. + return action - Returns - ----------- - qB: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. - """ - - qB = learning.update_state_likelihood_dirichlet( - self.pB, - self.B, - self.action, - self.qs, - qs_prev, - self.lr_pB, - self.factors_to_learn - ) - - self.pB = qB # set new prior to posterior - self.B = utils.norm_dist_obj_arr(qB) # take expected value of posterior Dirichlet parameters to calculate posterior over B array + def decode_multi_actions(self, action): + """Decode flattened actions to multiple actions""" + if self.action_maps is None: + return action + + action_multi = jnp.zeros((self.batch_size, len(self.num_controls_multi))).astype(action.dtype) + for f, action_map in enumerate(self.action_maps): + if action_map["multi_dependency"] == []: + continue + + action_multi_f = utils.index_to_combination(action[..., f], action_map["multi_dims"]) + action_multi = action_multi.at[..., action_map["multi_dependency"]].set(action_multi_f) + return action_multi + + def encode_multi_actions(self, action_multi): + """Encode multiple actions to flattened actions""" + if self.action_maps is None: + return action_multi + + action = jnp.zeros((self.batch_size, len(self.num_controls))).astype(action_multi.dtype) + for f, action_map in enumerate(self.action_maps): + if action_map["multi_dependency"] == []: + action = action.at[..., f].set(jnp.zeros_like(action_multi[..., 0])) + continue + + action_f = utils.get_combination_index( + action_multi[..., action_map["multi_dependency"]], + action_map["multi_dims"], + ) + action = action.at[..., f].set(action_f) + return action - return qB - - def update_D(self, qs_t0 = None): - """ - Update Dirichlet parameters of the initial hidden state distribution - (prior beliefs about hidden states at the beginning of the inference window). + def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_dependencies, A, B): + if A_dependencies is not None: + A_dependencies = A_dependencies + elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): + A_dependencies, _ = get_dependencies(A, B) + else: + A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] - Parameters - ----------- - qs_t0: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, or ``None`` - Marginal posterior beliefs over hidden states at current timepoint. If ``None``, the - value of ``qs_t0`` is set to ``self.qs_hist[0]`` (i.e. the initial hidden state beliefs at the first timepoint). - If ``self.inference_algo == "MMP"``, then ``qs_t0`` is set to be the Bayesian model average of beliefs about hidden states - at the first timestep of the backwards inference horizon, where the average is taken with respect to posterior beliefs about policies. - - Returns - ----------- - qD: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs_t0``), after having updated it with state beliefs. - """ - - if self.inference_algo == "VANILLA": - - if qs_t0 is None: - - try: - qs_t0 = self.qs_hist[0] - except ValueError: - print("qs_t0 must either be passed as argument to `update_D` or `save_belief_hist` must be set to True!") - - elif self.inference_algo == "MMP": - - if self.edge_handling_params['use_BMA']: - qs_t0 = self.latest_belief - elif self.edge_handling_params['policy_sep_prior']: - - qs_pi_t0 = self.latest_belief - - # get beliefs about policies at the time at the beginning of the inference horizon - if hasattr(self, "q_pi_hist"): - begin_horizon_step = max(0, self.curr_timestep - self.inference_horizon) - q_pi_t0 = np.copy(self.q_pi_hist[begin_horizon_step]) - else: - q_pi_t0 = np.copy(self.q_pi) - - qs_t0 = inference.average_states_over_policies(qs_pi_t0,q_pi_t0) # beliefs about hidden states at the first timestep of the inference horizon - - qD = learning.update_state_prior_dirichlet(self.pD, qs_t0, self.lr_pD, factors = self.factors_to_learn) - - self.pD = qD # set new prior to posterior - self.D = utils.norm_dist_obj_arr(qD) # take expected value of posterior Dirichlet parameters to calculate posterior over D array + if B_dependencies is not None: + B_dependencies = B_dependencies + elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): + _, B_dependencies = get_dependencies(A, B) + else: + B_dependencies = [[f] for f in range(self.num_factors)] - return qD + """TODO: check B action shape""" + if B_action_dependencies is not None: + B_action_dependencies = B_action_dependencies + else: + B_action_dependencies = [[f] for f in range(self.num_factors)] + return A_dependencies, B_dependencies, B_action_dependencies + + def _flatten_B_action_dims(self, B, B_action_dependencies): + assert hasattr(B[0], "shape"), "Elements of B must be tensors and have attribute shape" + action_maps = [] # mapping from multi action dependencies to flat action dependencies for each B + B_flat = [] + for i, (B_f, action_dependency) in enumerate(zip(B, B_action_dependencies)): + if action_dependency == []: + B_flat.append(jnp.expand_dims(B_f, axis=-1)) + action_maps.append( + { + "multi_dependency": [], + "multi_dims": [], + "flat_dependency": [i], + "flat_dims": [1], + } + ) + continue + + dims = [self.num_controls_multi[d] for d in action_dependency] + target_shape = list(B_f.shape)[: -len(action_dependency)] + [pymath.prod(dims)] + B_flat.append(B_f.reshape(target_shape)) + action_maps.append( + { + "multi_dependency": action_dependency, + "multi_dims": dims, + "flat_dependency": [i], + "flat_dims": [pymath.prod(dims)], + } + ) + return B_flat, action_maps + + def _construct_flattend_policies(self, policies, action_maps): + policies_flat = [] + for action_map in action_maps: + if action_map["multi_dependency"] == []: + policies_flat.append(jnp.zeros_like(policies[..., 0])) + continue + + policies_flat.append( + utils.get_combination_index( + policies[..., action_map["multi_dependency"]], + action_map["multi_dims"], + ) + ) + policies_flat = jnp.stack(policies_flat, axis=-1) + return policies_flat def _get_default_params(self): method = self.inference_algo default_params = None if method == "VANILLA": - default_params = {"num_iter": 10, "dF": 1.0, "dF_tol": 0.001, "compute_vfe": True} + default_params = {"num_iter": 8, "dF": 1.0, "dF_tol": 0.001} elif method == "MMP": - default_params = {"num_iter": 10, "grad_descent": True, "tau": 0.25} + raise NotImplementedError("MMP is not implemented") elif method == "VMP": raise NotImplementedError("VMP is not implemented") elif method == "BP": @@ -938,4 +639,34 @@ def _get_default_params(self): return default_params - \ No newline at end of file + def _validate(self): + for m in range(self.num_modalities): + factor_dims = tuple([self.num_states[f] for f in self.A_dependencies[m]]) + assert ( + self.A[m].shape[2:] == factor_dims + ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." + if self.pA != None: + assert ( + self.pA[m].shape[2:] == factor_dims + ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of pA[{m}]..." + assert max(self.A_dependencies[m]) <= ( + self.num_factors - 1 + ), f"Check modality {m} of `A_dependencies` - must be consistent with `num_states` and `num_factors`..." + + for f in range(self.num_factors): + factor_dims = tuple([self.num_states[f] for f in self.B_dependencies[f]]) + assert ( + self.B[f].shape[2:-1] == factor_dims + ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B[{f}]..." + if self.pB != None: + assert ( + self.pB[f].shape[2:-1] == factor_dims + ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB[{f}]..." + assert max(self.B_dependencies[f]) <= ( + self.num_factors - 1 + ), f"Check factor {f} of `B_dependencies` - must be consistent with `num_states` and `num_factors`..." + + for factor_idx in self.control_fac_idx: + assert ( + self.num_controls[factor_idx] > 1 + ), "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" \ No newline at end of file diff --git a/pymdp/jax/algos.py b/pymdp/algos.py similarity index 98% rename from pymdp/jax/algos.py rename to pymdp/algos.py index 754d10ce..c76ab02c 100644 --- a/pymdp/jax/algos.py +++ b/pymdp/algos.py @@ -5,7 +5,7 @@ # from jax.config import config # config.update("jax_enable_x64", True) -from .maths import compute_log_likelihood, compute_log_likelihood_per_modality, log_stable, MINVAL, factor_dot, factor_dot_flex +from pymdp.maths import compute_log_likelihood, compute_log_likelihood_per_modality, log_stable, MINVAL, factor_dot, factor_dot_flex from typing import Any, List def add(x, y): diff --git a/pymdp/control.py b/pymdp/control.py index ba7a218f..f6966807 100644 --- a/pymdp/control.py +++ b/pymdp/control.py @@ -4,1272 +4,380 @@ # pylint: disable=not-an-iterable import itertools -import numpy as np -from pymdp.maths import softmax, softmax_obj_arr, spm_dot, spm_wnorm, spm_MDP_G, spm_log_single, kl_div, entropy -from pymdp.inference import update_posterior_states_factorized, average_states_over_policies -from pymdp import utils -import copy - -def update_posterior_policies_full( - qs_seq_pi, - A, - B, - C, - policies, - use_utility=True, - use_states_info_gain=True, - use_param_info_gain=False, - prior=None, - pA=None, - pB=None, - F=None, - E=None, - I=None, - gamma=16.0 -): - """ - Update posterior beliefs about policies by computing expected free energy of each policy and integrating that - with the variational free energy of policies ``F`` and prior over policies ``E``. This is intended to be used in conjunction - with the ``update_posterior_states_full`` method of ``inference.py``, since the full posterior over future timesteps, under all policies, is - assumed to be provided in the input array ``qs_seq_pi``. - - Parameters - ---------- - qs_seq_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, - where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - C: ``numpy.ndarray`` of dtype object - Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. - This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - use_utility: ``Bool``, default ``True`` - Boolean flag that determines whether expected utility should be incorporated into computation of EFE. - use_states_info_gain: ``Bool``, default ``True`` - Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. - use_param_info_gain: ``Bool``, default ``False`` - Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. - prior: ``numpy.ndarray`` of dtype object, default ``None`` - If provided, this is a ``numpy`` object array with one sub-array per hidden state factor, that stores the prior beliefs about initial states. - If ``None``, this defaults to a flat (uninformative) prior over hidden states. - pA: ``numpy.ndarray`` of dtype object, default ``None`` - Dirichlet parameters over observation model (same shape as ``A``) - pB: ``numpy.ndarray`` of dtype object, default ``None`` - Dirichlet parameters over transition model (same shape as ``B``) - F: 1D ``numpy.ndarray``, default ``None`` - Vector of variational free energies for each policy - E: 1D ``numpy.ndarray``, default ``None`` - Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits"). If ``None``, this defaults to a flat (uninformative) prior over policies. - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - gamma: ``float``, default 16.0 - Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies - - Returns - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - G: 1D ``numpy.ndarray`` - Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. - """ - - num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) - horizon = len(qs_seq_pi[0]) - num_policies = len(qs_seq_pi) - - qo_seq = utils.obj_array(horizon) - for t in range(horizon): - qo_seq[t] = utils.obj_array_zeros(num_obs) - - # initialise expected observations - qo_seq_pi = utils.obj_array(num_policies) - - # initialize (negative) expected free energies for all policies - G = np.zeros(num_policies) - - if F is None: - F = spm_log_single(np.ones(num_policies) / num_policies) - - if E is None: - lnE = spm_log_single(np.ones(num_policies) / num_policies) - else: - lnE = spm_log_single(E) - - if I is not None: - init_qs_all_pi = [qs_seq_pi[p][0] for p in range(num_policies)] - qs_bma = average_states_over_policies(init_qs_all_pi, softmax(E)) - - for p_idx, policy in enumerate(policies): - - qo_seq_pi[p_idx] = get_expected_obs(qs_seq_pi[p_idx], A) +import jax.numpy as jnp +import jax.tree_util as jtu +from typing import List, Tuple, Optional +from functools import partial +from jax.scipy.special import xlogy +from jax import lax, jit, vmap, nn +from jax import random as jr +from itertools import chain +from jaxtyping import Array - if use_utility: - G[p_idx] += calc_expected_utility(qo_seq_pi[p_idx], C) - - if use_states_info_gain: - G[p_idx] += calc_states_info_gain(A, qs_seq_pi[p_idx]) - - if use_param_info_gain: - if pA is not None: - G[p_idx] += calc_pA_info_gain(pA, qo_seq_pi[p_idx], qs_seq_pi[p_idx]) - if pB is not None: - G[p_idx] += calc_pB_info_gain(pB, qs_seq_pi[p_idx], prior, policy) - - if I is not None: - G[p_idx] += calc_inductive_cost(qs_bma, qs_seq_pi[p_idx], I) +from pymdp.maths import * +# import pymdp.jax.utils as utils - q_pi = softmax(G * gamma - F + lnE) - - return q_pi, G - -def update_posterior_policies_full_factorized( - qs_seq_pi, - A, - B, - C, - A_factor_list, - B_factor_list, - policies, - use_utility=True, - use_states_info_gain=True, - use_param_info_gain=False, - prior=None, - pA=None, - pB=None, - F=None, - E=None, - I=None, - gamma=16.0 -): +def get_marginals(q_pi, policies, num_controls): """ - Update posterior beliefs about policies by computing expected free energy of each policy and integrating that - with the variational free energy of policies ``F`` and prior over policies ``E``. This is intended to be used in conjunction - with the ``update_posterior_states_full`` method of ``inference.py``, since the full posterior over future timesteps, under all policies, is - assumed to be provided in the input array ``qs_seq_pi``. + Computes the marginal posterior(s) over actions by integrating their posterior probability under the policies that they appear within. Parameters ---------- - qs_seq_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, - where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - C: ``numpy.ndarray`` of dtype object - Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. - This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. - A_factor_list: ``list`` of ``list``s of ``int`` - ``list`` that stores the indices of the hidden state factor indices that each observation modality depends on. For example, if ``A_factor_list[m] = [0, 1]``, then - observation modality ``m`` depends on hidden state factors 0 and 1. - B_factor_list: ``list`` of ``list``s of ``int`` - ``list`` that stores the indices of the hidden state factor indices that each hidden state factor depends on. For example, if ``B_factor_list[f] = [0, 1]``, then - the transitions in hidden state factor ``f`` depend on hidden state factors 0 and 1. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - use_utility: ``Bool``, default ``True`` - Boolean flag that determines whether expected utility should be incorporated into computation of EFE. - use_states_info_gain: ``Bool``, default ``True`` - Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. - use_param_info_gain: ``Bool``, default ``False`` - Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. - prior: ``numpy.ndarray`` of dtype object, default ``None`` - If provided, this is a ``numpy`` object array with one sub-array per hidden state factor, that stores the prior beliefs about initial states. - If ``None``, this defaults to a flat (uninformative) prior over hidden states. - pA: ``numpy.ndarray`` of dtype object, default ``None`` - Dirichlet parameters over observation model (same shape as ``A``) - pB: ``numpy.ndarray`` of dtype object, default ``None`` - Dirichlet parameters over transition model (same shape as ``B``) - F: 1D ``numpy.ndarray``, default ``None`` - Vector of variational free energies for each policy - E: 1D ``numpy.ndarray``, default ``None`` - Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits"). If ``None``, this defaults to a flat (uninformative) prior over policies. - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - gamma: ``float``, default 16.0 - Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies - - Returns - ---------- q_pi: 1D ``numpy.ndarray`` Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - G: 1D ``numpy.ndarray`` - Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. - """ - - num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) - horizon = len(qs_seq_pi[0]) - num_policies = len(qs_seq_pi) - - qo_seq = utils.obj_array(horizon) - for t in range(horizon): - qo_seq[t] = utils.obj_array_zeros(num_obs) - - # initialise expected observations - qo_seq_pi = utils.obj_array(num_policies) - - # initialize (negative) expected free energies for all policies - G = np.zeros(num_policies) - - if F is None: - F = spm_log_single(np.ones(num_policies) / num_policies) - - if E is None: - lnE = spm_log_single(np.ones(num_policies) / num_policies) - else: - lnE = spm_log_single(E) - - if I is not None: - init_qs_all_pi = [qs_seq_pi[p][0] for p in range(num_policies)] - qs_bma = average_states_over_policies(init_qs_all_pi, softmax(E)) - - for p_idx, policy in enumerate(policies): - - qo_seq_pi[p_idx] = get_expected_obs_factorized(qs_seq_pi[p_idx], A, A_factor_list) - - if use_utility: - G[p_idx] += calc_expected_utility(qo_seq_pi[p_idx], C) - - if use_states_info_gain: - G[p_idx] += calc_states_info_gain_factorized(A, qs_seq_pi[p_idx], A_factor_list) - - if use_param_info_gain: - if pA is not None: - G[p_idx] += calc_pA_info_gain_factorized(pA, qo_seq_pi[p_idx], qs_seq_pi[p_idx], A_factor_list) - if pB is not None: - G[p_idx] += calc_pB_info_gain_interactions(pB, qs_seq_pi[p_idx], qs_seq_pi[p_idx], B_factor_list, policy) - - if I is not None: - G[p_idx] += calc_inductive_cost(qs_bma, qs_seq_pi[p_idx], I) - - q_pi = softmax(G * gamma - F + lnE) - - return q_pi, G - - -def update_posterior_policies( - qs, - A, - B, - C, - policies, - use_utility=True, - use_states_info_gain=True, - use_param_info_gain=False, - pA=None, - pB=None, - E=None, - I=None, - gamma=16.0 -): - """ - Update posterior beliefs about policies by computing expected free energy of each policy and integrating that - with the prior over policies ``E``. This is intended to be used in conjunction - with the ``update_posterior_states`` method of the ``inference`` module, since only the posterior about the hidden states at the current timestep - ``qs`` is assumed to be provided, unconditional on policies. The predictive posterior over hidden states under all policies Q(s, pi) is computed - using the starting posterior about states at the current timestep ``qs`` and the generative model (e.g. ``A``, ``B``, ``C``) - - Parameters - ---------- - qs: ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint (unconditioned on policies) - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - C: ``numpy.ndarray`` of dtype object - Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. - This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. - use_utility: ``Bool``, default ``True`` - Boolean flag that determines whether expected utility should be incorporated into computation of EFE. - use_states_info_gain: ``Bool``, default ``True`` - Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. - use_param_info_gain: ``Bool``, default ``False`` - Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. - pA: ``numpy.ndarray`` of dtype object, optional - Dirichlet parameters over observation model (same shape as ``A``) - pB: ``numpy.ndarray`` of dtype object, optional - Dirichlet parameters over transition model (same shape as ``B``) - E: 1D ``numpy.ndarray``, optional - Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits") - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - gamma: float, default 16.0 - Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies - + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor. + Returns ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - G: 1D ``numpy.ndarray`` - Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + action_marginals: ``list`` of ``jax.numpy.ndarrays`` + List of arrays corresponding to marginal probability of each action possible action """ + num_factors = len(num_controls) - n_policies = len(policies) - G = np.zeros(n_policies) - q_pi = np.zeros((n_policies, 1)) - - if E is None: - lnE = spm_log_single(np.ones(n_policies) / n_policies) - else: - lnE = spm_log_single(E) - - for idx, policy in enumerate(policies): - qs_pi = get_expected_states(qs, B, policy) - qo_pi = get_expected_obs(qs_pi, A) - - if use_utility: - G[idx] += calc_expected_utility(qo_pi, C) - - if use_states_info_gain: - G[idx] += calc_states_info_gain(A, qs_pi) + action_marginals = [] + for factor_i in range(num_factors): + actions = jnp.arange(num_controls[factor_i])[:, None] + action_marginals.append(jnp.where(actions==policies[:, 0, factor_i], q_pi, 0).sum(-1)) + + return action_marginals - if use_param_info_gain: - if pA is not None: - G[idx] += calc_pA_info_gain(pA, qo_pi, qs_pi).item() - if pB is not None: - G[idx] += calc_pB_info_gain(pB, qs_pi, qs, policy).item() - - if I is not None: - G[idx] += calc_inductive_cost(qs, qs_pi, I) - - q_pi = softmax(G * gamma + lnE) - - return q_pi, G - -def update_posterior_policies_factorized( - qs, - A, - B, - C, - A_factor_list, - B_factor_list, - policies, - use_utility=True, - use_states_info_gain=True, - use_param_info_gain=False, - pA=None, - pB=None, - E=None, - I=None, - gamma=16.0 -): +def sample_action(policies, num_controls, q_pi, action_selection="deterministic", alpha=16.0, rng_key=None): """ - Update posterior beliefs about policies by computing expected free energy of each policy and integrating that - with the prior over policies ``E``. This is intended to be used in conjunction - with the ``update_posterior_states`` method of the ``inference`` module, since only the posterior about the hidden states at the current timestep - ``qs`` is assumed to be provided, unconditional on policies. The predictive posterior over hidden states under all policies Q(s, pi) is computed - using the starting posterior about states at the current timestep ``qs`` and the generative model (e.g. ``A``, ``B``, ``C``) + Samples an action from posterior marginals, one action per control factor. Parameters ---------- - qs: ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint (unconditioned on policies) - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - C: ``numpy.ndarray`` of dtype object - Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. - This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. - A_factor_list: ``list`` of ``list``s of ``int`` - ``list`` that stores the indices of the hidden state factor indices that each observation modality depends on. For example, if ``A_factor_list[m] = [0, 1]``, then - observation modality ``m`` depends on hidden state factors 0 and 1. - B_factor_list: ``list`` of ``list``s of ``int`` - ``list`` that stores the indices of the hidden state factor indices that each hidden state factor depends on. For example, if ``B_factor_list[f] = [0, 1]``, then - the transitions in hidden state factor ``f`` depend on hidden state factors 0 and 1. + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. - use_utility: ``Bool``, default ``True`` - Boolean flag that determines whether expected utility should be incorporated into computation of EFE. - use_states_info_gain: ``Bool``, default ``True`` - Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. - use_param_info_gain: ``Bool``, default ``False`` - Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. - pA: ``numpy.ndarray`` of dtype object, optional - Dirichlet parameters over observation model (same shape as ``A``) - pB: ``numpy.ndarray`` of dtype object, optional - Dirichlet parameters over transition model (same shape as ``B``) - E: 1D ``numpy.ndarray``, optional - Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits") - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - gamma: float, default 16.0 - Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor. + action_selection: string, default "deterministic" + String indicating whether whether the selected action is chosen as the maximum of the posterior over actions, + or whether it's sampled from the posterior marginal over actions + alpha: float, default 16.0 + Action selection precision -- the inverse temperature of the softmax that is used to scale the + action marginals before sampling. This is only used if ``action_selection`` argument is "stochastic" Returns ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - G: 1D ``numpy.ndarray`` - Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + selected_policy: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor """ - n_policies = len(policies) - G = np.zeros(n_policies) - q_pi = np.zeros((n_policies, 1)) - - if E is None: - lnE = spm_log_single(np.ones(n_policies) / n_policies) + marginal = get_marginals(q_pi, policies, num_controls) + + if action_selection == 'deterministic': + selected_policy = jtu.tree_map(lambda x: jnp.argmax(x, -1), marginal) + elif action_selection == 'stochastic': + logits = lambda x: alpha * log_stable(x) + selected_policy = jtu.tree_map(lambda x: jr.categorical(rng_key, logits(x)), marginal) else: - lnE = spm_log_single(E) + raise NotImplementedError - for idx, policy in enumerate(policies): - qs_pi = get_expected_states_interactions(qs, B, B_factor_list, policy) - qo_pi = get_expected_obs_factorized(qs_pi, A, A_factor_list) + return jnp.array(selected_policy) - if use_utility: - G[idx] += calc_expected_utility(qo_pi, C) - - if use_states_info_gain: - G[idx] += calc_states_info_gain_factorized(A, qs_pi, A_factor_list) - - if use_param_info_gain: - if pA is not None: - G[idx] += calc_pA_info_gain_factorized(pA, qo_pi, qs_pi, A_factor_list).item() - if pB is not None: - G[idx] += calc_pB_info_gain_interactions(pB, qs_pi, qs, B_factor_list, policy).item() - - if I is not None: - G[idx] += calc_inductive_cost(qs, qs_pi, I) +def sample_policy(policies, q_pi, action_selection="deterministic", alpha = 16.0, rng_key=None): - q_pi = softmax(G * gamma + lnE) + if action_selection == "deterministic": + policy_idx = jnp.argmax(q_pi) + elif action_selection == "stochastic": + log_p_policies = log_stable(q_pi) * alpha + policy_idx = jr.categorical(rng_key, log_p_policies) - return q_pi, G + selected_multiaction = policies[policy_idx, 0] + return selected_multiaction -def get_expected_states(qs, B, policy): +def construct_policies(num_states, num_controls = None, policy_len=1, control_fac_idx=None): """ - Compute the expected states under a policy, also known as the posterior predictive density over states + Generate a ``list`` of policies. The returned array ``policies`` is a ``list`` that stores one policy per entry. + A particular policy (``policies[i]``) has shape ``(num_timesteps, num_factors)`` + where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. Parameters ---------- - qs: ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at a given timepoint. - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - policy: 2D ``numpy.ndarray`` - Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. + num_states: ``list`` of ``int`` + ``list`` of the dimensionalities of each hidden state factor + num_controls: ``list`` of ``int``, default ``None`` + ``list`` of the dimensionalities of each control state factor. If ``None``, then is automatically computed as the dimensionality of each hidden state factor that is controllable + policy_len: ``int``, default 1 + temporal depth ("planning horizon") of policies + control_fac_idx: ``list`` of ``int`` + ``list`` of indices of the hidden state factors that are controllable (i.e. those state factors ``i`` where ``num_controls[i] > 1``) Returns - ------- - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - """ - n_steps = policy.shape[0] - n_factors = policy.shape[1] - - # initialise posterior predictive density as a list of beliefs over time, including current posterior beliefs about hidden states as the first element - qs_pi = [qs] + [utils.obj_array(n_factors) for t in range(n_steps)] - - # get expected states over time - for t in range(n_steps): - for control_factor, action in enumerate(policy[t,:]): - qs_pi[t+1][control_factor] = B[control_factor][:,:,int(action)].dot(qs_pi[t][control_factor]) - - return qs_pi[1:] - -def get_expected_states_interactions(qs, B, B_factor_list, policy): - """ - Compute the expected states under a policy, also known as the posterior predictive density over states - - Parameters ---------- - qs: ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at a given timepoint. - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - B_factor_list: ``list`` of ``list`` of ``int`` - List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. - policy: 2D ``numpy.ndarray`` - Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. - - Returns - ------- - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` """ - n_steps = policy.shape[0] - n_factors = policy.shape[1] - # initialise posterior predictive density as a list of beliefs over time, including current posterior beliefs about hidden states as the first element - qs_pi = [qs] + [utils.obj_array(n_factors) for t in range(n_steps)] - - # get expected states over time - for t in range(n_steps): - for control_factor, action in enumerate(policy[t,:]): - factor_idx = B_factor_list[control_factor] # list of the hidden state factor indices that the dynamics of `qs[control_factor]` depend on - qs_pi[t+1][control_factor] = spm_dot(B[control_factor][...,int(action)], qs_pi[t][factor_idx]) - - return qs_pi[1:] - -def get_expected_obs(qs_pi, A): - """ - Compute the expected observations under a policy, also known as the posterior predictive density over observations + num_factors = len(num_states) + if control_fac_idx is None: + if num_controls is not None: + control_fac_idx = [f for f, n_c in enumerate(num_controls) if n_c > 1] + else: + control_fac_idx = list(range(num_factors)) - Parameters - ---------- - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + if num_controls is None: + num_controls = [num_states[c_idx] if c_idx in control_fac_idx else 1 for c_idx in range(num_factors)] + + x = num_controls * policy_len + policies = list(itertools.product(*[list(range(i)) for i in x])) + + for pol_i in range(len(policies)): + policies[pol_i] = jnp.array(policies[pol_i]).reshape(policy_len, num_factors) - Returns - ------- - qo_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about - observations expected under the policy at time ``t`` - """ + return jnp.stack(policies) - n_steps = len(qs_pi) # each element of the list is the PPD at a different timestep - # initialise expected observations - qo_pi = [] +def update_posterior_policies(policy_matrix, qs_init, A, B, C, E, pA, pB, A_dependencies, B_dependencies, gamma=16.0, use_utility=True, use_states_info_gain=True, use_param_info_gain=False): + # policy --> n_levels_factor_f x 1 + # factor --> n_levels_factor_f x n_policies + ## vmap across policies + compute_G_fixed_states = partial(compute_G_policy, qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, + use_utility=use_utility, use_states_info_gain=use_states_info_gain, use_param_info_gain=use_param_info_gain) - for t in range(n_steps): - qo_pi_t = utils.obj_array(len(A)) - qo_pi.append(qo_pi_t) + # only in the case of policy-dependent qs_inits + # in_axes_list = (1,) * n_factors + # all_efe_of_policies = vmap(compute_G_policy, in_axes=(in_axes_list, 0))(qs_init_pi, policy_matrix) - # compute expected observations over time - for t in range(n_steps): - for modality, A_m in enumerate(A): - qo_pi[t][modality] = spm_dot(A_m, qs_pi[t]) + # policies needs to be an NDarray of shape (n_policies, n_timepoints, n_control_factors) + neg_efe_all_policies = vmap(compute_G_fixed_states)(policy_matrix) - return qo_pi + return nn.softmax(gamma * neg_efe_all_policies + log_stable(E)), neg_efe_all_policies -def get_expected_obs_factorized(qs_pi, A, A_factor_list): +def compute_expected_state(qs_prior, B, u_t, B_dependencies=None): """ - Compute the expected observations under a policy, also known as the posterior predictive density over observations - - Parameters - ---------- - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - A_factor_list: ``list`` of ``list`` of ``int`` - List of lists of hidden state factor indices that each observation modality depends on. Each element ``A_factor_list[i]`` is a list of the factor indices that modality i's observation model depends on. - Returns - ------- - qo_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about - observations expected under the policy at time ``t`` + Compute posterior over next state, given belief about previous state, transition model and action... """ + #Note: this algorithm is only correct if each factor depends only on itself. For any interactions, + # we will have empirical priors with codependent factors. + assert len(u_t) == len(B) + qs_next = [] + for B_f, u_f, deps in zip(B, u_t, B_dependencies): + relevant_factors = [qs_prior[idx] for idx in deps] + qs_next_f = factor_dot(B_f[...,u_f], relevant_factors, keep_dims=(0,)) + qs_next.append(qs_next_f) + + # P(s'|s, u) = \sum_{s, u} P(s'|s) P(s|u) P(u|pi)P(pi) because u pi + return qs_next - n_steps = len(qs_pi) # each element of the list is the PPD at a different timestep - - # initialise expected observations - qo_pi = [] - - for t in range(n_steps): - qo_pi_t = utils.obj_array(len(A)) - qo_pi.append(qo_pi_t) - - # compute expected observations over time - for t in range(n_steps): - for modality, A_m in enumerate(A): - factor_idx = A_factor_list[modality] # list of the hidden state factor indices that observation modality with the index `modality` depends on - qo_pi[t][modality] = spm_dot(A_m, qs_pi[t][factor_idx]) - - return qo_pi - -def calc_expected_utility(qo_pi, C): +def compute_expected_state_and_Bs(qs_prior, B, u_t): """ - Computes the expected utility of a policy, using the observation distribution expected under that policy and a prior preference vector. - - Parameters - ---------- - qo_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about - observations expected under the policy at time ``t`` - C: ``numpy.ndarray`` of dtype object - Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. - This is softmaxed to form a proper probability distribution before being used to compute the expected utility. - - Returns - ------- - expected_util: float - Utility (reward) expected under the policy in question + Compute posterior over next state, given belief about previous state, transition model and action... """ - n_steps = len(qo_pi) + assert len(u_t) == len(B) + qs_next = [] + Bs = [] + for qs_f, B_f, u_f in zip(qs_prior, B, u_t): + qs_next.append( B_f[..., u_f].dot(qs_f) ) + Bs.append(B_f[..., u_f]) - # initialise expected utility - expected_util = 0 - - # loop over time points and modalities - num_modalities = len(C) - - # reformat C to be tiled across timesteps, if it's not already - modalities_to_tile = [modality_i for modality_i in range(num_modalities) if C[modality_i].ndim == 1] - - # make a deepcopy of C where it has been tiled across timesteps - C_tiled = copy.deepcopy(C) - for modality in modalities_to_tile: - C_tiled[modality] = np.tile(C[modality][:,None], (1, n_steps) ) - - C_prob = softmax_obj_arr(C_tiled) # convert relative log probabilities into proper probability distribution - - for t in range(n_steps): - for modality in range(num_modalities): - - lnC = spm_log_single(C_prob[modality][:, t]) - expected_util += qo_pi[t][modality].dot(lnC) - - return expected_util - - -def calc_states_info_gain(A, qs_pi): - """ - Computes the Bayesian surprise or information gain about states of a policy, - using the observation model and the hidden state distribution expected under that policy. - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - - Returns - ------- - states_surprise: float - Bayesian surprise (about states) or salience expected under the policy in question - """ - - n_steps = len(qs_pi) - - states_surprise = 0 - for t in range(n_steps): - states_surprise += spm_MDP_G(A, qs_pi[t]) + return qs_next, Bs - return states_surprise - -def calc_states_info_gain_factorized(A, qs_pi, A_factor_list): +def compute_expected_obs(qs, A, A_dependencies): """ - Computes the Bayesian surprise or information gain about states of a policy, - using the observation model and the hidden state distribution expected under that policy. - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - A_factor_list: ``list`` of ``list`` of ``int`` - List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on - - Returns - ------- - states_surprise: float - Bayesian surprise (about states) or salience expected under the policy in question + New version of expected observation (computation of Q(o|pi)) that takes into account sparse dependencies between observation + modalities and hidden state factors """ + + def compute_expected_obs_modality(A_m, m): + deps = A_dependencies[m] + relevant_factors = [qs[idx] for idx in deps] + return factor_dot(A_m, relevant_factors, keep_dims=(0,)) - n_steps = len(qs_pi) - - states_surprise = 0 - for t in range(n_steps): - for m, A_m in enumerate(A): - factor_idx = A_factor_list[m] # list of the hidden state factor indices that observation modality with the index `m` depends on - states_surprise += spm_MDP_G(A_m, qs_pi[t][factor_idx]) - - return states_surprise - + return jtu.tree_map(compute_expected_obs_modality, A, list(range(len(A)))) -def calc_pA_info_gain(pA, qo_pi, qs_pi): +def compute_info_gain(qs, qo, A, A_dependencies): """ - Compute expected Dirichlet information gain about parameters ``pA`` under a policy - - Parameters - ---------- - pA: ``numpy.ndarray`` of dtype object - Dirichlet parameters over observation model (same shape as ``A``) - qo_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about - observations expected under the policy at time ``t`` - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - - Returns - ------- - infogain_pA: float - Surprise (about Dirichlet parameters) expected under the policy in question + New version of expected information gain that takes into account sparse dependencies between observation modalities and hidden state factors. """ - n_steps = len(qo_pi) + def compute_info_gain_for_modality(qo_m, A_m, m): + H_qo = stable_entropy(qo_m) + H_A_m = - stable_xlogx(A_m).sum(0) + deps = A_dependencies[m] + relevant_factors = [qs[idx] for idx in deps] + qs_H_A_m = factor_dot(H_A_m, relevant_factors) + return H_qo - qs_H_A_m - num_modalities = len(pA) - wA = utils.obj_array(num_modalities) - for modality, pA_m in enumerate(pA): - wA[modality] = spm_wnorm(pA[modality]) + info_gains_per_modality = jtu.tree_map(compute_info_gain_for_modality, qo, A, list(range(len(A)))) + + return jtu.tree_reduce(lambda x,y: x+y, info_gains_per_modality) - pA_infogain = 0 +def compute_expected_utility(qo, C, t=0): - for modality in range(num_modalities): - wA_modality = wA[modality] * (pA[modality] > 0).astype("float") - for t in range(n_steps): - pA_infogain -= qo_pi[t][modality].dot(spm_dot(wA_modality, qs_pi[t])[:, np.newaxis]) - - return pA_infogain + util = 0. + for o_m, C_m in zip(qo, C): + if C_m.ndim > 1: + util += (o_m * C_m[t]).sum() + else: + util += (o_m * C_m).sum() + + return util -def calc_pA_info_gain_factorized(pA, qo_pi, qs_pi, A_factor_list): +def calc_pA_info_gain(pA, qo, qs, A_dependencies): """ - Compute expected Dirichlet information gain about parameters ``pA`` under a policy. - In this version of the function, we assume that the observation model is factorized, i.e. that each observation modality depends on a subset of the hidden state factors. + Compute expected Dirichlet information gain about parameters ``pA`` for a given posterior predictive distribution over observations ``qo`` and states ``qs``. Parameters ---------- pA: ``numpy.ndarray`` of dtype object Dirichlet parameters over observation model (same shape as ``A``) - qo_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about - observations expected under the policy at time ``t`` - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - A_factor_list: ``list`` of ``list`` of ``int`` - List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on + qo: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over observations; stores the beliefs about + observations expected under the policy at some arbitrary time ``t`` + qs: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states, stores the beliefs about + hidden states expected under the policy at some arbitrary time ``t`` Returns ------- infogain_pA: float - Surprise (about Dirichlet parameters) expected under the policy in question + Surprise (about Dirichlet parameters) expected for the pair of posterior predictive distributions ``qo`` and ``qs`` """ - n_steps = len(qo_pi) - - num_modalities = len(pA) - wA = utils.obj_array(num_modalities) - for modality, pA_m in enumerate(pA): - wA[modality] = spm_wnorm(pA[modality]) + def infogain_per_modality(pa_m, qo_m, m): + wa_m = spm_wnorm(pa_m) * (pa_m > 0.) + fd = factor_dot(wa_m, [s for f, s in enumerate(qs) if f in A_dependencies[m]], keep_dims=(0,))[..., None] + return qo_m.dot(fd) - pA_infogain = 0 + pA_infogain_per_modality = jtu.tree_map( + infogain_per_modality, pA, qo, list(range(len(qo))) + ) - for modality in range(num_modalities): - wA_modality = wA[modality] * (pA[modality] > 0).astype("float") - factor_idx = A_factor_list[modality] - for t in range(n_steps): - pA_infogain -= qo_pi[t][modality].dot(spm_dot(wA_modality, qs_pi[t][factor_idx])[:, np.newaxis]) - - return pA_infogain + infogain_pA = jtu.tree_reduce(lambda x, y: x + y, pA_infogain_per_modality) + return infogain_pA.squeeze(-1) -def calc_pB_info_gain(pB, qs_pi, qs_prev, policy): +def calc_pB_info_gain(pB, qs_t, qs_t_minus_1, B_dependencies, u_t_minus_1): """ Compute expected Dirichlet information gain about parameters ``pB`` under a given policy Parameters ---------- - pB: ``numpy.ndarray`` of dtype object + pB: ``Array`` of dtype object Dirichlet parameters over transition model (same shape as ``B``) - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - qs_prev: ``numpy.ndarray`` of dtype object - Posterior over hidden states at beginning of trajectory (before receiving observations) - policy: 2D ``numpy.ndarray`` - Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - - Returns - ------- - infogain_pB: float - Surprise (about dirichlet parameters) expected under the policy in question - """ - - n_steps = len(qs_pi) - - num_factors = len(pB) - wB = utils.obj_array(num_factors) - for factor, pB_f in enumerate(pB): - wB[factor] = spm_wnorm(pB_f) - - pB_infogain = 0 - - for t in range(n_steps): - # the 'past posterior' used for the information gain about pB here is the posterior - # over expected states at the timestep previous to the one under consideration - # if we're on the first timestep, we just use the latest posterior in the - # entire action-perception cycle as the previous posterior - if t == 0: - previous_qs = qs_prev - # otherwise, we use the expected states for the timestep previous to the timestep under consideration - else: - previous_qs = qs_pi[t - 1] - - # get the list of action-indices for the current timestep - policy_t = policy[t, :] - for factor, a_i in enumerate(policy_t): - wB_factor_t = wB[factor][:, :, int(a_i)] * (pB[factor][:, :, int(a_i)] > 0).astype("float") - pB_infogain -= qs_pi[t][factor].dot(wB_factor_t.dot(previous_qs[factor])) - - return pB_infogain + qs_t: ``list`` of ``Array`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy at time ``t`` + qs_t_minus_1: ``list`` of ``Array`` of dtype object + Posterior over hidden states at time ``t-1`` (before receiving observations) + u_t_minus_1: "Array" + Actions in time step t-1 for each factor -def calc_pB_info_gain_interactions(pB, qs_pi, qs_prev, B_factor_list, policy): - """ - Compute expected Dirichlet information gain about parameters ``pB`` under a given policy - - Parameters - ---------- - pB: ``numpy.ndarray`` of dtype object - Dirichlet parameters over transition model (same shape as ``B``) - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - qs_prev: ``numpy.ndarray`` of dtype object - Posterior over hidden states at beginning of trajectory (before receiving observations) - B_factor_list: ``list`` of ``list`` of ``int`` - List of lists, where ``B_factor_list[f]`` is a list of the hidden state factor indices that hidden state factor with the index ``f`` depends on - policy: 2D ``numpy.ndarray`` - Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - Returns ------- infogain_pB: float - Surprise (about dirichlet parameters) expected under the policy in question - """ - - n_steps = len(qs_pi) - - num_factors = len(pB) - wB = utils.obj_array(num_factors) - for factor, pB_f in enumerate(pB): - wB[factor] = spm_wnorm(pB_f) - - pB_infogain = 0 - - for t in range(n_steps): - # the 'past posterior' used for the information gain about pB here is the posterior - # over expected states at the timestep previous to the one under consideration - # if we're on the first timestep, we just use the latest posterior in the - # entire action-perception cycle as the previous posterior - if t == 0: - previous_qs = qs_prev - # otherwise, we use the expected states for the timestep previous to the timestep under consideration - else: - previous_qs = qs_pi[t - 1] - - # get the list of action-indices for the current timestep - policy_t = policy[t, :] - for factor, a_i in enumerate(policy_t): - wB_factor_t = wB[factor][...,int(a_i)] * (pB[factor][...,int(a_i)] > 0).astype("float") - f_idx = B_factor_list[factor] - pB_infogain -= qs_pi[t][factor].dot(spm_dot(wB_factor_t, previous_qs[f_idx])) - - return pB_infogain - -def calc_inductive_cost(qs, qs_pi, I, epsilon=1e-3): - """ - Computes the inductive cost of a state. - - Parameters - ---------- - qs: ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at a given timepoint. - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - states expected under the policy at time ``t`` - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - - Returns - ------- - inductive_cost: float - Cost of visited this state using backwards induction under the policy in question - """ - n_steps = len(qs_pi) - - # initialise inductive cost - inductive_cost = 0 - - # loop over time points and modalities - num_factors = len(I) - - for t in range(n_steps): - for factor in range(num_factors): - # we also assume precise beliefs here?! - idx = np.argmax(qs[factor]) - # m = arg max_n p_n < sup p - # i.e. find first I idx equals 1 and m is the index before - m = np.where(I[factor][:, idx] == 1)[0] - # we might find no path to goal (i.e. when no goal specified) - if len(m) > 0: - m = max(m[0]-1, 0) - I_m = (1-I[factor][m, :]) * np.log(epsilon) - inductive_cost += I_m.dot(qs_pi[t][factor]) - - return inductive_cost - -def construct_policies(num_states, num_controls = None, policy_len=1, control_fac_idx=None): - """ - Generate a ``list`` of policies. The returned array ``policies`` is a ``list`` that stores one policy per entry. - A particular policy (``policies[i]``) has shape ``(num_timesteps, num_factors)`` - where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. - - Parameters - ---------- - num_states: ``list`` of ``int`` - ``list`` of the dimensionalities of each hidden state factor - num_controls: ``list`` of ``int``, default ``None`` - ``list`` of the dimensionalities of each control state factor. If ``None``, then is automatically computed as the dimensionality of each hidden state factor that is controllable - policy_len: ``int``, default 1 - temporal depth ("planning horizon") of policies - control_fac_idx: ``list`` of ``int`` - ``list`` of indices of the hidden state factors that are controllable (i.e. those state factors ``i`` where ``num_controls[i] > 1``) - - Returns - ---------- - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - """ - - num_factors = len(num_states) - if control_fac_idx is None: - if num_controls is not None: - control_fac_idx = [f for f, n_c in enumerate(num_controls) if n_c > 1] - else: - control_fac_idx = list(range(num_factors)) - - if num_controls is None: - num_controls = [num_states[c_idx] if c_idx in control_fac_idx else 1 for c_idx in range(num_factors)] - - x = num_controls * policy_len - policies = list(itertools.product(*[list(range(i)) for i in x])) - for pol_i in range(len(policies)): - policies[pol_i] = np.array(policies[pol_i]).reshape(policy_len, num_factors) - - return policies - -def get_num_controls_from_policies(policies): - """ - Calculates the ``list`` of dimensionalities of control factors (``num_controls``) - from the ``list`` or array of policies. This assumes a policy space such that for each control factor, there is at least - one policy that entails taking the action with the maximum index along that control factor. - - Parameters - ---------- - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - - Returns - ---------- - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor, computed here automatically from a ``list`` of policies. + Surprise (about Dirichlet parameters) expected under the policy in question """ - - return list(np.max(np.vstack(policies), axis = 0) + 1) - -def sample_action(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0): - """ - Computes the marginal posterior over actions and then samples an action from it, one action per control factor. - - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor. - action_selection: ``str``, default "deterministic" - String indicating whether whether the selected action is chosen as the maximum of the posterior over actions, - or whether it's sampled from the posterior marginal over actions - alpha: ``float``, default 16.0 - Action selection precision -- the inverse temperature of the softmax that is used to scale the - action marginals before sampling. This is only used if ``action_selection`` argument is "stochastic" - - Returns - ---------- - selected_policy: 1D ``numpy.ndarray`` - Vector containing the indices of the actions for each control factor - """ - - num_factors = len(num_controls) - - action_marginals = utils.obj_array_zeros(num_controls) - - # weight each action according to its integrated posterior probability under all policies at the current timestep - for pol_idx, policy in enumerate(policies): - for factor_i, action_i in enumerate(policy[0, :]): - action_marginals[factor_i][action_i] += q_pi[pol_idx] + wB = lambda pb: spm_wnorm(pb) * (pb > 0.) + fd = lambda x, i: factor_dot(x, [s for f, s in enumerate(qs_t_minus_1) if f in B_dependencies[i]], keep_dims=(0,))[..., None] - action_marginals = utils.norm_dist_obj_arr(action_marginals) - - selected_policy = np.zeros(num_factors) - for factor_i in range(num_factors): + pB_infogain_per_factor = jtu.tree_map(lambda pb, qs, f: qs.dot(fd(wB(pb[..., u_t_minus_1[f]]), f)), pB, qs_t, list(range(len(qs_t)))) + infogain_pB = jtu.tree_reduce(lambda x, y: x + y, pB_infogain_per_factor)[0] + return infogain_pB - # Either you do this: - if action_selection == 'deterministic': - selected_policy[factor_i] = select_highest(action_marginals[factor_i]) - elif action_selection == 'stochastic': - log_marginal_f = spm_log_single(action_marginals[factor_i]) - p_actions = softmax(log_marginal_f * alpha) - selected_policy[factor_i] = utils.sample(p_actions) +def compute_G_policy(qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, policy_i, use_utility=True, use_states_info_gain=True, use_param_info_gain=False): + """ Write a version of compute_G_policy that does the same computations as `compute_G_policy` but using `lax.scan` instead of a for loop. """ - return selected_policy + def scan_body(carry, t): -def _sample_action_test(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0, seed=None): - """ - Computes the marginal posterior over actions and then samples an action from it, one action per control factor. - Internal testing version that returns the marginal posterior over actions, and also has a seed argument for reproducibility. - - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor. - action_selection: ``str``, default "deterministic" - String indicating whether whether the selected action is chosen as the maximum of the posterior over actions, - or whether it's sampled from the posterior marginal over actions - alpha: float, default 16.0 - Action selection precision -- the inverse temperature of the softmax that is used to scale the - action marginals before sampling. This is only used if ``action_selection`` argument is "stochastic" - seed: ``int``, default None - The seed can be set to control the random sampling that occurs when ``action_selection`` is "deterministic" but there are more than one actions with the same maximum posterior probability. + qs, neg_G = carry + qs_next = compute_expected_state(qs, B, policy_i[t], B_dependencies) - Returns - ---------- - selected_policy: 1D ``numpy.ndarray`` - Vector containing the indices of the actions for each control factor - p_actions: ``numpy.ndarray`` of dtype object - Marginal posteriors over actions, after softmaxing and scaling with action precision. This distribution will be used to sample actions, - if``action_selection`` argument is "stochastic" - """ + qo = compute_expected_obs(qs_next, A, A_dependencies) - num_factors = len(num_controls) + info_gain = compute_info_gain(qs_next, qo, A, A_dependencies) if use_states_info_gain else 0. - action_marginals = utils.obj_array_zeros(num_controls) - - # weight each action according to its integrated posterior probability under all policies at the current timestep - for pol_idx, policy in enumerate(policies): - for factor_i, action_i in enumerate(policy[0, :]): - action_marginals[factor_i][action_i] += q_pi[pol_idx] - - action_marginals = utils.norm_dist_obj_arr(action_marginals) + utility = compute_expected_utility(qo, C, t) if use_utility else 0. - selected_policy = np.zeros(num_factors) - p_actions = utils.obj_array_zeros(num_controls) - for factor_i in range(num_factors): - if action_selection == 'deterministic': - p_actions[factor_i] = action_marginals[factor_i] - selected_policy[factor_i] = _select_highest_test(p_actions[factor_i], seed=seed) - elif action_selection == 'stochastic': - log_marginal_f = spm_log_single(action_marginals[factor_i]) - p_actions[factor_i] = softmax(log_marginal_f * alpha) - selected_policy[factor_i] = utils.sample(p_actions[factor_i]) + param_info_gain = calc_pA_info_gain(pA, qo, qs_next, A_dependencies) if use_param_info_gain else 0. + param_info_gain += calc_pB_info_gain(pB, qs_next, qs, B_dependencies, policy_i[t]) if use_param_info_gain else 0. - return selected_policy, p_actions + neg_G += info_gain + utility + param_info_gain -def sample_policy(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0): - """ - Samples a policy from the posterior over policies, taking the action (per control factor) entailed by the first timestep of the selected policy. + return (qs_next, neg_G), None - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor. - action_selection: string, default "deterministic" - String indicating whether whether the selected policy is chosen as the maximum of the posterior over policies, - or whether it's sampled from the posterior over policies. - alpha: float, default 16.0 - Action selection precision -- the inverse temperature of the softmax that is used to scale the - policy posterior before sampling. This is only used if ``action_selection`` argument is "stochastic" + qs = qs_init + neg_G = 0. + final_state, _ = lax.scan(scan_body, (qs, neg_G), jnp.arange(policy_i.shape[0])) + qs_final, neg_G = final_state + return neg_G - Returns - ---------- - selected_policy: 1D ``numpy.ndarray`` - Vector containing the indices of the actions for each control factor +def compute_G_policy_inductive(qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, I, policy_i, inductive_epsilon=1e-3, use_utility=True, use_states_info_gain=True, use_param_info_gain=False, use_inductive=False): + """ + Write a version of compute_G_policy that does the same computations as `compute_G_policy` but using `lax.scan` instead of a for loop. + This one further adds computations used for inductive planning. """ - num_factors = len(num_controls) - - if action_selection == "deterministic": - policy_idx = select_highest(q_pi) - elif action_selection == "stochastic": - log_qpi = spm_log_single(q_pi) - p_policies = softmax(log_qpi * alpha) - policy_idx = utils.sample(p_policies) + def scan_body(carry, t): - selected_policy = np.zeros(num_factors) - for factor_i in range(num_factors): - selected_policy[factor_i] = policies[policy_idx][0, factor_i] - - return selected_policy - -def _sample_policy_test(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0, seed=None): - """ - Test version of sampling a policy from the posterior over policies, taking the action (per control factor) entailed by the first timestep of the selected policy. - This test version also returns the probability distribution over policies, and also has a seed argument for reproducibility. - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor. - action_selection: string, default "deterministic" - String indicating whether whether the selected policy is chosen as the maximum of the posterior over policies, - or whether it's sampled from the posterior over policies. - alpha: float, default 16.0 - Action selection precision -- the inverse temperature of the softmax that is used to scale the - policy posterior before sampling. This is only used if ``action_selection`` argument is "stochastic" - seed: ``int``, default None - The seed can be set to control the random sampling that occurs when ``action_selection`` is "deterministic" but there are more than one actions with the same maximum posterior probability. + qs, neg_G = carry - - Returns - ---------- - selected_policy: 1D ``numpy.ndarray`` - Vector containing the indices of the actions for each control factor - """ + qs_next = compute_expected_state(qs, B, policy_i[t], B_dependencies) - num_factors = len(num_controls) + qo = compute_expected_obs(qs_next, A, A_dependencies) - if action_selection == "deterministic": - p_policies = q_pi - policy_idx = _select_highest_test(p_policies, seed=seed) - elif action_selection == "stochastic": - log_qpi = spm_log_single(q_pi) - p_policies = softmax(log_qpi * alpha) - policy_idx = utils.sample(p_policies) + info_gain = compute_info_gain(qs_next, qo, A, A_dependencies) if use_states_info_gain else 0. - selected_policy = np.zeros(num_factors) - for factor_i in range(num_factors): - selected_policy[factor_i] = policies[policy_idx][0, factor_i] + utility = compute_expected_utility(qo, C, t) if use_utility else 0. - return selected_policy, p_policies + inductive_value = calc_inductive_value_t(qs_init, qs_next, I, epsilon=inductive_epsilon) if use_inductive else 0. + param_info_gain = 0. + if pA is not None: + param_info_gain += calc_pA_info_gain(pA, qo, qs_next, A_dependencies) if use_param_info_gain else 0. + if pB is not None: + param_info_gain += calc_pB_info_gain(pB, qs_next, qs, B_dependencies, policy_i[t]) if use_param_info_gain else 0. -def select_highest(options_array): - """ - Selects the highest value among the provided ones. If the higher value is more than once and they're closer than 1e-5, a random choice is made. - Parameters - ---------- - options_array: ``numpy.ndarray`` - The array to examine + neg_G += info_gain + utility - param_info_gain + inductive_value - Returns - ------- - The highest value in the given list - """ - options_with_idx = np.array(list(enumerate(options_array))) - same_prob = options_with_idx[ - abs(options_with_idx[:, 1] - np.amax(options_with_idx[:, 1])) <= 1e-8][:, 0] - if len(same_prob) > 1: - # If some of the most likely actions have nearly equal probability, sample from this subset of actions, instead of using argmax - return int(same_prob[np.random.choice(len(same_prob))]) + return (qs_next, neg_G), None - return int(same_prob[0]) + qs = qs_init + neg_G = 0. + final_state, _ = lax.scan(scan_body, (qs, neg_G), jnp.arange(policy_i.shape[0])) + _, neg_G = final_state + return neg_G -def _select_highest_test(options_array, seed=None): - """ - (Test version with seed argument for reproducibility) Selects the highest value among the provided ones. If the higher value is more than once and they're closer than 1e-8, a random choice is made. - Parameters - ---------- - options_array: ``numpy.ndarray`` - The array to examine +def update_posterior_policies_inductive(policy_matrix, qs_init, A, B, C, E, pA, pB, A_dependencies, B_dependencies, I, gamma=16.0, inductive_epsilon=1e-3, use_utility=True, use_states_info_gain=True, use_param_info_gain=False, use_inductive=True): + # policy --> n_levels_factor_f x 1 + # factor --> n_levels_factor_f x n_policies + ## vmap across policies + compute_G_fixed_states = partial(compute_G_policy_inductive, qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, I, inductive_epsilon=inductive_epsilon, + use_utility=use_utility, use_states_info_gain=use_states_info_gain, use_param_info_gain=use_param_info_gain, use_inductive=use_inductive) - Returns - ------- - The highest value in the given list - """ - options_with_idx = np.array(list(enumerate(options_array))) - same_prob = options_with_idx[ - abs(options_with_idx[:, 1] - np.amax(options_with_idx[:, 1])) <= 1e-8][:, 0] - if len(same_prob) > 1: - # If some of the most likely actions have nearly equal probability, sample from this subset of actions, instead of using argmax - rng = np.random.default_rng(seed) - return int(same_prob[rng.choice(len(same_prob))]) + # only in the case of policy-dependent qs_inits + # in_axes_list = (1,) * n_factors + # all_efe_of_policies = vmap(compute_G_policy, in_axes=(in_axes_list, 0))(qs_init_pi, policy_matrix) - return int(same_prob[0]) + # policies needs to be an NDarray of shape (n_policies, n_timepoints, n_control_factors) + neg_efe_all_policies = vmap(compute_G_fixed_states)(policy_matrix) + return nn.softmax(gamma * neg_efe_all_policies + log_stable(E)), neg_efe_all_policies -def backwards_induction(H, B, B_factor_list, threshold, depth): - """ - Runs backwards induction of reaching a goal state H given a transition model B. - +def generate_I_matrix(H: List[Array], B: List[Array], threshold: float, depth: int): + """ + Generates the `I` matrices used in inductive planning. These matrices stores the probability of reaching the goal state backwards from state j (columns) after i (rows) steps. Parameters ---------- - H: ``numpy.ndarray`` of dtype object - Prior over states - B: ``numpy.ndarray`` of dtype object + H: ``list`` of ``jax.numpy.ndarray`` + Constraints over desired states (1 if you want to reach that state, 0 otherwise) + B: ``list`` of ``jax.numpy.ndarray`` Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - B_factor_list: ``list`` of ``list`` of ``int`` - List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. threshold: ``float`` The threshold for pruning transitions that are below a certain probability depth: ``int`` @@ -1281,186 +389,88 @@ def backwards_induction(H, B, B_factor_list, threshold, depth): For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability of reaching the goal state backwards from state j after i steps. """ - # TODO can this be done with arbitrary B_factor_list? num_factors = len(H) - I = utils.obj_array(num_factors) - for factor in range(num_factors): - I[factor] = np.zeros((depth, H[factor].shape[0])) - I[factor][0, :] = H[factor] - - bf = factor - if B_factor_list is not None: - if len(B_factor_list[factor]) > 1: - raise ValueError("Backwards induction with factorized transition model not yet implemented") - bf = B_factor_list[factor][0] - - num_states, _, _ = B[bf].shape - b = np.zeros((num_states, num_states)) - - for state in range(num_states): - for next_state in range(num_states): - # If there exists an action that allows transitioning - # from state to next_state, with probability larger than threshold - # set b[state, next_state] to 1 - if np.any(B[bf][next_state, state, :] > threshold): - b[next_state, state] = 1 - - for i in range(1, depth): - I[factor][i, :] = np.dot(b, I[factor][i-1, :]) - I[factor][i, :] = np.where(I[factor][i, :] > 0.1, 1.0, 0.0) - # TODO stop when all 1s? + I = [] + for f in range(num_factors): + """ + For each factor, we need to compute the probability of reaching the goal state + """ + + # If there exists an action that allows transitioning + # from state to next_state, with probability larger than threshold + # set b_reachable[current_state, previous_state] to 1 + b_reachable = jnp.where(B[f] > threshold, 1.0, 0.0).sum(axis=-1) + b_reachable = jnp.where(b_reachable > 0., 1.0, 0.0) + + def step_fn(carry, i): + I_prev = carry + I_next = jnp.dot(b_reachable, I_prev) + I_next = jnp.where(I_next > 0.1, 1.0, 0.0) # clamp I_next to 1.0 if it's above 0.1, 0 otherwise + return I_next, I_next + + _, I_f = lax.scan(step_fn, H[f], jnp.arange(depth-1)) + I_f = jnp.concatenate([H[f][None,...], I_f], axis=0) + I.append(I_f) + return I -def calc_ambiguity_factorized(qs_pi, A, A_factor_list): - """ - Computes the Ambiguity term. - - Parameters - ---------- - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - A_factor_list: ``list`` of ``list`` of ``int`` - List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on - - Returns - ------- - ambiguity: float - """ - - n_steps = len(qs_pi) - - ambiguity = 0 - # TODO check if we do this correctly! - H = entropy(A) - for t in range(n_steps): - for m, H_m in enumerate(H): - factor_idx = A_factor_list[m] - # TODO why does spm_dot return an array here? - # joint_x = maths.spm_cross(qs_pi[t][factor_idx]) - # ambiguity += (H_m * joint_x).sum() - ambiguity += np.sum(spm_dot(H_m, qs_pi[t][factor_idx])) - - return ambiguity - - -def sophisticated_inference_search(qs, policies, A, B, C, A_factor_list, B_factor_list, I=None, horizon=1, - policy_prune_threshold=1/16, state_prune_threshold=1/16, prune_penalty=512, gamma=16, - inference_params = {"num_iter": 10, "dF": 1.0, "dF_tol": 0.001, "compute_vfe": False}, n=0): +def calc_inductive_value_t(qs, qs_next, I, epsilon=1e-3): """ - Performs sophisticated inference to find the optimal policy for a given generative model and prior preferences. + Computes the inductive value of a state at a particular time (translation of @tverbele's `numpy` implementation of inductive planning, formerly + called `calc_inductive_cost`). Parameters ---------- - qs: ``numpy.ndarray`` of dtype object + qs: ``list`` of ``jax.numpy.ndarray`` Marginal posterior beliefs over hidden states at a given timepoint. - policies: ``list`` of 1D ``numpy.ndarray`` inference_params = {"num_iter": 10, "dF": 1.0, "dF_tol": 0.001, "compute_vfe": False} - - ``list`` that stores each policy as a 1D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_factors)`` where ``num_factors`` is the number of control factors. - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - C: ``numpy.ndarray`` of dtype object - Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. - This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. - A_factor_list: ``list`` of ``list`` of ``int`` - List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on - B_factor_list: ``list`` of ``list`` of ``int`` - List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. + qs_next: ```list`` of ``jax.numpy.ndarray`` + Predictive posterior beliefs over hidden states expected under the policy. I: ``numpy.ndarray`` of dtype object For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability of reaching the goal state backwards from state j after i steps. - horizon: ``int`` - The temporal depth of the policy - policy_prune_threshold: ``float`` - The threshold for pruning policies that are below a certain probability - state_prune_threshold: ``float`` - The threshold for pruning states in the expectation that are below a certain probability - prune_penalty: ``float`` - Penalty to add to the EFE when a policy is pruned - gamma: ``float``, default 16.0 - Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies - n: ``int`` - timestep in the future we are calculating - + epsilon: ``float`` + Value that tunes the strength of the inductive value (how much it contributes to the expected free energy of policies) + Returns - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - - G: 1D ``numpy.ndarray`` - Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + ------- + inductive_val: float + Value (negative inductive cost) of visiting this state using backwards induction under the policy in question """ - - n_policies = len(policies) - G = np.zeros(n_policies) - q_pi = np.zeros((n_policies, 1)) - qs_pi = utils.obj_array(n_policies) - qo_pi = utils.obj_array(n_policies) - - for idx, policy in enumerate(policies): - qs_pi[idx] = get_expected_states_interactions(qs, B, B_factor_list, policy) - qo_pi[idx] = get_expected_obs_factorized(qs_pi[idx], A, A_factor_list) - - G[idx] += calc_expected_utility(qo_pi[idx], C) - G[idx] += calc_states_info_gain_factorized(A, qs_pi[idx], A_factor_list) - - if I is not None: - G[idx] += calc_inductive_cost(qs, qs_pi[idx], I) - - q_pi = softmax(G * gamma) - - if n < horizon - 1: - # ignore low probability actions in the search tree - # TODO shouldnt we have to add extra penalty for branches no longer considered? - # or assume these are already low EFE (high NEFE) anyway? - policies_to_consider = list(np.where(q_pi >= policy_prune_threshold)[0]) - for idx in range(n_policies): - if idx not in policies_to_consider: - G[idx] -= prune_penalty - else : - # average over outcomes - qo_next = qo_pi[idx][0] - for k in itertools.product(*[range(s.shape[0]) for s in qo_next]): - prob = 1.0 - for i in range(len(k)): - prob *= qo_pi[idx][0][i][k[i]] - - # ignore low probability states in the search tree - if prob < state_prune_threshold: - continue - - qo_one_hot = utils.obj_array(len(qo_next)) - for i in range(len(qo_one_hot)): - qo_one_hot[i] = utils.onehot(k[i], qo_next[i].shape[0]) - - num_obs = [A[m].shape[0] for m in range(len(A))] - num_states = [B[f].shape[0] for f in range(len(B))] - A_modality_list = [] - for f in range(len(B)): - A_modality_list.append( [m for m in range(len(A)) if f in A_factor_list[m]] ) - mb_dict = { - 'A_factor_list': A_factor_list, - 'A_modality_list': A_modality_list - } - qs_next = update_posterior_states_factorized(A, qo_one_hot, num_obs, num_states, mb_dict, qs_pi[idx][0], **inference_params) - q_pi_next, G_next = sophisticated_inference_search(qs_next, policies, A, B, C, A_factor_list, B_factor_list, I, - horizon, policy_prune_threshold, state_prune_threshold, - prune_penalty, gamma, inference_params, n+1) - G_weighted = np.dot(q_pi_next, G_next) * prob - G[idx] += G_weighted - - q_pi = softmax(G * gamma) - return q_pi, G \ No newline at end of file + + # initialise inductive value + inductive_val = 0. + + log_eps = log_stable(epsilon) + for f in range(len(qs)): + # we also assume precise beliefs here?! + idx = jnp.argmax(qs[f]) + # m = arg max_n p_n < sup p + + # i.e. find first entry at which I_idx equals 1, and then m is the index before that + m = jnp.maximum(jnp.argmax(I[f][:, idx])-1, 0) + I_m = (1. - I[f][m, :]) * log_eps + path_available = jnp.clip(I[f][:, idx].sum(0), min=0, max=1) # if there are any 1's at all in that column of I, then this == 1, otherwise 0 + inductive_val += path_available * I_m.dot(qs_next[f]) # scaling by path_available will nullify the addition of inductive value in the case we find no path to goal (i.e. when no goal specified) + + return inductive_val + +# if __name__ == '__main__': + +# from jax import random as jr +# key = jr.PRNGKey(1) +# num_obs = [3, 4] + +# A = [jr.uniform(key, shape = (no, 2, 2)) for no in num_obs] +# B = [jr.uniform(key, shape = (2, 2, 2)), jr.uniform(key, shape = (2, 2, 2))] +# C = [log_stable(jnp.array([0.8, 0.1, 0.1])), log_stable(jnp.ones(4)/4)] +# policy_1 = jnp.array([[0, 1], +# [1, 1]]) +# policy_2 = jnp.array([[1, 0], +# [0, 0]]) +# policy_matrix = jnp.stack([policy_1, policy_2]) # 2 x 2 x 2 tensor + +# qs_init = [jnp.ones(2)/2, jnp.ones(2)/2] +# neg_G_all_policies = jit(update_posterior_policies)(policy_matrix, qs_init, A, B, C) +# print(neg_G_all_policies) diff --git a/pymdp/jax/distribution.py b/pymdp/distribution.py similarity index 100% rename from pymdp/jax/distribution.py rename to pymdp/distribution.py diff --git a/pymdp/envs/__init__.py b/pymdp/envs/__init__.py index e461e569..afac7577 100644 --- a/pymdp/envs/__init__.py +++ b/pymdp/envs/__init__.py @@ -1,4 +1,2 @@ -from .env import Env -from .grid_worlds import GridWorldEnv, DGridWorldEnv -from .visual_foraging import VisualForagingEnv, SceneConstruction, RandomDotMotion, initialize_scene_construction_GM, initialize_RDM_GM -from .tmaze import TMazeEnv, TMazeEnvNullOutcome +from .env import PyMDPEnv +from .graph_worlds import GraphEnv diff --git a/pymdp/envs/env.py b/pymdp/envs/env.py index 635e4e98..81c3a062 100644 --- a/pymdp/envs/env.py +++ b/pymdp/envs/env.py @@ -1,87 +1,73 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- +from typing import Optional, List, Dict +from jaxtyping import Array, PRNGKeyArray +from functools import partial -""" Environment Base Class +from equinox import Module, field, tree_at +from jax import vmap, random as jr, tree_util as jtu +import jax.numpy as jnp -__author__: Conor Heins, Alexander Tschantz, Brennan Klein -""" +def select_probs(positions, matrix, dependency_list, actions=None): + args = tuple(p for i, p in enumerate(positions) if i in dependency_list) + args += () if actions is None else (actions,) + return matrix[..., *args] -class Env(object): - """ - The Env base class, loosely-inspired by the analogous ``env`` class of the OpenAIGym framework. - A typical workflow is as follows: +def cat_sample(key, p): + a = jnp.arange(p.shape[-1]) + if p.ndim > 1: + choice = lambda key, p: jr.choice(key, a, p=p) + keys = jr.split(key, len(p)) + return vmap(choice)(keys, p) - >>> my_env = MyCustomEnv() - >>> initial_observation = my_env.reset(initial_state) - >>> my_agent.infer_states(initial_observation) - >>> my_agent.infer_policies() - >>> next_action = my_agent.sample_action() - >>> next_observation = my_env.step(next_action) + return jr.choice(key, a, p=p) - This would be the first step of an active inference process, where a sub-class of ``Env``, ``MyCustomEnv`` is initialized, - an initial observation is produced, and these observations are fed into an instance of ``Agent`` in order to produce an action, - that can then be fed back into the the ``Env`` instance. - """ +class PyMDPEnv(Module): + params: Dict + state: List[Array] + dependencies: Dict = field(static=True) - def reset(self, state=None): - """ - Resets the initial state of the environment. Depending on case, it may be common to return an initial observation as well. - """ - raise NotImplementedError + def __init__(self, params: Dict, dependencies: Dict, init_state: List[Array] = None): + self.params = params + self.dependencies = dependencies - def step(self, action): - """ - Steps the environment forward using an action. + if init_state is None: + init_state = jtu.tree_map(lambda x: jnp.argmax(x, -1), self.params["D"]) - Parameters - ---------- - action - The action, the type/format of which depends on the implementation. + self.state = init_state - Returns - --------- - observation - Sensory observations for an agent, the type/format of which depends on the implementation of ``step`` and the observation space of the agent. - """ - raise NotImplementedError + def reset(self, key: Optional[PRNGKeyArray] = None): + if key is None: + state = self.state + else: + probs = self.params["D"] + keys = list(jr.split(key, len(probs))) + state = jtu.tree_map(cat_sample, keys, probs) - def render(self): - """ - Rendering function, that typically creates a visual representation of the state of the environment at the current timestep. - """ - pass + return tree_at(lambda x: x.state, self, state) - def sample_action(self): - pass + @vmap + def step(self, rng_key: PRNGKeyArray, actions: Optional[Array] = None): + # return a list of random observations and states + key_state, key_obs = jr.split(rng_key) + state = self.state + if actions is not None: + actions = list(actions) + _select_probs = partial(select_probs, state) + state_probs = jtu.tree_map(_select_probs, self.params["B"], self.dependencies["B"], actions) - def get_likelihood_dist(self): - raise ValueError( - "<{}> does not provide a model specification".format(type(self).__name__) - ) + keys = list(jr.split(key_state, len(state_probs))) + new_state = jtu.tree_map(cat_sample, keys, state_probs) + else: + new_state = state - def get_transition_dist(self): - raise ValueError( - "<{}> does not provide a model specification".format(type(self).__name__) - ) + _select_probs = partial(select_probs, new_state) + obs_probs = jtu.tree_map(_select_probs, self.params["A"], self.dependencies["A"]) - def get_uniform_posterior(self): - raise ValueError( - "<{}> does not provide a model specification".format(type(self).__name__) - ) + keys = list(jr.split(key_obs, len(obs_probs))) + new_obs = jtu.tree_map(cat_sample, keys, obs_probs) + new_obs = jtu.tree_map(lambda x: jnp.expand_dims(x, -1), new_obs) - def get_rand_likelihood_dist(self): - raise ValueError( - "<{}> does not provide a model specification".format(type(self).__name__) - ) - - def get_rand_transition_dist(self): - raise ValueError( - "<{}> does not provide a model specification".format(type(self).__name__) - ) - - def __str__(self): - return "<{} instance>".format(type(self).__name__) + return new_obs, tree_at(lambda x: (x.state), self, new_state) diff --git a/pymdp/jax/envs/generalized_tmaze.py b/pymdp/envs/generalized_tmaze.py similarity index 100% rename from pymdp/jax/envs/generalized_tmaze.py rename to pymdp/envs/generalized_tmaze.py diff --git a/pymdp/jax/envs/graph_worlds.py b/pymdp/envs/graph_worlds.py similarity index 100% rename from pymdp/jax/envs/graph_worlds.py rename to pymdp/envs/graph_worlds.py diff --git a/pymdp/jax/envs/rollout.py b/pymdp/envs/rollout.py similarity index 100% rename from pymdp/jax/envs/rollout.py rename to pymdp/envs/rollout.py diff --git a/pymdp/inference.py b/pymdp/inference.py index 1b5296b5..d122757f 100644 --- a/pymdp/inference.py +++ b/pymdp/inference.py @@ -2,370 +2,141 @@ # -*- coding: utf-8 -*- # pylint: disable=no-member -import numpy as np +import jax.numpy as jnp +from pymdp.algos import run_factorized_fpi, run_mmp, run_vmp +from jax import tree_util as jtu, lax +from jax.experimental.sparse._base import JAXSparse +from jax.experimental import sparse +from jaxtyping import Array, ArrayLike -from pymdp import utils -from pymdp.maths import get_joint_likelihood_seq, get_joint_likelihood_seq_by_modality -from pymdp.algos import run_vanilla_fpi, run_vanilla_fpi_factorized, run_mmp, run_mmp_factorized, _run_mmp_testing +eps = jnp.finfo('float').eps -VANILLA = "VANILLA" -VMP = "VMP" -MMP = "MMP" -BP = "BP" -EP = "EP" -CV = "CV" - -def update_posterior_states_full( +def update_posterior_states( A, B, - prev_obs, - policies, - prev_actions=None, + obs, + past_actions, prior=None, - policy_sep_prior = True, - **kwargs, + qs_hist=None, + A_dependencies=None, + B_dependencies=None, + num_iter=16, + method="fpi", ): - """ - Update posterior over hidden states using marginal message passing - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - prev_obs: ``list`` - List of observations over time. Each observation in the list can be an ``int``, a ``list`` of ints, a ``tuple`` of ints, a one-hot vector or an object array of one-hot vectors. - policies: ``list`` of 2D ``numpy.ndarray`` - List that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - prior: ``numpy.ndarray`` of dtype object, default ``None`` - If provided, this a ``numpy.ndarray`` of dtype object, with one sub-array per hidden state factor, that stores the prior beliefs about initial states. - If ``None``, this defaults to a flat (uninformative) prior over hidden states. - policy_sep_prior: ``Bool``, default ``True`` - Flag determining whether the prior beliefs from the past are unconditioned on policy, or separated by /conditioned on the policy variable. - **kwargs: keyword arguments - Optional keyword arguments for the function ``algos.mmp.run_mmp`` - - Returns - --------- - qs_seq_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, - where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. - F: 1D ``numpy.ndarray`` - Vector of variational free energies for each policy - """ - - num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) - - prev_obs = utils.process_observation_seq(prev_obs, num_modalities, num_obs) - - lh_seq = get_joint_likelihood_seq(A, prev_obs, num_states) - - if prev_actions is not None: - prev_actions = np.stack(prev_actions,0) - - qs_seq_pi = utils.obj_array(len(policies)) - F = np.zeros(len(policies)) # variational free energy of policies - - for p_idx, policy in enumerate(policies): - # get sequence and the free energy for policy - qs_seq_pi[p_idx], F[p_idx] = run_mmp( - lh_seq, + if method == "fpi" or method == "ovf": + # format obs to select only last observation + curr_obs = jtu.tree_map(lambda x: x[-1], obs) + qs = run_factorized_fpi(A, curr_obs, prior, A_dependencies, num_iter=num_iter) + else: + # format B matrices using action sequences here + # TODO: past_actions can be None + if past_actions is not None: + nf = len(B) + actions_tree = [past_actions[:, i] for i in range(nf)] + + # move time steps to the leading axis (leftmost) + # this assumes that a policy is always specified as the rightmost axis of Bs + B = jtu.tree_map( + lambda b, a_idx: jnp.moveaxis(b[..., a_idx], -1, 0), B, - policy, - prev_actions=prev_actions, - prior= prior[p_idx] if policy_sep_prior else prior, - **kwargs + actions_tree, ) + else: + B = None - return qs_seq_pi, F - -def update_posterior_states_full_factorized( - A, - mb_dict, - B, - B_factor_list, - prev_obs, - policies, - prev_actions=None, - prior=None, - policy_sep_prior = True, - **kwargs, -): - """ - Update posterior over hidden states using marginal message passing - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - mb_dict: ``Dict`` - Dictionary with two keys (``A_factor_list`` and ``A_modality_list``), that stores the factor indices that influence each modality (``A_factor_list``) - and the modality indices influenced by each factor (``A_modality_list``). - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - B_factor_list: ``list`` of ``list`` of ``int`` - List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. - prev_obs: ``list`` - List of observations over time. Each observation in the list can be an ``int``, a ``list`` of ints, a ``tuple`` of ints, a one-hot vector or an object array of one-hot vectors. - policies: ``list`` of 2D ``numpy.ndarray`` - List that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - prior: ``numpy.ndarray`` of dtype object, default ``None`` - If provided, this a ``numpy.ndarray`` of dtype object, with one sub-array per hidden state factor, that stores the prior beliefs about initial states. - If ``None``, this defaults to a flat (uninformative) prior over hidden states. - policy_sep_prior: ``Bool``, default ``True`` - Flag determining whether the prior beliefs from the past are unconditioned on policy, or separated by /conditioned on the policy variable. - **kwargs: keyword arguments - Optional keyword arguments for the function ``algos.mmp.run_mmp`` - - Returns - --------- - qs_seq_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, - where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. - F: 1D ``numpy.ndarray`` - Vector of variational free energies for each policy - """ - - num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) - - prev_obs = utils.process_observation_seq(prev_obs, num_modalities, num_obs) - - lh_seq = get_joint_likelihood_seq_by_modality(A, prev_obs, num_states) - - if prev_actions is not None: - prev_actions = np.stack(prev_actions,0) - - qs_seq_pi = utils.obj_array(len(policies)) - F = np.zeros(len(policies)) # variational free energy of policies - - for p_idx, policy in enumerate(policies): - - # get sequence and the free energy for policy - qs_seq_pi[p_idx], F[p_idx] = run_mmp_factorized( - lh_seq, - mb_dict, + # outputs of both VMP and MMP should be a list of hidden state factors, where each qs[f].shape = (T, batch_dim, num_states_f) + if method == "vmp": + qs = run_vmp( + A, B, - B_factor_list, - policy, - prev_actions=prev_actions, - prior= prior[p_idx] if policy_sep_prior else prior, - **kwargs + obs, + prior, + A_dependencies, + B_dependencies, + num_iter=num_iter, ) - - return qs_seq_pi, F - -def _update_posterior_states_full_test( - A, - B, - prev_obs, - policies, - prev_actions=None, - prior=None, - policy_sep_prior = True, - **kwargs, -): - """ - Update posterior over hidden states using marginal message passing (TEST VERSION, with extra returns for benchmarking). - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``np.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - prev_obs: list - List of observations over time. Each observation in the list can be an ``int``, a ``list`` of ints, a ``tuple`` of ints, a one-hot vector or an object array of one-hot vectors. - prior: ``numpy.ndarray`` of dtype object, default None - If provided, this a ``numpy.ndarray`` of dtype object, with one sub-array per hidden state factor, that stores the prior beliefs about initial states. - If ``None``, this defaults to a flat (uninformative) prior over hidden states. - policy_sep_prior: Bool, default True - Flag determining whether the prior beliefs from the past are unconditioned on policy, or separated by /conditioned on the policy variable. - **kwargs: keyword arguments - Optional keyword arguments for the function ``algos.mmp.run_mmp`` - - Returns - -------- - qs_seq_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, - where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. - F: 1D ``numpy.ndarray`` - Vector of variational free energies for each policy - xn_seq_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy, for each iteration of marginal message passing. - Nesting structure is policy, iteration, factor, so ``xn_seq_p[p][itr][f]`` stores the ``num_states x infer_len`` - array of beliefs about hidden states at different time points of inference horizon. - vn_seq_pi: `numpy.ndarray`` of dtype object - Prediction errors over hidden states for each policy, for each iteration of marginal message passing. - Nesting structure is policy, iteration, factor, so ``vn_seq_p[p][itr][f]`` stores the ``num_states x infer_len`` - array of beliefs about hidden states at different time points of inference horizon. - """ - - num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) - - prev_obs = utils.process_observation_seq(prev_obs, num_modalities, num_obs) - - lh_seq = get_joint_likelihood_seq(A, prev_obs, num_states) - - if prev_actions is not None: - prev_actions = np.stack(prev_actions,0) - - qs_seq_pi = utils.obj_array(len(policies)) - xn_seq_pi = utils.obj_array(len(policies)) - vn_seq_pi = utils.obj_array(len(policies)) - F = np.zeros(len(policies)) # variational free energy of policies - - for p_idx, policy in enumerate(policies): - - # get sequence and the free energy for policy - qs_seq_pi[p_idx], F[p_idx], xn_seq_pi[p_idx], vn_seq_pi[p_idx] = _run_mmp_testing( - lh_seq, + if method == "mmp": + qs = run_mmp( + A, B, - policy, - prev_actions=prev_actions, - prior=prior[p_idx] if policy_sep_prior else prior, - **kwargs + obs, + prior, + A_dependencies, + B_dependencies, + num_iter=num_iter, ) - return qs_seq_pi, F, xn_seq_pi, vn_seq_pi - -def average_states_over_policies(qs_pi, q_pi): - """ - This function computes a expected posterior over hidden states with respect to the posterior over policies, - also known as the 'Bayesian model average of states with respect to policies'. - - Parameters - ---------- - qs_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy. Nesting structure is policies, factors, - where e.g. ``qs_pi[p][f]`` stores the marginal belief about factor ``f`` under policy ``p``. - q_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs about policies where ``len(q_pi) = num_policies`` - - Returns - --------- - qs_bma: ``numpy.ndarray`` of dtype object - Marginal posterior over hidden states for the current timepoint, - averaged across policies according to their posterior probability given by ``q_pi`` - """ - - num_factors = len(qs_pi[0]) # get the number of hidden state factors using the shape of the first-policy-conditioned posterior - num_states = [qs_f.shape[0] for qs_f in qs_pi[0]] # get the dimensionalities of each hidden state factor - - qs_bma = utils.obj_array(num_factors) - for f in range(num_factors): - qs_bma[f] = np.zeros(num_states[f]) - - for p_idx, policy_weight in enumerate(q_pi): - - for f in range(num_factors): - - qs_bma[f] += qs_pi[p_idx][f] * policy_weight - - return qs_bma - -def update_posterior_states(A, obs, prior=None, **kwargs): - """ - Update marginal posterior over hidden states using mean-field fixed point iteration - FPI or Fixed point iteration. - - See the following links for details: - http://www.cs.cmu.edu/~guestrin/Class/10708/recitations/r9/VI-view.pdf, slides 13- 18, and http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.137.221&rep=rep1&type=pdf, slides 24 - 38. - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``np.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, int or tuple - The observation (generated by the environment). If single modality, this can be a 1D ``np.ndarray`` - (one-hot vector representation) or an ``int`` (observation index) - If multi-modality, this can be ``np.ndarray`` of dtype object whose entries are 1D one-hot vectors, - or a tuple (of ``int``) - prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None - Prior beliefs about hidden states, to be integrated with the marginal likelihood to obtain - a posterior distribution. If not provided, prior is set to be equal to a flat categorical distribution (at the level of - the individual inference functions). - **kwargs: keyword arguments - List of keyword/parameter arguments corresponding to parameter values for the fixed-point iteration - algorithm ``algos.fpi.run_vanilla_fpi.py`` - - Returns - ---------- - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint - """ - - num_obs, num_states, num_modalities, _ = utils.get_model_dimensions(A = A) - - obs = utils.process_observation(obs, num_modalities, num_obs) - - if prior is not None: - prior = utils.to_obj_array(prior) - - return run_vanilla_fpi(A, obs, num_obs, num_states, prior, **kwargs) - -def update_posterior_states_factorized(A, obs, num_obs, num_states, mb_dict, prior=None, **kwargs): - """ - Update marginal posterior over hidden states using mean-field fixed point iteration - FPI or Fixed point iteration. This version identifies the Markov blanket of each factor using `A_factor_list` + if qs_hist is not None: + if method == "fpi" or method == "ovf": + qs_hist = jtu.tree_map( + lambda x, y: jnp.concatenate([x, jnp.expand_dims(y, 0)], 0), + qs_hist, + qs, + ) + else: + # TODO: return entire history of beliefs + qs_hist = qs + else: + if method == "fpi" or method == "ovf": + qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), qs) + else: + qs_hist = qs + + return qs_hist + +def joint_dist_factor(b: ArrayLike, filtered_qs: list[Array], actions: Array): + qs_last = filtered_qs[-1] + qs_filter = filtered_qs[:-1] + + def step_fn(qs_smooth, xs): + qs_f, action = xs + time_b = b[..., action] + qs_j = time_b * qs_f + norm = qs_j.sum(-1, keepdims=True) + if isinstance(norm, JAXSparse): + norm = sparse.todense(norm) + norm = jnp.where(norm == 0, eps, norm) + qs_backward_cond = qs_j / norm + qs_joint = qs_backward_cond * jnp.expand_dims(qs_smooth, -1) + qs_smooth = qs_joint.sum(-2) + if isinstance(qs_smooth, JAXSparse): + qs_smooth = sparse.todense(qs_smooth) + + # returns q(s_t), (q(s_t), q(s_t, s_t+1)) + return qs_smooth, (qs_smooth, qs_joint) + + # seq_qs will contain a sequence of smoothed marginals and joints + _, seq_qs = lax.scan( + step_fn, + qs_last, + (qs_filter, actions), + reverse=True, + unroll=2 + ) + + # we add the last filtered belief to smoothed beliefs + + qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0) + qs_joint_all = seq_qs[1] + if isinstance(qs_joint_all, JAXSparse): + qs_joint_all.shape = (len(actions),) + qs_joint_all.shape + return qs_smooth_all, qs_joint_all + + +def smoothing_ovf(filtered_post, B, past_actions): + assert len(filtered_post) == len(B) + nf = len(B) # number of factors + + joint = lambda b, qs, f: joint_dist_factor(b, qs, past_actions[..., f]) + + marginals_and_joints = ([], []) + for b, qs, f in zip(B, filtered_post, list(range(nf))): + marginals, joints = joint(b, qs, f) + marginals_and_joints[0].append(marginals) + marginals_and_joints[1].append(joints) + + return marginals_and_joints - See the following links for details: - http://www.cs.cmu.edu/~guestrin/Class/10708/recitations/r9/VI-view.pdf, slides 13- 18, and http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.137.221&rep=rep1&type=pdf, slides 24 - 38. - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``np.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, int or tuple - The observation (generated by the environment). If single modality, this can be a 1D ``np.ndarray`` - (one-hot vector representation) or an ``int`` (observation index) - If multi-modality, this can be ``np.ndarray`` of dtype object whose entries are 1D one-hot vectors, - or a tuple (of ``int``) - num_obs: ``list`` of ``int`` - List of dimensionalities of each observation modality - num_states: ``list`` of ``int`` - List of dimensionalities of each hidden state factor - mb_dict: ``Dict`` - Dictionary with two keys (``A_factor_list`` and ``A_modality_list``), that stores the factor indices that influence each modality (``A_factor_list``) - and the modality indices influenced by each factor (``A_modality_list``). - prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None - Prior beliefs about hidden states, to be integrated with the marginal likelihood to obtain - a posterior distribution. If not provided, prior is set to be equal to a flat categorical distribution (at the level of - the individual inference functions). - **kwargs: keyword arguments - List of keyword/parameter arguments corresponding to parameter values for the fixed-point iteration - algorithm ``algos.fpi.run_vanilla_fpi.py`` - Returns - ---------- - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint - """ - num_modalities = len(num_obs) - - obs = utils.process_observation(obs, num_modalities, num_obs) - - if prior is not None: - prior = utils.to_obj_array(prior) - - return run_vanilla_fpi_factorized(A, obs, num_obs, num_states, mb_dict, prior, **kwargs) diff --git a/pymdp/jax/__init__.py b/pymdp/jax/__init__.py deleted file mode 100644 index 5b957f0d..00000000 --- a/pymdp/jax/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .distribution import Distribution diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py deleted file mode 100644 index 61c485bf..00000000 --- a/pymdp/jax/agent.py +++ /dev/null @@ -1,673 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" Agent Class implementation in Jax - -__author__: Conor Heins, Dimitrije Markovic, Alexander Tschantz, Daphne Demekas, Brennan Klein - -""" - -import math as pymath -import jax.numpy as jnp -import jax.tree_util as jtu -from jax import nn, vmap, random -from . import inference, control, learning, utils, maths -from .distribution import Distribution, get_dependencies -from equinox import Module, field, tree_at - -from typing import List, Optional, Union -from jaxtyping import Array -from functools import partial - - -class Agent(Module): - """ - The Agent class, the highest-level API that wraps together processes for action, perception, and learning under active inference. - - The basic usage is as follows: - - >>> my_agent = Agent(A = A, B = C, ) - >>> observation = env.step(initial_action) - >>> qs = my_agent.infer_states(observation) - >>> q_pi, G = my_agent.infer_policies(qs) - >>> next_action = my_agent.sample_action() - >>> next_observation = env.step(next_action) - - This represents one timestep of an active inference process. Wrapping this step in a loop with an ``Env()`` class that returns - observations and takes actions as inputs, would entail a dynamic agent-environment interaction. - """ - - A: List[Array] - B: List[Array] - C: List[Array] - D: List[Array] - E: Array - pA: List[Array] - pB: List[Array] - gamma: Array - alpha: Array - - # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) - inductive_threshold: Array - # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) - inductive_epsilon: Array - # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints - H: List[Array] - # I matrices (one per hidden state factor) used for inductive inference -- these encode the 'reachability' matrices of goal states encoded in `self.H` - I: List[Array] - # static parameters not leaves of the PyTree - A_dependencies: Optional[List] = field(static=True) - B_dependencies: Optional[List] = field(static=True) - B_action_dependencies: Optional[List] = field(static=True) - # mapping from multi action dependencies to flat action dependencies for each B - action_maps: List[dict] = field(static=True) - batch_size: int = field(static=True) - num_iter: int = field(static=True) - num_obs: List[int] = field(static=True) - num_modalities: int = field(static=True) - num_states: List[int] = field(static=True) - num_factors: int = field(static=True) - num_controls: List[int] = field(static=True) - # Used to store original action dimensions in case there are multiple action dependencies per state - num_controls_multi: List[int] = field(static=True) - control_fac_idx: Optional[List[int]] = field(static=True) - # depth of planning during roll-outs (i.e. number of timesteps to look ahead when computing expected free energy of policies) - policy_len: int = field(static=True) - # depth of inductive inference (i.e. number of future timesteps to use when computing inductive `I` matrix) - inductive_depth: int = field(static=True) - # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) - policies: Array = field(static=True) - # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy - use_utility: bool = field(static=True) - # flag for whether to use state information gain ("salience") when computing expected free energy - use_states_info_gain: bool = field(static=True) - # flag for whether to use parameter information gain ("novelty") when computing expected free energy - use_param_info_gain: bool = field(static=True) - # flag for whether to use inductive inference ("intentional inference") when computing expected free energy - use_inductive: bool = field(static=True) - onehot_obs: bool = field(static=True) - # determinstic or stochastic action selection - action_selection: str = field(static=True) - # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") - sampling_mode: str = field(static=True) - # fpi, vmp, mmp, ovf - inference_algo: str = field(static=True) - - learn_A: bool = field(static=True) - learn_B: bool = field(static=True) - learn_C: bool = field(static=True) - learn_D: bool = field(static=True) - learn_E: bool = field(static=True) - - def __init__( - self, - A: Union[List[Array], List[Distribution]], - B: Union[List[Array], List[Distribution]], - C: Optional[List[Array]] = None, - D: Optional[List[Array]] = None, - E: Optional[Array] = None, - pA=None, - pB=None, - H=None, - I=None, - A_dependencies=None, - B_dependencies=None, - B_action_dependencies=None, - num_controls=None, - control_fac_idx=None, - policy_len=1, - policies=None, - gamma=1.0, - alpha=1.0, - inductive_depth=1, - inductive_threshold=0.1, - inductive_epsilon=1e-3, - use_utility=True, - use_states_info_gain=True, - use_param_info_gain=False, - use_inductive=False, - onehot_obs=False, - action_selection="deterministic", - sampling_mode="full", - inference_algo="fpi", - num_iter=16, - apply_batch=True, - learn_A=True, - learn_B=True, - learn_C=False, - learn_D=True, - learn_E=False, - ): - if B_action_dependencies is not None: - assert num_controls is not None, "Please specify num_controls for complex action dependencies" - - # extract high level variables - self.num_modalities = len(A) - self.num_factors = len(B) - self.num_controls = num_controls - self.num_controls_multi = num_controls - - # extract dependencies for A and B matrices - ( - self.A_dependencies, - self.B_dependencies, - self.B_action_dependencies, - ) = self._construct_dependencies(A_dependencies, B_dependencies, B_action_dependencies, A, B) - - # extract A, B, C and D tensors from optional Distributions - A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] - B = [jnp.array(b.data) if isinstance(b, Distribution) else b for b in B] - if C is not None: - C = [jnp.array(c.data) if isinstance(c, Distribution) else c for c in C] - if D is not None: - D = [jnp.array(d.data) if isinstance(d, Distribution) else d for d in D] - if E is not None: - E = jnp.array(E.data) if isinstance(E, Distribution) else E - if H is not None: - H = [jnp.array(h.data) if isinstance(h, Distribution) else h for h in H] - - self.batch_size = A[0].shape[0] if not apply_batch else 1 - - # flatten B action dims for multiple action dependencies - self.action_maps = None - self.num_controls_multi = num_controls - if ( - B_action_dependencies is not None - ): # note, this only works when B_action_dependencies is not the trivial case of [[0], [1], ...., [num_factors-1]] - policies_multi = control.construct_policies( - self.num_controls_multi, - self.num_controls_multi, - policy_len, - control_fac_idx, - ) - B, self.action_maps = self._flatten_B_action_dims(B, self.B_action_dependencies) - policies = self._construct_flattend_policies(policies_multi, self.action_maps) - self.sampling_mode = "full" - - # extract shapes from A and B - batch_dim_fn = lambda x: x.shape[0] if apply_batch else x.shape[1] - self.num_states = jtu.tree_map(batch_dim_fn, B) - self.num_obs = jtu.tree_map(batch_dim_fn, A) - self.num_controls = [B[f].shape[-1] for f in range(self.num_factors)] - - # static parameters - self.num_iter = num_iter - self.inference_algo = inference_algo - self.inductive_depth = inductive_depth - - # policy parameters - self.policy_len = policy_len - self.action_selection = action_selection - self.sampling_mode = sampling_mode - self.use_utility = use_utility - self.use_states_info_gain = use_states_info_gain - self.use_param_info_gain = use_param_info_gain - self.use_inductive = use_inductive - - # learning parameters - self.learn_A = learn_A - self.learn_B = learn_B - self.learn_C = learn_C - self.learn_D = learn_D - self.learn_E = learn_E - - # construct control factor indices - if control_fac_idx == None: - self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] - else: - msg = "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." - assert max(control_fac_idx) <= (self.num_factors - 1), msg - self.control_fac_idx = control_fac_idx - - # construct policies - if policies is None: - self.policies = control.construct_policies( - self.num_states, - self.num_controls, - self.policy_len, - self.control_fac_idx, - ) - else: - self.policies = policies - - # setup pytree leaves A, B, C, D, E, pA, pB, H, I - if apply_batch: - A = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), A) - B = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), B) - - if pA is not None and apply_batch: - pA = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pA) - - if pB is not None and apply_batch: - pB = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pB) - - if C is None: - C = [jnp.ones((self.batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities)] - elif apply_batch: - C = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), C) - - if D is None: - D = [jnp.ones((self.batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors)] - elif apply_batch: - D = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), D) - - if E is None: - E = jnp.ones((self.batch_size, len(self.policies))) / len(self.policies) - elif apply_batch: - E = jnp.broadcast_to(E, (self.batch_size,) + E.shape) - - if H is not None and apply_batch: - H = jtu.tree_map( - lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), - H, - ) - - self.A = A - self.B = B - self.C = C - self.D = D - self.E = E - self.H = H - self.I = I - self.pA = pA - self.pB = pB - - self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) - self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) - - self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) - self.inductive_epsilon = jnp.broadcast_to(inductive_epsilon, (self.batch_size,)) - - if self.use_inductive and H is not None: - I = vmap( - partial( - control.generate_I_matrix, - depth=self.inductive_depth, - ) - )(H, B, self.inductive_threshold) - elif self.use_inductive and I is not None: - I = I - else: - I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), D) - - self.onehot_obs = onehot_obs - - # validate model - self._validate() - - @property - def unique_multiactions(self): - size = pymath.prod(self.num_controls) - return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) - - def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1., lr_pB=1., **kwargs): - agent = self - beliefs_B = beliefs_A if beliefs_B is None else beliefs_B - if self.inference_algo == 'ovf': - smoothed_marginals_and_joints = vmap(inference.smoothing_ovf)(beliefs_A, self.B, actions) - marginal_beliefs = smoothed_marginals_and_joints[0] - joint_beliefs = smoothed_marginals_and_joints[1] - else: - marginal_beliefs = beliefs_A - if self.learn_B: - nf = len(beliefs_B) - joint_fn = lambda f: [beliefs_B[f][:, 1:]] + [beliefs_B[f_idx][:, :-1] for f_idx in self.B_dependencies[f]] - joint_beliefs = jtu.tree_map(joint_fn, list(range(nf))) - - if self.learn_A: - update_A = partial( - learning.update_obs_likelihood_dirichlet, - A_dependencies=self.A_dependencies, - num_obs=self.num_obs, - onehot_obs=self.onehot_obs, - ) - - lr = jnp.broadcast_to(lr_pA, (self.batch_size,)) - qA, E_qA = vmap(update_A)( - self.pA, - self.A, - outcomes, - marginal_beliefs, - lr=lr, - ) - - agent = tree_at(lambda x: (x.A, x.pA), agent, (E_qA, qA)) - - if self.learn_B: - assert beliefs_B[0].shape[1] == actions.shape[1] + 1 - update_B = partial( - learning.update_state_transition_dirichlet, - num_controls=self.num_controls - ) - - lr = jnp.broadcast_to(lr_pB, (self.batch_size,)) - qB, E_qB = vmap(update_B)( - self.pB, - joint_beliefs, - actions, - lr=lr - ) - - # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece - if self.use_inductive and self.H is not None: - I_updated = vmap(control.generate_I_matrix)(self.H, E_qB, self.inductive_threshold, self.inductive_depth) - else: - I_updated = self.I - - agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) - - return agent - - def infer_states(self, observations, empirical_prior, *, past_actions=None, qs_hist=None, mask=None): - """ - Update approximate posterior over hidden states by solving variational inference problem, given an observation. - - Parameters - ---------- - observations: ``list`` or ``tuple`` of ints - The observation input. Each entry ``observation[m]`` stores one-hot vectors representing the observations for modality ``m``. - past_actions: ``list`` or ``tuple`` of ints - The action input. Each entry ``past_actions[f]`` stores indices (or one-hots?) representing the actions for control factor ``f``. - empirical_prior: ``list`` or ``tuple`` of ``jax.numpy.ndarray`` of dtype object - Empirical prior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``empirical_prior`` variable may be a matrix (or list of matrices) - of additional dimensions to encode extra conditioning variables like timepoint and policy. - Returns - --------- - qs: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``qs`` variable will have additional sub-structure to reflect whether - beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` - at timepoint ``t_idx``. - """ - - # TODO: infer this from shapes - if not self.onehot_obs: - o_vec = [nn.one_hot(o, self.num_obs[m]) for m, o in enumerate(observations)] - else: - o_vec = observations - - A = self.A - if mask is not None: - for i, m in enumerate(mask): - o_vec[i] = m * o_vec[i] + (1 - m) * jnp.ones_like(o_vec[i]) / self.num_obs[i] - A[i] = m * A[i] + (1 - m) * jnp.ones_like(A[i]) / self.num_obs[i] - - infer_states = partial( - inference.update_posterior_states, - A_dependencies=self.A_dependencies, - B_dependencies=self.B_dependencies, - num_iter=self.num_iter, - method=self.inference_algo, - ) - - output = vmap(infer_states)( - A, - self.B, - o_vec, - past_actions, - prior=empirical_prior, - qs_hist=qs_hist - ) - - return output - - def update_empirical_prior(self, action, qs): - # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t - - # this computation of the predictive prior is correct only for fully factorised Bs. - if self.inference_algo in ['mmp', 'vmp']: - # in the case of the 'mmp' or 'vmp' we have to use D as prior parameter for infer states - pred = self.D - else: - qs_last = jtu.tree_map( lambda x: x[:, -1], qs) - propagate_beliefs = partial(control.compute_expected_state, B_dependencies=self.B_dependencies) - pred = vmap(propagate_beliefs)(qs_last, self.B, action) - - return (pred, qs) - - def infer_policies(self, qs: List): - """ - Perform policy inference by optimizing a posterior (categorical) distribution over policies. - This distribution is computed as the softmax of ``G * gamma + lnE`` where ``G`` is the negative expected - free energy of policies, ``gamma`` is a policy precision and ``lnE`` is the (log) prior probability of policies. - This function returns the posterior over policies as well as the negative expected free energy of each policy. - - Returns - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - G: 1D ``numpy.ndarray`` - Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. - """ - - latest_belief = jtu.tree_map(lambda x: x[:, -1], qs) # only get the posterior belief held at the current timepoint - infer_policies = partial( - control.update_posterior_policies_inductive, - self.policies, - A_dependencies=self.A_dependencies, - B_dependencies=self.B_dependencies, - use_utility=self.use_utility, - use_states_info_gain=self.use_states_info_gain, - use_param_info_gain=self.use_param_info_gain, - use_inductive=self.use_inductive - ) - - q_pi, G = vmap(infer_policies)( - latest_belief, - self.A, - self.B, - self.C, - self.E, - self.pA, - self.pB, - I = self.I, - gamma=self.gamma, - inductive_epsilon=self.inductive_epsilon - ) - - return q_pi, G - - def multiaction_probabilities(self, q_pi: Array): - """ - Compute probabilities of unique multi-actions from the posterior over policies. - - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - - Returns - ---------- - multi-action: 1D ``jax.numpy.ndarray`` - Vector containing probabilities of possible multi-actions for different factors - """ - - if self.sampling_mode == "marginal": - get_marginals = partial(control.get_marginals, policies=self.policies, num_controls=self.num_controls) - marginals = get_marginals(q_pi) - outer = lambda a, b: jnp.outer(a, b).reshape(-1) - marginals = jtu.tree_reduce(outer, marginals) - - elif self.sampling_mode == "full": - locs = jnp.all( - self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), - -1, - ) - get_marginals = lambda x: jnp.where(locs, x, 0.).sum(-1) - marginals = vmap(get_marginals)(q_pi) - - return marginals - - def sample_action(self, q_pi: Array, rng_key=None): - """ - Sample or select a discrete action from the posterior over control states. - - Returns - ---------- - action: 1D ``jax.numpy.ndarray`` - Vector containing the indices of the actions for each control factor - action_probs: 2D ``jax.numpy.ndarray`` - Array of action probabilities - """ - if (rng_key is None) and (self.action_selection == "stochastic"): - raise ValueError("Please provide a random number generator key to sample actions stochastically") - - if self.sampling_mode == "marginal": - sample_action = partial(control.sample_action, self.policies, self.num_controls, action_selection=self.action_selection) - action = vmap(sample_action)(q_pi, alpha=self.alpha, rng_key=rng_key) - elif self.sampling_mode == "full": - sample_policy = partial(control.sample_policy, self.policies, action_selection=self.action_selection) - action = vmap(sample_policy)(q_pi, alpha=self.alpha, rng_key=rng_key) - - return action - - def decode_multi_actions(self, action): - """Decode flattened actions to multiple actions""" - if self.action_maps is None: - return action - - action_multi = jnp.zeros((self.batch_size, len(self.num_controls_multi))).astype(action.dtype) - for f, action_map in enumerate(self.action_maps): - if action_map["multi_dependency"] == []: - continue - - action_multi_f = utils.index_to_combination(action[..., f], action_map["multi_dims"]) - action_multi = action_multi.at[..., action_map["multi_dependency"]].set(action_multi_f) - return action_multi - - def encode_multi_actions(self, action_multi): - """Encode multiple actions to flattened actions""" - if self.action_maps is None: - return action_multi - - action = jnp.zeros((self.batch_size, len(self.num_controls))).astype(action_multi.dtype) - for f, action_map in enumerate(self.action_maps): - if action_map["multi_dependency"] == []: - action = action.at[..., f].set(jnp.zeros_like(action_multi[..., 0])) - continue - - action_f = utils.get_combination_index( - action_multi[..., action_map["multi_dependency"]], - action_map["multi_dims"], - ) - action = action.at[..., f].set(action_f) - return action - - def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_dependencies, A, B): - if A_dependencies is not None: - A_dependencies = A_dependencies - elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): - A_dependencies, _ = get_dependencies(A, B) - else: - A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] - - if B_dependencies is not None: - B_dependencies = B_dependencies - elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): - _, B_dependencies = get_dependencies(A, B) - else: - B_dependencies = [[f] for f in range(self.num_factors)] - - """TODO: check B action shape""" - if B_action_dependencies is not None: - B_action_dependencies = B_action_dependencies - else: - B_action_dependencies = [[f] for f in range(self.num_factors)] - return A_dependencies, B_dependencies, B_action_dependencies - - def _flatten_B_action_dims(self, B, B_action_dependencies): - assert hasattr(B[0], "shape"), "Elements of B must be tensors and have attribute shape" - action_maps = [] # mapping from multi action dependencies to flat action dependencies for each B - B_flat = [] - for i, (B_f, action_dependency) in enumerate(zip(B, B_action_dependencies)): - if action_dependency == []: - B_flat.append(jnp.expand_dims(B_f, axis=-1)) - action_maps.append( - { - "multi_dependency": [], - "multi_dims": [], - "flat_dependency": [i], - "flat_dims": [1], - } - ) - continue - - dims = [self.num_controls_multi[d] for d in action_dependency] - target_shape = list(B_f.shape)[: -len(action_dependency)] + [pymath.prod(dims)] - B_flat.append(B_f.reshape(target_shape)) - action_maps.append( - { - "multi_dependency": action_dependency, - "multi_dims": dims, - "flat_dependency": [i], - "flat_dims": [pymath.prod(dims)], - } - ) - return B_flat, action_maps - - def _construct_flattend_policies(self, policies, action_maps): - policies_flat = [] - for action_map in action_maps: - if action_map["multi_dependency"] == []: - policies_flat.append(jnp.zeros_like(policies[..., 0])) - continue - - policies_flat.append( - utils.get_combination_index( - policies[..., action_map["multi_dependency"]], - action_map["multi_dims"], - ) - ) - policies_flat = jnp.stack(policies_flat, axis=-1) - return policies_flat - - def _get_default_params(self): - method = self.inference_algo - default_params = None - if method == "VANILLA": - default_params = {"num_iter": 8, "dF": 1.0, "dF_tol": 0.001} - elif method == "MMP": - raise NotImplementedError("MMP is not implemented") - elif method == "VMP": - raise NotImplementedError("VMP is not implemented") - elif method == "BP": - raise NotImplementedError("BP is not implemented") - elif method == "EP": - raise NotImplementedError("EP is not implemented") - elif method == "CV": - raise NotImplementedError("CV is not implemented") - - return default_params - - def _validate(self): - for m in range(self.num_modalities): - factor_dims = tuple([self.num_states[f] for f in self.A_dependencies[m]]) - assert ( - self.A[m].shape[2:] == factor_dims - ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." - if self.pA != None: - assert ( - self.pA[m].shape[2:] == factor_dims - ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of pA[{m}]..." - assert max(self.A_dependencies[m]) <= ( - self.num_factors - 1 - ), f"Check modality {m} of `A_dependencies` - must be consistent with `num_states` and `num_factors`..." - - for f in range(self.num_factors): - factor_dims = tuple([self.num_states[f] for f in self.B_dependencies[f]]) - assert ( - self.B[f].shape[2:-1] == factor_dims - ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B[{f}]..." - if self.pB != None: - assert ( - self.pB[f].shape[2:-1] == factor_dims - ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB[{f}]..." - assert max(self.B_dependencies[f]) <= ( - self.num_factors - 1 - ), f"Check factor {f} of `B_dependencies` - must be consistent with `num_states` and `num_factors`..." - - for factor_idx in self.control_fac_idx: - assert ( - self.num_controls[factor_idx] > 1 - ), "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" \ No newline at end of file diff --git a/pymdp/jax/control.py b/pymdp/jax/control.py deleted file mode 100644 index 122ee911..00000000 --- a/pymdp/jax/control.py +++ /dev/null @@ -1,476 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# pylint: disable=no-member -# pylint: disable=not-an-iterable - -import itertools -import jax.numpy as jnp -import jax.tree_util as jtu -from typing import List, Tuple, Optional -from functools import partial -from jax.scipy.special import xlogy -from jax import lax, jit, vmap, nn -from jax import random as jr -from itertools import chain -from jaxtyping import Array - -from pymdp.jax.maths import * -# import pymdp.jax.utils as utils - -def get_marginals(q_pi, policies, num_controls): - """ - Computes the marginal posterior(s) over actions by integrating their posterior probability under the policies that they appear within. - - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor. - - Returns - ---------- - action_marginals: ``list`` of ``jax.numpy.ndarrays`` - List of arrays corresponding to marginal probability of each action possible action - """ - num_factors = len(num_controls) - - action_marginals = [] - for factor_i in range(num_factors): - actions = jnp.arange(num_controls[factor_i])[:, None] - action_marginals.append(jnp.where(actions==policies[:, 0, factor_i], q_pi, 0).sum(-1)) - - return action_marginals - -def sample_action(policies, num_controls, q_pi, action_selection="deterministic", alpha=16.0, rng_key=None): - """ - Samples an action from posterior marginals, one action per control factor. - - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor. - action_selection: string, default "deterministic" - String indicating whether whether the selected action is chosen as the maximum of the posterior over actions, - or whether it's sampled from the posterior marginal over actions - alpha: float, default 16.0 - Action selection precision -- the inverse temperature of the softmax that is used to scale the - action marginals before sampling. This is only used if ``action_selection`` argument is "stochastic" - - Returns - ---------- - selected_policy: 1D ``numpy.ndarray`` - Vector containing the indices of the actions for each control factor - """ - - marginal = get_marginals(q_pi, policies, num_controls) - - if action_selection == 'deterministic': - selected_policy = jtu.tree_map(lambda x: jnp.argmax(x, -1), marginal) - elif action_selection == 'stochastic': - logits = lambda x: alpha * log_stable(x) - selected_policy = jtu.tree_map(lambda x: jr.categorical(rng_key, logits(x)), marginal) - else: - raise NotImplementedError - - return jnp.array(selected_policy) - -def sample_policy(policies, q_pi, action_selection="deterministic", alpha = 16.0, rng_key=None): - - if action_selection == "deterministic": - policy_idx = jnp.argmax(q_pi) - elif action_selection == "stochastic": - log_p_policies = log_stable(q_pi) * alpha - policy_idx = jr.categorical(rng_key, log_p_policies) - - selected_multiaction = policies[policy_idx, 0] - return selected_multiaction - -def construct_policies(num_states, num_controls = None, policy_len=1, control_fac_idx=None): - """ - Generate a ``list`` of policies. The returned array ``policies`` is a ``list`` that stores one policy per entry. - A particular policy (``policies[i]``) has shape ``(num_timesteps, num_factors)`` - where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. - - Parameters - ---------- - num_states: ``list`` of ``int`` - ``list`` of the dimensionalities of each hidden state factor - num_controls: ``list`` of ``int``, default ``None`` - ``list`` of the dimensionalities of each control state factor. If ``None``, then is automatically computed as the dimensionality of each hidden state factor that is controllable - policy_len: ``int``, default 1 - temporal depth ("planning horizon") of policies - control_fac_idx: ``list`` of ``int`` - ``list`` of indices of the hidden state factors that are controllable (i.e. those state factors ``i`` where ``num_controls[i] > 1``) - - Returns - ---------- - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - """ - - num_factors = len(num_states) - if control_fac_idx is None: - if num_controls is not None: - control_fac_idx = [f for f, n_c in enumerate(num_controls) if n_c > 1] - else: - control_fac_idx = list(range(num_factors)) - - if num_controls is None: - num_controls = [num_states[c_idx] if c_idx in control_fac_idx else 1 for c_idx in range(num_factors)] - - x = num_controls * policy_len - policies = list(itertools.product(*[list(range(i)) for i in x])) - - for pol_i in range(len(policies)): - policies[pol_i] = jnp.array(policies[pol_i]).reshape(policy_len, num_factors) - - return jnp.stack(policies) - - -def update_posterior_policies(policy_matrix, qs_init, A, B, C, E, pA, pB, A_dependencies, B_dependencies, gamma=16.0, use_utility=True, use_states_info_gain=True, use_param_info_gain=False): - # policy --> n_levels_factor_f x 1 - # factor --> n_levels_factor_f x n_policies - ## vmap across policies - compute_G_fixed_states = partial(compute_G_policy, qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, - use_utility=use_utility, use_states_info_gain=use_states_info_gain, use_param_info_gain=use_param_info_gain) - - # only in the case of policy-dependent qs_inits - # in_axes_list = (1,) * n_factors - # all_efe_of_policies = vmap(compute_G_policy, in_axes=(in_axes_list, 0))(qs_init_pi, policy_matrix) - - # policies needs to be an NDarray of shape (n_policies, n_timepoints, n_control_factors) - neg_efe_all_policies = vmap(compute_G_fixed_states)(policy_matrix) - - return nn.softmax(gamma * neg_efe_all_policies + log_stable(E)), neg_efe_all_policies - -def compute_expected_state(qs_prior, B, u_t, B_dependencies=None): - """ - Compute posterior over next state, given belief about previous state, transition model and action... - """ - #Note: this algorithm is only correct if each factor depends only on itself. For any interactions, - # we will have empirical priors with codependent factors. - assert len(u_t) == len(B) - qs_next = [] - for B_f, u_f, deps in zip(B, u_t, B_dependencies): - relevant_factors = [qs_prior[idx] for idx in deps] - qs_next_f = factor_dot(B_f[...,u_f], relevant_factors, keep_dims=(0,)) - qs_next.append(qs_next_f) - - # P(s'|s, u) = \sum_{s, u} P(s'|s) P(s|u) P(u|pi)P(pi) because u pi - return qs_next - -def compute_expected_state_and_Bs(qs_prior, B, u_t): - """ - Compute posterior over next state, given belief about previous state, transition model and action... - """ - assert len(u_t) == len(B) - qs_next = [] - Bs = [] - for qs_f, B_f, u_f in zip(qs_prior, B, u_t): - qs_next.append( B_f[..., u_f].dot(qs_f) ) - Bs.append(B_f[..., u_f]) - - return qs_next, Bs - -def compute_expected_obs(qs, A, A_dependencies): - """ - New version of expected observation (computation of Q(o|pi)) that takes into account sparse dependencies between observation - modalities and hidden state factors - """ - - def compute_expected_obs_modality(A_m, m): - deps = A_dependencies[m] - relevant_factors = [qs[idx] for idx in deps] - return factor_dot(A_m, relevant_factors, keep_dims=(0,)) - - return jtu.tree_map(compute_expected_obs_modality, A, list(range(len(A)))) - -def compute_info_gain(qs, qo, A, A_dependencies): - """ - New version of expected information gain that takes into account sparse dependencies between observation modalities and hidden state factors. - """ - - def compute_info_gain_for_modality(qo_m, A_m, m): - H_qo = stable_entropy(qo_m) - H_A_m = - stable_xlogx(A_m).sum(0) - deps = A_dependencies[m] - relevant_factors = [qs[idx] for idx in deps] - qs_H_A_m = factor_dot(H_A_m, relevant_factors) - return H_qo - qs_H_A_m - - info_gains_per_modality = jtu.tree_map(compute_info_gain_for_modality, qo, A, list(range(len(A)))) - - return jtu.tree_reduce(lambda x,y: x+y, info_gains_per_modality) - -def compute_expected_utility(qo, C, t=0): - - util = 0. - for o_m, C_m in zip(qo, C): - if C_m.ndim > 1: - util += (o_m * C_m[t]).sum() - else: - util += (o_m * C_m).sum() - - return util - -def calc_pA_info_gain(pA, qo, qs, A_dependencies): - """ - Compute expected Dirichlet information gain about parameters ``pA`` for a given posterior predictive distribution over observations ``qo`` and states ``qs``. - - Parameters - ---------- - pA: ``numpy.ndarray`` of dtype object - Dirichlet parameters over observation model (same shape as ``A``) - qo: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over observations; stores the beliefs about - observations expected under the policy at some arbitrary time ``t`` - qs: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states, stores the beliefs about - hidden states expected under the policy at some arbitrary time ``t`` - - Returns - ------- - infogain_pA: float - Surprise (about Dirichlet parameters) expected for the pair of posterior predictive distributions ``qo`` and ``qs`` - """ - - def infogain_per_modality(pa_m, qo_m, m): - wa_m = spm_wnorm(pa_m) * (pa_m > 0.) - fd = factor_dot(wa_m, [s for f, s in enumerate(qs) if f in A_dependencies[m]], keep_dims=(0,))[..., None] - return qo_m.dot(fd) - - pA_infogain_per_modality = jtu.tree_map( - infogain_per_modality, pA, qo, list(range(len(qo))) - ) - - infogain_pA = jtu.tree_reduce(lambda x, y: x + y, pA_infogain_per_modality) - return infogain_pA.squeeze(-1) - -def calc_pB_info_gain(pB, qs_t, qs_t_minus_1, B_dependencies, u_t_minus_1): - """ - Compute expected Dirichlet information gain about parameters ``pB`` under a given policy - - Parameters - ---------- - pB: ``Array`` of dtype object - Dirichlet parameters over transition model (same shape as ``B``) - qs_t: ``list`` of ``Array`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy at time ``t`` - qs_t_minus_1: ``list`` of ``Array`` of dtype object - Posterior over hidden states at time ``t-1`` (before receiving observations) - u_t_minus_1: "Array" - Actions in time step t-1 for each factor - - Returns - ------- - infogain_pB: float - Surprise (about Dirichlet parameters) expected under the policy in question - """ - - wB = lambda pb: spm_wnorm(pb) * (pb > 0.) - fd = lambda x, i: factor_dot(x, [s for f, s in enumerate(qs_t_minus_1) if f in B_dependencies[i]], keep_dims=(0,))[..., None] - - pB_infogain_per_factor = jtu.tree_map(lambda pb, qs, f: qs.dot(fd(wB(pb[..., u_t_minus_1[f]]), f)), pB, qs_t, list(range(len(qs_t)))) - infogain_pB = jtu.tree_reduce(lambda x, y: x + y, pB_infogain_per_factor)[0] - return infogain_pB - -def compute_G_policy(qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, policy_i, use_utility=True, use_states_info_gain=True, use_param_info_gain=False): - """ Write a version of compute_G_policy that does the same computations as `compute_G_policy` but using `lax.scan` instead of a for loop. """ - - def scan_body(carry, t): - - qs, neg_G = carry - - qs_next = compute_expected_state(qs, B, policy_i[t], B_dependencies) - - qo = compute_expected_obs(qs_next, A, A_dependencies) - - info_gain = compute_info_gain(qs_next, qo, A, A_dependencies) if use_states_info_gain else 0. - - utility = compute_expected_utility(qo, C, t) if use_utility else 0. - - param_info_gain = calc_pA_info_gain(pA, qo, qs_next, A_dependencies) if use_param_info_gain else 0. - param_info_gain += calc_pB_info_gain(pB, qs_next, qs, B_dependencies, policy_i[t]) if use_param_info_gain else 0. - - neg_G += info_gain + utility + param_info_gain - - return (qs_next, neg_G), None - - qs = qs_init - neg_G = 0. - final_state, _ = lax.scan(scan_body, (qs, neg_G), jnp.arange(policy_i.shape[0])) - qs_final, neg_G = final_state - return neg_G - -def compute_G_policy_inductive(qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, I, policy_i, inductive_epsilon=1e-3, use_utility=True, use_states_info_gain=True, use_param_info_gain=False, use_inductive=False): - """ - Write a version of compute_G_policy that does the same computations as `compute_G_policy` but using `lax.scan` instead of a for loop. - This one further adds computations used for inductive planning. - """ - - def scan_body(carry, t): - - qs, neg_G = carry - - qs_next = compute_expected_state(qs, B, policy_i[t], B_dependencies) - - qo = compute_expected_obs(qs_next, A, A_dependencies) - - info_gain = compute_info_gain(qs_next, qo, A, A_dependencies) if use_states_info_gain else 0. - - utility = compute_expected_utility(qo, C, t) if use_utility else 0. - - inductive_value = calc_inductive_value_t(qs_init, qs_next, I, epsilon=inductive_epsilon) if use_inductive else 0. - - param_info_gain = 0. - if pA is not None: - param_info_gain += calc_pA_info_gain(pA, qo, qs_next, A_dependencies) if use_param_info_gain else 0. - if pB is not None: - param_info_gain += calc_pB_info_gain(pB, qs_next, qs, B_dependencies, policy_i[t]) if use_param_info_gain else 0. - - neg_G += info_gain + utility - param_info_gain + inductive_value - - return (qs_next, neg_G), None - - qs = qs_init - neg_G = 0. - final_state, _ = lax.scan(scan_body, (qs, neg_G), jnp.arange(policy_i.shape[0])) - _, neg_G = final_state - return neg_G - -def update_posterior_policies_inductive(policy_matrix, qs_init, A, B, C, E, pA, pB, A_dependencies, B_dependencies, I, gamma=16.0, inductive_epsilon=1e-3, use_utility=True, use_states_info_gain=True, use_param_info_gain=False, use_inductive=True): - # policy --> n_levels_factor_f x 1 - # factor --> n_levels_factor_f x n_policies - ## vmap across policies - compute_G_fixed_states = partial(compute_G_policy_inductive, qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, I, inductive_epsilon=inductive_epsilon, - use_utility=use_utility, use_states_info_gain=use_states_info_gain, use_param_info_gain=use_param_info_gain, use_inductive=use_inductive) - - # only in the case of policy-dependent qs_inits - # in_axes_list = (1,) * n_factors - # all_efe_of_policies = vmap(compute_G_policy, in_axes=(in_axes_list, 0))(qs_init_pi, policy_matrix) - - # policies needs to be an NDarray of shape (n_policies, n_timepoints, n_control_factors) - neg_efe_all_policies = vmap(compute_G_fixed_states)(policy_matrix) - - return nn.softmax(gamma * neg_efe_all_policies + log_stable(E)), neg_efe_all_policies - -def generate_I_matrix(H: List[Array], B: List[Array], threshold: float, depth: int): - """ - Generates the `I` matrices used in inductive planning. These matrices stores the probability of reaching the goal state backwards from state j (columns) after i (rows) steps. - Parameters - ---------- - H: ``list`` of ``jax.numpy.ndarray`` - Constraints over desired states (1 if you want to reach that state, 0 otherwise) - B: ``list`` of ``jax.numpy.ndarray`` - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - threshold: ``float`` - The threshold for pruning transitions that are below a certain probability - depth: ``int`` - The temporal depth of the backward induction - - Returns - ---------- - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - """ - - num_factors = len(H) - I = [] - for f in range(num_factors): - """ - For each factor, we need to compute the probability of reaching the goal state - """ - - # If there exists an action that allows transitioning - # from state to next_state, with probability larger than threshold - # set b_reachable[current_state, previous_state] to 1 - b_reachable = jnp.where(B[f] > threshold, 1.0, 0.0).sum(axis=-1) - b_reachable = jnp.where(b_reachable > 0., 1.0, 0.0) - - def step_fn(carry, i): - I_prev = carry - I_next = jnp.dot(b_reachable, I_prev) - I_next = jnp.where(I_next > 0.1, 1.0, 0.0) # clamp I_next to 1.0 if it's above 0.1, 0 otherwise - return I_next, I_next - - _, I_f = lax.scan(step_fn, H[f], jnp.arange(depth-1)) - I_f = jnp.concatenate([H[f][None,...], I_f], axis=0) - - I.append(I_f) - - return I - -def calc_inductive_value_t(qs, qs_next, I, epsilon=1e-3): - """ - Computes the inductive value of a state at a particular time (translation of @tverbele's `numpy` implementation of inductive planning, formerly - called `calc_inductive_cost`). - - Parameters - ---------- - qs: ``list`` of ``jax.numpy.ndarray`` - Marginal posterior beliefs over hidden states at a given timepoint. - qs_next: ```list`` of ``jax.numpy.ndarray`` - Predictive posterior beliefs over hidden states expected under the policy. - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - epsilon: ``float`` - Value that tunes the strength of the inductive value (how much it contributes to the expected free energy of policies) - - Returns - ------- - inductive_val: float - Value (negative inductive cost) of visiting this state using backwards induction under the policy in question - """ - - # initialise inductive value - inductive_val = 0. - - log_eps = log_stable(epsilon) - for f in range(len(qs)): - # we also assume precise beliefs here?! - idx = jnp.argmax(qs[f]) - # m = arg max_n p_n < sup p - - # i.e. find first entry at which I_idx equals 1, and then m is the index before that - m = jnp.maximum(jnp.argmax(I[f][:, idx])-1, 0) - I_m = (1. - I[f][m, :]) * log_eps - path_available = jnp.clip(I[f][:, idx].sum(0), min=0, max=1) # if there are any 1's at all in that column of I, then this == 1, otherwise 0 - inductive_val += path_available * I_m.dot(qs_next[f]) # scaling by path_available will nullify the addition of inductive value in the case we find no path to goal (i.e. when no goal specified) - - return inductive_val - -# if __name__ == '__main__': - -# from jax import random as jr -# key = jr.PRNGKey(1) -# num_obs = [3, 4] - -# A = [jr.uniform(key, shape = (no, 2, 2)) for no in num_obs] -# B = [jr.uniform(key, shape = (2, 2, 2)), jr.uniform(key, shape = (2, 2, 2))] -# C = [log_stable(jnp.array([0.8, 0.1, 0.1])), log_stable(jnp.ones(4)/4)] -# policy_1 = jnp.array([[0, 1], -# [1, 1]]) -# policy_2 = jnp.array([[1, 0], -# [0, 0]]) -# policy_matrix = jnp.stack([policy_1, policy_2]) # 2 x 2 x 2 tensor - -# qs_init = [jnp.ones(2)/2, jnp.ones(2)/2] -# neg_G_all_policies = jit(update_posterior_policies)(policy_matrix, qs_init, A, B, C) -# print(neg_G_all_policies) diff --git a/pymdp/jax/envs/__init__.py b/pymdp/jax/envs/__init__.py deleted file mode 100644 index afac7577..00000000 --- a/pymdp/jax/envs/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .env import PyMDPEnv -from .graph_worlds import GraphEnv diff --git a/pymdp/jax/envs/env.py b/pymdp/jax/envs/env.py deleted file mode 100644 index 81c3a062..00000000 --- a/pymdp/jax/envs/env.py +++ /dev/null @@ -1,73 +0,0 @@ -from typing import Optional, List, Dict -from jaxtyping import Array, PRNGKeyArray -from functools import partial - -from equinox import Module, field, tree_at -from jax import vmap, random as jr, tree_util as jtu -import jax.numpy as jnp - - -def select_probs(positions, matrix, dependency_list, actions=None): - args = tuple(p for i, p in enumerate(positions) if i in dependency_list) - args += () if actions is None else (actions,) - - return matrix[..., *args] - - -def cat_sample(key, p): - a = jnp.arange(p.shape[-1]) - if p.ndim > 1: - choice = lambda key, p: jr.choice(key, a, p=p) - keys = jr.split(key, len(p)) - return vmap(choice)(keys, p) - - return jr.choice(key, a, p=p) - - -class PyMDPEnv(Module): - params: Dict - state: List[Array] - dependencies: Dict = field(static=True) - - def __init__(self, params: Dict, dependencies: Dict, init_state: List[Array] = None): - self.params = params - self.dependencies = dependencies - - if init_state is None: - init_state = jtu.tree_map(lambda x: jnp.argmax(x, -1), self.params["D"]) - - self.state = init_state - - def reset(self, key: Optional[PRNGKeyArray] = None): - if key is None: - state = self.state - else: - probs = self.params["D"] - keys = list(jr.split(key, len(probs))) - state = jtu.tree_map(cat_sample, keys, probs) - - return tree_at(lambda x: x.state, self, state) - - @vmap - def step(self, rng_key: PRNGKeyArray, actions: Optional[Array] = None): - # return a list of random observations and states - key_state, key_obs = jr.split(rng_key) - state = self.state - if actions is not None: - actions = list(actions) - _select_probs = partial(select_probs, state) - state_probs = jtu.tree_map(_select_probs, self.params["B"], self.dependencies["B"], actions) - - keys = list(jr.split(key_state, len(state_probs))) - new_state = jtu.tree_map(cat_sample, keys, state_probs) - else: - new_state = state - - _select_probs = partial(select_probs, new_state) - obs_probs = jtu.tree_map(_select_probs, self.params["A"], self.dependencies["A"]) - - keys = list(jr.split(key_obs, len(obs_probs))) - new_obs = jtu.tree_map(cat_sample, keys, obs_probs) - new_obs = jtu.tree_map(lambda x: jnp.expand_dims(x, -1), new_obs) - - return new_obs, tree_at(lambda x: (x.state), self, new_state) diff --git a/pymdp/jax/inference.py b/pymdp/jax/inference.py deleted file mode 100644 index 9db27db4..00000000 --- a/pymdp/jax/inference.py +++ /dev/null @@ -1,142 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# pylint: disable=no-member - -import jax.numpy as jnp -from .algos import run_factorized_fpi, run_mmp, run_vmp -from jax import tree_util as jtu, lax -from jax.experimental.sparse._base import JAXSparse -from jax.experimental import sparse -from jaxtyping import Array, ArrayLike - -eps = jnp.finfo('float').eps - -def update_posterior_states( - A, - B, - obs, - past_actions, - prior=None, - qs_hist=None, - A_dependencies=None, - B_dependencies=None, - num_iter=16, - method="fpi", -): - - if method == "fpi" or method == "ovf": - # format obs to select only last observation - curr_obs = jtu.tree_map(lambda x: x[-1], obs) - qs = run_factorized_fpi(A, curr_obs, prior, A_dependencies, num_iter=num_iter) - else: - # format B matrices using action sequences here - # TODO: past_actions can be None - if past_actions is not None: - nf = len(B) - actions_tree = [past_actions[:, i] for i in range(nf)] - - # move time steps to the leading axis (leftmost) - # this assumes that a policy is always specified as the rightmost axis of Bs - B = jtu.tree_map( - lambda b, a_idx: jnp.moveaxis(b[..., a_idx], -1, 0), - B, - actions_tree, - ) - else: - B = None - - # outputs of both VMP and MMP should be a list of hidden state factors, where each qs[f].shape = (T, batch_dim, num_states_f) - if method == "vmp": - qs = run_vmp( - A, - B, - obs, - prior, - A_dependencies, - B_dependencies, - num_iter=num_iter, - ) - if method == "mmp": - qs = run_mmp( - A, - B, - obs, - prior, - A_dependencies, - B_dependencies, - num_iter=num_iter, - ) - - if qs_hist is not None: - if method == "fpi" or method == "ovf": - qs_hist = jtu.tree_map( - lambda x, y: jnp.concatenate([x, jnp.expand_dims(y, 0)], 0), - qs_hist, - qs, - ) - else: - # TODO: return entire history of beliefs - qs_hist = qs - else: - if method == "fpi" or method == "ovf": - qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), qs) - else: - qs_hist = qs - - return qs_hist - -def joint_dist_factor(b: ArrayLike, filtered_qs: list[Array], actions: Array): - qs_last = filtered_qs[-1] - qs_filter = filtered_qs[:-1] - - def step_fn(qs_smooth, xs): - qs_f, action = xs - time_b = b[..., action] - qs_j = time_b * qs_f - norm = qs_j.sum(-1, keepdims=True) - if isinstance(norm, JAXSparse): - norm = sparse.todense(norm) - norm = jnp.where(norm == 0, eps, norm) - qs_backward_cond = qs_j / norm - qs_joint = qs_backward_cond * jnp.expand_dims(qs_smooth, -1) - qs_smooth = qs_joint.sum(-2) - if isinstance(qs_smooth, JAXSparse): - qs_smooth = sparse.todense(qs_smooth) - - # returns q(s_t), (q(s_t), q(s_t, s_t+1)) - return qs_smooth, (qs_smooth, qs_joint) - - # seq_qs will contain a sequence of smoothed marginals and joints - _, seq_qs = lax.scan( - step_fn, - qs_last, - (qs_filter, actions), - reverse=True, - unroll=2 - ) - - # we add the last filtered belief to smoothed beliefs - - qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0) - qs_joint_all = seq_qs[1] - if isinstance(qs_joint_all, JAXSparse): - qs_joint_all.shape = (len(actions),) + qs_joint_all.shape - return qs_smooth_all, qs_joint_all - - -def smoothing_ovf(filtered_post, B, past_actions): - assert len(filtered_post) == len(B) - nf = len(B) # number of factors - - joint = lambda b, qs, f: joint_dist_factor(b, qs, past_actions[..., f]) - - marginals_and_joints = ([], []) - for b, qs, f in zip(B, filtered_post, list(range(nf))): - marginals, joints = joint(b, qs, f) - marginals_and_joints[0].append(marginals) - marginals_and_joints[1].append(joints) - - return marginals_and_joints - - - diff --git a/pymdp/jax/learning.py b/pymdp/jax/learning.py deleted file mode 100644 index 95b4e1c9..00000000 --- a/pymdp/jax/learning.py +++ /dev/null @@ -1,345 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# pylint: disable=no-member - -from .maths import multidimensional_outer, dirichlet_expected_value -from jax.tree_util import tree_map -from jaxtyping import Array -from jax import vmap, nn - -def update_obs_likelihood_dirichlet_m(pA_m, obs_m, qs, dependencies_m, lr=1.0): - """JAX version of ``pymdp.learning.update_obs_likelihood_dirichlet_m``""" - # pA_m - parameters of the dirichlet from the prior - # pA_m.shape = (no_m x num_states[k] x num_states[j] x ... x num_states[n]) where (k, j, n) are indices of the hidden state factors that are parents of modality m - - # \alpha^{*} = \alpha_{0} + \kappa * \sum_{t=t_begin}^{t=T} o_{m,t} \otimes \mathbf{s}_{f \in parents(m), t} - - # \alpha^{*} is the VFE-minimizing solution for the parameters of q(A) - # \alpha_{0} are the Dirichlet parameters of p(A) - # o_{m,t} = observation (one-hot vector) of modality m at time t - # \mathbf{s}_{f \in parents(m), t} = categorical parameters of marginal posteriors over hidden state factors that are parents of modality m, at time t - # \otimes is a multidimensional outer product, not just a outer product of two vectors - # \kappa is an optional learning rate - - relevant_factors = tree_map(lambda f_idx: qs[f_idx], dependencies_m) - - dfda = vmap(multidimensional_outer)([obs_m] + relevant_factors).sum(axis=0) - - new_pA_m = pA_m + lr * dfda - A_m = dirichlet_expected_value(new_pA_m) - - return new_pA_m, A_m - -def update_obs_likelihood_dirichlet(pA, A, obs, qs, *, A_dependencies, onehot_obs, num_obs, lr): - """ JAX version of ``pymdp.learning.update_obs_likelihood_dirichlet`` """ - - obs_m = lambda o, dim: nn.one_hot(o, dim) if not onehot_obs else o - update_A_fn = lambda pA_m, o_m, dim, dependencies_m: update_obs_likelihood_dirichlet_m( - pA_m, obs_m(o_m, dim), qs, dependencies_m, lr=lr - ) - result = tree_map(update_A_fn, pA, obs, num_obs, A_dependencies) - qA = [] - E_qA = [] - for i, r in enumerate(result): - if r is None: - qA.append(r) - E_qA.append(A[i]) - else: - qA.append(r[0]) - E_qA.append(r[1]) - - return qA, E_qA - -def update_state_transition_dirichlet_f(pB_f, actions_f, joint_qs_f, lr=1.0): - """ JAX version of ``pymdp.learning.update_state_likelihood_dirichlet_f`` """ - # pB_f - parameters of the dirichlet from the prior - # pB_f.shape = (num_states[f] x num_states[f] x num_actions[f]) where f is the index of the hidden state factor - - # \alpha^{*} = \alpha_{0} + \kappa * \sum_{t=t_begin}^{t=T} \mathbf{s}_{f, t} \otimes \mathbf{s}_{f, t-1} \otimes \mathbf{a}_{f, t-1} - - # \alpha^{*} is the VFE-minimizing solution for the parameters of q(B) - # \alpha_{0} are the Dirichlet parameters of p(B) - # \mathbf{s}_{f, t} = categorical parameters of marginal posteriors over hidden state factor f, at time t - # \mathbf{a}_{f, t-1} = categorical parameters of marginal posteriors over control factor f, at time t-1 - # \otimes is a multidimensional outer product, not just a outer product of two vectors - # \kappa is an optional learning rate - - joint_qs_f = [joint_qs_f] if isinstance(joint_qs_f, Array) else joint_qs_f - dfdb = vmap(multidimensional_outer)(joint_qs_f + [actions_f]).sum(axis=0) - qB_f = pB_f + lr * dfdb - - return qB_f, dirichlet_expected_value(qB_f) - -def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_controls, lr, factors_to_update='all'): - """" - Update posterior Diriichlet parameters of the state transition likelihood model (B) given the joint beliefs over hidden states and actions. - """ - nf = len(pB) - actions_onehot_fn = lambda f, dim: nn.one_hot(actions[..., f], dim, axis=-1) - update_B_f_fn = lambda pB_f, joint_qs_f, f, na: update_state_transition_dirichlet_f( - pB_f, actions_onehot_fn(f, na), joint_qs_f, lr=lr - ) - - if factors_to_update == 'all': - factors_to_update = list(range(nf)) - - result = tree_map( - update_B_f_fn, pB, joint_beliefs, factors_to_update, num_controls - ) - - qB = [pb_f for pb_f in pB] - E_qB = [dirichlet_expected_value(qb_f) for qb_f in qB] - for (f,r) in zip(factors_to_update, result): - qB[f] = r[0] - E_qB[f] = r[1] - - return qB, E_qB - -# def update_state_prior_dirichlet( -# pD, qs, lr=1.0, factors="all" -# ): -# """ -# Update Dirichlet parameters of the initial hidden state distribution -# (prior beliefs about hidden states at the beginning of the inference window). - -# Parameters -# ----------- -# pD: ``numpy.ndarray`` of dtype object -# Prior Dirichlet parameters over initial hidden state prior (same shape as ``qs``) -# qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object -# Marginal posterior beliefs over hidden states at current timepoint -# lr: float, default ``1.0`` -# Learning rate, scale of the Dirichlet pseudo-count update. -# factors: ``list``, default "all" -# Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include -# in learning. Defaults to "all", meaning that factor-specific sub-vectors of ``pD`` -# are all updated using the corresponding hidden state distributions. - -# Returns -# ----------- -# qD: ``numpy.ndarray`` of dtype object -# Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs``), after having updated it with state beliefs. -# """ - -# num_factors = len(pD) - -# qD = copy.deepcopy(pD) - -# if factors == "all": -# factors = list(range(num_factors)) - -# for factor in factors: -# idx = pD[factor] > 0 # only update those state level indices that have some prior probability -# qD[factor][idx] += (lr * qs[factor][idx]) - -# return qD - -# def _prune_prior(prior, levels_to_remove, dirichlet = False): -# """ -# Function for pruning a prior Categorical distribution (e.g. C, D) - -# Parameters -# ----------- -# prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object -# The vector(s) containing the priors over hidden states of a generative model, e.g. the prior over hidden states (``D`` vector). -# levels_to_remove: ``list`` of ``int``, ``list`` of ``list`` -# A ``list`` of the levels (indices of the support) to remove. If the prior in question has multiple hidden state factors / multiple observation modalities, -# then this will be a ``list`` of ``list``, where each sub-list within ``levels_to_remove`` will contain the levels to prune for a particular hidden state factor or modality -# dirichlet: ``Bool``, default ``False`` -# A Boolean flag indicating whether the input vector(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. -# @TODO: Instead, the dirichlet parameters from the pruned levels should somehow be re-distributed among the remaining levels - -# Returns -# ----------- -# reduced_prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object -# The prior vector(s), after pruning, that lacks the hidden state or modality levels indexed by ``levels_to_remove`` -# """ - -# if utils.is_obj_array(prior): # in case of multiple hidden state factors - -# assert all([type(levels) == list for levels in levels_to_remove]) - -# num_factors = len(prior) - -# reduced_prior = utils.obj_array(num_factors) - -# factors_to_remove = [] -# for f, s_i in enumerate(prior): # loop over factors (or modalities) - -# ns = len(s_i) -# levels_to_keep = list(set(range(ns)) - set(levels_to_remove[f])) -# if len(levels_to_keep) == 0: -# print(f'Warning... removing ALL levels of factor {f} - i.e. the whole hidden state factor is being removed\n') -# factors_to_remove.append(f) -# else: -# if not dirichlet: -# reduced_prior[f] = utils.norm_dist(s_i[levels_to_keep]) -# else: -# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) - - -# if len(factors_to_remove) > 0: -# factors_to_keep = list(set(range(num_factors)) - set(factors_to_remove)) -# reduced_prior = reduced_prior[factors_to_keep] - -# else: # in case of one hidden state factor - -# assert all([type(level_i) == int for level_i in levels_to_remove]) - -# ns = len(prior) -# levels_to_keep = list(set(range(ns)) - set(levels_to_remove)) - -# if not dirichlet: -# reduced_prior = utils.norm_dist(prior[levels_to_keep]) -# else: -# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) - -# return reduced_prior - -# def _prune_A(A, obs_levels_to_prune, state_levels_to_prune, dirichlet = False): -# """ -# Function for pruning a observation likelihood model (with potentially multiple hidden state factors) -# :meta private: -# Parameters -# ----------- -# A: ``numpy.ndarray`` with ``ndim >= 2``, or ``numpy.ndarray`` of dtype object -# Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of -# stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store -# the probability of observation level ``i`` given hidden state levels ``j, k, ...`` -# obs_levels_to_prune: ``list`` of int or ``list`` of ``list``: -# A ``list`` of the observation levels to remove. If the likelihood in question has multiple observation modalities, -# then this will be a ``list`` of ``list``, where each sub-list within ``obs_levels_to_prune`` will contain the observation levels -# to remove for a particular observation modality -# state_levels_to_prune: ``list`` of ``int`` -# A ``list`` of the hidden state levels to remove (this will be the same across modalities) -# dirichlet: ``Bool``, default ``False`` -# A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. -# @TODO: Instead, the dirichlet parameters from the pruned columns should somehow be re-distributed among the remaining columns - -# Returns -# ----------- -# reduced_A: ``numpy.ndarray`` with ndim >= 2, or ``numpy.ndarray ``of dtype object -# The observation model, after pruning, which lacks the observation or hidden state levels given by the arguments ``obs_levels_to_prune`` and ``state_levels_to_prune`` -# """ - -# columns_to_keep_list = [] -# if utils.is_obj_array(A): -# num_states = A[0].shape[1:] -# for f, ns in enumerate(num_states): -# indices_f = np.array( list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) -# columns_to_keep_list.append(indices_f) -# else: -# num_states = A.shape[1] -# indices = np.array( list(set(range(num_states)) - set(state_levels_to_prune)), dtype = np.intp ) -# columns_to_keep_list.append(indices) - -# if utils.is_obj_array(A): # in case of multiple observation modality - -# assert all([type(o_m_levels) == list for o_m_levels in obs_levels_to_prune]) - -# num_modalities = len(A) - -# reduced_A = utils.obj_array(num_modalities) - -# for m, A_i in enumerate(A): # loop over modalities - -# no = A_i.shape[0] -# rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune[m])), dtype = np.intp) - -# reduced_A[m] = A_i[np.ix_(rows_to_keep, *columns_to_keep_list)] -# if not dirichlet: -# reduced_A = utils.norm_dist_obj_arr(reduced_A) -# else: -# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) -# else: # in case of one observation modality - -# assert all([type(o_levels_i) == int for o_levels_i in obs_levels_to_prune]) - -# no = A.shape[0] -# rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune)), dtype = np.intp) - -# reduced_A = A[np.ix_(rows_to_keep, *columns_to_keep_list)] - -# if not dirichlet: -# reduced_A = utils.norm_dist(reduced_A) -# else: -# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - -# return reduced_A - -# def _prune_B(B, state_levels_to_prune, action_levels_to_prune, dirichlet = False): -# """ -# Function for pruning a transition likelihood model (with potentially multiple hidden state factors) - -# Parameters -# ----------- -# B: ``numpy.ndarray`` of ``ndim == 3`` or ``numpy.ndarray`` of dtype object -# Dynamics likelihood mapping or 'transition model', mapping from hidden states at `t` to hidden states at `t+1`, given some control state `u`. -# Each element B[f] of this object array stores a 3-D tensor for hidden state factor `f`, whose entries `B[f][s, v, u] store the probability -# of hidden state level `s` at the current time, given hidden state level `v` and action `u` at the previous time. -# state_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` -# A ``list`` of the state levels to remove. If the likelihood in question has multiple hidden state factors, -# then this will be a ``list`` of ``list``, where each sub-list within ``state_levels_to_prune`` will contain the state levels -# to remove for a particular hidden state factor -# action_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` -# A ``list`` of the control state or action levels to remove. If the likelihood in question has multiple control state factors, -# then this will be a ``list`` of ``list``, where each sub-list within ``action_levels_to_prune`` will contain the control state levels -# to remove for a particular control state factor -# dirichlet: ``Bool``, default ``False`` -# A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. -# @TODO: Instead, the dirichlet parameters from the pruned rows/columns should somehow be re-distributed among the remaining rows/columns - -# Returns -# ----------- -# reduced_B: ``numpy.ndarray`` of `ndim == 3` or ``numpy.ndarray`` of dtype object -# The transition model, after pruning, which lacks the hidden state levels/action levels given by the arguments ``state_levels_to_prune`` and ``action_levels_to_prune`` -# """ - -# slices_to_keep_list = [] - -# if utils.is_obj_array(B): - -# num_controls = [B_arr.shape[2] for _, B_arr in enumerate(B)] - -# for c, nc in enumerate(num_controls): -# indices_c = np.array( list(set(range(nc)) - set(action_levels_to_prune[c])), dtype = np.intp) -# slices_to_keep_list.append(indices_c) -# else: -# num_controls = B.shape[2] -# slices_to_keep = np.array( list(set(range(num_controls)) - set(action_levels_to_prune)), dtype = np.intp ) - -# if utils.is_obj_array(B): # in case of multiple hidden state factors - -# assert all([type(ns_f_levels) == list for ns_f_levels in state_levels_to_prune]) - -# num_factors = len(B) - -# reduced_B = utils.obj_array(num_factors) - -# for f, B_f in enumerate(B): # loop over modalities - -# ns = B_f.shape[0] -# states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) - -# reduced_B[f] = B_f[np.ix_(states_to_keep, states_to_keep, slices_to_keep_list[f])] - -# if not dirichlet: -# reduced_B = utils.norm_dist_obj_arr(reduced_B) -# else: -# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - -# else: # in case of one hidden state factor - -# assert all([type(state_level_i) == int for state_level_i in state_levels_to_prune]) - -# ns = B.shape[0] -# states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune)), dtype = np.intp) - -# reduced_B = B[np.ix_(states_to_keep, states_to_keep, slices_to_keep)] - -# if not dirichlet: -# reduced_B = utils.norm_dist(reduced_B) -# else: -# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - -# return reduced_B diff --git a/pymdp/jax/maths.py b/pymdp/jax/maths.py deleted file mode 100644 index 0bf77cf0..00000000 --- a/pymdp/jax/maths.py +++ /dev/null @@ -1,203 +0,0 @@ -import jax.numpy as jnp - -from functools import partial -from typing import Optional, Tuple, List -from jax import tree_util, nn, jit, vmap, lax -from jax.scipy.special import xlogy -from opt_einsum import contract -from multimethod import multimethod -from jaxtyping import ArrayLike -from jax.experimental import sparse -from jax.experimental.sparse._base import JAXSparse - -MINVAL = jnp.finfo(float).eps - -def stable_xlogx(x): - return xlogy(x, jnp.clip(x, MINVAL)) - -def stable_entropy(x): - return - stable_xlogx(x).sum() - -def stable_cross_entropy(x, y): - return - xlogy(x, y).sum() - -def log_stable(x): - return jnp.log(jnp.clip(x, min=MINVAL)) - - -@multimethod -@partial(jit, static_argnames=["keep_dims"]) -def factor_dot(M: ArrayLike, xs: list[ArrayLike], keep_dims: Optional[tuple[int]] = None): - """Dot product of a multidimensional array with `x`. - Parameters - ---------- - - `qs` [list of 1D numpy.ndarray] - list of jnp.ndarrays - - Returns - ------- - - `Y` [1D numpy.ndarray] - the result of the dot product - """ - d = len(keep_dims) if keep_dims is not None else 0 - assert M.ndim == len(xs) + d - keep_dims = () if keep_dims is None else keep_dims - dims = tuple((i,) for i in range(M.ndim) if i not in keep_dims) - return factor_dot_flex(M, xs, dims, keep_dims=keep_dims) - - -@multimethod -def factor_dot(M: JAXSparse, xs: List[ArrayLike], keep_dims: Optional[Tuple[int]] = None): - d = len(keep_dims) if keep_dims is not None else 0 - assert M.ndim == len(xs) + d - keep_dims = () if keep_dims is None else keep_dims - dims = tuple((i,) for i in range(M.ndim) if i not in keep_dims) - return spm_dot_sparse(M, xs, dims, keep_dims=keep_dims) - - -def spm_dot_sparse( - X: JAXSparse, x: List[ArrayLike], dims: Optional[List[Tuple[int]]], keep_dims: Optional[List[Tuple[int]]] -): - if dims is None: - dims = (jnp.arange(0, len(x)) + X.ndim - len(x)).astype(int) - dims = jnp.array(dims).flatten() - - if keep_dims is not None: - for d in keep_dims: - if d in dims: - dims = jnp.delete(dims, jnp.argwhere(dims == d)) - - for d in range(len(x)): - s = jnp.ones(jnp.ndim(X), dtype=int) - s = s.at[dims[d]].set(jnp.shape(x[d])[0]) - X = X * x[d].reshape(tuple(s)) - - sparse_sum = sparse.sparsify(jnp.sum) - Y = sparse_sum(X, axis=tuple(dims)) - return Y - - -@partial(jit, static_argnames=["dims", "keep_dims"]) -def factor_dot_flex(M, xs, dims: List[Tuple[int]], keep_dims: Optional[Tuple[int]] = None): - """Dot product of a multidimensional array with `x`. - - Parameters - ---------- - - `M` [numpy.ndarray] - tensor - - 'xs' [list of numpyr.ndarray] - list of tensors - - 'dims' [list of tuples] - list of dimensions of xs tensors in tensor M - - 'keep_dims' [tuple] - tuple of integers denoting dimesions to keep - Returns - ------- - - `Y` [1D numpy.ndarray] - the result of the dot product - """ - all_dims = tuple(range(M.ndim)) - matrix = [[xs[f], dims[f]] for f in range(len(xs))] - args = [M, all_dims] - for row in matrix: - args.extend(row) - - args += [keep_dims] - return contract(*args, backend="jax") - - -def get_likelihood_single_modality(o_m, A_m, distr_obs=True): - """Return observation likelihood for a single observation modality m""" - if distr_obs: - expanded_obs = jnp.expand_dims(o_m, tuple(range(1, A_m.ndim))) - likelihood = (expanded_obs * A_m).sum(axis=0) - else: - likelihood = A_m[o_m] - - return likelihood - -def compute_log_likelihood_single_modality(o_m, A_m, distr_obs=True): - """Compute observation log-likelihood for a single modality""" - return log_stable(get_likelihood_single_modality(o_m, A_m, distr_obs=distr_obs)) - - -def compute_log_likelihood(obs, A, distr_obs=True): - """Compute likelihood over hidden states across observations from different modalities""" - result = tree_util.tree_map(lambda o, a: compute_log_likelihood_single_modality(o, a, distr_obs=distr_obs), obs, A) - ll = jnp.sum(jnp.stack(result), 0) - - return ll - - -def compute_log_likelihood_per_modality(obs, A, distr_obs=True): - """Compute likelihood over hidden states across observations from different modalities, and return them per modality""" - ll_all = tree_util.tree_map(lambda o, a: compute_log_likelihood_single_modality(o, a, distr_obs=distr_obs), obs, A) - - return ll_all - - -def compute_accuracy(qs, obs, A): - """Compute the accuracy portion of the variational free energy (expected log likelihood under the variational posterior)""" - - log_likelihood = compute_log_likelihood(obs, A) - - x = qs[0] - for q in qs[1:]: - x = jnp.expand_dims(x, -1) * q - - joint = ll * x - return joint.sum() - - -def compute_free_energy(qs, prior, obs, A): - """ - Calculate variational free energy by breaking its computation down into three steps: - 1. computation of the negative entropy of the posterior -H[Q(s)] - 2. computation of the cross entropy of the posterior with the prior H_{Q(s)}[P(s)] - 3. computation of the accuracy E_{Q(s)}[lnP(o|s)] - - Then add them all together -- except subtract the accuracy - """ - - vfe = 0.0 # initialize variational free energy - for q, p in zip(qs, prior): - negH_qs = - stable_entropy(q) - xH_qp = stable_cross_entropy(q, p) - vfe += (negH_qs + xH_qp) - - vfe -= compute_accuracy(qs, obs, A) - - return vfe - - -def multidimensional_outer(arrs): - """Compute the outer product of a list of arrays by iteratively expanding the first array and multiplying it with the next array""" - - x = arrs[0] - for q in arrs[1:]: - x = jnp.expand_dims(x, -1) * q - - return x - - -def spm_wnorm(A): - """ - Returns Expectation of logarithm of Dirichlet parameters over a set of - Categorical distributions, stored in the columns of A. - """ - norm = 1. / A.sum(axis=0) - avg = 1. / (A + MINVAL) - wA = norm - avg - return wA - - -def dirichlet_expected_value(dir_arr): - """ - Returns Expectation of Dirichlet parameters over a set of - Categorical distributions, stored in the columns of A. - """ - dir_arr = jnp.clip(dir_arr, min=MINVAL) - expected_val = jnp.divide(dir_arr, dir_arr.sum(axis=0, keepdims=True)) - return expected_val - - -if __name__ == "__main__": - obs = [0, 1, 2] - obs_vec = [nn.one_hot(o, 3) for o in obs] - A = [jnp.ones((3, 2)) / 3] * 3 - res = jit(compute_log_likelihood)(obs_vec, A) - - print(res) diff --git a/pymdp/jax/utils.py b/pymdp/jax/utils.py deleted file mode 100644 index e56f1e5f..00000000 --- a/pymdp/jax/utils.py +++ /dev/null @@ -1,665 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" Utility functions - -__author__: Conor Heins, Alexander Tschantz, Brennan Klein -""" - -import jax -import jax.numpy as jnp -import jax.tree_util as jtu -import numpy as np - -from typing import ( - Any, - Callable, - List, - NamedTuple, - Optional, - Sequence, - Union, - Tuple, -) - -Tensor = ( - Any # maybe jnp.ndarray, but typing seems not to be well defined for jax -) -Vector = List[Tensor] -Shape = Sequence[int] -ShapeList = list[Shape] - - -def norm_dist(dist: Tensor) -> Tensor: - """Normalizes a Categorical probability distribution""" - return dist / dist.sum(0) - - -def list_array_uniform(shape_list: ShapeList) -> Vector: - """ - Creates a list of jax arrays representing uniform Categorical - distributions with shapes given by shape_list[i]. The shapes (elements of shape_list) - can either be tuples or lists. - """ - arr = [] - for shape in shape_list: - arr.append(norm_dist(jnp.ones(shape))) - return arr - - -def list_array_zeros(shape_list: ShapeList) -> Vector: - """ - Creates a list of 1-D jax arrays filled with zeros, with shapes given by shape_list[i] - """ - arr = [] - for shape in shape_list: - arr.append(jnp.zeros(shape)) - return arr - - -def list_array_scaled(shape_list: ShapeList, scale: float = 1.0) -> Vector: - """ - Creates a list of 1-D jax arrays filled with scale, with shapes given by shape_list[i] - """ - arr = [] - for shape in shape_list: - arr.append(scale * jnp.ones(shape)) - - return arr - - -def get_combination_index(x, dims): - """ - Find the index of an array of categorical values in an array of categorical dimensions - - Parameters - ---------- - x: ``numpy.ndarray`` or ``jax.Array`` of shape `(batch_size, act_dims)` - ``numpy.ndarray`` or ``jax.Array`` of categorical values to be converted into combination index - dims: ``list`` of ``int`` - ``list`` of ``int`` of categorical dimensions used for conversion - - Returns - ---------- - index: ``np.ndarray`` or `jax.Array` of shape `(batch_size)` - ``np.ndarray`` or `jax.Array` index of the combination - """ - assert isinstance(x, jax.Array) or isinstance(x, np.ndarray) - assert x.shape[-1] == len(dims) - - index = 0 - product = 1 - for i in reversed(range(len(dims))): - index += x[..., i] * product - product *= dims[i] - return index - - -def index_to_combination(index, dims): - """ - Convert the combination index according to an array of categorical dimensions back to an array of categorical values - - Parameters - ---------- - index: ``np.ndarray`` or `jax.Array` of shape `(batch_size)` - ``np.ndarray`` or `jax.Array` index of the combination - dims: ``list`` of ``int`` - ``list`` of ``int`` of categorical dimensions used for conversion - - Returns - ---------- - x: ``numpy.ndarray`` or ``jax.Array`` of shape `(batch_size, act_dims)` - ``numpy.ndarray`` or ``jax.Array`` of categorical values to be converted into combination index - """ - x = [] - for base in reversed(dims): - x.append(index % base) - index = index // base - - x = np.flip(np.stack(x, axis=-1), axis=-1) - return x - - -# def onehot(value, num_values): -# arr = np.zeros(num_values) -# arr[value] = 1.0 -# return arr - -# def random_A_matrix(num_obs, num_states): -# if type(num_obs) is int: -# num_obs = [num_obs] -# if type(num_states) is int: -# num_states = [num_states] -# num_modalities = len(num_obs) - -# A = obj_array(num_modalities) -# for modality, modality_obs in enumerate(num_obs): -# modality_shape = [modality_obs] + num_states -# modality_dist = np.random.rand(*modality_shape) -# A[modality] = norm_dist(modality_dist) -# return A - -# def random_B_matrix(num_states, num_controls): -# if type(num_states) is int: -# num_states = [num_states] -# if type(num_controls) is int: -# num_controls = [num_controls] -# num_factors = len(num_states) -# assert len(num_controls) == len(num_states) - -# B = obj_array(num_factors) -# for factor in range(num_factors): -# factor_shape = (num_states[factor], num_states[factor], num_controls[factor]) -# factor_dist = np.random.rand(*factor_shape) -# B[factor] = norm_dist(factor_dist) -# return B - -# def random_single_categorical(shape_list): -# """ -# Creates a random 1-D categorical distribution (or set of 1-D categoricals, e.g. multiple marginals of different factors) and returns them in an object array -# """ - -# num_sub_arrays = len(shape_list) - -# out = obj_array(num_sub_arrays) - -# for arr_idx, shape_i in enumerate(shape_list): -# out[arr_idx] = norm_dist(np.random.rand(shape_i)) - -# return out - -# def construct_controllable_B(num_states, num_controls): -# """ -# Generates a fully controllable transition likelihood array, where each -# action (control state) corresponds to a move to the n-th state from any -# other state, for each control factor -# """ - -# num_factors = len(num_states) - -# B = obj_array(num_factors) -# for factor, c_dim in enumerate(num_controls): -# tmp = np.eye(c_dim)[:, :, np.newaxis] -# tmp = np.tile(tmp, (1, 1, c_dim)) -# B[factor] = tmp.transpose(1, 2, 0) - -# return B - -# def dirichlet_like(template_categorical, scale = 1.0): -# """ -# Helper function to construct a Dirichlet distribution based on an existing Categorical distribution -# """ - -# if not is_obj_array(template_categorical): -# warnings.warn( -# "Input array is not an object array...\ -# Casting the input to an object array" -# ) -# template_categorical = to_obj_array(template_categorical) - -# n_sub_arrays = len(template_categorical) - -# dirichlet_out = obj_array(n_sub_arrays) - -# for i, arr in enumerate(template_categorical): -# dirichlet_out[i] = scale * arr - -# return dirichlet_out - -# def get_model_dimensions(A=None, B=None): - -# if A is None and B is None: -# raise ValueError( -# "Must provide either `A` or `B`" -# ) - -# if A is not None: -# num_obs = [a.shape[0] for a in A] if is_obj_array(A) else [A.shape[0]] -# num_modalities = len(num_obs) -# else: -# num_obs, num_modalities = None, None - -# if B is not None: -# num_states = [b.shape[0] for b in B] if is_obj_array(B) else [B.shape[0]] -# num_factors = len(num_states) -# else: -# if A is not None: -# num_states = list(A[0].shape[1:]) if is_obj_array(A) else list(A.shape[1:]) -# num_factors = len(num_states) -# else: -# num_states, num_factors = None, None - -# return num_obs, num_states, num_modalities, num_factors - -# def get_model_dimensions_from_labels(model_labels): - -# modalities = model_labels['observations'] -# num_modalities = len(modalities.keys()) -# num_obs = [len(modalities[modality]) for modality in modalities.keys()] - -# factors = model_labels['states'] -# num_factors = len(factors.keys()) -# num_states = [len(factors[factor]) for factor in factors.keys()] - -# if 'actions' in model_labels.keys(): - -# controls = model_labels['actions'] -# num_control_fac = len(controls.keys()) -# num_controls = [len(controls[cfac]) for cfac in controls.keys()] - -# return num_obs, num_modalities, num_states, num_factors, num_controls, num_control_fac -# else: -# return num_obs, num_modalities, num_states, num_factors - - -# def norm_dist_obj_arr(obj_arr): - -# normed_obj_array = obj_array(len(obj_arr)) -# for i, arr in enumerate(obj_arr): -# normed_obj_array[i] = norm_dist(arr) - -# return normed_obj_array - -# def is_normalized(dist): -# """ -# Utility function for checking whether a single distribution or set of conditional categorical distributions is normalized. -# Returns True if all distributions integrate to 1.0 -# """ - -# if is_obj_array(dist): -# normed_arrays = [] -# for i, arr in enumerate(dist): -# column_sums = arr.sum(axis=0) -# normed_arrays.append(np.allclose(column_sums, np.ones_like(column_sums))) -# out = all(normed_arrays) -# else: -# column_sums = dist.sum(axis=0) -# out = np.allclose(column_sums, np.ones_like(column_sums)) - -# return out - -# def is_obj_array(arr): -# return arr.dtype == "object" - -# def to_obj_array(arr): -# if is_obj_array(arr): -# return arr -# obj_array_out = obj_array(1) -# obj_array_out[0] = arr.squeeze() -# return obj_array_out - -# def obj_array_from_list(list_input): -# """ -# Takes a list of `numpy.ndarray` and converts them to a `numpy.ndarray` of `dtype = object` -# """ -# return np.array(list_input, dtype = object) - -# def process_observation_seq(obs_seq, n_modalities, n_observations): -# """ -# Helper function for formatting observations - -# Observations can either be `int` (converted to one-hot) -# or `tuple` (obs for each modality), or `list` (obs for each modality) -# If list, the entries could be object arrays of one-hots, in which -# case this function returns `obs_seq` as is. -# """ -# proc_obs_seq = obj_array(len(obs_seq)) -# for t, obs_t in enumerate(obs_seq): -# proc_obs_seq[t] = process_observation(obs_t, n_modalities, n_observations) -# return proc_obs_seq - -# def process_observation(obs, num_modalities, num_observations): -# """ -# Helper function for formatting observations -# USAGE NOTES: -# - If `obs` is a 1D numpy array, it must be a one-hot vector, where one entry (the entry of the observation) is 1.0 -# and all other entries are 0. This therefore assumes it's a single modality observation. If these conditions are met, then -# this function will return `obs` unchanged. Otherwise, it'll throw an error. -# - If `obs` is an int, it assumes this is a single modality observation, whose observation index is given by the value of `obs`. This function will convert -# it to be a one hot vector. -# - If `obs` is a list, it assumes this is a multiple modality observation, whose len is equal to the number of observation modalities, -# and where each entry `obs[m]` is the index of the observation, for that modality. This function will convert it into an object array -# of one-hot vectors. -# - If `obs` is a tuple, same logic as applies for list (see above). -# - if `obs` is a numpy object array (array of arrays), this function will return `obs` unchanged. -# """ - -# if isinstance(obs, np.ndarray) and not is_obj_array(obs): -# assert num_modalities == 1, "If `obs` is a 1D numpy array, `num_modalities` must be equal to 1" -# assert len(np.where(obs)[0]) == 1, "If `obs` is a 1D numpy array, it must be a one hot vector (e.g. np.array([0.0, 1.0, 0.0, ....]))" - -# if isinstance(obs, (int, np.integer)): -# obs = onehot(obs, num_observations[0]) - -# if isinstance(obs, tuple) or isinstance(obs,list): -# obs_arr_arr = obj_array(num_modalities) -# for m in range(num_modalities): -# obs_arr_arr[m] = onehot(obs[m], num_observations[m]) -# obs = obs_arr_arr - -# return obs - -# def convert_observation_array(obs, num_obs): -# """ -# Converts from SPM-style observation array to infer-actively one-hot object arrays. - -# Parameters -# ---------- -# - 'obs' [numpy 2-D nd.array]: -# SPM-style observation arrays are of shape (num_modalities, T), where each row -# contains observation indices for a different modality, and columns indicate -# different timepoints. Entries store the indices of the discrete observations -# within each modality. - -# - 'num_obs' [list]: -# List of the dimensionalities of the observation modalities. `num_modalities` -# is calculated as `len(num_obs)` in the function to determine whether we're -# dealing with a single- or multi-modality -# case. - -# Returns -# ---------- -# - `obs_t`[list]: -# A list with length equal to T, where each entry of the list is either a) an object -# array (in the case of multiple modalities) where each sub-array is a one-hot vector -# with the observation for the correspond modality, or b) a 1D numpy array (in the case -# of one modality) that is a single one-hot vector encoding the observation for the -# single modality. -# """ - -# T = obs.shape[1] -# num_modalities = len(num_obs) - -# # Initialise the output -# obs_t = [] -# # Case of one modality -# if num_modalities == 1: -# for t in range(T): -# obs_t.append(onehot(obs[0, t] - 1, num_obs[0])) -# else: -# for t in range(T): -# obs_AoA = obj_array(num_modalities) -# for g in range(num_modalities): -# # Subtract obs[g,t] by 1 to account for MATLAB vs. Python indexing -# # (MATLAB is 1-indexed) -# obs_AoA[g] = onehot(obs[g, t] - 1, num_obs[g]) -# obs_t.append(obs_AoA) - -# return obs_t - -# def insert_multiple(s, indices, items): -# for idx in range(len(items)): -# s.insert(indices[idx], items[idx]) -# return s - -# def reduce_a_matrix(A): -# """ -# Utility function for throwing away dimensions (lagging dimensions, hidden state factors) -# of a particular A matrix that are independent of the observation. -# Parameters: -# ========== -# - `A` [np.ndarray]: -# The A matrix or likelihood array that encodes probabilistic relationship -# of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) -# and observations (leading dimension, rows). -# Returns: -# ========= -# - `A_reduced` [np.ndarray]: -# The reduced A matrix, missing the lagging dimensions that correspond to hidden state factors -# that are statistically independent of observations -# - `original_factor_idx` [list]: -# List of the indices (in terms of the original dimensionality) of the hidden state factors -# that are maintained in the A matrix (and thus have an informative / non-degenerate relationship to observations -# """ - -# o_dim, num_states = A.shape[0], A.shape[1:] -# idx_vec_s = [slice(0, o_dim)] + [slice(ns) for _, ns in enumerate(num_states)] - -# original_factor_idx = [] -# excluded_factor_idx = [] # the indices of the hidden state factors that are independent of the observation and thus marginalized away -# for factor_i, ns in enumerate(num_states): - -# level_counter = 0 -# break_flag = False -# while level_counter < ns and break_flag is False: -# idx_vec_i = idx_vec_s.copy() -# idx_vec_i[factor_i+1] = slice(level_counter,level_counter+1,None) -# if not np.isclose(A.mean(axis=factor_i+1), A[tuple(idx_vec_i)].squeeze()).all(): -# break_flag = True # this means they're not independent -# original_factor_idx.append(factor_i) -# else: -# level_counter += 1 - -# if break_flag is False: -# excluded_factor_idx.append(factor_i+1) - -# A_reduced = A.mean(axis=tuple(excluded_factor_idx)).squeeze() - -# return A_reduced, original_factor_idx - -# def construct_full_a(A_reduced, original_factor_idx, num_states): -# """ -# Utility function for reconstruction a full A matrix from a reduced A matrix, using known factor indices -# to tile out the reduced A matrix along the 'non-informative' dimensions -# Parameters: -# ========== -# - `A_reduced` [np.ndarray]: -# The reduced A matrix or likelihood array that encodes probabilistic relationship -# of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) -# and observations (leading dimension, rows). -# - `original_factor_idx` [list]: -# List of hidden state indices in terms of the full hidden state factor list, that comprise -# the lagging dimensions of `A_reduced` -# - `num_states` [list]: -# The list of all the dimensionalities of hidden state factors in the full generative model. -# `A_reduced.shape[1:]` should be equal to `num_states[original_factor_idx]` -# Returns: -# ========= -# - `A` [np.ndarray]: -# The full A matrix, containing all the lagging dimensions that correspond to hidden state factors, including -# those that are statistically independent of observations - -# @ NOTE: This is the "inverse" of the reduce_a_matrix function, -# i.e. `reduce_a_matrix(construct_full_a(A_reduced, original_factor_idx, num_states)) == A_reduced, original_factor_idx` -# """ - -# o_dim = A_reduced.shape[0] # dimensionality of the support of the likelihood distribution (i.e. the number of observation levels) -# full_dimensionality = [o_dim] + num_states # full dimensionality of the output (`A`) -# fill_indices = [0] + [f+1 for f in original_factor_idx] # these are the indices of the dimensions we need to fill for this modality -# fill_dimensions = np.delete(full_dimensionality, fill_indices) - -# original_factor_dims = [num_states[f] for f in original_factor_idx] # dimensionalities of the relevant factors -# prefilled_slices = [slice(0, o_dim)] + [slice(0, ns) for ns in original_factor_dims] # these are the slices that are filled out by the provided `A_reduced` - -# A = np.zeros(full_dimensionality) - -# for item in itertools.product(*[list(range(d)) for d in fill_dimensions]): -# slice_ = list(item) -# A_indices = insert_multiple(slice_, fill_indices, prefilled_slices) #here we insert the correct values for the fill indices for this slice -# A[tuple(A_indices)] = A_reduced - -# return A - -# def create_A_matrix_stub(model_labels): - -# num_obs, _, num_states, _= get_model_dimensions_from_labels(model_labels) - -# obs_labels, state_labels = model_labels['observations'], model_labels['states'] - -# state_combinations = pd.MultiIndex.from_product(list(state_labels.values()), names=list(state_labels.keys())) -# num_state_combos = np.prod(num_states) -# # num_rows = (np.array(num_obs) * num_state_combos).sum() -# num_rows = sum(num_obs) - -# cell_values = np.zeros((num_rows, len(state_combinations))) - -# obs_combinations = [] -# for modality in obs_labels.keys(): -# levels_to_combine = [[modality]] + [obs_labels[modality]] -# # obs_combinations += num_state_combos * list(itertools.product(*levels_to_combine)) -# obs_combinations += list(itertools.product(*levels_to_combine)) - - -# obs_combinations = pd.MultiIndex.from_tuples(obs_combinations, names = ["Modality", "Level"]) - -# A_matrix = pd.DataFrame(cell_values, index = obs_combinations, columns=state_combinations) - -# return A_matrix - -# def create_B_matrix_stubs(model_labels): - -# _, _, num_states, _, num_controls, _ = get_model_dimensions_from_labels(model_labels) - -# state_labels = model_labels['states'] -# action_labels = model_labels['actions'] - -# B_matrices = {} - -# for f_idx, factor in enumerate(state_labels.keys()): - -# control_fac_name = list(action_labels)[f_idx] -# factor_list = [state_labels[factor]] + [action_labels[control_fac_name]] - -# prev_state_action_combos = pd.MultiIndex.from_product(factor_list, names=[factor, list(action_labels.keys())[f_idx]]) - -# num_state_action_combos = num_states[f_idx] * num_controls[f_idx] - -# num_rows = num_states[f_idx] - -# cell_values = np.zeros((num_rows, num_state_action_combos)) - -# next_state_list = state_labels[factor] - -# B_matrix_f = pd.DataFrame(cell_values, index = next_state_list, columns=prev_state_action_combos) - -# B_matrices[factor] = B_matrix_f - -# return B_matrices - -# def read_A_matrix(path, num_hidden_state_factors): -# raw_table = pd.read_excel(path, header=None) -# level_counts = { -# "index": raw_table.iloc[0, :].dropna().index[0] + 1, -# "header": raw_table.iloc[0, :].dropna().index[0] + num_hidden_state_factors - 1, -# } -# return pd.read_excel( -# path, -# index_col=list(range(level_counts["index"])), -# header=list(range(level_counts["header"])) -# ).astype(np.float64) - -# def read_B_matrices(path): - -# all_sheets = pd.read_excel(path, sheet_name = None, header=None) - -# level_counts = {} -# for sheet_name, raw_table in all_sheets.items(): - -# level_counts[sheet_name] = { -# "index": raw_table.iloc[0, :].dropna().index[0]+1, -# "header": raw_table.iloc[0, :].dropna().index[0]+2, -# } - -# stub_dict = {} -# for sheet_name, level_counts_sheet in level_counts.items(): -# sheet_f = pd.read_excel( -# path, -# sheet_name = sheet_name, -# index_col=list(range(level_counts_sheet["index"])), -# header=list(range(level_counts_sheet["header"])) -# ).astype(np.float64) -# stub_dict[sheet_name] = sheet_f - -# return stub_dict - -# def convert_A_stub_to_ndarray(A_stub, model_labels): -# """ -# This function converts a multi-index pandas dataframe `A_stub` into an object array of different -# A matrices, one per observation modality. -# """ - -# num_obs, num_modalities, num_states, num_factors = get_model_dimensions_from_labels(model_labels) - -# A = obj_array(num_modalities) - -# for g, modality_name in enumerate(model_labels['observations'].keys()): -# A[g] = A_stub.loc[modality_name].to_numpy().reshape(num_obs[g], *num_states) -# assert (A[g].sum(axis=0) == 1.0).all(), 'A matrix not normalized! Check your initialization....\n' - -# return A - -# def convert_B_stubs_to_ndarray(B_stubs, model_labels): -# """ -# This function converts a list of multi-index pandas dataframes `B_stubs` into an object array -# of different B matrices, one per hidden state factor -# """ - -# _, _, num_states, num_factors, num_controls, num_control_fac = get_model_dimensions_from_labels(model_labels) - -# B = obj_array(num_factors) - -# for f, factor_name in enumerate(B_stubs.keys()): - -# B[f] = B_stubs[factor_name].to_numpy().reshape(num_states[f], num_states[f], num_controls[f]) -# assert (B[f].sum(axis=0) == 1.0).all(), 'B matrix not normalized! Check your initialization....\n' - -# return B - -# def build_belief_array(qx): - -# """ -# This function constructs array-ified (not nested) versions -# of the posterior belief arrays, that are separated -# by policy, timepoint, and hidden state factor -# """ - -# num_policies = len(qx) -# num_timesteps = len(qx[0]) -# num_factors = len(qx[0][0]) - -# if num_factors > 1: -# belief_array = utils.obj_array(num_factors) -# for factor in range(num_factors): -# belief_array[factor] = np.zeros( (num_policies, qx[0][0][factor].shape[0], num_timesteps) ) -# for policy_i in range(num_policies): -# for timestep in range(num_timesteps): -# for factor in range(num_factors): -# belief_array[factor][policy_i, :, timestep] = qx[policy_i][timestep][factor] -# else: -# num_states = qx[0][0][0].shape[0] -# belief_array = np.zeros( (num_policies, num_states, num_timesteps) ) -# for policy_i in range(num_policies): -# for timestep in range(num_timesteps): -# belief_array[policy_i, :, timestep] = qx[policy_i][timestep][0] - -# return belief_array - -# def build_xn_vn_array(xn): - -# """ -# This function constructs array-ified (not nested) versions -# of the posterior xn (beliefs) or vn (prediction error) arrays, that are separated -# by iteration, hidden state factor, timepoint, and policy -# """ - -# num_policies = len(xn) -# num_itr = len(xn[0]) -# num_factors = len(xn[0][0]) - -# if num_factors > 1: -# xn_array = utils.obj_array(num_factors) -# for factor in range(num_factors): -# num_states, infer_len = xn[0][0][f].shape -# xn_array[factor] = np.zeros( (num_itr, num_states, infer_len, num_policies) ) -# for policy_i in range(num_policies): -# for itr in range(num_itr): -# for factor in range(num_factors): -# xn_array[factor][itr,:,:,policy_i] = xn[policy_i][itr][factor] -# else: -# num_states, infer_len = xn[0][0][0].shape -# xn_array = np.zeros( (num_itr, num_states, infer_len, num_policies) ) -# for policy_i in range(num_policies): -# for itr in range(num_itr): -# xn_array[itr,:,:,policy_i] = xn[policy_i][itr][0] - -# return xn_array diff --git a/pymdp/legacy/__init__.py b/pymdp/legacy/__init__.py new file mode 100644 index 00000000..52606d70 --- /dev/null +++ b/pymdp/legacy/__init__.py @@ -0,0 +1,9 @@ +from . import agent +from . import envs +from . import utils +from . import maths +from . import control +from . import inference +from . import learning +from . import algos +from . import default_models diff --git a/pymdp/legacy/agent.py b/pymdp/legacy/agent.py new file mode 100644 index 00000000..87fb3964 --- /dev/null +++ b/pymdp/legacy/agent.py @@ -0,0 +1,941 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" Agent Class + +__author__: Conor Heins, Alexander Tschantz, Daphne Demekas, Brennan Klein + +""" + +import warnings +import numpy as np +from pymdp.legacy import inference, control, learning +from pymdp.legacy import utils, maths +import copy + +class Agent(object): + """ + The Agent class, the highest-level API that wraps together processes for action, perception, and learning under active inference. + + The basic usage is as follows: + + >>> my_agent = Agent(A = A, B = C, ) + >>> observation = env.step(initial_action) + >>> qs = my_agent.infer_states(observation) + >>> q_pi, G = my_agent.infer_policies() + >>> next_action = my_agent.sample_action() + >>> next_observation = env.step(next_action) + + This represents one timestep of an active inference process. Wrapping this step in a loop with an ``Env()`` class that returns + observations and takes actions as inputs, would entail a dynamic agent-environment interaction. + """ + + def __init__( + self, + A, + B, + C=None, + D=None, + E=None, + H=None, + pA=None, + pB=None, + pD=None, + num_controls=None, + policy_len=1, + inference_horizon=1, + control_fac_idx=None, + policies=None, + gamma=16.0, + alpha=16.0, + use_utility=True, + use_states_info_gain=True, + use_param_info_gain=False, + action_selection="deterministic", + sampling_mode = "marginal", # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") + inference_algo="VANILLA", + inference_params=None, + modalities_to_learn="all", + lr_pA=1.0, + factors_to_learn="all", + lr_pB=1.0, + lr_pD=1.0, + use_BMA=True, + policy_sep_prior=False, + save_belief_hist=False, + A_factor_list=None, + B_factor_list=None, + sophisticated=False, + si_horizon=3, + si_policy_prune_threshold=1/16, + si_state_prune_threshold=1/16, + si_prune_penalty=512, + ii_depth=10, + ii_threshold=1/16, + ): + + ### Constant parameters ### + + # policy parameters + self.policy_len = policy_len + self.gamma = gamma + self.alpha = alpha + self.action_selection = action_selection + self.sampling_mode = sampling_mode + self.use_utility = use_utility + self.use_states_info_gain = use_states_info_gain + self.use_param_info_gain = use_param_info_gain + + # learning parameters + self.modalities_to_learn = modalities_to_learn + self.lr_pA = lr_pA + self.factors_to_learn = factors_to_learn + self.lr_pB = lr_pB + self.lr_pD = lr_pD + + # sophisticated inference parameters + self.sophisticated = sophisticated + if self.sophisticated: + assert self.policy_len == 1, "Sophisticated inference only works with policy_len = 1" + self.si_horizon = si_horizon + self.si_policy_prune_threshold = si_policy_prune_threshold + self.si_state_prune_threshold = si_state_prune_threshold + self.si_prune_penalty = si_prune_penalty + + # Initialise observation model (A matrices) + if not isinstance(A, np.ndarray): + raise TypeError( + 'A matrix must be a numpy array' + ) + + self.A = utils.to_obj_array(A) + + assert utils.is_normalized(self.A), "A matrix is not normalized (i.e. A[m].sum(axis = 0) must all equal 1.0 for all modalities)" + + # Determine number of observation modalities and their respective dimensions + self.num_obs = [self.A[m].shape[0] for m in range(len(self.A))] + self.num_modalities = len(self.num_obs) + + # Assigning prior parameters on observation model (pA matrices) + self.pA = pA + + # Initialise transition model (B matrices) + if not isinstance(B, np.ndarray): + raise TypeError( + 'B matrix must be a numpy array' + ) + + self.B = utils.to_obj_array(B) + + assert utils.is_normalized(self.B), "B matrix is not normalized (i.e. B[f].sum(axis = 0) must all equal 1.0 for all factors)" + + # Determine number of hidden state factors and their dimensionalities + self.num_states = [self.B[f].shape[0] for f in range(len(self.B))] + self.num_factors = len(self.num_states) + + # Assigning prior parameters on transition model (pB matrices) + self.pB = pB + + # If no `num_controls` are given, then this is inferred from the shapes of the input B matrices + if num_controls == None: + self.num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] + else: + inferred_num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] + assert num_controls == inferred_num_controls, "num_controls must be consistent with the shapes of the input B matrices" + self.num_controls = num_controls + + # checking that `A_factor_list` and `B_factor_list` are consistent with `num_factors`, `num_states`, and lagging dimensions of `A` and `B` tensors + self.factorized = False + if A_factor_list == None: + self.A_factor_list = self.num_modalities * [list(range(self.num_factors))] # defaults to having all modalities depend on all factors + for m in range(self.num_modalities): + factor_dims = tuple([self.num_states[f] for f in self.A_factor_list[m]]) + assert self.A[m].shape[1:] == factor_dims, f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of A{m}..." + if self.pA is not None: + assert self.pA[m].shape[1:] == factor_dims, f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of pA{m}..." + else: + self.factorized = True + for m in range(self.num_modalities): + assert max(A_factor_list[m]) <= (self.num_factors - 1), f"Check modality {m} of A_factor_list - must be consistent with `num_states` and `num_factors`..." + factor_dims = tuple([self.num_states[f] for f in A_factor_list[m]]) + assert self.A[m].shape[1:] == factor_dims, f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of A{m}..." + if self.pA is not None: + assert self.pA[m].shape[1:] == factor_dims, f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of pA{m}..." + self.A_factor_list = A_factor_list + + # generate a list of the modalities that depend on each factor + A_modality_list = [] + for f in range(self.num_factors): + A_modality_list.append( [m for m in range(self.num_modalities) if f in self.A_factor_list[m]] ) + + # Store thee `A_factor_list` and the `A_modality_list` in a Markov blanket dictionary + self.mb_dict = { + 'A_factor_list': self.A_factor_list, + 'A_modality_list': A_modality_list + } + + if B_factor_list == None: + self.B_factor_list = [[f] for f in range(self.num_factors)] # defaults to having all factors depend only on themselves + for f in range(self.num_factors): + factor_dims = tuple([self.num_states[f] for f in self.B_factor_list[f]]) + assert self.B[f].shape[1:-1] == factor_dims, f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B{f}..." + if self.pB is not None: + assert self.pB[f].shape[1:-1] == factor_dims, f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB{f}..." + else: + self.factorized = True + for f in range(self.num_factors): + assert max(B_factor_list[f]) <= (self.num_factors - 1), f"Check factor {f} of B_factor_list - must be consistent with `num_states` and `num_factors`..." + factor_dims = tuple([self.num_states[f] for f in B_factor_list[f]]) + assert self.B[f].shape[1:-1] == factor_dims, f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of B{f}..." + if self.pB is not None: + assert self.pB[f].shape[1:-1] == factor_dims, f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of pB{f}..." + self.B_factor_list = B_factor_list + + # Users have the option to make only certain factors controllable. + # default behaviour is to make all hidden state factors controllable, i.e. `self.num_factors == len(self.num_controls)` + if control_fac_idx == None: + self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] + else: + + assert max(control_fac_idx) <= (self.num_factors - 1), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + self.control_fac_idx = control_fac_idx + + for factor_idx in self.control_fac_idx: + assert self.num_controls[factor_idx] > 1, "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" + + # Again, the use can specify a set of possible policies, or + # all possible combinations of actions and timesteps will be considered + if policies is None: + policies = self._construct_policies() + self.policies = policies + + assert all([len(self.num_controls) == policy.shape[1] for policy in self.policies]), "Number of control states is not consistent with policy dimensionalities" + + all_policies = np.vstack(self.policies) + + assert all([n_c >= max_action for (n_c, max_action) in zip(self.num_controls, list(np.max(all_policies, axis =0)+1))]), "Maximum number of actions is not consistent with `num_controls`" + + # Construct prior preferences (uniform if not specified) + + if C is not None: + if not isinstance(C, np.ndarray): + raise TypeError( + 'C vector must be a numpy array' + ) + self.C = utils.to_obj_array(C) + + assert len(self.C) == self.num_modalities, f"Check C vector: number of sub-arrays must be equal to number of observation modalities: {self.num_modalities}" + + for modality, c_m in enumerate(self.C): + assert c_m.shape[0] == self.num_obs[modality], f"Check C vector: number of rows of C vector for modality {modality} should be equal to {self.num_obs[modality]}" + else: + self.C = self._construct_C_prior() + + # Construct prior over hidden states (uniform if not specified) + + if D is not None: + if not isinstance(D, np.ndarray): + raise TypeError( + 'D vector must be a numpy array' + ) + self.D = utils.to_obj_array(D) + + assert len(self.D) == self.num_factors, f"Check D vector: number of sub-arrays must be equal to number of hidden state factors: {self.num_factors}" + + for f, d_f in enumerate(self.D): + assert d_f.shape[0] == self.num_states[f], f"Check D vector: number of entries of D vector for factor {f} should be equal to {self.num_states[f]}" + else: + if pD is not None: + self.D = utils.norm_dist_obj_arr(pD) + else: + self.D = self._construct_D_prior() + + assert utils.is_normalized(self.D), "D vector is not normalized (i.e. D[f].sum() must all equal 1.0 for all factors)" + + # Assigning prior parameters on initial hidden states (pD vectors) + self.pD = pD + + # Construct prior over policies (uniform if not specified) + if E is not None: + if not isinstance(E, np.ndarray): + raise TypeError( + 'E vector must be a numpy array' + ) + self.E = E + + assert len(self.E) == len(self.policies), f"Check E vector: length of E must be equal to number of policies: {len(self.policies)}" + + else: + self.E = self._construct_E_prior() + + # Construct I for backwards induction (if H specified) + if H is not None: + self.H = H + self.I = control.backwards_induction(H, B, B_factor_list, threshold=ii_threshold, depth=ii_depth) + else: + self.H = None + self.I = None + + self.edge_handling_params = {} + self.edge_handling_params['use_BMA'] = use_BMA # creates a 'D-like' moving prior + self.edge_handling_params['policy_sep_prior'] = policy_sep_prior # carries forward last timesteps posterior, in a policy-conditioned way + + # use_BMA and policy_sep_prior can both be False, but both cannot be simultaneously be True. If one of them is True, the other must be False + if policy_sep_prior: + if use_BMA: + warnings.warn( + "Inconsistent choice of `policy_sep_prior` and `use_BMA`.\ + You have set `policy_sep_prior` to True, so we are setting `use_BMA` to False" + ) + self.edge_handling_params['use_BMA'] = False + + if inference_algo == None: + self.inference_algo = "VANILLA" + self.inference_params = self._get_default_params() + if inference_horizon > 1: + warnings.warn( + "If `inference_algo` is VANILLA, then inference_horizon must be 1\n. \ + Setting inference_horizon to default value of 1...\n" + ) + self.inference_horizon = 1 + else: + self.inference_horizon = 1 + else: + self.inference_algo = inference_algo + self.inference_params = self._get_default_params() + self.inference_horizon = inference_horizon + + if save_belief_hist: + self.qs_hist = [] + self.q_pi_hist = [] + + self.prev_obs = [] + self.reset() + + self.action = None + self.prev_actions = None + + def _construct_C_prior(self): + + C = utils.obj_array_zeros(self.num_obs) + + return C + + def _construct_D_prior(self): + + D = utils.obj_array_uniform(self.num_states) + + return D + + def _construct_policies(self): + + policies = control.construct_policies( + self.num_states, self.num_controls, self.policy_len, self.control_fac_idx + ) + + return policies + + def _construct_num_controls(self): + num_controls = control.get_num_controls_from_policies( + self.policies + ) + + return num_controls + + def _construct_E_prior(self): + E = np.ones(len(self.policies)) / len(self.policies) + return E + + def reset(self, init_qs=None): + """ + Resets the posterior beliefs about hidden states of the agent to a uniform distribution, and resets time to first timestep of the simulation's temporal horizon. + Returns the posterior beliefs about hidden states. + + Returns + --------- + qs: ``numpy.ndarray`` of dtype object + Initialized posterior over hidden states. Depending on the inference algorithm chosen and other parameters (such as the parameters stored within ``edge_handling_paramss), + the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. + For example, in case the ``self.inference_algo == 'MMP' `, the indexing structure of ``qs`` is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + at timepoint ``t_idx``. In this case, the returned ``qs`` will only have entries filled out for the first timestep, i.e. for ``q[p_idx][0]``, for all + policy-indices ``p_idx``. Subsequent entries ``q[:][1, 2, ...]`` will be initialized to empty ``numpy.ndarray`` objects. + """ + + self.curr_timestep = 0 + + if init_qs is None: + if self.inference_algo == 'VANILLA': + self.qs = utils.obj_array_uniform(self.num_states) + else: # in the case you're doing MMP (i.e. you have an inference_horizon > 1), we have to account for policy- and timestep-conditioned posterior beliefs + self.qs = utils.obj_array(len(self.policies)) + for p_i, _ in enumerate(self.policies): + self.qs[p_i] = utils.obj_array(self.inference_horizon + self.policy_len + 1) # + 1 to include belief about current timestep + self.qs[p_i][0] = utils.obj_array_uniform(self.num_states) + + first_belief = utils.obj_array(len(self.policies)) + for p_i, _ in enumerate(self.policies): + first_belief[p_i] = copy.deepcopy(self.D) + + if self.edge_handling_params['policy_sep_prior']: + self.set_latest_beliefs(last_belief = first_belief) + else: + self.set_latest_beliefs(last_belief = self.D) + + else: + self.qs = init_qs + + if self.pA is not None: + self.A = utils.norm_dist_obj_arr(self.pA) + + if self.pB is not None: + self.B = utils.norm_dist_obj_arr(self.pB) + + return self.qs + + def step_time(self): + """ + Advances time by one step. This involves updating the ``self.prev_actions``, and in the case of a moving + inference horizon, this also shifts the history of post-dictive beliefs forward in time (using ``self.set_latest_beliefs()``), + so that the penultimate belief before the beginning of the horizon is correctly indexed. + + Returns + --------- + curr_timestep: ``int`` + The index in absolute simulation time of the current timestep. + """ + + if self.prev_actions is None: + self.prev_actions = [self.action] + else: + self.prev_actions.append(self.action) + + self.curr_timestep += 1 + + if self.inference_algo == "MMP" and (self.curr_timestep - self.inference_horizon) >= 0: + self.set_latest_beliefs() + + return self.curr_timestep + + def set_latest_beliefs(self,last_belief=None): + """ + Both sets and returns the penultimate belief before the first timestep of the backwards inference horizon. + In the case that the inference horizon includes the first timestep of the simulation, then the ``latest_belief`` is + simply the first belief of the whole simulation, or the prior (``self.D``). The particular structure of the ``latest_belief`` + depends on the value of ``self.edge_handling_params['use_BMA']``. + + Returns + --------- + latest_belief: ``numpy.ndarray`` of dtype object + Penultimate posterior beliefs over hidden states at the timestep just before the first timestep of the inference horizon. + Depending on the value of ``self.edge_handling_params['use_BMA']``, the shape of this output array will differ. + If ``self.edge_handling_params['use_BMA'] == True``, then ``latest_belief`` will be a Bayesian model average + of beliefs about hidden states, where the average is taken with respect to posterior beliefs about policies. + Otherwise, `latest_belief`` will be the full, policy-conditioned belief about hidden states, and will have indexing structure + policies->factors, such that ``latest_belief[p_idx][f_idx]`` refers to the penultimate belief about marginal factor ``f_idx`` + under policy ``p_idx``. + """ + + if last_belief is None: + last_belief = utils.obj_array(len(self.policies)) + for p_i, _ in enumerate(self.policies): + last_belief[p_i] = copy.deepcopy(self.qs[p_i][0]) + + begin_horizon_step = self.curr_timestep - self.inference_horizon + if self.edge_handling_params['use_BMA'] and (begin_horizon_step >= 0): + if hasattr(self, "q_pi_hist"): + self.latest_belief = inference.average_states_over_policies(last_belief, self.q_pi_hist[begin_horizon_step]) # average the earliest marginals together using contemporaneous posterior over policies (`self.q_pi_hist[0]`) + else: + self.latest_belief = inference.average_states_over_policies(last_belief, self.q_pi) # average the earliest marginals together using posterior over policies (`self.q_pi`) + else: + self.latest_belief = last_belief + + return self.latest_belief + + def get_future_qs(self): + """ + Returns the last ``self.policy_len`` timesteps of each policy-conditioned belief + over hidden states. This is a step of pre-processing that needs to be done before computing + the expected free energy of policies. We do this to avoid computing the expected free energy of + policies using beliefs about hidden states in the past (so-called "post-dictive" beliefs). + + Returns + --------- + future_qs_seq: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states under a policy, in the future. This is a nested ``numpy.ndarray`` object array, with one + sub-array ``future_qs_seq[p_idx]`` for each policy. The indexing structure is policy->timepoint-->factor, so that + ``future_qs_seq[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + at future timepoint ``t_idx``, relative to the current timestep. + """ + + future_qs_seq = utils.obj_array(len(self.qs)) + for p_idx in range(len(self.qs)): + future_qs_seq[p_idx] = self.qs[p_idx][-(self.policy_len+1):] # this grabs only the last `policy_len`+1 beliefs about hidden states, under each policy + + return future_qs_seq + + + def infer_states(self, observation, distr_obs=False): + """ + Update approximate posterior over hidden states by solving variational inference problem, given an observation. + + Parameters + ---------- + observation: ``list`` or ``tuple`` of ints + The observation input. Each entry ``observation[m]`` stores the index of the discrete + observation for modality ``m``. + distr_obs: ``bool`` + Whether the observation is a distribution over possible observations, rather than a single observation. + + Returns + --------- + qs: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``qs`` variable will have additional sub-structure to reflect whether + beliefs are additionally conditioned on timepoint and policy. + For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + at timepoint ``t_idx``. + """ + + observation = tuple(observation) if not distr_obs else observation + + if not hasattr(self, "qs"): + self.reset() + + if self.inference_algo == "VANILLA": + if self.action is not None: + empirical_prior = control.get_expected_states_interactions( + self.qs, self.B, self.B_factor_list, self.action.reshape(1, -1) + )[0] + else: + empirical_prior = self.D + qs = inference.update_posterior_states_factorized( + self.A, + observation, + self.num_obs, + self.num_states, + self.mb_dict, + empirical_prior, + **self.inference_params + ) + elif self.inference_algo == "MMP": + + self.prev_obs.append(observation) + if len(self.prev_obs) > self.inference_horizon: + latest_obs = self.prev_obs[-self.inference_horizon:] + latest_actions = self.prev_actions[-(self.inference_horizon-1):] + else: + latest_obs = self.prev_obs + latest_actions = self.prev_actions + + qs, F = inference.update_posterior_states_full_factorized( + self.A, + self.mb_dict, + self.B, + self.B_factor_list, + latest_obs, + self.policies, + latest_actions, + prior = self.latest_belief, + policy_sep_prior = self.edge_handling_params['policy_sep_prior'], + **self.inference_params + ) + + self.F = F # variational free energy of each policy + + if hasattr(self, "qs_hist"): + self.qs_hist.append(qs) + self.qs = qs + + return qs + + def _infer_states_test(self, observation, distr_obs=False): + """ + Test version of ``infer_states()`` that additionally returns intermediate variables of MMP, such as + the prediction errors and intermediate beliefs from the optimization. Used for benchmarking against SPM outputs. + """ + observation = tuple(observation) if not distr_obs else observation + + if not hasattr(self, "qs"): + self.reset() + + if self.inference_algo == "VANILLA": + if self.action is not None: + empirical_prior = control.get_expected_states( + self.qs, self.B, self.action.reshape(1, -1) + )[0] + else: + empirical_prior = self.D + qs = inference.update_posterior_states( + self.A, + observation, + empirical_prior, + **self.inference_params + ) + elif self.inference_algo == "MMP": + + self.prev_obs.append(observation) + if len(self.prev_obs) > self.inference_horizon: + latest_obs = self.prev_obs[-self.inference_horizon:] + latest_actions = self.prev_actions[-(self.inference_horizon-1):] + else: + latest_obs = self.prev_obs + latest_actions = self.prev_actions + + qs, F, xn, vn = inference._update_posterior_states_full_test( + self.A, + self.B, + latest_obs, + self.policies, + latest_actions, + prior = self.latest_belief, + policy_sep_prior = self.edge_handling_params['policy_sep_prior'], + **self.inference_params + ) + + self.F = F # variational free energy of each policy + + if hasattr(self, "qs_hist"): + self.qs_hist.append(qs) + + self.qs = qs + + if self.inference_algo == "MMP": + return qs, xn, vn + else: + return qs + + def infer_policies(self): + """ + Perform policy inference by optimizing a posterior (categorical) distribution over policies. + This distribution is computed as the softmax of ``G * gamma + lnE`` where ``G`` is the negative expected + free energy of policies, ``gamma`` is a policy precision and ``lnE`` is the (log) prior probability of policies. + This function returns the posterior over policies as well as the negative expected free energy of each policy. + In this version of the function, the expected free energy of policies is computed using known factorized structure + in the model, which speeds up computation (particular the state information gain calculations). + + Returns + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + G: 1D ``numpy.ndarray`` + Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + """ + + if self.inference_algo == "VANILLA": + if self.sophisticated: + q_pi, G = control.sophisticated_inference_search( + self.qs, + self.policies, + self.A, + self.B, + self.C, + self.A_factor_list, + self.B_factor_list, + self.I, + self.si_horizon, + self.si_policy_prune_threshold, + self.si_state_prune_threshold, + self.si_prune_penalty, + 1.0, + self.inference_params, + n=0 + ) + else: + q_pi, G = control.update_posterior_policies_factorized( + self.qs, + self.A, + self.B, + self.C, + self.A_factor_list, + self.B_factor_list, + self.policies, + self.use_utility, + self.use_states_info_gain, + self.use_param_info_gain, + self.pA, + self.pB, + E = self.E, + I = self.I, + gamma = self.gamma + ) + elif self.inference_algo == "MMP": + + future_qs_seq = self.get_future_qs() + + q_pi, G = control.update_posterior_policies_full_factorized( + future_qs_seq, + self.A, + self.B, + self.C, + self.A_factor_list, + self.B_factor_list, + self.policies, + self.use_utility, + self.use_states_info_gain, + self.use_param_info_gain, + self.latest_belief, + self.pA, + self.pB, + F=self.F, + E=self.E, + I=self.I, + gamma=self.gamma + ) + + if hasattr(self, "q_pi_hist"): + self.q_pi_hist.append(q_pi) + if len(self.q_pi_hist) > self.inference_horizon: + self.q_pi_hist = self.q_pi_hist[-(self.inference_horizon-1):] + + self.q_pi = q_pi + self.G = G + return q_pi, G + + def sample_action(self): + """ + Sample or select a discrete action from the posterior over control states. + This function both sets or cachés the action as an internal variable with the agent and returns it. + This function also updates time variable (and thus manages consequences of updating the moving reference frame of beliefs) + using ``self.step_time()``. + + + Returns + ---------- + action: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor + """ + + if self.sampling_mode == "marginal": + action = control.sample_action( + self.q_pi, self.policies, self.num_controls, action_selection = self.action_selection, alpha = self.alpha + ) + elif self.sampling_mode == "full": + action = control.sample_policy(self.q_pi, self.policies, self.num_controls, + action_selection=self.action_selection, alpha=self.alpha) + + self.action = action + + self.step_time() + + return action + + def _sample_action_test(self): + """ + Sample or select a discrete action from the posterior over control states. + This function both sets or cachés the action as an internal variable with the agent and returns it. + This function also updates time variable (and thus manages consequences of updating the moving reference frame of beliefs) + using ``self.step_time()``. + + Returns + ---------- + action: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor + """ + + if self.sampling_mode == "marginal": + action, p_dist = control._sample_action_test(self.q_pi, self.policies, self.num_controls, + action_selection=self.action_selection, alpha=self.alpha) + elif self.sampling_mode == "full": + action, p_dist = control._sample_policy_test(self.q_pi, self.policies, self.num_controls, + action_selection=self.action_selection, alpha=self.alpha) + + self.action = action + + self.step_time() + + return action, p_dist + + def update_A(self, obs): + """ + Update approximate posterior beliefs about Dirichlet parameters that parameterise the observation likelihood or ``A`` array. + + Parameters + ---------- + observation: ``list`` or ``tuple`` of ints + The observation input. Each entry ``observation[m]`` stores the index of the discrete + observation for modality ``m``. + + Returns + ----------- + qA: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. + """ + + qA = learning.update_obs_likelihood_dirichlet_factorized( + self.pA, + self.A, + obs, + self.qs, + self.A_factor_list, + self.lr_pA, + self.modalities_to_learn + ) + + self.pA = qA # set new prior to posterior + self.A = utils.norm_dist_obj_arr(qA) # take expected value of posterior Dirichlet parameters to calculate posterior over A array + + return qA + + def _update_A_old(self, obs): + """ + Update approximate posterior beliefs about Dirichlet parameters that parameterise the observation likelihood or ``A`` array. + + Parameters + ---------- + observation: ``list`` or ``tuple`` of ints + The observation input. Each entry ``observation[m]`` stores the index of the discrete + observation for modality ``m``. + + Returns + ----------- + qA: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. + """ + + qA = learning.update_obs_likelihood_dirichlet( + self.pA, + self.A, + obs, + self.qs, + self.lr_pA, + self.modalities_to_learn + ) + + self.pA = qA # set new prior to posterior + self.A = utils.norm_dist_obj_arr(qA) # take expected value of posterior Dirichlet parameters to calculate posterior over A array + + return qA + + def update_B(self, qs_prev): + """ + Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood + + Parameters + ----------- + qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at previous timepoint. + + Returns + ----------- + qB: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. + """ + + qB = learning.update_state_likelihood_dirichlet_interactions( + self.pB, + self.B, + self.action, + self.qs, + qs_prev, + self.B_factor_list, + self.lr_pB, + self.factors_to_learn + ) + + self.pB = qB # set new prior to posterior + self.B = utils.norm_dist_obj_arr(qB) # take expected value of posterior Dirichlet parameters to calculate posterior over B array + + return qB + + def _update_B_old(self, qs_prev): + """ + Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood + + Parameters + ----------- + qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at previous timepoint. + + Returns + ----------- + qB: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. + """ + + qB = learning.update_state_likelihood_dirichlet( + self.pB, + self.B, + self.action, + self.qs, + qs_prev, + self.lr_pB, + self.factors_to_learn + ) + + self.pB = qB # set new prior to posterior + self.B = utils.norm_dist_obj_arr(qB) # take expected value of posterior Dirichlet parameters to calculate posterior over B array + + return qB + + def update_D(self, qs_t0 = None): + """ + Update Dirichlet parameters of the initial hidden state distribution + (prior beliefs about hidden states at the beginning of the inference window). + + Parameters + ----------- + qs_t0: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, or ``None`` + Marginal posterior beliefs over hidden states at current timepoint. If ``None``, the + value of ``qs_t0`` is set to ``self.qs_hist[0]`` (i.e. the initial hidden state beliefs at the first timepoint). + If ``self.inference_algo == "MMP"``, then ``qs_t0`` is set to be the Bayesian model average of beliefs about hidden states + at the first timestep of the backwards inference horizon, where the average is taken with respect to posterior beliefs about policies. + + Returns + ----------- + qD: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs_t0``), after having updated it with state beliefs. + """ + + if self.inference_algo == "VANILLA": + + if qs_t0 is None: + + try: + qs_t0 = self.qs_hist[0] + except ValueError: + print("qs_t0 must either be passed as argument to `update_D` or `save_belief_hist` must be set to True!") + + elif self.inference_algo == "MMP": + + if self.edge_handling_params['use_BMA']: + qs_t0 = self.latest_belief + elif self.edge_handling_params['policy_sep_prior']: + + qs_pi_t0 = self.latest_belief + + # get beliefs about policies at the time at the beginning of the inference horizon + if hasattr(self, "q_pi_hist"): + begin_horizon_step = max(0, self.curr_timestep - self.inference_horizon) + q_pi_t0 = np.copy(self.q_pi_hist[begin_horizon_step]) + else: + q_pi_t0 = np.copy(self.q_pi) + + qs_t0 = inference.average_states_over_policies(qs_pi_t0,q_pi_t0) # beliefs about hidden states at the first timestep of the inference horizon + + qD = learning.update_state_prior_dirichlet(self.pD, qs_t0, self.lr_pD, factors = self.factors_to_learn) + + self.pD = qD # set new prior to posterior + self.D = utils.norm_dist_obj_arr(qD) # take expected value of posterior Dirichlet parameters to calculate posterior over D array + + return qD + + def _get_default_params(self): + method = self.inference_algo + default_params = None + if method == "VANILLA": + default_params = {"num_iter": 10, "dF": 1.0, "dF_tol": 0.001, "compute_vfe": True} + elif method == "MMP": + default_params = {"num_iter": 10, "grad_descent": True, "tau": 0.25} + elif method == "VMP": + raise NotImplementedError("VMP is not implemented") + elif method == "BP": + raise NotImplementedError("BP is not implemented") + elif method == "EP": + raise NotImplementedError("EP is not implemented") + elif method == "CV": + raise NotImplementedError("CV is not implemented") + + return default_params + + \ No newline at end of file diff --git a/pymdp/algos/__init__.py b/pymdp/legacy/algos/__init__.py similarity index 100% rename from pymdp/algos/__init__.py rename to pymdp/legacy/algos/__init__.py diff --git a/pymdp/algos/fpi.py b/pymdp/legacy/algos/fpi.py similarity index 99% rename from pymdp/algos/fpi.py rename to pymdp/legacy/algos/fpi.py index e007d9a9..61e45d20 100644 --- a/pymdp/algos/fpi.py +++ b/pymdp/legacy/algos/fpi.py @@ -3,8 +3,8 @@ # pylint: disable=no-member import numpy as np -from pymdp.maths import spm_dot, dot_likelihood, get_joint_likelihood, softmax, calc_free_energy, spm_log_single, spm_log_obj_array -from pymdp.utils import to_obj_array, obj_array, obj_array_uniform +from pymdp.legacy.maths import spm_dot, dot_likelihood, get_joint_likelihood, softmax, calc_free_energy, spm_log_single, spm_log_obj_array +from pymdp.legacy.utils import to_obj_array, obj_array, obj_array_uniform from itertools import chain from copy import deepcopy diff --git a/pymdp/algos/mmp.py b/pymdp/legacy/algos/mmp.py similarity index 99% rename from pymdp/algos/mmp.py rename to pymdp/legacy/algos/mmp.py index 019e81df..87089da3 100644 --- a/pymdp/algos/mmp.py +++ b/pymdp/legacy/algos/mmp.py @@ -3,8 +3,8 @@ import numpy as np -from pymdp.utils import to_obj_array, get_model_dimensions, obj_array, obj_array_zeros, obj_array_uniform -from pymdp.maths import spm_dot, spm_norm, softmax, calc_free_energy, spm_log_single, factor_dot_flex +from pymdp.legacy.utils import to_obj_array, get_model_dimensions, obj_array, obj_array_zeros, obj_array_uniform +from pymdp.legacy.maths import spm_dot, spm_norm, softmax, calc_free_energy, spm_log_single, factor_dot_flex import copy def run_mmp( diff --git a/pymdp/algos/mmp_old.py b/pymdp/legacy/algos/mmp_old.py similarity index 99% rename from pymdp/algos/mmp_old.py rename to pymdp/legacy/algos/mmp_old.py index e9363608..3a564b01 100644 --- a/pymdp/algos/mmp_old.py +++ b/pymdp/legacy/algos/mmp_old.py @@ -6,8 +6,8 @@ import sys import pathlib -from pymdp.maths import spm_dot, get_joint_likelihood, spm_norm, softmax, calc_free_energy -from pymdp import utils +from pymdp.legacy.maths import spm_dot, get_joint_likelihood, spm_norm, softmax, calc_free_energy +from pymdp.legacy import utils def run_mmp_old( diff --git a/pymdp/legacy/control.py b/pymdp/legacy/control.py new file mode 100644 index 00000000..3a27895d --- /dev/null +++ b/pymdp/legacy/control.py @@ -0,0 +1,1466 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# pylint: disable=no-member +# pylint: disable=not-an-iterable + +import itertools +import numpy as np +from pymdp.legacy.maths import softmax, softmax_obj_arr, spm_dot, spm_wnorm, spm_MDP_G, spm_log_single, kl_div, entropy +from pymdp.legacy.inference import update_posterior_states_factorized, average_states_over_policies +from pymdp.legacy import utils +import copy + +def update_posterior_policies_full( + qs_seq_pi, + A, + B, + C, + policies, + use_utility=True, + use_states_info_gain=True, + use_param_info_gain=False, + prior=None, + pA=None, + pB=None, + F=None, + E=None, + I=None, + gamma=16.0 +): + """ + Update posterior beliefs about policies by computing expected free energy of each policy and integrating that + with the variational free energy of policies ``F`` and prior over policies ``E``. This is intended to be used in conjunction + with the ``update_posterior_states_full`` method of ``inference.py``, since the full posterior over future timesteps, under all policies, is + assumed to be provided in the input array ``qs_seq_pi``. + + Parameters + ---------- + qs_seq_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, + where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + C: ``numpy.ndarray`` of dtype object + Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. + This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + use_utility: ``Bool``, default ``True`` + Boolean flag that determines whether expected utility should be incorporated into computation of EFE. + use_states_info_gain: ``Bool``, default ``True`` + Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. + use_param_info_gain: ``Bool``, default ``False`` + Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. + prior: ``numpy.ndarray`` of dtype object, default ``None`` + If provided, this is a ``numpy`` object array with one sub-array per hidden state factor, that stores the prior beliefs about initial states. + If ``None``, this defaults to a flat (uninformative) prior over hidden states. + pA: ``numpy.ndarray`` of dtype object, default ``None`` + Dirichlet parameters over observation model (same shape as ``A``) + pB: ``numpy.ndarray`` of dtype object, default ``None`` + Dirichlet parameters over transition model (same shape as ``B``) + F: 1D ``numpy.ndarray``, default ``None`` + Vector of variational free energies for each policy + E: 1D ``numpy.ndarray``, default ``None`` + Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits"). If ``None``, this defaults to a flat (uninformative) prior over policies. + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + gamma: ``float``, default 16.0 + Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies + + Returns + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + G: 1D ``numpy.ndarray`` + Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + """ + + num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) + horizon = len(qs_seq_pi[0]) + num_policies = len(qs_seq_pi) + + qo_seq = utils.obj_array(horizon) + for t in range(horizon): + qo_seq[t] = utils.obj_array_zeros(num_obs) + + # initialise expected observations + qo_seq_pi = utils.obj_array(num_policies) + + # initialize (negative) expected free energies for all policies + G = np.zeros(num_policies) + + if F is None: + F = spm_log_single(np.ones(num_policies) / num_policies) + + if E is None: + lnE = spm_log_single(np.ones(num_policies) / num_policies) + else: + lnE = spm_log_single(E) + + if I is not None: + init_qs_all_pi = [qs_seq_pi[p][0] for p in range(num_policies)] + qs_bma = average_states_over_policies(init_qs_all_pi, softmax(E)) + + for p_idx, policy in enumerate(policies): + + qo_seq_pi[p_idx] = get_expected_obs(qs_seq_pi[p_idx], A) + + if use_utility: + G[p_idx] += calc_expected_utility(qo_seq_pi[p_idx], C) + + if use_states_info_gain: + G[p_idx] += calc_states_info_gain(A, qs_seq_pi[p_idx]) + + if use_param_info_gain: + if pA is not None: + G[p_idx] += calc_pA_info_gain(pA, qo_seq_pi[p_idx], qs_seq_pi[p_idx]) + if pB is not None: + G[p_idx] += calc_pB_info_gain(pB, qs_seq_pi[p_idx], prior, policy) + + if I is not None: + G[p_idx] += calc_inductive_cost(qs_bma, qs_seq_pi[p_idx], I) + + q_pi = softmax(G * gamma - F + lnE) + + return q_pi, G + +def update_posterior_policies_full_factorized( + qs_seq_pi, + A, + B, + C, + A_factor_list, + B_factor_list, + policies, + use_utility=True, + use_states_info_gain=True, + use_param_info_gain=False, + prior=None, + pA=None, + pB=None, + F=None, + E=None, + I=None, + gamma=16.0 +): + """ + Update posterior beliefs about policies by computing expected free energy of each policy and integrating that + with the variational free energy of policies ``F`` and prior over policies ``E``. This is intended to be used in conjunction + with the ``update_posterior_states_full`` method of ``inference.py``, since the full posterior over future timesteps, under all policies, is + assumed to be provided in the input array ``qs_seq_pi``. + + Parameters + ---------- + qs_seq_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, + where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + C: ``numpy.ndarray`` of dtype object + Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. + This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. + A_factor_list: ``list`` of ``list``s of ``int`` + ``list`` that stores the indices of the hidden state factor indices that each observation modality depends on. For example, if ``A_factor_list[m] = [0, 1]``, then + observation modality ``m`` depends on hidden state factors 0 and 1. + B_factor_list: ``list`` of ``list``s of ``int`` + ``list`` that stores the indices of the hidden state factor indices that each hidden state factor depends on. For example, if ``B_factor_list[f] = [0, 1]``, then + the transitions in hidden state factor ``f`` depend on hidden state factors 0 and 1. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + use_utility: ``Bool``, default ``True`` + Boolean flag that determines whether expected utility should be incorporated into computation of EFE. + use_states_info_gain: ``Bool``, default ``True`` + Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. + use_param_info_gain: ``Bool``, default ``False`` + Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. + prior: ``numpy.ndarray`` of dtype object, default ``None`` + If provided, this is a ``numpy`` object array with one sub-array per hidden state factor, that stores the prior beliefs about initial states. + If ``None``, this defaults to a flat (uninformative) prior over hidden states. + pA: ``numpy.ndarray`` of dtype object, default ``None`` + Dirichlet parameters over observation model (same shape as ``A``) + pB: ``numpy.ndarray`` of dtype object, default ``None`` + Dirichlet parameters over transition model (same shape as ``B``) + F: 1D ``numpy.ndarray``, default ``None`` + Vector of variational free energies for each policy + E: 1D ``numpy.ndarray``, default ``None`` + Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits"). If ``None``, this defaults to a flat (uninformative) prior over policies. + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + gamma: ``float``, default 16.0 + Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies + + Returns + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + G: 1D ``numpy.ndarray`` + Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + """ + + num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) + horizon = len(qs_seq_pi[0]) + num_policies = len(qs_seq_pi) + + qo_seq = utils.obj_array(horizon) + for t in range(horizon): + qo_seq[t] = utils.obj_array_zeros(num_obs) + + # initialise expected observations + qo_seq_pi = utils.obj_array(num_policies) + + # initialize (negative) expected free energies for all policies + G = np.zeros(num_policies) + + if F is None: + F = spm_log_single(np.ones(num_policies) / num_policies) + + if E is None: + lnE = spm_log_single(np.ones(num_policies) / num_policies) + else: + lnE = spm_log_single(E) + + if I is not None: + init_qs_all_pi = [qs_seq_pi[p][0] for p in range(num_policies)] + qs_bma = average_states_over_policies(init_qs_all_pi, softmax(E)) + + for p_idx, policy in enumerate(policies): + + qo_seq_pi[p_idx] = get_expected_obs_factorized(qs_seq_pi[p_idx], A, A_factor_list) + + if use_utility: + G[p_idx] += calc_expected_utility(qo_seq_pi[p_idx], C) + + if use_states_info_gain: + G[p_idx] += calc_states_info_gain_factorized(A, qs_seq_pi[p_idx], A_factor_list) + + if use_param_info_gain: + if pA is not None: + G[p_idx] += calc_pA_info_gain_factorized(pA, qo_seq_pi[p_idx], qs_seq_pi[p_idx], A_factor_list) + if pB is not None: + G[p_idx] += calc_pB_info_gain_interactions(pB, qs_seq_pi[p_idx], qs_seq_pi[p_idx], B_factor_list, policy) + + if I is not None: + G[p_idx] += calc_inductive_cost(qs_bma, qs_seq_pi[p_idx], I) + + q_pi = softmax(G * gamma - F + lnE) + + return q_pi, G + + +def update_posterior_policies( + qs, + A, + B, + C, + policies, + use_utility=True, + use_states_info_gain=True, + use_param_info_gain=False, + pA=None, + pB=None, + E=None, + I=None, + gamma=16.0 +): + """ + Update posterior beliefs about policies by computing expected free energy of each policy and integrating that + with the prior over policies ``E``. This is intended to be used in conjunction + with the ``update_posterior_states`` method of the ``inference`` module, since only the posterior about the hidden states at the current timestep + ``qs`` is assumed to be provided, unconditional on policies. The predictive posterior over hidden states under all policies Q(s, pi) is computed + using the starting posterior about states at the current timestep ``qs`` and the generative model (e.g. ``A``, ``B``, ``C``) + + Parameters + ---------- + qs: ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint (unconditioned on policies) + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + C: ``numpy.ndarray`` of dtype object + Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. + This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + use_utility: ``Bool``, default ``True`` + Boolean flag that determines whether expected utility should be incorporated into computation of EFE. + use_states_info_gain: ``Bool``, default ``True`` + Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. + use_param_info_gain: ``Bool``, default ``False`` + Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. + pA: ``numpy.ndarray`` of dtype object, optional + Dirichlet parameters over observation model (same shape as ``A``) + pB: ``numpy.ndarray`` of dtype object, optional + Dirichlet parameters over transition model (same shape as ``B``) + E: 1D ``numpy.ndarray``, optional + Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits") + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + gamma: float, default 16.0 + Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies + + Returns + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + G: 1D ``numpy.ndarray`` + Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + """ + + n_policies = len(policies) + G = np.zeros(n_policies) + q_pi = np.zeros((n_policies, 1)) + + if E is None: + lnE = spm_log_single(np.ones(n_policies) / n_policies) + else: + lnE = spm_log_single(E) + + for idx, policy in enumerate(policies): + qs_pi = get_expected_states(qs, B, policy) + qo_pi = get_expected_obs(qs_pi, A) + + if use_utility: + G[idx] += calc_expected_utility(qo_pi, C) + + if use_states_info_gain: + G[idx] += calc_states_info_gain(A, qs_pi) + + if use_param_info_gain: + if pA is not None: + G[idx] += calc_pA_info_gain(pA, qo_pi, qs_pi).item() + if pB is not None: + G[idx] += calc_pB_info_gain(pB, qs_pi, qs, policy).item() + + if I is not None: + G[idx] += calc_inductive_cost(qs, qs_pi, I) + + q_pi = softmax(G * gamma + lnE) + + return q_pi, G + +def update_posterior_policies_factorized( + qs, + A, + B, + C, + A_factor_list, + B_factor_list, + policies, + use_utility=True, + use_states_info_gain=True, + use_param_info_gain=False, + pA=None, + pB=None, + E=None, + I=None, + gamma=16.0 +): + """ + Update posterior beliefs about policies by computing expected free energy of each policy and integrating that + with the prior over policies ``E``. This is intended to be used in conjunction + with the ``update_posterior_states`` method of the ``inference`` module, since only the posterior about the hidden states at the current timestep + ``qs`` is assumed to be provided, unconditional on policies. The predictive posterior over hidden states under all policies Q(s, pi) is computed + using the starting posterior about states at the current timestep ``qs`` and the generative model (e.g. ``A``, ``B``, ``C``) + + Parameters + ---------- + qs: ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint (unconditioned on policies) + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + C: ``numpy.ndarray`` of dtype object + Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. + This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. + A_factor_list: ``list`` of ``list``s of ``int`` + ``list`` that stores the indices of the hidden state factor indices that each observation modality depends on. For example, if ``A_factor_list[m] = [0, 1]``, then + observation modality ``m`` depends on hidden state factors 0 and 1. + B_factor_list: ``list`` of ``list``s of ``int`` + ``list`` that stores the indices of the hidden state factor indices that each hidden state factor depends on. For example, if ``B_factor_list[f] = [0, 1]``, then + the transitions in hidden state factor ``f`` depend on hidden state factors 0 and 1. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + use_utility: ``Bool``, default ``True`` + Boolean flag that determines whether expected utility should be incorporated into computation of EFE. + use_states_info_gain: ``Bool``, default ``True`` + Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. + use_param_info_gain: ``Bool``, default ``False`` + Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. + pA: ``numpy.ndarray`` of dtype object, optional + Dirichlet parameters over observation model (same shape as ``A``) + pB: ``numpy.ndarray`` of dtype object, optional + Dirichlet parameters over transition model (same shape as ``B``) + E: 1D ``numpy.ndarray``, optional + Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits") + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + gamma: float, default 16.0 + Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies + + Returns + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + G: 1D ``numpy.ndarray`` + Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + """ + + n_policies = len(policies) + G = np.zeros(n_policies) + q_pi = np.zeros((n_policies, 1)) + + if E is None: + lnE = spm_log_single(np.ones(n_policies) / n_policies) + else: + lnE = spm_log_single(E) + + for idx, policy in enumerate(policies): + qs_pi = get_expected_states_interactions(qs, B, B_factor_list, policy) + qo_pi = get_expected_obs_factorized(qs_pi, A, A_factor_list) + + if use_utility: + G[idx] += calc_expected_utility(qo_pi, C) + + if use_states_info_gain: + G[idx] += calc_states_info_gain_factorized(A, qs_pi, A_factor_list) + + if use_param_info_gain: + if pA is not None: + G[idx] += calc_pA_info_gain_factorized(pA, qo_pi, qs_pi, A_factor_list).item() + if pB is not None: + G[idx] += calc_pB_info_gain_interactions(pB, qs_pi, qs, B_factor_list, policy).item() + + if I is not None: + G[idx] += calc_inductive_cost(qs, qs_pi, I) + + q_pi = softmax(G * gamma + lnE) + + return q_pi, G + +def get_expected_states(qs, B, policy): + """ + Compute the expected states under a policy, also known as the posterior predictive density over states + + Parameters + ---------- + qs: ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at a given timepoint. + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + policy: 2D ``numpy.ndarray`` + Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + + Returns + ------- + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + """ + n_steps = policy.shape[0] + n_factors = policy.shape[1] + + # initialise posterior predictive density as a list of beliefs over time, including current posterior beliefs about hidden states as the first element + qs_pi = [qs] + [utils.obj_array(n_factors) for t in range(n_steps)] + + # get expected states over time + for t in range(n_steps): + for control_factor, action in enumerate(policy[t,:]): + qs_pi[t+1][control_factor] = B[control_factor][:,:,int(action)].dot(qs_pi[t][control_factor]) + + return qs_pi[1:] + +def get_expected_states_interactions(qs, B, B_factor_list, policy): + """ + Compute the expected states under a policy, also known as the posterior predictive density over states + + Parameters + ---------- + qs: ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at a given timepoint. + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + B_factor_list: ``list`` of ``list`` of ``int`` + List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. + policy: 2D ``numpy.ndarray`` + Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + + Returns + ------- + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + """ + n_steps = policy.shape[0] + n_factors = policy.shape[1] + + # initialise posterior predictive density as a list of beliefs over time, including current posterior beliefs about hidden states as the first element + qs_pi = [qs] + [utils.obj_array(n_factors) for t in range(n_steps)] + + # get expected states over time + for t in range(n_steps): + for control_factor, action in enumerate(policy[t,:]): + factor_idx = B_factor_list[control_factor] # list of the hidden state factor indices that the dynamics of `qs[control_factor]` depend on + qs_pi[t+1][control_factor] = spm_dot(B[control_factor][...,int(action)], qs_pi[t][factor_idx]) + + return qs_pi[1:] + +def get_expected_obs(qs_pi, A): + """ + Compute the expected observations under a policy, also known as the posterior predictive density over observations + + Parameters + ---------- + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + + Returns + ------- + qo_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about + observations expected under the policy at time ``t`` + """ + + n_steps = len(qs_pi) # each element of the list is the PPD at a different timestep + + # initialise expected observations + qo_pi = [] + + for t in range(n_steps): + qo_pi_t = utils.obj_array(len(A)) + qo_pi.append(qo_pi_t) + + # compute expected observations over time + for t in range(n_steps): + for modality, A_m in enumerate(A): + qo_pi[t][modality] = spm_dot(A_m, qs_pi[t]) + + return qo_pi + +def get_expected_obs_factorized(qs_pi, A, A_factor_list): + """ + Compute the expected observations under a policy, also known as the posterior predictive density over observations + + Parameters + ---------- + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + A_factor_list: ``list`` of ``list`` of ``int`` + List of lists of hidden state factor indices that each observation modality depends on. Each element ``A_factor_list[i]`` is a list of the factor indices that modality i's observation model depends on. + Returns + ------- + qo_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about + observations expected under the policy at time ``t`` + """ + + n_steps = len(qs_pi) # each element of the list is the PPD at a different timestep + + # initialise expected observations + qo_pi = [] + + for t in range(n_steps): + qo_pi_t = utils.obj_array(len(A)) + qo_pi.append(qo_pi_t) + + # compute expected observations over time + for t in range(n_steps): + for modality, A_m in enumerate(A): + factor_idx = A_factor_list[modality] # list of the hidden state factor indices that observation modality with the index `modality` depends on + qo_pi[t][modality] = spm_dot(A_m, qs_pi[t][factor_idx]) + + return qo_pi + +def calc_expected_utility(qo_pi, C): + """ + Computes the expected utility of a policy, using the observation distribution expected under that policy and a prior preference vector. + + Parameters + ---------- + qo_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about + observations expected under the policy at time ``t`` + C: ``numpy.ndarray`` of dtype object + Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. + This is softmaxed to form a proper probability distribution before being used to compute the expected utility. + + Returns + ------- + expected_util: float + Utility (reward) expected under the policy in question + """ + n_steps = len(qo_pi) + + # initialise expected utility + expected_util = 0 + + # loop over time points and modalities + num_modalities = len(C) + + # reformat C to be tiled across timesteps, if it's not already + modalities_to_tile = [modality_i for modality_i in range(num_modalities) if C[modality_i].ndim == 1] + + # make a deepcopy of C where it has been tiled across timesteps + C_tiled = copy.deepcopy(C) + for modality in modalities_to_tile: + C_tiled[modality] = np.tile(C[modality][:,None], (1, n_steps) ) + + C_prob = softmax_obj_arr(C_tiled) # convert relative log probabilities into proper probability distribution + + for t in range(n_steps): + for modality in range(num_modalities): + + lnC = spm_log_single(C_prob[modality][:, t]) + expected_util += qo_pi[t][modality].dot(lnC) + + return expected_util + + +def calc_states_info_gain(A, qs_pi): + """ + Computes the Bayesian surprise or information gain about states of a policy, + using the observation model and the hidden state distribution expected under that policy. + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + + Returns + ------- + states_surprise: float + Bayesian surprise (about states) or salience expected under the policy in question + """ + + n_steps = len(qs_pi) + + states_surprise = 0 + for t in range(n_steps): + states_surprise += spm_MDP_G(A, qs_pi[t]) + + return states_surprise + +def calc_states_info_gain_factorized(A, qs_pi, A_factor_list): + """ + Computes the Bayesian surprise or information gain about states of a policy, + using the observation model and the hidden state distribution expected under that policy. + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + A_factor_list: ``list`` of ``list`` of ``int`` + List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on + + Returns + ------- + states_surprise: float + Bayesian surprise (about states) or salience expected under the policy in question + """ + + n_steps = len(qs_pi) + + states_surprise = 0 + for t in range(n_steps): + for m, A_m in enumerate(A): + factor_idx = A_factor_list[m] # list of the hidden state factor indices that observation modality with the index `m` depends on + states_surprise += spm_MDP_G(A_m, qs_pi[t][factor_idx]) + + return states_surprise + + +def calc_pA_info_gain(pA, qo_pi, qs_pi): + """ + Compute expected Dirichlet information gain about parameters ``pA`` under a policy + + Parameters + ---------- + pA: ``numpy.ndarray`` of dtype object + Dirichlet parameters over observation model (same shape as ``A``) + qo_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about + observations expected under the policy at time ``t`` + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + + Returns + ------- + infogain_pA: float + Surprise (about Dirichlet parameters) expected under the policy in question + """ + + n_steps = len(qo_pi) + + num_modalities = len(pA) + wA = utils.obj_array(num_modalities) + for modality, pA_m in enumerate(pA): + wA[modality] = spm_wnorm(pA[modality]) + + pA_infogain = 0 + + for modality in range(num_modalities): + wA_modality = wA[modality] * (pA[modality] > 0).astype("float") + for t in range(n_steps): + pA_infogain -= qo_pi[t][modality].dot(spm_dot(wA_modality, qs_pi[t])[:, np.newaxis]) + + return pA_infogain + +def calc_pA_info_gain_factorized(pA, qo_pi, qs_pi, A_factor_list): + """ + Compute expected Dirichlet information gain about parameters ``pA`` under a policy. + In this version of the function, we assume that the observation model is factorized, i.e. that each observation modality depends on a subset of the hidden state factors. + + Parameters + ---------- + pA: ``numpy.ndarray`` of dtype object + Dirichlet parameters over observation model (same shape as ``A``) + qo_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about + observations expected under the policy at time ``t`` + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + A_factor_list: ``list`` of ``list`` of ``int`` + List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on + + Returns + ------- + infogain_pA: float + Surprise (about Dirichlet parameters) expected under the policy in question + """ + + n_steps = len(qo_pi) + + num_modalities = len(pA) + wA = utils.obj_array(num_modalities) + for modality, pA_m in enumerate(pA): + wA[modality] = spm_wnorm(pA[modality]) + + pA_infogain = 0 + + for modality in range(num_modalities): + wA_modality = wA[modality] * (pA[modality] > 0).astype("float") + factor_idx = A_factor_list[modality] + for t in range(n_steps): + pA_infogain -= qo_pi[t][modality].dot(spm_dot(wA_modality, qs_pi[t][factor_idx])[:, np.newaxis]) + + return pA_infogain + +def calc_pB_info_gain(pB, qs_pi, qs_prev, policy): + """ + Compute expected Dirichlet information gain about parameters ``pB`` under a given policy + + Parameters + ---------- + pB: ``numpy.ndarray`` of dtype object + Dirichlet parameters over transition model (same shape as ``B``) + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + qs_prev: ``numpy.ndarray`` of dtype object + Posterior over hidden states at beginning of trajectory (before receiving observations) + policy: 2D ``numpy.ndarray`` + Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + + Returns + ------- + infogain_pB: float + Surprise (about dirichlet parameters) expected under the policy in question + """ + + n_steps = len(qs_pi) + + num_factors = len(pB) + wB = utils.obj_array(num_factors) + for factor, pB_f in enumerate(pB): + wB[factor] = spm_wnorm(pB_f) + + pB_infogain = 0 + + for t in range(n_steps): + # the 'past posterior' used for the information gain about pB here is the posterior + # over expected states at the timestep previous to the one under consideration + # if we're on the first timestep, we just use the latest posterior in the + # entire action-perception cycle as the previous posterior + if t == 0: + previous_qs = qs_prev + # otherwise, we use the expected states for the timestep previous to the timestep under consideration + else: + previous_qs = qs_pi[t - 1] + + # get the list of action-indices for the current timestep + policy_t = policy[t, :] + for factor, a_i in enumerate(policy_t): + wB_factor_t = wB[factor][:, :, int(a_i)] * (pB[factor][:, :, int(a_i)] > 0).astype("float") + pB_infogain -= qs_pi[t][factor].dot(wB_factor_t.dot(previous_qs[factor])) + + return pB_infogain + +def calc_pB_info_gain_interactions(pB, qs_pi, qs_prev, B_factor_list, policy): + """ + Compute expected Dirichlet information gain about parameters ``pB`` under a given policy + + Parameters + ---------- + pB: ``numpy.ndarray`` of dtype object + Dirichlet parameters over transition model (same shape as ``B``) + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + qs_prev: ``numpy.ndarray`` of dtype object + Posterior over hidden states at beginning of trajectory (before receiving observations) + B_factor_list: ``list`` of ``list`` of ``int`` + List of lists, where ``B_factor_list[f]`` is a list of the hidden state factor indices that hidden state factor with the index ``f`` depends on + policy: 2D ``numpy.ndarray`` + Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + + Returns + ------- + infogain_pB: float + Surprise (about dirichlet parameters) expected under the policy in question + """ + + n_steps = len(qs_pi) + + num_factors = len(pB) + wB = utils.obj_array(num_factors) + for factor, pB_f in enumerate(pB): + wB[factor] = spm_wnorm(pB_f) + + pB_infogain = 0 + + for t in range(n_steps): + # the 'past posterior' used for the information gain about pB here is the posterior + # over expected states at the timestep previous to the one under consideration + # if we're on the first timestep, we just use the latest posterior in the + # entire action-perception cycle as the previous posterior + if t == 0: + previous_qs = qs_prev + # otherwise, we use the expected states for the timestep previous to the timestep under consideration + else: + previous_qs = qs_pi[t - 1] + + # get the list of action-indices for the current timestep + policy_t = policy[t, :] + for factor, a_i in enumerate(policy_t): + wB_factor_t = wB[factor][...,int(a_i)] * (pB[factor][...,int(a_i)] > 0).astype("float") + f_idx = B_factor_list[factor] + pB_infogain -= qs_pi[t][factor].dot(spm_dot(wB_factor_t, previous_qs[f_idx])) + + return pB_infogain + +def calc_inductive_cost(qs, qs_pi, I, epsilon=1e-3): + """ + Computes the inductive cost of a state. + + Parameters + ---------- + qs: ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at a given timepoint. + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + states expected under the policy at time ``t`` + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + + Returns + ------- + inductive_cost: float + Cost of visited this state using backwards induction under the policy in question + """ + n_steps = len(qs_pi) + + # initialise inductive cost + inductive_cost = 0 + + # loop over time points and modalities + num_factors = len(I) + + for t in range(n_steps): + for factor in range(num_factors): + # we also assume precise beliefs here?! + idx = np.argmax(qs[factor]) + # m = arg max_n p_n < sup p + # i.e. find first I idx equals 1 and m is the index before + m = np.where(I[factor][:, idx] == 1)[0] + # we might find no path to goal (i.e. when no goal specified) + if len(m) > 0: + m = max(m[0]-1, 0) + I_m = (1-I[factor][m, :]) * np.log(epsilon) + inductive_cost += I_m.dot(qs_pi[t][factor]) + + return inductive_cost + +def construct_policies(num_states, num_controls = None, policy_len=1, control_fac_idx=None): + """ + Generate a ``list`` of policies. The returned array ``policies`` is a ``list`` that stores one policy per entry. + A particular policy (``policies[i]``) has shape ``(num_timesteps, num_factors)`` + where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. + + Parameters + ---------- + num_states: ``list`` of ``int`` + ``list`` of the dimensionalities of each hidden state factor + num_controls: ``list`` of ``int``, default ``None`` + ``list`` of the dimensionalities of each control state factor. If ``None``, then is automatically computed as the dimensionality of each hidden state factor that is controllable + policy_len: ``int``, default 1 + temporal depth ("planning horizon") of policies + control_fac_idx: ``list`` of ``int`` + ``list`` of indices of the hidden state factors that are controllable (i.e. those state factors ``i`` where ``num_controls[i] > 1``) + + Returns + ---------- + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + """ + + num_factors = len(num_states) + if control_fac_idx is None: + if num_controls is not None: + control_fac_idx = [f for f, n_c in enumerate(num_controls) if n_c > 1] + else: + control_fac_idx = list(range(num_factors)) + + if num_controls is None: + num_controls = [num_states[c_idx] if c_idx in control_fac_idx else 1 for c_idx in range(num_factors)] + + x = num_controls * policy_len + policies = list(itertools.product(*[list(range(i)) for i in x])) + for pol_i in range(len(policies)): + policies[pol_i] = np.array(policies[pol_i]).reshape(policy_len, num_factors) + + return policies + +def get_num_controls_from_policies(policies): + """ + Calculates the ``list`` of dimensionalities of control factors (``num_controls``) + from the ``list`` or array of policies. This assumes a policy space such that for each control factor, there is at least + one policy that entails taking the action with the maximum index along that control factor. + + Parameters + ---------- + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + + Returns + ---------- + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor, computed here automatically from a ``list`` of policies. + """ + + return list(np.max(np.vstack(policies), axis = 0) + 1) + + +def sample_action(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0): + """ + Computes the marginal posterior over actions and then samples an action from it, one action per control factor. + + Parameters + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor. + action_selection: ``str``, default "deterministic" + String indicating whether whether the selected action is chosen as the maximum of the posterior over actions, + or whether it's sampled from the posterior marginal over actions + alpha: ``float``, default 16.0 + Action selection precision -- the inverse temperature of the softmax that is used to scale the + action marginals before sampling. This is only used if ``action_selection`` argument is "stochastic" + + Returns + ---------- + selected_policy: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor + """ + + num_factors = len(num_controls) + + action_marginals = utils.obj_array_zeros(num_controls) + + # weight each action according to its integrated posterior probability under all policies at the current timestep + for pol_idx, policy in enumerate(policies): + for factor_i, action_i in enumerate(policy[0, :]): + action_marginals[factor_i][action_i] += q_pi[pol_idx] + + action_marginals = utils.norm_dist_obj_arr(action_marginals) + + selected_policy = np.zeros(num_factors) + for factor_i in range(num_factors): + + # Either you do this: + if action_selection == 'deterministic': + selected_policy[factor_i] = select_highest(action_marginals[factor_i]) + elif action_selection == 'stochastic': + log_marginal_f = spm_log_single(action_marginals[factor_i]) + p_actions = softmax(log_marginal_f * alpha) + selected_policy[factor_i] = utils.sample(p_actions) + + return selected_policy + +def _sample_action_test(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0, seed=None): + """ + Computes the marginal posterior over actions and then samples an action from it, one action per control factor. + Internal testing version that returns the marginal posterior over actions, and also has a seed argument for reproducibility. + + Parameters + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor. + action_selection: ``str``, default "deterministic" + String indicating whether whether the selected action is chosen as the maximum of the posterior over actions, + or whether it's sampled from the posterior marginal over actions + alpha: float, default 16.0 + Action selection precision -- the inverse temperature of the softmax that is used to scale the + action marginals before sampling. This is only used if ``action_selection`` argument is "stochastic" + seed: ``int``, default None + The seed can be set to control the random sampling that occurs when ``action_selection`` is "deterministic" but there are more than one actions with the same maximum posterior probability. + + + Returns + ---------- + selected_policy: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor + p_actions: ``numpy.ndarray`` of dtype object + Marginal posteriors over actions, after softmaxing and scaling with action precision. This distribution will be used to sample actions, + if``action_selection`` argument is "stochastic" + """ + + num_factors = len(num_controls) + + action_marginals = utils.obj_array_zeros(num_controls) + + # weight each action according to its integrated posterior probability under all policies at the current timestep + for pol_idx, policy in enumerate(policies): + for factor_i, action_i in enumerate(policy[0, :]): + action_marginals[factor_i][action_i] += q_pi[pol_idx] + + action_marginals = utils.norm_dist_obj_arr(action_marginals) + + selected_policy = np.zeros(num_factors) + p_actions = utils.obj_array_zeros(num_controls) + for factor_i in range(num_factors): + if action_selection == 'deterministic': + p_actions[factor_i] = action_marginals[factor_i] + selected_policy[factor_i] = _select_highest_test(p_actions[factor_i], seed=seed) + elif action_selection == 'stochastic': + log_marginal_f = spm_log_single(action_marginals[factor_i]) + p_actions[factor_i] = softmax(log_marginal_f * alpha) + selected_policy[factor_i] = utils.sample(p_actions[factor_i]) + + return selected_policy, p_actions + +def sample_policy(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0): + """ + Samples a policy from the posterior over policies, taking the action (per control factor) entailed by the first timestep of the selected policy. + + Parameters + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor. + action_selection: string, default "deterministic" + String indicating whether whether the selected policy is chosen as the maximum of the posterior over policies, + or whether it's sampled from the posterior over policies. + alpha: float, default 16.0 + Action selection precision -- the inverse temperature of the softmax that is used to scale the + policy posterior before sampling. This is only used if ``action_selection`` argument is "stochastic" + + Returns + ---------- + selected_policy: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor + """ + + num_factors = len(num_controls) + + if action_selection == "deterministic": + policy_idx = select_highest(q_pi) + elif action_selection == "stochastic": + log_qpi = spm_log_single(q_pi) + p_policies = softmax(log_qpi * alpha) + policy_idx = utils.sample(p_policies) + + selected_policy = np.zeros(num_factors) + for factor_i in range(num_factors): + selected_policy[factor_i] = policies[policy_idx][0, factor_i] + + return selected_policy + +def _sample_policy_test(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0, seed=None): + """ + Test version of sampling a policy from the posterior over policies, taking the action (per control factor) entailed by the first timestep of the selected policy. + This test version also returns the probability distribution over policies, and also has a seed argument for reproducibility. + Parameters + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor. + action_selection: string, default "deterministic" + String indicating whether whether the selected policy is chosen as the maximum of the posterior over policies, + or whether it's sampled from the posterior over policies. + alpha: float, default 16.0 + Action selection precision -- the inverse temperature of the softmax that is used to scale the + policy posterior before sampling. This is only used if ``action_selection`` argument is "stochastic" + seed: ``int``, default None + The seed can be set to control the random sampling that occurs when ``action_selection`` is "deterministic" but there are more than one actions with the same maximum posterior probability. + + + Returns + ---------- + selected_policy: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor + """ + + num_factors = len(num_controls) + + if action_selection == "deterministic": + p_policies = q_pi + policy_idx = _select_highest_test(p_policies, seed=seed) + elif action_selection == "stochastic": + log_qpi = spm_log_single(q_pi) + p_policies = softmax(log_qpi * alpha) + policy_idx = utils.sample(p_policies) + + selected_policy = np.zeros(num_factors) + for factor_i in range(num_factors): + selected_policy[factor_i] = policies[policy_idx][0, factor_i] + + return selected_policy, p_policies + + +def select_highest(options_array): + """ + Selects the highest value among the provided ones. If the higher value is more than once and they're closer than 1e-5, a random choice is made. + Parameters + ---------- + options_array: ``numpy.ndarray`` + The array to examine + + Returns + ------- + The highest value in the given list + """ + options_with_idx = np.array(list(enumerate(options_array))) + same_prob = options_with_idx[ + abs(options_with_idx[:, 1] - np.amax(options_with_idx[:, 1])) <= 1e-8][:, 0] + if len(same_prob) > 1: + # If some of the most likely actions have nearly equal probability, sample from this subset of actions, instead of using argmax + return int(same_prob[np.random.choice(len(same_prob))]) + + return int(same_prob[0]) + +def _select_highest_test(options_array, seed=None): + """ + (Test version with seed argument for reproducibility) Selects the highest value among the provided ones. If the higher value is more than once and they're closer than 1e-8, a random choice is made. + Parameters + ---------- + options_array: ``numpy.ndarray`` + The array to examine + + Returns + ------- + The highest value in the given list + """ + options_with_idx = np.array(list(enumerate(options_array))) + same_prob = options_with_idx[ + abs(options_with_idx[:, 1] - np.amax(options_with_idx[:, 1])) <= 1e-8][:, 0] + if len(same_prob) > 1: + # If some of the most likely actions have nearly equal probability, sample from this subset of actions, instead of using argmax + rng = np.random.default_rng(seed) + return int(same_prob[rng.choice(len(same_prob))]) + + return int(same_prob[0]) + + +def backwards_induction(H, B, B_factor_list, threshold, depth): + """ + Runs backwards induction of reaching a goal state H given a transition model B. + + Parameters + ---------- + H: ``numpy.ndarray`` of dtype object + Prior over states + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + B_factor_list: ``list`` of ``list`` of ``int`` + List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. + threshold: ``float`` + The threshold for pruning transitions that are below a certain probability + depth: ``int`` + The temporal depth of the backward induction + + Returns + ---------- + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + """ + # TODO can this be done with arbitrary B_factor_list? + + num_factors = len(H) + I = utils.obj_array(num_factors) + for factor in range(num_factors): + I[factor] = np.zeros((depth, H[factor].shape[0])) + I[factor][0, :] = H[factor] + + bf = factor + if B_factor_list is not None: + if len(B_factor_list[factor]) > 1: + raise ValueError("Backwards induction with factorized transition model not yet implemented") + bf = B_factor_list[factor][0] + + num_states, _, _ = B[bf].shape + b = np.zeros((num_states, num_states)) + + for state in range(num_states): + for next_state in range(num_states): + # If there exists an action that allows transitioning + # from state to next_state, with probability larger than threshold + # set b[state, next_state] to 1 + if np.any(B[bf][next_state, state, :] > threshold): + b[next_state, state] = 1 + + for i in range(1, depth): + I[factor][i, :] = np.dot(b, I[factor][i-1, :]) + I[factor][i, :] = np.where(I[factor][i, :] > 0.1, 1.0, 0.0) + # TODO stop when all 1s? + + return I + +def calc_ambiguity_factorized(qs_pi, A, A_factor_list): + """ + Computes the Ambiguity term. + + Parameters + ---------- + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + A_factor_list: ``list`` of ``list`` of ``int`` + List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on + + Returns + ------- + ambiguity: float + """ + + n_steps = len(qs_pi) + + ambiguity = 0 + # TODO check if we do this correctly! + H = entropy(A) + for t in range(n_steps): + for m, H_m in enumerate(H): + factor_idx = A_factor_list[m] + # TODO why does spm_dot return an array here? + # joint_x = maths.spm_cross(qs_pi[t][factor_idx]) + # ambiguity += (H_m * joint_x).sum() + ambiguity += np.sum(spm_dot(H_m, qs_pi[t][factor_idx])) + + return ambiguity + + +def sophisticated_inference_search(qs, policies, A, B, C, A_factor_list, B_factor_list, I=None, horizon=1, + policy_prune_threshold=1/16, state_prune_threshold=1/16, prune_penalty=512, gamma=16, + inference_params = {"num_iter": 10, "dF": 1.0, "dF_tol": 0.001, "compute_vfe": False}, n=0): + """ + Performs sophisticated inference to find the optimal policy for a given generative model and prior preferences. + + Parameters + ---------- + qs: ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at a given timepoint. + policies: ``list`` of 1D ``numpy.ndarray`` inference_params = {"num_iter": 10, "dF": 1.0, "dF_tol": 0.001, "compute_vfe": False} + + ``list`` that stores each policy as a 1D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_factors)`` where ``num_factors`` is the number of control factors. + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + C: ``numpy.ndarray`` of dtype object + Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. + This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. + A_factor_list: ``list`` of ``list`` of ``int`` + List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on + B_factor_list: ``list`` of ``list`` of ``int`` + List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + horizon: ``int`` + The temporal depth of the policy + policy_prune_threshold: ``float`` + The threshold for pruning policies that are below a certain probability + state_prune_threshold: ``float`` + The threshold for pruning states in the expectation that are below a certain probability + prune_penalty: ``float`` + Penalty to add to the EFE when a policy is pruned + gamma: ``float``, default 16.0 + Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies + n: ``int`` + timestep in the future we are calculating + + Returns + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + + G: 1D ``numpy.ndarray`` + Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + """ + + n_policies = len(policies) + G = np.zeros(n_policies) + q_pi = np.zeros((n_policies, 1)) + qs_pi = utils.obj_array(n_policies) + qo_pi = utils.obj_array(n_policies) + + for idx, policy in enumerate(policies): + qs_pi[idx] = get_expected_states_interactions(qs, B, B_factor_list, policy) + qo_pi[idx] = get_expected_obs_factorized(qs_pi[idx], A, A_factor_list) + + G[idx] += calc_expected_utility(qo_pi[idx], C) + G[idx] += calc_states_info_gain_factorized(A, qs_pi[idx], A_factor_list) + + if I is not None: + G[idx] += calc_inductive_cost(qs, qs_pi[idx], I) + + q_pi = softmax(G * gamma) + + if n < horizon - 1: + # ignore low probability actions in the search tree + # TODO shouldnt we have to add extra penalty for branches no longer considered? + # or assume these are already low EFE (high NEFE) anyway? + policies_to_consider = list(np.where(q_pi >= policy_prune_threshold)[0]) + for idx in range(n_policies): + if idx not in policies_to_consider: + G[idx] -= prune_penalty + else : + # average over outcomes + qo_next = qo_pi[idx][0] + for k in itertools.product(*[range(s.shape[0]) for s in qo_next]): + prob = 1.0 + for i in range(len(k)): + prob *= qo_pi[idx][0][i][k[i]] + + # ignore low probability states in the search tree + if prob < state_prune_threshold: + continue + + qo_one_hot = utils.obj_array(len(qo_next)) + for i in range(len(qo_one_hot)): + qo_one_hot[i] = utils.onehot(k[i], qo_next[i].shape[0]) + + num_obs = [A[m].shape[0] for m in range(len(A))] + num_states = [B[f].shape[0] for f in range(len(B))] + A_modality_list = [] + for f in range(len(B)): + A_modality_list.append( [m for m in range(len(A)) if f in A_factor_list[m]] ) + mb_dict = { + 'A_factor_list': A_factor_list, + 'A_modality_list': A_modality_list + } + qs_next = update_posterior_states_factorized(A, qo_one_hot, num_obs, num_states, mb_dict, qs_pi[idx][0], **inference_params) + q_pi_next, G_next = sophisticated_inference_search(qs_next, policies, A, B, C, A_factor_list, B_factor_list, I, + horizon, policy_prune_threshold, state_prune_threshold, + prune_penalty, gamma, inference_params, n+1) + G_weighted = np.dot(q_pi_next, G_next) * prob + G[idx] += G_weighted + + q_pi = softmax(G * gamma) + return q_pi, G \ No newline at end of file diff --git a/pymdp/default_models.py b/pymdp/legacy/default_models.py similarity index 99% rename from pymdp/default_models.py rename to pymdp/legacy/default_models.py index bd93bf93..cc6885c4 100644 --- a/pymdp/default_models.py +++ b/pymdp/legacy/default_models.py @@ -1,6 +1,6 @@ import numpy as np -from pymdp import utils, maths +from pymdp.legacy import utils, maths def generate_epistemic_MAB_model(): ''' diff --git a/pymdp/legacy/envs/__init__.py b/pymdp/legacy/envs/__init__.py new file mode 100644 index 00000000..6d97928f --- /dev/null +++ b/pymdp/legacy/envs/__init__.py @@ -0,0 +1,4 @@ +from .env import Env +from .grid_worlds import GridWorldEnv, DGridWorldEnv +from .visual_foraging import SceneConstruction, RandomDotMotion, initialize_scene_construction_GM, initialize_RDM_GM +from .tmaze import TMazeEnv, TMazeEnvNullOutcome diff --git a/pymdp/legacy/envs/env.py b/pymdp/legacy/envs/env.py new file mode 100644 index 00000000..635e4e98 --- /dev/null +++ b/pymdp/legacy/envs/env.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" Environment Base Class + +__author__: Conor Heins, Alexander Tschantz, Brennan Klein + +""" + + +class Env(object): + """ + The Env base class, loosely-inspired by the analogous ``env`` class of the OpenAIGym framework. + + A typical workflow is as follows: + + >>> my_env = MyCustomEnv() + >>> initial_observation = my_env.reset(initial_state) + >>> my_agent.infer_states(initial_observation) + >>> my_agent.infer_policies() + >>> next_action = my_agent.sample_action() + >>> next_observation = my_env.step(next_action) + + This would be the first step of an active inference process, where a sub-class of ``Env``, ``MyCustomEnv`` is initialized, + an initial observation is produced, and these observations are fed into an instance of ``Agent`` in order to produce an action, + that can then be fed back into the the ``Env`` instance. + + """ + + def reset(self, state=None): + """ + Resets the initial state of the environment. Depending on case, it may be common to return an initial observation as well. + """ + raise NotImplementedError + + def step(self, action): + """ + Steps the environment forward using an action. + + Parameters + ---------- + action + The action, the type/format of which depends on the implementation. + + Returns + --------- + observation + Sensory observations for an agent, the type/format of which depends on the implementation of ``step`` and the observation space of the agent. + """ + raise NotImplementedError + + def render(self): + """ + Rendering function, that typically creates a visual representation of the state of the environment at the current timestep. + """ + pass + + def sample_action(self): + pass + + def get_likelihood_dist(self): + raise ValueError( + "<{}> does not provide a model specification".format(type(self).__name__) + ) + + def get_transition_dist(self): + raise ValueError( + "<{}> does not provide a model specification".format(type(self).__name__) + ) + + def get_uniform_posterior(self): + raise ValueError( + "<{}> does not provide a model specification".format(type(self).__name__) + ) + + def get_rand_likelihood_dist(self): + raise ValueError( + "<{}> does not provide a model specification".format(type(self).__name__) + ) + + def get_rand_transition_dist(self): + raise ValueError( + "<{}> does not provide a model specification".format(type(self).__name__) + ) + + def __str__(self): + return "<{} instance>".format(type(self).__name__) diff --git a/pymdp/envs/grid_worlds.py b/pymdp/legacy/envs/grid_worlds.py similarity index 99% rename from pymdp/envs/grid_worlds.py rename to pymdp/legacy/envs/grid_worlds.py index f27be9d4..15f6b57b 100644 --- a/pymdp/envs/grid_worlds.py +++ b/pymdp/legacy/envs/grid_worlds.py @@ -12,7 +12,7 @@ import seaborn as sns -from pymdp.envs import Env +from pymdp.legacy.envs import Env class GridWorldEnv(Env): diff --git a/pymdp/envs/tmaze.py b/pymdp/legacy/envs/tmaze.py similarity index 99% rename from pymdp/envs/tmaze.py rename to pymdp/legacy/envs/tmaze.py index 6fadb0d8..7377c281 100644 --- a/pymdp/envs/tmaze.py +++ b/pymdp/legacy/envs/tmaze.py @@ -7,8 +7,8 @@ """ -from pymdp.envs import Env -from pymdp import utils, maths +from pymdp.legacy.envs import Env +from pymdp.legacy import utils, maths import numpy as np LOCATION_FACTOR_ID = 0 diff --git a/pymdp/envs/visual_foraging.py b/pymdp/legacy/envs/visual_foraging.py similarity index 74% rename from pymdp/envs/visual_foraging.py rename to pymdp/legacy/envs/visual_foraging.py index 4b670371..0ecfa820 100644 --- a/pymdp/envs/visual_foraging.py +++ b/pymdp/legacy/envs/visual_foraging.py @@ -7,147 +7,14 @@ """ -from pymdp.envs import Env -from pymdp import utils, maths +from pymdp.legacy.envs import Env +from pymdp.legacy import utils, maths import numpy as np from itertools import permutations, product LOCATION_ID = 0 SCENE_ID = 1 -class VisualForagingEnv(Env): - """ Implementation of the visual foraging environment used for scene construction simulations """ - - def __init__(self, scenes=None, n_features=2): - if scenes is None: - self.scenes = self._construct_default_scenes() - else: - self.scenes = scenes - - self.n_scenes = len(self.scenes) - self.n_features = n_features + 1 - self.n_states = [np.prod(self.scenes[0].shape) + 1, self.scenes.shape[0]] - self.n_locations = self.n_states[LOCATION_ID] - self.n_control = [self.n_locations, 1] - self.n_observations = [self.n_locations, self.n_features] - self.n_factors = len(self.n_states) - self.n_modalities = len(self.n_observations) - - self._transition_dist = self._construct_transition_dist() - self._likelihood_dist = self._construct_likelihood_dist() - self._true_scene = None - self._state = None - - def reset(self, state=None): - if state is None: - loc_state = np.zeros(self.n_locations) - loc_state[0] = 1.0 - scene_state = np.zeros(self.n_scenes) - self._true_scene = np.random.randint(self.n_scenes) - scene_state[self._true_scene] = 1.0 - full_state = np.empty(self.n_factors, dtype=object) - full_state[LOCATION_ID] = loc_state - full_state[SCENE_ID] = scene_state - self._state = Categorical(values=full_state) - else: - self._state = Categorical(values=state) - return self._get_observation() - - def step(self, actions): - prob_states = np.empty(self.n_factors, dtype=object) - for f in range(self.n_factors): - prob_states[f] = ( - self._transition_dist[f][:, :, actions[f]] - .dot(self._state[f], return_numpy=True) - .flatten() - ) - state = Categorical(values=prob_states).sample() - self._state = self._construct_state(state) - return self._get_observation() - - def render(self): - pass - - def sample_action(self): - return [np.random.randint(self.n_control[i]) for i in range(self.n_factors)] - - def get_likelihood_dist(self): - return self._likelihood_dist.copy() - - def get_transition_dist(self): - return self._transition_dist.copy() - - def get_uniform_posterior(self): - values = np.array( - [ - np.ones(self.n_states[f]) / self.n_states[f] - for f in range(self.n_factors) - ] - ) - return Categorical(values=values) - - def get_rand_likelihood_dist(self): - pass - - def get_rand_transition_dist(self): - pass - - def _get_observation(self): - prob_obs = self._likelihood_dist.dot(self._state) - return prob_obs.sample() - - def _construct_transition_dist(self): - B_locs = np.eye(self.n_locations) - B_locs = B_locs.reshape(self.n_locations, self.n_locations, 1) - B_locs = np.tile(B_locs, (1, 1, self.n_locations)) - B_locs = B_locs.transpose(1, 2, 0) - - B = np.empty(self.n_factors, dtype=object) - B[LOCATION_ID] = B_locs - B[SCENE_ID] = np.eye(self.n_scenes).reshape(self.n_scenes, self.n_scenes, 1) - return Categorical(values=B) - - def _construct_likelihood_dist(self): - A = np.empty(self.n_modalities, dtype=object) - for g in range(self.n_modalities): - A[g] = np.zeros([self.n_observations[g]] + self.n_states) - - for loc in range(self.n_states[LOCATION_ID]): - for scene_id in range(self.n_states[SCENE_ID]): - scene = self.scenes[scene_id] - feat_loc_ids = np.ravel_multi_index(np.where(scene), scene.shape) - if loc in feat_loc_ids + 1: - feat_ids = np.unravel_index( - feat_loc_ids[loc == (feat_loc_ids + 1)], scene.shape - ) - feats = scene[feat_ids] - A[SCENE_ID][int(feats), loc, scene_id] = 1.0 - else: - A[SCENE_ID][0, loc, scene_id] = 1.0 - - A[LOCATION_ID][loc, loc, scene_id] = 1.0 - return Categorical(values=A) - - def _construct_default_scenes(self): - scene_one = [[2, 2], [2, 2]] - scene_two = [[1, 1], [1, 1]] - scenes = np.array([scene_one, scene_two]) - return scenes - - def _construct_state(self, state_tuple): - state = np.empty(self.n_factors, dtype=object) - for f in range(self.n_factors): - state[f] = np.eye(self.n_states[f])[state_tuple[f]] - return Categorical(values=state) - - @property - def state(self): - return self._state - - @property - def true_scene(self): - return self._true_scene - scene_names = ["UP_RIGHT", "RIGHT_DOWN", "DOWN_LEFT", "LEFT_UP"] # possible scenes quadrant_names = ['1','2','3','4'] choice_names = ['choose_UP_RIGHT','choose_RIGHT_DOWN','choose_DOWN_LEFT', 'choose_LEFT_UP'] # possible choices diff --git a/pymdp/legacy/inference.py b/pymdp/legacy/inference.py new file mode 100644 index 00000000..c180c0c6 --- /dev/null +++ b/pymdp/legacy/inference.py @@ -0,0 +1,371 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# pylint: disable=no-member + +import numpy as np + +from pymdp.legacy import utils +from pymdp.legacy.maths import get_joint_likelihood_seq, get_joint_likelihood_seq_by_modality +from pymdp.legacy.algos import run_vanilla_fpi, run_vanilla_fpi_factorized, run_mmp, run_mmp_factorized, _run_mmp_testing + +VANILLA = "VANILLA" +VMP = "VMP" +MMP = "MMP" +BP = "BP" +EP = "EP" +CV = "CV" + +def update_posterior_states_full( + A, + B, + prev_obs, + policies, + prev_actions=None, + prior=None, + policy_sep_prior = True, + **kwargs, +): + """ + Update posterior over hidden states using marginal message passing + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + prev_obs: ``list`` + List of observations over time. Each observation in the list can be an ``int``, a ``list`` of ints, a ``tuple`` of ints, a one-hot vector or an object array of one-hot vectors. + policies: ``list`` of 2D ``numpy.ndarray`` + List that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + prior: ``numpy.ndarray`` of dtype object, default ``None`` + If provided, this a ``numpy.ndarray`` of dtype object, with one sub-array per hidden state factor, that stores the prior beliefs about initial states. + If ``None``, this defaults to a flat (uninformative) prior over hidden states. + policy_sep_prior: ``Bool``, default ``True`` + Flag determining whether the prior beliefs from the past are unconditioned on policy, or separated by /conditioned on the policy variable. + **kwargs: keyword arguments + Optional keyword arguments for the function ``algos.mmp.run_mmp`` + + Returns + --------- + qs_seq_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, + where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. + F: 1D ``numpy.ndarray`` + Vector of variational free energies for each policy + """ + + num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) + + prev_obs = utils.process_observation_seq(prev_obs, num_modalities, num_obs) + + lh_seq = get_joint_likelihood_seq(A, prev_obs, num_states) + + if prev_actions is not None: + prev_actions = np.stack(prev_actions,0) + + qs_seq_pi = utils.obj_array(len(policies)) + F = np.zeros(len(policies)) # variational free energy of policies + + for p_idx, policy in enumerate(policies): + + # get sequence and the free energy for policy + qs_seq_pi[p_idx], F[p_idx] = run_mmp( + lh_seq, + B, + policy, + prev_actions=prev_actions, + prior= prior[p_idx] if policy_sep_prior else prior, + **kwargs + ) + + return qs_seq_pi, F + +def update_posterior_states_full_factorized( + A, + mb_dict, + B, + B_factor_list, + prev_obs, + policies, + prev_actions=None, + prior=None, + policy_sep_prior = True, + **kwargs, +): + """ + Update posterior over hidden states using marginal message passing + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + mb_dict: ``Dict`` + Dictionary with two keys (``A_factor_list`` and ``A_modality_list``), that stores the factor indices that influence each modality (``A_factor_list``) + and the modality indices influenced by each factor (``A_modality_list``). + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + B_factor_list: ``list`` of ``list`` of ``int`` + List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. + prev_obs: ``list`` + List of observations over time. Each observation in the list can be an ``int``, a ``list`` of ints, a ``tuple`` of ints, a one-hot vector or an object array of one-hot vectors. + policies: ``list`` of 2D ``numpy.ndarray`` + List that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + prior: ``numpy.ndarray`` of dtype object, default ``None`` + If provided, this a ``numpy.ndarray`` of dtype object, with one sub-array per hidden state factor, that stores the prior beliefs about initial states. + If ``None``, this defaults to a flat (uninformative) prior over hidden states. + policy_sep_prior: ``Bool``, default ``True`` + Flag determining whether the prior beliefs from the past are unconditioned on policy, or separated by /conditioned on the policy variable. + **kwargs: keyword arguments + Optional keyword arguments for the function ``algos.mmp.run_mmp`` + + Returns + --------- + qs_seq_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, + where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. + F: 1D ``numpy.ndarray`` + Vector of variational free energies for each policy + """ + + num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) + + prev_obs = utils.process_observation_seq(prev_obs, num_modalities, num_obs) + + lh_seq = get_joint_likelihood_seq_by_modality(A, prev_obs, num_states) + + if prev_actions is not None: + prev_actions = np.stack(prev_actions,0) + + qs_seq_pi = utils.obj_array(len(policies)) + F = np.zeros(len(policies)) # variational free energy of policies + + for p_idx, policy in enumerate(policies): + + # get sequence and the free energy for policy + qs_seq_pi[p_idx], F[p_idx] = run_mmp_factorized( + lh_seq, + mb_dict, + B, + B_factor_list, + policy, + prev_actions=prev_actions, + prior= prior[p_idx] if policy_sep_prior else prior, + **kwargs + ) + + return qs_seq_pi, F + +def _update_posterior_states_full_test( + A, + B, + prev_obs, + policies, + prev_actions=None, + prior=None, + policy_sep_prior = True, + **kwargs, +): + """ + Update posterior over hidden states using marginal message passing (TEST VERSION, with extra returns for benchmarking). + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``np.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + prev_obs: list + List of observations over time. Each observation in the list can be an ``int``, a ``list`` of ints, a ``tuple`` of ints, a one-hot vector or an object array of one-hot vectors. + prior: ``numpy.ndarray`` of dtype object, default None + If provided, this a ``numpy.ndarray`` of dtype object, with one sub-array per hidden state factor, that stores the prior beliefs about initial states. + If ``None``, this defaults to a flat (uninformative) prior over hidden states. + policy_sep_prior: Bool, default True + Flag determining whether the prior beliefs from the past are unconditioned on policy, or separated by /conditioned on the policy variable. + **kwargs: keyword arguments + Optional keyword arguments for the function ``algos.mmp.run_mmp`` + + Returns + -------- + qs_seq_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, + where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. + F: 1D ``numpy.ndarray`` + Vector of variational free energies for each policy + xn_seq_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy, for each iteration of marginal message passing. + Nesting structure is policy, iteration, factor, so ``xn_seq_p[p][itr][f]`` stores the ``num_states x infer_len`` + array of beliefs about hidden states at different time points of inference horizon. + vn_seq_pi: `numpy.ndarray`` of dtype object + Prediction errors over hidden states for each policy, for each iteration of marginal message passing. + Nesting structure is policy, iteration, factor, so ``vn_seq_p[p][itr][f]`` stores the ``num_states x infer_len`` + array of beliefs about hidden states at different time points of inference horizon. + """ + + num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) + + prev_obs = utils.process_observation_seq(prev_obs, num_modalities, num_obs) + + lh_seq = get_joint_likelihood_seq(A, prev_obs, num_states) + + if prev_actions is not None: + prev_actions = np.stack(prev_actions,0) + + qs_seq_pi = utils.obj_array(len(policies)) + xn_seq_pi = utils.obj_array(len(policies)) + vn_seq_pi = utils.obj_array(len(policies)) + F = np.zeros(len(policies)) # variational free energy of policies + + for p_idx, policy in enumerate(policies): + + # get sequence and the free energy for policy + qs_seq_pi[p_idx], F[p_idx], xn_seq_pi[p_idx], vn_seq_pi[p_idx] = _run_mmp_testing( + lh_seq, + B, + policy, + prev_actions=prev_actions, + prior=prior[p_idx] if policy_sep_prior else prior, + **kwargs + ) + + return qs_seq_pi, F, xn_seq_pi, vn_seq_pi + +def average_states_over_policies(qs_pi, q_pi): + """ + This function computes a expected posterior over hidden states with respect to the posterior over policies, + also known as the 'Bayesian model average of states with respect to policies'. + + Parameters + ---------- + qs_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy. Nesting structure is policies, factors, + where e.g. ``qs_pi[p][f]`` stores the marginal belief about factor ``f`` under policy ``p``. + q_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs about policies where ``len(q_pi) = num_policies`` + + Returns + --------- + qs_bma: ``numpy.ndarray`` of dtype object + Marginal posterior over hidden states for the current timepoint, + averaged across policies according to their posterior probability given by ``q_pi`` + """ + + num_factors = len(qs_pi[0]) # get the number of hidden state factors using the shape of the first-policy-conditioned posterior + num_states = [qs_f.shape[0] for qs_f in qs_pi[0]] # get the dimensionalities of each hidden state factor + + qs_bma = utils.obj_array(num_factors) + for f in range(num_factors): + qs_bma[f] = np.zeros(num_states[f]) + + for p_idx, policy_weight in enumerate(q_pi): + + for f in range(num_factors): + + qs_bma[f] += qs_pi[p_idx][f] * policy_weight + + return qs_bma + +def update_posterior_states(A, obs, prior=None, **kwargs): + """ + Update marginal posterior over hidden states using mean-field fixed point iteration + FPI or Fixed point iteration. + + See the following links for details: + http://www.cs.cmu.edu/~guestrin/Class/10708/recitations/r9/VI-view.pdf, slides 13- 18, and http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.137.221&rep=rep1&type=pdf, slides 24 - 38. + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``np.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, int or tuple + The observation (generated by the environment). If single modality, this can be a 1D ``np.ndarray`` + (one-hot vector representation) or an ``int`` (observation index) + If multi-modality, this can be ``np.ndarray`` of dtype object whose entries are 1D one-hot vectors, + or a tuple (of ``int``) + prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None + Prior beliefs about hidden states, to be integrated with the marginal likelihood to obtain + a posterior distribution. If not provided, prior is set to be equal to a flat categorical distribution (at the level of + the individual inference functions). + **kwargs: keyword arguments + List of keyword/parameter arguments corresponding to parameter values for the fixed-point iteration + algorithm ``algos.fpi.run_vanilla_fpi.py`` + + Returns + ---------- + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint + """ + + num_obs, num_states, num_modalities, _ = utils.get_model_dimensions(A = A) + + obs = utils.process_observation(obs, num_modalities, num_obs) + + if prior is not None: + prior = utils.to_obj_array(prior) + + return run_vanilla_fpi(A, obs, num_obs, num_states, prior, **kwargs) + +def update_posterior_states_factorized(A, obs, num_obs, num_states, mb_dict, prior=None, **kwargs): + """ + Update marginal posterior over hidden states using mean-field fixed point iteration + FPI or Fixed point iteration. This version identifies the Markov blanket of each factor using `A_factor_list` + + See the following links for details: + http://www.cs.cmu.edu/~guestrin/Class/10708/recitations/r9/VI-view.pdf, slides 13- 18, and http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.137.221&rep=rep1&type=pdf, slides 24 - 38. + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``np.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, int or tuple + The observation (generated by the environment). If single modality, this can be a 1D ``np.ndarray`` + (one-hot vector representation) or an ``int`` (observation index) + If multi-modality, this can be ``np.ndarray`` of dtype object whose entries are 1D one-hot vectors, + or a tuple (of ``int``) + num_obs: ``list`` of ``int`` + List of dimensionalities of each observation modality + num_states: ``list`` of ``int`` + List of dimensionalities of each hidden state factor + mb_dict: ``Dict`` + Dictionary with two keys (``A_factor_list`` and ``A_modality_list``), that stores the factor indices that influence each modality (``A_factor_list``) + and the modality indices influenced by each factor (``A_modality_list``). + prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None + Prior beliefs about hidden states, to be integrated with the marginal likelihood to obtain + a posterior distribution. If not provided, prior is set to be equal to a flat categorical distribution (at the level of + the individual inference functions). + **kwargs: keyword arguments + List of keyword/parameter arguments corresponding to parameter values for the fixed-point iteration + algorithm ``algos.fpi.run_vanilla_fpi.py`` + + Returns + ---------- + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint + """ + + num_modalities = len(num_obs) + + obs = utils.process_observation(obs, num_modalities, num_obs) + + if prior is not None: + prior = utils.to_obj_array(prior) + + return run_vanilla_fpi_factorized(A, obs, num_obs, num_states, mb_dict, prior, **kwargs) diff --git a/pymdp/legacy/learning.py b/pymdp/legacy/learning.py new file mode 100644 index 00000000..c8abf2af --- /dev/null +++ b/pymdp/legacy/learning.py @@ -0,0 +1,459 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# pylint: disable=no-member + +import numpy as np +from pymdp.legacy import utils, maths +import copy + +def update_obs_likelihood_dirichlet(pA, A, obs, qs, lr=1.0, modalities="all"): + """ + Update Dirichlet parameters of the observation likelihood distribution. + + Parameters + ----------- + pA: ``numpy.ndarray`` of dtype object + Prior Dirichlet parameters over observation model (same shape as ``A``) + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, ``int`` or ``tuple`` + The observation (generated by the environment). If single modality, this can be a 1D ``numpy.ndarray`` + (one-hot vector representation) or an ``int`` (observation index) + If multi-modality, this can be ``numpy.ndarray`` of dtype object whose entries are 1D one-hot vectors, + or a ``tuple`` (of ``int``) + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None + Marginal posterior beliefs over hidden states at current timepoint. + lr: float, default 1.0 + Learning rate, scale of the Dirichlet pseudo-count update. + modalities: ``list``, default "all" + Indices (ranging from 0 to ``n_modalities - 1``) of the observation modalities to include + in learning. Defaults to "all", meaning that modality-specific sub-arrays of ``pA`` + are all updated using the corresponding observations. + + Returns + ----------- + qA: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. + """ + + + num_modalities = len(pA) + num_observations = [pA[modality].shape[0] for modality in range(num_modalities)] + + obs_processed = utils.process_observation(obs, num_modalities, num_observations) + obs = utils.to_obj_array(obs_processed) + + if modalities == "all": + modalities = list(range(num_modalities)) + + qA = copy.deepcopy(pA) + + for modality in modalities: + dfda = maths.spm_cross(obs[modality], qs) + dfda = dfda * (A[modality] > 0).astype("float") + qA[modality] = qA[modality] + (lr * dfda) + + return qA + +def update_obs_likelihood_dirichlet_factorized(pA, A, obs, qs, A_factor_list, lr=1.0, modalities="all"): + """ + Update Dirichlet parameters of the observation likelihood distribution, in a case where the observation model is reduced (factorized) and only represents + the conditional dependencies between the observation modalities and particular hidden state factors (whose indices are specified in each modality-specific entry of ``A_factor_list``) + + Parameters + ----------- + pA: ``numpy.ndarray`` of dtype object + Prior Dirichlet parameters over observation model (same shape as ``A``) + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, ``int`` or ``tuple`` + The observation (generated by the environment). If single modality, this can be a 1D ``numpy.ndarray`` + (one-hot vector representation) or an ``int`` (observation index) + If multi-modality, this can be ``numpy.ndarray`` of dtype object whose entries are 1D one-hot vectors, + or a ``tuple`` (of ``int``) + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None + Marginal posterior beliefs over hidden states at current timepoint. + A_factor_list: ``list`` of ``list`` of ``int`` + List of lists, where each list with index `m` contains the indices of the hidden states that observation modality `m` depends on. + lr: float, default 1.0 + Learning rate, scale of the Dirichlet pseudo-count update. + modalities: ``list``, default "all" + Indices (ranging from 0 to ``n_modalities - 1``) of the observation modalities to include + in learning. Defaults to "all", meaning that modality-specific sub-arrays of ``pA`` + are all updated using the corresponding observations. + + Returns + ----------- + qA: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. + """ + + num_modalities = len(pA) + num_observations = [pA[modality].shape[0] for modality in range(num_modalities)] + + obs_processed = utils.process_observation(obs, num_modalities, num_observations) + obs = utils.to_obj_array(obs_processed) + + if modalities == "all": + modalities = list(range(num_modalities)) + + qA = copy.deepcopy(pA) + + for modality in modalities: + dfda = maths.spm_cross(obs[modality], qs[A_factor_list[modality]]) + dfda = dfda * (A[modality] > 0).astype("float") + qA[modality] = qA[modality] + (lr * dfda) + + return qA + +def update_state_likelihood_dirichlet( + pB, B, actions, qs, qs_prev, lr=1.0, factors="all" +): + """ + Update Dirichlet parameters of the transition distribution. + + Parameters + ----------- + pB: ``numpy.ndarray`` of dtype object + Prior Dirichlet parameters over transition model (same shape as ``B``) + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + actions: 1D ``numpy.ndarray`` + A vector with length equal to the number of control factors, where each element contains the index of the action (for that control factor) performed at + a given timestep. + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint. + qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at previous timepoint. + lr: float, default ``1.0`` + Learning rate, scale of the Dirichlet pseudo-count update. + factors: ``list``, default "all" + Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include + in learning. Defaults to "all", meaning that factor-specific sub-arrays of ``pB`` + are all updated using the corresponding hidden state distributions and actions. + + Returns + ----------- + qB: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. + """ + + num_factors = len(pB) + + qB = copy.deepcopy(pB) + + if factors == "all": + factors = list(range(num_factors)) + + for factor in factors: + dfdb = maths.spm_cross(qs[factor], qs_prev[factor]) + dfdb *= (B[factor][:, :, int(actions[factor])] > 0).astype("float") + qB[factor][:,:,int(actions[factor])] += (lr*dfdb) + + return qB + +def update_state_likelihood_dirichlet_interactions( + pB, B, actions, qs, qs_prev, B_factor_list, lr=1.0, factors="all" +): + """ + Update Dirichlet parameters of the transition distribution, in the case when 'interacting' hidden state factors are present, i.e. + the dynamics of a given hidden state factor `f` are no longer independent of the dynamics of other hidden state factors. + + Parameters + ----------- + pB: ``numpy.ndarray`` of dtype object + Prior Dirichlet parameters over transition model (same shape as ``B``) + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + actions: 1D ``numpy.ndarray`` + A vector with length equal to the number of control factors, where each element contains the index of the action (for that control factor) performed at + a given timestep. + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint. + qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at previous timepoint. + B_factor_list: ``list`` of ``list`` of ``int`` + A list of lists, where each element ``B_factor_list[f]`` is a list of indices of hidden state factors that that are needed to predict the dynamics of hidden state factor ``f``. + lr: float, default ``1.0`` + Learning rate, scale of the Dirichlet pseudo-count update. + factors: ``list``, default "all" + Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include + in learning. Defaults to "all", meaning that factor-specific sub-arrays of ``pB`` + are all updated using the corresponding hidden state distributions and actions. + + Returns + ----------- + qB: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. + """ + + num_factors = len(pB) + + qB = copy.deepcopy(pB) + + if factors == "all": + factors = list(range(num_factors)) + + for factor in factors: + dfdb = maths.spm_cross(qs[factor], qs_prev[B_factor_list[factor]]) + dfdb *= (B[factor][...,int(actions[factor])] > 0).astype("float") + qB[factor][...,int(actions[factor])] += (lr*dfdb) + + return qB + +def update_state_prior_dirichlet( + pD, qs, lr=1.0, factors="all" +): + """ + Update Dirichlet parameters of the initial hidden state distribution + (prior beliefs about hidden states at the beginning of the inference window). + + Parameters + ----------- + pD: ``numpy.ndarray`` of dtype object + Prior Dirichlet parameters over initial hidden state prior (same shape as ``qs``) + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint + lr: float, default ``1.0`` + Learning rate, scale of the Dirichlet pseudo-count update. + factors: ``list``, default "all" + Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include + in learning. Defaults to "all", meaning that factor-specific sub-vectors of ``pD`` + are all updated using the corresponding hidden state distributions. + + Returns + ----------- + qD: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs``), after having updated it with state beliefs. + """ + + num_factors = len(pD) + + qD = copy.deepcopy(pD) + + if factors == "all": + factors = list(range(num_factors)) + + for factor in factors: + idx = pD[factor] > 0 # only update those state level indices that have some prior probability + qD[factor][idx] += (lr * qs[factor][idx]) + + return qD + +def _prune_prior(prior, levels_to_remove, dirichlet = False): + """ + Function for pruning a prior Categorical distribution (e.g. C, D) + + Parameters + ----------- + prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + The vector(s) containing the priors over hidden states of a generative model, e.g. the prior over hidden states (``D`` vector). + levels_to_remove: ``list`` of ``int``, ``list`` of ``list`` + A ``list`` of the levels (indices of the support) to remove. If the prior in question has multiple hidden state factors / multiple observation modalities, + then this will be a ``list`` of ``list``, where each sub-list within ``levels_to_remove`` will contain the levels to prune for a particular hidden state factor or modality + dirichlet: ``Bool``, default ``False`` + A Boolean flag indicating whether the input vector(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. + @TODO: Instead, the dirichlet parameters from the pruned levels should somehow be re-distributed among the remaining levels + + Returns + ----------- + reduced_prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + The prior vector(s), after pruning, that lacks the hidden state or modality levels indexed by ``levels_to_remove`` + """ + + if utils.is_obj_array(prior): # in case of multiple hidden state factors + + assert all([type(levels) == list for levels in levels_to_remove]) + + num_factors = len(prior) + + reduced_prior = utils.obj_array(num_factors) + + factors_to_remove = [] + for f, s_i in enumerate(prior): # loop over factors (or modalities) + + ns = len(s_i) + levels_to_keep = list(set(range(ns)) - set(levels_to_remove[f])) + if len(levels_to_keep) == 0: + print(f'Warning... removing ALL levels of factor {f} - i.e. the whole hidden state factor is being removed\n') + factors_to_remove.append(f) + else: + if not dirichlet: + reduced_prior[f] = utils.norm_dist(s_i[levels_to_keep]) + else: + raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) + + + if len(factors_to_remove) > 0: + factors_to_keep = list(set(range(num_factors)) - set(factors_to_remove)) + reduced_prior = reduced_prior[factors_to_keep] + + else: # in case of one hidden state factor + + assert all([type(level_i) == int for level_i in levels_to_remove]) + + ns = len(prior) + levels_to_keep = list(set(range(ns)) - set(levels_to_remove)) + + if not dirichlet: + reduced_prior = utils.norm_dist(prior[levels_to_keep]) + else: + raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) + + return reduced_prior + +def _prune_A(A, obs_levels_to_prune, state_levels_to_prune, dirichlet = False): + """ + Function for pruning a observation likelihood model (with potentially multiple hidden state factors) + :meta private: + Parameters + ----------- + A: ``numpy.ndarray`` with ``ndim >= 2``, or ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + obs_levels_to_prune: ``list`` of int or ``list`` of ``list``: + A ``list`` of the observation levels to remove. If the likelihood in question has multiple observation modalities, + then this will be a ``list`` of ``list``, where each sub-list within ``obs_levels_to_prune`` will contain the observation levels + to remove for a particular observation modality + state_levels_to_prune: ``list`` of ``int`` + A ``list`` of the hidden state levels to remove (this will be the same across modalities) + dirichlet: ``Bool``, default ``False`` + A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. + @TODO: Instead, the dirichlet parameters from the pruned columns should somehow be re-distributed among the remaining columns + + Returns + ----------- + reduced_A: ``numpy.ndarray`` with ndim >= 2, or ``numpy.ndarray ``of dtype object + The observation model, after pruning, which lacks the observation or hidden state levels given by the arguments ``obs_levels_to_prune`` and ``state_levels_to_prune`` + """ + + columns_to_keep_list = [] + if utils.is_obj_array(A): + num_states = A[0].shape[1:] + for f, ns in enumerate(num_states): + indices_f = np.array( list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) + columns_to_keep_list.append(indices_f) + else: + num_states = A.shape[1] + indices = np.array( list(set(range(num_states)) - set(state_levels_to_prune)), dtype = np.intp ) + columns_to_keep_list.append(indices) + + if utils.is_obj_array(A): # in case of multiple observation modality + + assert all([type(o_m_levels) == list for o_m_levels in obs_levels_to_prune]) + + num_modalities = len(A) + + reduced_A = utils.obj_array(num_modalities) + + for m, A_i in enumerate(A): # loop over modalities + + no = A_i.shape[0] + rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune[m])), dtype = np.intp) + + reduced_A[m] = A_i[np.ix_(rows_to_keep, *columns_to_keep_list)] + if not dirichlet: + reduced_A = utils.norm_dist_obj_arr(reduced_A) + else: + raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) + else: # in case of one observation modality + + assert all([type(o_levels_i) == int for o_levels_i in obs_levels_to_prune]) + + no = A.shape[0] + rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune)), dtype = np.intp) + + reduced_A = A[np.ix_(rows_to_keep, *columns_to_keep_list)] + + if not dirichlet: + reduced_A = utils.norm_dist(reduced_A) + else: + raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) + + return reduced_A + +def _prune_B(B, state_levels_to_prune, action_levels_to_prune, dirichlet = False): + """ + Function for pruning a transition likelihood model (with potentially multiple hidden state factors) + + Parameters + ----------- + B: ``numpy.ndarray`` of ``ndim == 3`` or ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at `t` to hidden states at `t+1`, given some control state `u`. + Each element B[f] of this object array stores a 3-D tensor for hidden state factor `f`, whose entries `B[f][s, v, u] store the probability + of hidden state level `s` at the current time, given hidden state level `v` and action `u` at the previous time. + state_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` + A ``list`` of the state levels to remove. If the likelihood in question has multiple hidden state factors, + then this will be a ``list`` of ``list``, where each sub-list within ``state_levels_to_prune`` will contain the state levels + to remove for a particular hidden state factor + action_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` + A ``list`` of the control state or action levels to remove. If the likelihood in question has multiple control state factors, + then this will be a ``list`` of ``list``, where each sub-list within ``action_levels_to_prune`` will contain the control state levels + to remove for a particular control state factor + dirichlet: ``Bool``, default ``False`` + A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. + @TODO: Instead, the dirichlet parameters from the pruned rows/columns should somehow be re-distributed among the remaining rows/columns + + Returns + ----------- + reduced_B: ``numpy.ndarray`` of `ndim == 3` or ``numpy.ndarray`` of dtype object + The transition model, after pruning, which lacks the hidden state levels/action levels given by the arguments ``state_levels_to_prune`` and ``action_levels_to_prune`` + """ + + slices_to_keep_list = [] + + if utils.is_obj_array(B): + + num_controls = [B_arr.shape[2] for _, B_arr in enumerate(B)] + + for c, nc in enumerate(num_controls): + indices_c = np.array( list(set(range(nc)) - set(action_levels_to_prune[c])), dtype = np.intp) + slices_to_keep_list.append(indices_c) + else: + num_controls = B.shape[2] + slices_to_keep = np.array( list(set(range(num_controls)) - set(action_levels_to_prune)), dtype = np.intp ) + + if utils.is_obj_array(B): # in case of multiple hidden state factors + + assert all([type(ns_f_levels) == list for ns_f_levels in state_levels_to_prune]) + + num_factors = len(B) + + reduced_B = utils.obj_array(num_factors) + + for f, B_f in enumerate(B): # loop over modalities + + ns = B_f.shape[0] + states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) + + reduced_B[f] = B_f[np.ix_(states_to_keep, states_to_keep, slices_to_keep_list[f])] + + if not dirichlet: + reduced_B = utils.norm_dist_obj_arr(reduced_B) + else: + raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) + + else: # in case of one hidden state factor + + assert all([type(state_level_i) == int for state_level_i in state_levels_to_prune]) + + ns = B.shape[0] + states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune)), dtype = np.intp) + + reduced_B = B[np.ix_(states_to_keep, states_to_keep, slices_to_keep)] + + if not dirichlet: + reduced_B = utils.norm_dist(reduced_B) + else: + raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) + + return reduced_B diff --git a/pymdp/legacy/maths.py b/pymdp/legacy/maths.py new file mode 100644 index 00000000..eff968f6 --- /dev/null +++ b/pymdp/legacy/maths.py @@ -0,0 +1,608 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# pylint: disable=no-member +# pylint: disable=not-an-iterable + +""" Functions + +__author__: Conor Heins, Alexander Tschantz, Brennan Klein +""" + +import numpy as np +from scipy import special +from pymdp.legacy import utils +from itertools import chain +from opt_einsum import contract + +EPS_VAL = 1e-16 # global constant for use in spm_log() function + +def spm_dot(X, x, dims_to_omit=None): + """ Dot product of a multidimensional array with `x`. The dimensions in `dims_to_omit` + will not be summed across during the dot product + + Parameters + ---------- + - `x` [1D numpy.ndarray] - either vector or array of arrays + The alternative array to perform the dot product with + - `dims_to_omit` [list :: int] (optional) + Which dimensions to omit + + Returns + ------- + - `Y` [1D numpy.ndarray] - the result of the dot product + """ + + # Construct dims to perform dot product on + if utils.is_obj_array(x): + # dims = list((np.arange(0, len(x)) + X.ndim - len(x)).astype(int)) + dims = list(range(X.ndim - len(x),len(x)+X.ndim - len(x))) + # dims = list(range(X.ndim)) + else: + dims = [1] + x = utils.to_obj_array(x) + + if dims_to_omit is not None: + arg_list = [X, list(range(X.ndim))] + list(chain(*([x[xdim_i],[dims[xdim_i]]] for xdim_i in range(len(x)) if xdim_i not in dims_to_omit))) + [dims_to_omit] + else: + arg_list = [X, list(range(X.ndim))] + list(chain(*([x[xdim_i],[dims[xdim_i]]] for xdim_i in range(len(x))))) + [[0]] + + Y = np.einsum(*arg_list) + + # check to see if `Y` is a scalar + if np.prod(Y.shape) <= 1.0: + Y = Y.item() + Y = np.array([Y]).astype("float64") + + return Y + + +def spm_dot_classic(X, x, dims_to_omit=None): + """ Dot product of a multidimensional array with `x`. The dimensions in `dims_to_omit` + will not be summed across during the dot product + + Parameters + ---------- + - `x` [1D numpy.ndarray] - either vector or array of arrays + The alternative array to perform the dot product with + - `dims_to_omit` [list :: int] (optional) + Which dimensions to omit + + Returns + ------- + - `Y` [1D numpy.ndarray] - the result of the dot product + """ + + # Construct dims to perform dot product on + if utils.is_obj_array(x): + dims = (np.arange(0, len(x)) + X.ndim - len(x)).astype(int) + else: + dims = np.array([1], dtype=int) + x = utils.to_obj_array(x) + + # delete ignored dims + if dims_to_omit is not None: + if not isinstance(dims_to_omit, list): + raise ValueError("`dims_to_omit` must be a `list` of `int`") + dims = np.delete(dims, dims_to_omit) + if len(x) == 1: + x = np.empty([0], dtype=object) + else: + x = np.delete(x, dims_to_omit) + + # compute dot product + for d in range(len(x)): + s = np.ones(np.ndim(X), dtype=int) + s[dims[d]] = np.shape(x[d])[0] + X = X * x[d].reshape(tuple(s)) + # X = np.sum(X, axis=dims[d], keepdims=True) + + Y = np.sum(X, axis=tuple(dims.astype(int))).squeeze() + # Y = np.squeeze(X) + + # check to see if `Y` is a scalar + if np.prod(Y.shape) <= 1.0: + Y = Y.item() + Y = np.array([Y]).astype("float64") + + return Y + +def factor_dot_flex(M, xs, dims, keep_dims=None): + """ Dot product of a multidimensional array with `x`. + + Parameters + ---------- + - `M` [numpy.ndarray] - tensor + - 'xs' [list of numpyr.ndarray] - list of tensors + - 'dims' [list of tuples] - list of dimensions of xs tensors in tensor M + - 'keep_dims' [tuple] - tuple of integers denoting dimesions to keep + Returns + ------- + - `Y` [1D numpy.ndarray] - the result of the dot product + """ + all_dims = tuple(range(M.ndim)) + matrix = [[xs[f], dims[f]] for f in range(len(xs))] + args = [M, all_dims] + for row in matrix: + args.extend(row) + + args += [keep_dims] + return contract(*args, backend='numpy') + +def spm_dot_old(X, x, dims_to_omit=None, obs_mode=False): + """ Dot product of a multidimensional array with `x`. The dimensions in `dims_to_omit` + will not be summed across during the dot product + + #TODO: we should look for an alternative to obs_mode + + Parameters + ---------- + - `x` [1D numpy.ndarray] - either vector or array of arrays + The alternative array to perform the dot product with + - `dims_to_omit` [list :: int] (optional) + Which dimensions to omit + + Returns + ------- + - `Y` [1D numpy.ndarray] - the result of the dot product + """ + + # Construct dims to perform dot product on + if utils.is_obj_array(x): + dims = (np.arange(0, len(x)) + X.ndim - len(x)).astype(int) + else: + if obs_mode is True: + """ + @NOTE Case when you're getting the likelihood of an observation under + the generative model. Equivalent to something like self.values[np.where(x),:] + when `x` is a discrete 'one-hot' observation vector + """ + dims = np.array([0], dtype=int) + else: + """ + @NOTE Case when `x` leading dimension matches the lagging dimension of `values` + E.g. a more 'classical' dot product of a likelihood with hidden states + """ + dims = np.array([1], dtype=int) + + x = utils.to_obj_array(x) + + # delete ignored dims + if dims_to_omit is not None: + if not isinstance(dims_to_omit, list): + raise ValueError("`dims_to_omit` must be a `list` of `int`") + dims = np.delete(dims, dims_to_omit) + if len(x) == 1: + x = np.empty([0], dtype=object) + else: + x = np.delete(x, dims_to_omit) + + # compute dot product + for d in range(len(x)): + s = np.ones(np.ndim(X), dtype=int) + s[dims[d]] = np.shape(x[d])[0] + X = X * x[d].reshape(tuple(s)) + # X = np.sum(X, axis=dims[d], keepdims=True) + + Y = np.sum(X, axis=tuple(dims.astype(int))).squeeze() + # Y = np.squeeze(X) + + # check to see if `Y` is a scalar + if np.prod(Y.shape) <= 1.0: + Y = Y.item() + Y = np.array([Y]).astype("float64") + + return Y + + +def spm_cross(x, y=None, *args): + """ Multi-dimensional outer product + + Parameters + ---------- + - `x` [np.ndarray] || [Categorical] (optional) + The values to perfrom the outer-product with. If empty, then the outer-product + is taken between x and itself. If y is not empty, then outer product is taken + between x and the various dimensions of y. + - `args` [np.ndarray] || [Categorical] (optional) + Remaining arrays to perform outer-product with. These extra arrays are recursively + multiplied with the 'initial' outer product (that between X and x). + + Returns + ------- + - `z` [np.ndarray] || [Categorical] + The result of the outer-product + """ + + if len(args) == 0 and y is None: + if utils.is_obj_array(x): + z = spm_cross(*list(x)) + elif np.issubdtype(x.dtype, np.number): + z = x + else: + raise ValueError(f"Invalid input to spm_cross ({x})") + return z + + if utils.is_obj_array(x): + x = spm_cross(*list(x)) + + if y is not None and utils.is_obj_array(y): + y = spm_cross(*list(y)) + + A = np.expand_dims(x, tuple(range(-y.ndim, 0))) + B = np.expand_dims(y, tuple(range(x.ndim))) + z = A * B + + for x in args: + z = spm_cross(z, x) + return z + +def dot_likelihood(A,obs): + + s = np.ones(np.ndim(A), dtype = int) + s[0] = obs.shape[0] + X = A * obs.reshape(tuple(s)) + X = np.sum(X, axis=0, keepdims=True) + LL = np.squeeze(X) + + # check to see if `LL` is a scalar + if np.prod(LL.shape) <= 1.0: + LL = LL.item() + LL = np.array([LL]).astype("float64") + + return LL + + +def get_joint_likelihood(A, obs, num_states): + # deal with single modality case + if type(num_states) is int: + num_states = [num_states] + A = utils.to_obj_array(A) + obs = utils.to_obj_array(obs) + ll = np.ones(tuple(num_states)) + for modality in range(len(A)): + ll = ll * dot_likelihood(A[modality], obs[modality]) + return ll + + +def get_joint_likelihood_seq(A, obs, num_states): + ll_seq = utils.obj_array(len(obs)) + for t, obs_t in enumerate(obs): + ll_seq[t] = get_joint_likelihood(A, obs_t, num_states) + return ll_seq + +def get_joint_likelihood_seq_by_modality(A, obs, num_states): + """ + Returns joint likelihoods for each modality separately + """ + + ll_seq = utils.obj_array(len(obs)) + n_modalities = len(A) + + for t, obs_t in enumerate(obs): + likelihood = utils.obj_array(n_modalities) + obs_t_obj = utils.to_obj_array(obs_t) + for (m, A_m) in enumerate(A): + likelihood[m] = dot_likelihood(A_m, obs_t_obj[m]) + ll_seq[t] = likelihood + + return ll_seq + + +def spm_norm(A): + """ + Returns normalization of Categorical distribution, + stored in the columns of A. + """ + A = A + EPS_VAL + normed_A = np.divide(A, A.sum(axis=0)) + return normed_A + +def spm_log_single(arr): + """ + Adds small epsilon value to an array before natural logging it + """ + return np.log(arr + EPS_VAL) + +def spm_log_obj_array(obj_arr): + """ + Applies `spm_log_single` to multiple elements of a numpy object array + """ + + obj_arr_logged = utils.obj_array(len(obj_arr)) + for idx, arr in enumerate(obj_arr): + obj_arr_logged[idx] = spm_log_single(arr) + + return obj_arr_logged + +def spm_wnorm(A): + """ + Returns Expectation of logarithm of Dirichlet parameters over a set of + Categorical distributions, stored in the columns of A. + """ + A = A + EPS_VAL + norm = np.divide(1.0, np.sum(A, axis=0)) + avg = np.divide(1.0, A) + wA = norm - avg + return wA + + +def spm_betaln(z): + """ Log of the multivariate beta function of a vector. + @NOTE this function computes across columns if `z` is a matrix + """ + return special.gammaln(z).sum(axis=0) - special.gammaln(z.sum(axis=0)) + +def dirichlet_log_evidence(q_dir, p_dir, r_dir): + """ + Bayesian model reduction and log evidence calculations for Dirichlet hyperparameters + This is a NumPY translation of the MATLAB function `spm_MDP_log_evidence.m` from the + DEM package of spm. + + Description (adapted from MATLAB docstring) + This function computes the negative log evidence of a reduced model of a + Categorical distribution parameterised in terms of Dirichlet hyperparameters + (i.e., concentration parameters encoding probabilities). It uses Bayesian model reduction + to evaluate the evidence for models with and without a particular parameter. + Arguments: + =========== + `q_dir` [1D np.ndarray]: sufficient statistics of posterior of full model + `p_dir` [1D np.ndarray]: sufficient statistics of prior of full model + `r_dir` [1D np.ndarray]: sufficient statistics of prior of reduced model + Returns: + ========== + `F` [float]: free energy or (negative) log evidence of reduced model + `s_dir` [1D np.ndarray]: sufficient statistics of reduced posterior + """ + + # change in free energy or log model evidence + s_dir = q_dir + r_dir - p_dir + F = spm_betaln(q_dir) + spm_betaln(r_dir) - spm_betaln(p_dir) - spm_betaln(s_dir) + + return F, s_dir + +def softmax(dist): + """ + Computes the softmax function on a set of values + """ + + output = dist - dist.max(axis=0) + output = np.exp(output) + output = output / np.sum(output, axis=0) + return output + +def softmax_obj_arr(arr): + + output = utils.obj_array(len(arr)) + + for i, arr_i in enumerate(arr): + output[i] = softmax(arr_i) + + return output + +def compute_accuracy(log_likelihood, qs): + """ + Function that computes the accuracy term of the variational free energy. This is essentially a stripped down version of `spm_dot` above, + with fewer conditions / dimension handling in the beginning. + """ + + ndims_ll, n_factors = log_likelihood.ndim, len(qs) + + dims = list(range(ndims_ll - n_factors,n_factors+ndims_ll - n_factors)) + arg_list = [log_likelihood, list(range(ndims_ll))] + list(chain(*([qs[xdim_i],[dims[xdim_i]]] for xdim_i in range(n_factors)))) + + return np.einsum(*arg_list) + + +def calc_free_energy(qs, prior, n_factors, likelihood=None): + """ Calculate variational free energy + @TODO Primarily used in FPI algorithm, needs to be made general + """ + free_energy = 0 + for factor in range(n_factors): + # Neg-entropy of posterior marginal H(q[f]) + negH_qs = qs[factor].dot(np.log(qs[factor][:, np.newaxis] + 1e-16)) + # Cross entropy of posterior marginal with prior marginal H(q[f],p[f]) + xH_qp = -qs[factor].dot(prior[factor][:, np.newaxis]) + free_energy += negH_qs + xH_qp + + if likelihood is not None: + free_energy -= compute_accuracy(likelihood, qs) + return free_energy + +def spm_calc_qo_entropy(A, x): + """ + Function that just calculates the entropy part of the state information gain, using the same method used in + spm_MDP_G.m in the original matlab code. + + Parameters + ---------- + A (numpy ndarray or array-object): + array assigning likelihoods of observations/outcomes under the various + hidden state configurations + + x (numpy ndarray or array-object): + Categorical distribution presenting probabilities of hidden states + (this can also be interpreted as the predictive density over hidden + states/causes if you're calculating the expected Bayesian surprise) + + Returns + ------- + H (float): + the entropy of the marginal distribution over observations/outcomes + """ + + num_modalities = len(A) + + # Probability distribution over the hidden causes: i.e., Q(x) + qx = spm_cross(x) + qo = 0 + idx = np.array(np.where(qx > np.exp(-16))).T + + if utils.is_obj_array(A): + # Accumulate expectation of entropy: i.e., E_{Q(o, x)}[lnP(o|x)] = E_{P(o|x)Q(x)}[lnP(o|x)] = E_{Q(x)}[P(o|x)lnP(o|x)] = E_{Q(x)}[H[P(o|x)]] + for i in idx: + # Probability over outcomes for this combination of causes + po = np.ones(1) + for modality_idx, A_m in enumerate(A): + index_vector = [slice(0, A_m.shape[0])] + list(i) + po = spm_cross(po, A_m[tuple(index_vector)]) + po = po.ravel() + qo += qx[tuple(i)] * po + else: + for i in idx: + po = np.ones(1) + index_vector = [slice(0, A.shape[0])] + list(i) + po = spm_cross(po, A[tuple(index_vector)]) + po = po.ravel() + qo += qx[tuple(i)] * po + + # Compute entropy of expectations: i.e., -E_{Q(o)}[lnQ(o)] + H = - qo.dot(spm_log_single(qo)) + + return H + +def spm_calc_neg_ambig(A, x): + """ + Function that just calculates the negativity ambiguity part of the state information gain, using the same method used in + spm_MDP_G.m in the original matlab code. + + Parameters + ---------- + A (numpy ndarray or array-object): + array assigning likelihoods of observations/outcomes under the various + hidden state configurations + + x (numpy ndarray or array-object): + Categorical distribution presenting probabilities of hidden states + (this can also be interpreted as the predictive density over hidden + states/causes if you're calculating the expected Bayesian surprise) + + Returns + ------- + G (float): + the negative ambiguity (negative entropy of the likelihood of observations given hidden states, expected under current posterior over hidden states) + """ + + num_modalities = len(A) + + # Probability distribution over the hidden causes: i.e., Q(x) + qx = spm_cross(x) + G = 0 + qo = 0 + idx = np.array(np.where(qx > np.exp(-16))).T + + if utils.is_obj_array(A): + # Accumulate expectation of entropy: i.e., E_{Q(o, x)}[lnP(o|x)] = E_{P(o|x)Q(x)}[lnP(o|x)] = E_{Q(x)}[P(o|x)lnP(o|x)] = E_{Q(x)}[H[P(o|x)]] + for i in idx: + # Probability over outcomes for this combination of causes + po = np.ones(1) + for modality_idx, A_m in enumerate(A): + index_vector = [slice(0, A_m.shape[0])] + list(i) + po = spm_cross(po, A_m[tuple(index_vector)]) + + po = po.ravel() + qo += qx[tuple(i)] * po + G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) + else: + for i in idx: + po = np.ones(1) + index_vector = [slice(0, A.shape[0])] + list(i) + po = spm_cross(po, A[tuple(index_vector)]) + po = po.ravel() + qo += qx[tuple(i)] * po + G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) + + return G + +def spm_MDP_G(A, x): + """ + Calculates the Bayesian surprise in the same way as spm_MDP_G.m does in + the original matlab code. + + Parameters + ---------- + A (numpy ndarray or array-object): + array assigning likelihoods of observations/outcomes under the various + hidden state configurations + + x (numpy ndarray or array-object): + Categorical distribution presenting probabilities of hidden states + (this can also be interpreted as the predictive density over hidden + states/causes if you're calculating the expected Bayesian surprise) + + Returns + ------- + G (float): + the (expected or not) Bayesian surprise under the density specified by x -- + namely, this scores how much an expected observation would update beliefs + about hidden states x, were it to be observed. + """ + + num_modalities = len(A) + + # Probability distribution over the hidden causes: i.e., Q(x) + qx = spm_cross(x) + G = 0 + qo = 0 + idx = np.array(np.where(qx > np.exp(-16))).T + + if utils.is_obj_array(A): + # Accumulate expectation of entropy: i.e., E_{Q(o, x)}[lnP(o|x)] = E_{P(o|x)Q(x)}[lnP(o|x)] = E_{Q(x)}[P(o|x)lnP(o|x)] = E_{Q(x)}[H[P(o|x)]] + for i in idx: + # Probability over outcomes for this combination of causes + po = np.ones(1) + for modality_idx, A_m in enumerate(A): + index_vector = [slice(0, A_m.shape[0])] + list(i) + po = spm_cross(po, A_m[tuple(index_vector)]) + + po = po.ravel() + qo += qx[tuple(i)] * po + G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) + else: + for i in idx: + po = np.ones(1) + index_vector = [slice(0, A.shape[0])] + list(i) + po = spm_cross(po, A[tuple(index_vector)]) + po = po.ravel() + qo += qx[tuple(i)] * po + G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) + + # Subtract negative entropy of expectations: i.e., E_{Q(o)}[lnQ(o)] + G = G - qo.dot(spm_log_single(qo)) # type: ignore + + return G + +def kl_div(P,Q): + """ + Parameters + ---------- + P : Categorical probability distribution + Q : Categorical probability distribution + + Returns + ------- + The KL-divergence of P and Q + + """ + dkl = 0 + for i in range(len(P)): + dkl += np.dot(P[i], np.log(P[i] + EPS_VAL) - np.log(Q[i] + EPS_VAL)) + return(dkl) + +def entropy(A): + """ + Compute the entropy term H of the likelihood matrix, + i.e. one entropy value per column + """ + entropies = np.empty(len(A), dtype=object) + for i in range(len(A)): + if len(A[i].shape) > 2: + obs_dim = A[i].shape[0] + s_dim = A[i].size // obs_dim + A_merged = A[i].reshape(obs_dim, s_dim) + else: + A_merged = A[i] + + H = - np.diag(np.matmul(A_merged.T, np.log(A_merged + EPS_VAL))) + entropies[i] = H.reshape(*A[i].shape[1:]) + return entropies \ No newline at end of file diff --git a/pymdp/legacy/utils.py b/pymdp/legacy/utils.py new file mode 100644 index 00000000..4d01ffd9 --- /dev/null +++ b/pymdp/legacy/utils.py @@ -0,0 +1,647 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" Utility functions + +__author__: Conor Heins, Alexander Tschantz, Brennan Klein +""" + +import numpy as np +import seaborn as sns +import matplotlib.pyplot as plt + +import warnings +import itertools + +EPS_VAL = 1e-16 # global constant for use in norm_dist() + +class Dimensions(object): + """ + The Dimensions class stores all data related to the size and shape of a model. + """ + def __init__( + self, + num_observations=None, + num_observation_modalities=0, + num_states=None, + num_state_factors=0, + num_controls=None, + num_control_factors=0, + ): + self.num_observations=num_observations + self.num_observation_modalities=num_observation_modalities + self.num_states=num_states + self.num_state_factors=num_state_factors + self.num_controls=num_controls + self.num_control_factors=num_control_factors + + +def sample(probabilities): + probabilities = probabilities.squeeze() if len(probabilities) > 1 else probabilities + sample_onehot = np.random.multinomial(1, probabilities) + return np.where(sample_onehot == 1)[0][0] + +def sample_obj_array(arr): + """ + Sample from set of Categorical distributions, stored in the sub-arrays of an object array + """ + + samples = [sample(arr_i) for arr_i in arr] + + return samples + +def obj_array(num_arr): + """ + Creates a generic object array with the desired number of sub-arrays, given by `num_arr` + """ + return np.empty(num_arr, dtype=object) + +def obj_array_zeros(shape_list): + """ + Creates a numpy object array whose sub-arrays are 1-D vectors + filled with zeros, with shapes given by shape_list[i] + """ + arr = obj_array(len(shape_list)) + for i, shape in enumerate(shape_list): + arr[i] = np.zeros(shape) + return arr + +def initialize_empty_A(num_obs, num_states): + """ + Initializes an empty observation likelihood array or `A` array using a list of observation-modality dimensions (`num_obs`) + and hidden state factor dimensions (`num_states`) + """ + + A_shape_list = [ [no] + num_states for no in num_obs] + return obj_array_zeros(A_shape_list) + +def initialize_empty_B(num_states, num_controls): + """ + Initializes an empty (controllable) transition likelihood array or `B` array using a list of hidden state factor dimensions (`num_states`) + and control factor dimensions (`num_controls) + """ + + B_shape_list = [ [ns, ns, num_controls[f]] for f, ns in enumerate(num_states)] + return obj_array_zeros(B_shape_list) + +def obj_array_uniform(shape_list): + """ + Creates a numpy object array whose sub-arrays are uniform Categorical + distributions with shapes given by shape_list[i]. The shapes (elements of shape_list) + can either be tuples or lists. + """ + arr = obj_array(len(shape_list)) + for i, shape in enumerate(shape_list): + arr[i] = norm_dist(np.ones(shape)) + return arr + +def obj_array_ones(shape_list, scale = 1.0): + arr = obj_array(len(shape_list)) + for i, shape in enumerate(shape_list): + arr[i] = scale * np.ones(shape) + + return arr + +def onehot(value, num_values): + arr = np.zeros(num_values) + arr[value] = 1.0 + return arr + +def random_A_matrix(num_obs, num_states, A_factor_list=None): + if type(num_obs) is int: + num_obs = [num_obs] + if type(num_states) is int: + num_states = [num_states] + num_modalities = len(num_obs) + + if A_factor_list is None: + num_factors = len(num_states) + A_factor_list = [list(range(num_factors))] * num_modalities + + A = obj_array(num_modalities) + for modality, modality_obs in enumerate(num_obs): + # lagging_dimensions = [ns for i, ns in enumerate(num_states) if i in A_factor_list[modality]] # enforces sortedness of A_factor_list + lagging_dimensions = [num_states[idx] for idx in A_factor_list[modality]] + modality_shape = [modality_obs] + lagging_dimensions + modality_dist = np.random.rand(*modality_shape) + A[modality] = norm_dist(modality_dist) + return A + +def random_B_matrix(num_states, num_controls, B_factor_list=None, B_factor_control_list=None): + """ + Generate random B object array + + Parameters + ---------- + num_states: ``list`` of ``int`` + ``list`` of the dimensionalities of each hidden state factor + num_controls: ``list`` of ``int``, default ``None`` + ``list`` of the dimensionalities of each control state factor. If ``None``, then is automatically computed as the dimensionality of each hidden state factor that is controllable + B_factor_list: ``list`` of ``list`` of ``int``, default ``None`` + ``list`` of ``list`` of states that each state depends on. If ``None``, then the dependencies are set so that each state only depends on itself + B_factor_control_list: ``list`` of ``list`` of ``int``, default ``None`` + ``list`` of ``list`` of actions that each state depends on. If ``None``, then the dependencies are set so that each state only depends on action of the same index + + Returns + ---------- + B: ``obj_array`` of ``numpy.ndarray`` + A set of ``numpy.ndarray`` transition matrices stored in an ``obj_array`` + """ + if type(num_states) is int: + num_states = [num_states] + if type(num_controls) is int: + num_controls = [num_controls] + num_factors = len(num_states) + + if B_factor_list is None: + B_factor_list = [[f] for f in range(num_factors)] + + if B_factor_control_list is None: + assert len(num_controls) == len(num_states) + B_factor_control_list = [[f] for f in range(num_factors)] + else: + unique_controls = list(set(sum(B_factor_control_list, []))) + assert unique_controls == list(range(len(num_controls))) + + B = obj_array(num_factors) + for factor in range(num_factors): + lagging_shape = [ns for i, ns in enumerate(num_states) if i in B_factor_list[factor]] + control_shape = [na for i, na in enumerate(num_controls) if i in B_factor_control_list[factor]] + factor_shape = [num_states[factor]] + lagging_shape + control_shape + factor_dist = np.random.rand(*factor_shape) + B[factor] = norm_dist(factor_dist) + return B + +def get_combination_index(x, dims): + """ + Find the index of an array of categorical values in an array of categorical dimensions + + Parameters + ---------- + x: ``numpy.ndarray`` or ``list`` of ``int`` + ``numpy.ndarray`` or ``list`` of ``int`` of categorical values to be converted into combination index + dims: ``list`` of ``int`` + ``list`` of ``int`` of categorical dimensions used for conversion + + Returns + ---------- + index: ``int`` + ``int`` index of the combination + """ + assert len(x) == len(dims) + index = 0 + product = 1 + for i in reversed(range(len(dims))): + index += x[i] * product + product *= dims[i] + return index + +def index_to_combination(index, dims): + """ + Convert the combination index according to an array of categorical dimensions back to an array of categorical values + + Parameters + ---------- + index: ``int`` + ``int`` index of the combination + dims: ``list`` of ``int`` + ``list`` of ``int`` of categorical dimensions used for conversion + + Returns + ---------- + x: ``list`` of ``int`` + ```list`` of ``int`` of categorical values to be converted into combination index + """ + x = [] + for base in reversed(dims): + x.append(index % base) + index //= base + return list(reversed(x)) + +def random_single_categorical(shape_list): + """ + Creates a random 1-D categorical distribution (or set of 1-D categoricals, e.g. multiple marginals of different factors) and returns them in an object array + """ + + num_sub_arrays = len(shape_list) + + out = obj_array(num_sub_arrays) + + for arr_idx, shape_i in enumerate(shape_list): + out[arr_idx] = norm_dist(np.random.rand(shape_i)) + + return out + +def construct_controllable_B(num_states, num_controls): + """ + Generates a fully controllable transition likelihood array, where each + action (control state) corresponds to a move to the n-th state from any + other state, for each control factor + """ + + num_factors = len(num_states) + + B = obj_array(num_factors) + for factor, c_dim in enumerate(num_controls): + tmp = np.eye(c_dim)[:, :, np.newaxis] + tmp = np.tile(tmp, (1, 1, c_dim)) + B[factor] = tmp.transpose(1, 2, 0) + + return B + +def dirichlet_like(template_categorical, scale = 1.0): + """ + Helper function to construct a Dirichlet distribution based on an existing Categorical distribution + """ + + if not is_obj_array(template_categorical): + warnings.warn( + "Input array is not an object array...\ + Casting the input to an object array" + ) + template_categorical = to_obj_array(template_categorical) + + n_sub_arrays = len(template_categorical) + + dirichlet_out = obj_array(n_sub_arrays) + + for i, arr in enumerate(template_categorical): + dirichlet_out[i] = scale * arr + + return dirichlet_out + +def get_model_dimensions(A=None, B=None, factorized=False): + + if A is None and B is None: + raise ValueError( + "Must provide either `A` or `B`" + ) + + if A is not None: + num_obs = [a.shape[0] for a in A] if is_obj_array(A) else [A.shape[0]] + num_modalities = len(num_obs) + else: + num_obs, num_modalities = None, None + + if B is not None: + num_states = [b.shape[0] for b in B] if is_obj_array(B) else [B.shape[0]] + num_factors = len(num_states) + else: + if A is not None: + if not factorized: + num_states = list(A[0].shape[1:]) if is_obj_array(A) else list(A.shape[1:]) + num_factors = len(num_states) + else: + raise ValueError( + "`A` array is factorized and cannot be used to infer `num_states`" + ) + else: + num_states, num_factors = None, None + + return num_obs, num_states, num_modalities, num_factors + +def get_model_dimensions_from_labels(model_labels): + + modalities = model_labels['observations'] + factors = model_labels['states'] + + res = Dimensions( + num_observations=[len(modalities[modality]) for modality in modalities.keys()], + num_observation_modalities=len(modalities.keys()), + num_states=[len(factors[factor]) for factor in factors.keys()], + num_state_factors=len(factors.keys()), + ) + + if 'actions' in model_labels.keys(): + controls = model_labels['actions'] + res.num_controls=[len(controls[cfac]) for cfac in controls.keys()] + res.num_control_factors=len(controls.keys()) + + return res + + + +def norm_dist(dist): + """ Normalizes a Categorical probability distribution (or set of them) assuming sufficient statistics are stored in leading dimension""" + return np.divide(dist, dist.sum(axis=0)) + +def norm_dist_obj_arr(obj_arr): + """ Normalizes a multi-factor or -modality collection of Categorical probability distributions, assuming sufficient statistics of each conditional distribution + are stored in the leading dimension""" + normed_obj_array = obj_array(len(obj_arr)) + for i, arr in enumerate(obj_arr): + normed_obj_array[i] = norm_dist(arr) + + return normed_obj_array + +def is_normalized(dist): + """ + Utility function for checking whether a single distribution or set of conditional categorical distributions is normalized. + Returns True if all distributions integrate to 1.0 + """ + + if is_obj_array(dist): + normed_arrays = [] + for i, arr in enumerate(dist): + column_sums = arr.sum(axis=0) + normed_arrays.append(np.allclose(column_sums, np.ones_like(column_sums))) + out = all(normed_arrays) + else: + column_sums = dist.sum(axis=0) + out = np.allclose(column_sums, np.ones_like(column_sums)) + + return out + +def is_obj_array(arr): + return arr.dtype == "object" + +def to_obj_array(arr): + if is_obj_array(arr): + return arr + obj_array_out = obj_array(1) + obj_array_out[0] = arr.squeeze() + return obj_array_out + +def obj_array_from_list(list_input): + """ + Takes a list of `numpy.ndarray` and converts them to a `numpy.ndarray` of `dtype = object` + """ + arr = obj_array(len(list_input)) + for i, item in enumerate(list_input): + arr[i] = item + return arr + +def process_observation_seq(obs_seq, n_modalities, n_observations): + """ + Helper function for formatting observations + + Observations can either be `int` (converted to one-hot) + or `tuple` (obs for each modality), or `list` (obs for each modality) + If list, the entries could be object arrays of one-hots, in which + case this function returns `obs_seq` as is. + """ + proc_obs_seq = obj_array(len(obs_seq)) + for t, obs_t in enumerate(obs_seq): + proc_obs_seq[t] = process_observation(obs_t, n_modalities, n_observations) + return proc_obs_seq + +def process_observation(obs, num_modalities, num_observations): + """ + Helper function for formatting observations + USAGE NOTES: + - If `obs` is a 1D numpy array, it must be a one-hot vector, where one entry (the entry of the observation) is 1.0 + and all other entries are 0. This therefore assumes it's a single modality observation. If these conditions are met, then + this function will return `obs` unchanged. Otherwise, it'll throw an error. + - If `obs` is an int, it assumes this is a single modality observation, whose observation index is given by the value of `obs`. This function will convert + it to be a one hot vector. + - If `obs` is a list, it assumes this is a multiple modality observation, whose len is equal to the number of observation modalities, + and where each entry `obs[m]` is the index of the observation, for that modality. This function will convert it into an object array + of one-hot vectors. + - If `obs` is a tuple, same logic as applies for list (see above). + - if `obs` is a numpy object array (array of arrays), this function will return `obs` unchanged. + """ + + if isinstance(obs, np.ndarray) and not is_obj_array(obs): + assert num_modalities == 1, "If `obs` is a 1D numpy array, `num_modalities` must be equal to 1" + assert len(np.where(obs)[0]) == 1, "If `obs` is a 1D numpy array, it must be a one hot vector (e.g. np.array([0.0, 1.0, 0.0, ....]))" + + if isinstance(obs, (int, np.integer)): + obs = onehot(obs, num_observations[0]) + + if isinstance(obs, tuple) or isinstance(obs,list): + obs_arr_arr = obj_array(num_modalities) + for m in range(num_modalities): + obs_arr_arr[m] = onehot(obs[m], num_observations[m]) + obs = obs_arr_arr + + return obs + +def convert_observation_array(obs, num_obs): + """ + Converts from SPM-style observation array to infer-actively one-hot object arrays. + + Parameters + ---------- + - 'obs' [numpy 2-D nd.array]: + SPM-style observation arrays are of shape (num_modalities, T), where each row + contains observation indices for a different modality, and columns indicate + different timepoints. Entries store the indices of the discrete observations + within each modality. + + - 'num_obs' [list]: + List of the dimensionalities of the observation modalities. `num_modalities` + is calculated as `len(num_obs)` in the function to determine whether we're + dealing with a single- or multi-modality + case. + + Returns + ---------- + - `obs_t`[list]: + A list with length equal to T, where each entry of the list is either a) an object + array (in the case of multiple modalities) where each sub-array is a one-hot vector + with the observation for the correspond modality, or b) a 1D numpy array (in the case + of one modality) that is a single one-hot vector encoding the observation for the + single modality. + """ + + T = obs.shape[1] + num_modalities = len(num_obs) + + # Initialise the output + obs_t = [] + # Case of one modality + if num_modalities == 1: + for t in range(T): + obs_t.append(onehot(obs[0, t] - 1, num_obs[0])) + else: + for t in range(T): + obs_AoA = obj_array(num_modalities) + for g in range(num_modalities): + # Subtract obs[g,t] by 1 to account for MATLAB vs. Python indexing + # (MATLAB is 1-indexed) + obs_AoA[g] = onehot(obs[g, t] - 1, num_obs[g]) + obs_t.append(obs_AoA) + + return obs_t + +def insert_multiple(s, indices, items): + for idx in range(len(items)): + s.insert(indices[idx], items[idx]) + return s + +def reduce_a_matrix(A): + """ + Utility function for throwing away dimensions (lagging dimensions, hidden state factors) + of a particular A matrix that are independent of the observation. + Parameters: + ========== + - `A` [np.ndarray]: + The A matrix or likelihood array that encodes probabilistic relationship + of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) + and observations (leading dimension, rows). + Returns: + ========= + - `A_reduced` [np.ndarray]: + The reduced A matrix, missing the lagging dimensions that correspond to hidden state factors + that are statistically independent of observations + - `original_factor_idx` [list]: + List of the indices (in terms of the original dimensionality) of the hidden state factors + that are maintained in the A matrix (and thus have an informative / non-degenerate relationship to observations + """ + + o_dim, num_states = A.shape[0], A.shape[1:] + idx_vec_s = [slice(0, o_dim)] + [slice(ns) for _, ns in enumerate(num_states)] + + original_factor_idx = [] + excluded_factor_idx = [] # the indices of the hidden state factors that are independent of the observation and thus marginalized away + for factor_i, ns in enumerate(num_states): + + level_counter = 0 + break_flag = False + while level_counter < ns and break_flag is False: + idx_vec_i = idx_vec_s.copy() + idx_vec_i[factor_i+1] = slice(level_counter,level_counter+1,None) + if not np.isclose(A.mean(axis=factor_i+1), A[tuple(idx_vec_i)].squeeze()).all(): + break_flag = True # this means they're not independent + original_factor_idx.append(factor_i) + else: + level_counter += 1 + + if break_flag is False: + excluded_factor_idx.append(factor_i+1) + + A_reduced = A.mean(axis=tuple(excluded_factor_idx)).squeeze() + + return A_reduced, original_factor_idx + +def construct_full_a(A_reduced, original_factor_idx, num_states): + """ + Utility function for reconstruction a full A matrix from a reduced A matrix, using known factor indices + to tile out the reduced A matrix along the 'non-informative' dimensions + Parameters: + ========== + - `A_reduced` [np.ndarray]: + The reduced A matrix or likelihood array that encodes probabilistic relationship + of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) + and observations (leading dimension, rows). + - `original_factor_idx` [list]: + List of hidden state indices in terms of the full hidden state factor list, that comprise + the lagging dimensions of `A_reduced` + - `num_states` [list]: + The list of all the dimensionalities of hidden state factors in the full generative model. + `A_reduced.shape[1:]` should be equal to `num_states[original_factor_idx]` + Returns: + ========= + - `A` [np.ndarray]: + The full A matrix, containing all the lagging dimensions that correspond to hidden state factors, including + those that are statistically independent of observations + + @ NOTE: This is the "inverse" of the reduce_a_matrix function, + i.e. `reduce_a_matrix(construct_full_a(A_reduced, original_factor_idx, num_states)) == A_reduced, original_factor_idx` + """ + + o_dim = A_reduced.shape[0] # dimensionality of the support of the likelihood distribution (i.e. the number of observation levels) + full_dimensionality = [o_dim] + num_states # full dimensionality of the output (`A`) + fill_indices = [0] + [f+1 for f in original_factor_idx] # these are the indices of the dimensions we need to fill for this modality + fill_dimensions = np.delete(full_dimensionality, fill_indices) + + original_factor_dims = [num_states[f] for f in original_factor_idx] # dimensionalities of the relevant factors + prefilled_slices = [slice(0, o_dim)] + [slice(0, ns) for ns in original_factor_dims] # these are the slices that are filled out by the provided `A_reduced` + + A = np.zeros(full_dimensionality) + + for item in itertools.product(*[list(range(d)) for d in fill_dimensions]): + slice_ = list(item) + A_indices = insert_multiple(slice_, fill_indices, prefilled_slices) #here we insert the correct values for the fill indices for this slice + A[tuple(A_indices)] = A_reduced + + return A + +# def build_belief_array(qx): + +# """ +# This function constructs array-ified (not nested) versions +# of the posterior belief arrays, that are separated +# by policy, timepoint, and hidden state factor +# """ + +# num_policies = len(qx) +# num_timesteps = len(qx[0]) +# num_factors = len(qx[0][0]) + +# if num_factors > 1: +# belief_array = obj_array(num_factors) +# for factor in range(num_factors): +# belief_array[factor] = np.zeros( (num_policies, qx[0][0][factor].shape[0], num_timesteps) ) +# for policy_i in range(num_policies): +# for timestep in range(num_timesteps): +# for factor in range(num_factors): +# belief_array[factor][policy_i, :, timestep] = qx[policy_i][timestep][factor] +# else: +# num_states = qx[0][0][0].shape[0] +# belief_array = np.zeros( (num_policies, num_states, num_timesteps) ) +# for policy_i in range(num_policies): +# for timestep in range(num_timesteps): +# belief_array[policy_i, :, timestep] = qx[policy_i][timestep][0] + +# return belief_array + +def build_xn_vn_array(xn): + + """ + This function constructs array-ified (not nested) versions + of the posterior xn (beliefs) or vn (prediction error) arrays, that are separated + by iteration, hidden state factor, timepoint, and policy + """ + + num_policies = len(xn) + num_itr = len(xn[0]) + num_factors = len(xn[0][0]) + + if num_factors > 1: + xn_array = obj_array(num_factors) + for factor in range(num_factors): + num_states, infer_len = xn[0][0][factor].shape + xn_array[factor] = np.zeros( (num_itr, num_states, infer_len, num_policies) ) + for policy_i in range(num_policies): + for itr in range(num_itr): + for factor in range(num_factors): + xn_array[factor][itr,:,:,policy_i] = xn[policy_i][itr][factor] + else: + num_states, infer_len = xn[0][0][0].shape + xn_array = np.zeros( (num_itr, num_states, infer_len, num_policies) ) + for policy_i in range(num_policies): + for itr in range(num_itr): + xn_array[itr,:,:,policy_i] = xn[policy_i][itr][0] + + return xn_array + +def plot_beliefs(belief_dist, title=""): + """ + Utility function that plots a bar chart of a categorical probability distribution, + with each bar height corresponding to the probability of one of the elements of the categorical + probability vector. + """ + + plt.grid(zorder=0) + plt.bar(range(belief_dist.shape[0]), belief_dist, color='r', zorder=3) + plt.xticks(range(belief_dist.shape[0])) + plt.title(title) + plt.show() + +def plot_likelihood(A, title=""): + """ + Utility function that shows a heatmap of a 2-D likelihood (hidden causes in the columns, observations in the rows), + with hotter colors indicating higher probability. + """ + + ax = sns.heatmap(A, cmap="OrRd", linewidth=2.5) + plt.xticks(range(A.shape[1]+1)) + plt.yticks(range(A.shape[0]+1)) + plt.title(title) + plt.show() + + + + + diff --git a/pymdp/jax/likelihoods.py b/pymdp/likelihoods.py similarity index 100% rename from pymdp/jax/likelihoods.py rename to pymdp/likelihoods.py diff --git a/pymdp/maths.py b/pymdp/maths.py index 1d5e9e4d..0bf77cf0 100644 --- a/pymdp/maths.py +++ b/pymdp/maths.py @@ -1,121 +1,91 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# pylint: disable=no-member -# pylint: disable=not-an-iterable +import jax.numpy as jnp -""" Functions +from functools import partial +from typing import Optional, Tuple, List +from jax import tree_util, nn, jit, vmap, lax +from jax.scipy.special import xlogy +from opt_einsum import contract +from multimethod import multimethod +from jaxtyping import ArrayLike +from jax.experimental import sparse +from jax.experimental.sparse._base import JAXSparse -__author__: Conor Heins, Alexander Tschantz, Brennan Klein -""" +MINVAL = jnp.finfo(float).eps -import numpy as np -from scipy import special -from pymdp import utils -from itertools import chain -from opt_einsum import contract +def stable_xlogx(x): + return xlogy(x, jnp.clip(x, MINVAL)) -EPS_VAL = 1e-16 # global constant for use in spm_log() function +def stable_entropy(x): + return - stable_xlogx(x).sum() -def spm_dot(X, x, dims_to_omit=None): - """ Dot product of a multidimensional array with `x`. The dimensions in `dims_to_omit` - will not be summed across during the dot product - +def stable_cross_entropy(x, y): + return - xlogy(x, y).sum() + +def log_stable(x): + return jnp.log(jnp.clip(x, min=MINVAL)) + + +@multimethod +@partial(jit, static_argnames=["keep_dims"]) +def factor_dot(M: ArrayLike, xs: list[ArrayLike], keep_dims: Optional[tuple[int]] = None): + """Dot product of a multidimensional array with `x`. Parameters ---------- - - `x` [1D numpy.ndarray] - either vector or array of arrays - The alternative array to perform the dot product with - - `dims_to_omit` [list :: int] (optional) - Which dimensions to omit - - Returns + - `qs` [list of 1D numpy.ndarray] - list of jnp.ndarrays + + Returns ------- - `Y` [1D numpy.ndarray] - the result of the dot product """ + d = len(keep_dims) if keep_dims is not None else 0 + assert M.ndim == len(xs) + d + keep_dims = () if keep_dims is None else keep_dims + dims = tuple((i,) for i in range(M.ndim) if i not in keep_dims) + return factor_dot_flex(M, xs, dims, keep_dims=keep_dims) - # Construct dims to perform dot product on - if utils.is_obj_array(x): - # dims = list((np.arange(0, len(x)) + X.ndim - len(x)).astype(int)) - dims = list(range(X.ndim - len(x),len(x)+X.ndim - len(x))) - # dims = list(range(X.ndim)) - else: - dims = [1] - x = utils.to_obj_array(x) - if dims_to_omit is not None: - arg_list = [X, list(range(X.ndim))] + list(chain(*([x[xdim_i],[dims[xdim_i]]] for xdim_i in range(len(x)) if xdim_i not in dims_to_omit))) + [dims_to_omit] - else: - arg_list = [X, list(range(X.ndim))] + list(chain(*([x[xdim_i],[dims[xdim_i]]] for xdim_i in range(len(x))))) + [[0]] +@multimethod +def factor_dot(M: JAXSparse, xs: List[ArrayLike], keep_dims: Optional[Tuple[int]] = None): + d = len(keep_dims) if keep_dims is not None else 0 + assert M.ndim == len(xs) + d + keep_dims = () if keep_dims is None else keep_dims + dims = tuple((i,) for i in range(M.ndim) if i not in keep_dims) + return spm_dot_sparse(M, xs, dims, keep_dims=keep_dims) - Y = np.einsum(*arg_list) - - # check to see if `Y` is a scalar - if np.prod(Y.shape) <= 1.0: - Y = Y.item() - Y = np.array([Y]).astype("float64") - - return Y +def spm_dot_sparse( + X: JAXSparse, x: List[ArrayLike], dims: Optional[List[Tuple[int]]], keep_dims: Optional[List[Tuple[int]]] +): + if dims is None: + dims = (jnp.arange(0, len(x)) + X.ndim - len(x)).astype(int) + dims = jnp.array(dims).flatten() -def spm_dot_classic(X, x, dims_to_omit=None): - """ Dot product of a multidimensional array with `x`. The dimensions in `dims_to_omit` - will not be summed across during the dot product - - Parameters - ---------- - - `x` [1D numpy.ndarray] - either vector or array of arrays - The alternative array to perform the dot product with - - `dims_to_omit` [list :: int] (optional) - Which dimensions to omit - - Returns - ------- - - `Y` [1D numpy.ndarray] - the result of the dot product - """ + if keep_dims is not None: + for d in keep_dims: + if d in dims: + dims = jnp.delete(dims, jnp.argwhere(dims == d)) - # Construct dims to perform dot product on - if utils.is_obj_array(x): - dims = (np.arange(0, len(x)) + X.ndim - len(x)).astype(int) - else: - dims = np.array([1], dtype=int) - x = utils.to_obj_array(x) - - # delete ignored dims - if dims_to_omit is not None: - if not isinstance(dims_to_omit, list): - raise ValueError("`dims_to_omit` must be a `list` of `int`") - dims = np.delete(dims, dims_to_omit) - if len(x) == 1: - x = np.empty([0], dtype=object) - else: - x = np.delete(x, dims_to_omit) - - # compute dot product for d in range(len(x)): - s = np.ones(np.ndim(X), dtype=int) - s[dims[d]] = np.shape(x[d])[0] + s = jnp.ones(jnp.ndim(X), dtype=int) + s = s.at[dims[d]].set(jnp.shape(x[d])[0]) X = X * x[d].reshape(tuple(s)) - # X = np.sum(X, axis=dims[d], keepdims=True) - Y = np.sum(X, axis=tuple(dims.astype(int))).squeeze() - # Y = np.squeeze(X) + sparse_sum = sparse.sparsify(jnp.sum) + Y = sparse_sum(X, axis=tuple(dims)) + return Y - # check to see if `Y` is a scalar - if np.prod(Y.shape) <= 1.0: - Y = Y.item() - Y = np.array([Y]).astype("float64") - return Y +@partial(jit, static_argnames=["dims", "keep_dims"]) +def factor_dot_flex(M, xs, dims: List[Tuple[int]], keep_dims: Optional[Tuple[int]] = None): + """Dot product of a multidimensional array with `x`. -def factor_dot_flex(M, xs, dims, keep_dims=None): - """ Dot product of a multidimensional array with `x`. - Parameters ---------- - `M` [numpy.ndarray] - tensor - 'xs' [list of numpyr.ndarray] - list of tensors - 'dims' [list of tuples] - list of dimensions of xs tensors in tensor M - 'keep_dims' [tuple] - tuple of integers denoting dimesions to keep - Returns + Returns ------- - `Y` [1D numpy.ndarray] - the result of the dot product """ @@ -126,483 +96,108 @@ def factor_dot_flex(M, xs, dims, keep_dims=None): args.extend(row) args += [keep_dims] - return contract(*args, backend='numpy') + return contract(*args, backend="jax") -def spm_dot_old(X, x, dims_to_omit=None, obs_mode=False): - """ Dot product of a multidimensional array with `x`. The dimensions in `dims_to_omit` - will not be summed across during the dot product - #TODO: we should look for an alternative to obs_mode - - Parameters - ---------- - - `x` [1D numpy.ndarray] - either vector or array of arrays - The alternative array to perform the dot product with - - `dims_to_omit` [list :: int] (optional) - Which dimensions to omit - - Returns - ------- - - `Y` [1D numpy.ndarray] - the result of the dot product - """ - - # Construct dims to perform dot product on - if utils.is_obj_array(x): - dims = (np.arange(0, len(x)) + X.ndim - len(x)).astype(int) +def get_likelihood_single_modality(o_m, A_m, distr_obs=True): + """Return observation likelihood for a single observation modality m""" + if distr_obs: + expanded_obs = jnp.expand_dims(o_m, tuple(range(1, A_m.ndim))) + likelihood = (expanded_obs * A_m).sum(axis=0) else: - if obs_mode is True: - """ - @NOTE Case when you're getting the likelihood of an observation under - the generative model. Equivalent to something like self.values[np.where(x),:] - when `x` is a discrete 'one-hot' observation vector - """ - dims = np.array([0], dtype=int) - else: - """ - @NOTE Case when `x` leading dimension matches the lagging dimension of `values` - E.g. a more 'classical' dot product of a likelihood with hidden states - """ - dims = np.array([1], dtype=int) - - x = utils.to_obj_array(x) - - # delete ignored dims - if dims_to_omit is not None: - if not isinstance(dims_to_omit, list): - raise ValueError("`dims_to_omit` must be a `list` of `int`") - dims = np.delete(dims, dims_to_omit) - if len(x) == 1: - x = np.empty([0], dtype=object) - else: - x = np.delete(x, dims_to_omit) - - # compute dot product - for d in range(len(x)): - s = np.ones(np.ndim(X), dtype=int) - s[dims[d]] = np.shape(x[d])[0] - X = X * x[d].reshape(tuple(s)) - # X = np.sum(X, axis=dims[d], keepdims=True) + likelihood = A_m[o_m] - Y = np.sum(X, axis=tuple(dims.astype(int))).squeeze() - # Y = np.squeeze(X) + return likelihood - # check to see if `Y` is a scalar - if np.prod(Y.shape) <= 1.0: - Y = Y.item() - Y = np.array([Y]).astype("float64") +def compute_log_likelihood_single_modality(o_m, A_m, distr_obs=True): + """Compute observation log-likelihood for a single modality""" + return log_stable(get_likelihood_single_modality(o_m, A_m, distr_obs=distr_obs)) - return Y +def compute_log_likelihood(obs, A, distr_obs=True): + """Compute likelihood over hidden states across observations from different modalities""" + result = tree_util.tree_map(lambda o, a: compute_log_likelihood_single_modality(o, a, distr_obs=distr_obs), obs, A) + ll = jnp.sum(jnp.stack(result), 0) -def spm_cross(x, y=None, *args): - """ Multi-dimensional outer product - - Parameters - ---------- - - `x` [np.ndarray] || [Categorical] (optional) - The values to perfrom the outer-product with. If empty, then the outer-product - is taken between x and itself. If y is not empty, then outer product is taken - between x and the various dimensions of y. - - `args` [np.ndarray] || [Categorical] (optional) - Remaining arrays to perform outer-product with. These extra arrays are recursively - multiplied with the 'initial' outer product (that between X and x). - - Returns - ------- - - `z` [np.ndarray] || [Categorical] - The result of the outer-product - """ - - if len(args) == 0 and y is None: - if utils.is_obj_array(x): - z = spm_cross(*list(x)) - elif np.issubdtype(x.dtype, np.number): - z = x - else: - raise ValueError(f"Invalid input to spm_cross ({x})") - return z - - if utils.is_obj_array(x): - x = spm_cross(*list(x)) - - if y is not None and utils.is_obj_array(y): - y = spm_cross(*list(y)) - - A = np.expand_dims(x, tuple(range(-y.ndim, 0))) - B = np.expand_dims(y, tuple(range(x.ndim))) - z = A * B - - for x in args: - z = spm_cross(z, x) - return z - -def dot_likelihood(A,obs): - - s = np.ones(np.ndim(A), dtype = int) - s[0] = obs.shape[0] - X = A * obs.reshape(tuple(s)) - X = np.sum(X, axis=0, keepdims=True) - LL = np.squeeze(X) - - # check to see if `LL` is a scalar - if np.prod(LL.shape) <= 1.0: - LL = LL.item() - LL = np.array([LL]).astype("float64") - - return LL - - -def get_joint_likelihood(A, obs, num_states): - # deal with single modality case - if type(num_states) is int: - num_states = [num_states] - A = utils.to_obj_array(A) - obs = utils.to_obj_array(obs) - ll = np.ones(tuple(num_states)) - for modality in range(len(A)): - ll = ll * dot_likelihood(A[modality], obs[modality]) return ll -def get_joint_likelihood_seq(A, obs, num_states): - ll_seq = utils.obj_array(len(obs)) - for t, obs_t in enumerate(obs): - ll_seq[t] = get_joint_likelihood(A, obs_t, num_states) - return ll_seq +def compute_log_likelihood_per_modality(obs, A, distr_obs=True): + """Compute likelihood over hidden states across observations from different modalities, and return them per modality""" + ll_all = tree_util.tree_map(lambda o, a: compute_log_likelihood_single_modality(o, a, distr_obs=distr_obs), obs, A) -def get_joint_likelihood_seq_by_modality(A, obs, num_states): - """ - Returns joint likelihoods for each modality separately - """ + return ll_all - ll_seq = utils.obj_array(len(obs)) - n_modalities = len(A) - for t, obs_t in enumerate(obs): - likelihood = utils.obj_array(n_modalities) - obs_t_obj = utils.to_obj_array(obs_t) - for (m, A_m) in enumerate(A): - likelihood[m] = dot_likelihood(A_m, obs_t_obj[m]) - ll_seq[t] = likelihood - - return ll_seq +def compute_accuracy(qs, obs, A): + """Compute the accuracy portion of the variational free energy (expected log likelihood under the variational posterior)""" + log_likelihood = compute_log_likelihood(obs, A) -def spm_norm(A): - """ - Returns normalization of Categorical distribution, - stored in the columns of A. - """ - A = A + EPS_VAL - normed_A = np.divide(A, A.sum(axis=0)) - return normed_A - -def spm_log_single(arr): - """ - Adds small epsilon value to an array before natural logging it - """ - return np.log(arr + EPS_VAL) - -def spm_log_obj_array(obj_arr): - """ - Applies `spm_log_single` to multiple elements of a numpy object array - """ + x = qs[0] + for q in qs[1:]: + x = jnp.expand_dims(x, -1) * q - obj_arr_logged = utils.obj_array(len(obj_arr)) - for idx, arr in enumerate(obj_arr): - obj_arr_logged[idx] = spm_log_single(arr) + joint = ll * x + return joint.sum() - return obj_arr_logged -def spm_wnorm(A): - """ - Returns Expectation of logarithm of Dirichlet parameters over a set of - Categorical distributions, stored in the columns of A. - """ - A = A + EPS_VAL - norm = np.divide(1.0, np.sum(A, axis=0)) - avg = np.divide(1.0, A) - wA = norm - avg - return wA - - -def spm_betaln(z): - """ Log of the multivariate beta function of a vector. - @NOTE this function computes across columns if `z` is a matrix +def compute_free_energy(qs, prior, obs, A): """ - return special.gammaln(z).sum(axis=0) - special.gammaln(z.sum(axis=0)) + Calculate variational free energy by breaking its computation down into three steps: + 1. computation of the negative entropy of the posterior -H[Q(s)] + 2. computation of the cross entropy of the posterior with the prior H_{Q(s)}[P(s)] + 3. computation of the accuracy E_{Q(s)}[lnP(o|s)] -def dirichlet_log_evidence(q_dir, p_dir, r_dir): + Then add them all together -- except subtract the accuracy """ - Bayesian model reduction and log evidence calculations for Dirichlet hyperparameters - This is a NumPY translation of the MATLAB function `spm_MDP_log_evidence.m` from the - DEM package of spm. - - Description (adapted from MATLAB docstring) - This function computes the negative log evidence of a reduced model of a - Categorical distribution parameterised in terms of Dirichlet hyperparameters - (i.e., concentration parameters encoding probabilities). It uses Bayesian model reduction - to evaluate the evidence for models with and without a particular parameter. - Arguments: - =========== - `q_dir` [1D np.ndarray]: sufficient statistics of posterior of full model - `p_dir` [1D np.ndarray]: sufficient statistics of prior of full model - `r_dir` [1D np.ndarray]: sufficient statistics of prior of reduced model - Returns: - ========== - `F` [float]: free energy or (negative) log evidence of reduced model - `s_dir` [1D np.ndarray]: sufficient statistics of reduced posterior - """ - - # change in free energy or log model evidence - s_dir = q_dir + r_dir - p_dir - F = spm_betaln(q_dir) + spm_betaln(r_dir) - spm_betaln(p_dir) - spm_betaln(s_dir) - - return F, s_dir - -def softmax(dist): - """ - Computes the softmax function on a set of values - """ - - output = dist - dist.max(axis=0) - output = np.exp(output) - output = output / np.sum(output, axis=0) - return output - -def softmax_obj_arr(arr): - output = utils.obj_array(len(arr)) - - for i, arr_i in enumerate(arr): - output[i] = softmax(arr_i) + vfe = 0.0 # initialize variational free energy + for q, p in zip(qs, prior): + negH_qs = - stable_entropy(q) + xH_qp = stable_cross_entropy(q, p) + vfe += (negH_qs + xH_qp) - return output + vfe -= compute_accuracy(qs, obs, A) -def compute_accuracy(log_likelihood, qs): - """ - Function that computes the accuracy term of the variational free energy. This is essentially a stripped down version of `spm_dot` above, - with fewer conditions / dimension handling in the beginning. - """ + return vfe - ndims_ll, n_factors = log_likelihood.ndim, len(qs) - dims = list(range(ndims_ll - n_factors,n_factors+ndims_ll - n_factors)) - arg_list = [log_likelihood, list(range(ndims_ll))] + list(chain(*([qs[xdim_i],[dims[xdim_i]]] for xdim_i in range(n_factors)))) +def multidimensional_outer(arrs): + """Compute the outer product of a list of arrays by iteratively expanding the first array and multiplying it with the next array""" - return np.einsum(*arg_list) + x = arrs[0] + for q in arrs[1:]: + x = jnp.expand_dims(x, -1) * q + return x -def calc_free_energy(qs, prior, n_factors, likelihood=None): - """ Calculate variational free energy - @TODO Primarily used in FPI algorithm, needs to be made general - """ - free_energy = 0 - for factor in range(n_factors): - # Neg-entropy of posterior marginal H(q[f]) - negH_qs = qs[factor].dot(np.log(qs[factor][:, np.newaxis] + 1e-16)) - # Cross entropy of posterior marginal with prior marginal H(q[f],p[f]) - xH_qp = -qs[factor].dot(prior[factor][:, np.newaxis]) - free_energy += negH_qs + xH_qp - - if likelihood is not None: - free_energy -= compute_accuracy(likelihood, qs) - return free_energy - -def spm_calc_qo_entropy(A, x): - """ - Function that just calculates the entropy part of the state information gain, using the same method used in - spm_MDP_G.m in the original matlab code. - Parameters - ---------- - A (numpy ndarray or array-object): - array assigning likelihoods of observations/outcomes under the various - hidden state configurations - - x (numpy ndarray or array-object): - Categorical distribution presenting probabilities of hidden states - (this can also be interpreted as the predictive density over hidden - states/causes if you're calculating the expected Bayesian surprise) - - Returns - ------- - H (float): - the entropy of the marginal distribution over observations/outcomes - """ - - num_modalities = len(A) - - # Probability distribution over the hidden causes: i.e., Q(x) - qx = spm_cross(x) - qo = 0 - idx = np.array(np.where(qx > np.exp(-16))).T - - if utils.is_obj_array(A): - # Accumulate expectation of entropy: i.e., E_{Q(o, x)}[lnP(o|x)] = E_{P(o|x)Q(x)}[lnP(o|x)] = E_{Q(x)}[P(o|x)lnP(o|x)] = E_{Q(x)}[H[P(o|x)]] - for i in idx: - # Probability over outcomes for this combination of causes - po = np.ones(1) - for modality_idx, A_m in enumerate(A): - index_vector = [slice(0, A_m.shape[0])] + list(i) - po = spm_cross(po, A_m[tuple(index_vector)]) - po = po.ravel() - qo += qx[tuple(i)] * po - else: - for i in idx: - po = np.ones(1) - index_vector = [slice(0, A.shape[0])] + list(i) - po = spm_cross(po, A[tuple(index_vector)]) - po = po.ravel() - qo += qx[tuple(i)] * po - - # Compute entropy of expectations: i.e., -E_{Q(o)}[lnQ(o)] - H = - qo.dot(spm_log_single(qo)) - - return H - -def spm_calc_neg_ambig(A, x): +def spm_wnorm(A): """ - Function that just calculates the negativity ambiguity part of the state information gain, using the same method used in - spm_MDP_G.m in the original matlab code. - - Parameters - ---------- - A (numpy ndarray or array-object): - array assigning likelihoods of observations/outcomes under the various - hidden state configurations - - x (numpy ndarray or array-object): - Categorical distribution presenting probabilities of hidden states - (this can also be interpreted as the predictive density over hidden - states/causes if you're calculating the expected Bayesian surprise) - - Returns - ------- - G (float): - the negative ambiguity (negative entropy of the likelihood of observations given hidden states, expected under current posterior over hidden states) + Returns Expectation of logarithm of Dirichlet parameters over a set of + Categorical distributions, stored in the columns of A. """ + norm = 1. / A.sum(axis=0) + avg = 1. / (A + MINVAL) + wA = norm - avg + return wA - num_modalities = len(A) - - # Probability distribution over the hidden causes: i.e., Q(x) - qx = spm_cross(x) - G = 0 - qo = 0 - idx = np.array(np.where(qx > np.exp(-16))).T - - if utils.is_obj_array(A): - # Accumulate expectation of entropy: i.e., E_{Q(o, x)}[lnP(o|x)] = E_{P(o|x)Q(x)}[lnP(o|x)] = E_{Q(x)}[P(o|x)lnP(o|x)] = E_{Q(x)}[H[P(o|x)]] - for i in idx: - # Probability over outcomes for this combination of causes - po = np.ones(1) - for modality_idx, A_m in enumerate(A): - index_vector = [slice(0, A_m.shape[0])] + list(i) - po = spm_cross(po, A_m[tuple(index_vector)]) - - po = po.ravel() - qo += qx[tuple(i)] * po - G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) - else: - for i in idx: - po = np.ones(1) - index_vector = [slice(0, A.shape[0])] + list(i) - po = spm_cross(po, A[tuple(index_vector)]) - po = po.ravel() - qo += qx[tuple(i)] * po - G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) - - return G -def spm_MDP_G(A, x): +def dirichlet_expected_value(dir_arr): """ - Calculates the Bayesian surprise in the same way as spm_MDP_G.m does in - the original matlab code. - - Parameters - ---------- - A (numpy ndarray or array-object): - array assigning likelihoods of observations/outcomes under the various - hidden state configurations - - x (numpy ndarray or array-object): - Categorical distribution presenting probabilities of hidden states - (this can also be interpreted as the predictive density over hidden - states/causes if you're calculating the expected Bayesian surprise) - - Returns - ------- - G (float): - the (expected or not) Bayesian surprise under the density specified by x -- - namely, this scores how much an expected observation would update beliefs - about hidden states x, were it to be observed. + Returns Expectation of Dirichlet parameters over a set of + Categorical distributions, stored in the columns of A. """ + dir_arr = jnp.clip(dir_arr, min=MINVAL) + expected_val = jnp.divide(dir_arr, dir_arr.sum(axis=0, keepdims=True)) + return expected_val - num_modalities = len(A) - - # Probability distribution over the hidden causes: i.e., Q(x) - qx = spm_cross(x) - G = 0 - qo = 0 - idx = np.array(np.where(qx > np.exp(-16))).T - - if utils.is_obj_array(A): - # Accumulate expectation of entropy: i.e., E_{Q(o, x)}[lnP(o|x)] = E_{P(o|x)Q(x)}[lnP(o|x)] = E_{Q(x)}[P(o|x)lnP(o|x)] = E_{Q(x)}[H[P(o|x)]] - for i in idx: - # Probability over outcomes for this combination of causes - po = np.ones(1) - for modality_idx, A_m in enumerate(A): - index_vector = [slice(0, A_m.shape[0])] + list(i) - po = spm_cross(po, A_m[tuple(index_vector)]) - - po = po.ravel() - qo += qx[tuple(i)] * po - G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) - else: - for i in idx: - po = np.ones(1) - index_vector = [slice(0, A.shape[0])] + list(i) - po = spm_cross(po, A[tuple(index_vector)]) - po = po.ravel() - qo += qx[tuple(i)] * po - G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) - - # Subtract negative entropy of expectations: i.e., E_{Q(o)}[lnQ(o)] - G = G - qo.dot(spm_log_single(qo)) # type: ignore - - return G - -def kl_div(P,Q): - """ - Parameters - ---------- - P : Categorical probability distribution - Q : Categorical probability distribution - Returns - ------- - The KL-divergence of P and Q - - """ - dkl = 0 - for i in range(len(P)): - dkl += np.dot(P[i], np.log(P[i] + EPS_VAL) - np.log(Q[i] + EPS_VAL)) - return(dkl) +if __name__ == "__main__": + obs = [0, 1, 2] + obs_vec = [nn.one_hot(o, 3) for o in obs] + A = [jnp.ones((3, 2)) / 3] * 3 + res = jit(compute_log_likelihood)(obs_vec, A) -def entropy(A): - """ - Compute the entropy term H of the likelihood matrix, - i.e. one entropy value per column - """ - entropies = np.empty(len(A), dtype=object) - for i in range(len(A)): - if len(A[i].shape) > 2: - obs_dim = A[i].shape[0] - s_dim = A[i].size // obs_dim - A_merged = A[i].reshape(obs_dim, s_dim) - else: - A_merged = A[i] - - H = - np.diag(np.matmul(A_merged.T, np.log(A_merged + EPS_VAL))) - entropies[i] = H.reshape(*A[i].shape[1:]) - return entropies \ No newline at end of file + print(res) diff --git a/pymdp/jax/planning/mcts.py b/pymdp/planning/mcts.py similarity index 100% rename from pymdp/jax/planning/mcts.py rename to pymdp/planning/mcts.py diff --git a/pymdp/jax/planning/si.py b/pymdp/planning/si.py similarity index 100% rename from pymdp/jax/planning/si.py rename to pymdp/planning/si.py diff --git a/pymdp/utils.py b/pymdp/utils.py index 4d01ffd9..bdcc0b6c 100644 --- a/pymdp/utils.py +++ b/pymdp/utils.py @@ -6,171 +6,67 @@ __author__: Conor Heins, Alexander Tschantz, Brennan Klein """ +import jax +import jax.numpy as jnp +import jax.tree_util as jtu import numpy as np -import seaborn as sns -import matplotlib.pyplot as plt -import warnings -import itertools +from typing import ( + Any, + Callable, + List, + NamedTuple, + Optional, + Sequence, + Union, + Tuple, +) -EPS_VAL = 1e-16 # global constant for use in norm_dist() +Tensor = ( + Any # maybe jnp.ndarray, but typing seems not to be well defined for jax +) +Vector = List[Tensor] +Shape = Sequence[int] +ShapeList = list[Shape] -class Dimensions(object): - """ - The Dimensions class stores all data related to the size and shape of a model. - """ - def __init__( - self, - num_observations=None, - num_observation_modalities=0, - num_states=None, - num_state_factors=0, - num_controls=None, - num_control_factors=0, - ): - self.num_observations=num_observations - self.num_observation_modalities=num_observation_modalities - self.num_states=num_states - self.num_state_factors=num_state_factors - self.num_controls=num_controls - self.num_control_factors=num_control_factors - - -def sample(probabilities): - probabilities = probabilities.squeeze() if len(probabilities) > 1 else probabilities - sample_onehot = np.random.multinomial(1, probabilities) - return np.where(sample_onehot == 1)[0][0] - -def sample_obj_array(arr): - """ - Sample from set of Categorical distributions, stored in the sub-arrays of an object array - """ - - samples = [sample(arr_i) for arr_i in arr] - - return samples - -def obj_array(num_arr): - """ - Creates a generic object array with the desired number of sub-arrays, given by `num_arr` - """ - return np.empty(num_arr, dtype=object) - -def obj_array_zeros(shape_list): - """ - Creates a numpy object array whose sub-arrays are 1-D vectors - filled with zeros, with shapes given by shape_list[i] - """ - arr = obj_array(len(shape_list)) - for i, shape in enumerate(shape_list): - arr[i] = np.zeros(shape) - return arr -def initialize_empty_A(num_obs, num_states): - """ - Initializes an empty observation likelihood array or `A` array using a list of observation-modality dimensions (`num_obs`) - and hidden state factor dimensions (`num_states`) - """ +def norm_dist(dist: Tensor) -> Tensor: + """Normalizes a Categorical probability distribution""" + return dist / dist.sum(0) - A_shape_list = [ [no] + num_states for no in num_obs] - return obj_array_zeros(A_shape_list) -def initialize_empty_B(num_states, num_controls): - """ - Initializes an empty (controllable) transition likelihood array or `B` array using a list of hidden state factor dimensions (`num_states`) - and control factor dimensions (`num_controls) +def list_array_uniform(shape_list: ShapeList) -> Vector: """ - - B_shape_list = [ [ns, ns, num_controls[f]] for f, ns in enumerate(num_states)] - return obj_array_zeros(B_shape_list) - -def obj_array_uniform(shape_list): - """ - Creates a numpy object array whose sub-arrays are uniform Categorical + Creates a list of jax arrays representing uniform Categorical distributions with shapes given by shape_list[i]. The shapes (elements of shape_list) can either be tuples or lists. """ - arr = obj_array(len(shape_list)) - for i, shape in enumerate(shape_list): - arr[i] = norm_dist(np.ones(shape)) + arr = [] + for shape in shape_list: + arr.append(norm_dist(jnp.ones(shape))) return arr -def obj_array_ones(shape_list, scale = 1.0): - arr = obj_array(len(shape_list)) - for i, shape in enumerate(shape_list): - arr[i] = scale * np.ones(shape) - - return arr -def onehot(value, num_values): - arr = np.zeros(num_values) - arr[value] = 1.0 +def list_array_zeros(shape_list: ShapeList) -> Vector: + """ + Creates a list of 1-D jax arrays filled with zeros, with shapes given by shape_list[i] + """ + arr = [] + for shape in shape_list: + arr.append(jnp.zeros(shape)) return arr -def random_A_matrix(num_obs, num_states, A_factor_list=None): - if type(num_obs) is int: - num_obs = [num_obs] - if type(num_states) is int: - num_states = [num_states] - num_modalities = len(num_obs) - - if A_factor_list is None: - num_factors = len(num_states) - A_factor_list = [list(range(num_factors))] * num_modalities - - A = obj_array(num_modalities) - for modality, modality_obs in enumerate(num_obs): - # lagging_dimensions = [ns for i, ns in enumerate(num_states) if i in A_factor_list[modality]] # enforces sortedness of A_factor_list - lagging_dimensions = [num_states[idx] for idx in A_factor_list[modality]] - modality_shape = [modality_obs] + lagging_dimensions - modality_dist = np.random.rand(*modality_shape) - A[modality] = norm_dist(modality_dist) - return A -def random_B_matrix(num_states, num_controls, B_factor_list=None, B_factor_control_list=None): +def list_array_scaled(shape_list: ShapeList, scale: float = 1.0) -> Vector: """ - Generate random B object array - - Parameters - ---------- - num_states: ``list`` of ``int`` - ``list`` of the dimensionalities of each hidden state factor - num_controls: ``list`` of ``int``, default ``None`` - ``list`` of the dimensionalities of each control state factor. If ``None``, then is automatically computed as the dimensionality of each hidden state factor that is controllable - B_factor_list: ``list`` of ``list`` of ``int``, default ``None`` - ``list`` of ``list`` of states that each state depends on. If ``None``, then the dependencies are set so that each state only depends on itself - B_factor_control_list: ``list`` of ``list`` of ``int``, default ``None`` - ``list`` of ``list`` of actions that each state depends on. If ``None``, then the dependencies are set so that each state only depends on action of the same index - - Returns - ---------- - B: ``obj_array`` of ``numpy.ndarray`` - A set of ``numpy.ndarray`` transition matrices stored in an ``obj_array`` + Creates a list of 1-D jax arrays filled with scale, with shapes given by shape_list[i] """ - if type(num_states) is int: - num_states = [num_states] - if type(num_controls) is int: - num_controls = [num_controls] - num_factors = len(num_states) + arr = [] + for shape in shape_list: + arr.append(scale * jnp.ones(shape)) - if B_factor_list is None: - B_factor_list = [[f] for f in range(num_factors)] - - if B_factor_control_list is None: - assert len(num_controls) == len(num_states) - B_factor_control_list = [[f] for f in range(num_factors)] - else: - unique_controls = list(set(sum(B_factor_control_list, []))) - assert unique_controls == list(range(len(num_controls))) + return arr - B = obj_array(num_factors) - for factor in range(num_factors): - lagging_shape = [ns for i, ns in enumerate(num_states) if i in B_factor_list[factor]] - control_shape = [na for i, na in enumerate(num_controls) if i in B_factor_control_list[factor]] - factor_shape = [num_states[factor]] + lagging_shape + control_shape - factor_dist = np.random.rand(*factor_shape) - B[factor] = norm_dist(factor_dist) - return B def get_combination_index(x, dims): """ @@ -178,470 +74,47 @@ def get_combination_index(x, dims): Parameters ---------- - x: ``numpy.ndarray`` or ``list`` of ``int`` - ``numpy.ndarray`` or ``list`` of ``int`` of categorical values to be converted into combination index + x: ``numpy.ndarray`` or ``jax.Array`` of shape `(batch_size, act_dims)` + ``numpy.ndarray`` or ``jax.Array`` of categorical values to be converted into combination index dims: ``list`` of ``int`` ``list`` of ``int`` of categorical dimensions used for conversion - + Returns ---------- - index: ``int`` - ``int`` index of the combination + index: ``np.ndarray`` or `jax.Array` of shape `(batch_size)` + ``np.ndarray`` or `jax.Array` index of the combination """ - assert len(x) == len(dims) + assert isinstance(x, jax.Array) or isinstance(x, np.ndarray) + assert x.shape[-1] == len(dims) + index = 0 product = 1 for i in reversed(range(len(dims))): - index += x[i] * product + index += x[..., i] * product product *= dims[i] return index + def index_to_combination(index, dims): """ Convert the combination index according to an array of categorical dimensions back to an array of categorical values Parameters ---------- - index: ``int`` - ``int`` index of the combination + index: ``np.ndarray`` or `jax.Array` of shape `(batch_size)` + ``np.ndarray`` or `jax.Array` index of the combination dims: ``list`` of ``int`` ``list`` of ``int`` of categorical dimensions used for conversion - + Returns ---------- - x: ``list`` of ``int`` - ```list`` of ``int`` of categorical values to be converted into combination index + x: ``numpy.ndarray`` or ``jax.Array`` of shape `(batch_size, act_dims)` + ``numpy.ndarray`` or ``jax.Array`` of categorical values to be converted into combination index """ x = [] for base in reversed(dims): x.append(index % base) - index //= base - return list(reversed(x)) - -def random_single_categorical(shape_list): - """ - Creates a random 1-D categorical distribution (or set of 1-D categoricals, e.g. multiple marginals of different factors) and returns them in an object array - """ - - num_sub_arrays = len(shape_list) - - out = obj_array(num_sub_arrays) - - for arr_idx, shape_i in enumerate(shape_list): - out[arr_idx] = norm_dist(np.random.rand(shape_i)) - - return out - -def construct_controllable_B(num_states, num_controls): - """ - Generates a fully controllable transition likelihood array, where each - action (control state) corresponds to a move to the n-th state from any - other state, for each control factor - """ - - num_factors = len(num_states) - - B = obj_array(num_factors) - for factor, c_dim in enumerate(num_controls): - tmp = np.eye(c_dim)[:, :, np.newaxis] - tmp = np.tile(tmp, (1, 1, c_dim)) - B[factor] = tmp.transpose(1, 2, 0) - - return B - -def dirichlet_like(template_categorical, scale = 1.0): - """ - Helper function to construct a Dirichlet distribution based on an existing Categorical distribution - """ - - if not is_obj_array(template_categorical): - warnings.warn( - "Input array is not an object array...\ - Casting the input to an object array" - ) - template_categorical = to_obj_array(template_categorical) - - n_sub_arrays = len(template_categorical) - - dirichlet_out = obj_array(n_sub_arrays) - - for i, arr in enumerate(template_categorical): - dirichlet_out[i] = scale * arr - - return dirichlet_out - -def get_model_dimensions(A=None, B=None, factorized=False): - - if A is None and B is None: - raise ValueError( - "Must provide either `A` or `B`" - ) - - if A is not None: - num_obs = [a.shape[0] for a in A] if is_obj_array(A) else [A.shape[0]] - num_modalities = len(num_obs) - else: - num_obs, num_modalities = None, None - - if B is not None: - num_states = [b.shape[0] for b in B] if is_obj_array(B) else [B.shape[0]] - num_factors = len(num_states) - else: - if A is not None: - if not factorized: - num_states = list(A[0].shape[1:]) if is_obj_array(A) else list(A.shape[1:]) - num_factors = len(num_states) - else: - raise ValueError( - "`A` array is factorized and cannot be used to infer `num_states`" - ) - else: - num_states, num_factors = None, None - - return num_obs, num_states, num_modalities, num_factors - -def get_model_dimensions_from_labels(model_labels): - - modalities = model_labels['observations'] - factors = model_labels['states'] - - res = Dimensions( - num_observations=[len(modalities[modality]) for modality in modalities.keys()], - num_observation_modalities=len(modalities.keys()), - num_states=[len(factors[factor]) for factor in factors.keys()], - num_state_factors=len(factors.keys()), - ) - - if 'actions' in model_labels.keys(): - controls = model_labels['actions'] - res.num_controls=[len(controls[cfac]) for cfac in controls.keys()] - res.num_control_factors=len(controls.keys()) - - return res - - - -def norm_dist(dist): - """ Normalizes a Categorical probability distribution (or set of them) assuming sufficient statistics are stored in leading dimension""" - return np.divide(dist, dist.sum(axis=0)) - -def norm_dist_obj_arr(obj_arr): - """ Normalizes a multi-factor or -modality collection of Categorical probability distributions, assuming sufficient statistics of each conditional distribution - are stored in the leading dimension""" - normed_obj_array = obj_array(len(obj_arr)) - for i, arr in enumerate(obj_arr): - normed_obj_array[i] = norm_dist(arr) - - return normed_obj_array - -def is_normalized(dist): - """ - Utility function for checking whether a single distribution or set of conditional categorical distributions is normalized. - Returns True if all distributions integrate to 1.0 - """ - - if is_obj_array(dist): - normed_arrays = [] - for i, arr in enumerate(dist): - column_sums = arr.sum(axis=0) - normed_arrays.append(np.allclose(column_sums, np.ones_like(column_sums))) - out = all(normed_arrays) - else: - column_sums = dist.sum(axis=0) - out = np.allclose(column_sums, np.ones_like(column_sums)) - - return out - -def is_obj_array(arr): - return arr.dtype == "object" - -def to_obj_array(arr): - if is_obj_array(arr): - return arr - obj_array_out = obj_array(1) - obj_array_out[0] = arr.squeeze() - return obj_array_out - -def obj_array_from_list(list_input): - """ - Takes a list of `numpy.ndarray` and converts them to a `numpy.ndarray` of `dtype = object` - """ - arr = obj_array(len(list_input)) - for i, item in enumerate(list_input): - arr[i] = item - return arr - -def process_observation_seq(obs_seq, n_modalities, n_observations): - """ - Helper function for formatting observations - - Observations can either be `int` (converted to one-hot) - or `tuple` (obs for each modality), or `list` (obs for each modality) - If list, the entries could be object arrays of one-hots, in which - case this function returns `obs_seq` as is. - """ - proc_obs_seq = obj_array(len(obs_seq)) - for t, obs_t in enumerate(obs_seq): - proc_obs_seq[t] = process_observation(obs_t, n_modalities, n_observations) - return proc_obs_seq - -def process_observation(obs, num_modalities, num_observations): - """ - Helper function for formatting observations - USAGE NOTES: - - If `obs` is a 1D numpy array, it must be a one-hot vector, where one entry (the entry of the observation) is 1.0 - and all other entries are 0. This therefore assumes it's a single modality observation. If these conditions are met, then - this function will return `obs` unchanged. Otherwise, it'll throw an error. - - If `obs` is an int, it assumes this is a single modality observation, whose observation index is given by the value of `obs`. This function will convert - it to be a one hot vector. - - If `obs` is a list, it assumes this is a multiple modality observation, whose len is equal to the number of observation modalities, - and where each entry `obs[m]` is the index of the observation, for that modality. This function will convert it into an object array - of one-hot vectors. - - If `obs` is a tuple, same logic as applies for list (see above). - - if `obs` is a numpy object array (array of arrays), this function will return `obs` unchanged. - """ - - if isinstance(obs, np.ndarray) and not is_obj_array(obs): - assert num_modalities == 1, "If `obs` is a 1D numpy array, `num_modalities` must be equal to 1" - assert len(np.where(obs)[0]) == 1, "If `obs` is a 1D numpy array, it must be a one hot vector (e.g. np.array([0.0, 1.0, 0.0, ....]))" - - if isinstance(obs, (int, np.integer)): - obs = onehot(obs, num_observations[0]) - - if isinstance(obs, tuple) or isinstance(obs,list): - obs_arr_arr = obj_array(num_modalities) - for m in range(num_modalities): - obs_arr_arr[m] = onehot(obs[m], num_observations[m]) - obs = obs_arr_arr - - return obs - -def convert_observation_array(obs, num_obs): - """ - Converts from SPM-style observation array to infer-actively one-hot object arrays. - - Parameters - ---------- - - 'obs' [numpy 2-D nd.array]: - SPM-style observation arrays are of shape (num_modalities, T), where each row - contains observation indices for a different modality, and columns indicate - different timepoints. Entries store the indices of the discrete observations - within each modality. - - - 'num_obs' [list]: - List of the dimensionalities of the observation modalities. `num_modalities` - is calculated as `len(num_obs)` in the function to determine whether we're - dealing with a single- or multi-modality - case. - - Returns - ---------- - - `obs_t`[list]: - A list with length equal to T, where each entry of the list is either a) an object - array (in the case of multiple modalities) where each sub-array is a one-hot vector - with the observation for the correspond modality, or b) a 1D numpy array (in the case - of one modality) that is a single one-hot vector encoding the observation for the - single modality. - """ - - T = obs.shape[1] - num_modalities = len(num_obs) - - # Initialise the output - obs_t = [] - # Case of one modality - if num_modalities == 1: - for t in range(T): - obs_t.append(onehot(obs[0, t] - 1, num_obs[0])) - else: - for t in range(T): - obs_AoA = obj_array(num_modalities) - for g in range(num_modalities): - # Subtract obs[g,t] by 1 to account for MATLAB vs. Python indexing - # (MATLAB is 1-indexed) - obs_AoA[g] = onehot(obs[g, t] - 1, num_obs[g]) - obs_t.append(obs_AoA) - - return obs_t - -def insert_multiple(s, indices, items): - for idx in range(len(items)): - s.insert(indices[idx], items[idx]) - return s - -def reduce_a_matrix(A): - """ - Utility function for throwing away dimensions (lagging dimensions, hidden state factors) - of a particular A matrix that are independent of the observation. - Parameters: - ========== - - `A` [np.ndarray]: - The A matrix or likelihood array that encodes probabilistic relationship - of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) - and observations (leading dimension, rows). - Returns: - ========= - - `A_reduced` [np.ndarray]: - The reduced A matrix, missing the lagging dimensions that correspond to hidden state factors - that are statistically independent of observations - - `original_factor_idx` [list]: - List of the indices (in terms of the original dimensionality) of the hidden state factors - that are maintained in the A matrix (and thus have an informative / non-degenerate relationship to observations - """ - - o_dim, num_states = A.shape[0], A.shape[1:] - idx_vec_s = [slice(0, o_dim)] + [slice(ns) for _, ns in enumerate(num_states)] - - original_factor_idx = [] - excluded_factor_idx = [] # the indices of the hidden state factors that are independent of the observation and thus marginalized away - for factor_i, ns in enumerate(num_states): - - level_counter = 0 - break_flag = False - while level_counter < ns and break_flag is False: - idx_vec_i = idx_vec_s.copy() - idx_vec_i[factor_i+1] = slice(level_counter,level_counter+1,None) - if not np.isclose(A.mean(axis=factor_i+1), A[tuple(idx_vec_i)].squeeze()).all(): - break_flag = True # this means they're not independent - original_factor_idx.append(factor_i) - else: - level_counter += 1 - - if break_flag is False: - excluded_factor_idx.append(factor_i+1) - - A_reduced = A.mean(axis=tuple(excluded_factor_idx)).squeeze() - - return A_reduced, original_factor_idx - -def construct_full_a(A_reduced, original_factor_idx, num_states): - """ - Utility function for reconstruction a full A matrix from a reduced A matrix, using known factor indices - to tile out the reduced A matrix along the 'non-informative' dimensions - Parameters: - ========== - - `A_reduced` [np.ndarray]: - The reduced A matrix or likelihood array that encodes probabilistic relationship - of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) - and observations (leading dimension, rows). - - `original_factor_idx` [list]: - List of hidden state indices in terms of the full hidden state factor list, that comprise - the lagging dimensions of `A_reduced` - - `num_states` [list]: - The list of all the dimensionalities of hidden state factors in the full generative model. - `A_reduced.shape[1:]` should be equal to `num_states[original_factor_idx]` - Returns: - ========= - - `A` [np.ndarray]: - The full A matrix, containing all the lagging dimensions that correspond to hidden state factors, including - those that are statistically independent of observations - - @ NOTE: This is the "inverse" of the reduce_a_matrix function, - i.e. `reduce_a_matrix(construct_full_a(A_reduced, original_factor_idx, num_states)) == A_reduced, original_factor_idx` - """ - - o_dim = A_reduced.shape[0] # dimensionality of the support of the likelihood distribution (i.e. the number of observation levels) - full_dimensionality = [o_dim] + num_states # full dimensionality of the output (`A`) - fill_indices = [0] + [f+1 for f in original_factor_idx] # these are the indices of the dimensions we need to fill for this modality - fill_dimensions = np.delete(full_dimensionality, fill_indices) - - original_factor_dims = [num_states[f] for f in original_factor_idx] # dimensionalities of the relevant factors - prefilled_slices = [slice(0, o_dim)] + [slice(0, ns) for ns in original_factor_dims] # these are the slices that are filled out by the provided `A_reduced` - - A = np.zeros(full_dimensionality) - - for item in itertools.product(*[list(range(d)) for d in fill_dimensions]): - slice_ = list(item) - A_indices = insert_multiple(slice_, fill_indices, prefilled_slices) #here we insert the correct values for the fill indices for this slice - A[tuple(A_indices)] = A_reduced - - return A - -# def build_belief_array(qx): - -# """ -# This function constructs array-ified (not nested) versions -# of the posterior belief arrays, that are separated -# by policy, timepoint, and hidden state factor -# """ - -# num_policies = len(qx) -# num_timesteps = len(qx[0]) -# num_factors = len(qx[0][0]) - -# if num_factors > 1: -# belief_array = obj_array(num_factors) -# for factor in range(num_factors): -# belief_array[factor] = np.zeros( (num_policies, qx[0][0][factor].shape[0], num_timesteps) ) -# for policy_i in range(num_policies): -# for timestep in range(num_timesteps): -# for factor in range(num_factors): -# belief_array[factor][policy_i, :, timestep] = qx[policy_i][timestep][factor] -# else: -# num_states = qx[0][0][0].shape[0] -# belief_array = np.zeros( (num_policies, num_states, num_timesteps) ) -# for policy_i in range(num_policies): -# for timestep in range(num_timesteps): -# belief_array[policy_i, :, timestep] = qx[policy_i][timestep][0] - -# return belief_array - -def build_xn_vn_array(xn): - - """ - This function constructs array-ified (not nested) versions - of the posterior xn (beliefs) or vn (prediction error) arrays, that are separated - by iteration, hidden state factor, timepoint, and policy - """ - - num_policies = len(xn) - num_itr = len(xn[0]) - num_factors = len(xn[0][0]) - - if num_factors > 1: - xn_array = obj_array(num_factors) - for factor in range(num_factors): - num_states, infer_len = xn[0][0][factor].shape - xn_array[factor] = np.zeros( (num_itr, num_states, infer_len, num_policies) ) - for policy_i in range(num_policies): - for itr in range(num_itr): - for factor in range(num_factors): - xn_array[factor][itr,:,:,policy_i] = xn[policy_i][itr][factor] - else: - num_states, infer_len = xn[0][0][0].shape - xn_array = np.zeros( (num_itr, num_states, infer_len, num_policies) ) - for policy_i in range(num_policies): - for itr in range(num_itr): - xn_array[itr,:,:,policy_i] = xn[policy_i][itr][0] - - return xn_array - -def plot_beliefs(belief_dist, title=""): - """ - Utility function that plots a bar chart of a categorical probability distribution, - with each bar height corresponding to the probability of one of the elements of the categorical - probability vector. - """ - - plt.grid(zorder=0) - plt.bar(range(belief_dist.shape[0]), belief_dist, color='r', zorder=3) - plt.xticks(range(belief_dist.shape[0])) - plt.title(title) - plt.show() - -def plot_likelihood(A, title=""): - """ - Utility function that shows a heatmap of a 2-D likelihood (hidden causes in the columns, observations in the rows), - with hotter colors indicating higher probability. - """ - - ax = sns.heatmap(A, cmap="OrRd", linewidth=2.5) - plt.xticks(range(A.shape[1]+1)) - plt.yticks(range(A.shape[0]+1)) - plt.title(title) - plt.show() - - - - + index = index // base + x = np.flip(np.stack(x, axis=-1), axis=-1) + return x \ No newline at end of file diff --git a/test/test_SPM_validation.py b/test/test_SPM_validation.py index ee386378..17308f22 100644 --- a/test/test_SPM_validation.py +++ b/test/test_SPM_validation.py @@ -4,9 +4,9 @@ import numpy as np from scipy.io import loadmat -from pymdp.agent import Agent -from pymdp.utils import to_obj_array, build_xn_vn_array, get_model_dimensions, convert_observation_array -from pymdp.maths import dirichlet_log_evidence +from pymdp.legacy.agent import Agent +from pymdp.legacy.utils import to_obj_array, build_xn_vn_array, get_model_dimensions, convert_observation_array +from pymdp.legacy.maths import dirichlet_log_evidence DATA_PATH = "test/matlab_crossval/output/" diff --git a/test/test_agent.py b/test/test_agent.py index 161bca56..64e3086c 100644 --- a/test/test_agent.py +++ b/test/test_agent.py @@ -13,10 +13,10 @@ import numpy as np from copy import deepcopy -from pymdp.agent import Agent -from pymdp import utils, maths -from pymdp import inference, control, learning -from pymdp.default_models import generate_grid_world_transitions +from pymdp.legacy.agent import Agent +from pymdp.legacy import utils, maths +from pymdp.legacy import inference, control, learning +from pymdp.legacy.default_models import generate_grid_world_transitions class TestAgent(unittest.TestCase): diff --git a/test/test_agent_jax.py b/test/test_agent_jax.py index 4f2d3c12..53a77d02 100644 --- a/test/test_agent_jax.py +++ b/test/test_agent_jax.py @@ -13,10 +13,10 @@ from jax import vmap, nn, random import jax.tree_util as jtu -from pymdp import utils -from pymdp.jax.agent import Agent -from pymdp.jax.maths import compute_log_likelihood_single_modality -from pymdp.jax.utils import norm_dist +from pymdp.legacy import utils +from pymdp.agent import Agent +from pymdp.maths import compute_log_likelihood_single_modality +from pymdp.utils import norm_dist from equinox import Module from typing import Any, List diff --git a/test/test_control.py b/test/test_control.py index 14b09938..eff71875 100644 --- a/test/test_control.py +++ b/test/test_control.py @@ -10,8 +10,8 @@ import numpy as np -from pymdp import utils, maths -from pymdp import control +from pymdp.legacy import utils, maths +from pymdp.legacy import control class TestControl(unittest.TestCase): diff --git a/test/test_control_jax.py b/test/test_control_jax.py index 75de6912..052c568b 100644 --- a/test/test_control_jax.py +++ b/test/test_control_jax.py @@ -14,11 +14,10 @@ import jax.random as jr import jax.tree_util as jtu -import pymdp.jax.control as ctl_jax -import pymdp.control as ctl_np +import pymdp.control as ctl_jax +import pymdp.legacy.control as ctl_np -from pymdp.jax.maths import factor_dot -from pymdp import utils +from pymdp.legacy import utils cfg = {"source_key": 0, "num_models": 4} diff --git a/test/test_demos.py b/test/test_demos.py index d29d3eb4..8e4b9b61 100644 --- a/test/test_demos.py +++ b/test/test_demos.py @@ -4,11 +4,12 @@ import seaborn as sns import matplotlib.pyplot as plt -from pymdp.agent import Agent -from pymdp.utils import plot_beliefs, plot_likelihood -from pymdp import utils, maths, default_models -from pymdp import control -from pymdp.envs import TMazeEnv, TMazeEnvNullOutcome +from pymdp.legacy.agent import Agent +from pymdp.legacy import utils, maths, default_models +from pymdp.legacy import control +from pymdp.legacy.envs import TMazeEnv, TMazeEnvNullOutcome +from pymdp.legacy.maths import spm_log_single as log_stable + from copy import deepcopy class TestDemos(unittest.TestCase): @@ -258,7 +259,6 @@ def test_gridworld_activeinference(self): This unit test runs the a concise version of the code in the `gridworld_tutorial_1.ipynb` tutorial notebook to make sure it works if things are changed """ - from pymdp.maths import spm_log_single as log_stable # @NOTE: we use the `spm_log_single` helper function from the `maths` sub-library of pymdp. This is a numerically stable version of np.log() state_mapping = {0: (0,0), 1: (1,0), 2: (2,0), 3: (0,1), 4: (1,1), 5:(2,1), 6: (0,2), 7:(1,2), 8:(2,2)} diff --git a/test/test_distribution.py b/test/test_distribution.py index fe5801bd..ef8b44bc 100644 --- a/test/test_distribution.py +++ b/test/test_distribution.py @@ -1,8 +1,6 @@ import unittest -from pymdp.jax import distribution +from pymdp import distribution import numpy as np - - class TestDists(unittest.TestCase): def test_distribution_slice(self): diff --git a/test/test_fpi.py b/test/test_fpi.py index d60f944e..68ae1eea 100644 --- a/test/test_fpi.py +++ b/test/test_fpi.py @@ -10,8 +10,8 @@ import numpy as np -from pymdp import utils, maths -from pymdp.algos import run_vanilla_fpi, run_vanilla_fpi_factorized +from pymdp.legacy import utils, maths +from pymdp.legacy.algos import run_vanilla_fpi, run_vanilla_fpi_factorized class TestFPI(unittest.TestCase): diff --git a/test/test_inference.py b/test/test_inference.py index 6528ab6d..91ff6d9f 100644 --- a/test/test_inference.py +++ b/test/test_inference.py @@ -10,8 +10,8 @@ import numpy as np -from pymdp import utils, maths -from pymdp import inference +from pymdp.legacy import utils, maths +from pymdp.legacy import inference class TestInference(unittest.TestCase): diff --git a/test/test_inference_jax.py b/test/test_inference_jax.py index e426c870..f1b20c5f 100644 --- a/test/test_inference_jax.py +++ b/test/test_inference_jax.py @@ -11,9 +11,9 @@ import numpy as np import jax.numpy as jnp -from pymdp.jax.algos import run_vanilla_fpi as fpi_jax -from pymdp.algos import run_vanilla_fpi as fpi_numpy -from pymdp import utils, maths +from pymdp.algos import run_vanilla_fpi as fpi_jax +from pymdp.legacy.algos import run_vanilla_fpi as fpi_numpy +from pymdp.legacy import utils, maths class TestInferenceJax(unittest.TestCase): diff --git a/test/test_jax_sparse_backend.py b/test/test_jax_sparse_backend.py index b71260cd..46da88b8 100644 --- a/test/test_jax_sparse_backend.py +++ b/test/test_jax_sparse_backend.py @@ -17,15 +17,14 @@ from jax import vmap, nn from jax import random as jr -from pymdp.jax.inference import smoothing_ovf -from pymdp import utils, maths -from pymdp.control import construct_policies +from pymdp.inference import smoothing_ovf +from pymdp.legacy import utils, maths +from pymdp.legacy.control import construct_policies from jax.experimental import sparse from typing import Any, List, Dict - def make_model_configs(source_seed=0, num_models=4) -> Dict: """ This creates a bunch of model configurations (random amounts of num states, num obs, num controls, etc.) diff --git a/test/test_learning.py b/test/test_learning.py index c839704c..91fd0af9 100644 --- a/test/test_learning.py +++ b/test/test_learning.py @@ -1,7 +1,7 @@ import unittest import numpy as np -from pymdp import utils, maths, learning +from pymdp.legacy import utils, maths, learning from copy import deepcopy diff --git a/test/test_learning_jax.py b/test/test_learning_jax.py index 99a33ce5..8f855b49 100644 --- a/test/test_learning_jax.py +++ b/test/test_learning_jax.py @@ -12,16 +12,16 @@ import jax.tree_util as jtu from jax import nn -from pymdp.learning import update_obs_likelihood_dirichlet as update_pA_numpy -from pymdp.learning import update_obs_likelihood_dirichlet_factorized as update_pA_numpy_factorized -from pymdp.jax.learning import update_obs_likelihood_dirichlet as update_pA_jax -from pymdp import utils +from pymdp.legacy.learning import update_obs_likelihood_dirichlet as update_pA_numpy +from pymdp.legacy.learning import update_obs_likelihood_dirichlet_factorized as update_pA_numpy_factorized +from pymdp.learning import update_obs_likelihood_dirichlet as update_pA_jax +from pymdp.legacy import utils -from pymdp.learning import update_state_likelihood_dirichlet as update_pB_numpy -from pymdp.learning import update_state_likelihood_dirichlet_interactions as update_pB_interactions_numpy +from pymdp.legacy.learning import update_state_likelihood_dirichlet as update_pB_numpy +from pymdp.legacy.learning import update_state_likelihood_dirichlet_interactions as update_pB_interactions_numpy -from pymdp.jax.learning import update_obs_likelihood_dirichlet as update_pA_jax -from pymdp.jax.learning import update_state_transition_dirichlet as update_pB_jax +from pymdp.learning import update_obs_likelihood_dirichlet as update_pA_jax +from pymdp.learning import update_state_transition_dirichlet as update_pB_jax class TestLearningJax(unittest.TestCase): diff --git a/test/test_message_passing_jax.py b/test/test_message_passing_jax.py index 4a86a67c..b604750d 100644 --- a/test/test_message_passing_jax.py +++ b/test/test_message_passing_jax.py @@ -15,18 +15,17 @@ from jax import vmap, nn from jax import random as jr -from pymdp.jax.algos import run_vanilla_fpi as fpi_jax -from pymdp.jax.algos import run_factorized_fpi as fpi_jax_factorized -from pymdp.jax.algos import update_variational_filtering as ovf_jax -from pymdp.algos import run_vanilla_fpi as fpi_numpy -from pymdp.algos import run_mmp as mmp_numpy -from pymdp.jax.algos import run_mmp as mmp_jax -from pymdp.jax.algos import run_vmp as vmp_jax -from pymdp import utils, maths +from pymdp.algos import run_vanilla_fpi as fpi_jax +from pymdp.algos import run_factorized_fpi as fpi_jax_factorized +from pymdp.algos import update_variational_filtering as ovf_jax +from pymdp.legacy.algos import run_vanilla_fpi as fpi_numpy +from pymdp.legacy.algos import run_mmp as mmp_numpy +from pymdp.algos import run_mmp as mmp_jax +from pymdp.algos import run_vmp as vmp_jax +from pymdp.legacy import utils, maths from typing import Any, List, Dict - def make_model_configs(source_seed=0, num_models=4) -> Dict: rng_keys = jr.split(jr.PRNGKey(source_seed), num_models) num_factors_list = [ jr.randint(key, (1,), 1, 7)[0].item() for key in rng_keys ] # list of total numbers of hidden state factors per model diff --git a/test/test_mmp.py b/test/test_mmp.py index 61ad575c..ecdba18b 100644 --- a/test/test_mmp.py +++ b/test/test_mmp.py @@ -13,9 +13,9 @@ import numpy as np from scipy.io import loadmat -from pymdp.utils import get_model_dimensions, convert_observation_array -from pymdp.algos import run_mmp -from pymdp.maths import get_joint_likelihood_seq +from pymdp.legacy.utils import get_model_dimensions, convert_observation_array +from pymdp.legacy.algos import run_mmp +from pymdp.legacy.maths import get_joint_likelihood_seq DATA_PATH = "test/matlab_crossval/output/" diff --git a/test/test_utils.py b/test/test_utils.py index a79b39f4..cfc0903a 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -11,8 +11,8 @@ import itertools import numpy as np -from pymdp import utils -from pymdp.jax import utils as jax_utils +from pymdp.legacy import utils +from pymdp import utils as jax_utils class TestUtils(unittest.TestCase): def test_obj_array_from_list(self): diff --git a/test/test_wrappers.py b/test/test_wrappers.py index cf405e56..f43d2e8a 100644 --- a/test/test_wrappers.py +++ b/test/test_wrappers.py @@ -1,7 +1,7 @@ import os import unittest from pathlib import Path -from pymdp.utils import Dimensions, get_model_dimensions_from_labels +from pymdp.legacy.utils import Dimensions, get_model_dimensions_from_labels class TestWrappers(unittest.TestCase): From cc483662497a58e9b0c24c33e15166852c495532 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Tue, 24 Sep 2024 12:33:43 +0200 Subject: [PATCH 175/196] fix refactored packages --- pyproject.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index be6008e7..6f354e5f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,10 +49,10 @@ Repository = "https://github.com/infer-actively/pymdp" packages = [ 'pymdp', 'pymdp.envs', - 'pymdp.algos', - 'pymdp.jax', - 'pymdp.jax.envs', - 'pymdp.jax.planning', + 'pymdp.planning', + 'pymdp.legacy', + 'pymdp.legacy.algos', + 'pymdp.legacy.envs', ] [tool.black] From d235ca63814ebc2791b2f5cfb7f270b8449bced0 Mon Sep 17 00:00:00 2001 From: conorheins Date: Tue, 24 Sep 2024 12:48:12 +0200 Subject: [PATCH 176/196] removed `field(static=True)` option for `policies` matrix in `Agent` --- pymdp/agent.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pymdp/agent.py b/pymdp/agent.py index 0290938f..7def788c 100644 --- a/pymdp/agent.py +++ b/pymdp/agent.py @@ -46,6 +46,9 @@ class Agent(Module): gamma: Array alpha: Array + # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) + policies: Array + # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) inductive_threshold: Array # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) @@ -74,8 +77,6 @@ class Agent(Module): policy_len: int = field(static=True) # depth of inductive inference (i.e. number of future timesteps to use when computing inductive `I` matrix) inductive_depth: int = field(static=True) - # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) - policies: Array = field(static=True) # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy use_utility: bool = field(static=True) # flag for whether to use state information gain ("salience") when computing expected free energy From b8829274ed5757ef2785d6d080a6aba8967ff334 Mon Sep 17 00:00:00 2001 From: conorheins Date: Tue, 24 Sep 2024 12:58:17 +0200 Subject: [PATCH 177/196] reimplementation of missing line when checking `pA` in self.validate() method of `Agent`, from commit 1958e4d --- pymdp/agent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pymdp/agent.py b/pymdp/agent.py index 7def788c..f09b559a 100644 --- a/pymdp/agent.py +++ b/pymdp/agent.py @@ -648,7 +648,7 @@ def _validate(self): ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." if self.pA != None: assert ( - self.pA[m].shape[2:] == factor_dims + self.pA[m].shape[2:] == factor_dims if self.pA[m] is not None else True, ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of pA[{m}]..." assert max(self.A_dependencies[m]) <= ( self.num_factors - 1 From fd448043700e1500d3f5113200eba13e4e436122 Mon Sep 17 00:00:00 2001 From: conorheins Date: Tue, 24 Sep 2024 21:30:12 +0200 Subject: [PATCH 178/196] update to `pymdp.Agent`: - in case inductive matrix `I` is not present,do not update it when updating transition parameters. This avoids an error in `tree_at` for updating None-valued leaves (`self.I` will be None in case `self.use_inductive = False`) --- pymdp/agent.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pymdp/agent.py b/pymdp/agent.py index f09b559a..254c82c6 100644 --- a/pymdp/agent.py +++ b/pymdp/agent.py @@ -351,10 +351,9 @@ def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1 # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece if self.use_inductive and self.H is not None: I_updated = vmap(control.generate_I_matrix)(self.H, E_qB, self.inductive_threshold, self.inductive_depth) + agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) else: - I_updated = self.I - - agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) + agent = tree_at(lambda x: (x.B, x.pB), agent, (E_qB, qB)) return agent From 03991da9080962f4045bf8d73a1f52bfc7f7d2b7 Mon Sep 17 00:00:00 2001 From: conorheins Date: Mon, 30 Sep 2024 18:31:55 +0200 Subject: [PATCH 179/196] changed github workflow configuration .yml to no longer test on Python 3.10 and to not assume a requirements.txt file. Authored by @tverbele --- .github/workflows/python-package.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 744e9d54..184fe37b 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.10", "3.11", "3.12"] + python-version: ["3.11", "3.12"] steps: - uses: actions/checkout@v2 @@ -27,11 +27,11 @@ jobs: run: | python -m pip install --upgrade pip python -m pip install flake8 pytest - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + python -m pip install -e . - name: Lint with flake8 run: | # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest run: | - pytest test + pytest test \ No newline at end of file From da3716c49734ab42578336ed023bd81397e87304 Mon Sep 17 00:00:00 2001 From: conorheins Date: Wed, 2 Oct 2024 12:06:00 +0200 Subject: [PATCH 180/196] - renamed `PyMDPEnv` to `Env` throughout the repo - started version of `T-Maze` environment in new jax `Env` class Co-authored-by: Tim Verbelen --- pymdp/envs/__init__.py | 2 +- pymdp/envs/env.py | 16 ++++- pymdp/envs/rollout.py | 8 +-- pymdp/envs/tmaze.py | 135 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 154 insertions(+), 7 deletions(-) create mode 100644 pymdp/envs/tmaze.py diff --git a/pymdp/envs/__init__.py b/pymdp/envs/__init__.py index afac7577..b02c781d 100644 --- a/pymdp/envs/__init__.py +++ b/pymdp/envs/__init__.py @@ -1,2 +1,2 @@ -from .env import PyMDPEnv from .graph_worlds import GraphEnv +from .tmaze import TMaze diff --git a/pymdp/envs/env.py b/pymdp/envs/env.py index 81c3a062..a23d241a 100644 --- a/pymdp/envs/env.py +++ b/pymdp/envs/env.py @@ -24,7 +24,7 @@ def cat_sample(key, p): return jr.choice(key, a, p=p) -class PyMDPEnv(Module): +class Env(Module): params: Dict state: List[Array] dependencies: Dict = field(static=True) @@ -46,7 +46,19 @@ def reset(self, key: Optional[PRNGKeyArray] = None): keys = list(jr.split(key, len(probs))) state = jtu.tree_map(cat_sample, keys, probs) - return tree_at(lambda x: x.state, self, state) + return tree_at(lambda x: x.state, self, state) # TODO: change this to return an observation + + def render(self, mode="human"): + """ + + Returns + ---- + if mode == "human": + returns None, renders the environment using MPL inside the function + elif mode == "rgb_array": + A (H, W, 3) uint8 jax.numpy array, with values between 0 and 255 + """ + pass @vmap def step(self, rng_key: PRNGKeyArray, actions: Optional[Array] = None): diff --git a/pymdp/envs/rollout.py b/pymdp/envs/rollout.py index 3eb394c9..342f352b 100644 --- a/pymdp/envs/rollout.py +++ b/pymdp/envs/rollout.py @@ -4,10 +4,10 @@ import jax.lax from pymdp.jax.agent import Agent -from pymdp.jax.envs.env import PyMDPEnv +from pymdp.jax.envs.env import Env -def rollout(agent: Agent, env: PyMDPEnv, num_timesteps: int, rng_key: jr.PRNGKey, policy_search=None): +def rollout(agent: Agent, env: Env, num_timesteps: int, rng_key: jr.PRNGKey, policy_search=None): """ Rollout an agent in an environment for a number of timesteps. @@ -15,7 +15,7 @@ def rollout(agent: Agent, env: PyMDPEnv, num_timesteps: int, rng_key: jr.PRNGKey ---------- agent: ``Agent`` Agent to interact with the environment - env: ``PyMDPEnv` + env: ``Env` Environment to interact with num_timesteps: ``int`` Number of timesteps to rollout for @@ -32,7 +32,7 @@ def rollout(agent: Agent, env: PyMDPEnv, num_timesteps: int, rng_key: jr.PRNGKey Carry dictionary from the last timestep info: ``dict`` Dictionary containing information about the rollout, i.e. executed actions, observations, beliefs, etc. - env: ``PyMDPEnv`` + env: ``Env`` Environment state after the rollout """ # get the batch_size of the agent diff --git a/pymdp/envs/tmaze.py b/pymdp/envs/tmaze.py new file mode 100644 index 00000000..50f4f07d --- /dev/null +++ b/pymdp/envs/tmaze.py @@ -0,0 +1,135 @@ +import jax.numpy as jnp +from equinox import field + +from pympd.envs.env import Env + + +class TMaze(Env): + """ + Implementation of the 3-arm T-Maze environment. + """ + reward_probability: float = field(static=True) + + def __init__(self, batch_size=1, reward_probability=0.98, reward_condition=None): + self.reward_probability = reward_probability + + A, A_dependencies = self.generate_A() + A = [jnp.broadcast_to(a, (batch_size,) + a.shape) for a in A] + B, B_dependencies = self.generate_B() + B = [jnp.broadcast_to(b, (batch_size,) + b.shape) for b in B] + D = self.generate_D(reward_condition) + + params = { + "A": A, + "B": B, + "D": D, + } + + dependencies = { + "A": A_dependencies, + "B": B_dependencies, + } + + super().__init__(params, dependencies) + + + def generate_A(self): + """ + T-maze has 3 observation modalities: location, reward and cue, + and 2 state factors: agent location [center, left, right, cue] and reward location [left, right] + """ + A = [] + A.append(jnp.eye(4)) + A.append(jnp.zeros([2, 4, 2])) + A.append(jnp.zeros([2, 4, 2])) + + A_dependencies = [[0], [0, 1], [0, 1]] + + # 4 locations : [center, left, right, cue] + for loc in range(4): + # 2 reward conditions: [left, right] + for reward_condition in range(2): + # start location + if loc == 0: + # When in the centre location, reward observation is always 'no reward' + # or the outcome with index 0 + A[1] = A[1].at[0, loc, reward_condition].set(1.0) + + # When in the centre location, cue is totally ambiguous with respect to the reward condition + A[2] = A[2].at[:, loc, reward_condition].set(0.5) + + # The case when loc == 3, or the cue location ('bottom arm') + elif loc == 3: + + # When in the cue location, reward observation is always 'no reward' + # or the outcome with index 0 + A[1] = A[1].at[0, loc, reward_condition].set(1.0) + + # When in the cue location, the cue indicates the reward condition umambiguously + # signals where the reward is located + A[2] = A[2].at[reward_condition, loc, reward_condition].set(1.0) + + # The case when the agent is in one of the (potentially) rewarding arms + else: + + # When location is consistent with reward condition + if loc == (reward_condition + 1): + # Means highest probability is concentrated over reward outcome + high_prob_idx = 1 + # Lower probability on loss outcome + low_prob_idx = 2 + else: + # Means highest probability is concentrated over loss outcome + high_prob_idx = 2 + # Lower probability on reward outcome + low_prob_idx = 1 + + A[1] = A[1].at[high_prob_idx, loc, reward_condition].set(self.reward_probility) + A[1] = A[1].at[low_prob_idx, loc, reward_condition].set(1 - self.reward_probability) + + # Cue is ambiguous when in the reward location + A[2] = A[2].at[:, loc, reward_condition].set(0.5) + + return A, A_dependencies + + + def generate_B(self): + """ + T-maze has 2 state factors: + agent location [center, left, right, cue] and reward location [left, right] + agent can move between locations by teleporting, reward location stays fixed + """ + B = [] + + # agent can teleport to any location + B_loc = jnp.eye(4) + B_loc = B_loc.reshape(4, 4, 1) + B_loc = jnp.tile(B_loc, (1, 1, 4)) + B_loc = B_loc.transpose(1, 2, 0) + B.append(B_loc) + + # reward condition stays fixed + B_reward = jnp.eye(2).reshape(2, 2, 1) + B.append(B_reward) + + B_dependencies = [[0], [1]] + + return B, B_dependencies + + def generate_D(self, reward_condition=None): + """ + Agent starts at center + Reward condition can be set or randomly sampled + """ + D = [] + D_loc = jnp.zeros([4]) + D_loc = D_loc.at[0].set(1.0) + D.append(D_loc) + + if reward_condition is None: + D_reward = jnp.ones(2) * 0.5 + else: + D_reward = jnp.zeros(2) + D_reward = D_reward.at[reward_condition].set(1.0) + D.append(D_reward) + return D \ No newline at end of file From 2d9e7551287749ec7d6890b245d4f4a249e7a196 Mon Sep 17 00:00:00 2001 From: conorheins Date: Wed, 2 Oct 2024 12:07:28 +0200 Subject: [PATCH 181/196] renamed `PyMDPEnv` to `Env` in `learning_gridworld.ipynb` notebook --- examples/learning/learning_gridworld.ipynb | 231 ++------------------- 1 file changed, 23 insertions(+), 208 deletions(-) diff --git a/examples/learning/learning_gridworld.ipynb b/examples/learning/learning_gridworld.ipynb index 2c2a964d..ab3d2ec3 100644 --- a/examples/learning/learning_gridworld.ipynb +++ b/examples/learning/learning_gridworld.ipynb @@ -20,7 +20,7 @@ "import numpy as np\n", "\n", "from pymdp.envs import GridWorldEnv\n", - "from pymdp.jax.task import PyMDPEnv\n", + "from pymdp.jax.task import Env\n", "from pymdp.jax.agent import Agent as AIFAgent\n", "\n", "import matplotlib.pyplot as plt\n", @@ -38,17 +38,9 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-07-03 19:51:39.344953: W external/xla/xla/service/gpu/nvptx_compiler.cc:760] The NVIDIA driver's CUDA version is 12.4 which is older than the ptxas CUDA version (12.5.40). Because the driver is older than the ptxas version, XLA is disabling parallel compilation, which may slow down compilation. You should update your NVIDIA driver or use the NVIDIA-provided CUDA forward compatibility packages.\n" - ] - } - ], + "outputs": [], "source": [ "num_rows, num_columns = 7, 7\n", "num_states = [num_rows * num_columns] # number of states equals the number of grid locations\n", @@ -94,7 +86,7 @@ " 'B': [[0]]\n", "}\n", "\n", - "grid_world = PyMDPEnv(params, dependencies=dependencies)" + "grid_world = Env(params, dependencies=dependencies)" ] }, { @@ -123,7 +115,7 @@ " ----------\n", " agent: ``Agent``\n", " Agent to interact with the environment\n", - " env: ``PyMDPEnv`\n", + " env: ``Env`\n", " Environment to interact with\n", " num_timesteps: ``int``\n", " Number of timesteps to rollout for\n", @@ -136,7 +128,7 @@ " Carry dictionary from the last timestep\n", " info: ``dict``\n", " Dictionary containing information about the rollout, i.e. executed actions, observations, beliefs, etc.\n", - " env: ``PyMDPEnv``\n", + " env: ``Env``\n", " Environment state after the rollout\n", " \"\"\"\n", " # get the batch_size of the agent\n", @@ -295,20 +287,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Sby+DXx3qp2iqOheDqIAV4vhVHz6Ki5Vy+TZsY2UR8aIXHeX8a2kLDEXQgghhBDiYPL973+fOXPmYFkWixYt4sEHH3zZtjfddBOnnXYa+XyefD7PkiVLdmkfRRFXXnklvb29xONxlixZwrp161raFAoFPvzhD5PJZMjlclxwwQXUaq2rc5944glOO+00LMuiv7+fa665Zpd4br/9dhYsWIBlWSxcuJC77757r8eydu1azjjjDLq7u7Esi8MOO4wrrrgCz9u3E5H6Ph39T9iTZO/ee+/d5dj73/9+3v/+9++DiPYvbUmTWYfNZ/3wKPVEmkRzmMi2MJ0Srt411S4Z9VKNxtEjHb+pkHeSxBybqh7x6PYB3jajF/Ml77wbsdYl5jtmvoUQQgghhBBAGEJz11Wjr6t4G6h7Nk962223sWLFCm644QYWLVrEddddx9KlS1m7di1dXV27tL/33nv54Ac/yKmnnoplWXzzm9/kne98J08//TQzZswA4JprruF73/seP/3pT5k7dy5f+tKXWLp0Kc888wyWZQHw4Q9/mKGhIe655x48z+NjH/sYn/rUp7jlllsAqFQqvPOd72TJkiXccMMNPPnkk3z84x8nl8vxqU99CoA//vGPfPCDH+Tqq6/mPe95D7fccgvLli3jkUcemZpc3RuxGIbBeeedxwknnEAul+Pxxx/nk5/8JGEY8o1vfOPP+Id6ZUp0iE1zVioVstks5XJ5vy+qFoYRj20b51d33U5muETf0Ebc8SyBMpNi57Etbcf1Z0joNooWkci5JGZabO1I0V30eeeCRcw+6QSUl/wHWy3YNKsuVsog0x5/PW9NCCGEEEKI/Y5t22zatIm5c+diBTX41rzpDehzGyDZsUdNFy1axMknn8z1118PTG7J3N/fz0UXXcTll1/+J/sHQUA+n+f666/nvPPOI4oi+vr6+MxnPsNnP/tZAMrlMt3d3dx888184AMf4Nlnn+Xoo4/moYce4qSTTgJg5cqVvPvd72bbtm309fXxwx/+kL/7u79jeHgY0zQBuPzyy7njjjt47rnnADj33HOp1+vceeedU/GccsopHHfccdxwww17LZbdWbFiBQ899BD/+7//u9vzLd+JF5L7HfY0t9wvqpeL3VNVha50klxfL/VkDFdNopgVTHsMzW7dDizp9xJGHp6q4FUiMnUNU9GpKzbP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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(1, 1, figsize=(10, 5), sharex=True, sharey=True)\n", "for i in range(len(agents)):\n", @@ -323,20 +304,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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5557Tt/85jdb9w0CaLP86JtE4wDkBhoHwCovfeNzKoCgsXYNxz1UAHzhZeY2HA4rHA479rndrvrZZ5+publZ3bt3d+zv3r273n33XddzX3bZZfrss890zjnnKBqN6l//+pd+/OMf62c/+1nS4wOAf+dH3yQaByA30DgAVnn918V8TgUQJNau4YKxXDiAwNkfzU96q6ysVHFxsWOrrKxMyzjWrFmj22+/Xffdd582btyo//3f/9Wzzz7LI+sApCxX+ibROADpR+MAWOWlb3xOBRA0udI3KT2N406LgItfePv+7S8lHHN1r3MyNRwgJhJN/naziooKlZeXO/a5ze527dpV+fn52rlzp2P/zp071aNHD9dzz507V5dffrl++MMfSpJOP/10NTY26kc/+pF+/vOfKy+PuVvJfdHtSW//w/E6vjdAW+VH36S21bj4hbddF4mNW0gWQGbQOHvcerpnZZ+EfR0mbM3EcICs8dI3ic+puWjDsMRHz9+y9dWEffO+cmbCPsA6a9dwVBCALyLKS3orKipSp06dHJtbLAsLCzV8+HCtXr265X0iEa1evVqjR492HcfevXsTYpifny9JikajafyOAbQVfvRNonEAcgONA2CVl77xORVA0Fi7huNOCwC+aPb4r1iSVV5ermnTpmnEiBE666yztHDhQjU2Nmr69OmSpNLSUp100kmx29omTpyoBQsW6Ktf/apGjhypzZs3a+7cuZo4cWIsmADghV99k2gcgOyjcQCsom8ALLPWOCYtAPjC6623yZoyZYo+/fRT3XTTTaqvr9ewYcO0cuXK2IJA27dvd8zm3njjjQqFQrrxxhv18ccf6/jjj9fEiRN12223+TI+APb51TeJxgHIPhoHwCr6BsAya40LRXPwvrML8qckd2A0cuRjQkk8AcvlPHlF7RL2RcL7khnVkbmNKZnvJUXxz4m+s9/pGX3/pGT4v0lOiP+e3b7fLP93WRV5POWvvXbj1KSP/c0Zv0/5fYLItXFJ/L6GXGajo83N6RhSUq55f3PCvupTT0080Prf3XRJpgF+vZff75fMGHLgz0mqjaNvh3fhUd9zvI5GXC41k/j9j19XR5JWDD7e83nSir9LwWX99y7u3Kual6V8Khp3aEl/To2XzHV+sn8e0vXnyOXvxJ4/Ote56HDRltTObV22O5wLPYuX4TFl4hpOonGu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/PnzFQqFNGvWrNi++vp6XX755erRo4eOOeYYnXHGGXryySdbO04AQRONJr8BQJDQNwCW0TgAVnnpG40DEDTG+pbynRavvvqq7r//fg0dOtSxv7S0VF988YWefvppde3aVUuWLNF3v/tdvfbaa/rqV7/a6gEDCIaosRleADiIvgGwjMYBsIq+AbDMWuNSutNiz549mjp1qh544AEdd9xxjl9bt26drr32Wp111ln6yle+ohtvvFHHHnusamoSb4EBYJixGV4AiKFvACyjcQCs4k4LAJYZ61tKkxZlZWW6+OKLNW7cuIRfGzNmjJYtW6bPP/9ckUhES5cu1b59+zR27NjWjhVAkDQ3J795VFVVpd69e6tdu3YaOXKkXnnllcMe//jjj2vgwIFq166dTj/9dD333HOpflcActCdfQcnbKV1OxzbpLf/kbClzMe+STQOyHUrBnVxbNe8vzlh81P5KaMTtj1/7OPYWoXGAcgh1f37JWwp89I3PqcCSLN5fYYnbPGfW0vrdqT+Bsau4TxPWixdulQbN25UZWWl668/9thj2r9/v7p06aKioiJdffXVWr58ufr1a8X/sAAInGgkmvTmxbJly1ReXq558+Zp48aNKikp0fjx47Vr1y7X49etW6fvf//7uvLKK/X6669r8uTJmjx5st566610fJsA2iC/+ibROADZR+MAWOWlb3xOBRA01q7hQtFo8veE7NixQyNGjNCqVatia1mMHTtWw4YN08KFCyVJ1157rV555RXdfvvt6tq1q5566inddddd+stf/qLTTz894ZzhcFjhcNix79vH/kB5ofwjDyiaxLO6QknMy7icJ6+oXcK+SHjfkc+VDLcxJfO9pEu2399NLo7Jb/Hfs9v3m+X/Lqsij6f8tRce9b2kj/2//UuTPnbkyJE688wzde+990qSIpGITj75ZF177bWaM2dOwvFTpkxRY2Ojnnnmmdi+UaNGadiwYVq0aFHS75uqpBuXxO9rKD+xi9EUZ8jTpi3+3U2XZBrg13v5/X7JjMHn94//FyoNze0Tjpkx8IWUzu1X3yQbjbuk85WOxrleFKf6+5/hP0dHfP9cGAPNTY6Pv3dud1a4/ktgH3/v9qzs63i9/sL5KZ+Lxh3Qqs+p8ZK5zk/2z0O6/hyl+DkZyn6Hc+F/i+JleEypfk710jeJz6muUv05XLq+Ltlz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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(3, 5, figsize=(16, 8), sharex=True, sharey=True)\n", "\n", @@ -436,20 +406,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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q5dfeumlfOQjH2HSpEmUSiVuv/12/vmf/5n777+fD3/4w5x//vncd9993HrrraRSKS688EIAHnnkEWDsX+CsWbPo7e3lqquuYmBggDPPPJMvfOELfO973wPG/gUedthhLFq0iM9//vM88MADfOlLX2Lp0qXMnz8fGPsXuHDhQv71X/+Vo48+muuuu4677rqL559/vvGu9+7msif25erlW2VzeX5/+7342VEOaR0mvfEVhh8cpRppZ83Bnwbt1arg/dH/YkJ1ACIpgkM+RseRcMBkk/KadVTXP4PqBPi9B2B3HEBLezutkVZe/svTGIMhB044kAmTatRwGFR6sQYHmdgSQ+npo1gGRVVon5BAURUAhop1BvtH0Ac2MbkzRXT6oSiKstP7yFUcXsnVUBSY1pXA0rWdxgohhBBCCAHNlaot02paCBoPkbjR+P/Du7O7jkyvdcEFF/DXv/61aWHx7//+73n00Uf54x//uEdj7kmXp7er49S2HnroIU488URyudx2dble6ze/+Q2nnHIKtm1jGNt3QHorqpfru5zBXjY0NMRZZ53F5s2bSafTHH744Y2EG+Daa69FVVVOPfVUbNtm/vz53HTTTY3rNU3j3nvv5fzzz2fu3LnE43EWLlzIt7/97UbM1KlTWbp0KRdffDHXX389EydO5Mc//nEj4QY47bTTGB4e5vLLL2dgYIBZs2axbNmypuJqu5vL/qIlkybemaFUKpJzY3S06xiREN23SZY2Usoc0IiN+ZOo6ZuI+D5a/iVGBw7gwMkmZnsr9qYEbj1H0q1SKuUoJWNMa5vIxvYk9uAwxVyeVFuatvaQbL1KPZakXK+TLmXRjHZ8L8CueUTiY7/4HUmLXCaFMzTAcKHKxGIRLZ3e+X3ETXJVh4rt05+vM7U9vtefnRBCCCGE2H/UKy4//eofx3UOn7/6WKJJc7dxWzsyXXrppY1jr+3I9Frvf//7+cUvfsFjjz3G0UcfzUsvvcR9993HmWeeucdj7q7L0zHHHLPTjlPnn38+zz77LO9973t32nHqoosuesP3tyey2Sy//OUvef/737/DhPutMq5J909+8pNdno9EItx4443ceOONO42ZPHky99133y7HOeGEE3jqqad2GXPBBRdwwQUXvKm57A8URaFnUi/FTSNU3Rq+rmJ1WTgbqqRK65uS7rQzgcGIzkTbI8hv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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(1, 1, figsize=(10, 5), sharex=True, sharey=True)\n", "for i in range(len(agents)):\n", @@ -464,20 +423,9 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABi0AAAMWCAYAAACN+sUqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAADz3ElEQVR4nOzde3hU5b33/88kkAEVokABMUAQLAgUUBAEraKiiFwoaisqlYOWWg0K5Fc3pIpoPQSrRaxysFQOtqUgUiwViw+i4IOASjCKewtWBAJqQLY1CMhAM+v3Bw8TZ2aBM8msOXzzfu1rXdeelZU1d2z79g43s26f4ziOAAAAAAAAAAAAUiwr1QMAAAAAAAAAAACQWLQAAAAAAAAAAABpgkULAAAAAAAAAACQFli0AAAAAAAAAAAAaYFFCwAAAAAAAAAAkBZYtAAAAAAAAAAAAGmBRQsAAAAAAAAAAJAWWLQAAAAAAAAAAABpgUULAAAAAAAAAACQFli0MOiBBx6Qz+fT3r17Uz0UrVq1Sj6fTy+++GKqhwLAAPoGwDIaB8AyGgfAKvoGJB6LFvhe06dP19y5c1M9jON65513dOedd6p79+6qW7eufD5fqocEIEOkc9+CwaDmzp2rq6++Wi1bttTJJ5+szp076+GHH9ahQ4dSPTwAGSCdGydJs2bN0sUXX6xmzZrJ7/erTZs2GjlypLZv357qoQHIAOneuO86cuSIOnbsKJ/PpyeeeCLVwwGQ5tK9byNGjJDP54s6OnTokOqhwZA6qR4A0t/06dPVpEkTjRgxItVDcfXKK6/oj3/8o7p06aIzzzxTH3/8caqHBCBDpHPfDh48qJEjR+r888/XL3/5SzVt2lTr1q3TpEmTtHLlSr3++uss0gI4oXRunCS99957atOmja6++mqddtpp2rZtm2bNmqWXX35Z77//vlq0aJHqIQJIY+neuO96+umnVVZWluphAMgQmdA3v9+vP/7xj2HncnNzUzQaWMSiBTLeHXfcofHjx6t+/foaPXo0ixYATMjJydFbb72lPn36hM6NGjVK+fn5oYWLfv36pXCEAFAz06dPjzo3ePBg9ejRQ88//7wmTJiQglEBQGLt2bNHv/nNbzR+/Hjdf//9qR4OACREnTp19LOf/SzVw4BhPB7KsL179+qGG25Qw4YN1bhxY40ZMybskSJz5szRpZdeqqZNm8rv96tjx46aMWNG2D3y8/P13//931q9enXo4159+/YNff3rr7/WuHHjlJ+fL7/fr7y8PA0bNizqOX7BYFCPPPKI8vLyVK9ePV122WX65JNPEvJzNmvWTPXr10/IvQBkhtrQt5ycnLAFi2OuvfZaSdJHH31U4/cAkJ5qQ+OOJz8/PzQ+ADbVtsZNmDBB7du35w/3gFqgtvWtsrJS+/btS+g9gWP4pIVhN9xwg/Lz81VcXKz169fr97//vf7973/r+eeflyTNmDFDnTp10tVXX606deroH//4h+68804Fg0EVFBRIkqZOnaq77rpLp5xyiu69915JRxcJJGn//v368Y9/rI8++ki33nqrzj33XO3du1dLly7Vrl271KRJk9BYJk+erKysLP3qV79SRUWFfvvb32ro0KF6++23Q9ccPHhQBw8e/N6fKzs7W6eddlrC/jkByDy1uW/l5eWSFDYGALbUtsb97//+ryorK1VWVqbf/OY3kqTLLrusmv/0AKS72tS4d955R/PmzdOaNWt4rCdQC9Smvh08eFANGzbUwYMHddppp+mmm27SY489plNOOaVm/xCBYxyYM2nSJEeSc/XVV4edv/POOx1Jzvvvv+84juMcPHgw6nv79+/vnHnmmWHnOnXq5Fx88cVR195///2OJOdvf/tb1NeCwaDjOI7zxhtvOJKcs88+2wkEAqGvP/XUU44kZ9OmTVHj/r6jdevWx/3ZCwoKHP5rDdhVm/t2TL9+/ZyGDRs6//73v7/3WgCZpbY2zu/3h65p3Lix8/vf/979HxCAjFbbGhcMBp2ePXs6N910k+M4jrNt2zZHkvP444+f4J8SgExU2/o2YcIEZ/z48c7ChQudv/71r87w4cMdSc4FF1zgHDly5MT/sIAY8UkLw46t0h5z1113afr06XrllVfUpUuXsEcqVVRU6MiRI7r44ov16quvqqKi4ns30Fm8eLG6du0aelTJd0X+LZKRI0cqJycn9PrHP/6xJOnTTz9V586dJUnDhg3ThRde+L0/F4+CAlBb+/boo4/qtdde0/Tp03Xqqad+7/0AZKba1rh//vOfOnTokD766CP9+c9/1oEDB773XgAyV21p3Ny5c7Vp0ya9+OKL3/u9AGyoLX0rLi4Oe33jjTfqhz/8oe699169+OKLuvHGG7/3nsD3YdHCsLPOOivsddu2bZWVlaXt27dLkt566y1NmjRJ69ati/o4WCyx3Lp1q66//vqYxtKqVauw18c+Vvbvf/87dO7MM8/UmWeeGdP9ANRutbFvCxcu1H333afbbrtNd9xxR43uBSC91bbGXXLJJZKkAQMG6JprrlHnzp11yimnaPTo0dW+J4D0VRsat2/fPhUVFemee+5Ry5Yt4/peAJmrNvTteMaNG6eJEyfqtddeY9ECCcGiRS3y3VXXrVu36rLLLlOHDh00ZcoUtWzZUjk5OXrllVf05JNPKhgMJvS9s7OzXc87jhP6//fv36/9+/fHdK8f/OAHCRsbgMxnvW8rVqzQsGHDNHDgQM2cObP6gwWQkaw37rvatm2rc845R3/5y19YtABqCYuNe+KJJ3T48GENGTIk9IeVu3btknT0Dwy3b9+uFi1ahP0taAD2WOzb8dSvX1+NGzfWV199Fd9AgeNg0cKwf/3rX2rTpk3o9SeffKJgMKj8/Hz94x//UCAQ0NKlS8NWX994442o+xxvw7C2bdvqww8/TNh4n3jiCT344IPfe13r1q1DEz8AtVNt6tvbb7+ta6+9Vj169NALL7ygOnX4VzdgXW1qnJtvv/1WgUAgASMDkI5qQ+PKysr073//W506dYq67tFHH9Wjjz6q9957T926dUvYOAGkXm3o2/F888032rt3L3/JGAnDn3wYNm3aNF1xxRWh108//bSkox+9f/PNNyWFr7BWVFRozpw5Ufc5+eST9fXXX0edv/766/Wb3/xGS5YsiXqenuM4x43s8bCnBYBY1Za+ffTRRxo4cKDy8/P18ssv0z+glqgNjfvPf/6jb775JvSogmPeeecdbdq0STfffHNcYwCQOWpD4+6++24NHjw47Ot79uzR7bffrhEjRuiaa64J+4NNADbUhr4dOnRIR44cUYMGDcKueeihh+Q4jq688sq4xgAcD4sWhm3btk1XX321rrzySq1bt05//vOfdfPNN6tr166qV6+ecnJyNGjQIN1+++3av3+/Zs2apaZNm+qLL74Iu0/37t01Y8YMPfzww2rXrp2aNm2qSy+9VPfcc49efPFF/fSnP9Wtt96q7t2766uvvtLSpUs1c+ZMde3aNa7xVvdZejt27NCf/vQnSdKGDRskSQ8//LCko6vBt9xyS9z3BJDeakPfvvnmG/Xv31///ve/dc8992jZsmVhX2/b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HA3IfF6u8E6bNk35+fmqV6+eevXqpXfeeeeE10+dOlXt27dX/fr11bJlS40bN06HDh2q7o8WFxoH2OP132ChcQBSiTncUfQNsIc5XBUaB9hjbQ6X8D0tnn76aU2cOFF33nmn9uzZoxYtWuj222/X/fffn+i3SrrIjbdn71wTdY3bBrdAbeTVyu3ChQtVWFiomTNnqlevXpo6dar69++vLVu2qGnTplHXz58/XxMmTNDs2bPVp08fffzxxxoxYoR8Pp+mTJniyRgzkduGjbPKwhvntrktUBt5+TdTaJw3Ihv31I61UdeMad0nWcMB0hpzuMziNoeL3JybjbmBo5jDZZ7Ijbef2fFW1DWjW9M4QLI3h0v4T9OgQQNNnTpVO3bs0LfffqutW7fq4YcfVk5OTqLfCkAaO+Jkx3zEY8qUKRo1apRGjhypjh07aubMmTrppJM0e/Zs1+vXrl2rCy64QDfffLPy8/N1xRVX6KabbvreVWEAOB6v+ibROACpxxwOgFXM4QBYZm0OlxkPsQKQcSqdrJiPQCCgffv2hR2BQCDqnocPH1ZJSYn69esXOpeVlaV+/fpp3bp1ruPo06ePSkpKQnH89NNP9corr+iqq67y5gcHYJ4XfZNoHID0wBwOgFXM4QBYZm0Ox6IFAE8EHV/MR3FxsXJzc8OO4uLiqHvu3btXlZWVatasWdj5Zs2aqby83HUcN998s37zm9/owgsvVN26ddW2bVv17dtXv/71rz35uQHY50XfJBoHID0whwNgFXM4AJZZm8MlfE+L2sRt/4opO8JXmQpb907WcIC0UhnHmuj9RUUqLCwMO+f3+xMyjlWrVunRRx/V9OnT1atXL33yyScaM2aMHnroIU2cODEh72FV5B4WC3ZFr6LfmEfjUPukS98kGlddbvtXPLb97ahz4/N7JWM4QFpJl8bRt+qL3MPi2bLovRgj92sEaoN06ZtE46rLbf8K9psFjkqXxiWqbyxaAPBE0PHFfK3f748pjk2aNFF2drZ2794ddn737t1q3ry56/dMnDhRt9xyi37+859Lkn70ox/pwIED+sUvfqF7771XWVl84AxAfLzom0TjAKQH5nAArGIOB8Aya3M4KgjAE0FlxXzEKicnR927d9fKlSur3icY1MqVK9W7t/vf+D948GBUELOzj2465DhONX4yALWdF32TaByA9MAc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uugip3Pnzk63bt2cDz74oFnXHwqFnBUrVjgzZ850rrvuOue6665zZs6c6Tz11FNOKBRq1thfFA6HnVdffdV57LHHnN///vfO4cOHkxpnz549zqWXXuoEAgHn7LPPdoYNG+YMGzbMOfvss51AIOBceumlzp49e5K+zttuu835/PPPHcdxnIMHDzoTJkxw0tLSnEAg4KSlpTmXX3555PVkvfHGG05paakze/ZsZ/bs2U5paanzxhtvNGvMWD744APnj3/8o7Nt27ZmjePmz7wlft5Inpt9cxz3G+e3vjmO//+80bcG9M37mMPFh8Y1oHENaJy3MYeLD31r0FJ9c5zUNM7vP280D3O4+NC4BszhGtA493lm0SIrK8v561//2uTrf/3rX52srKykxg4EApH/I5w0aZKTl5fn7Nu3z3Ecx/n888+d/Px85/rrr09qbMdxnL/97W/OV77yFScrK8u57LLLnGuvvda59tprncsuu8zJyspy+vTp4/ztb39LauwxY8ZErvWf//ynM3z4cCcQCDinnXaak5aW5vTr18/Zu3dvwuNOmDDBGTFihLN9+/ZGr23fvt3Jy8tzvv3tbyd1zY7jOGlpaZGfeVFRkXPmmWc6r776qlNXV+e8/vrrzjnnnOPMnj07qbH9Gh03f+Zu/rzRfG72zXHcbZwf++Y4/v3zRt8ao2/exxwuNhrXGI1rjMZ5G3O42OhbY379R4F+/XkjNZjDxUbjGmMO1xiNc59nFi169erlLFu2rMnXly1b5px99tlJjf3FWH7lK19x/vjHP0a9/pe//MU566yzkhrbcRwnPz/fufrqq53a2tpGr9XW1jpXX321c+WVVyY19hev/bbbbnP69+8fWY3evXu3M3ToUOcHP/hBwuO2b9/e2bp1a5Ovb9myxWnfvn1S1+w40dc9cOBAZ/ny5VGvP/fcc85Xv/rVpMb2a3Tc/Jm7+fNG87nZN8dxt3F+7Jvj+PfPG31rjL55H3O42GhcYzSuMRrnbczhYqNvjfn1HwX69eeN1GAOFxuNa4w5XGM0zn2eWbRYuHChEwwGnR/+8IfOc88952zcuNHZuHGj89xzzzk//OEPnZNOOskpKytLauxAIBBZBe3Ro0ej24t27drVrH8hc9JJJ53wlqW3337bOemkk5Ia+4t/CPr27es899xzUa+/8sorTu/evRMet0uXLs7a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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(3, 5, figsize=(16, 8), sharex=True, sharey=True)\n", "\n", @@ -560,20 +508,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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5Su4rrv/G/Q6kNAtgJkxH90LkljRXioVHXM6Q7cfRFV1DN0h7U1R62unaWEPK7p6SNptFPMKOycmGbVrhKZKDJSqxOMBPN9jcHyEPfk92N7M9Pv7Dd71ucHa6O5GMQ1828Z+2ayJQgghhBBCiAMzTZOVK1eyfv362W2e57F+/XpWr159wONuvPFG/u7v/o777rtvzlhogIGBATo6OubUWSwWefTRR2frXL16Nfl8no0bN86WefDBB/E8j1WrVs2W+fWvfz1nWa4HHniApUuXknpxWOnq1avnnGdvmb3neb3asj+e52HbNt5hjp9/LWRMt5gVTmk4zQb1aopKZYpIZhA1tYpAPMNgpsSO/G6a+5bSH19OXoFtu12G8tMklSroRbp9n8WdIYYiXUxXskznCtS8Gp2RThKBxGzwnh3jPVkj0RbCDM58DBVNw+ztpbFrF26pjDM1hd7aOs93RQghhBBCvCWFmmbGVM93Gw7TunXruOyyyzj99NM588wzuemmm6hUKnzkIx8B4NJLL6W7u5sbbrgBgH/8x3/kuuuu44477qC/v3923HM0GiUajaIoCldddRV///d/z5IlSxgYGODLX/4yXV1dXHTRRQAsX76cd73rXXz84x/nlltuwbZtrrzySt7//vfPzhb+wQ9+kL/927/l8ssv55prrmHTpk185zvf4dvf/vZs2z/zmc9w3nnn8a1vfYsLL7yQO++8kyeeeGJ2WbHXqy233347hmFw4oknEggEeOKJJ/jiF7/IJZdcgmEYr/33dAgSugUws2TYrsxuyvUijVgSs1JAzxQIJodYsvwEirVtZMo1nhrfzrn9yzl19YlMeh7ZMZ0txSyRVIDRkUG6HJeOriCBSBeZagY77DBSHqHYKNIZ7URX9YMGbzUUwujqwh4dw56YRAmF0aKReb47QgghhBDiLUdVD2sSs2PFJZdcwtTUFNdddx3pdJpTTjmF++67b3bysaGhIdSXLc/7/e9/H8uyeN/73jennuuvv56vfOUrAHz+85+nUqnwiU98gnw+zznnnMN99903Z9z37bffzpVXXskFF1yAqqpcfPHFfPe7353dn0gkuP/++7niiitYuXIlLS0tXHfddXPWzz777LO54447uPbaa/nSl77EkiVL+OlPf8oJJ5wwW+b1aIuu6/zjP/4j27Ztw/d9FixYwJVXXsnVV1/9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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(1, 1, figsize=(10, 5), sharex=True, sharey=True)\n", "for i in range(len(agents)):\n", @@ -588,20 +525,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABi0AAAMWCAYAAACN+sUqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXxU5d3///dMQsIiBAEBETBsshZQEARtRUWp9YtL7S1VK4jWWgVF8quVVBG1arRaRCuLpUXtYsGlWCveeCOK3gqIbAoti2wGl4CohD2QmfP7g5ukZ66DzEzOmeXK6+ljHg/PxTXnXJkk71yTK+f6hBzHcQQAAAAAAAAAAJBm4XQPAAAAAAAAAAAAQGLRAgAAAAAAAAAAZAgWLQAAAAAAAAAAQEZg0QIAAAAAAAAAAGQEFi0AAAAAAAAAAEBGYNECAAAAAAAAAABkBBYtAAAAAAAAAABARmDRAgAAAAAAAAAAZAQWLQAAAAAAAAAAQEZg0cJC99xzj0KhkHbs2JHuoWjBggUKhUJ68cUX0z0UABYg3wDYjIwDYDMyDoCtyDfAfyxa4JimTJmiZ555Jt3DOKolS5bo5ptvVp8+fVSnTh2FQqF0DwlAlsjkfItGo3rmmWd08cUXq02bNmrQoIF69Oih+++/XwcOHEj38ABkgUzOOEmaPn26zj77bLVo0UL5+flq166dRo4cqS1btqR7aACyQKZn3H86dOiQunXrplAopEcffTTdwwGQ4TI936699lqFQiHj0aVLl3QPDRbJTfcAkPmmTJmiZs2a6dprr033UDy99tpr+sMf/qCePXuqffv2Wr9+fbqHBCBLZHK+7du3TyNHjtQZZ5yhn//852revLkWLVqkCRMmaP78+XrzzTdZpAXwrTI54yRpxYoVateunS6++GIdf/zx2rx5s6ZPn65XX31VH374oVq1apXuIQLIYJmecf/pd7/7nUpLS9M9DABZIhvyLT8/X3/4wx9cbQUFBWkaDWzEogWy3k033aQ77rhD9erV0+jRo1m0AGCFvLw8vffeexo4cGBV2w033KDCwsKqhYvBgwencYQAUDNTpkwx2i699FL17dtXf/rTnzRu3Lg0jAoA/LV9+3bdd999uuOOO3T33XenezgA4Ivc3Fz95Cc/SfcwYDG2h7LYjh07dMUVV6hRo0Zq2rSpxowZ49pS5Omnn9a5556r5s2bKz8/X926ddPUqVNd5ygsLNS//vUvvf3221W3ew0aNKjq33fu3KmxY8eqsLBQ+fn5at26tYYPH27s4xeNRvXAAw+odevWqlu3rs477zxt2LDBl4+zRYsWqlevni/nApAdakO+5eXluRYsjrjsssskSWvWrKnxNQBkptqQcUdTWFhYNT4AdqptGTdu3Dh17tyZX+4BtUBty7dIJKJdu3b5ek7gCO60sNgVV1yhwsJClZSUaPHixXriiSf0zTff6E9/+pMkaerUqerevbsuvvhi5ebm6p///KduvvlmRaNRjRo1SpI0adIk3XLLLTruuON05513Sjq8SCBJe/bs0Xe/+12tWbNG1113nU477TTt2LFDr7zyij799FM1a9asaiwPPfSQwuGwfvGLX6i8vFy/+c1vdPXVV+v999+v6rNv3z7t27fvmB9XTk6Ojj/+eN9eJwDZpzbnW1lZmSS5xgDALrUt47766itFIhGVlpbqvvvukySdd955Sb56ADJdbcq4JUuW6Nlnn9W7777Ltp5ALVCb8m3fvn1q1KiR9u3bp+OPP15XXnmlHn74YR133HE1exGBIxxYZ8KECY4k5+KLL3a133zzzY4k58MPP3Qcx3H27dtnPHfIkCFO+/btXW3du3d3zj77bKPv3Xff7Uhy/v73vxv/Fo1GHcdxnLfeesuR5HTt2tWpqKio+vfHH3/ckeSsWrXKGPexHieffPJRP/ZRo0Y5fFkD9qrN+XbE4MGDnUaNGjnffPPNMfsCyC61NePy8/Or+jRt2tR54oknvF8gAFmttmVcNBp1+vXr51x55ZWO4zjO5s2bHUnOI4888i2vEoBsVNvybdy4cc4dd9zhzJo1y/nb3/7mjBgxwpHknHnmmc6hQ4e+/cUC4sSdFhY7skp7xC233KIpU6botddeU8+ePV1bKpWXl+vQoUM6++yz9frrr6u8vPyYBXReeukl9erVq2qrkv8U+1ckI0eOVF5eXtXxd7/7XUnSpk2b1KNHD0nS8OHDddZZZx3z42IrKAC1Nd8efPBBvfHGG5oyZYoaN258zPMByE61LeP++7//WwcOHNCaNWv0l7/8RXv37j3muQBkr9qScc8884xWrVqlF1988ZjPBWCH2pJvJSUlruMf//jHOuWUU3TnnXfqxRdf1I9//ONjnhM4FhYtLNapUyfXcYcOHRQOh7VlyxZJ0nvvvacJEyZo0aJFxu1g8YTlxo0bdfnll8c1lrZt27qOj9xW9s0331S1tW/fXu3bt4/rfABqt9qYb7NmzdJdd92l66+/XjfddFONzgUgs9W2jDvnnHMkSRdeeKEuueQS9ejRQ8cdd5xGjx6d9DkBZK7akHG7du1ScXGxbr/9drVp0yah5wLIXrUh345m7NixGj9+vN544w0WLeALFi1qkf9cdd24caPOO+88denSRRMnTlSbNm2Ul5en1157TY899pii0aiv187JyfFsdxyn6v/37NmjPXv2xHWuE044wbexAch+tufbvHnzNHz4cF100UWaNm1a8oMFkJVsz7j/1KFDB5166qn661//yqIFUEvYmHGPPvqoDh48qGHDhlX9svLTTz+VdPgXhlu2bFGrVq1cfwUNwD425tvR1KtXT02bNtXXX3+d2ECBo2DRwmIff/yx2rVrV3W8YcMGRaNRFRYW6p///KcqKir0yiuvuFZf33rrLeM8RysY1qFDB61evdq38T766KO69957j9nv5JNPrpr4AaidalO+vf/++7rsssvUt29fPf/888rN5Uc3YLvalHFe9u/fr4qKCh9GBiAT1YaMKy0t1TfffKPu3bsb/R588EE9+OCDWrFihXr37u3bOAGkX23It6PZvXu3duzYwR8Zwzf85sNikydP1gUXXFB1/Lvf/U7S4Vvv33nnHUnuFdby8nI9/fTTxnkaNGignTt3Gu2XX3657rvvPs2ePdvYT89xnKOG7NFQ0wJAvGpLvq1Zs0YXXXSRCgsL9eqrr5J/QC1RGzKusrJSu3fvrtqq4IglS5Zo1apVuuqqqxIaA4DsURsy7tZbb9Wll17q+vft27frxhtv1LXXXqtLLrnE9YtNAHaoDfl24MABHTp0SA0bNnT1+fWvfy3HcfT9738/oTEAR8OihcU2b96siy++WN///ve1aNEi/eUvf9FVV12lXr16qW7dusrLy9PQoUN14403as+ePZo+fbqaN2+uL774wnWePn36aOrUqbr//vvVsWNHNW/eXOeee65uv/12vfjii/qv//ovXXfdderTp4++/vprvfLKK5o2bZp69eqV0HiT3Uvvk08+0Z///GdJ0tKlSyVJ999/v6TDq8HXXHNNwucEkNlqQ77t3r1bQ4YM0TfffKPbb79dc+bMcf17hw4dNGDAgITOCSA71IaM27Nnj9q0aaNhw4ape/fuatCggVatWqWnn35aBQUFGj9+fELnA5A9akPGnXbaaTrttNNcbUf+Srl79+7GggYAO9SGfCsrK9Opp56qK6+8Ul26dJEkvf7663rttdf0/e9/X5dccklC5wOOyoF1JkyY4Ehy/v3vfzs/+tGPnIYNGzrHH3+8M3r0aGf//v1V/V555RWnZ8+eTt26dZ3CwkLn4YcfdmbMmOFIcjZv3lzVr6yszLnooouchg0bOpKcs88+u+rfvvrqK2f06NHOSSed5OTl5TmtW7d2RowY4ezYscNxHMd56623HEnOCy+84Brj5s2bHUnO008/XeOP98g1vB7/OVYA2a825duR8xztMWLEiBqdH0DmqU0ZV1FR4YwZM8bp2bOn06hRI6dOnTrOySef7Fx//fWujwGAPWpTxnk5cu5HHnnE93MDSK/alG/ffPON85Of/MTp2LGjU79+fSc/P9/p3r278+CDDzoHDx6s0bmB/xRynP+4LwkAAAAAAAAAACBNwukeAAAAAAAAAAAAgMSiBQAAAAAAAAAAyBAsWgAAAAAAAAAAgIzAogWArPLOO+9o6NChatWqlUKhkF5++eVjPmfBggU67bTTlJ+fr44dO+qZZ54JfJwAkCjyDYDNyDgANiPjANgqXfkW2KLF5MmTVVhYqLp166p///5asmRJUJcCUIvs3btXvXr10uTJk+Pqv3nzZl100UU655xztHLlSt1222366U9/qtdffz3gkQJAYsg3ADYj4wDYjIwDYKt05VvIcRwnmQF/m1mzZmn48OGaNm2a+vfvr0mTJumFF17QunXr1Lx5c78vB6CWCoVCmj17ti699NKj9rnjjjs0Z84crV69uqrtxz/+sXbu3Km5c+emYJQAkDjyDYDNyDgANiPjANgqlfkWyJ0WEydO1A033KCRI0eqW7dumjZtmurXr68ZM2YEcTkAWa6iokK7du1yPSoqKnw596JFizR48GBX25AhQ7Ro0SJfzg8A34Z8A2AzMg6ArYLMN4mMA5Be2TCHy/VlNP/h4MGDWrZsmYqLi6vawuGwBg8eHPfg2v3ut0ZbxzGLkxtQyGNdxokG9zzAIvOiLyT93GjZKXH3LZl2le69915X24QJE3TPPfckff0jysrK1KJFC1dbixYttGvXLu3fv1/16tWr8TUSdd6gB4228Dsr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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(3, 5, figsize=(16, 8), sharex=True, sharey=True)\n", "\n", @@ -691,18 +617,7 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAHqCAYAAADVi/1VAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXwV1f3/8dfM3C0JJKxJWMKiWCEKUkFCrAvU1Kjor1T8FtQKImilQIW4ABVBqRXFDSwgFatoCwVtrVVRkEbBWqJQkIpUKCCIFcMiJIEkd5uZ3x+BK5cESDAQDO/n43Efcs985syZm7QMn3vO5xiu67qIiIiIiIiIiIicRGZdD0BERERERERERE4/SkqJiIiIiIiIiMhJp6SUiIiIiIiIiIicdEpKiYiIiIiIiIjISaeklIiIiIiIiIiInHRKSomIiIiIiIiIyEmnpJSIiIiIiIiIiJx0SkqJiIiIiIiIiMhJp6SUiIiIiIiIiIicdEpKiYjUI4ZhcP/999f1MEREREROCD3riNQvSkqJyGlp5syZGIZBVlZWXQ+lSsuXL+f++++nqKiorociIiIi3xFz5szBMIy4V2pqKr179+att96q6+HF0bOOiAB46noAIiJ1Ye7cubRr144VK1awadMmOnToUNdDirN8+XIeeOABbr75Zho1alTt88rLy/F49H/tIiIip7NJkybRvn17XNdlx44dzJkzh6uuuorXX3+dq6++uq6HB+hZR0QqaKaUiJx2tmzZwvLly3niiSdo3rw5c+fOreshfSuO4xAMBgEIBAJ6UBMRETnNXXnllfzsZz/jpptu4q677uIf//gHXq+XP/3pT3U9tOOiZx2R+ktJKRE57cydO5fGjRvTp08frrvuuholpdq1a8fVV1/N0qVL6d69OwkJCXTu3JmlS5cC8Morr9C5c2cCgQDdunXjo48+ijv/448/5uabb+aMM84gEAiQnp7OLbfcwtdffx2Luf/++7n77rsBaN++fWz6/datW4GKWgojRoxg7ty5nHPOOfj9fhYtWhQ7drDOQnl5OR07dqRjx46Ul5fH+t+zZw8tWrTgwgsvxLbtmn58IiIi8h3TqFEjEhISqpXM0bOOiJxMSjGLyGln7ty5XHvttfh8Pq6//nqefvppVq5cyQUXXFCt8zdt2sQNN9zAz3/+c372s5/x2GOPcc011zBr1ix+9atf8Ytf/AKAyZMn89Of/pQNGzZgmhXfASxZsoTPPvuMwYMHk56ezrp163jmmWdYt24dH3zwAYZhcO211/Lf//6XP/3pTzz55JM0a9YMgObNm8fG8M477/DSSy8xYsQImjVrRrt27SqNMyEhgRdeeIEf/OAH3HvvvTzxxBMADB8+nOLiYubMmYNlWd/moxQREZFTUHFxMbt378Z1XXbu3Mlvf/tb9u/fz89+9rNqna9nHRE5aVwRkdPIv/71LxdwlyxZ4rqu6zqO47Zu3dq94447qnV+27ZtXcBdvnx5rG3x4sUu4CYkJLiff/55rP13v/udC7jvvvturK2srKxSn3/6059cwH3vvfdibY8++qgLuFu2bKkUD7imabrr1q2r8tjEiRPj2saNG+eapum+99577ssvv+wC7tSpU6t1vyIiIvLd8fzzz7tApZff73fnzJlTrT70rCMiJ5OW74nIaWXu3LmkpaXRu3dvoGIKeP/+/Zk/f361p3dnZmaSnZ0de39wB78f/vCHtGnTplL7Z599FmtLSEiI/TkYDLJ792569uwJwOrVq6t9H5deeimZmZnVir3//vs555xzGDRoEL/4xS+49NJL+eUvf1nta4mIiMh3y4wZM1iyZAlLlizhj3/8I71792bo0KG88sor1TpfzzoicrIoKSUipw3btpk/fz69e/dmy5YtbNq0iU2bNpGVlcWOHTvIz8+vVj+HPowBpKSkAJCRkVFl+969e2Nte/bs4Y477iAtLY2EhASaN29O+/btgYqp9tV18Jzq8Pl8PPfcc2zZsoV9+/bx/PPPYxhGtc8XETmRtm7dypAhQ2jfvj0JCQmceeaZTJw4kXA4XK3zXdflyiuvxDAMXn311Spjvv76a1q3bo1hGJW2n58xYwadOnUiISGBs88+mxdffDHu+CuvvEL37t1p1KgRSUlJdO3alT/84Q+VrvHpp5/y//7f/yMlJYWkpCQuuOACtm3bFjv+zDPP0KtXL5KTk6scR3UVFRUxfPhwWrRogd/v53vf+x5vvvnmcfUl9VePHj3IyckhJyeHG2+8kYULF5KZmcmIESOq9b8tPeuIyMmimlIictp45513+Oqrr5g/fz7z58+vdHzu3Llcfvnlx+znSLUJjtTuum7szz/96U9Zvnw5d999N127dqVBgwY4jsMVV1yB4zjVvJP4byGrY/HixUDFN5YbN26s0YOeiEht6NWrFzfffDM333xzXPv69etxHIff/e53dOjQgU8++YRbb72V0tJSHnvssWP2O3Xq1GP+43PIkCF06dKFL7/8Mq796aefZty4ccyePZsLLriAFStWcOutt9K4cWOuueYaAJo0acK9995Lx44d8fl8vPHGGwwePJjU1FRyc3MB2Lx5MxdddBFDhgzhgQceIDk5mXXr1hEIBGLXKisr44orruCKK65g3Lhx1fnIKgmHw/zoRz8iNTWVP//5z7Rq1YrPP/+cRo0aHVd/cvowTZPevXszbdo0Nm7cyDnnnHPUeD3riMjJoqSUiJw25s6dS2pqKjNmzKh07JVXXuGvf/0rs2bNqvFDUHXt3buX/Px8HnjgASZMmBBr37hxY6XY2vx27+OPP2bSpEkMHjyYNWvWMHToUNauXRv7dlNEpC4dTNQcdMYZZ7BhwwaefvrpYyal1qxZw+OPP86//vUvWrRoUWXM008/TVFRERMmTOCtt96KO/aHP/yBn//85/Tv3z927ZUrV/LII4/EklK9evWKO+eOO+7ghRde4P33348lpe69916uuuoqpkyZEos788wz484bNWoUQGwHs6p88cUX3Hnnnbz99tuYpsnFF1/MtGnTYgWen3vuOfbs2cPy5cvxer0AVRZ/FqlKNBoFYP/+/SfsGnrWEZGa0vI9ETktlJeX88orr3D11Vdz3XXXVXqNGDGCffv28dprr52wMRz8dvHQbxOh4lv+wyUlJQEc9/KOgyKRCDfffDMtW7Zk2rRpzJkzhx07djB69Ohv1a+IyIlUXFxMkyZNjhpTVlbGDTfcwIwZM0hPT68y5j//+Q+TJk3ixRdfjO0MdqhQKBQ3mwkqZmesWLGCSCRSKd51XfLz89mwYQOXXHIJAI7jsHDhQr73ve+Rm5tLamoqWVlZR1xKeCSRSITc3FwaNmzIP/7xD/75z3/SoEEDrrjiithyq9dee43s7GyGDx9OWloa5557Lg899JC2vJdjikQivP322/h8Pjp16nTCrqNnHRGpKc2UEpHTwmuvvca+ffv4f//v/1V5vGfPnjRv3py5c+fGvjGvbcnJyVxyySVMmTKFSCRCq1atePvtt9myZUul2G7dugEV374PGDAAr9fLNddcE3uAq64HH3yQNWvWkJ+fT8OGDenSpQsTJkxg/PjxXHfddVx11VW1cm8iIrVl06ZN/Pa3vz3mLKnRo0dz4YUX8uMf/7jK46FQiOuvv55HH32UNm3axBViPig3N5dnn32Wvn37cv7557Nq1SqeffZZIpEIu3fvjs2+Ki4uplWrVoRCISzLYubMmfzoRz8CYOfOnezfv5+HH36YBx98kEceeYRFixZx7bXX8u6773LppZdW674XLFiA4zg8++yzsRkkzz//PI0aNWLp0qVcfvnlfPbZZ7zzzjvceOONvPnmm2zatIlf/OIXRCIRJk6cWK3ryOnhrbfeYv369UDF7+i8efPYuHEjY8eOJTk5+YRdV886IlJTSkqJyGlh7ty5BAKB2D8iDmeaJn369GHu3Ll8/fXXNG3a9ISMY968eYwcOZIZM2bgui6XX345b731Fi1btoyLu+CCC/j1r3/NrFmzWLRoEY7jsGXLlho9qK1evZqHHnqIESNGxHYbBBg7dix/+9vfuPXWW1m3bp1qkYjICfHQQw/x0EMPxd6Xl5fzwQcfMGLEiFjbf/7zn7iCyl9++SVXXHEF//d//8ett956xL5fe+013nnnHT766KMjxowbN45OnTrxs5/97Igx9913H4WFhfTs2RPXdUlLS2PQoEFMmTIlbmZVw4YNWbNmDfv37yc/P5+8vDzOOOMMevXqFauR8+Mf/zg2M6Nr164sX76cWbNmVTsp9e9//5tNmzbRsGHDuPZgMMjmzZuBillZqampPPPMM1iWRbdu3fjyyy959NFHlZSSOIcunQsEAnTs2JGnn36an//85yf82nrWEZGaMNzD51aKiIiIiHxLe/bsYc+ePbH3N954I/369ePaa6+NtbVr1w6Pp+I70u3bt9OrVy969uzJnDlzqlxud9CoUaN46qmn4mJs247VYVq6dCldu3Zl7dq1sVlHruviOA6WZXHvvffywAMPxM6NRCLs2LGDFi1a8MwzzzBmzBiKioqOOIahQ4fyxRdfsHjxYsLhMElJSUycOJHx48fHYsaMGcP777/PP//5z7hzly5dSu/evdm7d2/cP5SHDRvG6tWrmTt3bqXrNW/enJSUFC699FK8Xi9///vfY8feeustrrrqKkKhED6f74ifmYiIyKlIM6VEREREpNY1adIkri5UQkICqampdOjQoVLsl19+Se/evenWrRvPP//8URNSUDELYujQoXFtnTt35sknn4wVKP/L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3EA9cPjvxKFO5PPAqaC+35+IiIgcW3WfBzwncUxyApXsL2VfcSk+vLiuq0LnIiJ1aG9ZmG4P/r3Orr9qfA5NG/iPGRcOh1m1ahXjxo2LtZmmSU5ODgUFBVWeU1BQQF5eXlxbbm4ur7766rcas4iIiIicfrR8r57YsXsre/btoqR0P64LbljL90RE5Oh2796NbdukpaXFtaelpVFYWFjlOYWFhTWKFxERERE5Es2UqifsbTuxdkYIGVZFUko1pURERERERETkFKaZUvVEJBomakcJRcIVSaloBJULExGRo2nWrBmWZbFjx4649h07dpB+hLqE6enpNYoXERERETkSzZSqJ8KWQxSbUCSKYzvgsSAaBa+3rocmInLaaZzoY9X4nDq9fnX4fD66detGfn4+ffv2BSoKnefn5zNixIgqz8nOziY/P59Ro0bF2pYsWUJ2dva3HbaIiIiInGZOmZlSDz/8MIZhxD3kBoNBhg8fTtOmTWnQoAH9+vWr9O3stm3b6NOnD4mJiaSmpnL33XcTPazI99KlSzn//PPx+/106NCBOXPmVLr+jBkzaNeuHYFAgKysLFasWBF3vDpjqUuOEQEnghMJ45gViSgt4RMRqRumadC0gb/OXtXdeQ8gLy+P2bNn88ILL/Dpp58ybNgwSktLGTx4MAADBw6MK4R+xx13sGjRIh5//HHWr1/P/fffz7/+9a8jJrFERERERI7klEhKrVy5kt/97nd06dIlrn306NG8/vrrvPzyyyxbtozt27dz7bXXxo7btk2fPn0Ih8MsX76cF154gTlz5jBhwoRYzJYtW+jTpw+9e/dmzZo1jBo1iqFDh7J48eJYzIIFC8jLy2PixImsXr2a8847j9zcXHbu3FntsdS1qKccx4hg2xFcKv4xoqSUiIgcS//+/XnssceYMGECXbt2Zc2aNSxatChWzHzbtm189dVXsfgLL7yQefPm8cwzz3Deeefx5z//mVdffZVzzz23rm5BRERERL6jDLeOCw/t37+f888/n5kzZ/Lggw/StWtXpk6dSnFxMc2bN2fevHlcd911AKxfv55OnTpRUFBAz549eeutt7j66qvZvn177OF51qxZjBkzhl27duHz+RgzZgwLFy7kk08+iV1zwIABFBUVsWjRIgCysrK44IILmD59OlCxdCEjI4ORI0cyduzYao2lOkpKSkhJ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QnJycmIxKSkpZGVlUVBQwIABAygoKKBRo0axJBBATk4Opmny4Ycf8pOf/ISCggIuueSSWEIKIDc3l0ceeYS9e/fSuHFjCgoKyMvLixtPbm4ur776aq2O5XCbNm1i0aJFXHvttdX6jERERESkalq+Vw+0292F1PIeYLUEoylmtCER24EDeSjVlRIRkars3r0b27ZJS0uLa09LS6OwsLBafYwZM4aWLVvGEj8Hzztan4WFhaSmpsYd93g8NGnSJC6mqj4OvcaRYg49XhtjOejCCy8kEAhw1llncfHFFzNp0qQjfzAiIiIickxKStUDrTaeS6p9Bfhbg7cRpp1AaWkIw+utCFBSSkREToCHH36Y+fPn89e//rXSErX6aMGCBaxevZp58+axcOFCHnvssboekoiIiMh3mpJS9YAbjS9Ga2JRsr84lpTSTCkREalKs2bNsCyLHTt2xLXv2LGD9PT0o5772GOP8fDDD/P222/TpUuXWPvB847WZ3p6eqVC6tFolD179sTFVNXHodc4Usyhx2tjLAdlZGSQmZnJ9ddfz8MPP8z999+PbdtVf0AiIiIickyqKVUPNN5TStD7zXt/xMuekiKM1JZAmZJSIiInW0KTirpOdXn9avD5fHTr1o38/Hz69u0LVBQ6z8/PZ8SIEUc8b8qUKfzmN79h8eLFcbWYANq3b096ejr5+fl07doVqCh0+eGHHzJs2DAAsrOzKSoqYtWqVXTr1g2Ad955B8dxyMrKisXce++9RCIRvAe+ZFmyZAlnn302jRs3jsXk5+czatSo2PWXLFlCdnZ2rY6lKo7jEIlEcBwHy7KO+jmLiIiISNWUlKoHkvaXEWz8zXvT9VBUUoLhbQtoppSIyElnmtUqNH4qyMvLY9CgQXTv3p0ePXowdepUSktLGTx4MAADBw6kVatWTJ48GYBHHnmECRMmMG/ePNq1axeru9SgQQMaNGiAYRiMGjWKBx98kLPOOov27dtz33330bJly1jiq1OnTlxxxRXceuutzJo1i0gkwogRIxgwYEBst7sbbriBBx54gCFDhjBmzBg++eQTpk2bxpNPPhkb+x133MGll17K448/Tp8+fZg/fz7/+te/eOaZZwBqbSxz587F6/XSuXNn/H4///rXvxg3bhz9+/ePJcxEREREpOaUlKoHTCMY32B42FtUjOHT8j0RETm6/v37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nuDWW29l8ODBZGZmMmvWLBITE3nuueeOeI5t29x444088MADnHHGGVXG+P1+0tPTY6+Dux2KiIiI1LY6TUo9/fTTdOnSheTkZJKTk8nOzuatt96KHe/Vq1elKeS33357XB/btm2jT58+JCYmkpqayt133000Gp+cWbp0Keeffz5+v58OHTowZ86cSmM51vT3YDDI8OHDadq0KQ0aNKBfv37s2LGj9j6Mb8mT7MF04oudm1hQbhOyg9ixpFS4qtNFRETkOyQcDrNq1SpycnJibaZpkpOTQ0FBwRHPmzRpEqmpqQwZMuSIMUuXLiU1NZWzzz6bYcOG8fXXXx91LKFQiJKSkriXiIiISHXUaVKqdevWPPzww6xatYp//etf/PCHP+THP/4x69ati8XceuutcVPIp0yZEjtm2zZ9+vQhHA6zfPlyXnjhBebMmcOECRNiMVu2bKFPnz707t2bNWvWMGrUKIYOHcrixYtjMdWZ/j569Ghef/11Xn75ZZYtW8b27du59tprT/AnVH2hhAQMN34WlOV6sSIQskNED/yoNVNKRETku2/37t3Yth3bJfGgtLQ0CgsLqzzn/fff5/e//z2zZ88+Yr9XXHEFL774Ivn5+TzyyCMsW7aMK6+8Etu2j3jO5MmTSUlJib0yMjKO76ZERETktOM5dsiJc80118S9/81vfsPTTz/NBx98wDnnnANAYmIi6enpVZ7/9ttv85///Ie///3vpKWl0bVrV379618zZswY7r//fnw+H7NmzaJ9+/Y8/vjjAHTq1In333+fJ598ktzcXCB++jvArFmzWLhwIc899xxjx46luLiY3//+98ybN48f/vCHADz//PN06tSJDz74gJ49e56Qz6cm7EQPphM6rNXCDBtEbYdSIiSipJSIiMjpaN++fdx0003Mnj2bZs2aHTFuwIABsT937tyZLl26cOaZZ7J06VIuu+yyKs8ZN24ceXl5sfclJSVKTImIiEi1nDI1pWzbZv78+ZSWlpKdnR1rnzt3Ls2aNePcc89l3LhxlJWVxY4VFBTQuXPnuG8Jc3NzKSkpic22KigoiJvafjDm4NT26kx/X7VqFZFIJC6mY8eOtGnT5qhT5E/mdPaEhsl4ooclpQwvRhhCUZtS58CyPVeJKRERke+6Zs2aYVlWpVICO3bsqPLLvM2bN7N161auueYaPB4PHo+HF198kddeew2Px8PmzZurvM4ZZ5xBs2bN2LRp0xHH4vf7Y6UYDr5EREREqqNOZ0oBrF27luzsbILBIA0aNOCvf/0rmZmZANxwww20bduWli1b8vHHHzNmzBg2bNjAK6+8AkBhYWGV09YPHjtaTElJCeXl5ezdu/eI09/Xr18f68Pn89GoUaNKMUeaIg8V09kfeOCBGn4ixyfQsBGGffgDpQW2Q7g8yv5oOYbXixuJ4EYiGF7vSRmXiIiI1D6fz0e3bt3Iz8+nb9++ADiOQ35+PiNGjKgU37FjR9auXRvXNn78ePbt28e0adOOOLPpf//7H19//TUtWrSo9XsQERERqfOk1Nlnn82aNWsoLi7mz3/+M4MGDWLZsmVkZmZy2223xeI6d+5MixYtuOyyy9i8eTNnnnlmHY66ek7mdPY9YRPTKTus1cKwbSIhl9JwOYa3YSwpJSIiIt9teXl5DBo0iO7du9OjRw+mTp1KaWlprBzBwIEDadWqFZMnTyYQCHDuuefGnX/wy7aD7fv37+eBBx6gX79+pKens3nzZu655x46dOgQK3kgIiIiUpvqPCnl8/no0KEDAN26dWPlypVMmzaN3/3ud5Vis7KyANi0aRNnnnkm6enplXbJOziN/eDU9fT09CqnticnJ5OQkIBlWcec/p6enk44HKaoqChuttSRpsgf5Pf78fv91fkYvrWAPwGrqqRU1MEORdkXKsNo2ATKtHxPRESkPujfvz+7du1iwoQJFBYW0rVrVxYtWhSb/b1t2zZMs/qVGizL4uOPP+aFF16gqKiIli1bcvnll/PrX//6pD3PiIiIyOnllKkpdZDjOIRChxfsrrBmzRqA2BTy7Oxs1q5dG7dL3pIlS0hOTo4tAczOziY/Pz+unyVLlsTqVh06/f3QMeTn58diunXrhtfrjYvZsGED27Zti6t/VZcSEhvidfbHN1omrgNmeZi9wf2xJXtKSomIyKFmzJhBu3btCAQCZGVlVfrC53BFRUUMHz6cFi1a4Pf7+d73vsebb75Zoz6DwSDDhw+nadOmNGjQgH79+lX6gmjbtm306dOHxMREUlNTufvuu4lGo3ExS5cu5fzzz8fv99OhQwfmzJlT4/t75pln6NWrF8nJyRiGQVFR0TE+sVPHiBEj+PzzzwmFQnz44YexL/Cg4rOp6vM4aM6cObz66qux9wkJCSxevJidO3cSDofZunUrzzzzTKUSByIiIiK1pU6TUuPGjeO9995j69atrF27lnHjxrF06VJuvPFGNm/ezK9//WtWrVrF1q1bee211xg4cCCXXHIJXbp0AeDyyy8nMzOTm266iX//+98sXryY8ePHM3z48Ng3erfffjufffYZ99xzD+vXr2fmzJm89NJLjB49OjaOvLw8Zs+ezQsvvMCnn37KsGHD4qa/p6SkMGTIEPLy8nj33XdZtWoVgwcPJjs7+5TYeQ9gbxBMpzS+0fTiYuIpi7IvVI7rsQAlpURE5BsLFiwgLy+PiRMnsnr1as477zxyc3PjvvA5VDgc5kc/+hFbt27lz3/+Mxs2bGD27Nm0atWqRn2OHj2a119/nZdffplly5axfft2rr322thx27bp06cP4XCY5cuX88ILLzBnzhwmTJgQi9myZQt9+vShd+/erFmzhlGjRjF06FAWL15co7GUlZVxxRVX8Ktf/apWPlMRERERqSa3Dt1yyy1u27ZtXZ/P5zZv3ty97LLL3Lffftt1Xdfdtm2be8kll7hNmjRx/X6/26FDB/fuu+92i4uL4/rYunWre+WVV7oJCQlus2bN3DvvvNONRCJxMe+++67btWtX1+fzuWeccYb7/PPPVxrLb3/7W7dNmzauz+dze/To4X7wwQdxx8vLy91f/OIXbuPGjd3ExET3Jz/5ifvVV1/V6H6Li4tdoNI91IZ/fb7D/fM1g93pP8+Pez3y84fcB6ZNcR977xV339c73bK1n7jBjRtr/foiIqez8vJy9z//+Y9bXl7uuq7rOrbtRr7+us5ejm1Xe+w9evRwhw8fHntv27bbsmVLd/LkyVXGP/300+4ZZ5zhhsPh4+6zqKjI9Xq97ssvvxyL+fTTT13ALSgocF3Xdd98803XNE23sLAw7trJycluKBRyXdd177nnHvecc86Ju3b//v3d3Nzc47q/d9991wXcvXv3HvHequvw34lDncjngVNBfb8/ERERObbqPg/UaU2p3//+90c8lpGRwbJly47ZR9u2bSstGThcr169+Oijj44aM2LEiCp3qzkoEAgwY8YMZsyYccwx1YWAx4trloLrgPHNBDgDL96wSygapRSHZMAJhgh99hneli0xA4G6G7SISD1lFxWx8cIf1Nn1z1r+TzxNmhwzLhwOs2rVKsaNGxdrM02TnJwcCgoK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JQBFRERERERERI7FcI9z67RwOMymTZvYv38/mZmZNGjQ4FsPZteuXaSmprJs2bJY3apevXrRtWtXpk6dWuU5b731FldffTXbt28nLS0NgFmzZjFmzBh27dqFz+djzJgxLFy4kE8++SR23oABAygqKmLRokUAZGVlccEFFzB9+nQAHMchIyODkSNHMnbsWIqLi2nevDnz5s3juuuuA2D9+vV06tSJgoICevbsecz7KykpISUlheLiYpKTk4/7c6ouNxJh44IX+XTZv9hbdgalgXPAG4gdL2MtTduX06FDN7Z/ncyOpFJo+T86llpcfOb3SeyUedT+w//7H3ZRMd70NDzNmp3o2xEREakXTvbzwMlW3+9PREREjq26zwM1nil1kM/nIzMzkx49etRKQgqguLgYgCZNmsS1z507l2bNmnHuuecybtw4ysrKYscKCgro3LlzLCEFkJubS0lJCevWrYvF5OTkxPWZm5tLQUEBUJFgW7VqVVyMaZrk5OTEYlatWkUkEomL6dixI23atInFnHIsC19SIoZlVBSNcuNnSnmcRKLRCKbXxjIczKhBGBPbcbAjYVzHOULHFQzzYKHzo8eJiIiIiIiIiBzOU9MTfvKTn2AYRqV2wzAIBAJ06NCBG264gbPPPrtG/TqOw6hRo/jBD37AueeeG2u/4YYbaNu2LS1btuTjjz9mzJgxbNiwgVdeeQWAwsLCuIQUEHtfWFh41JiSkhLKy8vZu3cvtm1XGbN+/fpYHz6fj0aNGlWKOXidw4VCIUKhUOx9SUlJdT+OWmGYJt6ERAyPgWM5WG6UQ6s/eexEImEb14ris8B0LMJRkwhRoo6NG4lg+P1HvoB14NfH1vI9EREREREREamZGs+USklJ4Z133mH16tWxwuMfffQR77zzDtFolAULFnDeeefxz3/+s0b9Dh8+nE8++YT58+fHtd92223k5ubSuXNnbrzxRl588UX++te/snnz5poO/aSbPHkyKSkpsVdGRsZJH4MZCOAJeLHcaKVC5yZJlEcjRKNlJFhRTMckEoKoZRJ1osesK6VC5yIiIiIiIiJyvGqclEpPT+eGG27gs88+4y9/+Qt/+ctf2Lx5Mz/72c8488wz+fTTTxk0aBBjxoypdp8jRozgjTfe4N1336V169ZHjc3KygJg06ZNsfEcvgPewffp6elHjUlOTiYhIYFm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+Y6AJjrf7w0aNAjXdT+28saWLVsYNmxYTL3qvebMmcOTTz7Jb37zG0aOHFk+PmzYMPL5PM3Nzd3a63f48tasWcPWrVs57rjj8DwPz/NYuXIld911F57nMXToUMV+Hxk+fDhHHXVUt2Njx45l06ZNAOX46u+fve+qq67immuu4bzzzmPcuHFccMEFzJ07l0WLFgGKfaXsSZyHDRv2sYm2i8Ui27dv12+xFynfqSzlO5WnfCc+ynfio3ynZ4g731FRaj+XSCSYOHEiDQ0N5WNhGNLQ0EBdXV2MPetdrLXMmTOHX/3qVzz77LOMGTOm2/mJEyfi+36332HDhg1s2rRJv8OXdMopp/CHP/yBV155pbxNmjSJGTNmlF8r9vvGlClTPrYU+BtvvMHBBx8MwJgxYxg2bFi32Le2tvLCCy8o9l9SJpPBcbr/L9p1XcIwBBT7StmTONfV1dHc3MyaNWvKbZ599lnCMGTy5MkV73NvpXynMpTvxEf5TnyU78RH+U7PEHu+86WmSZce4eGHH7bJZNLef//99rXXXrOXXHKJra2ttU1NTXF3rde47LLLbE1NjV2xYoV9//33y1smkym3ufTSS+3o0aPts88+a1966SVbV1dn6+rqYux177XrajTWKvb7yosvvmg9z7O33HKL3bhxo33ooYdsnz597L/927+V2yxevNjW1tba//qv/7Kvvvqq/fa3v23HjBljOzs7Y+z5/m/mzJn2oIMOsk8++aR9++237X/+53/aQYMG2auvvrrcRrHfO9ra2uzLL79sX375ZQvYf/iHf7Avv/yyfeedd6y1exbn0047zR577LH2hRdesM8995w9/PDD7fTp0+O6pV5L+c6+p3ynZ1G+UxnKd+KjfKdyenK+o6JUL3H33Xfb0aNH20QiYU844QS7atWquLvUqwCfuP385z8vt+ns7LTf//73bf/+/W2fPn3sX/3VX9n3338/vk73Yh9N0hT7feeJJ56wX/va12wymbRHHnmk/ed//udu58MwtNdff70dOnSoTSaT9pRTTrEbNmyIqbe9R2trq73iiivs6NGjbSqVsl/5ylfsddddZ3O5XLmNYr93/OY3v/nEv99nzpxprd2zOG/bts1Onz7dVlVV2erqanvRRRfZtra2GO6m91O+s28p3+lZlO9UjvKdeCjfqZyenO8Ya639cmOtREREREREREREPh/NKSUiIiIiIiIiIhWnopSIiIiIiIiIiFScilIiIiIiIiIiIlJxKkqJiIiIiIiIiEjFqSglIiIiIiIiIiIVp6KUiIiIiIiIiIhUnIpSIiIiIiIiIiJScSpKiYiIiIiIiIhIxakoJSKyH1ixYgXGGJqbm+PuioiIiMhep1xH5MCkopSIiIiIiIiIiFScilIiIiIiIiIiIlJxKkqJiOyBMAxZtGgRY8aMIZ1OM2HCBP793/8d2DncfNmyZYwfP55UKsWJJ57I2rVru13jP/7jPzj66KNJJpMccsgh3HHHHd3O53I55s+fz6hRo0gmkxx22GH867/+a7c2a9asYdKkSfTp04eTTjqJDRs27NsbFxERkQOCch0RiYOKUiIie2DRokU8+OCDLF26lHXr1jF37lzOP/98Vq5cWW5z1VVXcccdd7B69WoGDx7MGWecQaFQAKIE65xzzuG8887jD3/4AzfddBPXX389999/f/nzF154Ib/85S+56667WL9+PT/96U+pqqrq1o/rrruOO+64g5deegnP85g1a1ZF7l9ERER6N+U6IhIHY621cXdCRKQny+VyDBgwgGeeeYa6urry8e9973tkMhkuueQSvvGNb/Dwww9z7rnnArB9+3ZGjhzJ/fffzznnnMOMGTP44IMP+N///d/y56+++mqWLVvGunXreOONNzjiiCNYvnw5U6dO/VgfVqxYwTe+8Q2eeeYZTjnlFAB+/etfM23aNDo7O0mlUvs4CiIiItJbKdcRkbhopJSIyGd48803yWQyfOtb36Kqqqq8Pfjgg7z11lvldrsmcQMGDOCII45g/fr1AKxfv54pU6Z0u+6UKVPYuHEjQRDwyiuv4LouX//61z+1L+PHjy+/Hj58OABbt2790vcoIiIiBy7lOiISFy/uDoiI9HTt7e0ALFu2jIMOOqjbuWQy2S1Z+6LS6fQetfN9v/zaGANEc0CIiIiIfFHKdUQkLhopJSLyGY466iiSySSbNm3isMMO67aNGjWq3G7VqlXl1zt27OCNN95g7NixAIwdO5bnn3++23Wff/55vvrVr+K6LuPGjSMMw27zNoiIiIhUgnIdEYmLRkqJiHyGfv368YMf/IC5c+cShiEnn3wyLS0tPP/881RXV3PwwQcDcPPNVvWEcgAAAZFJREFUNzNw4ECGDh3Kddddx6BBgzjzzDMB+Nu//VuOP/54Fi5cyLnnnktjYyNLlizhJz/5CQCHHHIIM2fOZNasWdx1111MmDCBd955h61bt3LOOefEdesiIiJyAFCuIyJxUVFKRGQPLFy4kMGDB7No0SL++Mc/Ultby3HHHceCBQvKQ8oXL17MFVdcwcaNGznmmGN44oknSCQSABx33HE8+uij3HDDDSxcuJDhw4dz8803893vfrf8Hffeey8LFizg+9//Ptu2bWP06NEsWLAgjtsVERGRA4xyHRGJg1bfExH5krpWi9mxYwe1tbVxd0dERERkr1KuIyL7iuaUEhERERERERGRilNRSkREREREREREKk6P74mIiIiIiIiISMVppJSIiIiIiIiIiFScilIiIiIiIiIiIlJxKkqJiIiIiIiIiEjFqSglIiIiIiIiIiIVp6KUiIiIiIiIiIhUnIpSIiIiIiIiIiJScSpKiYiIiIiIiIhIxakoJSIiIiIiIiIiFaeilIiIiIiIiIiIVNz/B+b5AIxjyiayAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(1, 2, figsize=(12, 5), sharex=True, sharey=False)\n", "for i in range(len(agents)):\n", @@ -725,18 +640,7 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABi0AAAMWCAYAAACN+sUqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAADjmUlEQVR4nOzde3hU9b33/c9MQiaIEE4FRKBBsCAgIKAUtIqagpQLpdJbqlQOWmtrUCBP3ZCtiK2HYGsRrRFaKmAPFDwUS8VCEQVvCxYJYqFVrIjS3RqQbQ0QZAgz6/mDO5NOMwlzWsysb96v51rXdbOyZs1v0sf3/iW/rLV8juM4AgAAAAAAAAAAyDB/pgcAAAAAAAAAAAAgsWgBAAAAAAAAAACyBIsWAAAAAAAAAAAgK7BoAQAAAAAAAAAAsgKLFgAAAAAAAAAAICuwaAEAAAAAAAAAALICixYAAAAAAAAAACArsGgBAAAAAAAAAACyAosWAAAAAAAAAAAgK7BoYdC9994rn8+ngwcPZnoo2rhxo3w+n5599tlMDwWAAfQNgGU0DoBlNA6AVfQNSD8WLXBKTzzxhJYtW5bpYTRo69atuu222zR48GA1a9ZMPp8v00MC4BHZ3LdwOKxly5bp6quvVteuXdWiRQv169dP999/v44dO5bp4QHwgGxunCQtXrxYl112mTp27KhAIKDu3btr6tSp+uCDDzI9NAAekO2N+3c1NTXq06ePfD6fHn744UwPB0CWy/a+TZkyRT6fr97Wu3fvTA8NhuRmegDIfk888YTat2+vKVOmZHooMb344ov62c9+pv79++ucc87Ru+++m+khAfCIbO7b0aNHNXXqVH3xi1/Ut7/9bXXo0EFbtmzR3LlztWHDBr388sss0gJoVDY3TpLefPNNde/eXVdffbXatGmjvXv3avHixXrhhRf01ltvqXPnzpkeIoAslu2N+3c//vGPtW/fvkwPA4BHeKFvgUBAP/vZz6L2FRQUZGg0sIhFC3jed77zHc2aNUvNmzfXtGnTWLQAYEJeXp7++Mc/avjw4ZF9t9xyiwoLCyMLF0VFRRkcIQCk5oknnqi3b9y4cRoyZIh+/vOfa/bs2RkYFQCk14EDB/T9739fs2bN0j333JPp4QBAWuTm5uob3/hGpocBw7g9lGEHDx7Uddddp1atWqldu3aaPn161C1Fli5dqiuuuEIdOnRQIBBQnz59tHDhwqhzFBYW6i9/+Ys2bdoUudxrxIgRka9/+umnmjlzpgoLCxUIBNSlSxdNmjSp3n38wuGwHnjgAXXp0kX5+fm68sor9d5776Xlc3bs2FHNmzdPy7kAeENT6FteXl7UgkWtr371q5Kkt99+O+X3AJCdmkLjGlJYWBgZHwCbmlrjZs+erV69evHLPaAJaGp9C4VCOnToUFrPCdTiSgvDrrvuOhUWFqqsrEyvv/66HnvsMf3rX//Sz3/+c0nSwoUL1bdvX1199dXKzc3V7373O912220Kh8MqLi6WJC1YsEC33367zjzzTN11112STi4SSNKRI0f0pS99SW+//bZuuukmDRo0SAcPHtTq1av1P//zP2rfvn1kLPPmzZPf79d3v/tdVVVV6Qc/+IEmTpyoP/3pT5Fjjh49qqNHj57yc+Xk5KhNmzZp+z4B8J6m3LfKykpJihoDAFuaWuP+93//V6FQSPv27dP3v/99SdKVV16Z5HcPQLZrSo3bunWrnnrqKb322mvc1hNoAppS344ePapWrVrp6NGjatOmja6//no99NBDOvPMM1P7JgK1HJgzd+5cR5Jz9dVXR+2/7bbbHEnOW2+95TiO4xw9erTea0eNGuWcc845Ufv69u3rXHbZZfWOveeeexxJzm9+85t6XwuHw47jOM4rr7ziSHLOO+88JxgMRr7+6KOPOpKcnTt31hv3qbbPf/7zDX724uJih//fGrCrKfetVlFRkdOqVSvnX//61ymPBeAtTbVxgUAgcky7du2cxx57LPY3CICnNbXGhcNh56KLLnKuv/56x3EcZ+/evY4k54c//GEj3yUAXtTU+jZ79mxn1qxZzsqVK51f//rXzuTJkx1JzsUXX+zU1NQ0/s0C4sSVFobVrtLWuv322/XEE0/oxRdfVP/+/aNuqVRVVaWamhpddtllWrdunaqqqk75AJ3nnntOAwYMiNyq5N/951+RTJ06VXl5eZF/f+lLX5Ikvf/+++rXr58kadKkSbrkkktO+bm4FRSAptq3Bx98UC+99JKeeOIJtW7d+pTnA+BNTa1xv//973Xs2DG9/fbb+uUvf6nq6upTnguAdzWVxi1btkw7d+7Us88+e8rXArChqfStrKws6t9f//rX9YUvfEF33XWXnn32WX39618/5TmBU2HRwrBzzz036t89evSQ3+/XBx98IEn64x//qLlz52rLli31LgeLJ5Z79uzR+PHj4xpLt27dov5de1nZv/71r8i+c845R+ecc05c5wPQtDXFvq1cuVJ33323br75Zn3nO99J6VwAsltTa9zll18uSRo9erSuueYa9evXT2eeeaamTZuW9DkBZK+m0LhDhw6ptLRUd955p7p27ZrQawF4V1PoW0NmzpypOXPm6KWXXmLRAmnBokUT8u+rrnv27NGVV16p3r17a/78+eratavy8vL04osv6pFHHlE4HE7re+fk5MTc7zhO5P995MgRHTlyJK5zfe5zn0vb2AB4n/W+rV+/XpMmTdKYMWO0aNGi5AcLwJOsN+7f9ejRQxdccIF+9atfsWgBNBEWG/fwww/r+PHjmjBhQuSXlf/zP/8j6eQvDD/44AN17tw56q+gAdhjsW8Nad68udq1a6dPPvkksYECDWDRwrC//e1v6t69e+Tf7733nsLhsAoLC/W73/1OwWBQq1evjlp9feWVV+qdp6EHhvXo0UO7du1K23gffvhhfe973zvlcZ///OcjEz8ATVNT6tuf/vQnffWrX9WQIUP09NNPKzeX/9MNWNeUGhfLZ599pmAwmIaRAchGTaFx+/bt07/+9S/17du33nEPPvigHnzwQb355psaOHBg2sYJIPOaQt8acvjwYR08eJA/Mkba8JsPw8rLyzVy5MjIv3/84x9LOnnp/auvviopeoW1qqpKS5curXeeFi1a6NNPP623f/z48fr+97+vVatW1bufnuM4DUa2ITzTAkC8mkrf3n77bY0ZM0aFhYV64YUX6B/QRDSFxp04cUKHDx+O3Kqg1tatW7Vz507dcMMNCY0BgHc0hcbdcccdGjduXNTXDxw4oFtvvVVTpkzRNddcE/WLTQA2NIW+HTt2TDU1NWrZsmXUMffdd58cx9FVV12V0BiAhrBoYdjevXt19dVX66qrrtKWLVv0y1/+UjfccIMGDBig/Px85eXlaezYsbr11lt15MgRLV68WB06dNBHH30UdZ7Bgwdr4cKFuv/++9WzZ0916NBBV1xxhe688049++yz+j//5//opptu0uDBg/XJJ59o9erVWrRokQYMGJDQeJO9l96HH36oX/ziF5Kkbdu2SZLuv/9+SSdXg2+88caEzwkguzWFvh0+fFijRo3Sv/71L915551as2ZN1Nd79OihYcOGJXROAN7QFBp35MgRde3aVRMmTFDfvn3VokUL7dy5U0uXLlVBQYHmzJmT0PkAeEdTaNygQYM0aNCgqH21f6Xct2/fegsaAGxoCn2rrKzUBRdcoOuvv169e/eWJK1bt04vvviirrrqKl1zzTUJnQ9okANz5s6d60hy/vrXvzpf+9rXnJYtWzpt2rRxpk2b5nz22WeR41avXu3079/fyc/PdwoLC52HHnrIWbJkiSPJ2bt3b+S4yspKZ8yYMU7Lli0dSc5ll10W+dr//u//OtOmTXPOPvtsJy8vz+nSpYszefJk5+DBg47jOM4rr7ziSHKeeeaZqDHu3bvXkeQsXbo05c9b+x6xtn8fKwDva0p9qz1PQ9vkyZNTOj+A7NOUGhcMBp3p06c7/fv3d1q1auU0a9bM+fznP+/cfPPNUZ8BgB1NqXGx1J77hz/8YdrPDSCzmlLf/vWvfznf+MY3nJ49ezpnnHGGEwgEnL59+zoPPvigc/z48ZTODfw7n+P823VJAAAAAAAAAAAAGeLP9AAAAAAAAAAAAAAkFi0AAAAAAAAAAECWYNECAAAAAAAAAABkBRYtAHjKq6++qrFjx6pz587y+Xx6/vnnT/majRs3atCgQQoEAurZs6eWLVvm+jgBIFH0DYBlNA6AZTQOgFWZ6ptrixbl5eUqLCxUfn6+hg4dqq1bt7r1VgCakOrqag0YMEDl5eVxHb93716NGTNGl19+uXbs2KEZM2bom9/8ptatW+fySAEgMfQNgGU0DoBlNA6AVZnqm89xHCeZATdm5cqVmjRpkhYtWqShQ4dqwYIFeuaZZ7R792516NAh3W8HoIny+XxatWqVxo0b1+Axs2bN0po1a7Rr167Ivq9//ev69NNPtXbt2tMwSgBIHH0DYBmNA2AZjQNg1ensmytXWsyfP1+33HKLpk6dqj59+mjRokU644wztGTJEjfeDoDHBYNBHTp0KGoLBoNpOfeWLVtUVFQUtW/UqFHasmVLWs4PAI2hbwAso3EArHKzbxKNA5BZXpjD5aZlNP/m+PHjqqioUGlpaWSf3+9XUVFR3IMb2ezr6R4WgCT8oWZF0q8NV34h7mPLFt2g733ve1H75s6dq3vvvTfp969VWVmpjh07Ru3r2LGjDh06pM8++0zNmzdP+T0SNTLvhtP+ngDq+8Px5Um9jr41jnkckHnM4dzBHA7IDl6fw0lZ2jjmcEBWSHYely2NS1ff0r5ocfDgQYVCoZiDe+edd9L9dgCyVFjhuI8tLS1VSUlJ1L5AIJDuIQFAWtA3AJbROABW0TcAlllrXNoXLRIVDAbrXX4SdkLy+3IyNCIA6RBy4o9lIBBwLY6dOnXS/v37o/bt379frVq1Oi1/vULjAHvoWx0aB9hD406ib4A92dI3icYBSL9saVy6+pb2Z1q0b99eOTk5MQfXqVOneseXlZWpoKAgatsbfjvdwwJwmoXlxL25adiwYdqwYUPUvvXr12vYsGGuvm+t2I3762l5bwDuoG91mMcB9tC4k5jDAfZkS9+kbG0cczjAy7KlcenqW9oXLfLy8jR48OCowYXDYW3YsCHm4EpLS1VVVRW1dfefl+5hATjNwgn8f4k4cuSIduzYoR07dkiS9u7dqx07dmjfvn2STjZl0qRJkeO//e1v6/3339d//dd/6Z133tETTzyhp59+WjNnzkzbZ21M7Mb1OS3vDcAd9K0O8zjAHhqnyHiYwwG2uNU3yUrjmMMBXmZtDufK7aFKSko0efJkDRkyRBdddJEWLFig6upqTZ06td6xsS5HycnNc2NYAE6jkOPOyu22bdt0+eWXR/5dew++yZMna9myZfroo48i4ZSk7t27a82aNZo5c6YeffRRdenSRT/72c80atQoV8b3n2I1jktuAW+jb3ViNs7f7LS9P4D0o3EnMYcD7HGrb5KNxvG7OMDbrM3hfI7jzid6/PHH9cMf/lCVlZUaOHCgHnvsMQ0dOjSu147Kn+jGkAAkaN2xXyX92v/9Z5e4j23X+X+Sfh8vGpl3Q6aHAEDSH44vT+p19K1xNA7IvGT7JtG4xtA3IDswh3MHv4sDskOyv4uz1jjXHsQ9bdo0TZs2za3TA8hyp+M+oACQCfQNgGU0DoBV9A2AZdYa59qiBYCmzc1LbwEgk+gbAMtoHACr6BsAy6w1jkULAK5I/NFlTYcvh/shA15G3wBYRuMa5vP7Mj0EACmgb6fg82d6BABSYK1xLFoAcEXI2GVpAFCLvgGwjMYBsIq+AbDMWuNYtADgipCtVgJABH0DYBmNA2AVfQNgmbXGsWgBwBU14vJ5ADbRNwCW0TgAVtE3AJZZaxyLFgBcETa2wgsAtegbAMtoHACr6BsAy6w1LisXLRxr32WgCQoZW+EFgFr0rXE8qBbwNhoHwCr61jgnFMr0EACkwFrj/G6/wbx58+Tz+TRjxgy33wpAFgnJF/cGAF5C3wBYRuMAWEXfAFhmrXGuXmnxxhtv6Cc/+Yn69+/v5tsAyEJhxxsRBIBE0TcAltE4AFbRNwCWWWuca1daHDlyRBMnTtTixYvVpk0bt94GQJaytsILALXoGwDLaBwAq+gbAMusNc61Ky2Ki4s1ZswYFRUV6f7770/sxU7YnUEBOG1qnJxMDyFrca9QwNvo2yn4XL/7KAAX0biG8exFwNvoGwDLrDXOlUWLFStWaPv27XrjjTfcOD0AD/DKyi0AJIq+AbCMxgGwir4BsMxa49K+aPH3v/9d06dP1/r165Wfn3/K44PBoILBYNS+sBOS32drdQhoakIOf2kr0TjAIvpWh8YB9tC4k+gbYA99q0PjAHusNS7tn6aiokIHDhzQoEGDlJubq9zcXG3atEmPPfaYcnNzFfqP26KUlZWpoKAgatsbfjvdwwJwmoXlj3uzLHbj/prpYQFIAX2rE6tx75/YlelhAUgBjTuJORxgD32rQ+MAe6w1zuc4TlpvzHn48GF9+OGHUfumTp2q3r17a9asWerXr1/U12Kt7l7b9mZWd4Es8IeaFUm/9uUPesV97BWFu5N+n2wXs3HtbqFxQBb4w/HlSb2OvtWJ1bjxHb5N44AMW/fZL5J+LY07iTkckL2Yw6WOxgHZi8adlPbbQ7Vs2bLewkSLFi3Url27evslKRAIKBAIRO0jkoD3WbssLVk0DrCHvtWJ2Tj5JCecoREBSBWNOylW33JyXHkkJIDThL7VoXGAPdYaR5EAuKJG/GIegE30DYBlNA6AVfQNgGXWGndaFi02btx4Ot4GQBaxtsILALXoGwDLaBwAq+gbAMusNY4rLQC4wisP9gGARNE3AJbROABW0TcAlllrXFYuWvhybF3OAjRFIceX6SEAgCvoGwDLaFzDnLCT6SEASAF9a5wTCmV6CABSYK1xWbloAcD7QsZWeAGgFn0DYBmNA2AVfQNgmbXGsWgBwBVhY/fSA4Ba9A2AZTQOgFX0DYBl1hrHogUAV1hb4QWAWvQNgGU0DoBV9A2AZdYax6IFAFfUODybBoBN9A2AZTQOgFX0DYBl1hrHogUAV4SMXZaWVk440yMAkAL6BsAyGgfAKvp2Cj6+P4CXWWtc2j9NKBTSnDlz1L17dzVv3lw9evTQfffdJ8dx0v1WALJYWL64NwDwEvoGwDIaB8Aq+gbAMmuNS/uVFg899JAWLlyop556Sn379tW2bds0depUFRQU6I477kj32wHIUtZWeAGgFn0DYBmNA2AVfQNgmbXGpX3RYvPmzbrmmms0ZswYSVJhYaF+/etfa+vWrel+KwBZzNoDgACgFn0DYBmNA2AVfQNgmbXGpX3RYvjw4frpT3+qd999V1/4whf01ltv6bXXXtP8+fPjPwn30QM8L+x443KzjKBxgKfRNwCW0TgAVtG3xvn8fH8AL7PWuLQvWsyePVuHDh1S7969lZOTo1AopAceeEATJ05M91sByGI1TtrzAgBZgb4BsIzGAbCKvgGwzFrj0v5pnn76af3qV7/S8uXL1bdvX+3YsUMzZsxQ586dNXny5HrHB4NBBYPBqH1hJyS/LyfdQwNwGoU88mAft9E4wB76VofGAfbQuJPoG2APfatD4wB7rDUu7fcoufPOOzV79mx9/etf1/nnn68bb7xRM2fOVFlZWczjy8rKVFBQELW9f2JXuocF4DQLO/64N8tiNW5v+K+ZHhaAFNC3OjHncaG/ZHpYAFJA405iDgfYQ9/qMIcD7LHWuLSP8ujRo/L7o0+bk5OjcDgc8/jS0lJVVVVFbefk9kv3sACcZiH54t4SVV5ersLCQuXn52vo0KHaunVro8cvWLBAvXr1UvPmzdW1a1fNnDlTx44dS/ajJSRW47r7+5yW9wbgDjf7Jnm/cefk9D0t7w3AHczhTmIOB9jDHK4OczjAHmtzuLTfHmrs2LF64IEH1K1bN/Xt21dvvvmm5s+fr5tuuinm8YFAQIFAIGofl6MB3ufWyu3KlStVUlKiRYsWaejQoVqwYIFGjRql3bt3q0OHDvWOX758uWbPnq0lS5Zo+PDhevfddzVlyhT5fD7Nnz/flTH+u1iNy8nNc/19AbjHzb9MsdA4n+OX4ziuvzcAdzCHOynmHC7H1r2igaaGOVydmL+L8zdz/X0BuMfaHC7tn+bHP/6xvva1r+m2227Teeedp+9+97u69dZbdd9996X7rQBksZDjj3tLxPz583XLLbdo6tSp6tOnjxYtWqQzzjhDS5YsiXn85s2bdfHFF+uGG25QYWGhRo4cqeuvv/6Uq8IA0BC3+ibROACZxxwOgFXM4QBYZm0Ol/ZFi5YtW2rBggX68MMP9dlnn2nPnj26//77lZfHXxYDTUmNkxP3FgwGdejQoajtPx8KJknHjx9XRUWFioqKIvv8fr+Kioq0ZcuWmOMYPny4KioqInF8//339eKLL+orX/mKOx8cgHlu9E2icQCyA3M4AFYxhwNgmbU5nDeevAHAc8KOL+4t1kPAysrK6p3z4MGDCoVC6tixY9T+jh07qrKyMuY4brjhBn3/+9/XJZdcombNmqlHjx4aMWKE/vu//9uVzw3APjf6JtE4ANmBORwAq5jDAbDM2hyOm3ICcEUogTXRe0pLVVJSErXvP++vmayNGzfqwQcf1BNPPKGhQ4fqvffe0/Tp03Xfffdpzpw5aXmPhPmTe7AbgOyQLX2TsrRxADwtWxqXlX3z8Td/gJdlS9+kLG2cE87M+wJIi2xpXLr6xqIFAFeEnfh/MR/rIWCxtG/fXjk5Odq/f3/U/v3796tTp04xXzNnzhzdeOON+uY3vylJOv/881VdXa1vfetbuuuuu+T388MngMS40TeJxgHIDszhAFjFHA6AZdbmcFQQgCvC8se9xSsvL0+DBw/Whg0b6t4nHNaGDRs0bNiwmK85evRovSDm5ORIkhzHSeKTAWjq3OibROMAZAfmcACsYg4HwDJrcziutADgilACK7yJKCkp0eTJkzVkyBBddNFFWrBggaqrqzV16lRJ0qRJk3T22WdH7sU3duxYzZ8/XxdccEHksrQ5c+Zo7NixkWgCQCLc6ptE4wBkHnM4AFYxhwNgmbU5HIsWAFxxIuzORGvChAn6+OOPdc8996iyslIDBw7U2rVrIw8F2rdvX9SK7t133y2fz6e7775b//jHP/S5z31OY8eO1QMPPODK+ADY51bfJBoHIPOYwwGwijkcAMuszeF8ThZedzYy74ZMDwGApD8cX570a2/b/o24j31i0C+Tfh8vGtX8xkwPAYCkdZ/9IqnX0bfG0Tgg85Ltm0TjGkPfgOzAHM4d/C4OyA7J/i7OWuMSfqbFq6++qrFjx6pz587y+Xx6/vnnI1+rqanRrFmzdP7556tFixbq3LmzJk2apH/+85/pHDMADwg7vrg3APAS+gbAMhoHwCr6BsAya41LeNGiurpaAwYMUHl5eb2vHT16VNu3b9ecOXO0fft2/eY3v9Hu3bt19dVXp2WwALwj7Pjj3gDAS+gbAMtoHACr6BsAy6w1LuFnWowePVqjR4+O+bWCggKtX78+at/jjz+uiy66SPv27VO3bt2SGyUAzwnLGyu3AJAo+gbAMhoHwCr6BsAya41z/UHcVVVV8vl8at26tdtvBSCLhDxyuVlGOOFMjwBACugbAMtoXMOcUCjTQwCQAvrWOJ+f7w/gZdYa5+qixbFjxzRr1ixdf/31atWqlZtvBSDLeOVyMwBIFH0DYBmNA2AVfQNgmbXGubZoUVNTo+uuu06O42jhwoUNHhcMBhUMBqP2hZ2Q/L4ct4YG4DQ4YSyWyaJxgD30rQ6NA+yhcSfRN8Ae+laHxgH2WGucK5+mdsHiww8/1Pr16xu9yqKsrEwFBQVR297wX90YFoDTKOz44t4si9W490N/yfSwAKSAvtWJ2bgTuzI9LAApoHEn8XMqYA99q8PPqYA91hqX9kWL2gWLv/3tb3rppZfUrl27Ro8vLS1VVVVV1Nbd3yfdwwJwmoUdf9ybZbEad05O30wPC0AK6FudmI3L7ZfpYQFIAY07iZ9TAXvoWx1+TgXssda4hG8PdeTIEb333nuRf+/du1c7duxQ27ZtddZZZ+lrX/uatm/frhdeeEGhUEiVlZWSpLZt2yovL6/e+QKBgAKBQNS+nNz6xwHwFq+s3LotVuO45BbwNvpWJ2bj5JOccIZGBCBVNO4k5nCAPfStTqzG+Ry/HMfJ0IgApMpa4xJetNi2bZsuv/zyyL9LSkokSZMnT9a9996r1atXS5IGDhwY9bpXXnlFI0aMSH6kADwlLFuxBIBa9A2AZTQOgFX0DYBl1hqX8KLFiBEjGl15ZVUWgGRvhRcAatE3AJbROABW0TcAlllrXMKLFgAQjxNhb9wjDwASRd8AWEbjAFhF3wBYZq1x2blo4be1MgQ0RdZWeAGgFn07BZ+tyTLQ1NC4hvn4ORXwNPoGwDJrjcvORQsAnmftXnoAUIu+AbCMxgGwir4BsMxa41i0AOAKayu8AFCLvgGwjMYBsIq+AbDMWuNYtADgCmuxBIBa9A2AZTQOgFX0DYBl1hrHogUAV1iLJQDUom8ALKNxAKyibwAss9Y4Fi0AuCIU5kGsAGyibwAso3ENc8JOpocAIAX0rXG+nJxMDwFACqw1LuFP8+qrr2rs2LHq3LmzfD6fnn/++XrHvP3227r66qtVUFCgFi1a6MILL9S+ffvSMV4AHhGWL+4NALyEvgGwjMYBsIq+AbDMWuMSXrSorq7WgAEDVF5eHvPre/bs0SWXXKLevXtr48aN+vOf/6w5c+YoPz8/5cEC8I6w44t7AwAvoW8ALKNxAKyibwAss9a4hG8PNXr0aI0ePbrBr9911136yle+oh/84AeRfT169EhudAA8y/FIBAEgUfQNgGU0DoBV9A2AZdYal9ZnWoTDYa1Zs0b/9V//pVGjRunNN99U9+7dVVpaqnHjxqXzrQBkOa+s3GZELo8TAryMvgGwjMY1jPu9A95G304hx9b98IGmxlrj0lqkAwcO6MiRI5o3b56uuuoq/eEPf9BXv/pVXXvttdq0aVM63wpAlnMcX9wbAHgJfQNgGY0DYBV9A2CZtcal/UoLSbrmmms0c+ZMSdLAgQO1efNmLVq0SJdddlm91wSDQQWDwejzOCH5ffwVC+BlobA3Iug2GgfYQ9/q0DjAHhp3En0D7KFvdWgcYI+1xqX1Sov27dsrNzdXffr0idp/3nnnad++fTFfU1ZWpoKCgqjt/Zpd6RwWgAwIyxf3Zlnsxu3M9LAApIC+1YnZuBPM4wAvo3En0TfAHvpWh59TAXusNS6tixZ5eXm68MILtXv37qj97777rj7/+c/HfE1paamqqqqitnOa9UvnsABkgLXL0pIVu3HnZ3pYAFJA3+rEbFwu8zjAy2jcSfQNsIe+1eHnVMAea41L+PZQR44c0XvvvRf59969e7Vjxw61bdtW3bp105133qkJEybo0ksv1eWXX661a9fqd7/7nTZu3BjzfIFAQIFAIGpfTm5eosMCkGWsPQAoWbEaxyW3gLfRtzoxG5eT1ruPAjjNaNxJMfuW2yxDowGQDvStDj+nAvZYa1zCP1Vu27ZNl19+eeTfJSUlkqTJkydr2bJl+upXv6pFixaprKxMd9xxh3r16qXnnntOl1xySfpGDSDrOU6mRwAA7qBvACyjcQCsom8ALLPWuIQXLUaMGCHnFN+Fm266STfddFPSgwLgfV653AwAEkXfAFhG4wBYRd8AWGatcVy/D8AV1mIJALXoGwDLaBwAq+gbAMusNS4rFy2cmhOZHgKAFIXCtmIJALXo2yn4+P4AXkbjGmHtvgtAE0PfTiEUzvQIAKTAWuOyctECgPdZW+EFgFr0DYBlNA6AVfQNgGXWGseiBQBXWIslANSibwAso3EArKJvACyz1jh/pgcAwCYngS1R5eXlKiwsVH5+voYOHaqtW7c2evynn36q4uJinXXWWQoEAvrCF76gF198MYl3BgB3+ybROACZxRwOgFXM4QBYZm0Ox5UWAFzh1grvypUrVVJSokWLFmno0KFasGCBRo0apd27d6tDhw71jj9+/Li+/OUvq0OHDnr22Wd19tln68MPP1Tr1q1dGR8A+9z8CxYaByDTmMMBsIo5HADLrM3hsnLRwgmFMj0EAKly6TmF8+fP1y233KKpU6dKkhYtWqQ1a9ZoyZIlmj17dr3jlyxZok8++USbN29Ws2bNJEmFhYXuDC5eJ05k9v0BpMbF57CaaBwPqgW8jTkcAKuYwzXO4UHcgKcZm8MldHuosrIyXXjhhWrZsqU6dOigcePGaffu3VHHHDt2TMXFxWrXrp3OPPNMjR8/Xvv37094YAC8LRz2xb3F6/jx46qoqFBRUVFkn9/vV1FRkbZs2RLzNatXr9awYcNUXFysjh07ql+/fnrwwQcVYnEUQJLc6JtE4wBkB+ZwAKxiDgfAMmtzuISutNi0aZOKi4t14YUX6sSJE/rv//5vjRw5Un/961/VokULSdLMmTO1Zs0aPfPMMyooKNC0adN07bXX6o9//GNCAwPgbYlclhYMBhUMBqP2BQIBBQKBqH0HDx5UKBRSx44do/Z37NhR77zzTsxzv//++3r55Zc1ceJEvfjii3rvvfd02223qaamRnPnzo17jABQy42+STQOQHZgDgfAKuZwACyzNodL6EqLtWvXasqUKerbt68GDBigZcuWad++faqoqJAkVVVV6cknn9T8+fN1xRVXaPDgwVq6dKk2b96s119/PZG3AuB1ji/uraysTAUFBVFbWVlZWoYRDofVoUMH/fSnP9XgwYM1YcIE3XXXXVq0aFFazg+gCcqSvkk0DoALsqRx9A1A2mVJ3yQaB8AFWdK4dPUtpWdaVFVVSZLatm0rSaqoqFBNTU3UJSO9e/dWt27dtGXLFn3xi1+M67w+v3sPRwJweiRyS/PS0lKVlJRE7Yv1Fyzt27dXTk5OvVvO7d+/X506dYp57rPOOkvNmjVTTk5OZN95552nyspKHT9+XHl5efEPNE2cMPd7B7zMjb5JdhonbmsAeBpzuEYwhwM8jTlc4/g5FfA2a3O4hK60+HfhcFgzZszQxRdfrH79+kmSKisrlZeXV+9p4B07dlRlZWWybwXAi5z4t0AgoFatWkVtsWKZl5enwYMHa8OGDZF94XBYGzZs0LBhw2IO4+KLL9Z7772ncLjuoWLvvvuuzjrrrMz8sAvA+1zom0TjAGQJ5nAArGIOB8AyY3O4pBctiouLtWvXLq1YsSLZU0g6eQ+tQ4cORW1hh7/QA7zOcXxxb4koKSnR4sWL9dRTT+ntt9/Wd77zHVVXV2vq1KmSpEmTJqm0tDRy/He+8x198sknmj59ut59912tWbNGDz74oIqLi9P6eRtC4wB73OqbROMAZB5zuJPoG2APc7g6NA6wx9ocLqnbQ02bNk0vvPCCXn31VXXp0iWyv1OnTjp+/Lg+/fTTqKstGrtkpKysTN/73vei9p2T0089c/snMzQAWcIJu3ObtwkTJujjjz/WPffco8rKSg0cOFBr166NPBRo37598vvr1mO7du2qdevWaebMmerfv7/OPvtsTZ8+XbNmzXJlfP8pZuP8/dQj5/zT8v4A0s+tvklGGsc8DvA05nAnxe7b+erZbMBpeX8A6cccrg4/pwL2WJvD+Rwn/jteOY6j22+/XatWrdLGjRt17rnnRn29qqpKn/vc5/TrX/9a48ePlyTt3r1bvXv3bvCZFrGeVj7+c9+S35dT71gAp9e6Y79K+rWFP58X97EfTJqd9Ptku1iNu7bdLTQOyAJ/OL48qdfRtzrM44DsxBwudTH71uHb9A3IAus++0VSr6Nvdfg5Fche/Jx6UkJXWhQXF2v58uX67W9/q5YtW0aeU1FQUKDmzZuroKBAN998s0pKStS2bVu1atVKt99+u4YNG9bgQ7gDgUC9e2b5/c2S/DgAsod7f8XiJbEal5PLPUoBb6NvtZjHARbROKmBvsknOeEGXgEg+9G3WvycClhkq3EJLVosXLhQkjRixIio/UuXLtWUKVMkSY888oj8fr/Gjx+vYDCoUaNG6YknnkjLYAF4SNzXcAGAx9A3AJbROABW0TcAlhlrXEKLFvHcSSo/P1/l5eUqLy9PelAADDAWSwCIoG8ALKNxAKyibwAsM9a4pB7EDQCn5Ni6LA0AIugbAMtoHACr6BsAy4w1LjsXLfy2vslAUxTHhVlNF/dCBjyNvgGwjMYBsIq+nUKOP9MjAJACa43LzkULAN4XZvERgFH0DYBlNA6AVfQNgGXGGseiBQBX+Iyt8AJALfoGwDIaB8Aq+gbAMmuNY9ECgDuMxRIAIugbAMtoHACr6BsAy4w1jkULAO4w9gAgAIigbwAso3EArKJvACwz1risXLTw5eRkeggAUmVshTetcrMyvQDiRd8ax0McAW+jcQ3j51TA2+hbo3zNmmV6CABSYaxxCf1UWVZWpgsvvFAtW7ZUhw4dNG7cOO3evTvmsY7jaPTo0fL5fHr++efTMVYAXuIksAGAl9A3AJbROABW0TcAlhlrXEKLFps2bVJxcbFef/11rV+/XjU1NRo5cqSqq6vrHbtgwQL5fLYuSwGQgLAv/g0AvIS+AbCMxgGwir4BsMxY4xK6R8natWuj/r1s2TJ16NBBFRUVuvTSSyP7d+zYoR/96Efatm2bzjrrrPSMFICn+DyycgsAiaJvACyjcQCsom8ALLPWuJRurF5VVSVJatu2bWTf0aNHdcMNN6i8vFydOnVK6ry+5vmpDAtANjAWy3Tytzgj00MAkAr61igaB3gcjWuQ/8wWmR4CgFTQt0b58nimBeBpxhqX9JMSw+GwZsyYoYsvvlj9+vWL7J85c6aGDx+ua665Ji0DBAAAAAAAAAAATUPSV1oUFxdr165deu211yL7Vq9erZdffllvvvlm3OcJBoMKBoNR+8JOSH5fTrJDA5AFrF2WliwaB9hD3+rQOMAeGncSfQPsoW91aBxgj7XGJXWlxbRp0/TCCy/olVdeUZcuXSL7X375Ze3Zs0etW7dWbm6ucnNPromMHz9eI0aMiHmusrIyFRQURG17qrcnMywA2cTxxb8ZRuMAg+hbBI0DDKJxkugbYBJ9i6BxgEHGGpfQooXjOJo2bZpWrVqll19+Wd27d4/6+uzZs/XnP/9ZO3bsiGyS9Mgjj2jp0qUxz1laWqqqqqqorUeLQcl9GgDZI5zAZhiNAwyibxE0DjCIxkmib4BJ9C2CxgEGGWtcQreHKi4u1vLly/Xb3/5WLVu2VGVlpSSpoKBAzZs3V6dOnWI+fLtbt271FjhqBQIBBQKB6J1Hg175/gFogLXL0pIVq3G+mrAcKgd4Fn2rwzwOsIfGnRRzDnfCkaMTGRoRgFTRtzrM4QB7rDUuoUWLhQsXSlK9Wz0tXbpUU6ZMSdeYAFhgLJYAEEHfAFhG4wBYRd8AWGascQktWjhO4p8+mdcAMID/9AFYRd8AWEbjAFhF3wBYZqxxCS1aAEC8rF2WBgC16BsAy2gcAKvoGwDLrDUuOxctTnCfUMDzHF+mR5C1nOPHMz0EAKmgb40LcTdkwNNoXIOYwwEeR98ax51SAG8z1rjsXLQA4Hk+fmcFwCj6BsAyGgfAKvoGwDJrjWPRAoA7+CMNAFbRNwCW0TgAVtE3AJYZaxyLFgBcYe1eegBQi74BsIzGAbCKvgGwzFrjWLQA4A5jsQSACPoGwDIaB8Aq+gbAMmONy8pFCyds7LsMNEX8Z9ywUCjTIwCQCvrWOMfYzVSBpobGNYyH1ALexn/CjeN3cYC3GftP2J/IwWVlZbrwwgvVsmVLdejQQePGjdPu3bujjqmsrNSNN96oTp06qUWLFho0aJCee+65tA4aQPbzOfFvAOAl9A2AZTQOgFX0DYBl1hqX0KLFpk2bVFxcrNdff13r169XTU2NRo4cqerq6sgxkyZN0u7du7V69Wrt3LlT1157ra677jq9+eabaR88AAAAAAAAAACwI6HbQ61duzbq38uWLVOHDh1UUVGhSy+9VJK0efNmLVy4UBdddJEk6e6779YjjzyiiooKXXDBBWkaNoBs5+PuIACMom8ALKNxAKyibwAss9a4lJ5pUVVVJUlq27ZtZN/w4cO1cuVKjRkzRq1bt9bTTz+tY8eOacSIEXGf1+f3pTIsANnAI5ebZYQvoYvcAGQb+gbAMhrXMJ5LBngbfQNgmbHGJb1oEQ6HNWPGDF188cXq169fZP/TTz+tCRMmqF27dsrNzdUZZ5yhVatWqWfPnmkZMACPMBZLAIigbwAso3EArKJvACwz1rik/9y3uLhYu3bt0ooVK6L2z5kzR59++qleeuklbdu2TSUlJbruuuu0c+fOmOcJBoM6dOhQ1BZ2+AsWwOvcfABQeXm5CgsLlZ+fr6FDh2rr1q1xvW7FihXy+XwaN25c4m+aJBoH2OP2A85oHIBMYg53En0D7GEOV4fGAfZYm8MltWgxbdo0vfDCC3rllVfUpUuXyP49e/bo8ccf15IlS3TllVdqwIABmjt3roYMGaLy8vKY5yorK1NBQUHU9n7oL8kMC0A2cRLYErBy5UqVlJRo7ty52r59uwYMGKBRo0bpwIEDjb7ugw8+0He/+1196UtfSvijpCJm407sOq1jAJBmLvVNMtI45nGAtzGHk0TfAJOYw0XwcypgkLE5XEKLFo7jaNq0aVq1apVefvllde/ePerrR48ePXlSf/Rpc3JyFA7HfhpIaWmpqqqqorZzcvomMiwAWcitFd758+frlltu0dSpU9WnTx8tWrRIZ5xxhpYsWdLga0KhkCZOnKjvfe97Ouecc1L8ZImJ2bjcfqd+IYCs5eZfsJhoHPM4wNOYw51E3wB7mMPV4edUwB5rc7iEnmlRXFys5cuX67e//a1atmypyspKSVJBQYGaN2+u3r17q2fPnrr11lv18MMPq127dnr++ee1fv16vfDCCzHPGQgEFAgEovb5/c2S+jAAskjsdcqUHD9+XBUVFSotLY3s8/v9Kioq0pYtWxp83fe//3116NBBN998s/7v//2/6R9YI2I2Tj7JceEbBOD0cOk/XzONYx4HeBtzOEkN9M2Xc1rHACDNmMNF8HMqYJCxOVxCixYLFy6UJI0YMSJq/9KlSzVlyhQ1a9ZML774ombPnq2xY8fqyJEj6tmzp5566il95StfSWqAALwpkZXbYDCoYDAYtS/WJOrgwYMKhULq2LFj1P6OHTvqnXfeiXnu1157TU8++aR27NgR/4AAoBFu9E2icQCyA3M4AFYxhwNgmbU5XMK3h4q1TZkyJXLMueeeq+eee0779+9XdXW13nrrLd14440pDRKAByVwL71Y99MsKytLeQiHDx/WjTfeqMWLF6t9+/Ypnw8AJGVF3yQaB8AlWdA4+gbAFVnQN4nGAXBJFjQunX1L6EoLAIhbAiu8paWlKikpidoX6y9Y2rdvr5ycHO3fvz9q//79+9WpU6d6x+/Zs0cffPCBxo4dG9lX+3yd3Nxc7d69Wz169Ih/oAAgudI3icYByBLM4QBYxRwOgGXG5nAsWgBwRSKXpTV0me1/ysvL0+DBg7VhwwaNGzdO0sn4bdiwQdOmTat3fO/evbVz586ofXfffbcOHz6sRx99VF27do1/kADw/7jRN4nGAcgOzOEAWMUcDoBl1uZwWblo4WuWlcMCkIgEYpmIkpISTZ48WUOGDNFFF12kBQsWqLq6WlOnTpUkTZo0SWeffbbKysqUn5+vfv36Rb2+devWklRv/2nlS+jOfACyjUt9k4w0zu/L3HsDSB1zuIYxhwO8jTlc43JyMvfeAFJnbA7H6gAAV/jC7px3woQJ+vjjj3XPPfeosrJSAwcO1Nq1ayMPBdq3b5/8fn6gBOAet/om0TgAmcccDoBVzOEAWGZtDudzHMfFtebkXNVqaqaHAEDS2kNLk37t+SWPxH3szvkzk34fLxrV/MZMDwGApHWf/SKp19G3xo1qMSnTQwCavHXVP0/6tTSuYczhgOzAHM4dzOGA7JDsPM5a47jSAoAruDkIAKvoGwDLaBwAq+gbAMusNY5FCwDuyLpruLIHz+0BPI6+Nc5nbboMNDE0rkHM4QCPo2+N8vFMC8DbjDUuoRtOLVy4UP3791erVq3UqlUrDRs2TL///e8lSZ988oluv/129erVS82bN1e3bt10xx13qKqqypWBA8huPif+DQC8hL4BsIzGAbCKvgGwzFrjEvpTkS5dumjevHk699xz5TiOnnrqKV1zzTV688035TiO/vnPf+rhhx9Wnz599OGHH+rb3/62/vnPf+rZZ591a/wAspVHIggACaNvACyjcQCsom8ALDPWuIQWLcaOHRv17wceeEALFy7U66+/rptvvlnPPfdc5Gs9evTQAw88oG984xs6ceKEcnO5lBZoSnzhTI8AANxB3wBYRuMAWEXfAFhmrXFJrySEQiE988wzqq6u1rBhw2IeU1VVpVatWrFgATRFxlZ4ASCCvgGwjMYBsIq+AbDMWOMSXk3YuXOnhg0bpmPHjunMM8/UqlWr1KdPn3rHHTx4UPfdd5++9a1vJTwoJxRK+DUAsotX7pGXCU7Y2PI30MTQt1Nw+AYBXkbjAFhF3xrH7+IAb7PWuIQXLXr16qUdO3aoqqpKzz77rCZPnqxNmzZFLVwcOnRIY8aMUZ8+fXTvvfc2er5gMKhgMBi1L+yE5PflJDo0ANnEWCyTReMAg+hbBI0DDKJxkugbYBJ9i6BxgEHGGudP9AV5eXnq2bOnBg8erLKyMg0YMECPPvpo5OuHDx/WVVddpZYtW2rVqlVq1qxZo+crKytTQUFB1PZ+za7EPwmArOJz4t8si924nZkeFoAU0Lc6zOMAe2jcSTH7dvzPmR4WgBTQtzrM4QB7rDUu4UWL/xQOhyOrs4cOHdLIkSOVl5en1atXKz8//5SvLy0tVVVVVdR2TrN+qQ4LQKY5CWyGxW7c+ZkeFoBU0LcI5nGAQTROUgN9y+uf6WEBSAV9i2AOBxhkrHEJ3R6qtLRUo0ePVrdu3XT48GEtX75cGzdu1Lp16yILFkePHtUvf/lLHTp0SIcOHZIkfe5zn1NOTuxLzAKBgAKBQNQ+f1iSuJce4GkeiaDbYjYu5Eg6kZkBAUgdfYuI2TjHz3MtAC/jP19JsfvmqwnJ4edUwLvoWwS/iwMMMta4hBYtDhw4oEmTJumjjz5SQUGB+vfvr3Xr1unLX/6yNm7cqD/96U+SpJ49e0a9bu/evSosLEzboAFkPx/PmgZgFH0DYBmNA2AVfQNgmbXGJbRo8eSTTzb4tREjRsjhr+oA/D8+egDAKPoGwDIaB8Aq+gbAMmuNS2jRAgDiZquVAFCHvgGwjMYBsIq+AbDMWONYtADgCp+xWAJALfoGwDIaB8Aq+gbAMmuNY9ECgDuMxRIAIuhb4xxjN1MFmhoa1yAnzDcH8DT+EwZgmbHGsWgBwBXWVngBoBZ9A2AZjQNgFX0DYJm1xrFoAcAVPv7QFoBR9A2AZTQOgFX0DYBl1hrHogUAdxhb4QWACPoGwDIaB8Aq+gbAMmONy8pFC+4VCniftcvS0srnz/QIAKSAvjWOeRzgbTSuYT6/L9NDAJAC+gbAMmuNS+g3ZwsXLlT//v3VqlUrtWrVSsOGDdPvf//7qGO2bNmiK664Qi1atFCrVq106aWX6rPPPkvroAF4gOPEvwGAl9A3AJbROABW0TcAlhlrXEJXWnTp0kXz5s3TueeeK8dx9NRTT+maa67Rm2++qb59+2rLli266qqrVFpaqh//+MfKzc3VW2+9Jb+fvyoGmhprK7wAUIu+AbCMxgGwir4BsMxa4xJatBg7dmzUvx944AEtXLhQr7/+uvr27auZM2fqjjvu0OzZsyPH9OrVKz0jBeAtxmIJABH0DYBlNA6AVfQNgGXGGpf0JRChUEgrVqxQdXW1hg0bpgMHDuhPf/qTOnTooOHDh6tjx4667LLL9Nprr6VzvAA8wheKfwMAL6FvACyjcQCsom8ALLPWuIQfxL1z504NGzZMx44d05lnnqlVq1apT58+ev311yVJ9957rx5++GENHDhQP//5z3XllVdq165dOvfcc9M+eADZy9plaWnlhDM9AgApoG+N8+XkZHoIAFJA4xrmhPnmAF5G3wBYZq1xCS9a9OrVSzt27FBVVZWeffZZTZ48WZs2bVI4fPKXcLfeequmTp0qSbrgggu0YcMGLVmyRGVlZTHPFwwGFQwGo/aFnZD8Pn7gBTzNIw/2cRuNAwyibxE0DjCIxkmib4BJ9C2CxgEGGWtcwreHysvLU8+ePTV48GCVlZVpwIABevTRR3XWWWdJkvr06RN1/Hnnnad9+/Y1eL6ysjIVFBREbXvDf010WACyjM+Jf7MsVuPeD/0l08MCkAL6Vidm407syvSwAKSAxp3Ez6mAPfStDj+nAvZYa1zSz7SoFQ6HFQwGVVhYqM6dO2v37t1RX3/33Xf1+c9/vsHXl5aWqqqqKmrr7u/T4PEAPMJJYDMsVuPOyemb6WEBSAV9i4jZuNx+mR4WgFTQOEn8nAqYRN8i+DkVMMhY4xK6PVRpaalGjx6tbt266fDhw1q+fLk2btyodevWyefz6c4779TcuXM1YMAADRw4UE899ZTeeecdPfvssw2eMxAIKBAIRO3LyQs0cDQAr/DKyq3bYjXO72+WodEASAf6Vidm4+Tj2T2Ah9G4k2L+nJqT8N2VAWQR+laHn1MBe6w1LqFZ14EDBzRp0iR99NFHKigoUP/+/bVu3Tp9+ctfliTNmDFDx44d08yZM/XJJ59owIABWr9+vXr06OHK4AFkMWP30gOACPoGwDIaB8Aq+gbAMmONS2jR4sknnzzlMbNnz9bs2bOTHhAAG3z8kS0Ao+gbAMtoHACr6BsAy6w1jutbAbjC2mVpAFCLvgGwjMYBsIq+AbDMWuNYtADgjrCxWgJALfoGwDIaB8Aq+gbAMmON82d6AACMchLYElReXq7CwkLl5+dr6NCh2rp1a4PHLl68WF/60pfUpk0btWnTRkVFRY0eDwCn5GLfJAON8/nZ2NgyvaWCOVzDMv2/Kxsb28ktWczhAFhmbA6XQu0BoGE+J/4tEStXrlRJSYnmzp2r7du3a8CAARo1apQOHDgQ8/iNGzfq+uuv1yuvvKItW7aoa9euGjlypP7xj3+k4VMCaIrc6ptE4wBkHnM4AFYxhwNgmbU5nM9xsu/R4qNaTMr0EABIWlf986RfO+Kqh+I+duPaWXEfO3ToUF144YV6/PHHJUnhcFhdu3bV7bffrtmzZ5/y9aFQSG3atNHjjz+uSZMy05pRzW/MyPsCiLbus18k9Tq3+ibROADpkWzfJOZwjaFvQHZgDucOGgdkh2xrXKb6xpUWAFzhC8e/xev48eOqqKhQUVFRZJ/f71dRUZG2bNkS1zmOHj2qmpoatW3bNtGPBACS3OmbROMAZAfmcACsYg4HwDJrc7jsfBC3sQeHAE2RL4GLuILBoILBYNS+QCCgQCAQte/gwYMKhULq2LFj1P6OHTvqnXfeieu9Zs2apc6dO0cF97RzEpwFA8gqbvRNMtQ4AJ7GHK4Rfl/m3htAypjDnQI/pwKeZm0Ol9KVFvPmzZPP59OMGTMi+44dO6bi4mK1a9dOZ555psaPH6/9+/en8jYAvCgc/1ZWVqaCgoKoraysLO1DmjdvnlasWKFVq1YpPz8/7ecH0ERkYd8kGgcgTbKwcfQNQFpkYd8kGgcgTbKwcan0LekrLd544w395Cc/Uf/+/aP2z5w5U2vWrNEzzzyjgoICTZs2Tddee63++Mc/JvtWADwokRXe0tJSlZSURO2L9Rcs7du3V05OTr2F0P3796tTp06NvsfDDz+sefPm6aWXXqrXLQBIhBt9k2gcgOzAHA6AVczhAFhmbQ6X1JUWR44c0cSJE7V48WK1adMmsr+qqkpPPvmk5s+fryuuuEKDBw/W0qVLtXnzZr3++uvJvBUAr3Li3wKBgFq1ahW1xYplXl6eBg8erA0bNkT2hcNhbdiwQcOGDWtwKD/4wQ903333ae3atRoyZEgaPySAJsmFvkk0DkCWYA4HwCrmcAAsMzaHS2rRori4WGPGjKl3L6qKigrV1NRE7e/du7e6desW98M5ABjhOPFvCSgpKdHixYv11FNP6e2339Z3vvMdVVdXa+rUqZKkSZMmqbS0NHL8Qw89pDlz5mjJkiUqLCxUZWWlKisrdeTIkbR+XABNiEt9k2gcgCzAHA6AVczhAFhmbA6X8O2hVqxYoe3bt+uNN96o97XKykrl5eWpdevWUfs7duyoysrK+N+Eh/8AnucLJz7Ri8eECRP08ccf65577lFlZaUGDhyotWvXRh4KtG/fPvn9deuxCxcu1PHjx/W1r30t6jxz587Vvffe68oYT8Vx6XsD4PRwq2+SjcYxjwO8jTlcI0KhzLwvgLRgDgfAMmtzuIQWLf7+979r+vTpWr9+fdoeDhTraeVhJyS/Lyct5weQGT4Xf2c1bdo0TZs2LebXNm7cGPXvDz74wL2BxIHGAfa42TeJxgHILOZwJ9E3wB7mcHVoHGCPtTlcQreHqqio0IEDBzRo0CDl5uYqNzdXmzZt0mOPPabc3Fx17NhRx48f16effhr1usYezhHraeXvh/6S9AcCkCVcvPTWS2I1bm/4r5keFoBU0LcI5nGAQTROEn0DTKJvETQOMMhY4xJatLjyyiu1c+dO7dixI7INGTJEEydOjPy/mzVrFvVwjt27d2vfvn0NPpyjtLRUVVVVUds5OX1T+1QAMi+BBwBZFqtx3f19Mj0sAKmgbxHM4wCDaJwk+gaYRN8iaBxgkLHGJXR7qJYtW6pfv35R+1q0aKF27dpF9t98880qKSlR27Zt1apVK91+++0aNmyYvvjFL8Y8ZyAQqPd0cp/jl+ORVR8Asfn4b1hS7MZxyS3gbfStDvM4wB4ad1LMvoUlRzzXAvAq+laHn1MBe6w1LuEHcZ/KI488Ir/fr/HjxysYDGrUqFF64okn0v02ALKdsVgCQAR9A2AZjQNgFX0DYJmxxqW8aPGfD9vIz89XeXm5ysvLUz01AA/zhWzFEgBq0TcAltE4AFbRNwCWWWtc2q+0AABJ5lZ4ASCCvgGwjMYBsIq+AbDMWONYtADgDmOxBIAI+gbAMhoHwCr6BsAyY43LzkULJ5zpEQBIFf8ZA7CKvgGwjMY1yJfDQ2oBT6NvjXLCtn7hCTQ5xhqXnYsWADzPZ2yFFwBq0TcAltE4AFbRNwCWWWscixYA3GEslgAQQd8AWEbjAFhF3wBYZqxxLFoAcIexWAJABH0DYBmNA2AVfQNgmbHGsWgBwB0hW7FMJ5/fl+khAEgFfWsUjQM8jsYBsIq+NYrn9gAeZ6xx/lRePG/ePPl8Ps2YMaPe1xzH0ejRo+Xz+fT888+n8jYAPMjnOHFvAOAl9A2AZTQOgFX0DYBl1hqX9JUWb7zxhn7yk5+of//+Mb++YMEC+Xz8pR3QZHkkggCQMPoGwDIaB8Aq+gbAMmONS+pKiyNHjmjixIlavHix2rRpU+/rO3bs0I9+9CMtWbIk5QEC8KiwE/8GAF5C3wBYRuMAWEXfAFhmrHFJLVoUFxdrzJgxKioqqve1o0eP6oYbblB5ebk6deqU8gABeJTjxL8BgJfQNwCW0TgAVtE3AJYZa1zCt4dasWKFtm/frjfeeCPm12fOnKnhw4frmmuuSXpQvtxmSb8WQJbwSAQzwpfS44QAZBp9axyNA7yNxjWMvgHeRt8a54QzPQIAqTDWuIQWLf7+979r+vTpWr9+vfLz8+t9ffXq1Xr55Zf15ptvxn3OYDCoYDAYtS/shOT35SQyNADZJsSER6JxgEn0LYLGAQbROEn0DTCJvkXQOMAgY41L6E9FKioqdODAAQ0aNEi5ubnKzc3Vpk2b9Nhjjyk3N1fr16/Xnj171Lp168jXJWn8+PEaMWJEzHOWlZWpoKAganv/xK6UPxiADHPC8W+G0TjAIPoWQeMAg2icJPoGmETfImI2LvSXTA8LQCqMNS6hRYsrr7xSO3fu1I4dOyLbkCFDNHHiRO3YsUN33XWX/vznP0d9XZIeeeQRLV26NOY5S0tLVVVVFbWdk9sv5Q8GIMOM3UsvWTQOMIi+RdA4wCAaJ4m+ASbRt4iYjcvpm+lhAUiFscYldHuoli1bql+/6IlaixYt1K5du8j+WA/f7tatm7p37x7znIFAQIFAIGofl6MBBoS9EUG3xWycfJ5Z2QYQA32LYB4HGETjJDGHA0yibxHM4QCDjDUu4QdxA0BcPLJyCwAJo28ALKNxAKyibwAsM9a4lBctNm7c2OjXHWPfMABx4r99AFbRNwCW0TgAVtE3AJYZaxxXWgBwRyiU6REAgDvoGwDLaBwAq+gbAMuMNY5FCwDuMLbCCwAR9A2AZTQOgFX0DYBlxhrHogUAdxiLZTo5xla/gSaHvjWOh9QC3kbjGubzZ3oEAFJB3wBYZqxxLFoAcEfYViwBIIK+AbCMxgGwir4BsMxY41i0AOAKh7+0BWAUfQNgGY0DYBV9A2CZtcaxaAHAHcZWeAEggr4BsIzGAbCKvgGwzFjjsnPRwtjKENAk8dyGhnE/ZMDb6FujHGOTZaDJoXEN4+dUwNvoGwDLjDUupd+czZs3Tz6fTzNmzIjsq6ys1I033qhOnTqpRYsWGjRokJ577rlUxwnAaxwn/g0AvIS+AbCMxgGwir4BsMxY45K+0uKNN97QT37yE/Xv3z9q/6RJk/Tpp59q9erVat++vZYvX67rrrtO27Zt0wUXXJDygAF4gxPmL9EA2ETfAFhG4wBYRd8AWGatcUldaXHkyBFNnDhRixcvVps2baK+tnnzZt1+++266KKLdM455+juu+9W69atVVFRkZYBA/AIYyu8ABBB3wBYRuMAWEXfAFhmrHFJLVoUFxdrzJgxKioqqve14cOHa+XKlfrkk08UDoe1YsUKHTt2TCNGjEh1rAC8JOzEvwGAl9A3AJbROABW0TcAlhlrXMKLFitWrND27dtVVlYW8+tPP/20ampq1K5dOwUCAd16661atWqVevbsmfJgAXiIE45/S1B5ebkKCwuVn5+voUOHauvWrY0e/8wzz6h3797Kz8/X+eefrxdffDHZT5UWPr+PjY0tC7akudg3yfuNA+BxzOEa5IQdNja2LNhS+I+YOVxjfH42NrZs2JJlbA6X0Hfi73//u6ZPn65f/epXys/Pj3nMnDlz9Omnn+qll17Stm3bVFJSouuuu047d+6MeXwwGNShQ4eitrBj62nnQFPk1qRz5cqVKikp0dy5c7V9+3YNGDBAo0aN0oEDB2Iev3nzZl1//fW6+eab9eabb2rcuHEaN26cdu3alY6PeUo0DrDHzR+qaRyATGMOdxJ9A+xhDleHxgH2WJvD+Rwn/htZPf/88/rqV7+qnJycyL5QKCSfzye/36/du3erZ8+e2rVrl/r27Rs5pqioSD179tSiRYvqnfPee+/V9773vah95+T0U8/c/vWOBXB6rTv2q6Rf++WcCXEfuz60Mu5jhw4dqgsvvFCPP/64JCkcDqtr1666/fbbNXv27HrHT5gwQdXV1XrhhRci+774xS9q4MCBMZuUbjQOyF7JNs6tvklGGufvpx4557v+3gAa9ofjy5N+LXO4k+gbkL2SbRxzuDqxf049Xz2bDXD9vQE0bt1nv0jqddbmcAldaXHllVdq586d2rFjR2QbMmSIJk6cqB07dujo0aMnT+qPPm1OTo7CDTzBvLS0VFVVVVHbOTl9Yx4LwEMSuCwt1l95BIPBeqc8fvy4Kioqop6n4/f7VVRUpC1btsQcxpYtW+o9f2fUqFENHp9uNA4wyIW+SXYa193f57S8NwCXMIeTRN8Ak5jDRcT8OTW332l5bwAusTaHc1J02WWXOdOnT3ccx3GOHz/u9OzZ0/nSl77k/OlPf3Lee+895+GHH3Z8Pp+zZs2ahM997NgxZ+7cuc6xY8dSHSbnzvC53T4/5z695063uXPnOpKitrlz59Y77h//+Icjydm8eXPU/jvvvNO56KKLYp67WbNmzvLly6P2lZeXOx06dEjb+JPh5f/tvTp2zn16z+32+b3SuHj75jg0jnNn7/k5t51zpxtzOG+dn3PbObfb5/fqudOJOZy3/rf36rndPj/ntnPudPPCHC6tixaO4zjvvvuuc+211zodOnRwzjjjDKd///7Oz3/+86TOXVVV5UhyqqqqUh0m587wud0+P+c+vedOt2PHjjlVVVVRW6zIW5oMevl/e6+OnXOf3nO7fX6vNC7evjkOjePc2Xt+zm3n3OnGHM5b5+fcds7t9vm9eu50Yg7nrf/tvXput8/Pue2cO928MIfLTey6jPo2btwY9e9zzz1Xzz33XKqnBdCEBAIBBQKBUx7Xvn175eTkaP/+/VH79+/fr06dOsV8TadOnRI6HgDSKd6+STQOgPcwhwNgFXM4AJZ5YQ6X0DMtACCT8vLyNHjwYG3YsCGyLxwOa8OGDRo2bFjM1wwbNizqeElav359g8cDQKbQOABW0TcAltE4AFZlsm8pX2kBAKdTSUmJJk+erCFDhuiiiy7SggULVF1dralTp0qSJk2apLPPPltlZWWSpOnTp+uyyy7Tj370I40ZM0YrVqzQtm3b9NOf/jSTHwMAYqJxAKyibwAso3EArMpU37J60SIQCGju3LlxX5LHubP33G6fn3Of3nNn0oQJE/Txxx/rnnvuUWVlpQYOHKi1a9eqY8eOkqR9+/bJ76+7iGz48OFavny57r77bv33f/+3zj33XD3//PPq169fpj6CJG//b+/VsXPu03tut89P406icZz7dJyfc9s5dybRt8yfn3PbObfb5/fquTOJxnHubDw/57Zz7kzKVN98juM4af0kAAAAAAAAAAAASeCZFgAAAAAAAAAAICuwaAEAAAAAAAAAALICixYAAAAAAAAAACArsGgBAAAAAAAAAACyAosWAAAAAAAAAAAgK7BoAQAAAAAAAAAAsgKLFgAAAAAAAAAAICuwaAEAAAAAAAAAALICixYAAAAAAAAAACArsGgBAAAAAAAAAACyAosWAAAAAAAAAAAgK7BoAQAAAAAAAAAAsgKLFgAAAAAAAAAAICuwaAEAAAAAAAAAALICixYAAAAAAAAAACArsGgBAAAAAAAAAACyAosWAAAAAAAAAAAgK7BoAQAAAAAAAAAAsoJrixbl5eUqLCxUfn6+hg4dqq1bt7r1VgCakFdffVVjx45V586d5fP59Pzzz5/yNRs3btSgQYMUCATUs2dPLVu2zPVxAkCi6BsAy2gcAMtoHACrMtU3VxYtVq5cqZKSEs2dO1fbt2/XgAEDNGrUKB04cMCNtwPQhFRXV2vAgAEqLy+P6/i9e/dqzJgxuvzyy7Vjxw7NmDFD3/zmN7Vu3TqXRwoAiaFvACyjcQAso3EArMpU33yO4zjJDLgxQ4cO1YUXXqjHH39ckhQOh9W1a1fdfvvtmj17drrfDkAT5fP5tGrVKo0bN67BY2bNmqU1a9Zo165dkX1f//rX9emnn2rt2rWnYZQAkDj6BsAyGgfAMhoHwKrT2be0X2lx/PhxVVRUqKioqO5N/H4VFRVpy5Yt6X47AAYEg0EdOnQoagsGg2k595YtW6J6JEmjRo2iRwBOC/oGwDIaB8AqN/sm0TgAmeWFOVxuWkbzbw4ePKhQKKSOHTtG7e/YsaPeeeeduM4xstnX0z0sAEn4Q82KpF8brvxC3MeWLbpB3/ve96L2zZ07V/fee2/S71+rsrIyZo8OHTqkzz77TM2bN0/5PRI1Kn/iaX9PAPWtO/arpF5H3xrHPA7IPOZw7hjVYtJpf08A9a2r/nlSr8uWvklZ2jh+TgWyAj+nnpT2RYtEBYPBeis5YSckvy8nQyMCkA5hheM+trS0VCUlJVH7AoFAuoeUETQOsIe+1aFxgD007iT6BthD3+rQOMAea41L++2h2rdvr5ycHO3fvz9q//79+9WpU6d6x5eVlamgoCBq2xt+O93DAnCahZxw3FsgEFCrVq2itnTFslOnTjF71KpVq9Py1yuxGvd+6C+uvy8A99C3OszjAHto3Ekx53A1u079QgBZK1v6JmVp4/g5FfC0bGlcuvqW9kWLvLw8DR48WBs2bIjsC4fD2rBhg4YNG1bv+NLSUlVVVUVt3f3npXtYAE6zsJy4NzcNGzYsqkeStH79+pg9ckOsxp2T0/e0vDcAd9C3OszjAHto3Ekx53DN+p2W9wbgjmzpm5SljePnVMDTsqVx6eqbK7eHKikp0eTJkzVkyBBddNFFWrBggaqrqzV16tR6xwYCgXorOVyOBnhfjROK+9hE/o7kyJEjeu+99yL/3rt3r3bs2KG2bduqW7duKi0t1T/+8Q/9/Ocn73P67W9/W48//rj+67/+SzfddJNefvllPf3001qzZk0C75o8GgfYQ9/q0DjAHhp3En0D7HGrbxKNA5B51uZwrixaTJgwQR9//LHuueceVVZWauDAgVq7dm29h3A0yJf2C0AAnGZurdxu27ZNl19+eeTftffgmzx5spYtW6aPPvpI+/bti3y9e/fuWrNmjWbOnKlHH31UXbp00c9+9jONGjXKlfEBsI++Nc6Xww+8gJfRuEaE4v9lAIDs4+ZfF5toHABPszaH8zmO4/51bwkamXdDpocAQNIfji9P+rX/+88ucR/brvP/JP0+XjQqf2KmhwBA0rpjv0rqdfStcTQOyLxk+ybRuMbQNyA7MIdzB40DsgONO8mVKy0A4HTcBxQAMoG+AbCMxgGwir4BsMxa41i0AOCKUPZdxAUAaUHfAFhG4wBYRd8AWGatcVm5aOHz+zI9BAApCmd6AFnMCdv6PyRAU0PfToFnWgCeRuMaQd8AT6Nvp0DjAE+z1risXLQA4H3Hja3wAkAt+gbAMhoHwCr6BsAya41j0QKAK6yt8AJALfoGwDIaB8Aq+gbAMmuNY9ECgCtC4jZvAGyibwAso3EArKJvACyz1jgWLQC4gsc2ALCKvgGwjMYBsIq+AbDMWuNcX7SYN2+eSktLNX36dC1YsCC+F/n8ro4JgPusrfCmk8/P9wbwMvp2CqFQpkcAIAU0DoBV9O0UmMMBnmatca4uWrzxxhv6yU9+ov79+7v5NgCykLVYAkAt+gbAMhoHwCr6BsAya41zbdHiyJEjmjhxohYvXqz777/frbcBkKVqHK6YAmATfQNgGY0DYBV9A2CZtca59mmKi4s1ZswYFRUVufUWALJYSP64NwDwEvoGwDIaB8Aq+gbAMmuNc+VKixUrVmj79u164403kjuBE07vgACcdmHH1mVpacVzewBPo2+Nc6w9AQ5oYmhcI+gb4Gn0rXHM4QBvs9a4tC9a/P3vf9f06dO1fv165efnn/L4YDCoYDAYtS/shOT35aR7aABOI2v30ksWjQPsoW91aBxgD407ib4B9tC3OjQOsMda49L+574VFRU6cOCABg0apNzcXOXm5mrTpk167LHHlJubq1AoFHV8WVmZCgoKorb3Q39J97AAnGYhxx/3ZlnMxp3YlelhAUgBfasTq3F7w3/N9LAApIDGncQcDrCHvtVhDgfYY61xPsdx0nr91+HDh/Xhhx9G7Zs6dap69+6tWbNmqV+/flFfi7W6O/5z32J1F8gC6479KunXbvrgC3Efe1nhu0m/T7aL2bgO36ZxQBZY99kvknodfasTq3HXtruFxgEZ9ofjy5N+LY07iTkckL2Yw6WOORyQvZKdx1lrXNpvD9WyZct6CxMtWrRQu3bt6u2XpEAgoEAgELWPSALeZ+2ytGTROMAe+laHxgH20LiT6BtgD32rQ+MAe6w1zpUHcQNAjcOEp0FOONMjAJAC+tY4n9/WZBloamhcI5jDAZ5G3wBYZq1xp2XRYuPGjafjbQBkkVD6H5kDAFmBvgGwjMYBsIq+AbDMWuO40gKAK7zyYB8ASBR9A2AZjQNgFX0DYJm1xrFoAcAVYWMrvABQi74BsIzGAbCKvgGwzFrjWLQA4IqQwz3NAdhE3wBYRuMAWEXfAFhmrXEsWgBwhbV76QFALfoGwDIaB8Aq+gbAMmuNY9ECgCtqHPICwCb6BsAyGgfAKvoGwDJrjbP1aQBkDWuXpQFALfoGwDIaB8Aq+gbAMmuNY9ECgCusPQAIAGrRNwCW0TgAVtE3AJZZa1zaFy1CoZDuvfde/fKXv1RlZaU6d+6sKVOm6O6775bPF9+KjxMKpXtYAE6zkGMrlgBQi741zgk7mR4CgBTQOABW0bfG+fy2/kobaGqsNS7tixYPPfSQFi5cqKeeekp9+/bVtm3bNHXqVBUUFOiOO+5I99sByFJhMeEBYBN9A2AZjQNgFX0DYJm1xqV90WLz5s265pprNGbMGElSYWGhfv3rX2vr1q3pfisAWczaCi8A1KJvACyjcQCsom8ALLPWuLQvWgwfPlw//elP9e677+oLX/iC3nrrLb322muaP39+ut8KQBarcXIyPQQAcAV9A2AZjQNgFX0DYJm1xqV90WL27Nk6dOiQevfurZycHIVCIT3wwAOaOHFi3Ofw5dj6JgNNUcjYA4AAoBZ9axz3Qwa8jcYBsIq+AbDMWuPSvmjx9NNP61e/+pWWL1+uvn37aseOHZoxY4Y6d+6syZMn1zs+GAwqGAxG7Qs7Ifl9LFwAXhY2dllasmgcYA99q0PjAHto3En0DbCHvtWhcYA91hqX9k9z5513avbs2fr617+u888/XzfeeKNmzpypsrKymMeXlZWpoKAgans/9Jd0DwvAaRaSL+7NMhoH2EPf6tA4wB4adxJ9A+yhb3VoHGCPtcalfdHi6NGj8vujT5uTk6NwOBzz+NLSUlVVVUVt5+T0TfewAJxmYccf92YZjQPsoW91aBxgD407ib4B9tC3OjQOsMda49I+yrFjx+qBBx7QmjVr9MEHH2jVqlWaP3++vvrVr8Y8PhAIqFWrVlEbl6MB3ufmCm95ebkKCwuVn5+voUOHauvWrY0ev2DBAvXq1UvNmzdX165dNXPmTB07dizZj5YQGgfY4/ZfsNA4AJnEHO4k+gbYwxyuDo0D7LE2h0v7My1+/OMfa86cObrtttt04MABde7cWbfeeqvuueee+E/i88aKD4CGubVyu3LlSpWUlGjRokUaOnSoFixYoFGjRmn37t3q0KFDveOXL1+u2bNna8mSJRo+fLjeffddTZkyRT6fT/Pnz3dljKdE4wBPc/MvU2gcgExjDteIHH6hB3gZc7hTyE37rwgBnEbW5nBp/zQtW7bUggUL9OGHH+qzzz7Tnj17dP/99ysvLy/dbwUgi9U4OXFviZg/f75uueUWTZ06VX369NGiRYt0xhlnaMmSJTGP37x5sy6++GLdcMMNKiws1MiRI3X99defclUYABriVt8kGgcg85jDAbCKORwAy6zN4fhTOACuCDn+uLdgMKhDhw5FbcFgsN45jx8/roqKChUVFUX2+f1+FRUVacuWLTHHMXz4cFVUVETi+P777+vFF1/UV77yFXc+OADz3OibROMAZAfmcACsYg4HwDJrczgWLQC4Iuz44t7KyspUUFAQtZWVldU758GDBxUKhdSxY8eo/R07dlRlZWXMcdxwww36/ve/r0suuUTNmjVTjx49NGLECP33f/+3K58bgH1u9E2icQCyA3M4AFYxhwNgmbU5XHbesM6f3EOPAGSPUAJroveUlqqkpCRqXyAQSMs4Nm7cqAcffFBPPPGEhg4dqvfee0/Tp0/Xfffdpzlz5qTlPQA0LdnSNylLG8c8DvC0bGlcNvbNx/3eAU/Llr5J2dk4OU5m3hdAWmRL49LVN2ZdAFwRduL/pVUgEIgrju3bt1dOTo72798ftX///v3q1KlTzNfMmTNHN954o775zW9Kks4//3xVV1frW9/6lu666y75/VxwBiAxbvRNonEAsgNzOABWMYcDYJm1ORwVBOCKsPxxb/HKy8vT4MGDtWHDhrr3CYe1YcMGDRs2LOZrjh49Wi+IOTknHzrk8JckAJLgRt8kGgcgOzCHA2AVczgAllmbw3GlBQBX1ITdWRMtKSnR5MmTNWTIEF100UVasGCBqqurNXXqVEnSpEmTdPbZZ0fuxTd27FjNnz9fF1xwQeSytDlz5mjs2LGRaAJAItzqm0TjAGQeczgAVjGHA2CZtTkcixYAXBF23InlhAkT9PHHH+uee+5RZWWlBg4cqLVr10YeCrRv376oFd27775bPp9Pd999t/7xj3/oc5/7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O3euRo8eHblm7dq1uuOOO/TWW28pPT1dAwcO1OrVq9W6deuUThxINR56llrWdngBP+OhZ6lF3wBvYQ2XWjQO8JZv9os1XPLoG+AtrOFSy1rjEtq0OO200zRv3jydffbZchxHTzzxhK666iq988476tu3r9auXat/+7d/U0FBgX7/+98rIyND7777rtLS0tyaPwCPCoSN1RIA/h/6BsAyGgfAKvoGwDJrjUto02Ls2LFRf7733nu1aNEirVu3Tn379tWsWbN06623avbs2ZFrevXqlZqZAvAXW60EgDr0DYBlNA6AVfQNgGXGGpf0RyBqa2u1fPly1dTUaNiwYdq9e7feeustde7cWbm5ucrJydHw4cP15ptvpnK+AHwiEI7/AAA/oW8ALKNxAKyibwAss9a4hB/EvWnTJg0bNkyHDh3SiSeeqJUrV6pPnz5at26dJOmuu+7S/fffr4EDB+qPf/yjRo4cqc2bN+vss89O+eQBt3H/0EYwtsMLWMP9QxuBvgGexxquEWgc4Gms4RqBvgGexxquEYw1LuFNi169eqmyslLV1dV6+umnNXnyZL3xxhsKh49u09x8882aMmWKJOm8885TWVmZlixZoqKiopjjhUIhhUKhqHNhp1ZpgfREpwbAQ6w9AChZNA6wh77VoXGAPTTuKPoG2EPf6tA4wB5rjUv49lCZmZnq2bOnBg0apKKiIg0YMEAPPvigTjnlFElSnz59oq4/55xztHPnzgbHKyoqUnZ2dtSxXVsSnRYAr3Gc+A/DaBxgEH2LoHGAQTROEn0DTKJvETQOMMhY45J+psUx4XBYoVBI3bt3V9euXbV169ao17dt26Yzzjijwa8vKChQdXV11NFDvRs7LQDNzNq99JJF4wB76FsdGgfYQ+OOom+APfStDo0D7LHWuIRuD1VQUKDRo0erW7du2r9/v5YtW6by8nKtXr1agUBAt912mwoLCzVgwAANHDhQTzzxhLZs2aKnn366wTGDwaCCwWDUOT6OBviftY+lJYvGAfbQtzo0DrCHxh1F3wB76FsdGgfYY61xCW1a7N69W5MmTdI//vEPZWdnq3///lq9erW+973vSZJmzpypQ4cOadasWfryyy81YMAAlZaW6qyzznJl8kBT46FnCfDJx80A1OGhZ3Gib4DvxLOGa+i6FofGAb7DGi5O9A3wHdZwCTDWuIQ2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W7dulST16dNHn3zySdTrL7/8ctT3kQi/Rqehn3koFFKrVq0a9TN38+eN1HCrb5K7jfNj3yR3G0ff6qNvYA0XG42LRuPqo3HexxouNvoWza+/FEjfwBouNhoXjTVcfTTOfQHHcZzmnoQF9913nx588EFVVVVFdggdx1GXLl00c+ZM/fKXv0xq3ClTpkT9efTo0VE73b/85S/13nvvadWqVUmNv2/fPlVUVKiqqkqS1KVLFw0aNCgSILd8/PHHyszM1GmnnZbw14ZCIc2cOVNLlixpMPILFixIapd3xIgRkb8/SZo4caJ+8pOfRP58zz336NVXX1V5eXnCYx+zb98+bdiwQbt27ZIk5eTkaPDgwa78zB3HUSAQaNTPG/Br36TmaRx9o2/wFxqXGBpH4+Af9C0xXu2b5H7j6Bv8iMYlxquNYw2HhrBpkWLbt2+Pik6PHj1cfb+amhqlp6crKyvL1ffxIr9FviGZmZl69913dc4556RszKYYGy0PfWs69K15x0bLROOaDo1r3rHR8tC3puPHXwqMhb7BT2hc02EN17xjtzRsWjSBTz/9VIWFhVqyZImnxv7qq69UUVGhDh06qE+fPlGvHTp0SE8++aQmTZqU9NzcHP/999/XunXrNGzYMPXu3VtbtmzRgw8+qFAopB/96Ee67LLLkp73sbFzc3PVq1evlI2dn58f8/yDDz6oH/3oR5H7Oc6fP99TYwPH49W+Se42iL5Fo2+wisbROInGwSb65q++fX38VDaOvsEqGuevxrGGQ0xN/+zvlqeystJJS0vz1Nhbt251zjjjDCcQCDhpaWnOJZdc4nz22WeR16uqqho151jjf/755ykZ/69//auTmZnpdOjQwcnKynL++te/OieffLKTl5fnXHbZZU56erpTVlbmubEDgYAzcOBAZ8SIEVFHIBBwLrjgAmfEiBHOpZde6rmxgePxYt8cx93G0bf66BusonE0znFoHGyib/7pm5vj0zdYReP80zjWcGgIn7RIgRdeeOG4r3/88cf6xS9+odraWs+M/f3vf19HjhzR0qVLtXfvXs2cOVP/8z//o/LycnXr1k27du1S165dk5qz2+Pn5ubqsssu0z333KPly5fr5z//uW655Rbde++9kqSCggJVVFTolVde8dTY8+bN0yOPPKI//OEPUbvErVq10rvvvltvF9wrY6Nl82PfJHcbRN/qo2/wKxrXtGPTuKYdGy0bfWvasd1skJvj0zf4FY1r2rFZwzXt2Ph/mnvXxIJju5iBQKDBI9ndTLfG7ty5s/Pee+9F/hwOh52f/exnTrdu3ZyPPvqo0Z+0cHP8du3aOR988IHjOI5TW1vrZGRkOBs3boy8vmnTJicnJ8dzYzuO46xfv975zne+4/ziF79wDh8+7DiO42RkZDj//d//nfSYTTE2Wi4/9s1x3G0QfYuNvsGPaFzTjk3jmn5stFz0rWnHdrtBbo5P3+BHNK5px2YN1/Rjw3HSmnvTxIJTTjlFzz77rMLhcMxj48aNnhv7q6++UkZGRuTPgUBAixYt0tixYzV8+HBt27Yt6Tk3xfiBQECSlJaWpqysLGVnZ0dea9u2raqrqz059gUXXKCKigp98cUXGjx4sDZv3hx5v8Zyc2y0XH7sm+Rug+hbbPQNfkTjmnbsY+NJNK6pxkbLRd+aduxj40nuNMjN8ekb/IjGNe3Yx8aTWMM11diQ2LRIgUGDBqmioqLB1wOBgJwk78Ll1ti9e/fWhg0b6p1fuHChrrrqKl155ZUJj9lU43fv3l0ffPBB5M9r165Vt27dIn/euXOnTjnlFM+NfcyJJ56oJ554QgUFBcrLy0v6FlxNPTZaJj/2TXK3QfStYfQNfkPjmnZsGtc8Y6Nlom9NO7bbDXJ7fPoGv6FxTTs2a7jmGbulY9MiBW677Tbl5uY2+HrPnj31+uuve2rs73//+/rP//zPmK8tXLhQ1113XdIRdnv8W265JSoC/fr1i9pN/utf/xp1PzmvjP1N1157rTZs2KBnn31WZ5xxRkrGbIqx0bL4sW+Suw2ib9+OvsEvaFzTjk3jmndstCz0rWnHdrtBTdU4+ga/oHFNOzZruOYdu6XiQdwAAAAAAAAAAMAT+KQFAAAAAAAAAADwBDYtAAAAAAAAAACAJ7BpAQAAAAAAAAAAPIFNCwAAAAAAAAAA4AlsWgAAAAAAAAAAAE9g0wIAAAAAAAAAAHgCmxYAAAAAAAAAAMAT2LQAAAAAAAAAAACe8P8DloocTQY4wpMAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(3, 5, figsize=(16, 8), sharex=True, sharey=True)\n", "\n", @@ -754,18 +658,7 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Ki4u1qZNm9qdx4svvqiioiKVl5eroKBAgwYN0kMPPaRIJOLZdwdgmxd9k2gcgPRA4wBY5aZv/E4F4DfWzuFcLVqsXbtWt956qy677DINGTJEy5Yt0549e1RbWytJamxs1FNPPaUFCxboG9/4hoYPH66nn35aGzdu1BtvvOHmowD4nJsV3lAopLy8vLgtFAq1GXP//v2KRCIqKCiI219QUKCGhoZ257F79249//zzikQievnllzV37lw9/PDD+ulPf+rJ9wZgnxd9k2gcgPRA4wBY5fZKC36nAvATa+dwp/RMi8bGRklSjx49JEm1tbU6fvx43MrLgAED1LdvX23atElf/epXT+XjAPiIE038crPKykpVVFTE7QsGgymZRzQaVX5+vn79618rMzNTw4cP14cffqhf/OIXmjdvXko+A8CZJV36JtE4AKlH4wBY5aZvEr9TAfiLtXO4pBctotGoZs6cqSuvvFKDBg2SJDU0NCg7O7vNQzVOtvICwCgXDwAKBoMJxbFXr17KzMxs85ycvXv3qnfv3u2+55xzzlGnTp2UmZkZ23fppZeqoaFBx44dU3Z2duITBQDJk75JNA5AmqBxAKxy+ZBafqcC8BVj53Cubg/1j8rLy7Vjxw6tWLEi2SEktX8PrajDPfwAv/PiAUDZ2dkaPny4ampqYvui0ahqampUVFTU7nuuvPJKvfPOO4pGo7F9O3fu1DnnnHNaTgRpHGCPVw84o3EA0gGNa0bfAHu8ehC33/om0TjAImvncEktWkybNk0vvfSSXn31VZ133nmx/b1799axY8d04MCBuONPtvLS3j20dn++I5lpAUgnjovNhYqKCi1ZskTPPPOM/va3v+lHP/qRmpqaVFZWJkkqLS1VZWVl7Pgf/ehH+vTTTzVjxgzt3LlTa9as0UMPPaTy8vJT/44JoHGAQR71TaJxANIAjZNE3wCT3PSN36kA/MbYOZyr20M5jqPp06dr1apVWr9+vS644IK414cPH65OnTqppqZGEydOlCTV19drz549J1x5ae8eWhPz73QzLQBpyO3KbaImTZqkTz75RPfee68aGho0dOhQrV27NvZAoD179igjo3U99vzzz9e6des0a9YsDR48WOeee65mzJih2bNnezK/f0bjAHu86ptE4wB0PBrXjL4B9tC3VjQOsMda4wKO4yS8vvKv//qvWr58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OE5WVlb0PS8tLXWOP/545+WXX3aqqqqc119/3enUqZMzderUpMYOanS8fM+9fL9Rf172zXG8bVwQ++Y4wf19o2+10Tf/4xwuPhpXG42rjcb5G+dw8dG32oL6R4FBfb+RGpzDxUfjauMcrjYa5z3fTFp06NDBWbhwYZ2PL1y40DnxxBOTGvu7sfzBD37g/O1vf4t5/B//+IdzwgknJDW24zhOUVGRM2LECKeysrLWY5WVlc6IESOc888/P6mxv3vs119/vdOtW7fobPSnn37q9OnTx7nuuutcj9u0aVNn/fr1dT6+bt06p2nTpkkds+PEHnePHj2cRYsWxTz+zDPPOCeffHJSYwc1Ol6+516+36g/L/vmON42Loh9c5zg/r7Rt9rom/9xDhcfjauNxtVG4/yNc7j46FttQf2jwKC+30gNzuHio3G1cQ5XG43znm8mLe6//34nLy/Puemmm5xnnnnGWbt2rbN27VrnmWeecW666SancePGzpw5c5IaOxQKRWdBjz322FqXF3388cf1+guZxo0bH/GSpXfffddp3LhxUmN/95egS5cuzjPPPBPz+EsvveR07NjR9bitWrVyVq1aVefjr7zyitOqVSvX49b47nveunVrZ9OmTTGPf/zxx0m/J0GNjpfvuZfvN+rPy745jreNC2LfHCe4v2/0rTb65n+cw8VH42qjcbXROH/jHC4++lZbUP8oMKjvN1KDc7j4aFxtnMPVRuO8l5PpNTVqFBcXq3Xr1po1a5YeeOABVVdXS5Kys7PVp08fPfroo7r00kuTHn/IkCHKycnRnj17tGXLlpgFUT755JN6LQDUokULffzxx3UusvLxxx+rRYsWSY8fCoUkSf/7v/+rTp06xTzWuXNnff75567HHD16tMaPH69Zs2ZpyJAhat68uSRpz549WrlypUpKSjRmzJikj1mSpk2bpqOOOkpZWVn6/PPP1b179+hj//73v9WkSZOkxs3Ly9OePXvqfPyrr75SXl5eUmNLh97viooK9ezZM+axXr166dNPP01qXK/fc6/eb9Sf132TvGtcEPsmBff3jb7FR9/8jXO4utG4WDQuPhrnX5zD1Y2+xfK6b5I3jQvq+43U4ByubjQuFudw8dE4b/lm0kI6+D+m0aNH68CBA9q1a5ckqXXr1mrUqFG9xp0+fXrM102bNo35+q9//at++MMf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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(3, 5, figsize=(16, 8), sharex=True, sharey=True)\n", "\n", @@ -822,87 +715,9 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[27], line 21\u001b[0m\n\u001b[1;32m 18\u001b[0m actions \u001b[38;5;241m=\u001b[39m info[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mactions\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[1;32m 19\u001b[0m outcomes \u001b[38;5;241m=\u001b[39m info[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mobservations\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[0;32m---> 21\u001b[0m agents[i] \u001b[38;5;241m=\u001b[39m \u001b[43magent\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minfer_parameters\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbeliefs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moutcomes\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mactions\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 22\u001b[0m divs1[i]\u001b[38;5;241m.\u001b[39mappend(kl_div_dirichelt(agents[i]\u001b[38;5;241m.\u001b[39mpA[\u001b[38;5;241m0\u001b[39m], pA0)\u001b[38;5;241m.\u001b[39mmean(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 23\u001b[0m divs2[i]\u001b[38;5;241m.\u001b[39mappend(kl_div_dirichelt(agents[i]\u001b[38;5;241m.\u001b[39mpB[\u001b[38;5;241m0\u001b[39m], pB0)\u001b[38;5;241m.\u001b[39msum(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m.\u001b[39mmean(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "File \u001b[0;32m~/projects/pymdp/pymdp/jax/agent.py:262\u001b[0m, in \u001b[0;36mAgent.infer_parameters\u001b[0;34m(self, beliefs_A, outcomes, actions, beliefs_B, lr_pA, lr_pB, **kwargs)\u001b[0m\n\u001b[1;32m 260\u001b[0m beliefs_B \u001b[38;5;241m=\u001b[39m beliefs_A \u001b[38;5;28;01mif\u001b[39;00m beliefs_B \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m beliefs_B\n\u001b[1;32m 261\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39minference_algo \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124movf\u001b[39m\u001b[38;5;124m'\u001b[39m:\n\u001b[0;32m--> 262\u001b[0m smoothed_marginals_and_joints \u001b[38;5;241m=\u001b[39m \u001b[43mvmap\u001b[49m\u001b[43m(\u001b[49m\u001b[43minference\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msmoothing_ovf\u001b[49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbeliefs_A\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mB\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mactions\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 263\u001b[0m marginal_beliefs \u001b[38;5;241m=\u001b[39m smoothed_marginals_and_joints[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m 264\u001b[0m joint_beliefs \u001b[38;5;241m=\u001b[39m smoothed_marginals_and_joints[\u001b[38;5;241m1\u001b[39m]\n", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/api.py:1214\u001b[0m, in \u001b[0;36mvmap..vmap_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1211\u001b[0m in_axes_flat \u001b[38;5;241m=\u001b[39m flatten_axes(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mvmap in_axes\u001b[39m\u001b[38;5;124m\"\u001b[39m, in_tree, (in_axes, \u001b[38;5;241m0\u001b[39m), kws\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 1212\u001b[0m axis_size_ \u001b[38;5;241m=\u001b[39m (axis_size \u001b[38;5;28;01mif\u001b[39;00m axis_size \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m\n\u001b[1;32m 1213\u001b[0m _mapped_axis_size(fun, in_tree, args_flat, in_axes_flat, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mvmap\u001b[39m\u001b[38;5;124m\"\u001b[39m))\n\u001b[0;32m-> 1214\u001b[0m out_flat \u001b[38;5;241m=\u001b[39m \u001b[43mbatching\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbatch\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1215\u001b[0m \u001b[43m \u001b[49m\u001b[43mflat_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis_size_\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_axes_flat\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1216\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mlambda\u001b[39;49;00m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mflatten_axes\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mvmap out_axes\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_tree\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_axes\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1217\u001b[0m \u001b[43m \u001b[49m\u001b[43mspmd_axis_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mspmd_axis_name\u001b[49m\n\u001b[1;32m 1218\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_wrapped\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs_flat\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1219\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m tree_unflatten(out_tree(), out_flat)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/linear_util.py:192\u001b[0m, in \u001b[0;36mWrappedFun.call_wrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 189\u001b[0m gen \u001b[38;5;241m=\u001b[39m gen_static_args \u001b[38;5;241m=\u001b[39m out_store \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 192\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mdict\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 193\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m:\n\u001b[1;32m 194\u001b[0m \u001b[38;5;66;03m# Some transformations yield from inside context managers, so we have to\u001b[39;00m\n\u001b[1;32m 195\u001b[0m \u001b[38;5;66;03m# interrupt them before reraising the exception. Otherwise they will only\u001b[39;00m\n\u001b[1;32m 196\u001b[0m \u001b[38;5;66;03m# get garbage-collected at some later time, running their cleanup tasks\u001b[39;00m\n\u001b[1;32m 197\u001b[0m \u001b[38;5;66;03m# only after this exception is handled, which can corrupt the global\u001b[39;00m\n\u001b[1;32m 198\u001b[0m \u001b[38;5;66;03m# state.\u001b[39;00m\n\u001b[1;32m 199\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m stack:\n", - "File \u001b[0;32m~/projects/pymdp/pymdp/jax/inference.py:111\u001b[0m, in \u001b[0;36msmoothing_ovf\u001b[0;34m(filtered_post, B, past_actions)\u001b[0m\n\u001b[1;32m 109\u001b[0m marginals_and_joints \u001b[38;5;241m=\u001b[39m ([], [])\n\u001b[1;32m 110\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m b, qs, f \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(B, filtered_post, \u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mrange\u001b[39m(nf))):\n\u001b[0;32m--> 111\u001b[0m marginals, joints \u001b[38;5;241m=\u001b[39m \u001b[43mjoint\u001b[49m\u001b[43m(\u001b[49m\u001b[43mb\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mqs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 112\u001b[0m marginals_and_joints[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mappend(marginals)\n\u001b[1;32m 113\u001b[0m marginals_and_joints[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39mappend(joints)\n", - "File \u001b[0;32m~/projects/pymdp/pymdp/jax/inference.py:107\u001b[0m, in \u001b[0;36msmoothing_ovf..\u001b[0;34m(b, qs, f)\u001b[0m\n\u001b[1;32m 104\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(filtered_post) \u001b[38;5;241m==\u001b[39m \u001b[38;5;28mlen\u001b[39m(B)\n\u001b[1;32m 105\u001b[0m nf \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(B) \u001b[38;5;66;03m# number of factors\u001b[39;00m\n\u001b[0;32m--> 107\u001b[0m joint \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mlambda\u001b[39;00m b, qs, f: \u001b[43mjoint_dist_factor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mb\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mqs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpast_actions\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 109\u001b[0m marginals_and_joints \u001b[38;5;241m=\u001b[39m ([], [])\n\u001b[1;32m 110\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m b, qs, f \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(B, filtered_post, \u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mrange\u001b[39m(nf))):\n", - "File \u001b[0;32m~/projects/pymdp/pymdp/jax/inference.py:86\u001b[0m, in \u001b[0;36mjoint_dist_factor\u001b[0;34m(b, filtered_qs, actions)\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m qs_smooth, (qs_smooth, qs_joint)\n\u001b[1;32m 85\u001b[0m \u001b[38;5;66;03m# seq_qs will contain a sequence of smoothed marginals and joints\u001b[39;00m\n\u001b[0;32m---> 86\u001b[0m _, seq_qs \u001b[38;5;241m=\u001b[39m \u001b[43mlax\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mscan\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 87\u001b[0m \u001b[43m \u001b[49m\u001b[43mstep_fn\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 88\u001b[0m \u001b[43m \u001b[49m\u001b[43mqs_last\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 89\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43mqs_filter\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mactions\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 90\u001b[0m \u001b[43m \u001b[49m\u001b[43mreverse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 91\u001b[0m \u001b[43m \u001b[49m\u001b[43munroll\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m2\u001b[39;49m\n\u001b[1;32m 92\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;66;03m# we add the last filtered belief to smoothed beliefs\u001b[39;00m\n\u001b[1;32m 96\u001b[0m qs_smooth_all \u001b[38;5;241m=\u001b[39m jnp\u001b[38;5;241m.\u001b[39mconcatenate([seq_qs[\u001b[38;5;241m0\u001b[39m], jnp\u001b[38;5;241m.\u001b[39mexpand_dims(qs_last, \u001b[38;5;241m0\u001b[39m)], \u001b[38;5;241m0\u001b[39m)\n", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:288\u001b[0m, in \u001b[0;36mscan\u001b[0;34m(f, init, xs, length, reverse, unroll, _split_transpose)\u001b[0m\n\u001b[1;32m 286\u001b[0m in_flat \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m*\u001b[39min_state, \u001b[38;5;241m*\u001b[39min_carry, \u001b[38;5;241m*\u001b[39min_ext]\n\u001b[1;32m 287\u001b[0m num_carry \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(attrs_tracked)\n\u001b[0;32m--> 288\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mscan_p\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43min_flat\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 289\u001b[0m \u001b[43m \u001b[49m\u001b[43mreverse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreverse\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlength\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlength\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 290\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_consts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mconsts\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_carry\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_carry\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 291\u001b[0m \u001b[43m \u001b[49m\u001b[43mlinear\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mconsts\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43min_flat\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 292\u001b[0m \u001b[43m \u001b[49m\u001b[43munroll\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43munroll\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 293\u001b[0m \u001b[43m \u001b[49m\u001b[43m_split_transpose\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_split_transpose\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 294\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m attrs_tracked:\n\u001b[1;32m 295\u001b[0m out_state, out \u001b[38;5;241m=\u001b[39m split_list(out, [\u001b[38;5;28mlen\u001b[39m(attrs_tracked)])\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:1280\u001b[0m, in \u001b[0;36mscan_bind\u001b[0;34m(*args, **params)\u001b[0m\n\u001b[1;32m 1278\u001b[0m _scan_typecheck(\u001b[38;5;28;01mTrue\u001b[39;00m, \u001b[38;5;241m*\u001b[39min_atoms, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams)\n\u001b[1;32m 1279\u001b[0m core\u001b[38;5;241m.\u001b[39mcheck_jaxpr(params[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mjaxpr\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39mjaxpr)\n\u001b[0;32m-> 1280\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcore\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mAxisPrimitive\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\u001b[43mscan_p\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:2789\u001b[0m, in \u001b[0;36mAxisPrimitive.bind\u001b[0;34m(self, *args, **params)\u001b[0m\n\u001b[1;32m 2785\u001b[0m axis_main \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmax\u001b[39m((axis_frame(a)\u001b[38;5;241m.\u001b[39mmain_trace \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m used_axis_names(\u001b[38;5;28mself\u001b[39m, params)),\n\u001b[1;32m 2786\u001b[0m default\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, key\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mlambda\u001b[39;00m t: \u001b[38;5;28mgetattr\u001b[39m(t, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlevel\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 2787\u001b[0m top_trace \u001b[38;5;241m=\u001b[39m (top_trace \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m axis_main \u001b[38;5;129;01mor\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mlevel \u001b[38;5;241m<\u001b[39m top_trace\u001b[38;5;241m.\u001b[39mlevel\n\u001b[1;32m 2788\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mwith_cur_sublevel())\n\u001b[0;32m-> 2789\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind_with_trace\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtop_trace\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:391\u001b[0m, in \u001b[0;36mPrimitive.bind_with_trace\u001b[0;34m(self, trace, args, params)\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbind_with_trace\u001b[39m(\u001b[38;5;28mself\u001b[39m, trace, args, params):\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m pop_level(trace\u001b[38;5;241m.\u001b[39mlevel):\n\u001b[0;32m--> 391\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess_primitive\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfull_raise\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 392\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mmap\u001b[39m(full_lower, out) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmultiple_results \u001b[38;5;28;01melse\u001b[39;00m full_lower(out)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/batching.py:433\u001b[0m, in \u001b[0;36mBatchTrace.process_primitive\u001b[0;34m(self, primitive, tracers, params)\u001b[0m\n\u001b[1;32m 431\u001b[0m frame \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_frame(vals_in, dims_in)\n\u001b[1;32m 432\u001b[0m batched_primitive \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_primitive_batcher(primitive, frame)\n\u001b[0;32m--> 433\u001b[0m val_out, dim_out \u001b[38;5;241m=\u001b[39m \u001b[43mbatched_primitive\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvals_in\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdims_in\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 434\u001b[0m src \u001b[38;5;241m=\u001b[39m source_info_util\u001b[38;5;241m.\u001b[39mcurrent()\n\u001b[1;32m 435\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m primitive\u001b[38;5;241m.\u001b[39mmultiple_results:\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:975\u001b[0m, in \u001b[0;36m_scan_batching_rule\u001b[0;34m(spmd_axis_name, axis_size, axis_name, main_type, args, dims, reverse, length, jaxpr, num_consts, num_carry, linear, unroll, _split_transpose)\u001b[0m\n\u001b[1;32m 971\u001b[0m new_xs \u001b[38;5;241m=\u001b[39m [batching\u001b[38;5;241m.\u001b[39mmoveaxis(x, d, \u001b[38;5;241m1\u001b[39m) \u001b[38;5;28;01mif\u001b[39;00m d \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m batching\u001b[38;5;241m.\u001b[39mnot_mapped \u001b[38;5;129;01mand\u001b[39;00m d \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[1;32m 972\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m x \u001b[38;5;28;01mfor\u001b[39;00m x, d \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(xs, xs_bdims)]\n\u001b[1;32m 973\u001b[0m new_args \u001b[38;5;241m=\u001b[39m new_consts \u001b[38;5;241m+\u001b[39m new_init \u001b[38;5;241m+\u001b[39m new_xs\n\u001b[0;32m--> 975\u001b[0m outs \u001b[38;5;241m=\u001b[39m \u001b[43mscan_p\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 976\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mnew_args\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreverse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreverse\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlength\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlength\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjaxpr_batched\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 977\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_consts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_consts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_carry\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_carry\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlinear\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43munroll\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43munroll\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 978\u001b[0m \u001b[43m \u001b[49m\u001b[43m_split_transpose\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_split_transpose\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 979\u001b[0m carry_bdims \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m0\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m b \u001b[38;5;28;01melse\u001b[39;00m batching\u001b[38;5;241m.\u001b[39mnot_mapped \u001b[38;5;28;01mfor\u001b[39;00m b \u001b[38;5;129;01min\u001b[39;00m carry_batched]\n\u001b[1;32m 980\u001b[0m ys_bdims \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m1\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m b \u001b[38;5;28;01melse\u001b[39;00m batching\u001b[38;5;241m.\u001b[39mnot_mapped \u001b[38;5;28;01mfor\u001b[39;00m b \u001b[38;5;129;01min\u001b[39;00m ys_batched]\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:1280\u001b[0m, in \u001b[0;36mscan_bind\u001b[0;34m(*args, **params)\u001b[0m\n\u001b[1;32m 1278\u001b[0m _scan_typecheck(\u001b[38;5;28;01mTrue\u001b[39;00m, \u001b[38;5;241m*\u001b[39min_atoms, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams)\n\u001b[1;32m 1279\u001b[0m core\u001b[38;5;241m.\u001b[39mcheck_jaxpr(params[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mjaxpr\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39mjaxpr)\n\u001b[0;32m-> 1280\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcore\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mAxisPrimitive\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\u001b[43mscan_p\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:2789\u001b[0m, in \u001b[0;36mAxisPrimitive.bind\u001b[0;34m(self, *args, **params)\u001b[0m\n\u001b[1;32m 2785\u001b[0m axis_main \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmax\u001b[39m((axis_frame(a)\u001b[38;5;241m.\u001b[39mmain_trace \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m used_axis_names(\u001b[38;5;28mself\u001b[39m, params)),\n\u001b[1;32m 2786\u001b[0m default\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, key\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mlambda\u001b[39;00m t: \u001b[38;5;28mgetattr\u001b[39m(t, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlevel\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 2787\u001b[0m top_trace \u001b[38;5;241m=\u001b[39m (top_trace \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m axis_main \u001b[38;5;129;01mor\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mlevel \u001b[38;5;241m<\u001b[39m top_trace\u001b[38;5;241m.\u001b[39mlevel\n\u001b[1;32m 2788\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mwith_cur_sublevel())\n\u001b[0;32m-> 2789\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind_with_trace\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtop_trace\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:391\u001b[0m, in \u001b[0;36mPrimitive.bind_with_trace\u001b[0;34m(self, trace, args, params)\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbind_with_trace\u001b[39m(\u001b[38;5;28mself\u001b[39m, trace, args, params):\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m pop_level(trace\u001b[38;5;241m.\u001b[39mlevel):\n\u001b[0;32m--> 391\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess_primitive\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfull_raise\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 392\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mmap\u001b[39m(full_lower, out) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmultiple_results \u001b[38;5;28;01melse\u001b[39;00m full_lower(out)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:879\u001b[0m, in \u001b[0;36mEvalTrace.process_primitive\u001b[0;34m(self, primitive, tracers, params)\u001b[0m\n\u001b[1;32m 877\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m call_impl_with_key_reuse_checks(primitive, primitive\u001b[38;5;241m.\u001b[39mimpl, \u001b[38;5;241m*\u001b[39mtracers, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams)\n\u001b[1;32m 878\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 879\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mprimitive\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mimpl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mtracers\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/dispatch.py:86\u001b[0m, in \u001b[0;36mapply_primitive\u001b[0;34m(prim, *args, **params)\u001b[0m\n\u001b[1;32m 84\u001b[0m prev \u001b[38;5;241m=\u001b[39m lib\u001b[38;5;241m.\u001b[39mjax_jit\u001b[38;5;241m.\u001b[39mswap_thread_local_state_disable_jit(\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 85\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 86\u001b[0m outs \u001b[38;5;241m=\u001b[39m \u001b[43mfun\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 87\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 88\u001b[0m lib\u001b[38;5;241m.\u001b[39mjax_jit\u001b[38;5;241m.\u001b[39mswap_thread_local_state_disable_jit(prev)\n", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:304\u001b[0m, in \u001b[0;36m_cpp_pjit..cache_miss\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[38;5;129m@api_boundary\u001b[39m\n\u001b[1;32m 303\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcache_miss\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m--> 304\u001b[0m outs, out_flat, out_tree, args_flat, jaxpr, attrs_tracked \u001b[38;5;241m=\u001b[39m \u001b[43m_python_pjit_helper\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 305\u001b[0m \u001b[43m \u001b[49m\u001b[43mjit_info\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 306\u001b[0m executable \u001b[38;5;241m=\u001b[39m _read_most_recent_pjit_call_executable(jaxpr)\n\u001b[1;32m 307\u001b[0m maybe_fastpath_data \u001b[38;5;241m=\u001b[39m _get_fastpath_data(\n\u001b[1;32m 308\u001b[0m executable, out_tree, args_flat, out_flat, attrs_tracked, jaxpr\u001b[38;5;241m.\u001b[39meffects,\n\u001b[1;32m 309\u001b[0m jaxpr\u001b[38;5;241m.\u001b[39mconsts, jit_info\u001b[38;5;241m.\u001b[39mabstracted_axes)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:181\u001b[0m, in \u001b[0;36m_python_pjit_helper\u001b[0;34m(jit_info, *args, **kwargs)\u001b[0m\n\u001b[1;32m 178\u001b[0m args_flat \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m*\u001b[39minit_states, \u001b[38;5;241m*\u001b[39margs_flat]\n\u001b[1;32m 180\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 181\u001b[0m out_flat \u001b[38;5;241m=\u001b[39m \u001b[43mpjit_p\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs_flat\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 182\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m pxla\u001b[38;5;241m.\u001b[39mDeviceAssignmentMismatchError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 183\u001b[0m fails, \u001b[38;5;241m=\u001b[39m e\u001b[38;5;241m.\u001b[39margs\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:2789\u001b[0m, in \u001b[0;36mAxisPrimitive.bind\u001b[0;34m(self, *args, **params)\u001b[0m\n\u001b[1;32m 2785\u001b[0m axis_main \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmax\u001b[39m((axis_frame(a)\u001b[38;5;241m.\u001b[39mmain_trace \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m used_axis_names(\u001b[38;5;28mself\u001b[39m, params)),\n\u001b[1;32m 2786\u001b[0m default\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, key\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mlambda\u001b[39;00m t: \u001b[38;5;28mgetattr\u001b[39m(t, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlevel\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 2787\u001b[0m top_trace \u001b[38;5;241m=\u001b[39m (top_trace \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m axis_main \u001b[38;5;129;01mor\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mlevel \u001b[38;5;241m<\u001b[39m top_trace\u001b[38;5;241m.\u001b[39mlevel\n\u001b[1;32m 2788\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mwith_cur_sublevel())\n\u001b[0;32m-> 2789\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind_with_trace\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtop_trace\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:391\u001b[0m, in \u001b[0;36mPrimitive.bind_with_trace\u001b[0;34m(self, trace, args, params)\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbind_with_trace\u001b[39m(\u001b[38;5;28mself\u001b[39m, trace, args, params):\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m pop_level(trace\u001b[38;5;241m.\u001b[39mlevel):\n\u001b[0;32m--> 391\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess_primitive\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfull_raise\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 392\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mmap\u001b[39m(full_lower, out) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmultiple_results \u001b[38;5;28;01melse\u001b[39;00m full_lower(out)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:879\u001b[0m, in \u001b[0;36mEvalTrace.process_primitive\u001b[0;34m(self, primitive, tracers, params)\u001b[0m\n\u001b[1;32m 877\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m call_impl_with_key_reuse_checks(primitive, primitive\u001b[38;5;241m.\u001b[39mimpl, \u001b[38;5;241m*\u001b[39mtracers, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams)\n\u001b[1;32m 878\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 879\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mprimitive\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mimpl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mtracers\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:1525\u001b[0m, in \u001b[0;36m_pjit_call_impl\u001b[0;34m(jaxpr, in_shardings, out_shardings, in_layouts, out_layouts, resource_env, donated_invars, name, keep_unused, inline, *args)\u001b[0m\n\u001b[1;32m 1522\u001b[0m donated_argnums \u001b[38;5;241m=\u001b[39m [i \u001b[38;5;28;01mfor\u001b[39;00m i, d \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(donated_invars) \u001b[38;5;28;01mif\u001b[39;00m d]\n\u001b[1;32m 1523\u001b[0m has_explicit_sharding \u001b[38;5;241m=\u001b[39m _pjit_explicit_sharding(\n\u001b[1;32m 1524\u001b[0m in_shardings, out_shardings, \u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[0;32m-> 1525\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mxc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_xla\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpjit\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1526\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcall_impl_cache_miss\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdonated_argnums\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1527\u001b[0m \u001b[43m \u001b[49m\u001b[43mtree_util\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdispatch_registry\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1528\u001b[0m \u001b[43m \u001b[49m\u001b[43mpxla\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshard_arg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# type: ignore\u001b[39;49;00m\n\u001b[1;32m 1529\u001b[0m \u001b[43m \u001b[49m\u001b[43m_get_cpp_global_cache\u001b[49m\u001b[43m(\u001b[49m\u001b[43mhas_explicit_sharding\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:1508\u001b[0m, in \u001b[0;36m_pjit_call_impl..call_impl_cache_miss\u001b[0;34m(*args_, **kwargs_)\u001b[0m\n\u001b[1;32m 1507\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcall_impl_cache_miss\u001b[39m(\u001b[38;5;241m*\u001b[39margs_, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs_):\n\u001b[0;32m-> 1508\u001b[0m out_flat, compiled \u001b[38;5;241m=\u001b[39m \u001b[43m_pjit_call_impl_python\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1509\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1510\u001b[0m \u001b[43m \u001b[49m\u001b[43mout_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1511\u001b[0m \u001b[43m \u001b[49m\u001b[43mout_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mresource_env\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresource_env\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1512\u001b[0m \u001b[43m \u001b[49m\u001b[43mdonated_invars\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdonated_invars\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeep_unused\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeep_unused\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1513\u001b[0m \u001b[43m \u001b[49m\u001b[43minline\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minline\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1514\u001b[0m fastpath_data \u001b[38;5;241m=\u001b[39m _get_fastpath_data(\n\u001b[1;32m 1515\u001b[0m compiled, tree_structure(out_flat), args, out_flat, [], jaxpr\u001b[38;5;241m.\u001b[39meffects,\n\u001b[1;32m 1516\u001b[0m jaxpr\u001b[38;5;241m.\u001b[39mconsts, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[1;32m 1517\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out_flat, fastpath_data\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:1434\u001b[0m, in \u001b[0;36m_pjit_call_impl_python\u001b[0;34m(jaxpr, in_shardings, out_shardings, in_layouts, out_layouts, resource_env, donated_invars, name, keep_unused, inline, *args)\u001b[0m\n\u001b[1;32m 1429\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_pjit_call_impl_python\u001b[39m(\n\u001b[1;32m 1430\u001b[0m \u001b[38;5;241m*\u001b[39margs, jaxpr, in_shardings, out_shardings, in_layouts, out_layouts,\n\u001b[1;32m 1431\u001b[0m resource_env, donated_invars, name, keep_unused, inline):\n\u001b[1;32m 1432\u001b[0m \u001b[38;5;28;01mglobal\u001b[39;00m _most_recent_pjit_call_executable\n\u001b[0;32m-> 1434\u001b[0m compiled \u001b[38;5;241m=\u001b[39m \u001b[43m_resolve_and_lower\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1435\u001b[0m \u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1436\u001b[0m \u001b[43m \u001b[49m\u001b[43min_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mresource_env\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresource_env\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1437\u001b[0m \u001b[43m \u001b[49m\u001b[43mdonated_invars\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdonated_invars\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeep_unused\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeep_unused\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1438\u001b[0m \u001b[43m \u001b[49m\u001b[43minline\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minline\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlowering_parameters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmlir\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mLoweringParameters\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mcompile()\n\u001b[1;32m 1440\u001b[0m _most_recent_pjit_call_executable\u001b[38;5;241m.\u001b[39mweak_key_dict[jaxpr] \u001b[38;5;241m=\u001b[39m compiled\n\u001b[1;32m 1441\u001b[0m \u001b[38;5;66;03m# This check is expensive so only do it if enable_checks is on.\u001b[39;00m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:1422\u001b[0m, in \u001b[0;36m_resolve_and_lower\u001b[0;34m(args, jaxpr, in_shardings, out_shardings, in_layouts, out_layouts, resource_env, donated_invars, name, keep_unused, inline, lowering_parameters)\u001b[0m\n\u001b[1;32m 1417\u001b[0m in_shardings \u001b[38;5;241m=\u001b[39m _resolve_in_shardings(\n\u001b[1;32m 1418\u001b[0m args, in_shardings, out_shardings,\n\u001b[1;32m 1419\u001b[0m resource_env\u001b[38;5;241m.\u001b[39mphysical_mesh \u001b[38;5;28;01mif\u001b[39;00m resource_env \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[1;32m 1420\u001b[0m in_layouts \u001b[38;5;241m=\u001b[39m _resolve_in_layouts(args, in_layouts, in_shardings,\n\u001b[1;32m 1421\u001b[0m jaxpr\u001b[38;5;241m.\u001b[39min_avals)\n\u001b[0;32m-> 1422\u001b[0m lowered \u001b[38;5;241m=\u001b[39m \u001b[43m_pjit_lower\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1423\u001b[0m \u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mresource_env\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1424\u001b[0m \u001b[43m \u001b[49m\u001b[43mdonated_invars\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeep_unused\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minline\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1425\u001b[0m \u001b[43m \u001b[49m\u001b[43mlowering_parameters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlowering_parameters\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1426\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m lowered\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:1535\u001b[0m, in \u001b[0;36m_pjit_lower\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1534\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_pjit_lower\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m-> 1535\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_pjit_lower_cached\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:1572\u001b[0m, in \u001b[0;36m_pjit_lower_cached\u001b[0;34m(jaxpr, in_shardings, out_shardings, in_layouts, out_layouts, resource_env, donated_invars, name, keep_unused, inline, lowering_parameters)\u001b[0m\n\u001b[1;32m 1566\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m pxla\u001b[38;5;241m.\u001b[39mlower_mesh_computation(\n\u001b[1;32m 1567\u001b[0m jaxpr, api_name, name, mesh,\n\u001b[1;32m 1568\u001b[0m in_shardings, out_shardings, donated_invars,\n\u001b[1;32m 1569\u001b[0m \u001b[38;5;28;01mTrue\u001b[39;00m, jaxpr\u001b[38;5;241m.\u001b[39min_avals, tiling_method\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 1570\u001b[0m lowering_parameters\u001b[38;5;241m=\u001b[39mlowering_parameters)\n\u001b[1;32m 1571\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1572\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mpxla\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlower_sharding_computation\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1573\u001b[0m \u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mapi_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1574\u001b[0m \u001b[43m \u001b[49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mtuple\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mdonated_invars\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1575\u001b[0m \u001b[43m \u001b[49m\u001b[43mkeep_unused\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeep_unused\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minline\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minline\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1576\u001b[0m \u001b[43m \u001b[49m\u001b[43mdevices_from_context\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1577\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mmesh\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mmesh\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mempty\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mlist\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mmesh\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdevices\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mflat\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1578\u001b[0m \u001b[43m \u001b[49m\u001b[43mlowering_parameters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlowering_parameters\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/profiler.py:335\u001b[0m, in \u001b[0;36mannotate_function..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 332\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(func)\n\u001b[1;32m 333\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 334\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m TraceAnnotation(name, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mdecorator_kwargs):\n\u001b[0;32m--> 335\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 336\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m wrapper\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/pxla.py:2129\u001b[0m, in \u001b[0;36mlower_sharding_computation\u001b[0;34m(closed_jaxpr, api_name, fun_name, in_shardings, out_shardings, in_layouts, out_layouts, donated_invars, keep_unused, inline, devices_from_context, lowering_parameters)\u001b[0m\n\u001b[1;32m 2124\u001b[0m semantic_out_shardings \u001b[38;5;241m=\u001b[39m SemanticallyEqualShardings(\n\u001b[1;32m 2125\u001b[0m out_shardings, global_out_avals) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 2126\u001b[0m prim_requires_devices \u001b[38;5;241m=\u001b[39m dispatch\u001b[38;5;241m.\u001b[39mjaxpr_has_prim_requiring_devices(jaxpr)\n\u001b[1;32m 2128\u001b[0m (module, keepalive, host_callbacks, unordered_effects, ordered_effects,\n\u001b[0;32m-> 2129\u001b[0m nreps, tuple_args, shape_poly_state) \u001b[38;5;241m=\u001b[39m \u001b[43m_cached_lowering_to_hlo\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2130\u001b[0m \u001b[43m \u001b[49m\u001b[43mclosed_jaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mapi_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfun_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbackend\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msemantic_in_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2131\u001b[0m \u001b[43m \u001b[49m\u001b[43msemantic_out_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mda_object\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2132\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mtuple\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mda_object\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mprim_requires_devices\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdonated_invars\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2133\u001b[0m \u001b[43m \u001b[49m\u001b[43mname_stack\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mall_default_mem_kind\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minout_aliases\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2134\u001b[0m \u001b[43m \u001b[49m\u001b[43mlowering_parameters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlowering_parameters\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2136\u001b[0m \u001b[38;5;66;03m# backend and device_assignment is passed through to MeshExecutable because\u001b[39;00m\n\u001b[1;32m 2137\u001b[0m \u001b[38;5;66;03m# if keep_unused=False and all in_shardings are pruned, then there is no way\u001b[39;00m\n\u001b[1;32m 2138\u001b[0m \u001b[38;5;66;03m# to get the device_assignment and backend. So pass it to MeshExecutable\u001b[39;00m\n\u001b[1;32m 2139\u001b[0m \u001b[38;5;66;03m# because we calculate the device_assignment and backend before in_shardings,\u001b[39;00m\n\u001b[1;32m 2140\u001b[0m \u001b[38;5;66;03m# etc are pruned.\u001b[39;00m\n\u001b[1;32m 2141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m MeshComputation(\n\u001b[1;32m 2142\u001b[0m \u001b[38;5;28mstr\u001b[39m(name_stack),\n\u001b[1;32m 2143\u001b[0m module,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2165\u001b[0m all_default_mem_kind\u001b[38;5;241m=\u001b[39mall_default_mem_kind,\n\u001b[1;32m 2166\u001b[0m all_args_info\u001b[38;5;241m=\u001b[39mall_args_info)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/pxla.py:1941\u001b[0m, in \u001b[0;36m_cached_lowering_to_hlo\u001b[0;34m(closed_jaxpr, api_name, fun_name, backend, semantic_in_shardings, semantic_out_shardings, in_layouts, out_layouts, num_devices, device_assignment, donated_invars, name_stack, all_default_mem_kind, inout_aliases, lowering_parameters)\u001b[0m\n\u001b[1;32m 1936\u001b[0m ordered_effects \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(effects\u001b[38;5;241m.\u001b[39mordered_effects\u001b[38;5;241m.\u001b[39mfilter_in(closed_jaxpr\u001b[38;5;241m.\u001b[39meffects))\n\u001b[1;32m 1938\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m dispatch\u001b[38;5;241m.\u001b[39mlog_elapsed_time(\n\u001b[1;32m 1939\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFinished jaxpr to MLIR module conversion \u001b[39m\u001b[38;5;132;01m{fun_name}\u001b[39;00m\u001b[38;5;124m in \u001b[39m\u001b[38;5;132;01m{elapsed_time}\u001b[39;00m\u001b[38;5;124m sec\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 1940\u001b[0m fun_name\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(name_stack), event\u001b[38;5;241m=\u001b[39mdispatch\u001b[38;5;241m.\u001b[39mJAXPR_TO_MLIR_MODULE_EVENT):\n\u001b[0;32m-> 1941\u001b[0m lowering_result \u001b[38;5;241m=\u001b[39m \u001b[43mmlir\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlower_jaxpr_to_module\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1942\u001b[0m \u001b[43m \u001b[49m\u001b[43mmodule_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1943\u001b[0m \u001b[43m \u001b[49m\u001b[43mclosed_jaxpr\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1944\u001b[0m \u001b[43m \u001b[49m\u001b[43mordered_effects\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mordered_effects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1945\u001b[0m \u001b[43m \u001b[49m\u001b[43mbackend_or_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbackend\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1946\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;66;43;03m# Optionally, override the lowering platform\u001b[39;49;00m\n\u001b[1;32m 1947\u001b[0m \u001b[43m \u001b[49m\u001b[43mplatforms\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlowering_parameters\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplatforms\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43mbackend\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplatform\u001b[49m\u001b[43m,\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1948\u001b[0m \u001b[43m \u001b[49m\u001b[43maxis_context\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxis_ctx\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1949\u001b[0m \u001b[43m \u001b[49m\u001b[43mname_stack\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname_stack\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1950\u001b[0m \u001b[43m \u001b[49m\u001b[43mdonated_args\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdonated_invars\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1951\u001b[0m \u001b[43m \u001b[49m\u001b[43mreplicated_args\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreplicated_args\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1952\u001b[0m \u001b[43m \u001b[49m\u001b[43marg_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_mlir_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1953\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_mlir_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1954\u001b[0m \u001b[43m \u001b[49m\u001b[43min_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1955\u001b[0m \u001b[43m \u001b[49m\u001b[43mout_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_layouts\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1956\u001b[0m \u001b[43m \u001b[49m\u001b[43marg_names\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdebug_info\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mand\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdebug_info\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43marg_names\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1957\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult_names\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdebug_info\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mand\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdebug_info\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult_paths\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1958\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_replicas\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnreps\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1959\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_partitions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_partitions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1960\u001b[0m \u001b[43m \u001b[49m\u001b[43mall_default_mem_kind\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mall_default_mem_kind\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1961\u001b[0m \u001b[43m \u001b[49m\u001b[43minput_output_aliases\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minout_aliases\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1962\u001b[0m \u001b[43m \u001b[49m\u001b[43mlowering_parameters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlowering_parameters\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1963\u001b[0m tuple_args \u001b[38;5;241m=\u001b[39m dispatch\u001b[38;5;241m.\u001b[39mshould_tuple_args(\u001b[38;5;28mlen\u001b[39m(global_in_avals), backend\u001b[38;5;241m.\u001b[39mplatform)\n\u001b[1;32m 1964\u001b[0m unordered_effects \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(\n\u001b[1;32m 1965\u001b[0m effects\u001b[38;5;241m.\u001b[39mordered_effects\u001b[38;5;241m.\u001b[39mfilter_not_in(closed_jaxpr\u001b[38;5;241m.\u001b[39meffects))\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/mlir.py:974\u001b[0m, in \u001b[0;36mlower_jaxpr_to_module\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 972\u001b[0m attrs[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmhlo.num_partitions\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m i32_attr(num_partitions)\n\u001b[1;32m 973\u001b[0m replace_tokens_with_dummy \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[0;32m--> 974\u001b[0m \u001b[43mlower_jaxpr_to_fun\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 975\u001b[0m \u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmain\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mordered_effects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 976\u001b[0m \u001b[43m \u001b[49m\u001b[43mname_stack\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname_stack\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 977\u001b[0m \u001b[43m \u001b[49m\u001b[43mpublic\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 978\u001b[0m \u001b[43m \u001b[49m\u001b[43mcreate_tokens\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreplace_tokens_with_dummy\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 979\u001b[0m \u001b[43m \u001b[49m\u001b[43mreplace_tokens_with_dummy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreplace_tokens_with_dummy\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 980\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_output_tokens\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 981\u001b[0m \u001b[43m \u001b[49m\u001b[43mreplicated_args\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreplicated_args\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 982\u001b[0m \u001b[43m \u001b[49m\u001b[43marg_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43marg_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 983\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresult_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 984\u001b[0m \u001b[43m \u001b[49m\u001b[43minput_output_aliases\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minput_output_aliases\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 985\u001b[0m \u001b[43m \u001b[49m\u001b[43mxla_donated_args\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mxla_donated_args\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 986\u001b[0m \u001b[43m \u001b[49m\u001b[43marg_names\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43marg_names\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 987\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult_names\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresult_names\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 988\u001b[0m \u001b[43m \u001b[49m\u001b[43marg_memory_kinds\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43marg_memory_kinds\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 989\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult_memory_kinds\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresult_memory_kinds\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 990\u001b[0m \u001b[43m \u001b[49m\u001b[43marg_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 991\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_layouts\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 993\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 994\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m ctx\u001b[38;5;241m.\u001b[39mmodule\u001b[38;5;241m.\u001b[39moperation\u001b[38;5;241m.\u001b[39mverify():\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/mlir.py:1438\u001b[0m, in \u001b[0;36mlower_jaxpr_to_fun\u001b[0;34m(ctx, name, jaxpr, effects, name_stack, create_tokens, public, replace_tokens_with_dummy, replicated_args, arg_shardings, result_shardings, use_sharding_annotations, input_output_aliases, xla_donated_args, num_output_tokens, api_name, arg_names, result_names, arg_memory_kinds, result_memory_kinds, arg_layouts, result_layouts)\u001b[0m\n\u001b[1;32m 1436\u001b[0m callee_name_stack \u001b[38;5;241m=\u001b[39m name_stack\u001b[38;5;241m.\u001b[39mextend(util\u001b[38;5;241m.\u001b[39mwrap_name(name, api_name))\n\u001b[1;32m 1437\u001b[0m consts \u001b[38;5;241m=\u001b[39m [ir_constants(xla\u001b[38;5;241m.\u001b[39mcanonicalize_dtype(x)) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m jaxpr\u001b[38;5;241m.\u001b[39mconsts]\n\u001b[0;32m-> 1438\u001b[0m out_vals, tokens_out \u001b[38;5;241m=\u001b[39m \u001b[43mjaxpr_subcomp\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1439\u001b[0m \u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcallee_name_stack\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtokens_in\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1440\u001b[0m \u001b[43m \u001b[49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdim_var_values\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdim_var_values\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1441\u001b[0m outs \u001b[38;5;241m=\u001b[39m []\n\u001b[1;32m 1442\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m create_tokens:\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/mlir.py:1622\u001b[0m, in \u001b[0;36mjaxpr_subcomp\u001b[0;34m(ctx, jaxpr, name_stack, tokens, consts, dim_var_values, *args)\u001b[0m\n\u001b[1;32m 1619\u001b[0m rule_ctx \u001b[38;5;241m=\u001b[39m rule_ctx\u001b[38;5;241m.\u001b[39mreplace(axis_size_env\u001b[38;5;241m=\u001b[39maxis_size_env)\n\u001b[1;32m 1621\u001b[0m rule_inputs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmap\u001b[39m(_unwrap_singleton_ir_values, in_nodes)\n\u001b[0;32m-> 1622\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[43mlower_per_platform\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrule_ctx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43meqn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprimitive\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1623\u001b[0m \u001b[43m \u001b[49m\u001b[43mplatform_rules\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdefault_rule\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1624\u001b[0m \u001b[43m \u001b[49m\u001b[43meqn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meffects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1625\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mrule_inputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43meqn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1627\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m effects:\n\u001b[1;32m 1628\u001b[0m \u001b[38;5;66;03m# If there were ordered effects in the primitive, there should be output\u001b[39;00m\n\u001b[1;32m 1629\u001b[0m \u001b[38;5;66;03m# tokens we need for subsequent ordered effects.\u001b[39;00m\n\u001b[1;32m 1630\u001b[0m tokens_out \u001b[38;5;241m=\u001b[39m rule_ctx\u001b[38;5;241m.\u001b[39mtokens_out\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/mlir.py:1730\u001b[0m, in \u001b[0;36mlower_per_platform\u001b[0;34m(ctx, description, platform_rules, default_rule, effects, *rule_args, **rule_kwargs)\u001b[0m\n\u001b[1;32m 1728\u001b[0m \u001b[38;5;66;03m# If there is a single rule left just apply the rule, without conditionals.\u001b[39;00m\n\u001b[1;32m 1729\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(kept_rules) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[0;32m-> 1730\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mkept_rules\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m(\u001b[49m\u001b[43mctx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mrule_args\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mrule_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1732\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(platforms) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(kept_rules) \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m2\u001b[39m, (platforms, kept_rules)\n\u001b[1;32m 1733\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(ctx\u001b[38;5;241m.\u001b[39mdim_var_values) \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMust have a platform_index variable\u001b[39m\u001b[38;5;124m\"\u001b[39m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/mlir.py:1814\u001b[0m, in \u001b[0;36mlower_fun..f_lowered\u001b[0;34m(ctx, *args, **params)\u001b[0m\n\u001b[1;32m 1812\u001b[0m jaxpr, _, consts \u001b[38;5;241m=\u001b[39m pe\u001b[38;5;241m.\u001b[39mtrace_to_jaxpr_dynamic2(wrapped_fun)\n\u001b[1;32m 1813\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1814\u001b[0m jaxpr, _, consts, () \u001b[38;5;241m=\u001b[39m \u001b[43mpe\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrace_to_jaxpr_dynamic\u001b[49m\u001b[43m(\u001b[49m\u001b[43mwrapped_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mavals_in\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1815\u001b[0m \u001b[38;5;66;03m# TODO(frostig,mattjj): check ctx.avals_out against jaxpr avals out?\u001b[39;00m\n\u001b[1;32m 1817\u001b[0m out, tokens \u001b[38;5;241m=\u001b[39m jaxpr_subcomp(\n\u001b[1;32m 1818\u001b[0m ctx\u001b[38;5;241m.\u001b[39mmodule_context, jaxpr, ctx\u001b[38;5;241m.\u001b[39mname_stack, ctx\u001b[38;5;241m.\u001b[39mtokens_in,\n\u001b[1;32m 1819\u001b[0m _ir_consts(consts), \u001b[38;5;241m*\u001b[39m\u001b[38;5;28mmap\u001b[39m(wrap_singleton_ir_values, args),\n\u001b[1;32m 1820\u001b[0m dim_var_values\u001b[38;5;241m=\u001b[39mctx\u001b[38;5;241m.\u001b[39mdim_var_values)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/profiler.py:335\u001b[0m, in \u001b[0;36mannotate_function..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 332\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(func)\n\u001b[1;32m 333\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 334\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m TraceAnnotation(name, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mdecorator_kwargs):\n\u001b[0;32m--> 335\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 336\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m wrapper\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:2326\u001b[0m, in \u001b[0;36mtrace_to_jaxpr_dynamic\u001b[0;34m(fun, in_avals, debug_info, keep_inputs)\u001b[0m\n\u001b[1;32m 2324\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m core\u001b[38;5;241m.\u001b[39mnew_main(DynamicJaxprTrace, dynamic\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m) \u001b[38;5;28;01mas\u001b[39;00m main: \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 2325\u001b[0m main\u001b[38;5;241m.\u001b[39mjaxpr_stack \u001b[38;5;241m=\u001b[39m () \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[0;32m-> 2326\u001b[0m jaxpr, out_avals, consts, attrs_tracked \u001b[38;5;241m=\u001b[39m \u001b[43mtrace_to_subjaxpr_dynamic\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2327\u001b[0m \u001b[43m \u001b[49m\u001b[43mfun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmain\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeep_inputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeep_inputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdebug_info\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdebug_info\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2328\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m main, fun\n\u001b[1;32m 2329\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m jaxpr, out_avals, consts, attrs_tracked\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:2348\u001b[0m, in \u001b[0;36mtrace_to_subjaxpr_dynamic\u001b[0;34m(fun, main, in_avals, keep_inputs, debug_info)\u001b[0m\n\u001b[1;32m 2346\u001b[0m in_tracers \u001b[38;5;241m=\u001b[39m _input_type_to_tracers(trace\u001b[38;5;241m.\u001b[39mnew_arg, in_avals)\n\u001b[1;32m 2347\u001b[0m in_tracers_ \u001b[38;5;241m=\u001b[39m [t \u001b[38;5;28;01mfor\u001b[39;00m t, keep \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(in_tracers, keep_inputs) \u001b[38;5;28;01mif\u001b[39;00m keep]\n\u001b[0;32m-> 2348\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[43mfun\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_wrapped\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43min_tracers_\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2349\u001b[0m out_tracers \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmap\u001b[39m(trace\u001b[38;5;241m.\u001b[39mfull_raise, ans)\n\u001b[1;32m 2350\u001b[0m jaxpr, consts, attrs_tracked \u001b[38;5;241m=\u001b[39m frame\u001b[38;5;241m.\u001b[39mto_jaxpr(out_tracers)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/linear_util.py:192\u001b[0m, in \u001b[0;36mWrappedFun.call_wrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 189\u001b[0m gen \u001b[38;5;241m=\u001b[39m gen_static_args \u001b[38;5;241m=\u001b[39m out_store \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 192\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mdict\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 193\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m:\n\u001b[1;32m 194\u001b[0m \u001b[38;5;66;03m# Some transformations yield from inside context managers, so we have to\u001b[39;00m\n\u001b[1;32m 195\u001b[0m \u001b[38;5;66;03m# interrupt them before reraising the exception. Otherwise they will only\u001b[39;00m\n\u001b[1;32m 196\u001b[0m \u001b[38;5;66;03m# get garbage-collected at some later time, running their cleanup tasks\u001b[39;00m\n\u001b[1;32m 197\u001b[0m \u001b[38;5;66;03m# only after this exception is handled, which can corrupt the global\u001b[39;00m\n\u001b[1;32m 198\u001b[0m \u001b[38;5;66;03m# state.\u001b[39;00m\n\u001b[1;32m 199\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m stack:\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:476\u001b[0m, in \u001b[0;36m_scan_impl\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 473\u001b[0m split \u001b[38;5;241m=\u001b[39m partial(_split_leading_dim, length_div)\n\u001b[1;32m 474\u001b[0m xs, xs_rem \u001b[38;5;241m=\u001b[39m unzip2(_map(split, x_avals, xs))\n\u001b[0;32m--> 476\u001b[0m outs \u001b[38;5;241m=\u001b[39m \u001b[43m_scan_impl_block_unrolled\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 477\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43minit\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mxs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreverse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreverse\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlength\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlength_div\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 478\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_consts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_consts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_carry\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_carry\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlinear\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 479\u001b[0m \u001b[43m \u001b[49m\u001b[43mblock_length\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43munroll\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mf_impl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mf_impl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mx_avals\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mx_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_avals\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43my_avals\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 481\u001b[0m carry, ys \u001b[38;5;241m=\u001b[39m split_list(outs, [num_carry])\n\u001b[1;32m 483\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m rem \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:441\u001b[0m, in \u001b[0;36m_scan_impl_block_unrolled\u001b[0;34m(reverse, length, num_consts, num_carry, linear, block_length, f_impl, x_avals, y_avals, *args)\u001b[0m\n\u001b[1;32m 434\u001b[0m y_block_avals \u001b[38;5;241m=\u001b[39m _map(prepend_aval, y_avals)\n\u001b[1;32m 436\u001b[0m f_impl_block \u001b[38;5;241m=\u001b[39m partial(\n\u001b[1;32m 437\u001b[0m _scan_impl_unrolled, reverse\u001b[38;5;241m=\u001b[39mreverse, length\u001b[38;5;241m=\u001b[39mblock_length,\n\u001b[1;32m 438\u001b[0m num_consts\u001b[38;5;241m=\u001b[39mnum_consts, num_carry\u001b[38;5;241m=\u001b[39mnum_carry, linear\u001b[38;5;241m=\u001b[39mlinear,\n\u001b[1;32m 439\u001b[0m f_impl\u001b[38;5;241m=\u001b[39mf_impl, x_avals\u001b[38;5;241m=\u001b[39mx_avals, y_avals\u001b[38;5;241m=\u001b[39my_avals)\n\u001b[0;32m--> 441\u001b[0m outs \u001b[38;5;241m=\u001b[39m \u001b[43m_scan_impl_loop\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 442\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43minit\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mxs_block\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreverse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreverse\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlength\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_blocks\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 443\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_consts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_consts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_carry\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_carry\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlinear\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 444\u001b[0m \u001b[43m \u001b[49m\u001b[43mf_impl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mf_impl_block\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mx_avals\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mx_block_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_avals\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43my_block_avals\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 446\u001b[0m carry, ys_blocks \u001b[38;5;241m=\u001b[39m split_list(outs, [num_carry])\n\u001b[1;32m 447\u001b[0m combine \u001b[38;5;241m=\u001b[39m partial(_combine_leading, num_blocks, block_length)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:419\u001b[0m, in \u001b[0;36m_scan_impl_loop\u001b[0;34m(reverse, length, num_consts, num_carry, linear, f_impl, x_avals, y_avals, *args)\u001b[0m\n\u001b[1;32m 417\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 418\u001b[0m init_val \u001b[38;5;241m=\u001b[39m [lax\u001b[38;5;241m.\u001b[39m_const(length, \u001b[38;5;241m0\u001b[39m)] \u001b[38;5;241m+\u001b[39m init \u001b[38;5;241m+\u001b[39m ys_init\n\u001b[0;32m--> 419\u001b[0m _, \u001b[38;5;241m*\u001b[39mouts \u001b[38;5;241m=\u001b[39m \u001b[43mwhile_loop\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcond_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbody_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minit_val\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 420\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m outs\n", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:1393\u001b[0m, in \u001b[0;36mwhile_loop\u001b[0;34m(cond_fun, body_fun, init_val)\u001b[0m\n\u001b[1;32m 1386\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m init_vals, init_avals, body_jaxpr, in_tree, cond_jaxpr, cond_consts, body_consts, body_tree\n\u001b[1;32m 1388\u001b[0m \u001b[38;5;66;03m# The body input and output avals must match exactly. However, we want to account for\u001b[39;00m\n\u001b[1;32m 1389\u001b[0m \u001b[38;5;66;03m# the case when init contains weakly-typed values (e.g. Python scalars), with avals that\u001b[39;00m\n\u001b[1;32m 1390\u001b[0m \u001b[38;5;66;03m# may not match the output despite being compatible by virtue of their weak type.\u001b[39;00m\n\u001b[1;32m 1391\u001b[0m \u001b[38;5;66;03m# To do this, we compute the jaxpr in two passes: first with the raw inputs, and if\u001b[39;00m\n\u001b[1;32m 1392\u001b[0m \u001b[38;5;66;03m# necessary, a second time with modified init values.\u001b[39;00m\n\u001b[0;32m-> 1393\u001b[0m init_vals, init_avals, body_jaxpr, in_tree, \u001b[38;5;241m*\u001b[39mrest \u001b[38;5;241m=\u001b[39m \u001b[43m_create_jaxpr\u001b[49m\u001b[43m(\u001b[49m\u001b[43minit_val\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1394\u001b[0m new_init_vals, changed \u001b[38;5;241m=\u001b[39m _promote_weak_typed_inputs(init_vals, init_avals, body_jaxpr\u001b[38;5;241m.\u001b[39mout_avals)\n\u001b[1;32m 1395\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m changed:\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:1376\u001b[0m, in \u001b[0;36mwhile_loop.._create_jaxpr\u001b[0;34m(init_val)\u001b[0m\n\u001b[1;32m 1373\u001b[0m init_avals \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(_map(_abstractify, init_vals))\n\u001b[1;32m 1374\u001b[0m cond_jaxpr, cond_consts, cond_tree \u001b[38;5;241m=\u001b[39m _initial_style_jaxpr(\n\u001b[1;32m 1375\u001b[0m cond_fun, in_tree, init_avals, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwhile_cond\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 1376\u001b[0m body_jaxpr, body_consts, body_tree \u001b[38;5;241m=\u001b[39m \u001b[43m_initial_style_jaxpr\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1377\u001b[0m \u001b[43m \u001b[49m\u001b[43mbody_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_tree\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minit_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mwhile_loop\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1378\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m treedef_is_leaf(cond_tree) \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(cond_jaxpr\u001b[38;5;241m.\u001b[39mout_avals) \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[1;32m 1379\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcond_fun must return a boolean scalar, but got pytree \u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/common.py:67\u001b[0m, in \u001b[0;36m_initial_style_jaxpr\u001b[0;34m(fun, in_tree, in_avals, primitive_name)\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[38;5;129m@weakref_lru_cache\u001b[39m\n\u001b[1;32m 65\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_initial_style_jaxpr\u001b[39m(fun: Callable, in_tree, in_avals,\n\u001b[1;32m 66\u001b[0m primitive_name: \u001b[38;5;28mstr\u001b[39m \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m---> 67\u001b[0m jaxpr, consts, out_tree, () \u001b[38;5;241m=\u001b[39m \u001b[43m_initial_style_open_jaxpr\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 68\u001b[0m \u001b[43m \u001b[49m\u001b[43mfun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_tree\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mprimitive_name\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 69\u001b[0m closed_jaxpr \u001b[38;5;241m=\u001b[39m pe\u001b[38;5;241m.\u001b[39mclose_jaxpr(pe\u001b[38;5;241m.\u001b[39mconvert_constvars_jaxpr(jaxpr))\n\u001b[1;32m 70\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m closed_jaxpr, consts, out_tree\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/common.py:60\u001b[0m, in \u001b[0;36m_initial_style_open_jaxpr\u001b[0;34m(fun, in_tree, in_avals, primitive_name)\u001b[0m\n\u001b[1;32m 57\u001b[0m wrapped_fun, out_tree \u001b[38;5;241m=\u001b[39m flatten_fun_nokwargs(lu\u001b[38;5;241m.\u001b[39mwrap_init(fun), in_tree)\n\u001b[1;32m 58\u001b[0m debug \u001b[38;5;241m=\u001b[39m pe\u001b[38;5;241m.\u001b[39mdebug_info(fun, in_tree, out_tree, \u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 59\u001b[0m primitive_name \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 60\u001b[0m jaxpr, _, consts, attrs_tracked \u001b[38;5;241m=\u001b[39m \u001b[43mpe\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrace_to_jaxpr_dynamic\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 61\u001b[0m \u001b[43m \u001b[49m\u001b[43mwrapped_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdebug\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 62\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m jaxpr, consts, out_tree(), attrs_tracked\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/profiler.py:335\u001b[0m, in \u001b[0;36mannotate_function..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 332\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(func)\n\u001b[1;32m 333\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 334\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m TraceAnnotation(name, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mdecorator_kwargs):\n\u001b[0;32m--> 335\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 336\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m wrapper\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:2326\u001b[0m, in \u001b[0;36mtrace_to_jaxpr_dynamic\u001b[0;34m(fun, in_avals, debug_info, keep_inputs)\u001b[0m\n\u001b[1;32m 2324\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m core\u001b[38;5;241m.\u001b[39mnew_main(DynamicJaxprTrace, dynamic\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m) \u001b[38;5;28;01mas\u001b[39;00m main: \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 2325\u001b[0m main\u001b[38;5;241m.\u001b[39mjaxpr_stack \u001b[38;5;241m=\u001b[39m () \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[0;32m-> 2326\u001b[0m jaxpr, out_avals, consts, attrs_tracked \u001b[38;5;241m=\u001b[39m \u001b[43mtrace_to_subjaxpr_dynamic\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2327\u001b[0m \u001b[43m \u001b[49m\u001b[43mfun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmain\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeep_inputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeep_inputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdebug_info\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdebug_info\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2328\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m main, fun\n\u001b[1;32m 2329\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m jaxpr, out_avals, consts, attrs_tracked\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:2348\u001b[0m, in \u001b[0;36mtrace_to_subjaxpr_dynamic\u001b[0;34m(fun, main, in_avals, keep_inputs, debug_info)\u001b[0m\n\u001b[1;32m 2346\u001b[0m in_tracers \u001b[38;5;241m=\u001b[39m _input_type_to_tracers(trace\u001b[38;5;241m.\u001b[39mnew_arg, in_avals)\n\u001b[1;32m 2347\u001b[0m in_tracers_ \u001b[38;5;241m=\u001b[39m [t \u001b[38;5;28;01mfor\u001b[39;00m t, keep \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(in_tracers, keep_inputs) \u001b[38;5;28;01mif\u001b[39;00m keep]\n\u001b[0;32m-> 2348\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[43mfun\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_wrapped\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43min_tracers_\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2349\u001b[0m out_tracers \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmap\u001b[39m(trace\u001b[38;5;241m.\u001b[39mfull_raise, ans)\n\u001b[1;32m 2350\u001b[0m jaxpr, consts, attrs_tracked \u001b[38;5;241m=\u001b[39m frame\u001b[38;5;241m.\u001b[39mto_jaxpr(out_tracers)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/linear_util.py:192\u001b[0m, in \u001b[0;36mWrappedFun.call_wrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 189\u001b[0m gen \u001b[38;5;241m=\u001b[39m gen_static_args \u001b[38;5;241m=\u001b[39m out_store \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 192\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mdict\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 193\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m:\n\u001b[1;32m 194\u001b[0m \u001b[38;5;66;03m# Some transformations yield from inside context managers, so we have to\u001b[39;00m\n\u001b[1;32m 195\u001b[0m \u001b[38;5;66;03m# interrupt them before reraising the exception. Otherwise they will only\u001b[39;00m\n\u001b[1;32m 196\u001b[0m \u001b[38;5;66;03m# get garbage-collected at some later time, running their cleanup tasks\u001b[39;00m\n\u001b[1;32m 197\u001b[0m \u001b[38;5;66;03m# only after this exception is handled, which can corrupt the global\u001b[39;00m\n\u001b[1;32m 198\u001b[0m \u001b[38;5;66;03m# state.\u001b[39;00m\n\u001b[1;32m 199\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m stack:\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:407\u001b[0m, in \u001b[0;36m_scan_impl_loop..body_fun\u001b[0;34m(vals)\u001b[0m\n\u001b[1;32m 405\u001b[0m xs_unconsumed \u001b[38;5;241m=\u001b[39m _map(jax\u001b[38;5;241m.\u001b[39mrandom\u001b[38;5;241m.\u001b[39mclone, xs)\n\u001b[1;32m 406\u001b[0m x \u001b[38;5;241m=\u001b[39m _map(partial(_dynamic_index_array, i_), x_avals, xs_unconsumed)\n\u001b[0;32m--> 407\u001b[0m out_flat \u001b[38;5;241m=\u001b[39m \u001b[43mf_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mcarry\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 408\u001b[0m carry_out, y_updates \u001b[38;5;241m=\u001b[39m split_list(out_flat, [num_carry])\n\u001b[1;32m 409\u001b[0m ys_out \u001b[38;5;241m=\u001b[39m _map(partial(_update_array, i_), y_avals, ys, y_updates)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:383\u001b[0m, in \u001b[0;36m_scan_impl_unrolled\u001b[0;34m(reverse, length, num_consts, num_carry, linear, f_impl, x_avals, y_avals, *args)\u001b[0m\n\u001b[1;32m 381\u001b[0m i_ \u001b[38;5;241m=\u001b[39m length \u001b[38;5;241m-\u001b[39m i \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m reverse \u001b[38;5;28;01melse\u001b[39;00m i\n\u001b[1;32m 382\u001b[0m x \u001b[38;5;241m=\u001b[39m _map(partial(_index_array, i_), x_avals, xs)\n\u001b[0;32m--> 383\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mf_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mcarry\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 384\u001b[0m carry, y \u001b[38;5;241m=\u001b[39m split_list(out, [num_carry])\n\u001b[1;32m 385\u001b[0m ys\u001b[38;5;241m.\u001b[39mappend(y)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:259\u001b[0m, in \u001b[0;36mjaxpr_as_fun\u001b[0;34m(closed_jaxpr, *args)\u001b[0m\n\u001b[1;32m 257\u001b[0m \u001b[38;5;129m@curry\u001b[39m\n\u001b[1;32m 258\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mjaxpr_as_fun\u001b[39m(closed_jaxpr: ClosedJaxpr, \u001b[38;5;241m*\u001b[39margs):\n\u001b[0;32m--> 259\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43meval_jaxpr\u001b[49m\u001b[43m(\u001b[49m\u001b[43mclosed_jaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mclosed_jaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:456\u001b[0m, in \u001b[0;36meval_jaxpr\u001b[0;34m(jaxpr, consts, propagate_source_info, *args)\u001b[0m\n\u001b[1;32m 454\u001b[0m traceback \u001b[38;5;241m=\u001b[39m eqn\u001b[38;5;241m.\u001b[39msource_info\u001b[38;5;241m.\u001b[39mtraceback \u001b[38;5;28;01mif\u001b[39;00m propagate_source_info \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 455\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m source_info_util\u001b[38;5;241m.\u001b[39muser_context(traceback, name_stack\u001b[38;5;241m=\u001b[39mname_stack):\n\u001b[0;32m--> 456\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[43meqn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprimitive\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msubfuns\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mread\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43meqn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minvars\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mbind_params\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 457\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m eqn\u001b[38;5;241m.\u001b[39mprimitive\u001b[38;5;241m.\u001b[39mmultiple_results:\n\u001b[1;32m 458\u001b[0m \u001b[38;5;28mmap\u001b[39m(write, eqn\u001b[38;5;241m.\u001b[39moutvars, ans)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:387\u001b[0m, in \u001b[0;36mPrimitive.bind\u001b[0;34m(self, *args, **params)\u001b[0m\n\u001b[1;32m 384\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbind\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams):\n\u001b[1;32m 385\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m (\u001b[38;5;129;01mnot\u001b[39;00m config\u001b[38;5;241m.\u001b[39menable_checks\u001b[38;5;241m.\u001b[39mvalue \u001b[38;5;129;01mor\u001b[39;00m\n\u001b[1;32m 386\u001b[0m \u001b[38;5;28mall\u001b[39m(\u001b[38;5;28misinstance\u001b[39m(arg, Tracer) \u001b[38;5;129;01mor\u001b[39;00m valid_jaxtype(arg) \u001b[38;5;28;01mfor\u001b[39;00m arg \u001b[38;5;129;01min\u001b[39;00m args)), args\n\u001b[0;32m--> 387\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind_with_trace\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfind_top_trace\u001b[49m\u001b[43m(\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:391\u001b[0m, in \u001b[0;36mPrimitive.bind_with_trace\u001b[0;34m(self, trace, args, params)\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbind_with_trace\u001b[39m(\u001b[38;5;28mself\u001b[39m, trace, args, params):\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m pop_level(trace\u001b[38;5;241m.\u001b[39mlevel):\n\u001b[0;32m--> 391\u001b[0m out \u001b[38;5;241m=\u001b[39m trace\u001b[38;5;241m.\u001b[39mprocess_primitive(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfull_raise\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m, params)\n\u001b[1;32m 392\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mmap\u001b[39m(full_lower, out) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmultiple_results \u001b[38;5;28;01melse\u001b[39;00m full_lower(out)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:490\u001b[0m, in \u001b[0;36mTrace.full_raise\u001b[0;34m(self, val)\u001b[0m\n\u001b[1;32m 488\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpure(val)\n\u001b[1;32m 489\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 490\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpure\u001b[49m\u001b[43m(\u001b[49m\u001b[43mval\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 491\u001b[0m val\u001b[38;5;241m.\u001b[39m_assert_live()\n\u001b[1;32m 492\u001b[0m level \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlevel\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:1962\u001b[0m, in \u001b[0;36mDynamicJaxprTrace.new_const\u001b[0;34m(self, c)\u001b[0m\n\u001b[1;32m 1960\u001b[0m aval \u001b[38;5;241m=\u001b[39m raise_to_shaped(get_aval(c), weak_type\u001b[38;5;241m=\u001b[39mdtypes\u001b[38;5;241m.\u001b[39mis_weakly_typed(c))\n\u001b[1;32m 1961\u001b[0m aval \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lift_tracers_in_aval(aval)\n\u001b[0;32m-> 1962\u001b[0m tracer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_new_const\u001b[49m\u001b[43m(\u001b[49m\u001b[43maval\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mc\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1963\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m tracer\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:1970\u001b[0m, in \u001b[0;36mDynamicJaxprTrace._new_const\u001b[0;34m(self, aval, c)\u001b[0m\n\u001b[1;32m 1968\u001b[0m tracer \u001b[38;5;241m=\u001b[39m DynamicJaxprTracer(\u001b[38;5;28mself\u001b[39m, aval, source_info_util\u001b[38;5;241m.\u001b[39mcurrent())\n\u001b[1;32m 1969\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mframe\u001b[38;5;241m.\u001b[39mtracers\u001b[38;5;241m.\u001b[39mappend(tracer)\n\u001b[0;32m-> 1970\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mframe\u001b[38;5;241m.\u001b[39mtracer_to_var[\u001b[38;5;28mid\u001b[39m(tracer)] \u001b[38;5;241m=\u001b[39m var \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mframe\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnewvar\u001b[49m\u001b[43m(\u001b[49m\u001b[43maval\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1971\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mframe\u001b[38;5;241m.\u001b[39mconstid_to_tracer[\u001b[38;5;28mid\u001b[39m(c)] \u001b[38;5;241m=\u001b[39m tracer\n\u001b[1;32m 1972\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mframe\u001b[38;5;241m.\u001b[39mconstvar_to_val[var] \u001b[38;5;241m=\u001b[39m c\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:1820\u001b[0m, in \u001b[0;36mJaxprStackFrame.newvar\u001b[0;34m(self, aval)\u001b[0m\n\u001b[1;32m 1817\u001b[0m config\u001b[38;5;241m.\u001b[39menable_checks\u001b[38;5;241m.\u001b[39mvalue \u001b[38;5;129;01mand\u001b[39;00m core\u001b[38;5;241m.\u001b[39mcheck_jaxpr(jaxpr)\n\u001b[1;32m 1818\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m jaxpr, out_type, constvals\n\u001b[0;32m-> 1820\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mnewvar\u001b[39m(\u001b[38;5;28mself\u001b[39m, aval):\n\u001b[1;32m 1821\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(aval, DShapedArray):\n\u001b[1;32m 1822\u001b[0m \u001b[38;5;66;03m# this aval may have tracers in it, so we replace those with variables\u001b[39;00m\n\u001b[1;32m 1823\u001b[0m new_shape \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtracer_to_var[\u001b[38;5;28mid\u001b[39m(d)] \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(d, Tracer) \u001b[38;5;28;01melse\u001b[39;00m d\n\u001b[1;32m 1824\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m d \u001b[38;5;129;01min\u001b[39;00m aval\u001b[38;5;241m.\u001b[39mshape]\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], + "outputs": [], "source": [ "pA0 = 1e4 * A[0] + 1e-4\n", "pB0 = 1e4 * B[0] + 1e-4\n", From c3b795b974583e2bc832a1945264d05d7a581812 Mon Sep 17 00:00:00 2001 From: conorheins Date: Wed, 2 Oct 2024 12:08:01 +0200 Subject: [PATCH 182/196] renamed `PyMDPEnv` to `Env` in `graph_worlds.py` --- pymdp/envs/graph_worlds.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pymdp/envs/graph_worlds.py b/pymdp/envs/graph_worlds.py index 5c9918b4..78b81dfb 100644 --- a/pymdp/envs/graph_worlds.py +++ b/pymdp/envs/graph_worlds.py @@ -1,7 +1,7 @@ import networkx as nx import jax.numpy as jnp -from .env import PyMDPEnv +from .env import Env def generate_connected_clusters(cluster_size=2, connections=2): @@ -20,7 +20,7 @@ def generate_connected_clusters(cluster_size=2, connections=2): } -class GraphEnv(PyMDPEnv): +class GraphEnv(Env): """ A simple environment where an agent can move around a graph and search an object. The agent observes its own location, as well as whether the object is at its location. From 786ec502b9488d158b361a12201570af64030261 Mon Sep 17 00:00:00 2001 From: conorheins Date: Wed, 2 Oct 2024 12:09:02 +0200 Subject: [PATCH 183/196] renamed `PyMDPEnv` to `Env` in `grid_world_demo.ipynb` --- examples/mcts/grid_world_demo.ipynb | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/examples/mcts/grid_world_demo.ipynb b/examples/mcts/grid_world_demo.ipynb index 28dbdab9..63fb2301 100644 --- a/examples/mcts/grid_world_demo.ipynb +++ b/examples/mcts/grid_world_demo.ipynb @@ -1073,13 +1073,6 @@ "ani = animate(images)\n", "HTML(ani.to_html5_video())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -1098,7 +1091,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.7" + "version": "3.12.3" } }, "nbformat": 4, From b4513b4bd1e3131a7e3f10b6bda76e2229051bf7 Mon Sep 17 00:00:00 2001 From: conorheins Date: Wed, 2 Oct 2024 14:56:38 +0200 Subject: [PATCH 184/196] started refactoring `GeneralizedTMaze(Env)` class --- pymdp/envs/generalized_tmaze.py | 234 +++++++++++++++++++++----------- 1 file changed, 157 insertions(+), 77 deletions(-) diff --git a/pymdp/envs/generalized_tmaze.py b/pymdp/envs/generalized_tmaze.py index 74419f2e..6a8c4ee6 100644 --- a/pymdp/envs/generalized_tmaze.py +++ b/pymdp/envs/generalized_tmaze.py @@ -1,5 +1,6 @@ -from pymdp.jax.envs import PyMDPEnv +from .env import Env import numpy as np +import jax.numpy as jnp import matplotlib.pyplot as plt import io @@ -7,46 +8,11 @@ import jax.numpy as jnp import jax.tree_util as jtu +from jax import random as jr +from jaxtyping import Array, PRNGKeyArray from matplotlib.lines import Line2D - -def position_to_index(position, shape): - """ - Maps the position in the grid to a flat index - Parameters - ---------- - position - Tuple of position (row, col) - shape - The shape of the grid (n_rows, n_cols) - - Returns - ---------- - index - A flattened index of position - """ - return position[0] * shape[1] + position[1] - - -def index_to_position(index, shape): - """ - Maps the flat index to a position coordinate in the grid - Parameters - ---------- - shape - The shape of the grid (n_rows, n_cols) - index - A flattened index of position - - Returns - ---------- - position - Tuple of position (row, col) - """ - return index // shape[1], index % shape[1] - - -def parse_maze(maze): +def parse_maze(maze, rng_key: PRNGKeyArray): """ Parameters ---------- @@ -67,45 +33,36 @@ def parse_maze(maze): purposes """ - maze = np.array(maze) rows, cols = maze.shape - num_cues = int((np.max(maze) - 2) // 3) + num_cues = int((jnp.max(maze) - 2) // 3) cue_positions = [] reward_1_positions = [] reward_2_positions = [] for i in range(num_cues): - cue_positions.append(tuple(np.argwhere(maze == 3 + 3 * i)[0])) - reward_1_positions.append(tuple(np.argwhere(maze == 4 + 3 * i)[0])) - reward_2_positions.append(tuple(np.argwhere(maze == 5 + 3 * i)[0])) + cue_positions.append(tuple(jnp.argwhere(maze == 3 + 3 * i)[0])) + reward_1_positions.append(tuple(jnp.argwhere(maze == 4 + 3 * i)[0])) + reward_2_positions.append(tuple(jnp.argwhere(maze == 5 + 3 * i)[0])) # Initialize agent's starting position (can be customized if required) - initial_position = tuple(np.argwhere(maze == 1)[0]) + initial_position = tuple(jnp.argwhere(maze == 1)[0]) # Actions: up, down, left, right actions = [(-1, 0), (1, 0), (0, -1), (0, 1)] # Set reward location randomly - reward_locations = np.random.choice([0, 1], size=num_cues) + reward_locations = jr.choice(rng_key, 2, shape=(num_cues,)) reward_indices = [] no_reward_indices = [] for i in range(num_cues): if reward_locations[i] == 0: - reward_indices += position_to_index( - reward_1_positions[i], maze.shape - ) - no_reward_indices += position_to_index( - reward_2_positions[i], maze.shape - ) + reward_indices += [jnp.ravel_multi_index(jnp.array(reward_1_positions[i]), maze.shape).item()] + no_reward_indices += [jnp.ravel_multi_index(jnp.array(reward_2_positions[i]), maze.shape).item()] else: - reward_indices += position_to_index( - reward_2_positions[i], maze.shape - ) - no_reward_indices += position_to_index( - reward_1_positions[i], maze.shape - ) + reward_indices += [jnp.ravel_multi_index(jnp.array(reward_2_positions[i]), maze.shape).item()] + no_reward_indices += [jnp.ravel_multi_index(jnp.array(reward_1_positions[i]), maze.shape).item()] return { "maze": maze, @@ -158,13 +115,9 @@ def generate_A(maze_info): cue_likelihood = np.zeros((3, num_states, 2)) cue_likelihood[0, :, :] = 1 # Default: no info about reward - cue_state_idx = position_to_index(cue_positions[i], maze.shape) - reward_1_state_idx = position_to_index( - reward_1_positions[i], maze.shape - ) - reward_2_state_idx = position_to_index( - reward_2_positions[i], maze.shape - ) + cue_state_idx = jnp.ravel_multi_index(jnp.array(cue_positions[i]), maze.shape) + reward_1_state_idx = jnp.ravel_multi_index(jnp.array(reward_1_positions[i]), maze.shape) + reward_2_state_idx = jnp.ravel_multi_index(jnp.array(reward_2_positions[i]), maze.shape) cue_likelihood[:, cue_state_idx, 0] = [0, 1, 0] # Reward in r1 cue_likelihood[:, cue_state_idx, 1] = [0, 0, 1] # Reward in r2 @@ -178,13 +131,8 @@ def generate_A(maze_info): reward_likelihood = np.zeros((3, num_states, 2)) reward_likelihood[0, :, :] = 1 # Default: no reward - reward_1_state_idx = position_to_index( - reward_1_positions[i], maze.shape - ) - - reward_2_state_idx = position_to_index( - reward_2_positions[i], maze.shape - ) + reward_1_state_idx = jnp.ravel_multi_index(jnp.array(reward_1_positions[i]), maze.shape) + reward_2_state_idx = jnp.ravel_multi_index(jnp.array(reward_2_positions[i]), maze.shape) # Reward in (8,4) if reward state is 0 reward_likelihood[:, reward_1_state_idx, 0] = [0, 1, 0] @@ -254,7 +202,7 @@ def generate_B(maze_info): ): P[s, a] = s else: - P[s, a] = position_to_index((ns_row, ns_col), maze.shape) + P[s, a] = jnp.ravel_multi_index(jnp.array((ns_row, ns_col)), maze.shape) B = np.zeros((num_states, num_states, num_actions)) for s in range(num_states): @@ -306,7 +254,7 @@ def generate_D(maze_info): D[0] = np.zeros(cols * rows) # Position of the agent when starting the environment - D[0][position_to_index(initial_position, maze.shape)] = 1 + D[0][jnp.ravel_multi_index(jnp.array(initial_position), maze.shape)] = 1 # Cue state i.e. where is the reward for i in range(num_cues): @@ -339,7 +287,7 @@ def render(maze_info, env_state, show_img=True): reward_2_positions = maze_info["reward_2_positions"] current_position = env_state.state[0] - current_position = index_to_position(current_position, maze.shape) + current_position = jnp.unravel_index(current_position, maze.shape) # Set all states not in [1] to be 0 (accessible state) mask = np.isin(maze, [2], invert=True) @@ -447,7 +395,7 @@ def render(maze_info, env_state, show_img=True): return image -class GeneralizedTMazeEnv(PyMDPEnv): +class GeneralizedTMazeEnv(Env): """ Extended version of the T-Maze in which there are multiple cues and reward pairs similar to the original T-maze. @@ -465,4 +413,136 @@ def __init__(self, env_info, batch_size=1): } dependencies = {"A": A_dependencies, "B": B_dependencies} - PyMDPEnv.__init__(self, params, dependencies) + Env.__init__(self, params, dependencies) + + def render(self, mode="human"): + """ + Renders the environment + Parameters + ---------- + mode: str, optional + The mode to render with ("human" or "rgb_array") + Returns + ---------- + if mode == "human": + returns None, renders the environment using matplotlib inside the function + elif mode == "rgb_array": + A (H, W, 3) jax.numpy array that can act as input to functions like plt.imshow, with values between 0 and 255 + """ + pass + # maze = maze_info["maze"] + # num_cues = maze_info["num_cues"] + # cue_positions = maze_info["cue_positions"] + # reward_1_positions = maze_info["reward_1_positions"] + # reward_2_positions = maze_info["reward_2_positions"] + + # current_position = env_state.state[0] + # current_position = jnp.unravel_index(current_position, maze.shape) + + # # Set all states not in [1] to be 0 (accessible state) + # mask = np.isin(maze, [2], invert=True) + # maze[mask] = 0 + + # plt.figure() + # plt.imshow(maze, cmap="gray_r", origin="lower") + + # cmap = plt.get_cmap("tab10") + # plt.scatter( + # [ci[1] for ci in cue_positions], + # [ci[0] for ci in cue_positions], + # color=[cmap(i) for i in range(len(cue_positions))], + # s=200, + # alpha=0.5, + # ) + # plt.scatter( + # [ci[1] for ci in cue_positions], + # [ci[0] for ci in cue_positions], + # color="black", + # s=50, + # label="Cue", + # marker="x", + # ) + + # plt.scatter( + # [ri[1] for ri in reward_1_positions], + # [ri[0] for ri in reward_1_positions], + # color=[cmap(i) for i in range(len(cue_positions))], + # s=200, + # alpha=0.5, + # ) + + # plt.scatter( + # [ri[1] for ri in reward_2_positions], + # [ri[0] for ri in reward_2_positions], + # color=[cmap(i) for i in range(len(cue_positions))], + # s=200, + # alpha=0.5, + # ) + + # plt.scatter( + # [ri[1] for ri in reward_1_positions[-1:]], + # [ri[0] for ri in reward_1_positions[-1:]], + # marker="o", + # color="red", + # s=50, + # label="Positive", + # ) + + # plt.scatter( + # [ri[1] for ri in reward_2_positions[-1:]], + # [ri[0] for ri in reward_2_positions[-1:]], + # marker="o", + # color="blue", + # s=50, + # label="Negative", + # ) + + # plt.scatter( + # current_position[1], + # current_position[0], + # c="tab:green", + # marker="s", + # s=100, + # label="Agent", + # ) + + # plt.title("Generalized T-Maze Environment") + + # handles, labels = plt.gca().get_legend_handles_labels() + # for i in range(num_cues): + # if i == num_cues - 1: + # label = "Reward set" + # else: + # label = f"Distractor {i + 1} set" + # patch = Line2D( + # [0], + # [0], + # marker="o", + # markersize=10, + # markerfacecolor=cmap(i), + # markeredgecolor=cmap(i), + # label=label, + # alpha=0.5, + # linestyle="", + # ) + # handles.append(patch) + + # plt.legend( + # handles=handles, loc="upper left", bbox_to_anchor=(1, 1), fancybox=True + # ) + # #plt.axis("off") + # plt.tight_layout() + + # # Capture the current figure as an image + # buf = io.BytesIO() + # plt.savefig(buf, format="png") + # buf.seek(0) + # image = PIL.Image.open(buf) + + # if show_img: + # plt.show() + + # return image + + + From 99cf06eb4d101401c5a76f9aef12dba27b279d74 Mon Sep 17 00:00:00 2001 From: conorheins Date: Wed, 2 Oct 2024 14:56:58 +0200 Subject: [PATCH 185/196] removed .jax module prefixes from imports in `pymdp.envs.rollout` --- pymdp/envs/rollout.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pymdp/envs/rollout.py b/pymdp/envs/rollout.py index 342f352b..6c39de58 100644 --- a/pymdp/envs/rollout.py +++ b/pymdp/envs/rollout.py @@ -3,8 +3,8 @@ import jax.tree_util as jtu import jax.lax -from pymdp.jax.agent import Agent -from pymdp.jax.envs.env import Env +from pymdp.agent import Agent +from pymdp.envs.env import Env def rollout(agent: Agent, env: Env, num_timesteps: int, rng_key: jr.PRNGKey, policy_search=None): From 591bf2410e40d471dc8d6770198c83ce5bca7c73 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Wed, 2 Oct 2024 19:37:14 +0200 Subject: [PATCH 186/196] refactor legacy TMaze to jax Env --- pymdp/envs/__init__.py | 1 - pymdp/envs/assets/cheese.png | Bin 0 -> 357897 bytes pymdp/envs/assets/mouse.png | Bin 0 -> 100301 bytes pymdp/envs/assets/shock.png | Bin 0 -> 28022 bytes pymdp/envs/env.py | 32 ++++-- pymdp/envs/tmaze.py | 212 +++++++++++++++++++++++++++++++---- pymdp/utils.py | 23 +++- 7 files changed, 233 insertions(+), 35 deletions(-) create mode 100644 pymdp/envs/assets/cheese.png create mode 100644 pymdp/envs/assets/mouse.png create mode 100644 pymdp/envs/assets/shock.png diff --git a/pymdp/envs/__init__.py b/pymdp/envs/__init__.py index b02c781d..3c70cf1f 100644 --- a/pymdp/envs/__init__.py +++ b/pymdp/envs/__init__.py @@ -1,2 +1 @@ -from .graph_worlds import GraphEnv from .tmaze import TMaze diff --git a/pymdp/envs/assets/cheese.png b/pymdp/envs/assets/cheese.png new file mode 100644 index 0000000000000000000000000000000000000000..929c52338844c9d5cc9277e9388262094be666ad GIT binary patch literal 357897 zcmY&=2{hE*|NqQblckg;YlSvSi!E86vZbDQ>}ym)$Qb)%3?`usA<6y?C3`|MvP}s^ zC}PTtF_L5%Mlv%D=68ph{{QoIP94uV_jB)kZ?E_3{km@bXJIBHBqIcYKt#+>8(Tvl zn{g0`AXShb{6wxf?0*mlRLjT6=)eE21cU?xUkO0$G&eHZi3ket^112>fgpz}lB&4vNAQj$%e`kgG zZw1EwCvb|gWmjyhVBRFDbv)?R)6b#B7w=!(;x_=-?OTjI&Uzzk1NpG2<`cY56!KL$ ziTP?m6-K$%UwJ}gtv&ML0g-=WsPOx7I}iNBK2E&UO84d(M2LBZ;5e?P;)-1V>>Z&;BM~7#MgG@ z4$**%5!SWCs<`iBN$+VqzhXB{ul` z2Lxg*2!TpCLLj;s5QtO&!CCPhgfHZhx$#L` znzv}59dE(Y(^kg!FBw7kHt)Xqzw3s!|83=y*fM#;O?g+`mQy=-p8E%X{j^Pl-9L0j z$Dwyv604~py!Uhq*ezsG^eWhWax^iY0cG6&F_sffo{(wU zdmGk$-+976kvelm{pYpw>l^WTEgB}czN1v-{S_=|GJlfSR%bDab*om23MuLpw58?0 zz0JJyhQyqullZ+c>hOinVo>%Q@*@_c8Jg2M7;u{T?I*iK!H|8hd0Roo@1;tt_(>|9 zbAnZi^I>`KeAC~C?>~=gx@?%lo1}*qlM9ZqS;{;AYfK;SfTI=4df^F}a45T>m#0_2 zpfxV~*u!eU0XECPaKh~MnT;z;y?u;wXk$(DdO4UL4^CYwKKq13|I45wKVqw}-C|^~ z?72A?>S`C>fw7dyfGUo@ZaKK3NNXSWXc=3;N2{^X?YsYF`(!-+y-gpxzuQb!g|� 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

-$1i*`XV&7l_ic$GWs$64rJ=qRYBdzo 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

XuEw@^gv2;mskp+i6R& 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%0DvlJ>lv-YXTb&UUX|AxBPFQEEL%(A(AbG88Gc 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 literal 0 HcmV?d00001 diff --git a/pymdp/envs/assets/mouse.png b/pymdp/envs/assets/mouse.png new file mode 100644 index 0000000000000000000000000000000000000000..02dc90b6081b511a3d28659f775a4a3ac617c8bb GIT binary patch literal 100301 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%0AR}JGX23SA6=0GjX(ooZOSu(Yi+LVB*NH?z5)uK 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 C#lM&U literal 0 HcmV?d00001 diff --git a/pymdp/envs/env.py b/pymdp/envs/env.py index a23d241a..2814a2a8 100644 --- a/pymdp/envs/env.py +++ b/pymdp/envs/env.py @@ -27,6 +27,7 @@ def cat_sample(key, p): class Env(Module): params: Dict state: List[Array] + current_obs: List[Array] dependencies: Dict = field(static=True) def __init__(self, params: Dict, dependencies: Dict, init_state: List[Array] = None): @@ -37,16 +38,23 @@ def __init__(self, params: Dict, dependencies: Dict, init_state: List[Array] = N init_state = jtu.tree_map(lambda x: jnp.argmax(x, -1), self.params["D"]) self.state = init_state + self.current_obs = jtu.tree_map(lambda x: jnp.zeros([x.shape[0], x.shape[1]]), self.params["A"]) - def reset(self, key: Optional[PRNGKeyArray] = None): - if key is None: + @vmap + def reset(self, key: Optional[PRNGKeyArray], state: Optional[List[Array]] = None): + if state is None: state = self.state else: probs = self.params["D"] - keys = list(jr.split(key, len(probs))) - state = jtu.tree_map(cat_sample, keys, probs) + keys = list(jr.split(key, len(probs) + 1)) + key = keys[0] + state = jtu.tree_map(cat_sample, keys[1:], probs) + + new_obs = self._sample_obs(key, state) - return tree_at(lambda x: x.state, self, state) # TODO: change this to return an observation + env = tree_at(lambda x: x.state, self, state) + env = tree_at(lambda x: x.current_obs, env, new_obs) + return new_obs, env def render(self, mode="human"): """ @@ -75,11 +83,17 @@ def step(self, rng_key: PRNGKeyArray, actions: Optional[Array] = None): else: new_state = state - _select_probs = partial(select_probs, new_state) + new_obs = self._sample_obs(key_obs, new_state) + + env = tree_at(lambda x: (x.state), self, new_state) + env = tree_at(lambda x: x.current_obs, env, new_obs) + return new_obs, env + + def _sample_obs(self, key, state): + _select_probs = partial(select_probs, state) obs_probs = jtu.tree_map(_select_probs, self.params["A"], self.dependencies["A"]) - keys = list(jr.split(key_obs, len(obs_probs))) + keys = list(jr.split(key, len(obs_probs))) new_obs = jtu.tree_map(cat_sample, keys, obs_probs) new_obs = jtu.tree_map(lambda x: jnp.expand_dims(x, -1), new_obs) - - return new_obs, tree_at(lambda x: (x.state), self, new_state) + return new_obs diff --git a/pymdp/envs/tmaze.py b/pymdp/envs/tmaze.py index 50f4f07d..ca274558 100644 --- a/pymdp/envs/tmaze.py +++ b/pymdp/envs/tmaze.py @@ -1,13 +1,33 @@ +import os +import math import jax.numpy as jnp + +import io +import matplotlib.pyplot as plt +import matplotlib.patches as patches +from matplotlib.offsetbox import OffsetImage, AnnotationBbox +import scipy.ndimage as ndimage +from pymdp.utils import fig2img + from equinox import field -from pympd.envs.env import Env +from .env import Env + +# load assets +assets_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "assets") +mouse_img = plt.imread(os.path.join(assets_dir, "mouse.png")) +right_mouse_img = jnp.clip(ndimage.rotate(mouse_img, 90, reshape=True), 0.0, 1.0) +left_mouse_img = jnp.clip(ndimage.rotate(mouse_img, -90, reshape=True), 0.0, 1.0) +up_mouse_img = jnp.clip(ndimage.rotate(mouse_img, 180, reshape=True), 0.0, 1.0) +cheese_img = plt.imread(os.path.join(assets_dir, "cheese.png")) +shock_img = plt.imread(os.path.join(assets_dir, "shock.png")) class TMaze(Env): """ Implementation of the 3-arm T-Maze environment. """ + reward_probability: float = field(static=True) def __init__(self, batch_size=1, reward_probability=0.98, reward_condition=None): @@ -18,6 +38,7 @@ def __init__(self, batch_size=1, reward_probability=0.98, reward_condition=None) B, B_dependencies = self.generate_B() B = [jnp.broadcast_to(b, (batch_size,) + b.shape) for b in B] D = self.generate_D(reward_condition) + D = [jnp.broadcast_to(d, (batch_size,) + d.shape) for d in D] params = { "A": A, @@ -32,16 +53,18 @@ def __init__(self, batch_size=1, reward_probability=0.98, reward_condition=None) super().__init__(params, dependencies) - def generate_A(self): """ - T-maze has 3 observation modalities: location, reward and cue, - and 2 state factors: agent location [center, left, right, cue] and reward location [left, right] + T-maze has 3 observation modalities: + location: [center, left, right, cue], + reward [no reward, reward, punishment] + and cue [no clue, left arm, right arm], + and 2 state factors: agent location [center, left, right, cue] and reward location [left, right] """ A = [] A.append(jnp.eye(4)) - A.append(jnp.zeros([2, 4, 2])) - A.append(jnp.zeros([2, 4, 2])) + A.append(jnp.zeros([3, 4, 2])) + A.append(jnp.zeros([3, 4, 2])) A_dependencies = [[0], [0, 1], [0, 1]] @@ -55,8 +78,8 @@ def generate_A(self): # or the outcome with index 0 A[1] = A[1].at[0, loc, reward_condition].set(1.0) - # When in the centre location, cue is totally ambiguous with respect to the reward condition - A[2] = A[2].at[:, loc, reward_condition].set(0.5) + # When in the centre location, cue is absent + A[2] = A[2].at[0, loc, reward_condition].set(1.0) # The case when loc == 3, or the cue location ('bottom arm') elif loc == 3: @@ -67,7 +90,7 @@ def generate_A(self): # When in the cue location, the cue indicates the reward condition umambiguously # signals where the reward is located - A[2] = A[2].at[reward_condition, loc, reward_condition].set(1.0) + A[2] = A[2].at[reward_condition + 1, loc, reward_condition].set(1.0) # The case when the agent is in one of the (potentially) rewarding arms else: @@ -84,25 +107,24 @@ def generate_A(self): # Lower probability on reward outcome low_prob_idx = 1 - A[1] = A[1].at[high_prob_idx, loc, reward_condition].set(self.reward_probility) + A[1] = A[1].at[high_prob_idx, loc, reward_condition].set(self.reward_probability) A[1] = A[1].at[low_prob_idx, loc, reward_condition].set(1 - self.reward_probability) - # Cue is ambiguous when in the reward location - A[2] = A[2].at[:, loc, reward_condition].set(0.5) + # Cue is absent here + A[2] = A[2].at[0, loc, reward_condition].set(1.0) return A, A_dependencies - def generate_B(self): """ - T-maze has 2 state factors: - agent location [center, left, right, cue] and reward location [left, right] - agent can move between locations by teleporting, reward location stays fixed + T-maze has 2 state factors: + agent location [center, left, right, cue] and reward location [left, right] + agent can move between locations by teleporting, reward location stays fixed """ B = [] # agent can teleport to any location - B_loc = jnp.eye(4) + B_loc = jnp.eye(4) B_loc = B_loc.reshape(4, 4, 1) B_loc = jnp.tile(B_loc, (1, 1, 4)) B_loc = B_loc.transpose(1, 2, 0) @@ -115,11 +137,11 @@ def generate_B(self): B_dependencies = [[0], [1]] return B, B_dependencies - + def generate_D(self, reward_condition=None): """ - Agent starts at center - Reward condition can be set or randomly sampled + Agent starts at center + Reward condition can be set or randomly sampled """ D = [] D_loc = jnp.zeros([4]) @@ -132,4 +154,152 @@ def generate_D(self, reward_condition=None): D_reward = jnp.zeros(2) D_reward = D_reward.at[reward_condition].set(1.0) D.append(D_reward) - return D \ No newline at end of file + return D + + def render(self, mode="human"): + batch_size = self.params["A"][0].shape[0] + + # Create n x n subplots for the batch_size + n = math.ceil(math.sqrt(batch_size)) + + # Create the subplots + fig, axes = plt.subplots(n, n, figsize=(6, 6)) + + # Loop through the batch_size and plot on each subplot + for i in range(batch_size): + row = i // n + col = i % n + if batch_size == 1: + ax = axes + else: + ax = axes[row, col] + + grid_dims = [3, 3] + X, Y = jnp.meshgrid(jnp.arange(grid_dims[1] + 1), jnp.arange(grid_dims[0] + 1)) + h = ax.pcolormesh( + X, Y, jnp.ones(grid_dims), edgecolors="none", vmin=0, vmax=30, linewidth=5, cmap="coolwarm", snap=True + ) + ax.invert_yaxis() + ax.axis("off") + ax.set_aspect("equal") + + edge_left = ax.add_patch( + patches.Rectangle( + (0, 1), + 1.0, + 2.0, + linewidth=0, + facecolor=[1.0, 1.0, 1.0], + ) + ) + + edge_right = ax.add_patch( + patches.Rectangle( + (2, 1), + 1.0, + 2.0, + linewidth=0, + facecolor=[1.0, 1.0, 1.0], + ) + ) + + arm_left = ax.add_patch( + patches.Rectangle( + (0, 0), + 1.0, + 1.0, + linewidth=0, + facecolor="tab:orange", + ) + ) + + arm_right = ax.add_patch( + patches.Rectangle( + (2, 0), + 1.0, + 1.0, + linewidth=0, + facecolor="tab:purple", + ) + ) + + # show the cue + cue = self.current_obs[2][i, 0] + if cue == 0: + cue_color = "tab:gray" + elif cue == 1: + # left + cue_color = "tab:orange" + elif cue == 2: + # right + cue_color = "tab:purple" + + cue = ax.add_patch( + patches.Circle( + (1.5, 2.5), + 0.3, + linewidth=0, + facecolor=cue_color, + ) + ) + + # show the reward + loc = self.current_obs[0][i, 0] + + reward = self.current_obs[1][i, 0] + + if loc == 1: + coords = (0.5, 0.5) + elif loc == 2: + coords = (2.5, 0.5) + + if reward == 1: + # cheese + cheese_im = OffsetImage(cheese_img, zoom=0.025 / n) + ab_cheese = AnnotationBbox(cheese_im, coords, xycoords="data", frameon=False) + an_cheese = ax.add_artist(ab_cheese) + an_cheese.set_zorder(2) + + elif reward == 2: + # shock + shock_im = OffsetImage(shock_img, zoom=0.1 / n) + ab_shock = AnnotationBbox(shock_im, coords, xycoords="data", frameon=False) + ab_shock = ax.add_artist(ab_shock) + ab_shock.set_zorder(2) + + # show the mouse + if loc == 0: + # center + up_mouse_im = OffsetImage(up_mouse_img, zoom=0.04 / n) + ab_mouse = AnnotationBbox(up_mouse_im, (1.5, 1.5), xycoords="data", frameon=False) + ab_mouse = ax.add_artist(ab_mouse) + ab_mouse.set_zorder(3) + elif loc == 1: + # left + left_mouse_im = OffsetImage(left_mouse_img, zoom=0.04 / n) + ab_mouse = AnnotationBbox(left_mouse_im, (0.75, 0.5), xycoords="data", frameon=False) + ab_mouse = ax.add_artist(ab_mouse) + ab_mouse.set_zorder(3) + elif loc == 2: + # right + right_mouse_im = OffsetImage(right_mouse_img, zoom=0.04 / n) + ab_mouse = AnnotationBbox(right_mouse_im, (2.25, 0.5), xycoords="data", frameon=False) + ab_mouse = ax.add_artist(ab_mouse) + ab_mouse.set_zorder(3) + elif loc == 3: + # bottom + down_mouse_im = OffsetImage(mouse_img, zoom=0.04 / n) + ab_mouse = AnnotationBbox(down_mouse_im, (1.5, 2.25), xycoords="data", frameon=False) + ab_mouse = ax.add_artist(ab_mouse) + ab_mouse.set_zorder(3) + + # Hide any extra subplots if batch_size isn't a perfect square + for i in range(batch_size, n * n): + fig.delaxes(axes.flatten()[i]) + + plt.tight_layout() + + if mode == "human": + plt.show() + elif mode == "rgb_array": + return fig2img(fig) diff --git a/pymdp/utils.py b/pymdp/utils.py index bdcc0b6c..cc5d2b56 100644 --- a/pymdp/utils.py +++ b/pymdp/utils.py @@ -11,6 +11,9 @@ import jax.tree_util as jtu import numpy as np +import io +import matplotlib.pyplot as plt + from typing import ( Any, Callable, @@ -22,9 +25,7 @@ Tuple, ) -Tensor = ( - Any # maybe jnp.ndarray, but typing seems not to be well defined for jax -) +Tensor = Any # maybe jnp.ndarray, but typing seems not to be well defined for jax Vector = List[Tensor] Shape = Sequence[int] ShapeList = list[Shape] @@ -117,4 +118,18 @@ def index_to_combination(index, dims): index = index // base x = np.flip(np.stack(x, axis=-1), axis=-1) - return x \ No newline at end of file + return x + + +def fig2img(fig): + """ + Utility function that converts a matplotlib figure to a numpy array + """ + with io.BytesIO() as buff: + fig.savefig(buff, facecolor="white", format="raw") + buff.seek(0) + data = np.frombuffer(buff.getvalue(), dtype=np.uint8) + w, h = fig.canvas.get_width_height() + im = data.reshape((int(h), int(w), -1)) + plt.close(fig) + return im[:, :, :3] From 696ffe9384ad4cf8eac8835184d58fac79b71751 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Wed, 2 Oct 2024 19:37:35 +0200 Subject: [PATCH 187/196] add TMaze demo notebook --- examples/envs/tmaze_demo.ipynb | 233 +++++++++++++++++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 examples/envs/tmaze_demo.ipynb diff --git a/examples/envs/tmaze_demo.ipynb b/examples/envs/tmaze_demo.ipynb new file mode 100644 index 00000000..a8c9f829 --- /dev/null +++ b/examples/envs/tmaze_demo.ipynb @@ -0,0 +1,233 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp\n", + "from jax import random as jr\n", + "\n", + "key = jr.PRNGKey(0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "batch_size = 1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.envs import TMaze\n", + "\n", + "env = TMaze(batch_size=batch_size)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 1 + batch_size)\n", + "key = keys[0]\n", + "o, env = env.reset(keys[1:])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(o)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(env.params[\"A\"][0][0, ...])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.imshow(env.params[\"A\"][1][0, 0, ...])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.imshow(env.params[\"A\"][1][0, 2, ...])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.imshow(env.params[\"A\"][1][0, 1, ...])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "env.render()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "o, env = env.step(keys[1:], jnp.array([[3, 0]]))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(o)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "env.render()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "o, env = env.step(keys[1:], jnp.array([[2, 0]]))\n", + "env.render()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "o, env = env.step(keys[1:], jnp.array([[1, 0]]))\n", + "env.render()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "o, env = env.step(keys[1:], jnp.array([[0, 0]]))\n", + "env.render()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "img = env.render(mode=\"rgb_array\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "img.shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.imshow(img)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 97338958b972ec923a7f7a4cc2fe94193d2a25d6 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Wed, 2 Oct 2024 19:37:55 +0200 Subject: [PATCH 188/196] refactor PyMDPEnv to Env --- pymdp/envs/graph_worlds.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pymdp/envs/graph_worlds.py b/pymdp/envs/graph_worlds.py index 5c9918b4..78b81dfb 100644 --- a/pymdp/envs/graph_worlds.py +++ b/pymdp/envs/graph_worlds.py @@ -1,7 +1,7 @@ import networkx as nx import jax.numpy as jnp -from .env import PyMDPEnv +from .env import Env def generate_connected_clusters(cluster_size=2, connections=2): @@ -20,7 +20,7 @@ def generate_connected_clusters(cluster_size=2, connections=2): } -class GraphEnv(PyMDPEnv): +class GraphEnv(Env): """ A simple environment where an agent can move around a graph and search an object. The agent observes its own location, as well as whether the object is at its location. From a958270ac8807ae03a0f3dfdc8d48979a19e3c02 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Wed, 2 Oct 2024 20:01:24 +0200 Subject: [PATCH 189/196] fix reset --- pymdp/envs/env.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pymdp/envs/env.py b/pymdp/envs/env.py index 2814a2a8..d1cd769e 100644 --- a/pymdp/envs/env.py +++ b/pymdp/envs/env.py @@ -19,6 +19,7 @@ def cat_sample(key, p): if p.ndim > 1: choice = lambda key, p: jr.choice(key, a, p=p) keys = jr.split(key, len(p)) + print(keys.shape) return vmap(choice)(keys, p) return jr.choice(key, a, p=p) @@ -42,7 +43,7 @@ def __init__(self, params: Dict, dependencies: Dict, init_state: List[Array] = N @vmap def reset(self, key: Optional[PRNGKeyArray], state: Optional[List[Array]] = None): - if state is None: + if state is not None: state = self.state else: probs = self.params["D"] From 82b80e5be3e1d01920677fbbe8c514d931754172 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 3 Oct 2024 09:43:40 +0200 Subject: [PATCH 190/196] add pymdp.envs.assets to package --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 6f354e5f..478b5b42 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,6 +49,7 @@ Repository = "https://github.com/infer-actively/pymdp" packages = [ 'pymdp', 'pymdp.envs', + 'pymdp.envs.assets', 'pymdp.planning', 'pymdp.legacy', 'pymdp.legacy.algos', From 0e644f184c83c3ad0efbe6c993b8ec8d8e27f7af Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 3 Oct 2024 09:53:29 +0200 Subject: [PATCH 191/196] package image files in assets --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 478b5b42..46015312 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,5 +56,8 @@ packages = [ 'pymdp.legacy.envs', ] +[tool.setuptools.package-data] +pymdp = ['envs/assets/*'] + [tool.black] line-length = 120 From d081c23f097311c9e746b8be99127e169b2e8a07 Mon Sep 17 00:00:00 2001 From: Tim Verbelen Date: Thu, 3 Oct 2024 10:28:37 +0200 Subject: [PATCH 192/196] fix state initialization on reset --- pymdp/envs/env.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/pymdp/envs/env.py b/pymdp/envs/env.py index d1cd769e..4354b55b 100644 --- a/pymdp/envs/env.py +++ b/pymdp/envs/env.py @@ -31,29 +31,24 @@ class Env(Module): current_obs: List[Array] dependencies: Dict = field(static=True) - def __init__(self, params: Dict, dependencies: Dict, init_state: List[Array] = None): + def __init__(self, params: Dict, dependencies: Dict): self.params = params self.dependencies = dependencies - if init_state is None: - init_state = jtu.tree_map(lambda x: jnp.argmax(x, -1), self.params["D"]) - - self.state = init_state + self.state = jtu.tree_map(lambda x: jnp.zeros([x.shape[0]]), self.params["D"]) self.current_obs = jtu.tree_map(lambda x: jnp.zeros([x.shape[0], x.shape[1]]), self.params["A"]) @vmap def reset(self, key: Optional[PRNGKeyArray], state: Optional[List[Array]] = None): - if state is not None: - state = self.state - else: + if state is None: probs = self.params["D"] keys = list(jr.split(key, len(probs) + 1)) key = keys[0] state = jtu.tree_map(cat_sample, keys[1:], probs) - new_obs = self._sample_obs(key, state) - env = tree_at(lambda x: x.state, self, state) + + new_obs = self._sample_obs(key, state) env = tree_at(lambda x: x.current_obs, env, new_obs) return new_obs, env From 6a0c2b0ee2a14db4845580f36da701c9bba7758b Mon Sep 17 00:00:00 2001 From: Ran Wei Date: Mon, 18 Nov 2024 16:05:54 -0600 Subject: [PATCH 193/196] flatten pB action dims for parameter learning with multi actions --- pymdp/agent.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/pymdp/agent.py b/pymdp/agent.py index 254c82c6..7ee1029b 100644 --- a/pymdp/agent.py +++ b/pymdp/agent.py @@ -180,7 +180,7 @@ def __init__( policy_len, control_fac_idx, ) - B, self.action_maps = self._flatten_B_action_dims(B, self.B_action_dependencies) + B, pB, self.action_maps = self._flatten_B_action_dims(B, pB, self.B_action_dependencies) policies = self._construct_flattend_policies(policies_multi, self.action_maps) self.sampling_mode = "full" @@ -575,26 +575,26 @@ def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_depen B_action_dependencies = [[f] for f in range(self.num_factors)] return A_dependencies, B_dependencies, B_action_dependencies - def _flatten_B_action_dims(self, B, B_action_dependencies): + def _flatten_B_action_dims(self, B, pB, B_action_dependencies): assert hasattr(B[0], "shape"), "Elements of B must be tensors and have attribute shape" action_maps = [] # mapping from multi action dependencies to flat action dependencies for each B B_flat = [] + pB_flat = [] for i, (B_f, action_dependency) in enumerate(zip(B, B_action_dependencies)): if action_dependency == []: B_flat.append(jnp.expand_dims(B_f, axis=-1)) + if pB is not None: + pB_flat.append(jnp.expand_dims(pB[i], axis=-1)) action_maps.append( - { - "multi_dependency": [], - "multi_dims": [], - "flat_dependency": [i], - "flat_dims": [1], - } + {"multi_dependency": [], "multi_dims": [], "flat_dependency": [i], "flat_dims": [1]} ) continue dims = [self.num_controls_multi[d] for d in action_dependency] target_shape = list(B_f.shape)[: -len(action_dependency)] + [pymath.prod(dims)] B_flat.append(B_f.reshape(target_shape)) + if pB is not None: + pB_flat.append(pB[i].reshape(target_shape)) action_maps.append( { "multi_dependency": action_dependency, @@ -603,7 +603,9 @@ def _flatten_B_action_dims(self, B, B_action_dependencies): "flat_dims": [pymath.prod(dims)], } ) - return B_flat, action_maps + if pB is None: + pB_flat = None + return B_flat, pB_flat, action_maps def _construct_flattend_policies(self, policies, action_maps): policies_flat = [] From b49587d6e7e5d9309955a3401d891b6315564140 Mon Sep 17 00:00:00 2001 From: nikolamilovic1 Date: Sat, 7 Dec 2024 22:39:13 +0100 Subject: [PATCH 194/196] Set minimum Python version to 3.10 for improved compatibility and feature support --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 46015312..0061898a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,7 @@ classifiers=[ 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3', ] -requires-python = ">=3.11" +requires-python = ">=3.10" dependencies = [ 'numpy>=1.19.5', 'jax>=0.3.4', From 66ae9f3bdd741b0cc1be0bb975a38c2b049003c9 Mon Sep 17 00:00:00 2001 From: nikolamilovic1 Date: Sat, 7 Dec 2024 22:46:37 +0100 Subject: [PATCH 195/196] Add setup.cfg --- setup.cfg | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 setup.cfg diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 00000000..a6f366a0 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,13 @@ +[metadata] +name = pymdp +version = 1.0.0 +description = A Python package for solving Markov Decision Processes with Active Inference +author = Conor Heins, Alexander Tschantz, Tim Verbelen, Dimitrije Markovic +license = MIT + +[options] +packages = find: +python_requires = >=3.10 + +[options.package_data] +pymdp = envs/assets/* From af28a0f129426a7d0593463a06b9d2d77895e20d Mon Sep 17 00:00:00 2001 From: nikolamilovic1 Date: Sat, 7 Dec 2024 22:51:02 +0100 Subject: [PATCH 196/196] Modify setup.cfg to be equivalent to pyproject.toml. --- setup.cfg | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/setup.cfg b/setup.cfg index a6f366a0..d90d92a3 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,13 +1,52 @@ [metadata] -name = pymdp +name = inferactively-pymdp version = 1.0.0 description = A Python package for solving Markov Decision Processes with Active Inference +long_description = file: README.md +long_description_content_type = text/markdown author = Conor Heins, Alexander Tschantz, Tim Verbelen, Dimitrije Markovic +author_email = conor.heins@gmail.com, tschantz.alec@gmail.com, verbelen.tim@gmail.com, dimitrije.markovic@tu-dresden.de license = MIT +license_file = LICENSE +classifiers = + Development Status :: 4 - Beta + Intended Audience :: Developers + Topic :: Scientific/Engineering :: Artificial Intelligence + License :: OSI Approved :: MIT License + Programming Language :: Python :: 3 +python_requires = >=3.10 +project_urls = + Documentation = https://pymdp-rtd.readthedocs.io/en/stable/ + Repository = https://github.com/infer-actively/pymdp [options] packages = find: -python_requires = >=3.10 +install_requires = + numpy>=1.19.5 + jax>=0.3.4 + jaxlib>=0.3.4 + equinox>=0.9 + multimethod>=1.11 + matplotlib>=3.1.3 + seaborn>=0.11.1 + mctx>=0.0.5 + networkx>=3.3 + pytest>=6.2.1 +include_package_data = True + +[options.extras_require] +gpu = + jax[cuda12]>=0.3.4 + jaxlib[cuda12]>=0.3.4 [options.package_data] pymdp = envs/assets/* + +[options.packages.find] +where = . + +[tool:pytest] +minversion = 6.2.1 + +[flake8] +max-line-length = 120