From 1a3e46d3656a320cdebb5026b39ee93917c98edb Mon Sep 17 00:00:00 2001 From: Ole Benstem Date: Wed, 29 May 2024 12:56:05 +0200 Subject: [PATCH] projections --- .ipynb_checkpoints/Untitled-checkpoint.ipynb | 6 + job.out | 90 + jupyterlab.job | 22 + .../Comparison-Copy1-checkpoint.ipynb | 643 +++++ .../Comparison-Copy2-checkpoint.ipynb | 641 +++++ .../Comparison-Copy3-checkpoint.ipynb | 643 +++++ .../Comparison-checkpoint.ipynb | 1152 ++++++++ runs/.ipynb_checkpoints/Grid-checkpoint.ipynb | 1030 +++++++ runs/.ipynb_checkpoints/LLB-checkpoint.ipynb | 6 + .../Projections-Copy1-checkpoint.ipynb | 1152 ++++++++ runs/135.png | Bin 0 -> 36191 bytes runs/22_5.png | 0 runs/45.png | Bin 0 -> 52110 bytes runs/45_hist_col.gif | Bin 0 -> 1669374 bytes runs/45_hist_ohm.gif | Bin 0 -> 3381264 bytes runs/67_5.png | 0 runs/90.png | Bin 0 -> 37954 bytes runs/90_hist_col.gif | Bin 0 -> 2244788 bytes runs/90_hist_ohm.gif | Bin 0 -> 2095200 bytes runs/Comparison-Copy1.ipynb | 619 ++++ runs/Comparison-Copy2.ipynb | 2478 +++++++++++++++++ runs/Comparison-Copy3.ipynb | 671 +++++ runs/Comparison.ipynb | 692 +++++ runs/Grid.ipynb | 1049 +++++++ runs/LLB.ipynb | 248 ++ runs/Projections-Copy1.ipynb | 991 +++++++ runs/Projections.ipynb | 862 +++++- runs/std_22_5.png | Bin 0 -> 69915 bytes runs/std_45.png | Bin 0 -> 69827 bytes runs/std_67_5.png | Bin 0 -> 72307 bytes runs/std_90.png | Bin 0 -> 56324 bytes 31 files changed, 12948 insertions(+), 47 deletions(-) create mode 100644 .ipynb_checkpoints/Untitled-checkpoint.ipynb create mode 100644 job.out create mode 100644 jupyterlab.job create mode 100644 runs/.ipynb_checkpoints/Comparison-Copy1-checkpoint.ipynb create mode 100644 runs/.ipynb_checkpoints/Comparison-Copy2-checkpoint.ipynb create mode 100644 runs/.ipynb_checkpoints/Comparison-Copy3-checkpoint.ipynb create mode 100644 runs/.ipynb_checkpoints/Comparison-checkpoint.ipynb create mode 100644 runs/.ipynb_checkpoints/Grid-checkpoint.ipynb create mode 100644 runs/.ipynb_checkpoints/LLB-checkpoint.ipynb create mode 100644 runs/.ipynb_checkpoints/Projections-Copy1-checkpoint.ipynb create mode 100644 runs/135.png create mode 100644 runs/22_5.png create mode 100644 runs/45.png create mode 100644 runs/45_hist_col.gif create mode 100644 runs/45_hist_ohm.gif create mode 100644 runs/67_5.png create mode 100644 runs/90.png create mode 100644 runs/90_hist_col.gif create mode 100644 runs/90_hist_ohm.gif create mode 100644 runs/Comparison-Copy1.ipynb create mode 100644 runs/Comparison-Copy2.ipynb create mode 100644 runs/Comparison-Copy3.ipynb create mode 100644 runs/Comparison.ipynb create mode 100644 runs/Grid.ipynb create mode 100644 runs/LLB.ipynb create mode 100644 runs/Projections-Copy1.ipynb create mode 100644 runs/std_22_5.png create mode 100644 runs/std_45.png create mode 100644 runs/std_67_5.png create mode 100644 runs/std_90.png diff --git a/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/.ipynb_checkpoints/Untitled-checkpoint.ipynb new file mode 100644 index 0000000..363fcab --- /dev/null +++ b/.ipynb_checkpoints/Untitled-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/job.out b/job.out new file mode 100644 index 0000000..9654dc6 --- /dev/null +++ b/job.out @@ -0,0 +1,90 @@ +[I 2024-05-29 12:28:22.679 ServerApp] jupyter_lsp | extension was successfully linked. +[I 2024-05-29 12:28:22.686 ServerApp] jupyter_server_terminals | extension was successfully linked. +[I 2024-05-29 12:28:22.694 ServerApp] jupyterlab | extension was successfully linked. +[I 2024-05-29 12:28:35.922 ServerApp] notebook_shim | extension was successfully linked. +[I 2024-05-29 12:28:36.548 ServerApp] notebook_shim | extension was successfully loaded. +[I 2024-05-29 12:28:36.550 ServerApp] jupyter_lsp | extension was successfully loaded. +[I 2024-05-29 12:28:36.555 ServerApp] jupyter_server_terminals | extension was successfully loaded. +[I 2024-05-29 12:28:36.721 LabApp] JupyterLab extension loaded from /home/benstem/.conda/envs/myjupyter/lib/python3.10/site-packages/jupyterlab +[I 2024-05-29 12:28:36.722 LabApp] JupyterLab application directory is /home/benstem/.conda/envs/myjupyter/share/jupyter/lab +[I 2024-05-29 12:28:36.775 LabApp] Extension Manager is 'pypi'. +[I 2024-05-29 12:28:36.869 ServerApp] jupyterlab | extension was successfully loaded. +[I 2024-05-29 12:28:36.870 ServerApp] Serving notebooks from local directory: /work/benstem/SpiDySims +[I 2024-05-29 12:28:36.871 ServerApp] Jupyter Server 2.14.0 is running at: +[I 2024-05-29 12:28:36.872 ServerApp] http://10.9.70.16:9099/lab?token=d3620b0e3b079d70b5f294f7f5343cf1f9e2ac776a6438ec +[I 2024-05-29 12:28:36.872 ServerApp] http://127.0.0.1:9099/lab?token=d3620b0e3b079d70b5f294f7f5343cf1f9e2ac776a6438ec +[I 2024-05-29 12:28:36.873 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). +[C 2024-05-29 12:28:36.917 ServerApp] + + To access the server, open this file in a browser: + file:///home/benstem/.local/share/jupyter/runtime/jpserver-58461-open.html + Or copy and paste one of these URLs: + http://10.9.70.16:9099/lab?token=d3620b0e3b079d70b5f294f7f5343cf1f9e2ac776a6438ec + http://127.0.0.1:9099/lab?token=d3620b0e3b079d70b5f294f7f5343cf1f9e2ac776a6438ec +[I 2024-05-29 12:28:37.249 ServerApp] Skipped non-installed server(s): bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, typescript-language-server, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server +[W 2024-05-29 12:33:20.842 LabApp] Could not determine jupyterlab build status without nodejs +[W 2024-05-29 12:33:28.571 ServerApp] 404 GET /api/contents/abstractarray.jl?content=0&hash=0&1716978807811 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 1.40ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:33:28.572 ServerApp] 404 GET /api/contents/abstractarray.jl?content=0&hash=0&1716978807811 (10.9.70.3): No such file or directory: abstractarray.jl +[W 2024-05-29 12:33:29.335 ServerApp] 404 GET /api/contents/abstractarray.jl?content=0&hash=0&1716978809333 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 0.84ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:33:29.336 ServerApp] 404 GET /api/contents/abstractarray.jl?content=0&hash=0&1716978809333 (10.9.70.3): No such file or directory: abstractarray.jl +[W 2024-05-29 12:33:29.402 ServerApp] 404 GET /api/contents/array.jl?content=0&hash=0&1716978809399 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 0.88ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:33:29.403 ServerApp] 404 GET /api/contents/array.jl?content=0&hash=0&1716978809399 (10.9.70.3): No such file or directory: array.jl +[I 2024-05-29 12:33:29.492 ServerApp] Kernel started: d4ecd049-70db-4816-828d-d04d5031bf9b +[W 2024-05-29 12:33:29.501 ServerApp] 404 GET /api/contents/abstractarray.jl?content=0&hash=0&1716978809410 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 1.78ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:33:29.502 ServerApp] 404 GET /api/contents/abstractarray.jl?content=0&hash=0&1716978809410 (10.9.70.3): No such file or directory: abstractarray.jl +[I 2024-05-29 12:33:29.502 ServerApp] Kernel started: 1848e135-c447-47ca-ad92-767ab7b508c2 +[I 2024-05-29 12:33:29.503 ServerApp] Kernel started: ff608dcf-f94c-41e2-ab5a-c922fca6f41d +[I 2024-05-29 12:33:29.509 ServerApp] Kernel started: d0e3567f-0254-44eb-b4d0-d99c8c082d7c +[W 2024-05-29 12:33:29.619 ServerApp] 404 GET /api/contents/env.jl?content=0&hash=0&1716978809612 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 1.74ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:33:29.620 ServerApp] 404 GET /api/contents/env.jl?content=0&hash=0&1716978809612 (10.9.70.3): No such file or directory: env.jl +[W 2024-05-29 12:33:29.638 ServerApp] 404 GET /api/contents/essentials.jl?content=0&hash=0&1716978809633 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 0.96ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:33:29.638 ServerApp] 404 GET /api/contents/essentials.jl?content=0&hash=0&1716978809633 (10.9.70.3): No such file or directory: essentials.jl +[W 2024-05-29 12:33:29.650 ServerApp] 404 GET /api/contents/essentials.jl?content=0&hash=0&1716978809644 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 1.15ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:33:29.651 ServerApp] 404 GET /api/contents/essentials.jl?content=0&hash=0&1716978809644 (10.9.70.3): No such file or directory: essentials.jl +[W 2024-05-29 12:33:29.725 ServerApp] 404 GET /api/contents/io.jl?content=0&hash=0&1716978809720 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 1.41ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:33:29.726 ServerApp] 404 GET /api/contents/io.jl?content=0&hash=0&1716978809720 (10.9.70.3): No such file or directory: io.jl +[W 2024-05-29 12:33:29.987 ServerApp] 404 GET /api/contents/io.jl?content=0&hash=0&1716978809986 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 0.86ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:33:29.988 ServerApp] 404 GET /api/contents/io.jl?content=0&hash=0&1716978809986 (10.9.70.3): No such file or directory: io.jl +[I 2024-05-29 12:33:35.240 ServerApp] Adapting from protocol version 5.0 (kernel d0e3567f-0254-44eb-b4d0-d99c8c082d7c) to 5.3 (client). +[I 2024-05-29 12:33:35.241 ServerApp] Connecting to kernel d0e3567f-0254-44eb-b4d0-d99c8c082d7c. +[I 2024-05-29 12:33:35.370 ServerApp] Starting buffering for d0e3567f-0254-44eb-b4d0-d99c8c082d7c:8a9d0245-8083-4551-910c-12d119840d8c +[I 2024-05-29 12:33:35.605 ServerApp] Adapting from protocol version 5.0 (kernel d4ecd049-70db-4816-828d-d04d5031bf9b) to 5.3 (client). +[I 2024-05-29 12:33:35.607 ServerApp] Connecting to kernel d4ecd049-70db-4816-828d-d04d5031bf9b. +[I 2024-05-29 12:33:35.915 ServerApp] Adapting from protocol version 5.0 (kernel 1848e135-c447-47ca-ad92-767ab7b508c2) to 5.3 (client). +[I 2024-05-29 12:33:35.917 ServerApp] Connecting to kernel 1848e135-c447-47ca-ad92-767ab7b508c2. +[I 2024-05-29 12:33:36.188 ServerApp] Adapting from protocol version 5.0 (kernel ff608dcf-f94c-41e2-ab5a-c922fca6f41d) to 5.3 (client). +[I 2024-05-29 12:33:36.189 ServerApp] Connecting to kernel ff608dcf-f94c-41e2-ab5a-c922fca6f41d. +Starting kernel event loops. +[I 2024-05-29 12:33:40.400 ServerApp] Adapting from protocol version 5.0 (kernel d0e3567f-0254-44eb-b4d0-d99c8c082d7c) to 5.3 (client). +[I 2024-05-29 12:33:40.401 ServerApp] Connecting to kernel d0e3567f-0254-44eb-b4d0-d99c8c082d7c. +[I 2024-05-29 12:33:40.403 ServerApp] Discarding 1 buffered messages for d0e3567f-0254-44eb-b4d0-d99c8c082d7c:8a9d0245-8083-4551-910c-12d119840d8c +[I 2024-05-29 12:33:40.410 ServerApp] Kernel restarted: d0e3567f-0254-44eb-b4d0-d99c8c082d7c +[I 2024-05-29 12:33:40.417 ServerApp] Adapting from protocol version 5.0 (kernel d0e3567f-0254-44eb-b4d0-d99c8c082d7c) to 5.3 (client). +[I 2024-05-29 12:33:40.418 ServerApp] Connecting to kernel d0e3567f-0254-44eb-b4d0-d99c8c082d7c. +[I 2024-05-29 12:33:40.434 ServerApp] Adapting from protocol version 5.0 (kernel d0e3567f-0254-44eb-b4d0-d99c8c082d7c) to 5.3 (client). +[I 2024-05-29 12:33:40.435 ServerApp] Connecting to kernel d0e3567f-0254-44eb-b4d0-d99c8c082d7c. +[I 2024-05-29 12:35:28.380 ServerApp] Saving file at /runs/Comparison-Copy2.ipynb +[I 2024-05-29 12:37:28.714 ServerApp] Saving file at /runs/Comparison-Copy2.ipynb +[W 2024-05-29 12:37:51.969 ServerApp] 404 GET /api/contents/math.jl?content=0&hash=0&1716979071967 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 1.08ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:37:51.970 ServerApp] 404 GET /api/contents/math.jl?content=0&hash=0&1716979071967 (10.9.70.3): No such file or directory: math.jl +[W 2024-05-29 12:37:51.991 ServerApp] 404 GET /api/contents/math.jl?content=0&hash=0&1716979071991 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 0.78ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:37:51.992 ServerApp] 404 GET /api/contents/math.jl?content=0&hash=0&1716979071991 (10.9.70.3): No such file or directory: math.jl +[W 2024-05-29 12:37:51.998 ServerApp] 404 GET /api/contents/In?content=0&hash=0&1716979071997 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 0.76ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:37:51.999 ServerApp] 404 GET /api/contents/In?content=0&hash=0&1716979071997 (10.9.70.3): No such file or directory: In +[W 2024-05-29 12:39:13.413 ServerApp] 404 GET /api/contents/math.jl?content=0&hash=0&1716979153413 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 1.06ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:39:13.414 ServerApp] 404 GET /api/contents/math.jl?content=0&hash=0&1716979153413 (10.9.70.3): No such file or directory: math.jl +[W 2024-05-29 12:39:13.424 ServerApp] 404 GET /api/contents/math.jl?content=0&hash=0&1716979153423 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 0.83ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:39:13.424 ServerApp] 404 GET /api/contents/math.jl?content=0&hash=0&1716979153423 (10.9.70.3): No such file or directory: math.jl +[W 2024-05-29 12:39:13.435 ServerApp] 404 GET /api/contents/In?content=0&hash=0&1716979153434 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 0.78ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:39:13.435 ServerApp] 404 GET /api/contents/In?content=0&hash=0&1716979153434 (10.9.70.3): No such file or directory: In +[I 2024-05-29 12:39:29.370 ServerApp] Saving file at /runs/Comparison-Copy2.ipynb +[W 2024-05-29 12:39:45.887 ServerApp] 404 GET /api/contents/math.jl?content=0&hash=0&1716979185887 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 0.92ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:39:45.888 ServerApp] 404 GET /api/contents/math.jl?content=0&hash=0&1716979185887 (10.9.70.3): No such file or directory: math.jl +[W 2024-05-29 12:39:45.896 ServerApp] 404 GET /api/contents/math.jl?content=0&hash=0&1716979185896 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 0.77ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:39:45.897 ServerApp] 404 GET /api/contents/math.jl?content=0&hash=0&1716979185896 (10.9.70.3): No such file or directory: math.jl +[W 2024-05-29 12:39:45.904 ServerApp] 404 GET /api/contents/In?content=0&hash=0&1716979185904 (29e5fe51140841b98363cfb9110faabf@10.9.70.3) 0.71ms referer=http://127.0.0.1:9099/lab +[W 2024-05-29 12:39:45.905 ServerApp] 404 GET /api/contents/In?content=0&hash=0&1716979185904 (10.9.70.3): No such file or directory: In +[I 2024-05-29 12:41:29.881 ServerApp] Saving file at /runs/Comparison-Copy2.ipynb +[I 2024-05-29 12:43:30.294 ServerApp] Saving file at /runs/Comparison-Copy2.ipynb +[I 2024-05-29 12:45:30.724 ServerApp] Saving file at /runs/Comparison-Copy2.ipynb +[I 2024-05-29 12:55:31.597 ServerApp] Saving file at /runs/Comparison-Copy2.ipynb diff --git a/jupyterlab.job b/jupyterlab.job new file mode 100644 index 0000000..8fd9b04 --- /dev/null +++ b/jupyterlab.job @@ -0,0 +1,22 @@ +#!/bin/bash + +#SBATCH --partition=all +#SBATCH --ntasks=1 +#SBATCH --cpus-per-task=64 +#SBATCH --mem=64G +#SBATCH --time 0-03:00 +#SBATCH --chdir=/work/benstem/SpiDySims +#SBATCH --mail-type=ALL +#SBATCH --output=job.out + +export https_proxy=http://proxy2.uni-potsdam.de:3128 + + #Load Python modules +module load lang/Julia/1.7.3-linux-x86_64 +module load lang/Anaconda3/2020.11 +source activate myjupyter + +export JULIA_NUM_THREADS=64 # $SLULRM_CPUS_PER_TASK + + #jupyter-lab --no-browser +jupyter-lab --no-browser --port 9099 --ip=$(hostname -I | cut -f1 -d' ') diff --git a/runs/.ipynb_checkpoints/Comparison-Copy1-checkpoint.ipynb b/runs/.ipynb_checkpoints/Comparison-Copy1-checkpoint.ipynb new file mode 100644 index 0000000..4b8b03f --- /dev/null +++ b/runs/.ipynb_checkpoints/Comparison-Copy1-checkpoint.ipynb @@ -0,0 +1,643 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "e47f1fd3-c09d-43cb-80c8-64f42e8161a4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10000" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "using SpiDy\n", + "using NPZ\n", + "using DataFrames\n", + "using CSV\n", + "using ProgressMeter\n", + "using Random\n", + "using Statistics\n", + "using LinearAlgebra\n", + "using Plots\n", + "\n", + "########################\n", + "########################\n", + "\n", + "Δt = .2\n", + "N = 1000\n", + "tspan = (0., N*Δt)\n", + "saveat = (0:1:N)*Δt\n", + "\n", + "matrix = IsoCoupling(1)\n", + "\n", + "T = .01\n", + "noise = ClassicalNoise(T);\n", + "\n", + "s0 = [0, 1, 0]\n", + "J0 = 1.\n", + "JH = Nchain(1, J0)\n", + "\n", + "nruns = 10000" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "6e3cdf02-c243-4622-a52a-a6d7f987c68d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + ] + } + ], + "source": [ + "α = 10. # 0.16\n", + "ω0 = 7. # 1.4\n", + "Γ = 5. # 0.5\n", + "\n", + "J = LorentzianSD(α, ω0, Γ) # coloring the noise\n", + "\n", + "println(\"Starting...\")\n", + "progress = Progress(nruns);\n", + "\n", + "sols_ohm = zeros(nruns, length(saveat), 3)\n", + "\n", + "Threads.@threads for i in 1:nruns\n", + " bfields = [bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise)];\n", + " sol = diffeqsolver(s0, tspan, J, bfields, matrix; JH=JH, saveat=saveat);\n", + " sols_ohm[i, :, :] = transpose(sol[:, :])\n", + " next!(progress)\n", + "end\n", + "\n", + "solavg_ohm = mean(sols_ohm, dims=1)[1, :, :];\n", + "solstd_ohm = std(sols_ohm, dims=1)[1, :, :];" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "3422af78-2f32-468c-a8a3-a0732a836fd1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting...\n" + ] + } + ], + "source": [ + "α = 0.16\n", + "ω0 = 1.4\n", + "Γ = 0.5\n", + "\n", + "J = LorentzianSD(α, ω0, Γ) # coloring the noise\n", + "\n", + "println(\"Starting...\")\n", + "progress = Progress(nruns);\n", + "\n", + "sols_col = zeros(nruns, length(saveat), 3)\n", + "\n", + "Threads.@threads for i in 1:nruns\n", + " bfields = [bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise)];\n", + " sol = diffeqsolver(s0, tspan, J, bfields, matrix; JH=JH, saveat=saveat);\n", + " sols_col[i, :, :] = transpose(sol[:, :])\n", + " next!(progress)\n", + "end\n", + "\n", + "solavg_col = mean(sols_col, dims=1)[1, :, :];\n", + "solstd_col = std(sols_col, dims=1)[1, :, :];" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "d16b97dd-b9f5-415c-b388-2b1f3344be45", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solstd_ohm[:, 1])\n", + "plot!(saveat, solstd_ohm[:, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "a06addc4-47b2-4467-8148-3e68f3eae702", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solstd_col[:, 1])\n", + "plot!(saveat, solstd_col[:, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "bc1686fd-d86d-42b0-9d87-bcb911526d00", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solavg_ohm[:, 3])\n", + "plot!(saveat, solavg_col[:, 3])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "59ac92d9-6a78-402b-91ae-3f5fd22cc6ff", + "metadata": {}, + "outputs": [], + "source": [ + "projected_ohm = zeros(nruns, length(saveat), 2)\n", + "\n", + "normalized_avg = [normalize(vec(row)) for row in eachrow(solavg_ohm)]\n", + "\n", + "Threads.@threads for i in 1:length(saveat)\n", + " n = normalized_avg[i, :][1]\n", + "\n", + " u = normalize(cross(n, [0,0,1]))\n", + " v = cross(u, n)\n", + "\n", + " for j in 1:nruns\n", + " b = sols_ohm[j, i, :]\n", + " proj = dot(b, n) * n\n", + " b_ort = b - proj\n", + "\n", + " projected_ohm[j, i, 1] = dot(u,b)\n", + " projected_ohm[j, i, 2] = dot(v,b)\n", + " end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f1661b24-42b1-4f59-989a-54dc3ed03bf8", + "metadata": {}, + "outputs": [], + "source": [ + "projected_col = zeros(nruns, length(saveat), 2)\n", + "\n", + "normalized_avg = [normalize(vec(row)) for row in eachrow(solavg_col)]\n", + "\n", + "Threads.@threads for i in 1:length(saveat)\n", + " n = normalized_avg[i, :][1]\n", + "\n", + " u = normalize(cross(n, [0,0,1]))\n", + " v = cross(u, n)\n", + "\n", + " for j in 1:nruns\n", + " b = sols_col[j, i, :]\n", + " proj = dot(b, n) * n\n", + " b_ort = b - proj\n", + "\n", + " projected_col[j, i, 1] = dot(u,b)\n", + " projected_col[j, i, 2] = dot(v,b)\n", + " end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "e4ad51fc-0dc7-4106-99e4-2b29e54b1930", + "metadata": {}, + "outputs": [], + "source": [ + "using HypothesisTests\n", + "using LaTeXStrings" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e5b9609e-f467-4bd7-9b51-9a4c1f175738", + "metadata": {}, + "outputs": [], + "source": [ + "JB_ohm = zeros(N)\n", + "for i in 1:N\n", + " JB_ohm[i] = HypothesisTests.JarqueBeraTest(projected_ohm[:, i, 1]).JB\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "51ccaeb8-2b3d-4630-afc3-2640142c4d54", + "metadata": {}, + "outputs": [], + "source": [ + "JB_col = zeros(N)\n", + "for i in 1:N\n", + " JB_col[i] = HypothesisTests.JarqueBeraTest(projected_col[:, i, 1]).JB\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "6c63a170-6eff-4c8b-8b80-542eb705666f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, JB_ohm, title=\"JB Test for Ohmic and Non-Ohmic Coupling\", label=\"Ohmic\", linewidth=2, xlabel=\"Time\", ylabel=\"JB Test\", legend=:topleft, ylimits=(0, 200))\n", + "plot!(saveat, JB_col, label=\"Non-Ohmic\", linewidth=2)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "ad2674ba-9711-4feb-96ab-a39d88b27ce5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "right_axis = twinx()\n", + "\n", + "plot!(right_axis, saveat, solavg_ohm[:, 3], label=\"Ohmic\", ls=:dash, ylabel=L\"S_z\", ylimits=(-1.5, 1.5))\n", + "plot!(right_axis, saveat, solavg_col[:, 3], label=\"Non-Ohmic\", ls=:dash)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "a1c77edf-652b-42ea-8bc0-445749a22a2c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Jarque-Bera normality test\n", + "--------------------------\n", + "Population details:\n", + " parameter of interest: skewness and kurtosis\n", + " value under h_0: \"0 and 3\"\n", + " point estimate: \"-0.010024181624728401 and 2.9355563110404956\"\n", + "\n", + "Test summary:\n", + " outcome with 95% confidence: fail to reject h_0\n", + " one-sided p-value: 0.3872\n", + "\n", + "Details:\n", + " number of observations: 10000\n", + " JB statistic: 1.89789\n" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "HypothesisTests.JarqueBeraTest(projected_col[:, 125, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "48b2963f-d070-46c9-a077-fe4aad09155a", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.7.3", + "language": "julia", + "name": "julia-1.7" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/runs/.ipynb_checkpoints/Comparison-Copy2-checkpoint.ipynb b/runs/.ipynb_checkpoints/Comparison-Copy2-checkpoint.ipynb new file mode 100644 index 0000000..1ffcf5b --- /dev/null +++ b/runs/.ipynb_checkpoints/Comparison-Copy2-checkpoint.ipynb @@ -0,0 +1,641 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "e47f1fd3-c09d-43cb-80c8-64f42e8161a4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10000" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "using SpiDy\n", + "using NPZ\n", + "using DataFrames\n", + "using CSV\n", + "using ProgressMeter\n", + "using Random\n", + "using Statistics\n", + "using LinearAlgebra\n", + "using Plots\n", + "\n", + "########################\n", + "########################\n", + "\n", + "Δt = .2\n", + "N = 1000\n", + "tspan = (0., N*Δt)\n", + "saveat = (0:1:N)*Δt\n", + "\n", + "matrix = IsoCoupling(1)\n", + "\n", + "T = .01\n", + "noise = ClassicalNoise(T);\n", + "\n", + "s0 = [0, 1, 1]\n", + "s0 = s0 ./ norm(s0)\n", + "\n", + "J0 = 1.\n", + "JH = Nchain(1, J0)\n", + "\n", + "nruns = 10000" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "6e3cdf02-c243-4622-a52a-a6d7f987c68d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + ] + } + ], + "source": [ + "α = 10. # 0.16\n", + "ω0 = 7. # 1.4\n", + "Γ = 5. # 0.5\n", + "\n", + "J = LorentzianSD(α, ω0, Γ) # coloring the noise\n", + "\n", + "println(\"Starting...\")\n", + "progress = Progress(nruns);\n", + "\n", + "sols_ohm = zeros(nruns, length(saveat), 3)\n", + "\n", + "Threads.@threads for i in 1:nruns\n", + " bfields = [bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise)];\n", + " sol = diffeqsolver(s0, tspan, J, bfields, matrix; JH=JH, saveat=saveat);\n", + " sols_ohm[i, :, :] = transpose(sol[:, :])\n", + " next!(progress)\n", + "end\n", + "\n", + "solavg_ohm = mean(sols_ohm, dims=1)[1, :, :];\n", + "solstd_ohm = std(sols_ohm, dims=1)[1, :, :];" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "3422af78-2f32-468c-a8a3-a0732a836fd1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting...\n" + ] + } + ], + "source": [ + "α = 0.16\n", + "ω0 = 1.4\n", + "Γ = 0.5\n", + "\n", + "J = LorentzianSD(α, ω0, Γ) # coloring the noise\n", + "\n", + "println(\"Starting...\")\n", + "progress = Progress(nruns);\n", + "\n", + "sols_col = zeros(nruns, length(saveat), 3)\n", + "\n", + "Threads.@threads for i in 1:nruns\n", + " bfields = [bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise)];\n", + " sol = diffeqsolver(s0, tspan, J, bfields, matrix; JH=JH, saveat=saveat);\n", + " sols_col[i, :, :] = transpose(sol[:, :])\n", + " next!(progress)\n", + "end\n", + "\n", + "solavg_col = mean(sols_col, dims=1)[1, :, :];\n", + "solstd_col = std(sols_col, dims=1)[1, :, :];" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "d16b97dd-b9f5-415c-b388-2b1f3344be45", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solstd_ohm[:, 1])\n", + "plot!(saveat, solstd_ohm[:, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a06addc4-47b2-4467-8148-3e68f3eae702", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solstd_col[:, 1])\n", + "plot!(saveat, solstd_col[:, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "bc1686fd-d86d-42b0-9d87-bcb911526d00", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solavg_ohm[:, 3])\n", + "plot!(saveat, solavg_col[:, 3])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "59ac92d9-6a78-402b-91ae-3f5fd22cc6ff", + "metadata": {}, + "outputs": [], + "source": [ + "projected_ohm = zeros(nruns, length(saveat), 2)\n", + "\n", + "normalized_avg = [normalize(vec(row)) for row in eachrow(solavg_ohm)]\n", + "\n", + "Threads.@threads for i in 1:length(saveat)\n", + " n = normalized_avg[i, :][1]\n", + "\n", + " u = normalize(cross(n, [0,0,1]))\n", + " v = cross(u, n)\n", + "\n", + " for j in 1:nruns\n", + " b = sols_ohm[j, i, :]\n", + " proj = dot(b, n) * n\n", + " b_ort = b - proj\n", + "\n", + " projected_ohm[j, i, 1] = dot(u,b)\n", + " projected_ohm[j, i, 2] = dot(v,b)\n", + " end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f1661b24-42b1-4f59-989a-54dc3ed03bf8", + "metadata": {}, + "outputs": [], + "source": [ + "projected_col = zeros(nruns, length(saveat), 2)\n", + "\n", + "normalized_avg = [normalize(vec(row)) for row in eachrow(solavg_col)]\n", + "\n", + "Threads.@threads for i in 1:length(saveat)\n", + " n = normalized_avg[i, :][1]\n", + "\n", + " u = normalize(cross(n, [0,0,1]))\n", + " v = cross(u, n)\n", + "\n", + " for j in 1:nruns\n", + " b = sols_col[j, i, :]\n", + " proj = dot(b, n) * n\n", + " b_ort = b - proj\n", + "\n", + " projected_col[j, i, 1] = dot(u,b)\n", + " projected_col[j, i, 2] = dot(v,b)\n", + " end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "e4ad51fc-0dc7-4106-99e4-2b29e54b1930", + "metadata": {}, + "outputs": [], + "source": [ + "using HypothesisTests\n", + "using LaTeXStrings" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e5b9609e-f467-4bd7-9b51-9a4c1f175738", + "metadata": {}, + "outputs": [], + "source": [ + "JB_ohm = zeros(N)\n", + "for i in 1:N\n", + " JB_ohm[i] = HypothesisTests.JarqueBeraTest(projected_ohm[:, i, 1]).JB\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "51ccaeb8-2b3d-4630-afc3-2640142c4d54", + "metadata": {}, + "outputs": [], + "source": [ + "JB_col = zeros(N)\n", + "for i in 1:N\n", + " JB_col[i] = HypothesisTests.JarqueBeraTest(projected_col[:, i, 1]).JB\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "6c63a170-6eff-4c8b-8b80-542eb705666f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, JB_ohm, title=\"JB Test for Ohmic and Non-Ohmic Coupling\", label=\"Ohmic\", linewidth=2, xlabel=\"Time\", ylabel=\"JB Test\", legend=:topleft, ylimits=(0, 200))\n", + "plot!(saveat, JB_col, label=\"Non-Ohmic\", linewidth=2)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "ad2674ba-9711-4feb-96ab-a39d88b27ce5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "right_axis = twinx()\n", + "\n", + "plot!(right_axis, saveat, solavg_ohm[:, 3], label=\"Ohmic\", ls=:dash, ylabel=L\"S_z\", ylimits=(-1.5, 1.5))\n", + "plot!(right_axis, saveat, solavg_col[:, 3], label=\"Non-Ohmic\", ls=:dash)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "a1c77edf-652b-42ea-8bc0-445749a22a2c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Jarque-Bera normality test\n", + "--------------------------\n", + "Population details:\n", + " parameter of interest: skewness and kurtosis\n", + " value under h_0: \"0 and 3\"\n", + " point estimate: \"-0.3052333801108836 and 3.1710040046492263\"\n", + "\n", + "Test summary:\n", + " outcome with 95% confidence: reject h_0\n", + " one-sided p-value: <1e-36\n", + "\n", + "Details:\n", + " number of observations: 10000\n", + " JB statistic: 167.463\n" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "HypothesisTests.JarqueBeraTest(projected_col[:, 125, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "48b2963f-d070-46c9-a077-fe4aad09155a", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.7.3", + "language": "julia", + "name": "julia-1.7" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/runs/.ipynb_checkpoints/Comparison-Copy3-checkpoint.ipynb b/runs/.ipynb_checkpoints/Comparison-Copy3-checkpoint.ipynb new file mode 100644 index 0000000..3ca5004 --- /dev/null +++ b/runs/.ipynb_checkpoints/Comparison-Copy3-checkpoint.ipynb @@ -0,0 +1,643 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "e47f1fd3-c09d-43cb-80c8-64f42e8161a4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10000" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "using SpiDy\n", + "using NPZ\n", + "using DataFrames\n", + "using CSV\n", + "using ProgressMeter\n", + "using Random\n", + "using Statistics\n", + "using LinearAlgebra\n", + "using Plots\n", + "\n", + "########################\n", + "########################\n", + "\n", + "Δt = .2\n", + "N = 1000\n", + "tspan = (0., N*Δt)\n", + "saveat = (0:1:N)*Δt\n", + "\n", + "matrix = IsoCoupling(1)\n", + "\n", + "T = .01\n", + "noise = ClassicalNoise(T);\n", + "\n", + "theta = pi * 3/8\n", + "\n", + "s0 = [0, 1, cos(pi)]\n", + "s0 = s0 ./ norm(s0)\n", + "\n", + "J0 = 1.\n", + "JH = Nchain(1, J0)\n", + "\n", + "nruns = 10000" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "6e3cdf02-c243-4622-a52a-a6d7f987c68d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + ] + } + ], + "source": [ + "α = 10. # 0.16\n", + "ω0 = 7. # 1.4\n", + "Γ = 5. # 0.5\n", + "\n", + "J = LorentzianSD(α, ω0, Γ) # coloring the noise\n", + "\n", + "println(\"Starting...\")\n", + "progress = Progress(nruns);\n", + "\n", + "sols_ohm = zeros(nruns, length(saveat), 3)\n", + "\n", + "Threads.@threads for i in 1:nruns\n", + " bfields = [bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise)];\n", + " sol = diffeqsolver(s0, tspan, J, bfields, matrix; JH=JH, saveat=saveat);\n", + " sols_ohm[i, :, :] = transpose(sol[:, :])\n", + " next!(progress)\n", + "end\n", + "\n", + "solavg_ohm = mean(sols_ohm, dims=1)[1, :, :];\n", + "solstd_ohm = std(sols_ohm, dims=1)[1, :, :];" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "3422af78-2f32-468c-a8a3-a0732a836fd1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting...\n" + ] + } + ], + "source": [ + "α = 0.16\n", + "ω0 = 1.4\n", + "Γ = 0.5\n", + "\n", + "J = LorentzianSD(α, ω0, Γ) # coloring the noise\n", + "\n", + "println(\"Starting...\")\n", + "progress = Progress(nruns);\n", + "\n", + "sols_col = zeros(nruns, length(saveat), 3)\n", + "\n", + "Threads.@threads for i in 1:nruns\n", + " bfields = [bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise)];\n", + " sol = diffeqsolver(s0, tspan, J, bfields, matrix; JH=JH, saveat=saveat);\n", + " sols_col[i, :, :] = transpose(sol[:, :])\n", + " next!(progress)\n", + "end\n", + "\n", + "solavg_col = mean(sols_col, dims=1)[1, :, :];\n", + "solstd_col = std(sols_col, dims=1)[1, :, :];" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "d16b97dd-b9f5-415c-b388-2b1f3344be45", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solstd_ohm[:, 1])\n", + "plot!(saveat, solstd_ohm[:, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a06addc4-47b2-4467-8148-3e68f3eae702", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solstd_col[:, 1])\n", + "plot!(saveat, solstd_col[:, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "bc1686fd-d86d-42b0-9d87-bcb911526d00", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solavg_ohm[:, 3])\n", + "plot!(saveat, solavg_col[:, 3])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "59ac92d9-6a78-402b-91ae-3f5fd22cc6ff", + "metadata": {}, + "outputs": [], + "source": [ + "projected_ohm = zeros(nruns, length(saveat), 2)\n", + "\n", + "normalized_avg = [normalize(vec(row)) for row in eachrow(solavg_ohm)]\n", + "\n", + "Threads.@threads for i in 1:length(saveat)\n", + " n = normalized_avg[i, :][1]\n", + "\n", + " u = normalize(cross(n, [0,0,1]))\n", + " v = cross(u, n)\n", + "\n", + " for j in 1:nruns\n", + " b = sols_ohm[j, i, :]\n", + " proj = dot(b, n) * n\n", + " b_ort = b - proj\n", + "\n", + " projected_ohm[j, i, 1] = dot(u,b)\n", + " projected_ohm[j, i, 2] = dot(v,b)\n", + " end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f1661b24-42b1-4f59-989a-54dc3ed03bf8", + "metadata": {}, + "outputs": [], + "source": [ + "projected_col = zeros(nruns, length(saveat), 2)\n", + "\n", + "normalized_avg = [normalize(vec(row)) for row in eachrow(solavg_col)]\n", + "\n", + "Threads.@threads for i in 1:length(saveat)\n", + " n = normalized_avg[i, :][1]\n", + "\n", + " u = normalize(cross(n, [0,0,1]))\n", + " v = cross(u, n)\n", + "\n", + " for j in 1:nruns\n", + " b = sols_col[j, i, :]\n", + " proj = dot(b, n) * n\n", + " b_ort = b - proj\n", + "\n", + " projected_col[j, i, 1] = dot(u,b)\n", + " projected_col[j, i, 2] = dot(v,b)\n", + " end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "e4ad51fc-0dc7-4106-99e4-2b29e54b1930", + "metadata": {}, + "outputs": [], + "source": [ + "using HypothesisTests\n", + "using LaTeXStrings" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e5b9609e-f467-4bd7-9b51-9a4c1f175738", + "metadata": {}, + "outputs": [], + "source": [ + "JB_ohm = zeros(N)\n", + "for i in 1:N\n", + " JB_ohm[i] = HypothesisTests.JarqueBeraTest(projected_ohm[:, i, 1]).JB\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "51ccaeb8-2b3d-4630-afc3-2640142c4d54", + "metadata": {}, + "outputs": [], + "source": [ + "JB_col = zeros(N)\n", + "for i in 1:N\n", + " JB_col[i] = HypothesisTests.JarqueBeraTest(projected_col[:, i, 1]).JB\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "6c63a170-6eff-4c8b-8b80-542eb705666f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, JB_ohm, title=\"JB Test for Ohmic and Non-Ohmic Coupling\", label=\"Ohmic\", linewidth=2, xlabel=\"Time\", ylabel=\"JB Test\", legend=:topleft, ylimits=(0, 200))\n", + "plot!(saveat, JB_col, label=\"Non-Ohmic\", linewidth=2)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "ad2674ba-9711-4feb-96ab-a39d88b27ce5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "right_axis = twinx()\n", + "\n", + "plot!(right_axis, saveat, solavg_ohm[:, 3], label=\"Ohmic\", ls=:dash, ylabel=L\"S_z\", ylimits=(-1.5, 1.5))\n", + "plot!(right_axis, saveat, solavg_col[:, 3], label=\"Non-Ohmic\", ls=:dash)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "a1c77edf-652b-42ea-8bc0-445749a22a2c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Jarque-Bera normality test\n", + "--------------------------\n", + "Population details:\n", + " parameter of interest: skewness and kurtosis\n", + " value under h_0: \"0 and 3\"\n", + " point estimate: \"-0.3052333801108836 and 3.1710040046492263\"\n", + "\n", + "Test summary:\n", + " outcome with 95% confidence: reject h_0\n", + " one-sided p-value: <1e-36\n", + "\n", + "Details:\n", + " number of observations: 10000\n", + " JB statistic: 167.463\n" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "HypothesisTests.JarqueBeraTest(projected_col[:, 125, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "48b2963f-d070-46c9-a077-fe4aad09155a", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.7.3", + "language": "julia", + "name": "julia-1.7" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/runs/.ipynb_checkpoints/Comparison-checkpoint.ipynb b/runs/.ipynb_checkpoints/Comparison-checkpoint.ipynb new file mode 100644 index 0000000..fb1eb17 --- /dev/null +++ b/runs/.ipynb_checkpoints/Comparison-checkpoint.ipynb @@ -0,0 +1,1152 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "f52c5daf-9123-4b36-b83c-d5d2bcae5d91", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10000" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "using SpiDy\n", + "using NPZ\n", + "using DataFrames\n", + "using CSV\n", + "using ProgressMeter\n", + "using Random\n", + "using Statistics\n", + "using LinearAlgebra\n", + "using Plots\n", + "\n", + "########################\n", + "########################\n", + "\n", + "Δt = .2\n", + "N = 600\n", + "tspan = (0., N*Δt)\n", + "saveat = (0:1:N)*Δt\n", + "\n", + "α = 10. # 0.16\n", + "ω0 = 7. # 1.4\n", + "Γ = 5. # 0.5\n", + "\n", + "\n", + "α = 0.16\n", + "ω0 = 1.4\n", + "Γ = 0.5\n", + "\n", + "\n", + "J = LorentzianSD(α, ω0, Γ) # coloring the noise\n", + "matrix = AnisoCoupling([-sin(π/4) 0. 0. # coupling to the environment\n", + " 0. 0. 0.\n", + " cos(π/4) 0. 0.]);\n", + "\n", + "matrix = IsoCoupling(1)\n", + "\n", + "T = .01\n", + "noise = ClassicalNoise(T);\n", + "\n", + "nspin = 1 # number of spins\n", + "\n", + "s0 = [0, 1, 1] ./ sqrt(2)\n", + "J0 = 1.\n", + "JH = Nchain(nspin, J0)\n", + "\n", + "nruns = 10000" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "6e3cdf02-c243-4622-a52a-a6d7f987c68d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mProgress: 100%|█████████████████████████████████████████| Time: 0:01:39\u001b[39m2:11\u001b[39m\n" + ] + } + ], + "source": [ + "println(\"Starting...\")\n", + "progress = Progress(nruns);\n", + "\n", + "sols = zeros(nruns, length(saveat), 3*nspin)\n", + "\n", + "Threads.@threads for i in 1:nruns\n", + " bfields = [bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise)];\n", + " sol = diffeqsolver(s0, tspan, J, bfields, matrix; JH=JH, saveat=saveat);\n", + " sols[i, :, :] = transpose(sol[:, :])\n", + " next!(progress)\n", + "end\n", + "\n", + "solavg = mean(sols, dims=1)[1, :, :];\n", + "solstd = std(sols, dims=1)[1, :, :];" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "d16b97dd-b9f5-415c-b388-2b1f3344be45", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solavg[:, 1], ribbon=solstd[:, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "a06addc4-47b2-4467-8148-3e68f3eae702", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solavg[:, 2], ribbon=solstd[:, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "bc1686fd-d86d-42b0-9d87-bcb911526d00", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solavg[:, 3], ribbon=solstd[:, 3])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "59ac92d9-6a78-402b-91ae-3f5fd22cc6ff", + "metadata": {}, + "outputs": [], + "source": [ + "projected = zeros(nruns, length(saveat), 2)\n", + "\n", + "normalized_avg = [normalize(vec(row)) for row in eachrow(solavg)]\n", + "\n", + "Threads.@threads for i in 1:length(saveat)\n", + " n = normalized_avg[i, :][1]\n", + "\n", + " u = normalize(cross(n, [0,0,1]))\n", + " v = cross(u, n)\n", + "\n", + " for j in 1:nruns\n", + " b = sols[j, i, :]\n", + " proj = dot(b, n) * n\n", + " b_ort = b - proj\n", + "\n", + " projected[j, i, 1] = dot(u,b)\n", + " projected[j, i, 2] = dot(v,b)\n", + " end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "03467eca-3f0c-4bd4-b3f7-5649b68780bc", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "histogram(projected[:, 280, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "9c6484d3-3396-47bb-b063-98e8d013d020", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "histogram(projected[:, 280, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "f6df949c-15b2-447f-a264-8ef48ce1725e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "nth_moment (generic function with 1 method)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function nth_moment(data, N)\n", + " return mean(data .^ N)\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e4ad51fc-0dc7-4106-99e4-2b29e54b1930", + "metadata": {}, + "outputs": [], + "source": [ + "using HypothesisTests" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "e5b9609e-f467-4bd7-9b51-9a4c1f175738", + "metadata": {}, + "outputs": [], + "source": [ + "JB = zeros(N)\n", + "for i in 10:N\n", + " JB[i] = HypothesisTests.JarqueBeraTest(projected[:, i, 1]).JB\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "ebf486ee-5e68-45ba-b98d-b25e08d766b7", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "attempt to save state beyond implementation limit\n" + ] + } + ], + "source": [ + "plot(saveat[1:N-1], JB[1:N-1])" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "2ba81fb8-bfed-40f2-8d33-4b1447a162b3", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot!(saveat, solavg[:, 3])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6ac5d053-d730-4118-8a73-f4af439a4058", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "histogram(projected[:, 200, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "1f7d2316-131d-4faf-941e-eb4ca032727c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Jarque-Bera normality test\n", + "--------------------------\n", + "Population details:\n", + " parameter of interest: skewness and kurtosis\n", + " value under h_0: \"0 and 3\"\n", + " point estimate: \"-0.17966985914759054 and 3.1431723658541975\"\n", + "\n", + "Test summary:\n", + " outcome with 95% confidence: reject h_0\n", + " one-sided p-value: <1e-13\n", + "\n", + "Details:\n", + " number of observations: 10000\n", + " JB statistic: 62.3431\n" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "HypothesisTests.JarqueBeraTest(projected[:, 200, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6c63a170-6eff-4c8b-8b80-542eb705666f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.7.3", + "language": "julia", + "name": "julia-1.7" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/runs/.ipynb_checkpoints/Grid-checkpoint.ipynb b/runs/.ipynb_checkpoints/Grid-checkpoint.ipynb new file mode 100644 index 0000000..5cb8836 --- /dev/null +++ b/runs/.ipynb_checkpoints/Grid-checkpoint.ipynb @@ -0,0 +1,1030 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "f52c5daf-9123-4b36-b83c-d5d2bcae5d91", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10000" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "using SpiDy\n", + "using NPZ\n", + "using DataFrames\n", + "using CSV\n", + "using ProgressMeter\n", + "using Random\n", + "using Statistics\n", + "using LinearAlgebra\n", + "using Plots\n", + "\n", + "########################\n", + "########################\n", + "\n", + "Δt = .1\n", + "N = 300\n", + "tspan = (0., N*Δt)\n", + "saveat = (0:1:N)*Δt\n", + "α = 0.16\n", + "ω0 = 1.4\n", + "Γ = 0.5\n", + "J = LorentzianSD(α, ω0, Γ) # coloring the noise\n", + "matrix = AnisoCoupling([-sin(π/4) 0. 0. # coupling to the environment\n", + " 0. 0. 0.\n", + " cos(π/4) 0. 0.]);\n", + "\n", + "matrix = IsoCoupling(1)\n", + "\n", + "T = .01\n", + "noise = ClassicalNoise(T);\n", + "\n", + "nspin = 1 # number of spins\n", + "\n", + "s0 = zeros(3*nspin)\n", + "for i in 1:nspin\n", + " ϵ = 0.1\n", + " s0tmp = [ϵ*rand(), ϵ*rand(), -1]\n", + " s0[1+(i-1)*3:3+(i-1)*3] = s0tmp./norm(s0tmp)\n", + "end\n", + "J0 = 1.\n", + "JH = Nchain(nspin, J0)\n", + "\n", + "nruns = 10000" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "6e3cdf02-c243-4622-a52a-a6d7f987c68d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mProgress: 100%|█████████████████████████████████████████| Time: 0:00:29\u001b[39m:38\u001b[39m\n" + ] + } + ], + "source": [ + "println(\"Starting...\")\n", + "progress = Progress(nruns);\n", + "\n", + "sols = zeros(nruns, length(saveat), 3*nspin)\n", + "\n", + "Threads.@threads for i in 1:nruns\n", + " bfields = [bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise)];\n", + " sol = diffeqsolver(s0, tspan, J, bfields, matrix; JH=JH, saveat=saveat);\n", + " sols[i, :, :] = transpose(sol[:, :])\n", + " next!(progress)\n", + "end\n", + "\n", + "solavg = mean(sols, dims=1)[1, :, :];\n", + "solstd = std(sols, dims=1)[1, :, :];" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "d16b97dd-b9f5-415c-b388-2b1f3344be45", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solavg[:, 1], ribbon=solstd[:, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "a06addc4-47b2-4467-8148-3e68f3eae702", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solavg[:, 2], ribbon=solstd[:, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "bc1686fd-d86d-42b0-9d87-bcb911526d00", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solavg[:, 3], ribbon=solstd[:, 3])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "59ac92d9-6a78-402b-91ae-3f5fd22cc6ff", + "metadata": {}, + "outputs": [], + "source": [ + "projected = zeros(nruns, length(saveat), 2)\n", + "\n", + "normalized_avg = [normalize(vec(row)) for row in eachrow(solavg)]\n", + "\n", + "Threads.@threads for i in 1:length(saveat)\n", + " n = normalized_avg[i, :][1]\n", + "\n", + " u = normalize(cross(n, [0,0,1]))\n", + " v = cross(u, n)\n", + "\n", + " for j in 1:nruns\n", + " b = sols[j, i, :]\n", + " proj = dot(b, n) * n\n", + " b_ort = b - proj\n", + "\n", + " projected[j, i, 1] = dot(u,b)\n", + " projected[j, i, 2] = dot(v,b)\n", + " end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "03467eca-3f0c-4bd4-b3f7-5649b68780bc", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "histogram(projected[:, 70, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "9c6484d3-3396-47bb-b063-98e8d013d020", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "histogram(projected[:, 70, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "f6df949c-15b2-447f-a264-8ef48ce1725e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "nth_moment (generic function with 1 method)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function nth_moment(data, N)\n", + " return mean(data .^ N)\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e4ad51fc-0dc7-4106-99e4-2b29e54b1930", + "metadata": {}, + "outputs": [], + "source": [ + "using HypothesisTests" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "e5b9609e-f467-4bd7-9b51-9a4c1f175738", + "metadata": {}, + "outputs": [], + "source": [ + "JB = zeros(N)\n", + "for i in 10:N\n", + " JB[i] = HypothesisTests.JarqueBeraTest(projected[:, i, 1]).JB\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "3ad3f882-caa1-4dfc-b83c-3b57c214ecea", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(10:N, JB[10:N])" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "bb3c6b84-5b21-4d79-b5bc-3345a8f2d893", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Jarque-Bera normality test\n", + "--------------------------\n", + "Population details:\n", + " parameter of interest: skewness and kurtosis\n", + " value under h_0: \"0 and 3\"\n", + " point estimate: \"0.024334226316224686 and 2.969023598052513\"\n", + "\n", + "Test summary:\n", + " outcome with 95% confidence: fail to reject h_0\n", + " one-sided p-value: 0.4999\n", + "\n", + "Details:\n", + " number of observations: 10000\n", + " JB statistic: 1.38673\n" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "HypothesisTests.JarqueBeraTest(projected[:, 197, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "e331f6c7-fb4b-4f21-84d3-6a3f203a95b6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Jarque-Bera normality test\n", + "--------------------------\n", + "Population details:\n", + " parameter of interest: skewness and kurtosis\n", + " value under h_0: \"0 and 3\"\n", + " point estimate: \"0.019720125889005284 and 2.974701096764015\"\n", + "\n", + "Test summary:\n", + " outcome with 95% confidence: fail to reject h_0\n", + " one-sided p-value: 0.6329\n", + "\n", + "Details:\n", + " number of observations: 10000\n", + " JB statistic: 0.91482\n" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "HypothesisTests.JarqueBeraTest(projected[:, 200, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "240660fb-d008-4dab-8bc1-aaf530885102", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8150abab-cacc-4617-9d95-bebdc4c7cac8", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.7.3", + "language": "julia", + "name": "julia-1.7" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/runs/.ipynb_checkpoints/LLB-checkpoint.ipynb b/runs/.ipynb_checkpoints/LLB-checkpoint.ipynb new file mode 100644 index 0000000..363fcab --- /dev/null +++ b/runs/.ipynb_checkpoints/LLB-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/runs/.ipynb_checkpoints/Projections-Copy1-checkpoint.ipynb b/runs/.ipynb_checkpoints/Projections-Copy1-checkpoint.ipynb new file mode 100644 index 0000000..fbd8b62 --- /dev/null +++ b/runs/.ipynb_checkpoints/Projections-Copy1-checkpoint.ipynb @@ -0,0 +1,1152 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "f52c5daf-9123-4b36-b83c-d5d2bcae5d91", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10000" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "using SpiDy\n", + "using NPZ\n", + "using DataFrames\n", + "using CSV\n", + "using ProgressMeter\n", + "using Random\n", + "using Statistics\n", + "using LinearAlgebra\n", + "using Plots\n", + "\n", + "########################\n", + "########################\n", + "\n", + "Δt = .2\n", + "N = 600\n", + "tspan = (0., N*Δt)\n", + "saveat = (0:1:N)*Δt\n", + "\n", + "α = 10. # 0.16\n", + "ω0 = 7. # 1.4\n", + "Γ = 5. # 0.5\n", + "\n", + "\n", + "α = 0.16\n", + "ω0 = 1.4\n", + "Γ = 0.5\n", + "\n", + "\n", + "J = LorentzianSD(α, ω0, Γ) # coloring the noise\n", + "matrix = AnisoCoupling([-sin(π/4) 0. 0. # coupling to the environment\n", + " 0. 0. 0.\n", + " cos(π/4) 0. 0.]);\n", + "\n", + "matrix = IsoCoupling(1)\n", + "\n", + "T = .01\n", + "noise = ClassicalNoise(T);\n", + "\n", + "nspin = 1 # number of spins\n", + "\n", + "s0 = [0, 1, 1] ./ sqrt(2)\n", + "J0 = 1.\n", + "JH = Nchain(nspin, J0)\n", + "\n", + "nruns = 10000" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "6e3cdf02-c243-4622-a52a-a6d7f987c68d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mProgress: 100%|█████████████████████████████████████████| Time: 0:01:39\u001b[39m2:11\u001b[39m\n" + ] + } + ], + "source": [ + "println(\"Starting...\")\n", + "progress = Progress(nruns);\n", + "\n", + "sols = zeros(nruns, length(saveat), 3*nspin)\n", + "\n", + "Threads.@threads for i in 1:nruns\n", + " bfields = [bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise),\n", + " bfield(N, Δt, J, noise)];\n", + " sol = diffeqsolver(s0, tspan, J, bfields, matrix; JH=JH, saveat=saveat);\n", + " sols[i, :, :] = transpose(sol[:, :])\n", + " next!(progress)\n", + "end\n", + "\n", + "solavg = mean(sols, dims=1)[1, :, :];\n", + "solstd = std(sols, dims=1)[1, :, :];" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "d16b97dd-b9f5-415c-b388-2b1f3344be45", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solavg[:, 1], ribbon=solstd[:, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "a06addc4-47b2-4467-8148-3e68f3eae702", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solavg[:, 2], ribbon=solstd[:, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "bc1686fd-d86d-42b0-9d87-bcb911526d00", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat, solavg[:, 3], ribbon=solstd[:, 3])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "59ac92d9-6a78-402b-91ae-3f5fd22cc6ff", + "metadata": {}, + "outputs": [], + "source": [ + "projected = zeros(nruns, length(saveat), 2)\n", + "\n", + "normalized_avg = [normalize(vec(row)) for row in eachrow(solavg)]\n", + "\n", + "Threads.@threads for i in 1:length(saveat)\n", + " n = normalized_avg[i, :][1]\n", + "\n", + " u = normalize(cross(n, [0,0,1]))\n", + " v = cross(u, n)\n", + "\n", + " for j in 1:nruns\n", + " b = sols[j, i, :]\n", + " proj = dot(b, n) * n\n", + " b_ort = b - proj\n", + "\n", + " projected[j, i, 1] = dot(u,b)\n", + " projected[j, i, 2] = dot(v,b)\n", + " end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "03467eca-3f0c-4bd4-b3f7-5649b68780bc", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "histogram(projected[:, 280, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "9c6484d3-3396-47bb-b063-98e8d013d020", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "histogram(projected[:, 280, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "f6df949c-15b2-447f-a264-8ef48ce1725e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "nth_moment (generic function with 1 method)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function nth_moment(data, N)\n", + " return mean(data .^ N)\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e4ad51fc-0dc7-4106-99e4-2b29e54b1930", + "metadata": {}, + "outputs": [], + "source": [ + "using HypothesisTests" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "e5b9609e-f467-4bd7-9b51-9a4c1f175738", + "metadata": {}, + "outputs": [], + "source": [ + "JB = zeros(N)\n", + "for i in 10:N\n", + " JB[i] = HypothesisTests.JarqueBeraTest(projected[:, i, 1]).JB\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ebf486ee-5e68-45ba-b98d-b25e08d766b7", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot(saveat[1:N], JB)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "2ba81fb8-bfed-40f2-8d33-4b1447a162b3", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "ename": "BoundsError", + "evalue": "BoundsError: attempt to access 600-element StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64} at index [1:601]", + "output_type": "error", + "traceback": [ + "BoundsError: attempt to access 600-element StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64} at index [1:601]", + "", + "Stacktrace:", + " [1] throw_boundserror(A::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, I::Tuple{UnitRange{Int64}})", + " @ Base ./abstractarray.jl:691", + " [2] checkbounds", + " @ ./abstractarray.jl:656 [inlined]", + " [3] getindex(r::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, s::UnitRange{Int64})", + " @ Base ./twiceprecision.jl:484", + " [4] gr_draw_segments(series::Plots.Series, x::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, y::Vector{Float64}, z::Nothing, fillrange::Tuple{Vector{Float64}, Vector{Float64}}, clims::Tuple{Float64, Float64})", + " @ Plots ~/.julia/packages/Plots/ju9dp/src/backends/gr.jl:1825", + " [5] gr_add_series(sp::Plots.Subplot{Plots.GRBackend}, series::Plots.Series)", + " @ Plots ~/.julia/packages/Plots/ju9dp/src/backends/gr.jl:1742", + " [6] gr_display(sp::Plots.Subplot{Plots.GRBackend}, w::Measures.AbsoluteLength, h::Measures.AbsoluteLength, vp_canvas::Plots.GRViewport{Float64})", + " @ Plots ~/.julia/packages/Plots/ju9dp/src/backends/gr.jl:964", + " [7] (::Plots.var\"#537#538\"{Int64, Int64, Plots.GRViewport{Float64}})(sp::Plots.Subplot{Plots.GRBackend})", + " @ Plots ~/.julia/packages/Plots/ju9dp/src/backends/gr.jl:688", + " [8] foreach(f::Plots.var\"#537#538\"{Int64, Int64, Plots.GRViewport{Float64}}, itr::Vector{Plots.Subplot})", + " @ Base ./abstractarray.jl:2712", + " [9] gr_display(plt::Plots.Plot{Plots.GRBackend}, dpi_factor::Int64)", + " @ Plots ~/.julia/packages/Plots/ju9dp/src/backends/gr.jl:688", + " [10] #582", + " @ ~/.julia/packages/Plots/ju9dp/src/backends/gr.jl:2062 [inlined]", + " [11] withenv(::Plots.var\"#582#583\"{Plots.Plot{Plots.GRBackend}, Int64}, ::Pair{String, String}, ::Vararg{Pair{String, String}})", + " @ Base ./env.jl:172", + " [12] _show(io::IOBuffer, #unused#::MIME{Symbol(\"image/svg+xml\")}, plt::Plots.Plot{Plots.GRBackend})", + " @ Plots ~/.julia/packages/Plots/ju9dp/src/backends/gr.jl:2057", + " [13] #invokelatest#2", + " @ ./essentials.jl:716 [inlined]", + " [14] invokelatest", + " @ ./essentials.jl:714 [inlined]", + " [15] show(io::IOBuffer, m::MIME{Symbol(\"image/svg+xml\")}, plt::Plots.Plot{Plots.GRBackend})", + " @ Plots ~/.julia/packages/Plots/ju9dp/src/output.jl:232", + " [16] sprint(::Function, ::MIME{Symbol(\"image/svg+xml\")}, ::Vararg{Any}; context::Nothing, sizehint::Int64)", + " @ Base ./strings/io.jl:114", + " [17] sprint", + " @ ./strings/io.jl:108 [inlined]", + " [18] _ijulia_display_dict(plt::Plots.Plot{Plots.GRBackend})", + " @ Plots.IJuliaExt ~/.julia/packages/Plots/ju9dp/ext/IJuliaExt.jl:54", + " [19] display_dict(plt::Plots.Plot{Plots.GRBackend})", + " @ Plots.IJuliaExt ~/.julia/packages/Plots/ju9dp/ext/IJuliaExt.jl:70", + " [20] #invokelatest#2", + " @ ./essentials.jl:716 [inlined]", + " [21] invokelatest", + " @ ./essentials.jl:714 [inlined]", + " [22] execute_request(socket::ZMQ.Socket, msg::IJulia.Msg)", + " @ IJulia ~/.julia/packages/IJulia/Vo51o/src/execute_request.jl:112", + " [23] #invokelatest#2", + " @ ./essentials.jl:716 [inlined]", + " [24] invokelatest", + " @ ./essentials.jl:714 [inlined]", + " [25] eventloop(socket::ZMQ.Socket)", + " @ IJulia ~/.julia/packages/IJulia/Vo51o/src/eventloop.jl:8", + " [26] (::IJulia.var\"#15#18\")()", + " @ IJulia ./task.jl:429" + ] + } + ], + "source": [ + "plot!(saveat, solavg[:, 3])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6ac5d053-d730-4118-8a73-f4af439a4058", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "histogram(projected[:, 200, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "1f7d2316-131d-4faf-941e-eb4ca032727c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Jarque-Bera normality test\n", + "--------------------------\n", + "Population details:\n", + " parameter of interest: skewness and kurtosis\n", + " value under h_0: \"0 and 3\"\n", + " point estimate: \"-0.17966985914759054 and 3.1431723658541975\"\n", + "\n", + "Test summary:\n", + " outcome with 95% confidence: reject h_0\n", + " one-sided p-value: <1e-13\n", + "\n", + "Details:\n", + " number of observations: 10000\n", + " JB statistic: 62.3431\n" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "HypothesisTests.JarqueBeraTest(projected[:, 200, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6c63a170-6eff-4c8b-8b80-542eb705666f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.7.3", + "language": "julia", + "name": "julia-1.7" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/runs/135.png b/runs/135.png new file mode 100644 index 0000000000000000000000000000000000000000..78f3eabf2369da36a96b524ba9ef6cc57aa0a000 GIT binary patch literal 36191 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%0A|wP(?bOs$WY=_7(zD}W3S5= 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 literal 0 HcmV?d00001 diff --git a/runs/45_hist_col.gif b/runs/45_hist_col.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b2d4330e5bc6035843f4286ac2f8916c6694cfd GIT binary patch literal 1669374 zcmeFYWl$7u`1iZPvb!v>OGqP~A_CI6bP7v1lG2EjNG{!tw2Fv?ATEfsO1Fd{A+?0G zNH^^B`=2vs=9%;Qyg4(^cdnQBJ@>26+;x4_HPs}g?94#vz%vlw{|XU+0007@Kp+AH zA_s#|;Qt9F5ty0?dAEiRbWIYGLkAXld3S2s@_GYv5;!8u&}U_YO;}P zvy*6YB6K-P|0_LCPEIaT3^$2BH>o}^!jPZD$!9B-~zFP*Vo(C?_W;4|h_4KS9f@DUrA+k!dSQK2}y%Rv~dwCvnw4YH1?ew6wIe zN!@k+E6JyNWF8m{#(>1jdXX(b+NO{;EgZEZv8WlQB{XJ=<`Z|^|u<#fl( z$;ruu#>>^!)y>V#oz}};GRBk6>%Tmu_j)QF=S%PD>+9>s;2FRsAK>O65D*Z^4O( z5EjVdcFxMm%He*J&+C}a>y$6enXeIB!0S{{P*BM0SjhK3RmA5|B+LGa&+!eveMw2l zyL)!;v}oT8*p}tXl$Dv4-+x?QUS3gA@ga$$%89t@qet}vtLk8i8X?OXOn6OAO`V8& z{X??`QPY-|mR1SlZzh55QkYH|OjlP|x4D0h+@pSZ?LoBW@bK`6vf9XFuW>cyiHV6x z4aF%fg&7^Wnd#X%J(+oo)cg#7VPRp>P-4-;4sR^BVkWY>w6bO){Kr!0kFDgowcw`R zz0K#Q+m5_DJ3G5!`hQ(H|9P~X{w#{}ECzY@L*nc*?>rH4UMO?kFLM50F2>KV zK3t?jFS__IdITgwwHzucBy z6H0GxZU}@U0)fCrK!zweR}USd|l*H0w$S zvUm+YSPj&@AIcSS7%bBKysm0t#rcbrIEm(a+<-~P&nKTN#@}gV@mpUSWJiJZ-YLEM z&_|6Gdia7F*nSdS7E?bQBH4a|rnb?U_+UNM@X<2ADix3s94(OE?90_5y`ui44hbj` z@NocQd1L$mA?*h0!|vN^Zr(Oxp--W|g&Uv{Q( zdTxS}WK&PVWy>!tRb417B04xPgkw~fi23Tsc6(ISyLfRIp^U#h!1GoRg;;qH>2LI!X@HCNi5`&_&7*dJ39#(0Oj+W44`92B3RNiwv3+eK4DUdjy6l@g#v&XcLlj! zR#PO`d4EQN#CY!lcu*%CfNnTZK{99@hDUdp;UZjbOJP_q7}pau#VRJWt#Z9ABq`N4 zmTx_e1}k1mdUv9k_%}vr0M&=-jDU81lptDKlq}9Y({=N0Ji7~b z!RjMt#}sfV9vzBlw%dA-1{7y0djq_=6hU5r!k~DfPVP~Z3w`{|2G5(pu*I-?{~n0 z*Y?ul2HZZP8@TD|TEOtFQK{&2{e4Byjxg#0xf!lRfr@5JPyXg^?XymS#$6v}gtog@ z+bSjXL5~ao5N%WCQrAPw`=J7pOFmhv#hvy-7E?YI5CouktitSH|G?DKzf(AEdjB2r z%GWpBsxrlHeotuoFTd%Jf)ASfc90Tn$%G=(2Uj-p&lNka zr(W|WY1k+B-0nvq9t?s!2HEpxwnmo*#?B-j6g?klUMP+eyxc6!^}5`uD6hHPu5R4B z+`;t;UhURTdtLo)+NinOYh&~y7bu{+`-k0s{wn`&((Vx10j@|(`z`e{c!)ieIU31k zFHq<6Z~i%9oLtZhZx<@61B`>Hy45K%>+GW3|_l zZc}duS*VDr)4fsPtc`j@gkcpuCy}@E&ZF%4paKF$g6@NoZbOHGqnfc`0q1tg0vsEh z2}UzRLkcK*7o$Yk^>P?>*9*W(w*kQJ^Z)FKax5{sol(3Y=xTJcb92VfUr+b=!4O{X zQgXxnKI&p;pxJ(B4E@$y#q0Ly2%)z@#Ir!!-g5|(&uX%Z&O3(b{$BBxgB0)NcT5{I zy{=;ise!}q?w(2Zx$3-Q8Q6?t0rK@L5c{OZi8`{u6Z%!TGcyuBN;x?+H8m^_GxGdO zxp`h_Dm}@}dQVl=w5dRMv^ll)fqIc=aVN`Mtp71Vp9gU(;K(y1xVxW=)VIyiHD$$O_uL6=bQ%=t_(%dYL3TB4O#2W{Gcm*95;z>8e%OjA_ z3XY04b;_l`C!~cYJFr{^I?FD=N1qQ)ygn)2ko{Ll&R9?%b<2*xb@H?=#R!jhT}$8f`6*Q{f3f2VjYl60at9~Nq)#d_DIbi=wSIlD zIQd}q7yqc*o_1)aSK6e~iaFl24>&bwA^!S+DbAdtB#y%jORPRN zAr;_F^w12gcZ=#F9u}g#?C&9EbeZ87*yl?ma5_LmCDGR+6`~3P>);p60{XKjGb;>d zP5qB*d>9$bBTA#{#!_nh_*!S9#yY8I#Cj5&-olqqM6}T;NY6eSi4s1NwQZ(Yr4*WU z%7CQh=!)SUNlJI7%xN0>@hR+VXz5yfnq~A=4Yo4aKo$RnWXM7LHAuY@eA-(0gYc19 zbp6r4pgBf{{@9c{(;g3_uUAW$)U&Tp-G6@f%;$#I#oK8Y?IIMw49GOeZk}6jzbeZm z*hXU~{m21v-xWP8vbkUVmQ-6sc!-{0YW$t**Flc&`S+jwy$>CAkMif*)```nTFG_} zUq7T<7eikD@O*tF$I&z)uXhJiih9Ljtw$+ zy0T{bm9ylIi-O=pZO3Ut>&@R8)~lKyi>vi>3$^ZXt&6jQXAzw5S_g$wxqFi&S3CSD z3eKNuoqjw_S-Lqe`Ej+ly!bpEZ!c^=1JHh?IM>Wu6^eWL5z_4)&CGktnXLC~kOFcs z#d7+6Y@b-%QSWMY?%V0hzDPQvmAKC($M%BQm$xcea0Xa3{O)QWx%WlpI&?s$k5Y%-!aC!6AlT0}>QOGXuFS_aUxCOFd!nigGdlZzikNB$C>a@ zDfsUL3p-z6)9{k`BaH)*ORVIzl1X)DNh_>LK^49xeZC(zvBrT(?R3eVfl19Se)p!FzeF*ir~1;S`AekLoIRc?P9q*jyV^|KAx^jEP6xk8 z*=!=;70RGC&$v^WPN)8yY%4u|+Ugolwu8!Km&)X9CZ~g^q%}om^k)d3Jzf+-?%>JU z__Bnhvcxaoql8U{aY^op3J!tUjA>Y=s8qJNc@}qm*2mf``=41-hgn%os6{-vfz(SQ z^Ot+rENFR#`+9c3M#h;p(u6+8-~w&~OIr=}w@L^QbVZ)x$vrM|yf1Q06SAw{X4`dU zOJ?S{o;_X?LO#35^+|Zy5}4Cgk*js~*cP6b$d}jK@7V8>r`eZ#Vv9V%5&8#-hKgJfem?N79 z3Qtgl2&qD#dEx!Iyl>U(V7s?_U0`PmzliCdMgalHk{tjM$cH|Nc7E-PRCwk0Vk zX6h)0zw1W=3Z%ly;oR@A^Rphu1K#m`NJ{Cq)D~|K@kMR>K%I67O?o^H79z?jaNSNM z@!xsTiIXJ=tb_HuZ6B*>xP)d%g>qa;X! zM3g$Z$}ADdf@ZovDN*g7nQjWjBbYrdIxdq*GT!)z%y$Wa;ookq!M*R7_0e*{Va_@ zN)3Jfsg;}etWF}c4yyFIJ*WC#dc9U_z0TEVbJq%Tw|cQc)KPoA$xyveaDm89z5&A1 zIp~Y+6}kDn!V2>|>zyy+bL4;b$=&A~Jgyqt?=_%<>6P3$RNPse5pDw?8ban8!>Sq_ z7>k^=3t#NG416H}i)~7%YDk=G`ipAPs3l2iH-G>Uvto&zTt$rLO|ijc@jFdPj4knq zW;HuvK~|dWm)a8EMCv%m30Ik{W?9jdLtGVkLvU+TVQZ;7Rfmugrvvb#A5rRIOAkZn z=ecGQee#6D*5TmRR!b`QCep_krH+A?;0(d~jc}hvh)-L;_LnunSlh}~n`lSaiUmsF zn@C?M=u;KczZe>Z);$;cer);uH2C{@;rGkd@7HtRZ?C>z6p{jD+lj2&i9^~6J72NA z9)DQB{m>>~lc8Fl3-tyuZ92#SiisI^i3hyN?_PJXGIg@cc5+&Ea))&C7IpGlbuzbg z3SM^#F?ER)b&^~=lU9>2Ym-a0bx9U=Q3y~a;dFi$mJ*HY%pzK~`C7&1y%GB4(%0P> zrXK0*F5zcYEfEOztot!NWGpBnb*r|6#%|Bk$GQSNPjtwa(LKV#5OgtAbgasIOtk|* z|*Wdfj<4$Ze{8-IfB*9=3{?-18zF>X(6l`ZOmDuPaK)Z%R&Y#iUuQxOXlETbfgD?)7^L!`Dd%4`jDY7 zq~zH`{Vxv&h$#nu1Bb!{hMKH~8)S!G$0U3))qxrpnz)YAd<(Mj#XJnAYydx?dY`KguGhsG=9S3WAirBDS&>nf|PF_7`>XiWzy! zaPedA>Sl>kIYiz&%AeCKQmA_pb#;nfI&-NCsN~cZ?0oJreR+Y%#ERe>jg{?(?B{j17V-ogf zXl%`2YGU1DLjN{MBlVBH?jMW0^;X|-Hn)E=8c>5m>kc;Se!=U!h3js*p^_=2L)eWM zx_^QeH_S(dUJGm}Yj6157!%%;_7l=K6TfXHr;>Vm(Nm-{Q|&RtgpGSFZsyf&rY#Od zdNoGdY#I1(=D*%5yt}C<$Xy&ZLGqTgcWk@nb{pqKng-Y$oZp(e+N!+k=5cqYZEyR% z%})79Vsolh+~Uqx`JL^yzCxMZH2=*WThh_Hf5+ti{!HDCs@&Zj-VN+q?-~2Mc>5P` zLprsX$L!Vcd&G?3PrCeVZ&7|vc+UM{@Ltl(z1@+$y_zrkBVP_*n{COH-roKLuVjKqESjWVjef z>(l#`k-zS{?W8B~aJU zGAHn9LE`&5m%@oL;mGu<_1+^c89ZB?Ezm`AZuBiNPajcOCaF^5g6Go8(=_9)8pPMJ z^Hjol`r|WV;6m<^Fmw~y&vV)uH@zW5ws}TnIaU=KdM^3;JfH^k4RG;+<$^^HB8Ug^ z6!Qdbvzo3{YEzR&NTb&8O?2p{lp)XH8J8_W*WHh=d(&Vt#qhyT*S&_Pql&O8im9OO zmKHxiJs{HK>3+!dl@a0Oap%)(yxw*EKF|Kwwi?wF{}tP_`Y?zh(GIAvgHu z7E&$p)V4Dw)Ihb!?7+S^g;{~y&Hw!;t44vxy+!8f%Gvb|D&xL_%Tg(iBl${WVg}g5 z;71hpb&%ZU!cctT!-b&=>aL8J$DOT}kC)u7 zt^)QJ8aec~k}l3IM`{&v!)$JJcXk#=kMBOd4Y_>O@$T43n-F$;HYqc zM8*56=zDoLK zv?Cq-KB+K1?WU-tqSboVgRm@p#zPln^;C_$c1T#0%X40z?eUWc5iP#*B1k`nJHz4N zPVyvW3)gp|&)>MI4!LOfN27lZ3OWq>{Mcyn%W4$bC^c*qzTu<#@$gr&;d}9`VKQB` zYt?6rGE3`2f}ULYnlC2n)^Acsk%Md(qy6C3wyyb;g!hJe3Xm`QS{FgCMoZjcVlq0W zPGXfRkAY%SdaCcKe;VB=olL#9`157DSoEdXjHye?q=|Lt;ECC*5T_htTZafS3zzbg z(>t<~hB=cSuG#^X1qG041KY=JjaI&+TvPfEU%ymZ1~`yNEJ}-UP2UOr*F(GHK5Kop zkUxL&oa+UYIBU`LP<6(}z1Fy432O&Bx66i=NoodB^#(qE%A8|{OFj7@>Bw!K30Y01 zm(N*E(@PBev!oI`tN6(BZS#}Dr(UY7p2h+6<*%P7N^L@%dz)Pf{6}&&-dF~hyOjUo z`0Y}Z;nhT#d^7j;vaGyuUDwd~8?lT>t?^rFr>f7lw0{elp0r9nGNhN;`!qCVy!ATY zrrGmrRIue<)0PeVjjf8MOTh%q3QwNQ(-jC!14fHD$MIU$(lh>k+|#E&7=vZ*j4D9o z{Mv5-#eRS%N6s&)tZ;yL(Va7RFzaE7lRrZ1&^-wm;2n{hB~lBBpE9hQb81sqlzq`7 zD#!J5{ngp^i!DR?(4;IEUe`MapKTY0uo7@dnYKmRgwEz7$V8pP0g~eE<`RQ z70zTw5DZ$5WS}(o79vo}K_V5wH`bWG@^LqidFL_d8y_A3`50Ebdl{g<0f2e{$Ujm* z$f!kPq|Y6onHm~G0Pj>|TOl@kp)Q+LbbPc67!aooV@oYg=TqANlmS-x@0KfMwPEZ< zR8|dKB+=px<0;ZA2)d5VR?_v-0Hf?~a_YL6eQQp(0RUP=HxDIYruTr;bzqC8gd#?0 zIVug*PLT?T<{(mL&+T^P7Hihj4fvV$hRBImb!)&;$0561#fjgzc@UG6`SMe=lYr9; zP1BK|IgQ=#xyw7aOxnhCJsi7;Ii-fx`J*$+_BE7BgmO9XX}*H++tJMqFL=Z>5hxTR+jT`tz$@zj7I1BT7<-Es9Y`L*v>m_5r5~ zrNn-pC=*s%VLK+{7FMF^y$q=Gb||*tQQ* zlIWP*_)cn@lEs!)ZyuCOh4&KsXxB-tBOH^07A?7u;nxyu z`S_my-haR0J<{)`jX%`*`l-)EV4hLNGTTO^-U{__R_39+D%h$j=8~LCSmDPMN}RwL zFcp6Pt#?3mV9gv|#{ zrs|>>^6ZdvGy2bR3|{+BI_OiH59Kt}47w#31a-zyIvNDXM?S@k8=h}9t63~kFq3NuC&;v3Pb9*Z(gd0mXB`xWTj z2Z+9k9>JhzaYD&(vWXcg@!n@ChE`Q)nZmuym$h--?s&|6Uaz{EPv&!iRrTGS2mSCM zk;oDqR#LqZO4DASoG)#T{$ljuhB@Q$<=T!6?z6*Y>xacAI{LzTw8Q_{j`Bxk6GXvo zKWIFC{g!s`vYXmdh7=LIEpi=){&eJWo1vj!N(2z#r>Gs_6cduGQ;>(ZXPu^(F zQE-WHOn&tWXk?_!3&<+_Y`nKPRw!}WOO}DOgN2>VE!_%s*LwP-5`_6x3c01!b$@X@ zZF|l5E%}KiFUd1lqUrn!jj2lFiEV^&@)Hso9Qs@!5QJy~(A-}J^?%1Goe5ceB0m%E zHf29Znr>SGs*B$bKqu#i}CqHH4lo#;!VNHICLI6l8QUWS^CGeC{HS^j%DU`cdSfs@FyJxUIq{H%7iJ;Us)a@)l!`u)X-uRLBItGcN? zs%SOF$|Ji$4A`uY4=;L^WaQUAz_^L+x0L_YV9JwwBYZMX4W;_FKAIBHXgJhfzxCbX=1IBFEBZ7{tu} zMSgs?>5=FCBUvD9IrBTiANV^$`##};$~qX0Y6o(nL8Q?KhVanCI8|?;m01kgret_= zgfuMnGd`XQ_O-Z5e*f_M_f53bz_)CTX!Lm$rDzA0tRfoSo{iy)sQ@!H0Xel`R<`2wgwS;Gm0m=lQ&z5!|xNzu)@7v zda!o10zOLcxbp##GXL&_YfA=!wn8r11eHy&d_R~V?$;$Att>&^W%y8ewX!R1yi+W> zOD;rNKCjEMRrwi-O2W93_;8f6O1Fwmw*qye;`IY{Qo8#_-I_)!YHPw8q_v#Mg7@2^ zbdS6Bhm1K&0Eb4nK>!VDJ9*W3zneB>- ziYBNON7-@q+KZ}5kEzP6s>&SqtY4zPj&(X@tJ&-HDp{)02K6X|dt*?&uGzhA!}ade z-A{(aDIF42;-jQ6eg2N>0m)$RWQk|>RUY%AzE*I*)(ifBL*HjvS#aeqL= z@P*n}4NXV3{^%KS#&v&Q_CUU4zk9I8(r=A#Em?Bs{bGUOH$;PPsI}fy4-5|uVB0iB zM1)>54VIB=y%89=Cp9o4t(CIdpN$_78yoz%HdrGtIQc;a)sFz0Q!> zxz-}X&}h)m*l*1*r9)plhAa&`OOu=>$a4nW{Rop54q-sY?o#jk#KO-$ME1)_dA{+ROn@enl} zjfL2>Lv5OXD`1dBJ5;m1a&i`6l}AiqW&Or`9_cFtfyRHTjMkpGuIriyPeF?Q(4;6V+L7llvx{u#r4+Tr|=k1W^!@il!`yW@QgYmy%kP zK#gF+sJA}_bmWvDq0O~~=%RpJV<0gMmn6srgMp}$o5e>mS8#^o%c9Rg6#NygFwQA$ zn56fc6U>N)`M_(K{%bn@S1=4%bsS_2f_ejK&6sJ6%VIE5Dd;jbhBudMF8yW5dYw!?g-i?JOxl=6pWN>gcKGFO zZ2FXWxV!r=WqXA{mbGb*YB;ds80|}IY}vUOXcw<pmFT&Q1dYq<_Yep(m_L z=31=ZThz_9{j${Wocnq*_r0g|8)UxY$DFl2Ty*Al_ksnp(60?_R9}phBo-2ek&P(^ zzSV|jp38U&&t}G$`L$AY8_$pb{e9L{%pX*dJrg0|#FqJ^do;AE$QaiBGV=GAg}EN< zUb4&(NuZntF#(Z1Mp6)~+77X)03%#1V`fYRKbl`i>xi~5Z2nm2^+#GrMpDH`c9|0` zr$o}EfM&rw(_%d%p$m^lt@*H#$Hq%1){ptdtZic!z9uiVBCJopES-ivc6zn6&iUBy z!_pN5fBkjp=Dr?iyay&!UtVkCu@Y#E5Q}LO31R()JqC(5WDS~zOEy?x8t|=yEtiJ zOnW4|Pbp_&{GmQf47>J-W;I^Sww`{O752yG^v`1&5VLKh0sH#*hgFnXyq{rUj?4~U zjNG*jZ2I#bp|W+|vftS_5a;m%Y)S1jbWHcZTH z-L>I~?p+6S*)>*FWXRM;=%TZsxY(KOo9O=WHc9qySX5x|sH-GExmbsn3ceavu9}C@P*^Foi*lCR2she7=PhGGYVE}&yHBId_ zmDxD8Ed#FH**kW=a(moO-vO4nUp(@-40XHfz1tVN+dmSKylBO^=T=p}V;s88gx?)G z-5q_s%Uj{WHnMxK&7-e{>Rx-quP1+}0z8>u5#Jhm+qpBDbr};*p})fZF7!qanBxCh zSbN;w|0|&5$%q3khW%X}{2KF=Fx z_h}&GR8h_*A|?qu@e#D?2lVC77~+6r=x13*&)A zDX3Tza7>xSOfr%Y6BY86T(kUv479FGG!g}fu$MS>P(LMs@d;zW%trCHIIPZ?)TJSq zwLM04%&?Jlk>gxnaq93z>9GcdKWZQABXQ=d{@m#?{E?Sju)&|VNwef7C5>4>pgx;= z3PN@Bk>8M*(rXt(3%OImshfm?WUSMS);TTj!lSr2G$?)OVgd zeNLVZaCA7k9FCh9zw4kB&&w(wj%^Qyo`^VKlv4VW;jwwS7y0Ec;NE~HNb|FtGqp=r z(nrJ=IEFe^=NMc0_ckv=c#bg}XQX4;vgeoOaY1m~$ny7>kq*y={(3rA!7uiq9 zv~&e{)}AVu)9S%FY=bIHgUkP&XX9h>lTogy6mDrUflZ$5M0P72c6RJ)76aBeLp<)Y zONbM(>%)?wue(jJd*ZO^m!P7)`PG-q z5;wh{65hxpIQCci!W>_Yo+;@Wi|WBx=xz}0H}lh>goSWGdpSi1)Fbhq(Y!c_Waegd zBXlW^0?&dQeSngUgM&YZu71L9H{R|v-Y)(-ez$QuV;YpRAAu;w!dVH265&Tr0e_xT ztbg*{Kt7y51(Kv=FUkp*jp4+YaFiY4m?kU?0t*L0DFs~iSv#XiXhl3W)7ccf5TTfK z+XMFAWYQAZ-OU4z{)lt(XaUzl&cWyjgF26`y5+%K5$Bd<%_DBzGzuQwc>EF1STUn7 z<%wh+@6S?*C%#6$Xl(Ci9Y2@EEKHh!1j}SGoO?{ipy!8?rMH;nU*#hI{m2C z1l*&(=u4b9g&Z#;1q3Ob~ z)Q62xEf$uxIlN-j}%`#hQH;_%-X{r3V=I!GRn5aznF$+ruuP3SVC zIRu^TwYf?*M`J)vd4Oc$K}iQ7$xoh@L}X>tN-FQEq@W&KLl3z(5{gckni(Ve;Ool2fWRZa4X%IROHtQ+8@M-L|?a{9wZ4&ZUYAR zTLnIU;jSN~R)-~-h=kd85Gi%&D0WeIu=_*|_LSAw?hB53MAH?xZay3QfwrM$0SzhYTOUtlMD7n=) zsf}0A+lYRF{1q%hum~f~1kz-D2pC{hMNriajYKzszIu+a|CRpxNwMnOi$tIerXYLJ z!x%1mIB@T~?9mUIPqKoe+6r1Ui4!8k| z&u#`l=7N!_BXR&U;;;}ep+?t_D_|B$MbN#9&O3GcoCEC;XX3mxnxD8>@isPc--<5g zRBh@cp*cm9!G@qK+L8+VBJU=XVC|+@IeA|;4oHPa zb&g#tN)QxXyFm3A`XLhgSnCegh_kLf_?|jSFi(-y9u`%6z6{dGRlI~8bkPLyLNwW5tDgf<2j-97bLp^}rEg^FrZ=`NPqHAG`$Yj58O=#Q6^R+X z#l#nS5#3a5*E1bbruB(Fa22x0yzvkN4PB|8Q3rT_r!j}>SR~qyRYGi952|DkQB4qi zzh`KzbVE1Aw7ddvF9JP)DuJI!3zc}gZ8G00Kq(ySS3i73XM6)BTD)<4+rhga~bfNizDXiGBKHbGbaPulc9OH8jar<4p(9OhIGp4OesPbm%H(2*>2#JP}fPn~)jCN0$$%L6>#ddB!VIo8vujmM)vL@$O?~pW!s$^0Yiv}_{c7?enOW6qTo0QEbi+il z-wFKTGi)9-`6iO{x%$t2-{v8kTammjfpuX^Zr1UKk4cf zd%Z?gr&swkO8OIbEP~K8_hc zBu%IKVgec|>O*$d>4|}7qz;h>fj@AePT2&ChmC!uYq~nyf1zDtZN=(?pqaQNV$OTB^d-=YUHYhVcSEc(z2bf0{GZ@PK-u{voR_!{V!E-a#p;;DE zQ%CxJmy2wi%&#+0hJ@8l`2rx8j-a7jTd8Ilt)%&)RsOL7Fu9glhPJTd#ysf6qo9fjaP0*&b?KUb;{W!zNJ-9tz%YAx#v047<_HxIt>-K8D?*ZX@XEi1BdGqSX z%~2HnsN6})I8^NLZ5oJS9}Ckd2GRDn6HD($ppsdMpu8O<7WpMrn-CewEP zXIt1irg$Z<()77VOAa2SKC0)qdsd+=ouiu;LRw1ppKYPkGL}}#QOZVJsiZ1$m_etw zw#ft^P&cT{jLmj@6kU6-g{+jeTxj%_V8Vb>W?gp3B&XK(=O|_~R)fsnXln5>Zkbn< zFN52-1pibFmaMIU-M3;P+%yOTU`VrN-iaxzQb+u>j{Ds?+Fe(XEn*Dd-tWOJm|ywh zfjkwLzR)B)RtUu%a<6cqn^R(wKPf|Yb#7Y3J4PmP99$mCV}WXbk_?G>W>-hP4`!WfHOaq& zcU5{AdIv!DbtL1jZw<_p*7!#6zlOND&BA|2I?@E)GQNccf3^r9Of?jK^kgQSZYYmm zt~V?Yc|E+j>=^ox-gxtQ#dVH-{)zbW+-@5F>_ispiWTDXqYR2oi?xe*XB*4g1VC8WL3D}OiA`oj zex?(Dp-c0L);%pj*A(^B^lSczXa^!9X#6>xekgsH{;xMy5?Djl6TJ*u1q_ZIqdW1g z>Jvd#eGS`|lUPV{vL^kh0K>bjDw(r%^Q7qj`v_mV2(z^=zO73oiQ5pq;Ss^_18M;+ zZ_jhWT{ks)RkPZ7+H6<@z#s!9VxMl7QElUzUt_1Yru# zqAW@IZpdcq);ox;^nQ0J`vDuv`zFK&3;gkpWy;g*6dnQr+Md<8xJ`aAUnuvYFQv)n zgk*eO==sw@=P-j9!%wwmKbl9JULW3nnz&&t5R^xj>c_+&r}wDOZgQvX*kA8!tX|*5 zufFQzB~RruJ;Jpz3 zSn&MR>s!}c=-TMFIAtRCp;~93f67HG$;Li+`n>;cgcC!tsjApZp73K@-&5xh&khpe zKg93@qN#8+uN{}_lZhPjpWC+=+|HU-9PorWmAOsYRm z%%e-HmPj%)OUejHs)Hr>!D!)TjH51|y)#K8@xC$|o_948yPK$SV&Mm8))2GUjv1Qn zBLz|o3#B;Ki98QHttBE)j-JP6SR>`Gk=nn&v=n3SqyAJDXY2jI)ZX`LZT)Fpias3A z(=T|^z%M-hHih>+43o{HE;mbbbWAyZsW1ymYH3PFXu5yv=cH;*dDWCknvk4UmfX{n z#>JN$u8|S0l6luPGdec2pdwRvAoD9BE>T^Ptkzp+&YPtAt-lbTJCisB1(slGCqm=E zRgIi%%^9A;B!>IIYBaTdI|NjWL}Ro$C;^~@?9~~X!T-Ma06HMM91nv#W91ok&3DXD z`cLwaXO66*V=rx_P`0zlszANNQmA(T3BoC769DMdkG9qXfG7Y!+boqA)PevgRUVs+ z5Cn3f1SbNW}rozTubElI61Vnm?s5BA5LPvurO;7|ynh2tFF!TkdOThoMP0)uoCuOo%uBLBmr3 z3G=ou9%yH-m4f(jU==<1y=~;PZFnW=IBksiMq?SbKo;VVK6J!A3k362F8_96i^PkY zGB+_Au0P}}pg$->2f+CZ$VF*H3>IZmhWbWe`GaNsIgFuUF|Y9@&q#2se$YFf0y&9F z9LN>S6-3W?uEmxC!UHnR0Gb507>4<8Bg6WcH|JS)^;kCO%ySm#BA_&!Uc^oW#UQIM zWxNS zsa)EbeUmkGE0iORt$p3~Q<}O6TV206V5XRJ5eL=9!JblUC$^b~ELex;G0ik|$u{yP zZ|N0MZjg4SzNtzH5fOW{@;o9@t2!&@;3WhHRv^KqO$y7XsO@3Qw|SO!B6A)Qm4`?9 z;9&RYAa-mv`uHRJHk29EVG^(9X9mpJa158`G#x^&;J_AoOlLDO^;D)3BC62>8DxR1 zm4IELgSbge!l>-*$)+4r#iC(x+;1ui`4mw=^T9{a4 zCeiZtsMV9flcO}1t1=9Ist4BvTAywsf^f)(xI#@L^!#D&rd_V$RNZ{$8(dP28!y05 z1A3+)D)hoDB(S&%gkuWwr3pBJ1we^n{N(3p#qx$xgyTyH8IOsz(2x!S+rM;FP0Nf-pjw@>Nn}WZ5(penKaoC08V`Mj;DR!uT#I`ZNFB9-awYScJT@2F0&bK5uM_-=B|gz-SKQ0S+Q?y zb-L{x+gVR_JN)T3$Mm==_qdz&c>4EvXZ85D^!U&81petE^7n=)_lBAEM)>zeW%b4| zT6)7zlZXpyH*wKR-j8G5&b?Gat#oq;Pou7i{6 z(7Z=(Jq_4n1&imwuUqa6Ws%;SwM)Ma${;}g;!n^Q!OdosbAN{Pm66UT&~o!|oE3bO z#w0}KSz8(0ld^q#)gGj&!vFr~Ltsf+3KS=%kAT99mqRPk1jE5g(13t!qL?=KA(9D)y@Qak?@+`u68&<=I!hil6Rf zU%n|o&}jW+2N}gPk0rhO$TeyHBzw%hblCk$Qi}AL2X>yo zm84Oo^Lk!?6^tz4j$eSZ5msA;i7YqhQ73Br6xM)>5bB%omO-W^4S4j~J+_#%F9iVC&`qS2w6x=~NPA^1c>Uih8zn9_Wca&gu6x zErYXPa^Cv^vJ#s~eyjERCvKFEY9E>zeK*YZJ}5{L>aQ4@&73M(Oi&%TLSPpBN=|zlXRF1wOA!ek%I&S)U^i z5TA$t6WoY*gSE}8%Zx#o7QX3n=iOZ3&RO7XTi~Bt5d61*6I>L&x_HKXQ6z9tEN5|c zDA_KbwOAVE`Ev2N2g))J)N!0hHlDi3!qY@#saL@k%!A1;wo32#u2qWMx0OkJ@YTiT z>&A#kugt7YTYA7+I#vG`fy^4FuyjjRFVSb|F_RoHoMQHk^Y(2f^vUq2Qd}AHa8Ux( zd6;XI0DeR`!Bn^GEQ1QL6YMzdpAqC$hl;(W*zqe3Dk`gIl7m$q4!K4-v&RUM+GbXx zZxahL)qlpXfc~xO30Ilv#|R+j210@E_lag?KGF3v(C!)>cQ4}&DD)s z^NsqzjmDgf=C+NNxsA4e8+5_Vj;ouU=9}Gto4q-k{cW3XLdOOJKfU|6DLlH~Be?d# z*|_-MW-=SecwlpN{&|h$7RqmH;`Uar^EVbY?El8;3_&{ogVW9DpKtv?Io+Y4?51Jt zaW3S4v7%69Vs1P&fOZP^xqd(d17tJhrY;Z=EPA_ortekp`&@jeVwf9L^DZw~lH;DC z23{(UPxNf~X?h|0DQkE(fLGHMkQCxn6}VMjG5JbT4k`bWbxYlzkA=qm`&le-h2;nY znlJkN=FQ)dCIOvB+Cr}Vb1|KX_-}M4dluax?=#yiNq76J9E(6w8SEx~=<`f#GiUwSuCWJCyg0(OPw1}3&fRI0W0&NSl=_Is$XUebNC=0Z!^)!$j)$}bN5S#8I(H(?@PgrewBAd~sbeFN~|$r=1A|NQk(_8*>;cyF0f z>=nRWONbz|E4EDjtgC5CYBbg>1Ux~%a{)`HCy)JL#(FvG7e46^a~)n8T}oy!Ss4UA z;j~}1xRztb=X`-})Y^rBDtvL>-aafP6I{sgP_Yo*ljb0$VJ$IWUjR|zbtnX{o|YGP>Ho>)zoi*h-_a#p|(5bR+$+~JN zx}fah9j!1LV0u(m96ic*h77byoxxOtN%cnK;4IxeFBFn0{nBk~Ascy67`5GcSb5jz)Ufp;8lOT6lqc{2P>fOB`!v%HiY@-Ib zh4^ZD={;dQrn7T*B=Y$fOL5Aht9h0aFJ_P*Zi@UnditVMPmYsxi(yu0%gXo{p}W|T z5j%nBxN0H%j|Y36p%-ycAHoYFZ4$9zs1j>P8IuV~@`NKAa-p|9SDJ9eJ=z4J!Oe~h z*_IVPlZQgHha=gago-LJplo`ta~+nc%A}lP_F5(J+v`OtV}y$tPmEMg@!mb9D7na% z{@*xVv|e03N3mv?gvpN>qrqcN*LxhWKIU|o0`4Bo?u!{e{%=+k%^t<6|FWX=_FO&u z@tlZxBt^CeKEa{KqjP+lCVf(~L;MTGS1&@^@dQlD-HL;g+w?U00m72)1`mRa#LCub zwck`_HlTtyqiQpQ!$22a%Hs)ZyrK z!?SUx>hy6{XO`y&saKz3kSY0RUR*vhM59Nq3)xc*I68KT8DyxvTQrMEv3wyYf;3#-H($b(8<7l^;_rIs3$ zgg@|7quvetR3_9I3@aKY&x9N?yz_4Z&Wo9k$HLELag$MLOU1yC|tVn z!p)e27yERCQA3Fc=6zoFr(w(Bub0QpKi+;TGB^)RZ?Dx<@Pu>IfXIr!r-cIP*98{g zCOxto)R!Jxo;y6#xeP2vo}7*?lY_%FhGm5MddbOHtR#C8ey>qETFg1|97k-#cH`i& z6{Yyr?7GQ*^Tbf4XT!kkH{bo&^UPJ=J-6n5X6(1D>Q?z8*@-{}*O{$=3mQ`!<_GWO z+V*Cd0$??dKv)al;Gt&F(a~q%T;UsVca=KF;OE1C9PP)gZQ#tz9D|+OzVr7&z*$Kw zT8^8BmC}q7=LcBtc)#VH+rF+dXqhs0o%O&noOgz%^n8B2Q&{~6AldQ-CXIUwSbvW& zozZvSq=ULG!(o2_L_m8(n>^=5l8+7`1X1WwE3y+X9{-W~=KOPYbxr<{9J5Jckb6V0sxtMs6c70ZA-FUXl?x3sjvPWZc4l0AgC8d=4iyB_^WpgCwGCLAh!y|ncWSKlVo?_P@Hyn*}8&<17JryO`Pva7`0AoGzG#JAK zfH1z-hBGG+!Y|GAuzUwP&*p5$Sj{hHzmu;M^8FrBSi~7}Fd*BX&bq4pd;HwB#x5@D zO+7CnLYX^wG-x~YtmG+}(H(h?dcpO}w*sJD^|a%cTj0OL!FfM=)!EY9j6I!uuK4z^ zJR#@MXf+j9?}ku;x#PQn-+#XcepVc<&HFrr%-t8ay!D zGu>kZe{QAw zwH!S}(-A74gM<8pqjC^~QkOu>Er*fU=kkQoTsQA-Sxs?G?===5e)G$X{ERs6mX2R% z{CJ-0FK{7uWavQ&Ydp&)j`hqWE9tPa9M6#0oyBjRp?S1;wV?6wc^PY#{zK2&jLTJ^iaXa+*EZ;}M(DcH32$kvh`+J*=GJc&+IIZd5b63 z6TP%bh&u?6f^=|~IsuaBa^Xd|j2ITO65fD_Fcgh=VjE$*in8yGaAvGB6T~9jHBp{M zFz+Z2zY^DPE0Ky<2oLvxRZja|Ik**(h_a3NNs6&;WZ9rbtPmpz@)%WHWEz#|{lNd8 zs7GWPp)f7*;!?DLMF2N0W=A8Yh#XW>5>rW!sbq>J$j8=^gBra3n&iQ+#UQO>p_fkD z{)_+mg!#M-$V^& zyzM{BgBQdgyBY~;76}`~gdfy|&DDe|rsqGoLnwOB_iZ5ujaEld;W9TZU@P$g(k}OK zuv+eTf^9_2cIXtqJVlS#(_`J-X4$02jNq6@u*9==5l0NKAR7|gT-4)Mq^)&?L5PU0 zRl0Q~SCS4o~Wcbn1PdRAXZn(>^bA3fw|Gt(|QBlqYnsI9{;MZOg{; z>T+@y++&v<d1gE5f3KcwF-}(A zCP!i^$y$^&V^;DSOGY2%^*kjK$jG;gFZ6M{YMr5c)>d5sbcZ{Mx!13-G3q>p`JE5z zJ~r$=l69M&vV@~R<)2fw!}7-5Wxc$gEXRs7PTJTjcy{f1+-nHFPb8k!iZzNpuC0Xa zO0(|HN2qCr(eOmy2Crv;%Ug91yt;k6dQN<5e z+qm6E1OZ0+#j= zEA5!4>nNLyAiJq_N8iZ1hy-zL@is%fSbr>fv9Kr>>nRZLOf;9YZ zV3Y3Qz^6(1`LaNytm90hca)EQraAx@^}FgB%0ni2M`f9EC9OAw2w;E3UFQ zj|r|aeLa6YImbd-$H~J-tKFub%PJP9Kwq^zmSZYq_54ruRVvR{cJWj}q^s_qd@OG5 z1KCIvu<$5U_ZHvwKqIPSn}HLEs*bf1m2etFuPUdWc6)_p2d`##fN*SBb18w|!=H8? z-j6A^+BsSL%ATNR;^@cFw(qj`{nX%W?P(c2VH6wrR9vnYmibD;FMkD|g~62_yzKj>ruz-)^nS?Cvg{d|K7&S^S!97RNho=E4{DpAU<`EkM&82H@E~xZn z>31JbVAYFfO$=V$yHz)Oia|$d%!76CXZ%xn&4@Be)vxWQUthig^t$T=y%4apU~fs| zH2@yKMJ}~23%q1Z=^Jb-7trvn0JN?i;xWuxK#+dP)+V{@{mK&V@&jZ&%*`O7HI~70 z1?FGQ-E}~i&MMug>N;V>`=Gzh>>!oCDMx4dL&x&Bvn#iAn6-2Iw{vH;^R~3}&$RzP zSW#L!Bxn9(MG=01snD|m}k3e)mKNR-6;X#2rhsWVHsM1=}#W8G!Hw)(f6TIAi;q zaVHsoq5&0-zR}hA)GXtV395yzz0)VH++S$c|KF`BWi9;`GyRo+`f2zI5mV*9BGd%|USw-eO;yeJ(ONCQ<)w+8+=GYoJ{7XIKr*FKnb`N2H^qWJp%KHU*3Q0pp$bXP zL+A|Cmtcq{cktI_SuhP^L<5odELxA5od8<3n6;RSq|Ed=A_Bgg1anEVgFyd7gFJg2 zOnUY|0gwM^U}2&zec}I20}I=;5|dn{JJ&rHKeG8>HL#~22TyFo5)H(46BK2(nchY= zCGZ~?U%JE+WI|B_+O@|TSlkA-#YK-S1ga*P@O#jMGjAF|{k_GG^^F3)Ou7n$`IM`r zw*S$)ygva&yb1LK(Fl$I(ZFi7U0MB5X^5z0KC=58dyO;&-N+EHGal#I&8WBv;hr`JJXy`FJXa>xjN^K z<41G(0&{c-1HNmpPp))i$DdES9DrEQYzRg+>fYm6HfRpsR7Og8er$zBs&+&b#T8W4qcTYlU52-*YMQVpkbUOx!3RzxXRQzg{MC&Jl(R$Aohn7j zH%(}$GaHDMwu6s&ilR6@^=u;f(@jo(y$aPs%*Gsk;?(QSrd1Z$TE@anzjT0Vc*JU! zT+5AXp`!|Q8ptXqZ>ok(h+++5A4?D$){cRP_R#X#wTjdZhjZCRC@egvWK9AHWL5C$ zI8!aQL{I*zEjcW5tfY;2$Y<1Y3_K9XvrepPx6ZYV&S~qNw@1~2PT^fPhp%bt+e&#- zr5=OsfE92NnKByZcU5PZ22(#VuT2gMXEG5utqwvw6IDAbJV(T1se45Xa5q=^4tfJY$?q1Ahx_a`Yz zr%;%yuUB0$>Hgc-kG2FS2 z0JD8i+db1S!PU4>C{Y+1m2y&B2OE2vggpEka0xbac;1Dw@aK_{-WnzV-MV=I>=ITf#>5yH&btQ!r4J9 z=I_6HZeNWe9o_nh<)Z+aw`-ETFzh&`8WzjnA>{JYaG4-bi9qnhShkB#{}~!H=nvl2 zB%Pu!J@;-(EYLIsF}?ySh4D8v52RDYH>V{p%@0Q=$mFx?E-2V2bj$2rAbqdsy@wnG zG0?SC1a9&AX`c~{-cCN>%dZ-0iu9y}8bB<&SFx}cWHiwsOtntYb;}rTy|Qzx`?1wu znHVjW!j~Ou1J=4fz>3*>^|@3-qhg?M#_D##MXf}*(e%`rUeEfKieP6iQ}BEm0Pj}$ z=3tsR^MysOaoTYMs`LRQMQBGZ{uR|Ro{t8*h>tZ7nlJf!e;lo>Z>no`I_q~dy`U}! zADjik%T2+X^}DB^568wl_>*BowNoXivD+3rzUQ`j`2`ahu>hV_=;d&Gk0Ac9XH9baasX+jBqf zTkCX?&>tSnH>e(swx3(W{wr#4(BG@tcB`L6m{{78rY(g+&z3i>S?a2N^wGafWO9spW3o%hlV8OBn>{QRC`zumNCDsqSt@wrG1 z`p$*8C>Bc83%$~d@F9l!!7&-!^YB^qqy#^tKJa1jv2pkJ%div93BY|^R8 zgztJuXZu*hqLXHb%oB9x!R@3AYv_yO$+>#TSNbCEF$h6Yy#!38g^*@sSy*C7w;SJN zqL4!9u|T%pHc6C{v`I@kkNl4`w#_10t}jAS+(+5Y`6`dao!^?*4=iu^5Y&ymaFmoY zeJQsOQY6=s^tDp&+oj4=Qgs_r$H!8Ez0`!ub}L*K;x^7KQOSkUj#l-yE++a7_VNXNg_FEH8}!$o#9B3Fu2 znrY;?z7!G_Z`!Qc8v?ImnD_xD0Le45)QRnTQ$tUix@{Gi+I3?fkl7h}_ihH6un2vme3>oF8TX|o*RSy&{nf9R|uJgl7dd6lF* zo{T7y;XD(7TE#_}5;O1b%vE2`g(9e6R2a;j%4EWV;w@lNEMV8ptMSR>F3YQ==Lw?n z(?#=Ri_H6;Q!t9e4G#8cW%rw<># zKVt@xvpKUuG$s_;l*JhyASZ{5oFrHYsN#9)Vz+f>&voYbKFkoccyK*EEAurE;_kNN^SM5xd?oB0~r&JxG694)V81@y(@{uWGI*?e~MU*pQ+8-HPi9xfn9MNtYv$CD5 z-qowx_pN@!AXkqyR?m%9&-FiKhNpzPXLRpzVIKJW>j77I!L|M1;ls7M==45p-Q5kA zW1yg)iIL}JZJ^beDv_RQB6YF#x`bMk=wqrnc8)97LM!LxZ`PZBUK*LTw>E0;+)90r ziMj7^{8XLUbluADy2ncO{~pwHc-BJ_>+#c?*Kb8XQ}S>z^}01s>yEB_klFB!P)D@xzI?IRD(l_1w0F_y_-BPt(S6SN97n^+8ka+eSD8tAKcjWSR zCmzC(ZizK)+45?kYPI^%TNKw@hR?NzN4Jfc227aJ7V2A%3oE{*jqL-E7GrI{^7$_x zQC7>_c>CMlZ?uIW-#B`=BGOy;V&B-mPERDeF?GAK78CSI?fS!{wBdFE<>2VwOu~Pd z+795%l;G~y0sBo)+V?C3&(TiIJUUVWIOAMbi`x14pC6-~>x0eufEf8H{k73G`s- zIC~8OKA70T*E*I+%b+Z)U}X;{Ok%iWFRx_JFU=l=O^?@~UN*@Z|3TAC!#;V>KK=B* zvBtjlUcDOR-u8yxFJrxhS&g&MZslUaiwxg~{NNe5^XIQIr4P-I}T2(?>f#ul%0Q7^v+qo-dfrG=rfW{)1anXIx5zW)E{IM2 zQ*TVC(&9A(sWR-rj(Q8gIP?tt{4^~-q$@zP=R8L5*Inlti0v}(7_2>?@v>8h?^DFA zX1&u5ODaz$K@?2apB$OJT5i^)JpJ*!rVDr|U2x)auJ&--uct*$Mrk0s7e9ghYj3@9*ZT!Py@2jS{{LP%N zi`nx!b02^G{i=U;>A!1WjdGSu+Lp}bmX5uz7J|!w13TnK{Ixyj*h^~JGQcl+cggavHU;*{G|)&id->$~)li0%Ns7}-+}vuyzg3dp zTGG|E6!W#Tz%_EtT1MMi*4$c7Aa@fLVMK*<7b3)93$}tVYw6?2IA81n__5wy?VV-e z5ZH;Y;F+CO4JxAQAB;dlUJhK&q=CBF;U|~Cr(w&SG|1q)%>rR;bNt=I4i`%nXfd!x&1hICd`$0C8Xw=={pEZHDp`%*<;|O8WhTDam_{w!#R%b62?@} zQL1xG>*k7rY@23+VBp%C0u`K=0Lg9Jwljxd7~4;!AgtF+!nT(9@gYR>AEts3t_!EF zhLj#xf>_&)Vgr}X5h5ukjeT=&30<2w7i4ng{qn<;?>=74T~!J&vHkZR8?=Pe16}`L zqEYXTNns%9!T%MF`tO5L>@)fQA%zHr)*nP7?wtL}|79@B^$Q3gYLI_J91{x|p1tO* z@75VY6lWJ$FSjzF2cPG*`Y%$bsRdT3N$FO7>PsBeKHLTXfCXS8mu%qCsHh@`OcI z=qldz(?G*_)hpn2tnyiaX|cP+pxj*G;z11-gO)< zbpoyGXVhQSz^I@{{f)Y$AKCRQt_5#=^t3qQ8=#aIQUysUI;Ug%m3zsa`0L z(6cvr*fsR7BABQcRmLztcX#?yrz|8PqNNiNtXE!}5aX=AJ1-DS6v!MbHdnePt zl;V7}E9x=~@a@#zcr}dLEd?S)6w4}Gc4Nzf1stA@a^KfKcc`E(^i0}fx&VD1_6S6fN`)be7@rPQI z@@Q-|@@ytH(fN9z&V@7SIyGvHuNV7naXi}mIUwC5`D^ge z&hHH0;Bwj-(G-2T^Fc>$Yv-dLdP-LhDxPdSYV_HxhlNvG40}fi$Sajr^0xr_8W*4c zb*2~y-iza8is&i;->{4Tnv6)*Q~qxl{+-j0HMwJ9hk9=KSc9ms{l$|E73_)6NP6DI zAZ92+EzU-8m95%+?!X_SAce(Z)**PQil{OTj*Nz@MKGmK!K2u`Hv+J&hx*9_pq6IU zh7CHags&|&mz`6Qb6(DWdr-)DKwK%xr9Y>`h^BR3Y4yhwsaPYt$FKQx&0dbLcR(Mn z74y45_|XLgaAs)ag`j9p)aZl1zgDV*{_U5SF&OVlb0dgQI=JmD3d$dq9rg508qapH z^C=bxA5%N(LpYK9#sKtuZ+pQLz5B>bDw9Fz8@7z?FfpC~slu3tvC;gm3S%CNSMOWF z!|g~sCLha)JRXetPlZwEF=)gxg4qZ__vx$a%F-^LEz@IFqQVvP0R&)qN+{GJ@#Gz` zW&{2bJ{EGnE{B}@iHpIW1px6I3n4?Xu`nL~B&5%mE#+p`v7rk>lzwa}@V%4u`Qa-% z(riBDW=$ei!=gjDViX;Y{OTH|vmo3Ys{E%#CRvyRelA5OhE-Dwql0@ogP&|SOL0Ox zo`Q2-rG?5?|4eHfd?Dr4H(>t%N(zg$hW_`#C}sVtql6IF8|}*dQ5|qwTt0y%9(x%J zS8UWfC20}NTRtV(jnY zrs*MQPeN!ZdBoL-$@s=o5ka*42>2oj@<_xbBoN~)Y&|~)*RZb=kE*>KMv8i#l7~Ss zsR<_>VRhZC;W)hlAwtRMwIVvqJ?nbz+r&{lC-wOA{uU7Z$rz6F^C5SCSA`jbQ)~`< zPSYYh44F8}z@OE|K#JQHHQMFJPSbH{#>vW)eC2TQMZ=c<%~0p;@<$J?$Iq8~{Exw? zy=qc?#S_t6ll>-pHRPcRYq^2RcfNbCsLWgMI|yMP1Xa~Lj*)3TPJJXvoU=IUCEB(D za)rSJVJUWXqWZcJ4@Nscls*k7_j6+MH$XBO6RN8%>Skw_-loj;4S7zKkO8Cd<{_1+ z`|NNas$&U)&J1&f)wFb)alM`#(&Tuulf=Be4y`vE^nsA(V#K}xekbtP%xIaq{`2-f zRh|W$0{4Z`I$(UizYyhiTVYB@XA^4&7W<5FL^-6nd#G?}O2GbH|vi5`_Am#E;D zCudp1dXvIkug5791t1E2t13)sYe&Z7zwCtX)z>7$YL>!Mn%W-MOQl}B`~}ccU<~S{ zxny0*w3g$e3|$I*mDsw;cJ*5QJBK#C%-t-jYi^yxcLiSoSh}q`R~SG_a4#&Cv;*rk zjgXz)Gat=haW;n|sX4WY=K|Jrtb9La$-c_Jrc2U`RqQF0ttq{u@@4s*@xV%|yJ`t$ zU6bp~cv6l>fe_yDv8g7Fz3qy5>R$&7wc~%)Z@aHD`H9--%#kkHy+YDU`uBXHB`vmc7mE>6=)urh=?*<87}kcKMd&7fbrj*7fOi}bUN^dS4CA|jua1gNFk^)I_AoOxh+o%z~L>|X{BGrRq)&oF|m(Uu$$ zA<`J(#2pnPAL+gt=~EKvZv+X{gb}&DLM9+#Q9c)L^t&mer*38R z#+z)%e>7z^F+05LDS~W};hESOb?cuZ*iok7 z@u>L2;`rIs`1umpqGrNMR6<@!!loGP8#!{@Hsoio>yFWLc9-XaG5)s6a+KuV#^j0Gr!|IN0(jonMj9hW7j;2S00kw^fg^U)*TV$DmoeR(g!}+mjzQr3?s9X zq_dL<=rOx&3MqS1E3;%cdlm_wN9H_ZNasAWpr}&gry86qdTmqpPAxvr?TohSMuzqp zllq&;Lu*-3w(JjD+2hgKQxxRPT6PIGXHhF>IXVYKcG`#rw(Oq2iPrt00Q^!2-<^!# z=Se&8fxqv|9W~Bo@KC|p6sQRmuAQ@FM?p1*V9Mg+_ox<}dE=M!PHH=9rDs7KvkoTn zMh@~AK4@V@>YN?bf|!3?vtOIcpNq7U&Pcq-tBVy&ikEd4jZT+2Acc}%7$1^7w+m{v zUs#}u`i=vI(nYz)q>vY7Usfa}fkY$Y^0<@Vdi$_65J!#T`I>a@Dq0Dr6Yj4^Kj=>| zX@2p1?S&<8k(Ei&AhF1f(Oi@_T=WbT<8nxH<8@K9DLzFh?yoIAKUU1NU+l(RvLRm* zN`DdITk4x9sOZ%OB}KkoT)y~ z7HZ3j#>&Nhmw)A{STw2VSx5CZR}4*IhIwCp>_?2-znp4*Ig6@Xkf{8s7_;1;xw`)R zPMPjzhTXUIpl!vRpNbVbz7_i!Rfo-0f7h$VP&Cl=%QC@7KW^ zg}&Rjhv>O?rbXB>>?rY*)vzB0W!gp2hgG#S^!0PKRRH?t5lY~QN&AS&jzYG=#!cCh zIVRm#)_qf$bT0UXv$HwKtG{BkcqJMA%AxcXwEfjpzxqC)R_#`;xssARvfgxv z{_CKIvYHW_*n&xQiJ@t;XqSHhE8KtGE~N|l$_MihX4~>{OKjRRCMEfOS1*02iMw7WFCuU{zGb=}h>){lO`+t#nx)??BJU#GKT+PC;zzWbT~@VgO+ zSB#}GsRqL|2q-gYbHASCuj=vFR|q=tes3E|@jOk>^{OfXdbb72!V%Re-EC#YvS`u0 zM60Tw?7hoF)g)mn;nn%yGi_gHp+cRCVkFveUuqkCVyJ?A3!NO)cZ2ZR~q?v9{767 zJR-z*s016T{Ni3*h@oQ%|ISZZ4s$}ZYmvyc(eLalx*ayU25%kjFtsrHa@~pf&!pp~ zypw-6y8rCy7juXDjaocTT$jR>Jv`hz+{l<2ZZ%_J z9V%fP%H?nxIUhChtHhNrTkZUHW+gquUn;98p63nh!<`mOi7l$+R+!XQD#EGnxcsO# zFdVl&Y>65f7avhkiQ!@%m{hx`p7a=gwurZEmVRw&4rjEN{Kij`3hq3%qyn&4O;ERF!ng`bxIPLrca)7 z8PAx`?6i&}^o)D1j)$TqEF~t6n(JTdO+>y#MYm2sHzr`nNxY=p3E$$5XwCfdcD?~I zB@ZLZUcRVcE~(ISuz2tMfU>_H$PR08O;}evs2W`Z;WQ7H|&nR+x|0nu}YXXAA3d7+DQ-c4-LTx-$Re(_SpocL|jIjNWD=dyln z(RXJ<_5&8kX$xvCv#j19&}4UXNqnkJ&W(&Dj`R7Tm=u$WxeoyeGLsoE75w&x3OVAQ zOl51?s1wFgm&6*D&QC0*9V{VumLKP2KM`!Q4xG0AN3w4tJ2K1{oUgigq2Nva$q6EsGtl5Zg#kzxCQUC)fq9T2NLmwXIf;tXRF6|R%J*R5C9Lzp(u;v27|Ue-BN8*<1^w~3;C z8|?ENCuAO-JGYrOH1g@m=35az`{GSP@8-(t=JBr7g2I-$@fO5;OH#wLYgv#%-%|hG z*Ey%NnBeqvZvEf>It%}X*x}}ITUvciZlhGX+GPAh}7I68^k84gY@^9J{h02s!E3f88;-5uce-k9} z-c>SaCz8CA9-xzDZ{y|v@T2IO{)J)X!6ldC__t&~<%)nNrx4KO&+Cru`K3Ff?t4m2 zd)OY=s_cIu`W;b{Fg;oUnB552fWsA zzr5fqtr1ki0I*6v^+88J%t_7Hh%KLwY#tP_O1r;(^k;$L{)e~tk44pLyy1~O;_pcA z(e@nZ6T|y-aUoN~-%;B?R;)*Tx!#HOe}=w$zGwX_s_+*W0rlWRV3+s@Y52Sj1T&x1 zJxzT64d_WW4E_IL?5%?02-`;6!5s#73GR^KF2UU$0t5m<2X`CX-QC@7(BLjZfzy04SkD$9DYr7}<)eDzT`TGwhgQlbbH>@}4*huh0BUsK?P0H9XNyHGmuJvCY2f7R zA$l*XQa@_vxa;tTpA*{Ualxotli8^C4dWh}NHm>$ZnWO?Tf{8hPb`!=*bADVwM8-& zMk21??2H@he23dRPFv+W2v~I2%|4d8I(8A!J=^NQPvfT!3K%- z4`F`JCA(q53H^oV_MG349`>rfCHyO$q=Q2dZIUJaMDex50MS+h;12LUFVt460=8l> zk*N(o35HD!BTKp`OoS^C49FyC(Zq-w>OQL~mLs*}Cqc>&ni-G|_V+ZP|IXJ8zocct zH>IO3EY`x)uFgi;Zt$6yZAmyuyy=44!USN6LeovE+@r`~s<>ufe=yM(w8kx*Z-r3ohKLUI4li?a2#O@Q-KugBwe1aS*H_I3s0fPq zzkkiB1mRNYm---$3GO+NHasdhH1b4SBveVUtV|m?kd(*red)4h)90+-bXCpB-d!T_ z6tc-T4SW9Lpg#7jXlXCEc9fqe*WFVfPb+*Jv!P-*Rg&Ey1p8XsD0lX`I=`aZHY;;X z*r7T70oAG~=yLs}v6iaGvD4zmi&46xncr#W)mRUEhwN#lLDE1V+I26=xbIccOT-Ik zcn~iSG@fYos+XqvPsBBgEJ*Y=gCp~g%r}OkZlgIqCeytIWqC1=@(aB_kCjf5zaDEg zk+^Q_&f}&G8*WE^k5h(^V%|HEO#R+_iSpt;2bnhgK1YR-;=U)=^P@OCr$u#isxvf* z`6u6qbAfy#UIS7Bwlw>w3WGKh4m=QGFc}8(8S>D>mAo%G&Fet?_|4P!CxBrG9g0c_ zT@FM_zGE91jvu5$E+~yirx2B}|Bri;1eg|>^0FKWRd8CEw29mlG?=6hP<0V=cp^^__*~Tz!59?c>kpA(bKE1yH4lFj zPQg%}iHg=Au_S7T$Z~ov#C}5jOfo7c_aS2;&PL`l*%CzVKfx&Hu+J0+g7U)43khB$ zpQ-L4^5PE*i9v`~Z-y5IX`=5*kup}aeIMghk1cSgt|wUTxTF1XbQm+*_#JOW~;)alTpTT(HYyITxLpjSZ2Ww6>?&!0b8-7^R0q<2NyEWP#Vl03Z zdrv^Zr9~Zyt{6(NKlv?)eHXzF0!K8ntaf}K{5I9Q!@|syY5)XhzhV{-%0y@!9|Y5J z$V`fplJ$8>yO)TKNTG82%0@aZmQo{qRWP+7^TMK1!%vz z1Xo-r52|`}YZp8$R!Y2uGQ)*+N{E)KEKf#RyjOAE9V~H~L{Be*&EYTxpmHLDU=sF$ zn5x}`NUlXHth=2mI(I%V^Mfc9q3^K>3JZ0uA8Rozyy>d?(?Oh|k7l>)(+MMl_3rKV zhqgs1LwL*l0qr$LNHmxLD0fps>=`?)=RmTo#&L7Ku?&egAdG9Kikve`nv#9HXu5)v zC|B}=F+&MUda*d21`YLpj@tLU0kq`*3!t%@Fc%SJDq_+pOJW;Cv4^K;5!3 zKp8+`_ZV4xr8%!zYyHoteeQK362N+mb+L_EPdrzUSS=^)vhWR1bv>mkzqtj5qcFO| zjgxYMA&E#Df5u~=v_4-Pdk8xc)us9N<1gOE@2FS?#Lk;J(gJAF1@!-F!)k^;O@M%T_p)kXr2mJ9Rg#)s8586xO+41mgG9*szYwui)QA~fziDQ7(bYvUCU zH^jgflg^{^to7AON6u`N;G|G=jbq8kg6d?X*%Ok=v}0~KNrGn*Sk_5hn`h@qVP)A= zaa9DZuSHP%OoyHEu?!plU(nF#tYwDG)4sARfR(Ya?1eR$3Vt95s1~SW^Ro%QzOz_d z8vv3qo8qs%?EWGao0}MXs$|<}U($-8qutyxNksl?lNyXRN?Q^Ih=SBgf}(_h6ab3g zQDWf7SI!;+eazIJ0x&DIcd3DelsFcBTaw@(vLLZ^JbZS#$;VCs%GUsCYGznD7DI5e#JbJ z<6+e*)A3==wzB?V{eK;`57=YzcuJlw^0rf2*!L5|?vHvywe%?l3IC(QWp2J7%5mvh)_?@-qQ#%ByVO%?Z^CcE0lgfxFIoB zE5ZB!=N4Enq&L|i&8(6pZ1^3uYfpvoD{4fL6AE@OD~1<|l6XF7j?@NyrrvuRr*}LzSxw)YsX5{lZ*G@NJx71Y?-&GRUEmGbX4 z$mg8^u(Ci1fVLSlAo5#LoW_3}nJ7!zETJSH*d|6uE7Yhj)--}R;b2>8TG~;o~sy8pafLXL!mBHjJR3WGQ#d!Bs z3aT|)nNy1u!uQo0@ijV?N=r3H_caEyHF}*>OAWsFwdPp029rd=Eg2qlR($pVs4#zf zLwdc18{6Bcy}lD!d&7CRee3=yWxrEPBArg=Cu^Qnm9fP{KixAgbU($kLmh1n6V%V2 zc-92gbwnj7SuHoG6yS99Xqox;^kDBdmLA^pYNJ2h4P^ zhrs}!VqavuxudqyKFxRKv5;%_p!I=Rq)F1|wF$xQZr62h=~8Y&1bCJr^X)GZ=-nSU zL_OOEAzmor(0N(qCgJkn<$awm+t4pHyj=$J<2VGlPBdD+RY@FVm$1Le$>_={`9{Xc z+$P&3ub!drJEXJbnw9d@~ zWPhQS(ve00stdy9i4ea-L`yCb))AXc_MB-ykK#uk#4|KW>Si~o00)L$RDAk5*N7Io zMxKMsr7k$bIoJI6^(3O9LIZC{gLr5E6G7_r4&>9e5OK;=mPFyXa^#b0DYos#hHhv? z0Z*L}mbLmy*Rn?ceY)F)v1q2ilEq&>Y3{#vt%qvME5&>*XhjZeJjPNzWA9z^yZ3A| z@7E{h@)4K&F6ZpX*PKR!d*5#_+jZ*E&Tu?3-Ot+Fj|=}qw)E(&~0Du6w>o&bweD|i{Eg9ro6mUMfIpFq;?SEkPCo^WdbVB@_O(fn+Jtz zKArd)*Ub1<8=;&+W^@Gyxy~X7Y*((+pUl8n82*QR^FH$dYRCDhn}_g1LeRY#R|MR? zV~-4<%+Rfa@?45FrN{e{k5m9ZWz%gF=K<&^CwEUe%DvHl0;2~FZVh_fbr0BpifZv& z;-{ZiNVrc+DC&3L{`4V4T>&bz3vR$8K0my{-pW^Ip5d7uSNi{WE3jbTf!5sXq9gxZ zLTZ~ajLqNr5xrpgLaqOd+UqU*=LuasdxRETm#Dw)s(y1?G&a0HA{3G%r?SxB=ssO5 zcs|FHc)IDvZ21*OqPkC9NM|xkP1Y93^-pISJ zW(M3dfgUr-p1q8!aRcGAWP_0uX%_5jBOFgMJ$|ovXn1-EHG$bCeAppi1z@NG4HBU!bqkVtOk z(7@I3kgQOPsDNCAJ8>A{0PcWnp zHEvKa&Ql|9+&gaSDUfR=F5)q+lsH~>MLStH-rU_lh|kluIsSY(-k8|tm!NNtcfcNM z+@W`Zaa7zXB<=zdJ_iYhPB@v#Co)X`n1R;cc{Wf3eG($+L%t~tMV`>vq+JaTuz!z&pQa@#u6c@Ra zebjUop>&_^6g`$yNL4!jWcr8WbS{*PXr_!T`HY@BoG*%=RM9~+lh)c^)=p?~pz0KD z#Z2z6nG2Dbg4LM{1DTvhnNcWNevy>;LW&R%J+)PrFH4?y+leO2v9t0C=!QsU-boGI zxvh!`E}+~_pH%*5l-|i)l&@$5U(ry|5~IC5BA5U?`azBnrgeg{rCoaE&sI+1IW=p5 zIw9YN?1ZMS&=$qq2J>79DM~l&?H-)u9+Kn@eN7mN_8xoons`psugC+B<;9c8%^OOq z3*_4y=C5RXuSLf-e@)nW&L1Et*sabzct-g~nm3G=3~%UtnVq-ZnMbErn7ywTd*X=b z5@qTcIxCPWLXw`Wfl9Ab;%W$NN-AlRL}#BWd6QvYUYDS(m9VpBYJW|)<}SDtj4zMX;t6 z+b~MZ$oHno+Kw=XYDJMG#uJiJ7WMd5CC6JWCsc#1oJk4D+FimMQ~tp&L2tdB?YX?W zt5ia;; zQ>B;TN*-N-(doR(=TbbD`f;@|Dzcz0r)V5h+bN9MT~qr8$NEmOHUV{80Gtt}x|t-* z@hQyyrn>1Dw7D0w;O>+?!xS#>(7r5BJCwk$FQ9rQFGJ+oTgF;S$=c(uwGdy-o~bwa z0LBnm-KbsNL`>bxdfhx(y$^T&zCrzNR`{xtPppx`J2{7TNV(S9auabSdE#Vk_2wf}|-RGrMoV+|7l;rv~0WlU12jVpR&^*o%9Yo(^ zCExPO43`4|3)Zv@PPP#KX=x*EHMei&%WW0zX=tNqldLVVeFJDB=?Z_+KSJ8@plvQs zZ5p}qS|VjS7}kt`Tz#_IxgafiYb|CXx#k-UmVT{PJ*_rpZ&z$fh(&j>PmmXhQ)KIO zx9{{amfP3&naGIR6b##oE;ZBWE+;Q={fb^w+nrpCe&ma}3hY_E?taziX=f|B)xhZz z!8wU3r4=qfQ3PH*dqrnO9X?uRWmIYV$>saG7HuS!)aI7icbf%wYj<_my%9pTo>sqx z4!<5vSXWQ?MvvZePd8~V!u#Gp{oaq>y@*M@HmqeZJDJ%Y$N3(oXu)nh#lEH3-0IlA z`kuZP<(^-$J>4SxJ*PdIXuXHby+Ebjb2jHojBj7~l5dS=3h#~QM8b+ioL?|fU+w$Y zqx&j=14mPRhz>o-y*>LFsfT{4C_*8pf8cT12dDY1Nsp~=?2E1LjHg6^5l7*#BB^b5 z2^{tvE!S8|bt4!e*lMEK`9|1U?4x+Kb+^6^9Z92xqK*CLMaVTtfvd5E$5qoAK;m9m zaf)xZ%mAt0(2sGkvZ8VFy{*bKBPTB-8knVA!lODAje0Y626dwy18>Z%z`QryQgnTfb?LNQ^aG7;{d8)*_6EjlJt zS5;irrLOE=co@#G)^b>d0g0Q=XKh8v>$zIT9>AP=yv82($5{i-jH`6a4vaTQ0#SO} z^|HeS*Zrdv{0=?C5>#Y{2GF~%dEuq7>b8~Mp-vAoOnb;p@7qofXH9q4jlV6NY&P}u zo74@m&y1+dOytd2P0!4|&SV6aes@S;6b)OZa9!=~QbI&w0w8iqBDlDq6M+!P0jkLg zbM@A9rV(=kRdYiVbKOnT@7elqucz-#W}foqr)K66cIIIevmXR!OZ8{ReP+MF@@AzM zu~u-ANK0^-n$Um*Ds;GfMD=RR!hAD60p(?+z}SF#j1Z` z#1GXDIS^X;V!W~$yW%^$K6<)-L$lfp?K?plW8X)T)-V z3O8!cjvoZChpVCub~V}7&d?ea_@IWxkGpFKlogISpv)$7?Z+TCqbgTmVrvi$>!@HJ zxjg^H`Sa89@84KheLkG{cC9H6azP1d;QV9JHfBL3Hg+D6stb=QoxmyFD$ASrpN9vr z3;DkQ9>V3G&*6bJ5l_deinvqvX&4cO%|LOXEg00&8<8&4f&DQR6e1XU#t` zzst_Vo-ZD%sF3z2+%z>XLXH)bsWvH6bz(Si(q_0?qIUY*?(`_;bgTNbj;g$&A-{<# zsT(D&jcU?-#cW7GE_~^%+E$N+_&m^S(WvQUSg>d!p|5nVuH3A-@^Y@4sfT?)hy@LyxP@* zS;>!txFxE9mbs0xp&%x&v!8Rli@FAd86sS({$_%y42tduu&Hl)Q=|Ty)l{lOR9IaS zY!e-zBnHL4)O9%hBfU$E;1u>8mPAuFXBrL(U#`U1_b^u;^*%m{MuDq2p~OCs#*XB( zTS@fJon$!W>SFXCw-TL!&hK1$E-?~i;OKdS7 z4oU7RMDAo8_2dhal?ryUWU`Q*Yj`6A1-w1_jwAJi3d9?4&rMqSj91%E7sL|_^o08= zdJ6KG!V8xHl(kj$b&3gG`R)JuDeY-e)!oy-g=aSAX3yW}I=2=i78G$!l&F`Med?}o z_O5b{RdvdWn^A0Zt^jcTQSu3{*8Ice^@lI(k3iR-K-jN8`Gu8*^K-@2d8OaJE&9C% zWxoFGc>TEkl9N^=DEeo`;xA|9U*4*}{F8rc&KB~xumNz&MUu)$7^l)v(B+|UWR7Go zYV*uUv>CfmTFU#+C<&Bi{;$kZWfRD608J(7!{8(`yh%4Ekf&lQjmvRsBwPDPtw1c` zA0nB~vBuj9HdUXZBnw>jduM*EffUAxM3OqA@)zmp<$AJmjl5&17DbEI*GXaJTIjm8 z=Vo_2fj|RWxBJ?bDVu;3Rlk3q(oQ$wq&dA1CV4}$;QQ%H4eNiQn4~9GQ|TO^#_|kr z=gL)b`7>B_t(R*Js*#s>2^~nAt!GPQ{T?|?`aED4yVkV=TA#j|Y2tJG3r6maGD(Rf zu>0J)9?s@VL^`$dEbeJ)CR7-aebig58SL=P=jY#8^K{?v3>WD%+w%GMkCEM9&}EFD zQbLW&6c+gJ?|W^g8XkBjGDZ3v1H2|gB*H~C!IfReL!kgUZydO zC3FYk2L|9Lk1(pxV~@h?o79ZHp7(GClYK+vQ7LsIV3p6++FzijCdT~U^p1`fZxSv2 zF8rfbj{liryhf_45-WbID?NMq_YWUPtnqkYnzF<{qi0T?Ts0*XGx1c*sg;3q6W{h@ zQ)%f!KJH4ZH)CFy9Zs_H^?i5>V>5iQHVE_1pZbQmAI2TW>y3c8qCx4`+a$fm}n@*u5| zT@GE-E){byLaGgDuPC&Nf4}M2_Xg0W2g0jah*Mwg8Qp?JJ*7V{Sg&Y%WqLU3;Higa zY&{cv=9^718r5TPyuycArT*O$;7v7Jnj5J@Kfm1^mPEqdW7YFpX{Yx5SKM3IV#)GJ zU%x_eAW&US_{2#&LGd^v+RvvfilSv7Im{OMp5GTTwT&%^Us;*gV{L-DjHtK%@v%DHV`5v{$He zLR^C7E?KUz-JR&KY=FmsJ?~;U2Zw#YN|qTli)ZSW&YA~m4ixO$8os0av$;n2E&3f< zTB;rPWTpV0$G;-0qr}DPTlb$RVYsg6?VpnThI$K0pRj-Q)OceH7Ks#|999nJW5LKG5Xa;f(y(>i~ova|a zVU2PKrfptPkjh6)VN9l1CHRt}Z23JUcf?v#+~=c)tENh6m^DkImx4@Xc1@PD-3@&#KP(NGpM{0@OHCd9x>Wglx=0m5mRsktw8`~?uhYgYtvOeS z=t#Npbi`;pS*Eo5FLQ0Bdet%_0w+v$wuBnVOE?86OP|I14DsHeRN)UziX7Az^<3bc z5kkA|9k5$dY(2HO&G%S~jCCQ{PF|8!H%}J7XaQ+1wUkSClhQtV(7i?{=FFbON~=sG zJ4}bglb~AaQ;BL8(Y?b5M^*;Uo${u%Oin&KJ@p73TPmAsR?VW= zA~MqIh_sr5uheQ$HM$)+Ghh=_6K%De`W!rh^!)5HgvvF&{_dq%!3#yhAf=UTgS!Uh zNjBxjb^S5lv-;qJXqY+L0B<^#XH%2XsS0_IVTf2qwOY8!$0H-?&^lqVHv{{mJA8V( z>vDUSR-G<6gR!leRzPaHHKv6E!FvC4r~HDw^B(KsPKMqmVJVI;#a$c4sE?iVSW2L1 za>Jc5tu7(OOPBYPCdGop-M{{Rw@ifBzs~R?FNF@%R#~KKA6wwP1Q&V7OK;r-KBB6C zh6&iA7@5FbL=S*8!S2~lfK*36ir$!V$r}SM`ixKq9N=dM#tyTn_14Qagy8gAy!o=Q z;iJNl2puyjF}E2N#{ zj1H%kgZm-PwEmr<{;oWrcJ}BU?~fc$N9x8?W$!?;#oSBl8udQAQnMe`brF2h3|Sww z#@Cmp&-QP3<mq$`Sg5zbS3_+uk!BmHHQZ{e5qAiBysX=`!RN6^d^g08T0IT zlZ-f(uFm~L7RXYebaK75**uW*>R#$|^6cFBc@^Q+dm!fQyRxzMIOf%V-{&0oxbX{y z>^*=a4uXM+H@8vby@v? z^48-wl)&q73IAPUi5;G!uHOQ6_IYg7y?uxmP5D7KK66~pKZ3+38WRKh3q+Haf`lFe z&H|E@gZ}Kww@)!81nL}B9-Pnrt7D=9{!hMK|HhZI;q?BG1) zz<)I+b*nG|gZY>N1;QZ70hR#c|GuEP5fckAfA_-wu3fk^?POt6``wrmrxO4-rlaAF zFXOXika#J53h6>D!e8ams}EXad?wX}{9=)gZ6iDPoWd#Aeipq%Vq2IAF_1^)Dp2j| zxF~lyA_`;CmJ|T+s{L15(hNzE3Y^VO2J!iXE|M$=;8&T}P_P%J-=dO>gQ;Gh=xw23%&vE7lDJ0yao0PA zZ#liMM;U^APUPHI;)DjNp`~rTkT7QEDZm zbs0ATAc86xS{861)1V$SHFh;lv&X349~Ciu3TYs6Ai|nNb01oxQc2}SkYBph-CQ$n)_D^Bk@L?5=qzvH1oC*n&8C>+jv7zVqMvRh!1Y51U?BfB(EoWR-9pf{R=-Jb%jY<)BbzV zM#f@K;()W=MXVzUN18wyc($;>qh_W761@ZRI8=w+iXf?o51^MA&=4JzkRtEMV-ZhS zA*{WqI;**WaZ9cM7t!zZ5P=b9vKlljcoU3H+tRnDV6>?>{{}2Qne5H+7{R?6i=k46 zf_I5>&j!mt?ZVDR8f%=$8)eXpCMgec-^tZCqI;uQNl-L`8TIq2>}%g zsm+v)0$f;|D|$Mnbj;MGQtP&g+XR4UmCE9AcH8L z8bvrGK#aNb{0~tnIE-0RG}Pwi{EM!guUVW4`|`5VaL-rCAJs5;N5_+Pt>sjPHi-{kcEkc~DUB55~y) z7b!MFhgsxY!YB#em*(V-5F`X6;iG-TREd(N{2u-N|8Un!V%2CwDlL|f>6XAL*l8uA z3zl=HR|mS;0gA|UE46fektXcmeCd~JJ7jB(4>a}rx`~=xmujr)Cs=+cb+)(YIynW{ zUz)J2w8pp7dX-1%+@j<4JB>8zBe8!(>`Ce?(WMW|SFlX%HVET=po!3BRirXr9bVQ2 z_^3KqAprG596UMl``D#E*c*mA@V6D}D%;AQ8BW{rw^YTm+n!9VFTlDx+K_}e9F6T) z*Z#F6cF}~9oem7BR)qjn_izn{eUnDgGrV$to_)%ndO!6q8TbX*fPjvQLI&JLRYCpX zioa_ziHF#|FzWcR%*gcqtu1Vy*-F&-l#5)VS&uvIfR*n`su>smkNAJIJS2wqc?LB$Bf2ciZv*R64L_h zbJ!5D9~914_e<8pz_sUm2Zf+pqn0_8PyqT-!ZQk&eE@A#S=S{PYiJjx=ZTg(uqp1H z${xd>0YJda5y7iy-v7o8lmj7Q;}1@zdoX{8AWFV#8-AJD zYaueD-Z8z~MD}CO0-@YpX*N0DnbM1Yy$J=M+WTnjqR(EiiBWokoex-kG?jR|9#Q zafR5F9h1kmVY&G1qGG=&?DwW**mBTPRXPgu7z<*_G5`$-ClMy)Qmw=zF}RW zt3MCY;0PJW_dBK*ZXVW}J)0T-6AGT@J0$fw9dn)w&a;=?7tIWwR}8)>ip@RP_Uu~t z6?2!((|h>-(mOmK+oM3e?=+F9d#u&$&TOT1@Zr!|YJ|$O-g4E9hcW8Mytrr5{Kkn@ zr3eB)mBq9;FOJof_#@=kAl6gfue@s?vEG&Wo+n*? zs;SF@Kl^6|OFj5=H}HeKlYFq>-@MF@YNE?mfGd=M-!^Y&Sl4?m4>)K5;4$DuPHEcO zwl`geq{9`%z!m=3Z7~vo1{JKq4W>JGrz8n_mj!+oWwEV?#CZ&6hxlnB2Rn3{=~V=Q zbwUO_L*SA^^gBc7L12c*5Ecb6LzbJgpa*Lem_!c9g&ImI=Y81e_#~iP${!M67TV_# z{-$qJV{|a$^H5X>duJP_VGf?l45n`iV_6MD_#LJT4Bd$EMB;YV75r*2p0&YTybR}`BgV{uGd4>KxROk-HbvKCIKGX@R)V*Mem|6)` z1jdvI#+Yivl-q_KM+Sa@n9NmzFNi(XGu%d2eA5I#se;i#I?==~(YF=R1t@y?$8K{d zF{K7^72YxQSut~+G3HA#EKe~_%&~i!ewf_8x?jTM%3@&yvDsBRxmmh{wywhp0i(8Y z<54kFS^hIsx^pC8D2d1S)u3dXc>b(NF{_X+U7)0VsM~RHdArGufvXToq`gKG(usRv zQW9D=7-WEqeUe0?mr(MQgqK9B6lhgjKz@TIhZ2aQ0%J$m5(irQ0VJ%RFFXmJX{j9Vi4SCcRru}qT&PSvoNHxSmYz46(eXSvJ$$o zeYmp;46~85v$MYD=KI7Ik>)H2x^g*+#9 z8z%KuXXifWR=gqQXM_>hTE>`9bX8Ys!hX8Rv3nCU+y!wW{7!zkAj+L#;k{65d{W`_ z*N9Qu!kX(sm{4j4cM$?>dTA9H6cxDc70~FDB}k%hO6s6ETF~@VK%)=5Swnj0Dt@Xi zj2|d0JuU>)pu;N_WtbP0L=~x56?Kjm%`2uMT^CKSWu9fbU3@L3jx1(5&L+1jq^v2V zVU2k+ATuZxF_XoxzJS@+eK>PGv14KndC(-A;CP#e$6F8#?9_ahK4~396flH#cRCVu zJIbvFuAC$_CRKbDE{WMLCbuiefMU9`R#s?KR?wt-zod8?Rm$1s76^HOvfNaS0LPt% z)rtlmYD7Ii=n}98I7M0jCpQ}4#v1E4Nli7-EXL5>&M#NKg5I`5PB7K3y8^IY@$y{3 zC|v1oSLw4}<7bB+(48H0>K20T8X6O5;$3BeUcPXPWONEoQ-+(tikto7AxB!#Y+Jgm zSFz|-Va;9BI8fnaR|u-9nQf}9R#yCn4O z-X^3z3tZ|o;AnSsUS(Z@Ft|twTq0ca-M3~jr=}*RevLJKLkS${8yEZ%24)SK6>Pwp zO7+jqFfkBQ8Bmc*GZBVElx;(6*T68?hTmxVvfb%W&H&no%Ck5QK}L1GILeBDP6H_= zuWGdN!7%EFlUjvxF~sD9tHY%kyI^Qpi)YyIK%7-_oR+4(joP!C2# zHg0lMd9oO97KCh8fSQ0&)3{Y9V%97jD%v0-CkUQ%8y-LPt#}A{1DJ!p1n@`gL&g>( z7y)i4;EA)onX}$W8UR)v=G)rk(i!$zZQmw&4?#6AC++~}s|)vQbc^Ef{nuf^*Iw-2VMn&XCF4OU6QE39h1_PA0_MRDu2n*0T840k_EGljLkh?? z7pesGfp$DV=l`;&H_u=vQcOa*r-@ZC9zZyM{c-ruv39nxu(3M#&a(HE*_D1_#D{|WO3eP_0SbLn zz6pygj2kTMGslo{1PFC5z(6f-apLddKffL^F=CY>1%I!o`i?gFJ^AE2Jlqey+8+SQ z>5V!pWL1pK+8?4=3p+Fm+{z2w_6v#{ifP zEgWrP8UDzab*%*CgGUvB7fh>MimMUvt1+{yufRTGjvr}aIB8-NPY&RTeM@yfV!-6O(9udM>c%3|2D;+Lw&TWL{6=@c z)??DvZPV5;<=oXpaY0{p5oN)&Ie-iXT)M98`E8Am$uw^c*1W9K>KAuE8V^g`5t>V-L}v_ZZg?@176QNRG6` zj=l$o1!yYg{p(Kkc2j1}lVyRUx(t_x11N2Y$c3RDZd}fzNlXK&ma(1BKE$7G)t>c=52~YW zTu=pEai&ndNl&nE?&p;1_x$Lcjl3fkj~H~P>);fh($rBawZ4|5Z4ZaM?$%6U#yivt zh#y{a59a-8UG6>vz0}BJbWi?8_+IddS>n5?g7uH5^pW0u$it%+PM}U9kKVU#gT{2m z%6qPfdoHv}^Q&IV#v1F!n$LlI;=K>~8xJ6*A`qUm)Hq2}~~as9dcw76*ghRpo& zipb07*NERIVAU^?8g;We2?(-FK`pFfBum#K++b=HlKthWhMa7oa~lf$`!k+&q}r)| z>rV|o#RR;0lc!M|@mBr#@#UO=GeA?aND>VR`LM}PdG46BU%RBRg z?}_GeJEcPEkW}_LHH3cmRAfuDJG{-{<+HtR(IUU(IpgU*yxan^c;+R9N(h; z@cP1M0JSzp<7d+gBXO}DO^c_Lh@ddM*-zs%?x%ogBdF%e727^M^Vs6`6wKyWuIo51 zR_iv}{akOiH)ytksh8fDzb%kLTy+=zS_!C|_4&i#u|);n7JM-AQ6LjpH}0oP^`8n0 zNSYraIPvkZDGLyPQN!2dHGU9QJQcFv>25O*-K3s+C&#|jeq_xcqF0Vug@Ra{T1 z#4ZKJTkd5kl|rGuo8id?6(vazp(2TBtH0WgB>ro5puHZs zjTXIyYA5zRZl_)mzMQuze|xPsng7-VPXO$I$58w75N*N9l9k3kr0k;;ez(vZcN}?>kcCIk(56w^q%WXl@A#G<~ zt;Tw=*e{)Tc%2(iG9bB2^E=n9A7SLz@sAySQ>+i7GfvAbx3BC5bh5?V|oSB-I zlSi}`a@7aT)47$d@x@FIdTZSk*H{C9jyi9+sW9^%k?zVs3@$J|)%-IcNwk?t(jh0)Z`NBsb;$0e6X!-<+po}09i#{k>SJ)A$*K&%g8i7GA}&2@rdght zJU0JxGk`KW>-ys*wtme6W3>EfhpG;?)g`) zIKeA_gHdLreD^cs%TaKPx{yT)muG~7)9M+K`9p|Z;*IB{D~_Glpr63mqhx4Mjmv1P zm%XbNoBG8~QI6M^Y*8fXNpqa|t@NmKtZo-$aScB4sh@a8w1o(iso zo)z}T7TY9_^|DyNtL2Rro!o~U7g}4DJ+0-{2LArv@vbUZl+kYE(EZ;ZQR?vI%nV0Q z(Y|N=h#o?Y5k!j~*g;Os8p0;~ILaaQ;hlkKA<^XU=z#ZcIrBUOCWHgU=->}&rLbNl zmYpc2imDG>b$8Khe^HgOCtdT}WVSh$Sh5ubHEDq387YCiG_pHT$O*8ENn3Z`02o7AYCc}Hh4{fvG>zM+^s-#0pyDo8!#<4S@X=ZqeWh6()MZHi2; zskdLpuqe`%?B}GX_g=EMHTJBqEa&+clFw>^L7qBnWFHi1#O_0;oH^dl&y;cjZ=DLN zpH7i)O>T=auQyU@ie84i(sBp|MHyk$u)nXh=BNhRZ=jB5aJ70UJKES1Y@TLxN@K)3 z6MCvhpm$a`i#quxr*GDB>N5`gJa#MISTB-X=2`xU;dv%a@W(T=<=0QmSWhj&7N1y%HdnVHm(Wp6ObO8_ed@c?DP|3H+fdaP8?*59zD?;2 z8jV&(;YzoGyI6`T83`{;tsNL7CsifuCt(bBFCQ z=bh|%q{=FT@2yI`A`OT4i6@hBZnMhW;pZ}dQ>4yLk-g1T7$Pdy44TQ5YYZCjC1a^l+MV0 zh}T;Gi$~Q_`~R@^mQQg+{i5~2Ft{ZU9D=(AcLsNNCs^pnaCZp~ z2@u>N0RrLjoDXlkr_Qaq_rtB~>c617dhg!rw^lBSt6*crPVjX5_l?U%BcnR{ncuh`pUQsE#{n7{DxoD27?w`0>Qo1*TlJwW8y^5yRw0q?t=8Odzj-UP* z`EN2kAK%0(cYg>P@{bVPzXidbeig0X&oE0ewh_0U8LS2zSs(p*S#cp8qyte&p6^Cm zpH4Er{l0JlJotPGzFquSNdIL8F_?>9IDg`TY9FOM#4hp3Z}mHbJK*>j4N=b8`kIaF z$*Fmqtp<=U`PZ88@mK=5fd9>e^%)EC65aY83&qpoQIG+97$ZuY5LQm&Nqr`Yy3MvX+e$26e4&7W)2#a%sx0KAHf8r%2y( z$aY`EHoLcIA2$k&nO(-KGE&YhTs|3U%1kRb5;;rLo1$Hbe~9aiCCIqj!!zEUBGVvh z+QbYcmCmOc= z9u*)8_h6AVCDl7BHe{#*rP0Ruof^9k}kRGF1he zb(NSmq3c6{;+_yK-#%5AA#0l0c~MnTme4qVO!`A1@Ca zQ7~oAx~q=l9f^z^=r@eh%|U-}i0+vY#?m$dwi>pHK-Xs*N{p2sbCXMI%FBH@XmJbG zIY467!f?+Gi4)<*z| zqu$O#VUMy6H|XVY$_+G1e7beK6e>)z`9%vm0gdD z0-uz>@u?m&tJ;c93}V*|@Tm+%sLr{oM#fEyb>)rjs*Ep8Oa`h<-AvrDPD~R{Qe#fe z#!bxeO)gN7FX&D#Ig>7VPA;cTuBb}&7Ei9N6R!`rc>Og(QCPW_;t`pGx7 zBRjRLJGEys^~-Z=KVs@2b?UHqYA<5)NOtOYKs{J0+W$!EbbX4u0!UpCk!wR2uLocW zg+Z}3_Dv&nmXV}0&=+9YEcoHSWc2&qRxn^%GRUKx05+u$^{v@1zEiXIokz!uLXt31;w-lrIH2Z<^>ga zoau6e+D3#cVxi;aWo&MgWn@4@O+|7US?5+o(lSiRGO|inFNZ#Y4uPDdG-G(%OK=xv zwz1gKjvge0jNP}$(iN)0r!UckE-4iDUTvHO9cbsJz_^VpBov0ntY^@^8X#eQvbeJ&ct6hN3r2&pKG%rM&rnTs}T|vaq9}mf!R}u{yJ#WA;JLc z1Zghr0Pr?U=l@eAC}Q*pBS)~nvp{K!uM*iRxKYPP^oV{Wee_;4KZaV*V>N4x&o z20lu^%IH<=V*o0%rBmG#Q=;=4#`X|+WBV7fEwUR8zzz9krw{2fjw}>lhrLT0gw0W= zDTxM{$pHzvm90V8TMn#@>qsN0T>#AU(_mG=_6iuG#(=P0#)+6h;v^ADf?{X^5y>Z) zr~m>kd6vCY<~JD|&d)-Yy>Orl4a98-13wB(o@|f^T6d4Ikyb&yPv90CRM^Y$TpHDk zGjRPQC1oCVUy^}*?>m$3xZ0|jj&|q1Dk%!!j>%1w$E-+0natSBL-EUepJ8n^^j^t{ zYM>l2or_w+m|R+U6zi*BN$HZ|{d`aNImFvPGm|dTaYoV+02qFux9Sfo2Z-1xOMphk zN#nLU4d_k0= zZIEe(tbc_<6W>~(10n#N=qPnBgURGk23hrm(V(f^Pm2l7mm1-Mu7S(#qTz>{+ok`LBH_OyED$u#yX}Y}*I3Sjdk8y0!q9_Rb;H4x>^> z;Bdp2o}JwTGJ$^s6bBn8l;lQnCPFuwa@`W^az&oR-Yw#%&Hr?aL#5`i=|%V^-rG92 z$xs|=MhVGI;y#C<%eF0RLZ#^ou@dZM={rOh8UxX zEe0}eIjX43!0ik?nVf@u-aL&^LZz1u+h_TpNv$Zit|F}Y@?nXG%LEAa|3Fwou96b} zqex&$#?j{Sc=;9aVjf54YL7t0b?dF?yl(@rhLiCr#$yTa!3aF#Q&VCifhhf$Scb8d z!C`wlefeoh+ehgC<{5s(&%|00U56nbM1go@q119xntg<(%>1KD_Ue5g)2lsjyd}b( z^9((#k5d1pAymtsz`dKAO3Hg1wL)w!CvFWz4Sf!aF>o7QFuY9S&*<}X@Wb^N0A(U+ z0P`^9pG%B6d%4tKR7!5n1vlrwgY6DQO?Kr47t;?_hXe5|$Lwcba0an{Y`O5M(P z%@xR_73!q4dhv?Ql^E@n`ehwt)dGuESV+gREy_BPiF(x)QcjwS{`f6XY1MY(Y?>xJ zOW8~OA{s6uMmwwqwUwo{Jl$0|*UEZrcFlFcYHaU)SPd80)9Z{QPs|S=mJt#}b)RZR zY+i*e57464zXQ4GvW*+H6*e_ShE@P%u@*z~f7kO-LSAZwCSlJVX)Qp@Q#%EdC8edG z=*^d3xHBw~h0 z0v_3+5%2Q=V|7vL5pgrYRo|LVbS>y=@?@t%qZIkgapHrI?lxKILcatE)x%_MqUM%tXs1iv_H3yOB|<%iv7q5CXH#X2XoB4 zN2Okec5d9c`d((+i6~@#)A^O@P)+gS>lEpDayKs_|Bn}Oy%g^lH78EI6A4>uX1ACM zx(gQAQG4h2tV9%~QqRm$yUutK6Y5p{Y4r$s*RVFvn=2jb$$aU7_d6BpEsmV{n(>#_ zcBLSG6vrB8qv?*)p(swP&<)#fSN`8k&zPF$DI6o>Iu?foa17HXPYgs&keX0ioBnp3 zIx!i47c{r;^w~HK5A0m{@o&7%!t6}%i|EFkxnS)i)<@EBYyFo~UmUgkGyF{cuJUrW zbo`BVK1%Lfob(nzsBv6GbNRHO`g_#TOi8CJcW~oAOZqmSPrAp%imp5kwYBr(p2EiU zci(+#BrfjT1>vmTg%vMaXlO7pt{!nV7f%E;qPA;rsiEC}DBZylF$l7id08#menyGw$AWiL2^@Y;?v3rSX=_4!XffL1ll?t|I;6F`5$mh} z()h#eOv2L%`CH$;ak4+flK&FM9li5Ebw_W%{r9XNyXAd~MSov{D<+k-<$u6Mbv2*x zcvbV(>4bcXM(;EjQ?2&77uwUcVt{|J?=#*ST=hNp3@zZI)v>`K=upA0O5X{o+(3LW zgsI6b|Fh44p#Pufz^_sMn212MyFiQ#-??E(lVAv*Z_q2|(7ou8HzeBW{J|84!R2US zl?uM-hG9(QjyOUPkXr!9L74W3_k@Zcc+2&6zk8G@ga~EmoG64b`1*>YBT3$c-jo4; z{|QrA4)AUc1=t4)W<&}b`f3YB>iI^NeU3C4iTGt;`Ltl+GB73sT1Nzh7)E*bFCoEg1!TJ2n;BO>Ud6Zm6%e1q}JqhZ6*!OSRmcif&nDETGDYEPZ1?)C%1ro& z#O!v5?An#A%nVpPY0jiURx8wmqTNx#06!Pz^|2&|%`+1zF;lfUGx2+-@NH&3b5;>4 zw1hOLg$2~@0IYvj%5J>RZL7%s@RBLK&rTxAsTa=4Hq2@A%Bf7xL21bGM2i+i$(=LO ziIvWUf5_!8aYjzeT~*4;KFB>f%-Rvo-gC&_ugHF}8J{>n&tO>>70@eTlN$^qgT+rZ zEuW^0TqFm+l$6?*A?3$0<@3qqqq1h9S3)s6vVN@OH#y`rL-P)mijIv6#N7(YG7DgB z1z#6mdV?Qn#&RB%WEhnlnH|Ykm66!V0G!6rs}9KTvY@cEc+`-&X-jp#Ym-#=K=lK@~bT}4b7C~5xN>?j?8kOT_RkpTQ zT8)+192M1f_z$pDIVo4&I#i{9@O)rO3f@sUA$Z$=i?kg6I%})~`Lar#th!R5dQGV^ zG$t#2wPeh{2znGP(oqigFI^z}vcy_}EP&stT)2_t60(D)nlGN}j$#MKiP%=Al5(3^ zjt4_c^p;bgf-nP-y4rRWs!kLUOjKI7uj!g!8Jy6VW51f!e>Jl#kG%NG#fFhe-I#oV zA@JW zqIq_B;emiJy-GHjx9KF2wT5e)Qz0G{`a3_)$ zENB7=xTVmcMF7%5)7j#3+#*cg%6Z)AZPMtQ-59Xe3jW)wiQg8MUBau`7Vgsq|J+v6 z(zf>SO8ZzqHPLKDg|xv9vzZ%%=z@8b9^Yif=1oC6Ay$hka|`KTD0ydjX;n-4^IFTt z@s3Z&9lQap4OOjRl}<6I&Nensconp39Jy!Q7opkqsGb^xgvO!O zz8%`WxMr~wTW{CN-%-lp30AFCrRm5e4Jjw#VIX13Ktpd#kE?_r`no zu{s5@`ozY2q*VIaoccPea+Qx^4Xu4%=*^sBg@GwnobQN`8-O|u7~}w&%-DW{aSPG7 zZaE=<1Vt|+cdra~j~siCLf2Pvibj=_UiI}xTGLK#iZoL)V~3cr^3Up9&!)6YuuDIqe=5{b$440u7yCu;F0XCFJN zG$*UTSj%yf>-CfC>yzb{m|Jm}1>92w+}OXIrxFsU4kyt35L1CO=tqy}PTbQss?#kd zrP&AlBr_k!e^-EzoWGrj^g4g)SB)ObnTAJCI8{xI=VVVlPP9@_&UXzg1-|^L!rI80 zUB{o=R-M`loa)D)PS~D0#hyMgon{W2mWY{wmpR7_Pd78_12#qio`E_{XyIbNNd73z z1Y*XZ)j)@cOc#*IW7AA$T$Ah4>s=sO|1ik~6wdd%v+>u(37!v^7t; z?FV1wGnobb`;KV`{Bmi)*V0{>+(-08IiU zpLRZRWXaS(<$_Qb#J4LpzE`=;k(NFVR;0(OZur%B>%$vDe=fLIDW z+CKUQrcTx_6i#O`C3z%ym;Nu08FIK&f0!MQllSlN%O*Ao5_Ylr(WKi^Szd?MJu2VCuAJJa?rEvTJx*dihAA9J+r4kyjE7k7GQ8h+H2q*Acf$2h z3-LWM#>^g5pPrzaoC-deojQm&KTVE5U5P);+C1IDJu8wp+jBj0={)+eeq=v>7JYCA zMLRENK39o9o{$r&b9;S9b@Cu_@>TyNXfr$HIUWTlISo3;L`yh`sl7;WJ;kj%eKmbZ z@b>79#SwAH8QJvZ+vCe9^s8v5D`5lc>$B$3#;cDRRjPyM!I(uTNEf9n7Y8f{5-JDy zPcPE*>-nCG#LbK4;KMTj-WlRlTJmPu?Q#bfo7e)M3~x&Lyg_vfsGfjC%%Zn|dcyQk zT)%GDE$NnP>-;5|#FKCWq53^8@q5zz_jKNc!`8L4#i1+SACL1>nU8;nEYAEB&dBS| zC_}2X@sFznkB!^C=|WzN?&n=8cbBJz=OwqEz9o%f_~vhO_`jhFe!2d@b-K{=JL%uG z8{WffjX%X7Z%Q@r0}?QUo{y@}A0p8HdOa(CYOKS*=@HfcNN>4s&@~O{d3#+eeEs4d z&q%ni|MDoY^?ULhcL$8`Y4K+-_>aPuOTc@~G;mlsf<7xny_%#?Ed$ zkob-c7*FvgP!}JJP(%W%W<7r9u?3{FYxM9bY5!8q;{Wf8gtD;^WaF=?7%2zekkzm} zcMqB>`lEtiguj-+UR!DsM`#B ze7u@RReMRFpD%Y?r^gxnboR?j)7<-K&X zV--6%80D4dZ>@6d=VBu6RgYgg2|ffV(mh0r>)YMV*aHX({5Bu zw)ASYMthcVfAY=D^>(kzUmH$!=UcsD&6EN;zV2U#68e?$RPTB0ChNs~aMk$c6lFM? z7gg;~`9U_>H6{DS%4dSfzMZ3jJDdaDGB|=aqk>zOS);<`D2c2chqRTPvB&k}uA*mC z$|{VP+q89@ol}hp5DJjtbR8m?ue$!8sPX*WW7fUvw||ev*a(0M9ey+LRg|&m(vBw!#Cvl(DF_3t=Nh_8Lp+A|i zI{bwFRsJ@h>6;>u0=SA?R>Px%DhOva(P#xVGkzQ#6taeoa{MVNnaPE1RB5JOi-_#q z#`Bo@q>alXxv74%2>xLmO^WnORDc2r)qMPQa>gz8`$!HmxbZSc>Y-FwlOAksBWFp- zv0`*L<5@TjoUUX;wB9^bmEw|XU>o39a%|f*r*qB~9Ja`)X!V9yU^_Qu@%%%0_M5D^ zNG_K)<6Fp!kGY(g`*OcV*bik5D2*sai(qVGf-Oo%^ zen-)0R6aNR!2uEs1t6GoTwHfVI-0Sk9KjR3yEms+#C; z0w+NhMZGvZD3Rr_0UkCUZLgP-WSFqiR3d!dWssalj-?b_=YNo4*2TjXW{-Rma3^CN zhvz!Vyk#C^KX6U`4t8c;NKgQke7gJ?Z9tC)0JRNr`d`MrCoGZ~F&x4ud`0hwfN@Q(qe)r1t?CR(9p#WBw0`J766YmtIN z>P*W-_&J3V7mk8PK#QmQ-2zPFepv(b$eYjGrHGRT>kkk1NW#SVNk{%LqfDz+NVxHf zP<&Jz?s`eEBW6o7&C;tMf5XpUwxhI>p@7$;CCv$9Qx|ZLFiw=k<6G{f*T$UB8PV14 zzxnXamad-yo6lcV4xKmXNHt$s9_mU%`#`-a;Y_<&xISrOYxw`$^TdTtqZf@+etxXxO?Jx98Q;ylM~n=rRQ@x8gl zej>fcAdcwc{^~~j&bhtbnS_msQxj^-YlRIS9ANTRj`90yMYN_v%84HZkN~f`0`iIJ zga@b-$g66r~(D$HgEpS?*AHy0uMx0PB+|Efso_2IQz7JXXjS5wBveoPA?cG5GM zavGka`BXBLGEVnOnSmptgkol%(B^7u>Em;rUJ#R8FOmcp{TZpvl8~;VKQ{8Gxp?00 zG$Y21Q=WLZeWT^-hw|Trpmlqfgow4{i{FZfAP0Ao%ymNnLBpAvGhDWd{z{A;iJ#LhO>-2bU!2`KZCovXcJKya*TWHhB$OzvsI@+hlULkLrf-ge!1bs$$8`+bQ|IMFITwjC~sC#A{r!o`Uce zWu6AuIH;P4`+Oebjo%oFb|cw*7ma3q_%_pbo?xr`pYe0RWt^*6iX`q{l}XkW!}QCC zIrn}tq+>jfnEybD!@p@bV5QXHlZ3(agFolqrV7T?$@}EmHmn{NNr6WP{1E#=tcXi` z_s0tci^pnf>*MWX|FZtM$2thv!*P0#caa2KQS@4-@kFOPcc zFvG$HM|y?w30Y^dkYTu21dI#Tuvavg`0m~4MhJ!`474~fS}LNi0RgB7V+X=fX0JQiP^bMCEqBPkP_V!l|*vwz#F!zE&eYJq7m?viB3o_LH1sKH2vJ z{riztq=X}0i-_TfvP+8Dq|kX5(H9p_bbc{5bq9*UC1(4^*%xRDRX2-+tI0uF==+0-W0<17W(yf`oTD!g41M;ym^3mXqOi0YL_inxhi^8Yf)|b7$3B_lR^<-b?7{8`!e_dI2 zl%f4sL*$rJN+>eQgfc4h{i zOuTcWQ6M-GdvuCyR4)`CQ7|mqH9WuES92g89HC^Ls$^5FWZR_l6)YpVUDGV97-Fjoq{p? zh%LQhvu=MgKEz(O-k~ebk$$isPLZfyg&v`Tc%OpUfqCDk1jK}We3geQ{Vq$pIVrJ( zjfR)qv}CEAqY6Dy(H)sQ3--*9um0miJi2Q@^DZ8Hd}7>f@(@FPpM5G{ zY-$&!bFV4xm#6v*3WHHNbyTmufKWfJ&P`U8Yw_p5Ae=_e#h|^xKTB1sFr0qpG>tQ% zR<*2lkBzgHilOT<#XmAlxvnub!cC4c^Mi0EJVRZ%LcOw0y+Tt{y?u;E7tFvuJ!Qp< zv8RZ6i-RSnk=O>u=5NMXMBsKq@tUFcH`q)hv)rt+1dF|dX0dNJ5{QDP>|p9744S0; znq+dCtqS!mMm)lN14>5zbz&Sk_rCbpP}7bd;9DBNut zJxn9?=Oli~G>c0{Ouf4WFGQH3{V`tR<64?GOI=jQ9Yf-*yvHe z9oOL3sDN_ZHtGE4)58tYz=KaS*)B3S(@0UOv%!JvdRQE`Q*t;nrl5JVH}mEU^YfaY zExU2_Z{)QO$NBV@7HyWyid%*GwKJ&~*NXLZoAvcTS~C}uE+unPdv(%sy)vhg_4Rs` z1A5bU+6p*2&x({fN^)>-@p%vjz!y{+n`xk0W1s>5&MT}D^n`A|m@k^U#89)u*u5k% zxg^QIY#_HRt+`BKV@Tw_%)wwl%x@4QXArAr5NB(^3xb{AEF&$KCECtgQLdDq&IZNQ zBtqv!(n_$il39#icnXG>)0G1#E_qn`YqeLr#!v=sx(1v{wxp%F^6EAnVpoc}l}|Hg zfpQf!-_0vmJ17^c7guY{;I)*dJjiQQmL}2ECd%*Dj=*b?hHC?9xK(Z@IE&CW+xhm~ zRhBLjyT!HXmk=oH+;JtideXR;V;%j34X zZp}QL_03M!le;s1!dL5Fo25QMo7n&e9Mgp$bAr3or8Lt_W|MufH4J5wHCvOj8q@PP zi&?;?u3hwRwwkrl`qz^tH*n3{AhumEi@Qk3uM!I$;|+8X)9-^8LyH!}dln;$=A$6X z);E@PUQ5UVlks576TT(XQ&u$ftqL5y&E~N^@r_@(TMucQe;Htplv7WUdH*PXtd*>v zQN9BS8=X|ciBR)A2G%x`-cyTj&YG2F=UZZJ{y4xf870uvm_NT+du?abM!Eew zA1;*GZhRG4BpSHG@_YO`$ZA_{`()klm=}SpnTSW;%{v5PX@6bMZ;eaW*g6QoODT~P zOAN`XTb?VcF18jf-NkiOt`%vh4ivHs!jY_%hzHn6+2Kn|SgmmHzLK$#v!jzY$5D`% z1wm}CC@`=bx0Ta>C=J=n@9c=Bw;wyjNN^@f%G+qA<7oFl*@SK3ihIaOC7JfS#Qru} zN9xAuRwku3roT%r>JP5A_Q89G0v3*& zicYmQ&cE2rHus9vMAcC-+!)_!QrUS>*?!{OTUPuPXK1%zZh8@J+9PUvI4Mz=)7=lDfz@r#p z(Gq!3yDb>whJVY!xk#iIG*agda`PI(oDpUW0TMIgCZA~qNgVQ*E~uLyx)IrX;o5|8 z+J#Hlp%yq~w}i?KN#~XVTy^pN{u!PW9ysDUUU&f6@d5AM0JbDB0-?wrEZp)lnTlVw zb21K=@;L989IfJUtXt4++9nvOer_p8G9?6=Lb7YA4Qo9fyji~bli?E z=E9R|56~~2f|smA^bdRO96sygWSoV5iidhGZFt%J(&Ie#i8>ffw|mAc*;ko5sTYYP zuZJ)%qatOXP>^GAY61y7oHBfCw!AIob4xx`ALB$|`ut@|)ddvmB!*bgc^O$&GHy2y zooxTB1)jPja)85Wwhi%%0~)Q;b{9yg!gUSI>B@&QxzM{|!~Y{+=&K z=(gMb8o5rvwc7Y%Dc`5Ln^556_S9AU3F`a&3zIoCDT7IE;p<2BYf}pMX8{brcZg6l z%}V~YY}2RR!E5ZfPi*_2X#ZSGo{xBm-Qb3t(OBI0$Trf4+%P2EFn<1oTH$$G{ewu7 zN?`S-tlNVO?Y4~Y)*bsw``JzD7fzq^jex4VReJCT$?gH~bvGOVO#1lNW(h%&-AyEz5!q5ysC?0_kEcD`3U~>3H@%H`1YOGTR&W$`#!1r z)Kjh4T`<6k^1RF7y3FkFx7OWQ z_rFAWewe4eslV3K?fub(R=U35FN)q*pgpEeKSVGE)(LL)3;r4S02}-m=nsGRu`xT! z6ogZu+|)`ExWk#Zow369^!?-mzq2nf5r5bCcle!TYS=l@^E`?mF&&S%H5B{7F!>lzIm2?_NzyWzHFXc!U-xAVaT z%>eW@lXkWJCGAignV`qX!6n^DBCSF)h4A*SQYebb*QWA%hKUTG4|CNH*Njt8W*wr5 z(W{c_eCg=d9F7b7Q%K+h57V(5mW6WdvQ^ci)T4na!&Z;eBfZMSJPR5}N~hoKt4(kF zYjsWZIo8`e=D$*+|2bXn^8dqA(>YUP*b|0EFm(9Gb^Ez5hM3p&NHUX7t@Az4 zuL%O9NMW8m-F{cMc;{E8_k2eSbnSP-%_B(mNT%`i9y^6!j@CPTOxCUBAv|c^BzZz5 z34&L<9iexx5JxgH>|Uulb-|g5u`bB+v-ZsLabB6vLkV~v^GYKLI2Sr0JDT&+rq~*} z_HBbte(Ag8`{x!{id;yj%W5)3fto5Z?Lsq?lE{DtXbAo3cgu)3eV${e4Voh}I1!IJ zvA{7yAzGNu#x?}R;!1;%oIbTgqG1>l+R=J!xWf}^*R-aCi$5r)z#o(T&?U*a5)MX? zZ!RY$ijm#Zr{dBG7syCy3)!R^ISMDGVGFl2WISsz`t1b2SC06cxer(R_1U2?lQBoO zhmC64;3RC{#6De~+7mhJ=A&j+yxd<-uz+9Z9EW%QfX6(;Wn(5fV zQkLugz*1fiBf?rylI71@Sy9=+T2<5Wz*^lfCc;+JjH!=B<5vGulfzW@9jvC;oDf9B zG%%9LLv-*i1`8ka?}@Ae1sjA)m3x4_X+@geMMmc!G@A#YS;Wzf>^43Vj=cwj1n%`^ zZTfSzac{uq(uZX~Av*&h4re`>`H=27le%b};LB_P^{<_}`kh=hK+sO*J5YaL@cU38 zb9|p>gJ|1~>tM6D44j9aYeJK&A)nxD6`4-Dk!?16;}K6f_xOqHgy48b=~S<_u+~eG zjOHE%g!w{BvnRgXx{fwJ3gxcmN<^;v$hT3gxEq*&@Xh)}R-43_QH=5gpomvn`2+ z@`;DA1qp#G9#KjmnpN*VW`)ynjU94%_DUH?6k{R5K#Y1k<>i*p{DoqJ5aD2{&7Eo zpuPMZjbb@<6#@qlrby+B#DbU9GEkD@4#B`UPN$QH^-R5s zK(Y?iZNMxqQGi660~NN!f?MC$0GT3gPl-Sf_oEkFdK-d9Q%WMWJjw_r0qz0UG1jn) zbKIZByv9P2RcQglml)h{Wkxs_zO!%&xycfe8|FuAqO=_Rj4d~crdD0SNW_ZOL7!Ow zr&Q2rav&q*W+aK0y|tj2w{KKJ0DOM^jO=~Pd#Spt3_D;9%=}!t*O>VjvHcCH1ptjV z3vXUVte9xoaGkj^_z&tmfB-gqhy7gNbenB2zOhpC&nY;BrQm1E-3&QJRumLK7CybI z-`Fn8VR0&_X9?J7NS^A!W8eELh`^KcCx+QDB1li{Kp$wc8#sbLz zcTiVmVIEo^`2odSE2{>Gj(_Iy)>g7e<-GQ(dT|i)V??1MkrD=dxkUW})>u5O0HEbN zp0w?%qg7RBW6o3nzNj;3l7z++Rf4ZL__Csr0mN*dk;T3rG6E~I?tV>^Tjgww=9HSs}hSoc? z*)SCqmYv9*;o?0;TXa}`H6u&xax<&QRC6<@DtLM`|Njh^o+8S@(JqSHc`PKrs*f>H zwCGU^=-7O-TPtwap@Gwm!=YzFGVXR^=OfqgVQ!%FIHc9CseKFMmgb zACMCbqG%!hMt0Vb@DqW7E8DBZ5wb*6dbv>6+|RgdjaLj9`KAuHU7%;A{$5~y~ai3&21)_uuyY^gCTgxr?IR7?b9RuH5@J>PE#qBo;_+kDW zyRA9Ll=x-V5;OK-Q1Y=Js&m(id^tahqmC4fC#x97tcn2w)kC=he?;n%f}%UFMS}3d zFf0y?FntVP=e*K{NLIhadyZBdpe4J6Dysh97UeGE>{W}%zK;wEbX>yS;)*Et6^BLs zyYVmRhK3r)2V6kmmIz~`M`~x1m8Eip0Bwrt2pklN_&t(+v9@W@UMtayhJumO1Zja<(fOtzM_|*boFl3H1r=8YS)Zb(`17o zLCeJUNi~@L8>t)W0d`QMXEZYUDA*0QJs_qnl#XN}f9(ce&AmwRV zUR@%wjC88Uggt2aihaRI-iM>hm)l&FKTD7CrX^6i4*C~jRk7x4suq@ zkeH>fNqSI+{g~C^=R*FLFK?h9EJTwRF)drNyxxo-#KznhM651w|31fy6Syq(>aeaXxoCH_>za2ALh08 z9C0Z6Y+#vR#$VCg*3?=8b2eT=Sv{w>t|5DWEv``SdJZPJeD)7tLUg`;KDk^n=-5B5 zlu3Hg^tl5$9u0B0BKm>27tuQ~X{d&^<2R*W3wj4hZ=JB^VA>wH#J&EEF`vZwA8Z%Xlh5KAv8%`n#U}< z;-K=6lpkhylj@~*q&@FVU9R3-IXrPBStUFiKIC#~XEvtX^K}swwYgAEeBb;t*>tY} zq8?^uVgJ@-29>7iG)r9Be#dyV!<^5WoKnN$3(@k*((e|InpHzC;-!pu%Y?O@-Gg2K zjZW0I=C|-u%a5JYgFT*!y_EL5N1f}gQR?L(xqAwz;w?r??e9csM$VRGZ?43?OpIkz<6{IB)f?CS0bbB zw|1lJm}yaj@Rsm!5a(6?mz)E3L4UubO~XvCpiDKUs-*^UuZn=2BkI8qeuxN#|Xz;J^KZgs$Cawe8;LjtjHNM}WZFjj7|u>xAgXEh7!Uyh-q{j)+dM z{rN+Dzr;;a*^|{q?&6B}?KavlxYK4j7-WNts?H8T(}67l4rAbI40KSoihQ`Ju zey7n2$|RbWBvI<>YVTL?L(4H{Pt6??vb zCX&Ds+E7wosAol(QX(v?4VGyL%DaQ*AHa~4fW?L}rFX#cjF?Jj49iSR?OjYwTUew} zY|}_+XRFIcLqWk^WNJAs79LP^A+~D07~G054EkZ?73B?|i$D=a~QIw!w zYfB{k0IU&!M1Sf(2|J*dSI6#f; z9ZBv(A^lpa2ns|IcDp4jG7{RgbTTkHjtL`?Wi*cM5XvD8<0JWnMHpomz%pR%X>ltV2^g7H!kMW?q3M2^4l7V$ghEOjOAQsQi6?reO+>?pqsql%2!l{Egt#H44IOquuWrW~EqGqqH?x_GWu_w^GawM$Rvzq(-ltcToY} zGCHEoz=i@0&I=?91nB|oZfx`B2F5fXc%P z_y{iI@h=KWEE4G`5*|bQ5A}Rh^dS*d#<*D4znDLb{&p;+^%_{$$Z(`EeY z=6D!E;W4ovJ((Y4WufI*A-71W;7ef6zvv^P$Z-`-YPB@bve+%ASXHD<%eah-y991f zqO5OY7$aot2rc(9l&M2IY*%%EIWF@^>Odv18@&9Yu+l#mWA~GRhUIjuoF{Ds;;#W@_%If#98jOcar z>hDM%j43ROsf_8UhObsTKU9BYt(jG>S#+%NiK!7UtHN+E$yFBLV)Zu@DK9pzm3FIz zX4S@Jm7ctWwc4Y+_4g`kEPr9+kHlR{X|wPC0Gk&sRssBk7QNGR@S1g zRb!6VdmPo@kTuW>Ht1_LjAROsWH(SfC%F<5`yfkM7XGOhzi0%LH%VfFWKEjnRhkMC zo0L17l*Vg=5KWron5Ep!x+cv!*=UB@&Bn3KXaV)s7tNOBEfxVyHdvt7%ux*n{^o6U zHrDpBsjr2yJw?ea#Z~I016sv3TNKEfRgaqjJDc>$+e+)3BeK!V#>=g;+pP0jTQ)=l)a{&DU$vSE;){{{NyN5Fjkn4DZB;&QEo5sBGii?OY>tjCjbUraS80l` z3QuJ7O?GN9?{}U;RZ7Qd1sLRrumQ6F`s5zB%lv&Q&|wy{b(F<+RAe_-1r*hgx70bc z{EKc$C~L`FtkMYYM7+&3L_g3i|#OfH%?h5Jb(p~F%G2?y2@3s`} zZZHXJRPkFGZ~3s(J?Y)vo!z)Y-sLRVH6Yr3JYG9|++%?CEsE{ijc7|~c-Pw2cIoz`xW+n&s%