You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

2219 lines
643 KiB

{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# Import supporting package"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import xarray as xr\n",
"import numpy as np\n",
"import copy\n",
"\n",
"from uncertainties import ufloat\n",
"from uncertainties import unumpy as unp\n",
"from uncertainties import umath\n",
"import random\n",
"import matplotlib.pyplot as plt\n",
"plt.rcParams['font.size'] = 12\n",
"\n",
"from DataContainer.ReadData import read_hdf5_file\n",
"from Analyser.ImagingAnalyser import ImageAnalyser\n",
"from Analyser.FitAnalyser import FitAnalyser\n",
"from Analyser.FitAnalyser import NewFitModel, DensityProfileBEC2dModel\n",
"from ToolFunction.ToolFunction import *\n",
"\n",
"from scipy.optimize import curve_fit\n",
"\n",
"from ToolFunction.HomeMadeXarrayFunction import errorbar, dataarray_plot_errorbar\n",
"xr.plot.dataarray_plot.errorbar = errorbar\n",
"xr.plot.accessor.DataArrayPlotAccessor.errorbar = dataarray_plot_errorbar\n",
"\n",
"imageAnalyser = ImageAnalyser()\n",
"\n",
"# %matplotlib notebook"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Start a client for parallel computing"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\data\\AppData\\Roaming\\Python\\Python39\\site-packages\\distributed\\node.py:182: UserWarning: Port 8787 is already in use.\n",
"Perhaps you already have a cluster running?\n",
"Hosting the HTTP server on port 64025 instead\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
" <div style=\"width: 24px; height: 24px; background-color: #e1e1e1; border: 3px solid #9D9D9D; border-radius: 5px; position: absolute;\"> </div>\n",
" <div style=\"margin-left: 48px;\">\n",
" <h3 style=\"margin-bottom: 0px;\">Client</h3>\n",
" <p style=\"color: #9D9D9D; margin-bottom: 0px;\">Client-62d9ff1a-1663-11ee-a424-80e82ce2fa8e</p>\n",
" <table style=\"width: 100%; text-align: left;\">\n",
"\n",
" <tr>\n",
" \n",
" <td style=\"text-align: left;\"><strong>Connection method:</strong> Cluster object</td>\n",
" <td style=\"text-align: left;\"><strong>Cluster type:</strong> distributed.LocalCluster</td>\n",
" \n",
" </tr>\n",
"\n",
" \n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:64025/status\" target=\"_blank\">http://127.0.0.1:64025/status</a>\n",
" </td>\n",
" <td style=\"text-align: left;\"></td>\n",
" </tr>\n",
" \n",
"\n",
" </table>\n",
"\n",
" \n",
"\n",
" \n",
" <details>\n",
" <summary style=\"margin-bottom: 20px;\"><h3 style=\"display: inline;\">Cluster Info</h3></summary>\n",
" <div class=\"jp-RenderedHTMLCommon jp-RenderedHTML jp-mod-trusted jp-OutputArea-output\">\n",
" <div style=\"width: 24px; height: 24px; background-color: #e1e1e1; border: 3px solid #9D9D9D; border-radius: 5px; position: absolute;\">\n",
" </div>\n",
" <div style=\"margin-left: 48px;\">\n",
" <h3 style=\"margin-bottom: 0px; margin-top: 0px;\">LocalCluster</h3>\n",
" <p style=\"color: #9D9D9D; margin-bottom: 0px;\">c9b6fb7f</p>\n",
" <table style=\"width: 100%; text-align: left;\">\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Dashboard:</strong> <a href=\"http://127.0.0.1:64025/status\" target=\"_blank\">http://127.0.0.1:64025/status</a>\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Workers:</strong> 8\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Total threads:</strong> 128\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Total memory:</strong> 149.01 GiB\n",
" </td>\n",
" </tr>\n",
" \n",
" <tr>\n",
" <td style=\"text-align: left;\"><strong>Status:</strong> running</td>\n",
" <td style=\"text-align: left;\"><strong>Using processes:</strong> True</td>\n",
"</tr>\n",
"\n",
" \n",
" </table>\n",
"\n",
" <details>\n",
" <summary style=\"margin-bottom: 20px;\">\n",
" <h3 style=\"display: inline;\">Scheduler Info</h3>\n",
" </summary>\n",
"\n",
" <div style=\"\">\n",
" <div>\n",
" <div style=\"width: 24px; height: 24px; background-color: #FFF7E5; border: 3px solid #FF6132; border-radius: 5px; position: absolute;\"> </div>\n",
" <div style=\"margin-left: 48px;\">\n",
" <h3 style=\"margin-bottom: 0px;\">Scheduler</h3>\n",
" <p style=\"color: #9D9D9D; margin-bottom: 0px;\">Scheduler-aec9e7c3-d306-41ff-adef-79b6d2ae756f</p>\n",
" <table style=\"width: 100%; text-align: left;\">\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Comm:</strong> tcp://127.0.0.1:64028\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Workers:</strong> 8\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Dashboard:</strong> <a href=\"http://127.0.0.1:64025/status\" target=\"_blank\">http://127.0.0.1:64025/status</a>\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Total threads:</strong> 128\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Started:</strong> Just now\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Total memory:</strong> 149.01 GiB\n",
" </td>\n",
" </tr>\n",
" </table>\n",
" </div>\n",
" </div>\n",
"\n",
" <details style=\"margin-left: 48px;\">\n",
" <summary style=\"margin-bottom: 20px;\">\n",
" <h3 style=\"display: inline;\">Workers</h3>\n",
" </summary>\n",
"\n",
" \n",
" <div style=\"margin-bottom: 20px;\">\n",
" <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
" <div style=\"margin-left: 48px;\">\n",
" <details>\n",
" <summary>\n",
" <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 0</h4>\n",
" </summary>\n",
" <table style=\"width: 100%; text-align: left;\">\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Comm: </strong> tcp://127.0.0.1:64070\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Total threads: </strong> 16\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:64073/status\" target=\"_blank\">http://127.0.0.1:64073/status</a>\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Memory: </strong> 18.63 GiB\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Nanny: </strong> tcp://127.0.0.1:64031\n",
" </td>\n",
" <td style=\"text-align: left;\"></td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align: left;\">\n",
" <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-a5t3uhr6\n",
" </td>\n",
" </tr>\n",
"\n",
" \n",
"\n",
" \n",
"\n",
" </table>\n",
" </details>\n",
" </div>\n",
" </div>\n",
" \n",
" <div style=\"margin-bottom: 20px;\">\n",
" <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
" <div style=\"margin-left: 48px;\">\n",
" <details>\n",
" <summary>\n",
" <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 1</h4>\n",
" </summary>\n",
" <table style=\"width: 100%; text-align: left;\">\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Comm: </strong> tcp://127.0.0.1:64064\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Total threads: </strong> 16\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:64067/status\" target=\"_blank\">http://127.0.0.1:64067/status</a>\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Memory: </strong> 18.63 GiB\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Nanny: </strong> tcp://127.0.0.1:64032\n",
" </td>\n",
" <td style=\"text-align: left;\"></td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align: left;\">\n",
" <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-axcwdu0y\n",
" </td>\n",
" </tr>\n",
"\n",
" \n",
"\n",
" \n",
"\n",
" </table>\n",
" </details>\n",
" </div>\n",
" </div>\n",
" \n",
" <div style=\"margin-bottom: 20px;\">\n",
" <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
" <div style=\"margin-left: 48px;\">\n",
" <details>\n",
" <summary>\n",
" <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 2</h4>\n",
" </summary>\n",
" <table style=\"width: 100%; text-align: left;\">\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Comm: </strong> tcp://127.0.0.1:64084\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Total threads: </strong> 16\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:64085/status\" target=\"_blank\">http://127.0.0.1:64085/status</a>\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Memory: </strong> 18.63 GiB\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Nanny: </strong> tcp://127.0.0.1:64033\n",
" </td>\n",
" <td style=\"text-align: left;\"></td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align: left;\">\n",
" <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-ewtdqzqy\n",
" </td>\n",
" </tr>\n",
"\n",
" \n",
"\n",
" \n",
"\n",
" </table>\n",
" </details>\n",
" </div>\n",
" </div>\n",
" \n",
" <div style=\"margin-bottom: 20px;\">\n",
" <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
" <div style=\"margin-left: 48px;\">\n",
" <details>\n",
" <summary>\n",
" <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 3</h4>\n",
" </summary>\n",
" <table style=\"width: 100%; text-align: left;\">\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Comm: </strong> tcp://127.0.0.1:64076\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Total threads: </strong> 16\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:64079/status\" target=\"_blank\">http://127.0.0.1:64079/status</a>\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Memory: </strong> 18.63 GiB\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Nanny: </strong> tcp://127.0.0.1:64034\n",
" </td>\n",
" <td style=\"text-align: left;\"></td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align: left;\">\n",
" <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-imeu1_9t\n",
" </td>\n",
" </tr>\n",
"\n",
" \n",
"\n",
" \n",
"\n",
" </table>\n",
" </details>\n",
" </div>\n",
" </div>\n",
" \n",
" <div style=\"margin-bottom: 20px;\">\n",
" <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
" <div style=\"margin-left: 48px;\">\n",
" <details>\n",
" <summary>\n",
" <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 4</h4>\n",
" </summary>\n",
" <table style=\"width: 100%; text-align: left;\">\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Comm: </strong> tcp://127.0.0.1:64075\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Total threads: </strong> 16\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:64077/status\" target=\"_blank\">http://127.0.0.1:64077/status</a>\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Memory: </strong> 18.63 GiB\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Nanny: </strong> tcp://127.0.0.1:64035\n",
" </td>\n",
" <td style=\"text-align: left;\"></td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align: left;\">\n",
" <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-y0dpc96g\n",
" </td>\n",
" </tr>\n",
"\n",
" \n",
"\n",
" \n",
"\n",
" </table>\n",
" </details>\n",
" </div>\n",
" </div>\n",
" \n",
" <div style=\"margin-bottom: 20px;\">\n",
" <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
" <div style=\"margin-left: 48px;\">\n",
" <details>\n",
" <summary>\n",
" <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 5</h4>\n",
" </summary>\n",
" <table style=\"width: 100%; text-align: left;\">\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Comm: </strong> tcp://127.0.0.1:64063\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Total threads: </strong> 16\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:64065/status\" target=\"_blank\">http://127.0.0.1:64065/status</a>\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Memory: </strong> 18.63 GiB\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Nanny: </strong> tcp://127.0.0.1:64036\n",
" </td>\n",
" <td style=\"text-align: left;\"></td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align: left;\">\n",
" <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-hrqxp7t9\n",
" </td>\n",
" </tr>\n",
"\n",
" \n",
"\n",
" \n",
"\n",
" </table>\n",
" </details>\n",
" </div>\n",
" </div>\n",
" \n",
" <div style=\"margin-bottom: 20px;\">\n",
" <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
" <div style=\"margin-left: 48px;\">\n",
" <details>\n",
" <summary>\n",
" <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 6</h4>\n",
" </summary>\n",
" <table style=\"width: 100%; text-align: left;\">\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Comm: </strong> tcp://127.0.0.1:64069\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Total threads: </strong> 16\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:64071/status\" target=\"_blank\">http://127.0.0.1:64071/status</a>\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Memory: </strong> 18.63 GiB\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Nanny: </strong> tcp://127.0.0.1:64037\n",
" </td>\n",
" <td style=\"text-align: left;\"></td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align: left;\">\n",
" <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-dv2tpx5b\n",
" </td>\n",
" </tr>\n",
"\n",
" \n",
"\n",
" \n",
"\n",
" </table>\n",
" </details>\n",
" </div>\n",
" </div>\n",
" \n",
" <div style=\"margin-bottom: 20px;\">\n",
" <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
" <div style=\"margin-left: 48px;\">\n",
" <details>\n",
" <summary>\n",
" <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 7</h4>\n",
" </summary>\n",
" <table style=\"width: 100%; text-align: left;\">\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Comm: </strong> tcp://127.0.0.1:64081\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Total threads: </strong> 16\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:64082/status\" target=\"_blank\">http://127.0.0.1:64082/status</a>\n",
" </td>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Memory: </strong> 18.63 GiB\n",
" </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align: left;\">\n",
" <strong>Nanny: </strong> tcp://127.0.0.1:64038\n",
" </td>\n",
" <td style=\"text-align: left;\"></td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align: left;\">\n",
" <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-e907936d\n",
" </td>\n",
" </tr>\n",
"\n",
" \n",
"\n",
" \n",
"\n",
" </table>\n",
" </details>\n",
" </div>\n",
" </div>\n",
" \n",
"\n",
" </details>\n",
"</div>\n",
"\n",
" </details>\n",
" </div>\n",
"</div>\n",
" </details>\n",
" \n",
"\n",
" </div>\n",
"</div>"
],
"text/plain": [
"<Client: 'tcp://127.0.0.1:64028' processes=8 threads=128, memory=149.01 GiB>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from dask.distributed import Client\n",
"client = Client(n_workers=8, threads_per_worker=16, processes=True, memory_limit='20GB')\n",
"client"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Start a client for Mongo DB"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import pymongo\n",
"import xarray_mongodb\n",
"\n",
"from DataContainer.MongoDB import MongoDB\n",
"\n",
"mongoClient = pymongo.MongoClient('mongodb://control:DyLab2021@127.0.0.1:27017/?authMechanism=DEFAULT')"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Set global path for experiment"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"groupList = [\n",
" \"images/MOT_3D_Camera/in_situ_absorption\",\n",
" \"images/ODT_1_Axis_Camera/in_situ_absorption\",\n",
" \"images/ODT_2_Axis_Camera/in_situ_absorption\",\n",
"]\n",
"\n",
"dskey = {\n",
" \"images/MOT_3D_Camera/in_situ_absorption\": \"camera_0\",\n",
" \"images/ODT_1_Axis_Camera/in_situ_absorption\": \"camera_1\",\n",
" \"images/ODT_2_Axis_Camera/in_situ_absorption\": \"camera_2\",\n",
"}\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"img_dir = 'C:/Users/control/DyLab/Experiments/DyBEC/'\n",
"SequenceName = \"Repetition_scan\"\n",
"folderPath = img_dir + SequenceName + \"/\" + get_date()\n",
"\n",
"mongoDB = mongoClient[SequenceName]\n",
"\n",
"DB = MongoDB(mongoClient, mongoDB, date=get_date())"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# Repetition Scans"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## scan MOT freq"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The detected scaning axes and values are: \n",
"\n",
"{'initial_freq': array([102. , 102.25, 102.5 , 102.75, 103. , 103.25, 103.5 , 103.75,\n",
" 104. , 104.25, 104.5 , 104.75]), 'runs': array([0., 1., 2.])}\n"
]
},
{
"data": {
"application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n rubberband_canvas.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.rubberband_canvas.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from https://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n",
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAAXNSR0IArs4c6QAAIABJREFUeF7tnQu4lUX1h9cBAcG4g4SAYgooWuAlAU2TFAgfEkRDoFLIgLwkCCpiXqAUJUAwb0CmIsqlfETARMEUMRHvkiWg5o1bkgikofiXzv9Zk3u7z429zz6zZvY++53n6QnZ863f972zzjo/Zr6ZXVRcXFwsNAhAAAIQgAAEIACBgiFQhAEsmLHmQSEAAQhAAAIQgIAjgAEkESAAAQhAAAIQgECBEcAAFtiA87gQgAAEIAABCEAAA0gOQAACEIAABCAAgQIjgAEssAHncSEAAQhAAAIQgAAGkByAAAQgAAEIQAACBUYAA1hgA87jQgACEIAABCAAAQwgOQABCEAAAhCAAAQKjAAGsMAGnMeFAAQgAAEIQAACGEByAAIQgAAEIAABCBQYAQxggQ04jwsBCEAAAhCAAAQwgOQABCAAAQhAAAIQKDACGMACG3AeFwIQgAAEIAABCGAAcyAH/vvf/8rmzZulfv36UlRUlAN3xC1AAAIQgAAEIJDLBIqLi+Xjjz+WAw44QGrUqFHpW8UAVhqZ/ws2btwobdq08R+YiBCAAAQgAAEIVGsCGzZskNatW1f6GTGAlUbm/4KdO3dKo0aNRAexQYMG3gX+7//+T5YtWyY9e/aUWrVqeY9fyAFhazf6sIWtHQG7yOQtbO0IlIz873//200e7dixQxo2bFhpWQxgpZH5v0AHUQdPjaCVAXzkkUfktNNOwwB6Hj4t9rD1DPXLcLC14apRYQtbOwJ2kcnbsgawKt4BA2iXqxlHxgBmjCrnOlKQ7IYEtrC1I2AXmbyFrR0BDGAotsF0MIDBUHsXoth7R5oMCFvY2hGwi0zewtaOAAYwFNtgOhjAYKi9C1HsvSPFANohhS1sAxCwk6DeYgDtsitSZAxgJPAeZClIHiBWEAK2sLUjYBeZvIWtHQEMYCi2wXQwgMFQexei2HtHyiyVHVLYwjYAATsJ6i0G0C67IkXGAEYC70GWguQBIjOAdhBhC9vgBOwEqbcYQLvsihQZAxgJvAdZCpIHiJgUO4iwhW1wAnaC1FsMoF12RYqMAYwE3oMsBckDREyKHUTYwjY4ATtB6i0G0C67IkXGAEYC70GWguQBIibFDiJsYRucgJ0g9baaG8CVK1fK5MmT5aWXXpItW7bIwoULpV+/fu6pdfCvuuoq980Lb7/9tvv2jFNPPVVuvPFG92XIibZ792659NJLZd68efLpp5/KKaecIrfffnuJ78rbvn27XHzxxbJ48WJ32emnny633HKL+0q2RHv//fflwgsvlCeeeELq1q0rgwcPlilTpkjt2rWTfV577TW56KKL5Pnnn5cmTZrIiBEj5Oqrr5aioqKMfwowgBmjyrmOFCS7IYEtbO0I2EUmb2FrR6CaG8ClS5fKM888I0cffbSceeaZJQygflXaWWedJcOGDZNOnTqJmrhRo0bJF198IS+++GKSzPnnny9LliyRe+65R5o2bSpjxoyRjz76yJnKmjVrun69e/eWjRs3yqxZs9x/Dx8+XNq2beuu07Znzx7p3LmzNG/eXKZOnSrbtm2Tc889V/r37++MojY1bu3bt5fu3bvLL3/5S3njjTdkyJAhcu211zrNTBsGMFNSudePYm83JrCFrR0Bu8jkLWztCFRzA5j6eDqLljoDWB7UF154QY477jh577335MADD3Tfp6umbc6cOXL22We7SzZv3uy+MFlnDnv16iVr166Vjh07yurVq6VLly6uj/65W7dusm7dOunQoYOoEe3Tp49s2LAhObs4f/58Z/C2bt3qvrP3jjvukHHjxskHH3wgderUcXF0NlINoprLTGcBMYChflz861Ds/TNNRIQtbO0I2EUmb2FrRwADWILA448/Lj179pQdO3Y4U6bLtbrkqzN+jRs3TvbVGUNdSp4wYYLcddddMnr0aHdNatPl32nTpsnQoUPlmmuukUWLFsmaNWuSXXTGUZd5VUNn/c455xxnOLVfor3yyitu9lKXqA8++OBy80CXqPV/iaYGUA3qhx9+6J7Bd9OCtHz5cunRo4fUqlXLd/iCjgdbu+GHLWztCNhFJm9ha0egrAFs1qyZ8yHZeIei4uLi4lA3W1mddDOAn332mXznO9+Rww47TO677z4Xfu7cuc7ApRos/Xs1iWrIZs6cKRMnTnTLw7pkm9p0OVev1Vk9XRJ+9913ZdmyZSX66EyfXjto0CAXU5eNE8vI2lFnG1u1aiWrVq1yM4rltfHjxzsjWrrpvderV6+ymOgPgbQE9uwRef31prJ9+77SuPFn0rHjNvnybYi019IBAhCAAARyj8CuXbvc3oSCM4D6r6wf/vCHohs1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AnlKAAOYpwPHbUMAAhCAAAQgAIFsCWAAsyXHdRCAAAQgAAEIQCBPCWAA83TguG0IQAACEIAABCCQLQEMYLbkuA4CEIAABCAAAQjkKQEMYJ4OHLcNAQhAAAIQgAAEsiWAAcyWHNdBAAIQgAAEIACBPCWAAczTgeO2IQABCEAAAhCAQLYEMIDZkuM6CEAAAhCAAAQgkKcEMIB5OnDcNgQgAIEYBH7/+9+7r+pbtmxZDPmk5re//W0ZN26c9O/fP+p9IA6BfCWAAczXkeO+IVBNCOjXEM6ePVtGjBgh+v3Tqe2CCy6QO+64QxJfc5b4bMOGDe6rC5cuXeq+Vq9ly5bSr18/93VxTZs2lXfffVcOPvjgvRK69tprS3z9YenOc+fOlZ/85CcybNiwMvelfT/66CP51a9+JQ899JDo16up7ve//32ZMGGC+67nRMvm+VLvpaKv0PrlL3/pvks6ZNu9e7d8mXkVWwAACa9JREFU4xvfkPnz58uJJ57opHUc9Jl79eoljz76aInb0a+THDt2rHz3u991X02Z6K/MXn311RJ9E2P2yiuvSOfOndM+1uLFi0W/53XdunVSo0aNtP3pAAEIlCSAASQjIACBqATUID3xxBPy73//2333dN26dd39fPbZZ87YNWjQwH0ntn7/tba3335bunXrJu3bt3cGSI3e3//+d7nsssvk888/l9WrV0vDhg3lX//6V/K5pkyZ4szJ448/nvy7r33ta6L/q6ideuqporNMakDV4NWrVy/ZVc2ffo9z7dq13Xdm6/dlq4G56qqrZP369fLss886o6Stss9X+n4SBlDjKotEK+/+9+zZI0VFRWaGSE2xmj29l0RTAzhr1izZtm2b/OMf/5DWrVsnPzv88MNl165dbox8G0B91gMOOMDlRe/evaPmMOIQyEcCGMB8HDXuGQLViIAapB07djhjp7NFP/rRj9zTqdm48cYbnZFq1KhR0gDqL/u//e1v8sYbbyTNovb/5z//KYcccoicc845zrSlNjUp5c06VYRRzVzHjh2dIdWZLZ2J1LiJdv7558ucOXPkrbfekq9//evJv//000+lXbt28s1vftPNTiYMYGWeryIDuH37dschtan5GTVqlNx3331y+eWXOyZvvvmmtGrVypnR+++/37FVgzpp0iQ5+eSTk5frtTpjqjOo+ozf+c535Ne//rXr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\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib notebook\n",
"shotNum = \"0000\"\n",
"filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
"\n",
"dataSetDict = {\n",
" dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
" for i in range(len(groupList))\n",
"}\n",
"\n",
"dataSet = dataSetDict[\"camera_1\"]\n",
"\n",
"print_scanAxis(dataSet)\n",
"\n",
"scanAxis = get_scanAxis(dataSet)\n",
"\n",
"dataSet = auto_rechunk(dataSet)\n",
"\n",
"dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
"\n",
"imageAnalyser.center = (310, 825)\n",
"imageAnalyser.span = (550, 1250)\n",
"imageAnalyser.fraction = (0.1, 0.1)\n",
"\n",
"dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
"dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
"\n",
"Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
"Ncount_mean = calculate_mean(Ncount)\n",
"Ncount_std = calculate_std(Ncount)\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.gca()\n",
"Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
"plt.xlabel('MOT AOM Freq (MHz)')\n",
"plt.ylabel('NCount')\n",
"plt.tight_layout()\n",
"plt.grid(visible=1)\n",
"plt.show()\n",
"\n",
"# DB.create_global(shotNum, dataSet)\n",
"# DB.add_data(shotNum, dataSet_cropOD, engine='xarray')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"dataSet_cropOD.plot.pcolormesh(cmap='jet', vmin=0, vmax=2, col=scanAxis[0], row=scanAxis[1])"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## scan Push freq"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The detected scaning axes and values are: \n",
"\n",
"{'push_freq': array([101.1, 101.6, 102.1, 102.6, 103.1, 103.6, 104.1, 104.6, 105.1,\n",
" 105.6, 106.1]), 'runs': array([0., 1., 2.])}\n"
]
},
{
"data": {
"application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n rubberband_canvas.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.rubberband_canvas.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from https://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n",
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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U+fOnWnSpEk0YcIEeuyxx+iMM86gO+64g9auXUuvv/461apVy/W76qqraMmSJa7NySefTCNHjqR9+/bRhg0bqFKlSq5Njx49aPv27c5I8jVkyBBi88n9+OI5tG3blho0aEBTpkyhvXv30sCBA6l3797OKAa9pEm0IsKg60xaO/DXzSj4g78uAd3o0L8efyvspd4h1gawdNqvu+46Wrp0Kb3xxhvuR40bNyb+s9GjR7t/52rfKaec4ozh0KFD6cCBA860zZ49m/r27eva7Ny5k5o2bUrLli2j7t270+bNm6l169a0fv16V0Hki/+5Y8eOtGXLFmrVqhUtX76cevbsSe+//76Lyde8efPosssuo927d9NJJ50USKHSJFoRYaBFJrAR+OsmFfzBX5eAbnToX4+/FfZS75AYA/jZZ5858zVixAi6+eab6e2336YWLVrQxo0bqV27dsUK6dWrl9u6nTVrltuu5S1frvjVrVu3uE2bNm3ooosuctvHjzzyiBtz//79JVTGY0ydOpUGDRpEY8eOpUWLFtGmTZuK2/C2cb169VyMLl26BFKoNIlWRBhokQlsBP66SQV/8NcloBsd+tfjb4W91DskxgA+9dRT7rk7fhaPjeC6deuoU6dOtGPHjuKqHC+Wt2/5ucEVK1bQnDlznIHjymD61a1bN2revDnNnDmTJk6c6LaHt27dWqINbylz35tuusmN+e6779LKlStLtKlatarr279//zIVynHTY3MSufq4Z8+ewFVDHphFuGrVKrf9XblyZb3fhgKNDP66iQd/8NcloBsd+tfjb4U9e4f69eu7Xc2gO47p1CoU8YmJGF+8XcsHLlLP5aUMIG/pNmrUqHhlgwcPdlu1zzzzzHENIBsprh4+9NBDzgBytZCfG0y/WrZsSVdccQWNGTOmhKlMb8Pzefzxx6lfv35lkh03bpyrMpa+2JhWr149xtnA1EEABEAABEAABPJB4PDhw64AVpAGkCt6X/7yl2nhwoXEW7x8xWELuHQFkJN32mmn0TvvvFN8SCWIePhvIXzwhbeaUQEMQsxvG/D3yzPX0cA/V2J+24O/X565jgb+uRLz194K+48//tjtWvKjarVr1855gbGuAHIljbdrubJ3wgknuMVzQZO3gq+//nq68cYb3Z/xc4INGzbMOATyxBNPUJ8+fVybXbt2uVfAlD4E8uKL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\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib notebook\n",
"shotNum = \"0001\"\n",
"filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
"\n",
"dataSetDict = {\n",
" dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
" for i in range(len(groupList))\n",
"}\n",
"\n",
"dataSet = dataSetDict[\"camera_1\"]\n",
"\n",
"print_scanAxis(dataSet)\n",
"\n",
"scanAxis = get_scanAxis(dataSet)\n",
"\n",
"dataSet = auto_rechunk(dataSet)\n",
"\n",
"dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
"\n",
"imageAnalyser.center = (310, 825)\n",
"imageAnalyser.span = (550, 1250)\n",
"imageAnalyser.fraction = (0.1, 0.1)\n",
"\n",
"dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
"dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
"\n",
"Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
"Ncount_mean = calculate_mean(Ncount)\n",
"Ncount_std = calculate_std(Ncount)\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.gca()\n",
"Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
"plt.xlabel('Push AOM Freq (MHz)')\n",
"plt.ylabel('NCount')\n",
"plt.tight_layout()\n",
"plt.grid(visible=1)\n",
"plt.show()\n",
"\n",
"# DB.create_global(shotNum, dataSet)\n",
"# DB.add_data(shotNum, dataSet_cropOD, engine='xarray')"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## scan Z comp current"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The detected scaning axes and values are: \n",
"\n",
"{'compZ_final_current': array([0.248, 0.249, 0.25 , 0.251, 0.252, 0.253, 0.254, 0.255, 0.256,\n",
" 0.257, 0.258]), 'runs': array([0., 1., 2.])}\n"
]
},
{
"data": {
"application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n rubberband_canvas.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.rubberband_canvas.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from https://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n",
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib notebook\n",
"shotNum = \"0002\"\n",
"filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
"\n",
"dataSetDict = {\n",
" dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
" for i in range(len(groupList))\n",
"}\n",
"\n",
"dataSet = dataSetDict[\"camera_1\"]\n",
"\n",
"print_scanAxis(dataSet)\n",
"\n",
"scanAxis = get_scanAxis(dataSet)\n",
"\n",
"dataSet = auto_rechunk(dataSet)\n",
"\n",
"dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
"\n",
"imageAnalyser.center = (305, 870)\n",
"imageAnalyser.span = (400, 400)\n",
"imageAnalyser.fraction = (0.1, 0.1)\n",
"\n",
"dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
"dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
"\n",
"Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
"Ncount_mean = calculate_mean(Ncount)\n",
"Ncount_std = calculate_std(Ncount)\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.gca()\n",
"Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
"plt.xlabel('comp Z current (A)')\n",
"plt.ylabel('NCount')\n",
"plt.tight_layout()\n",
"plt.grid(visible=1)\n",
"plt.show()\n",
"\n",
"# DB.create_global(shotNum, dataSet)\n",
"# DB.add_data(shotNum, dataSet_cropOD, engine='xarray')"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## scan cMOT final amp"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The detected scaning axes and values are: \n",
"\n",
"{'final_amp': array([3.00e-05, 5.50e-05, 8.00e-05, 1.05e-04, 1.30e-04, 1.55e-04,\n",
" 1.80e-04, 2.05e-04, 2.30e-04, 2.55e-04, 2.80e-04]), 'runs': array([0., 1., 2.])}\n"
]
},
{
"data": {
"application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n rubberband_canvas.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.rubberband_canvas.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from https://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n",
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib notebook\n",
"shotNum = \"0003\"\n",
"filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
"\n",
"dataSetDict = {\n",
" dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
" for i in range(len(groupList))\n",
"}\n",
"\n",
"dataSet = dataSetDict[\"camera_1\"]\n",
"\n",
"print_scanAxis(dataSet)\n",
"\n",
"scanAxis = get_scanAxis(dataSet)\n",
"\n",
"dataSet = auto_rechunk(dataSet)\n",
"\n",
"dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
"\n",
"imageAnalyser.center = (306, 872)\n",
"imageAnalyser.span = (400, 400)\n",
"imageAnalyser.fraction = (0.1, 0.1)\n",
"\n",
"dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
"dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
"\n",
"Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
"Ncount_mean = calculate_mean(Ncount)\n",
"Ncount_std = calculate_std(Ncount)\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.gca()\n",
"Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
"#plt.xlabel('comp Z current (A)')\n",
"plt.ylabel('NCount')\n",
"plt.tight_layout()\n",
"plt.grid(visible=1)\n",
"plt.show()\n",
"\n",
"# DB.create_global(shotNum, dataSet)\n",
"# DB.add_data(shotNum, dataSet_cropOD, engine='xarray')"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# Evaporative Cooling"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"img_dir = '//DyLabNAS/Data/'\n",
"SequenceName = \"Evaporative_Cooling\" + \"/\"\n",
"folderPath = img_dir + SequenceName + '2023/06/29'# get_date()\n",
"\n",
"# mongoDB = mongoClient[SequenceName]\n",
"\n",
"# DB = MongoDB(mongoClient, mongoDB, date=get_date())"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# Check BEC"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The detected scaning axes and values are: \n",
"\n",
"{'runs': array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])}\n"
]
},
{
"data": {
"image/png": "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zMpUXacPHgCzZontSZMAV9eqnY+IiEitmLyRWcnJ244dQGam8edZvBhITQXq1wdGjzZJaERERKrE5I3MKiQEaNRIzBKNizPuHPfvl2x102pNFx8REZHaMHkjszLFaguLFgHXrgGBgcCoUaaLjYiISI2YvJHZFV9tIT+/cs/NyQHmzBHb77/PVjciIiImb2R2XbsCtWoBt28D+/ZV7rlffw1cvw4EBwMjR5ojOiIiInVh8kZm5+wsar4Bles6zc4GPv5YbH/wgVi1gYiIyN4xeSOLMGbc21dfibVRGzQAXnjBPHERERGpDZM3soh+/QBHRyAlRSwqX5GsrKJWt8mTResdERERMXkjC6lTR4x9AwxrfVuwQIyRa9QIGDHCvLERERGpCZM3shhDu04zM4FPPxXbkycDTk7mjYuIiEhNmLyRxcjJW2IikJFR9nFffgmkpQGNGwN/+5tlYiMiIlILJm9kMY0bi386HbBli/5jMjKAzz4T2x9+yFY3IiKiRzF5I4uqqOv0X/8C7twBmjQBnn3WcnERERGpheLJW2ZmJiZMmIDevXvD29sbGo0GU6dOLXXcrl27MHr0aISGhkKr1UKj0eDChQuljvvjjz/w9ttvIzQ0FLVr14aHhwe6dOmC1atX673+zZs3MXLkSHh5ecHNzQ1hYWFISEgw8askmZy8bd5cerWFu3eBzz8X21OmiNmpREREVJLiyVtaWhoWLVqE3NxcREdHl3lcQkICtm7disDAQHTu3LnM4+Li4rBp0yYMGTIEq1atwooVK/D4448jJiYG06dPL3Fsbm4uevXqhYSEBMyfPx8///wzfH190bdvXyQmJprqJVIxXbqImadpacCePSUfmz9fJHDNmgExMYqER0REZPUUH1EUFBSEO3fuQKPR4Pbt21i8eLHe4yZPnowpU6YAAD777DPs2LFD73HPPvssxo4dC41GU7ivX79+uH37Nj7++GO8++670P61QOaSJUuQnJyM3bt3IywsDADQo0cPtG7dGhMmTMC+yq7lRBVychI131auFF2ncvmQO3eAuXPFNlvdiIiIyqZ4y5tGoymRaJXFwcGwUL28vPSer0OHDsjJyUF6enrhvnXr1iEkJKQwcQMAJycnjBgxAvv370dqaqpB16TK0Tfu7YsvxGSFFi2AoUOViYuIiEgNFG95s5Tt27fD29sbPj4+hfuSk5PRrVu3Use2atUKAJCSkgJ/f3+958vNzUVubm7h9xl/1b7Q6XTQ6XSmDL3wvMW/qlmvXiJJPnlSg1OndKhTB5g3zwmABh98kIf8fKnUeDg1saV7ZQ94v9SD90o9eK+MY+j7ZRfJ2+LFi7Fjxw7Mnz8fjsX649LS0uDh4VHqeHlfWlpameecPXs2pk2bVmp/XFwc3NzcTBC1fvHx8WY7tyU1bdoZSUneePPNy0hLq4bMzHoICroHF5cd2LxZ6ehMw1bulb3g/VIP3iv14L2qnJycHIOOs/nkLTY2FmPHjsXQoUMxbty4Uo+X12Vb3mMTJ07Em2++Wfh9RkYGAgIC0Lt3b7i7u1ctaD10Oh3i4+MRGRkJZxtY6HPtWgckJQGxsQ0K92VluUOn649BgyQFI6s6W7tXto73Sz14r9SD98o4GeVVsC/GppO3LVu2YPDgwYiMjMSKFStKJWOenp56W9fkcXH6WuVkWq22cOJDcc7Ozmb9j2ru81vC2rXA99+X3p+ersGzzzph9Wpg8GDLx2VqtnCv7Anvl3rwXqkH71XlGPpeKT5hwVy2bNmC6OhohIeHY82aNXBxcSl1TMuWLZGUlFRqv7yvRYsWZo/T3uTnA2+8AUh6GtfkfePHl64BR0RERIJNJm9xcXGIjo5G165dsX79er0tZAAwaNAgnDp1qkRJkLy8PCxfvhwdO3aEn5+fpUK2G7/9Bly5UvbjkgRcviyOIyIiotKsots0NjYW2dnZyMzMBACcOHGicEWEqKgouLm54datW4WFc+WWsdjYWHh7e8Pb2xvh4eEAxEoM0dHRqFu3LiZNmoSjR4+WuFazZs0Kx6SNGjUKCxYsQExMDObMmQMfHx8sXLgQp0+fxtatWy3x0u3OtWumPY6IiMjeWEXy9uqrr+LixYuF369atQqrVq0CAJw/fx7BwcFISUlBzCNl98eMGQMACA8PLyzau3XrVty/fx8XLlxAz549S11r+/btiIiIACDGrSUkJGDChAkYN24ccnJy0KZNG8TGxhYmg2Ra9eqZ9jgiIiJ7YxXJm741Sh8VEREBSd9AqUdMnTpV79qoZfH19cWyZcsMPp6qpls3oH59IDVV/7g3jUY8rqf8HhEREcFGx7yR9XJ0FGuYAiJRK07+ft48Lo9FRERUFiZvZHGDBwOrVwOPLl5Rvz5spkwIERGRuVhFtynZn8GDgaefFrNKr10TY9y6dWOLGxERUUWYvJFiHB2Bv+aOEBERkYHYbUpERESkIkzeiIiIiFSEyRsRERGRijB5IyIiIlIRJm9EREREKsLkjYiIiEhFmLwRERERqQiTNyIiIiIVYfJGREREpCJM3oiIiIhUhMtjmYgkSQCAjIwMs5xfp9MhJycHGRkZcHZ2Nss1yDR4r9SF90s9eK/Ug/fKOHIOIecUZWHyZiKZmZkAgICAAIUjISIiIjXLzMxErVq1ynxcI1WU3pFBCgoKcPXqVdSsWRMajcbk58/IyEBAQAAuX74Md3d3k5+fTIf3Sl14v9SD90o9eK+MI0kSMjMz4efnBweHske2seXNRBwcHFC/fn2zX8fd3Z0/CCrBe6UuvF/qwXulHrxXlVdei5uMExaIiIiIVITJGxEREZGKMHlTCa1WiylTpkCr1SodClWA90pdeL/Ug/dKPXivzIsTFoiIiIhUhC1vRERERCrC5I2IiIhIRZi8EREREakIkzcrl5WVhfHjx8PPzw+urq5o06YN/ve//ykdFj1i27ZtGDVqFJo0aYLq1avD398fTz/9NA4dOqR0aGSAxYsXQ6PRoEaNGkqHQmXYtWsXoqKiUKdOHVSrVg2PP/44PvroI6XDokccOXIE0dHR8PPzg5ubG5o0aYLp06cjJydH6dBsCov0WrnBgwfjwIEDmDNnDho3boyVK1di+PDhKCgowN/+9jelw6O/fPXVV0hLS8Mbb7yBZs2a4datW/j888/RqVMnbNmyBT179lQ6RCpDamoq3n77bfj5+eHevXtKh0N6rFy5Es8//zyeeeYZfPfdd6hRowbOnj2Lq1evKh0aFXPixAl07twZISEhmDdvHry8vLBz505Mnz4dhw4dws8//6x0iDaDs02t2ObNm9G/f//ChE3Wu3dvpKSk4NKlS3B0dFQwQpLdvHkTPj4+JfZlZWWhUaNGaNGiBbZu3apQZFSRgQMHQqPRwMPDA6tXr0ZWVpbSIVExqampCAkJwQsvvICFCxcqHQ6V44MPPsDMmTPx559/omHDhoX7/+///g+LFi1Ceno66tSpo2CEtoPdplZs3bp1qFGjBmJiYkrsf+mll3D16lXs27dPocjoUY8mbgBQo0YNNGvWDJcvX1YgIjLE8uXLkZiYyKTAii1evBjZ2dl49913lQ6FKuDs7Ayg9PJOtWvXhoODA1xcXJQIyyYxebNiycnJaNq0KZycSvZut2rVqvBxsl737t3D4cOH0bx5c6VDIT1u3ryJ8ePHY86cORZZl5iMs3PnTnh4eODUqVNo06YNnJyc4OPjg3/84x/IyMhQOjwq5sUXX0Tt2rXx6quv4ty5c8jMzMTGjRvxzTffYOzYsahevbrSIdoMJm9WLC0tDR4eHqX2y/vS0tIsHRJVwtixY5GdnY33339f6VBIjzFjxiAkJASvvvqq0qFQOVJTU5GTk4OYmBgMGzYMW7duxTvvvIPvvvsOUVFR4Mgf6xEcHIw9e/YgOTkZDRs2hLu7OwYOHIgXX3wR8+fPVzo8m8IJC1ZOo9EY9Rgpa/LkyVixYgW+/PJLhIaGKh0OPWLNmjXYsGEDjhw5wp8jK1dQUIAHDx5gypQpeO+99wAAERERcHFxwfjx45GQkIAnn3xS4SgJAC5cuICBAwfC19cXq1evhre3N/bt24cZM2YgKysLS5YsUTpEm8HkzYp5enrqbV1LT08HAL2tcqS8adOmYcaMGZg5cyZee+01pcOhR2RlZWHs2LEYN24c/Pz8cPfuXQDAw4cPAQB3796Fs7Mzu3ishKenJ86cOYM+ffqU2N+vXz+MHz8ehw8fZvJmJd577z1kZGTg6NGjhT8/3bt3h5eXF0aNGoUXXngB4eHhCkdpG9htasVatmyJkydPIi8vr8T+pKQkAECLFi2UCIvKMW3aNEydOhVTp07FpEmTlA6H9Lh9+zZu3LiBzz//HHXq1Cn898MPPyA7Oxt16tTBc889p3SY9Bd5jO+j5O5SBwf+GrMWR48eRbNmzUr94fPEE08A4DhtU+L/eis2aNAgZGVlYc2aNSX2L1u2DH5+fujYsaNCkZE+H330EaZOnYoPPvgAU6ZMUTocKkPdunWxffv2Uv/69OkDV1dXbN++HTNmzFA6TPrLkCFDAACxsbEl9m/evBkA0KlTJ4vHRPr5+fkhJSWlVLmdPXv2AAAnBpkQ67xZud69e+PgwYP4+OOP0ahRI/zwww/4z3/+g+XLl7N1wIp8/vnnePvtt9G3b1+9iRt/wVi/kSNHss6blXrqqacQFxeHDz74AJ06dcLBgwcxbdo0PPnkk9iwYYPS4dFffvnlF0RHR6Njx4745z//CS8vL+zduxezZ89GYGAgjhw5wnIhJsLkzcplZWXh/fffx08//YT09HQ0adIEEydOxLPPPqt0aFRMREQEEhMTy3ycP2bWj8mb9bp//z6mTZuGlStX4tq1a/Dz88Nzzz2HKVOmQKvVKh0eFbN9+3bMmTMHx48fx7179xAQEICBAwdi4sSJ8PT0VDo8m8HkjYiIiEhFOOaNiIiISEWYvBERERGpCJM3IiIiIhVh8kZERESkIkzeiIiIiFSEyRsRERGRijB5IyIiIlIRJm9EREREKsLkjYjs3siRI6HRaMr9FxwcrHSYipg1axbWr19fqeecPXsWWq22cE3LRw0ePBgajQavvfaa3scTEhJQo0YNpKamVjZcIrvAFRaIyO6dPXsWt27d0vvY0qVL8c0332D8+PH44osvLByZ8mrUqIGhQ4di6dKlBj9n0KBB0Ol02LhxY6nHbt68ifr160On06F27dq4du0aXF1dSx3Xs2dPBAQEYNmyZVUJn8gmseWNiOxew4YN0alTp1L/AODbb79F9+7d8emnnyocpVjjUx+dToe8vDwLR6PfyZMnsX79eowbN07v49999x10Oh369++Pu3fvYu3atXqPGzt2LFasWIHLly+bM1wiVWLyRkRGO3XqFIYPHw5fX19otVoEBgbihRdeQG5ubuExycnJePrpp1GnTh24urqiTZs2pVpTduzYAY1Gg5UrV+Ldd99FvXr1UKNGDQwcOBA3btxAZmYmXnnlFXh5ecHLywsvvfRSqQXk5W64b775Bo0bN4ZWq0WzZs3wv//9z6jXdv36dQwZMgTe3t746aef4OTkVOX3Y+rUqdBoNKWet3TpUmg0Gly4cKFwX3BwMAYMGIC1a9eibdu2cHV1xbRp0wrfq++//x5vvfUW/P39odVq8eeffwIAtm7dil69esHd3R1ubm7o0qULEhISSlxPjiMlJQXDhw9HrVq14Ovri1GjRuHevXuFx2k0GmRnZ2PZsmWF3ccRERHlvgdfffUV6tati8jISL2P//e//4Wvry+WLVuGatWq4b///a/e4wYOHIgaNWrgP//5T7nXI7JHFX8aERHpcezYMXTt2hVeXl6YPn06Hn/8cVy7dg2//PILHj58CK1Wi9OnT6Nz587w8fHBv/71L3h6emL58uUYOXIkbty4gQkTJpQ456RJk9CjRw8sXboUFy5cwNtvv43hw4fDyckJrVu3xg8//IAjR45g0qRJqFmzJv71r3+VeP4v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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"shotNum = \"0002\"\n",
"filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
"\n",
"dataSetDict = {\n",
" dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
" for i in [0]\n",
"}\n",
"\n",
"dataSet = dataSetDict[\"camera_0\"]\n",
"\n",
"print_scanAxis(dataSet)\n",
"\n",
"scanAxis = get_scanAxis(dataSet)\n",
"\n",
"dataSet = auto_rechunk(dataSet)\n",
"\n",
"dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
"\n",
"imageAnalyser.center = (880, 980)\n",
"imageAnalyser.span = (80, 80)\n",
"imageAnalyser.fraction = (0.1, 0.1)\n",
"\n",
"dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
"dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
"\n",
"Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
"Ncount_mean = Ncount#calculate_mean(Ncount)\n",
"Ncount_std = None#calculate_std(Ncount)\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.gca()\n",
"Ncount_mean.plot.errorbar(ax=ax, yerr = None, fmt='-ob')\n",
"plt.xlabel('comp Z current (A)')\n",
"plt.ylabel('NCount')\n",
"plt.tight_layout()\n",
"plt.grid(visible=1)\n",
"plt.show()\n",
"\n",
"# DB.create_global(shotNum, dataSet)\n",
"# DB.add_data(shotNum, dataSet_cropOD, engine='xarray')"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<xarray.plot.facetgrid.FacetGrid at 0x2821278a490>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAACnoAAAEcCAYAAADqLPiTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9e7ydRXn3j187RxKSEEIACaclB0EKGE8IChjq+UA9f7WtrYdaT2jVXz1rRdRWtPI81ra2Wn0q1WopWPs8ImgrFVQUT5AKFVDQpZwkHLIlgXDYSX5/7HWt9Vkrn8+euXfWTnb2/rxfr7z2ZNZ9z8w9M9fMNXPfc10jW7du3RrGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxZtoxZ2cXwBhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcZw/KGnMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjzDTFH3oaY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGTFP8oacxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGPMNMUfehpjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcZMU/yhpzHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY8w0xR96GmOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxkxT/KGnMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjzDTFH3oaY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGTFP8oaeZ9WzcuDHe+MY3xqpVq2K33XaL1atXx7/8y79U379u3bp46UtfGitXrozFixfHCSecEBdddNEUltgYM8iGDRvirW99azz5yU+OvffeO0ZGRuK9731vozQsy8bsfP7rv/4rXv7yl8eRRx4Zu+++e+y///7xrGc9K370ox9Vp2FZNmbns3bt2njGM54RBx10UCxatChWrFgRJ5xwQnzuc5+rTsOybMz04lOf+lSMjIzEkiVLqu+xHBuz87n44otjZGSE/rvsssuq0rAsGzN9+Pa3vx1Pf/rTY88994xFixbF4YcfHu9///ur7rUsG7PzeelLXyrn5dq52bJszPTgiiuuiGc/+9mxatWqWLx4cRx55JHxvve9L+65556q+y3Lxux8vv/978dTnvKUWLp0aSxZsiROOeWUuPTSS6vvtxwbY3YW/tDTzHqe+9znxtlnnx2nn356XHjhhfHoRz86fvd3fzc+//nPF++977774glPeEJcdNFF8Vd/9Vfxf//v/4199903nvrUp8Yll1yyA0pvjImIuOOOO+KTn/xk3HffffHsZz+78f2WZWOmB3/3d38X7XY73vCGN8QFF1wQf/VXfxXr1q2L448/Pv7rv/6reL9l2ZjpwejoaBx44IHxF3/xF3HBBRfEP/3TP0Wr1Yo/+IM/iA984APF+y3Lxkwvbrrppnjzm98cq1atqr7HcmzM9OIv/uIv4rvf/W7fv6OPPrp4n2XZmOnD5z//+Xj84x8fe+yxR/zTP/1TXHDBBfG2t70ttm7dWrzXsmzM9ODP/uzPtpmPv/vd78bKlStj//33j0c/+tET3m9ZNmZ68JOf/CQe+9jHRrvdjo9+9KNx/vnnx4te9KJ43/veF7/7u79bvN+ybMzO5wc/+EGcfPLJsWnTpvjsZz8bn/3sZ+Pee++NJzzhCfHd7363eL/l2BizMxnZWrMTYGYt99xzTyxevHhnF2PKuOCCC+IZz3hGfP7zn+9Tvp/85CfH//zP/8SvfvWrmDt3rrz/4x//eJx22mnxne98J0444YSIiBgbG4uHPexhsWTJkvje97435c9gTA0zXZZzKhsZGYnbb7899t577zj99NOrrXpals2uwkyX5XXr1sU+++zTF7dx48Y47LDD4uijj46vf/3rE95vWTa7CjNdlhXHH3983HzzzfGrX/1qwussy2ZXYDbJ8amnnhojIyOxYsWKOO+882Ljxo3FeyzHZldhpsvyxRdfHKecckqce+658fznP7/x/ZZls6sw02X5pptuiiOOOCL+8A//MD7+8Y83vt+ybHYVZrosMy655JJYs2ZNvPvd7y5a6LUsm12FmS7L7373u+PP//zP47rrrotDDz20G/+qV70qPvnJT8add94Ze+65p7zfsmx2BWa6HD/1qU+NtWvXxs9//vPuc27YsCEOOeSQeMhDHlK07Gk5NsbsTGzR03R573vfGyMjI3H55ZfH85///Nhzzz27CuqaNWtizZo129zz0pe+NFqtVvf/7XY7RkZG4iMf+Uj8r//1v+LBD35wLFmyJE444YRt3E78/Oc/jxe96EWxatWqWLhwYey7777xhCc8IdauXTuFT9nPl770pViyZEm84AUv6It/2cteFjfffHNxEv7Sl74URxxxRHcCj4iYN29evPjFL47vf//7cdNNN01JuY2ZiNkoy+neZrJYls10ZDbK8uBHnhERS5YsiaOOOipuuOGG4v2WZTMdmY2yrFi5cmXMmzeveJ1l2Uw3ZrMcf+5zn4tLLrmk8UcllmMzHZnNsjxZLMtmOjIbZflTn/pU3H333fG2t71tUvdbls10ZDbKMuPTn/50jIyMxMtf/vLitZZlMx2ZjbI8f/78iIjYY489+uKXL18ec+bMiQULFkx4v2XZTDdmoxxfeumlsWbNmr6PWZcuXRonn3xyfOc734lbbrllwvstx8aYnUn5LZuZdTz3uc+NF73oRfHqV7867r777kml8bd/+7dx5JFHxkc/+tGIGHdJ8fSnPz1+8YtfdBXfpz/96bF58+b48Ic/HAcddFDcfvvt8Z3vfCdGR0cnTHvr1q2xefPmqnKUXiRfddVV8dCHPnSb64499tju74997GMnvP+kk07aJj7v/5//+Z/Yf//9q8pqzLCZTbK8vViWzXRmtsvyb37zm7j88svjt3/7t4vXWpbNdGY2yvKWLVtiy5YtsX79+jj33HPja1/7WvzN3/xN8T7LspmuzDY5XrduXbzxjW+MM888Mw444ICqdBPLsZnOzDZZjog47bTT4kUvelEsXrw4TjjhhPizP/uzOPHEE4v3WZbNdGY2yfI3v/nNWLFiRVxzzTXxrGc9K6666qpYsWJFPPe5z40Pf/jDsWzZsgnvtyyb6cxskuVBfvOb38R5550XT3jCE+LBD35w8XrLspnOzCZZfslLXhIf/ehH4zWveU186EMfir333jsuueSS+MQnPhGnnXZa7L777hPeb1k205XZJMf3339/LFy4cJv4jLvyyitjv/32k/dbjo0xOxN/6Gm24SUveUmcccYZ25XG0qVL4/zzz++6PV+1alUcd9xxceGFF8aLXvSiuOOOO+Laa6+Nj370o/HiF7+4e99zn/vcYtpnn312vOxlL6sqR7pzVtxxxx1xyCGHbBO/YsWK7u+l+/PaydxvzFQym2R5e7Esm+nMbJfl0047Le6+++5417veVbzWsmymM7NRll/72tfGJz7xiYiIWLBgQXzsYx+LV73qVcX7LMtmujLb5Pi1r31tHHHEEfGa17ymKk3EcmymM7NJlvfYY494wxveEGvWrIm99torrrvuuvjLv/zLWLNmTXzlK1+JpzzlKRPeb1k205nZJMs33XRT3HPPPfGCF7wg3vGOd8RHP/rR+MEPfhCnn356XHXVVfGtb31rQk83lmUznZlNsjzIF77whdi0aVP80R/9UdX1lmUznZlNstxqteK73/1uPOc5z+lz3f4nf/In3Y/bJsKybKYrs0mOjzrqqLjssstiy5YtMWfOuBPksbGxrrdXfyNijJnO+ENPsw3Pe97ztjuNZzzjGd0JPKJ3euGXv/xlRIxPcoceemj85V/+ZWzevDlOOeWUeNjDHtadSCfi1FNPjR/84AfbXcZkok2wGlfQ23u/MVPFbJPl7cWybKYrs1mW/+zP/iz++Z//Of76r/86HvnIR1bdY1k205XZKMvvfOc74xWveEWsW7cuvvzlL8frXve6uPvuu+PNb35z8V7LspmOzCY5/uIXvxhf/vKX44orrpi0zFmOzXRlNsnywx/+8Hj4wx/e/f9JJ50Uz3nOc+KYY46Jt771rcUPPSMsy2b6MptkecuWLXHvvffG6aefHm9/+9sjYtyN5oIFC+KNb3xjXHTRRfHEJz5xwjQsy2a6MptkeZBPf/rTsddee8VznvOc6nssy2a6Mptkud1ux6mnnhr77rtvnHfeebH33nvH9773vfjABz4QGzdujE9/+tPFNCzLZjoym+T49a9/ffzRH/1RvO51r4t3vetdsWXLljjjjDO65awpj+XYGLOz8IeeZhsmMkNdy1577dX3/zRzvWnTpogYn9wuuuiieN/73hcf/vCH40//9E9jxYoV8fu///vx53/+57F06VKZ9ooVK7qmvYdRTnai4s477+zmNZX3GzOVzCZZ3l4sy2Y6M1tl+YwzzogPfOAD8ed//ufxute9ruoey7KZzsxGWT7ooIPioIMOiohxlzwREe94xzviJS95Sey9997yPsuyma7MFjneuHFjnHbaafH6178+Vq1a1XWddf/990dExOjoaMyfP39Cd3SWYzOdmS2yrFi+fHk885nPjL//+7+PTZs2xaJFi+S1lmUznZlNsrzXXnvFz372s20+zn7a054Wb3zjG+Pyyy+f8ENPy7KZzswmWUZ+/OMfxw9/+MN4wxveQF3HMizLZjozm2T57W9/e9x1112xdu3a7rr45JNPjpUrV8bLX/7y+MM//MN4/OMfL++3LJvpymyS45e//OVx2223xQc+8IH4u7/7u4iIOOGEE+LNb35zfOhDHyq6XbccG2N2JuVP0c2sg50w2G233eK+++7bJv7222+fdD4HH3xwfPrTn45f//rXce2118ab3vSm+PjHPx5vectbJrzv7LPPjvnz51f9K3HMMcfE1VdfHWNjY33xV155ZUREHH300cX789rJ3G/MVDKbZHl7sSyb6cxslOUzzjgj3vve98Z73/veeOc731l9n2XZTGdmoywPctxxx8XY2Fj8/Oc/n/A6y7KZrswWOb799tvj1ltvjbPOOiv23HPP7r8vfOELcffdd8eee+4Zv//7vz9hGpZjM52ZLbI8EenGrmRlxLJspjOzSZbTEtIgKcsli0OWZTOdmU2yjKTFv1e84hXV91iWzXRmNsny2rVr46ijjtrm8OOjH/3oiIi46qqrJrzfsmymK7NJjiMi3va2t8Xtt98eV155ZbTb7fjOd74T69evj913373oYc5ybIzZmdiip6mi1WrFueeeG/fdd1/35MUdd9wR3/nOd2LZsmXbnf5DHvKQePe73x1f/OIX4/LLL5/w2mGa5X7Oc54T//AP/xBf/OIX44UvfGE3/uyzz45Vq1bFYx7zmOL9r33ta+N73/te99qxsbH43Oc+F495zGNi1apVQymnMcNipsry9mJZNrsaM1mW3//+98d73/veePe73x2nn356o3sty2ZXYybLMuMb3/hGzJkzJw455JAJr7Msm12JmSjHD3rQg+Ib3/jGNvFnnnlmXHLJJXHhhRfGypUrJ0zDcmx2NWaiLCvWr18f559/fqxevTp22223Ca+1LJtdjZkqy8973vPik5/8ZFx44YXx8Ic/vBt/wQUXRETE8ccfP+H9lmWzqzFTZTm577774nOf+1wcd9xxjT4EsSybXY2ZKsurVq2Kq666KjZu3BhLlizpxn/3u9+NiIgDDjhgwvsty2ZXYqbKcbJw4cLuXPyrX/0qzjnnnPjjP/7jCT1fRFiOjTE7F3/oaar4gz/4g/jEJz4RL37xi+OP//iP44477ogPf/jDk57Af/zjH8frXve6eMELXhCHH354LFiwIP7rv/4rfvzjH8fb3/72Ce/da6+9tjH7PVme9rSnxZOe9KR4zWteE3fddVccdthh8YUvfCG++tWvxuc+97mYO3du99o/+qM/irPPPjuuv/76OPjggyNi3Kz33/7t38YLXvCCOPPMM2OfffaJj3/843HttdfG17/+9aGU0ZhhMlNlOSLiwgsvjLvvvjs2bNgQERE/+clP4rzzzouIcXexixcvjgjLspkZzFRZPuuss+I973lPPPWpT41nPOMZcdlll/X9ji+vLMtmJjBTZfmVr3xlLFu2LI477rjYd9994/bbb49zzz03zjnnnHjLW97S57bdsmx2dWaiHO+2226xZs2abeI/85nPxNy5c7f5zXJsZgIzUZYjIn7v934vDjrooHjUox4VK1eujJ/97Gdx1llnxa233hqf+cxn+q61LJuZwEyV5Sc/+clx6qmnxvve977YsmVLHH/88fHDH/4wzjjjjHjmM58ZJ554Yvday7KZCcxUWU7+/d//Pe68884JrXlals1MYKbK8hvf+MZ49rOfHU960pPiTW96U6xcuTIuu+yy+OAHPxhHHXVUPO1pT+tea1k2uzozVY6vuuqq+OIXvxiPetSjYuHChfHf//3fceaZZ8bhhx8e73//+/uutRwbY6Yb/tDTVPG4xz0uzj777DjzzDPjWc96VhxyyCFx+umnxwUXXBAXX3xx4/Qe9KAHxaGHHhof//jH44YbboiRkZE45JBD4qyzzorXv/71w3+ACfi3f/u3eNe73hXvec974s4774wjjzwyvvCFL8SLXvSivus2b94cmzdv7rrEiRg/5XHRRRfFW9/61nj9618f99xzT6xevTouvPDCePzjH79Dn8OYGmayLL/mNa+JX/7yl93/n3vuuXHuuedGRMQvfvGLaLVaEWFZNjODmSrLX/7ylyMi4qtf/Wp89atf3eZ3lFvLspkJzFRZPuGEE+If//Ef4+yzz47R0dFYsmRJPOxhD4vPfvaz8eIXv7jvWsuy2dWZqXLcBMuxmQnMVFk+9thj45xzzom///u/j40bN8aKFSvixBNPjM9+9rNd15KJZdnMBGaqLEdEnHPOOXHGGWfEJz/5yTjjjDNi1apV8aY3vWkbTxiWZTMTmMmyHDHutn333Xff5h0UYlk2M4GZKsu/8zu/ExdddFGceeaZ8YY3vCF+85vfxIEHHhivetWr4h3veEcsWLCge61l2ezqzFQ5zg9MP/axj8XGjRvjoIMOile/+tXx9re/PXbfffe+ay3HxpjpxshWHJGMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjzLRhzs4ugDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4zh+ENPY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGzGouvvjiGBkZof8uu+yynVq2eTs1d2OMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxphpwl/8xV/EKaec0hd39NFH76TSjOMPPY0xxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGMi4vDDD4/jjz9+ZxejD7tuN8YYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjJmm+ENPY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGmIg47bTTYt68ebFs2bJ4ylOeEt/+9rd3dpFiZOvWrVt3diF2NFu2bImbb745li5dGiMjIzu7OMbMKrZu3RobNmyIVatWxZw5k//W3HJszM7FsmzMzMCybMzMwLJszK7PsOQ4wrJszM7Ec7IxMwPLsjEzA8uyMTMDy7IxM4Nh7n0Zk2zZsiV+8IMfxJYtW4rXHnnkkTF37ty+uIULF8bChQu3ufaKK66Is88+O9asWRN77bVXXHfddfGXf/mX8dOf/jS+8pWvxFOe8pShPUNTZuWHnjfeeGMceOCBO7sYxsxqbrjhhjjggAMmfb/l2JjpgWXZmJmBZdmYmYFl2Zhdn+2V4wjLsjHTAc/JxswMLMvGzAwsy8bMDCzLxswMhrH3ZUxy9tlnxx+99KWxuHDdfRHxiOOPj8suu6wv/vTTT4/3vve9VXmNjo7GMcccEytWrIj//u//nlR5h8G8nZbzTmTp0qWd0FsiYq646iEQ/jmEx7Yzd6zyJmktgvAmkR7C0t6zoky3kd8PgvCvxH2YX9bvBpFfib0hPB/CN4trMm8sz3oIY93tBmH2rJjuvRDGZ8l8atoP834AwuzeyfYNLDN7phqWivjJtuFE3BcR/xvkcHL07n9TRCyM/vrDflOq9xoybUwX+xL2N3yulNWm+aasYro1/aNJX8D0sJ9m+VHeFKVnVeVh8U37cV6P105WhlRdYP9n/RXvw/Fi0+CFA9dv7zwyiJofSiiZqU1rR8gyUprXSvKC19a0164C67+THbt/C8L/I65h8yT2gXUQVn09r8eyK3nDdkXYONlEV8I+j9dOVp6mC2y+Us+RdXhvRJw+RFk+I8bnSNV2jFK9oy6K81NpPB2G/jxZcMzB/n0EhK+F8PbK71T2XUwb6y51ocnqnzVjuJqXdwRMnpDJ1vNUtdVUzcuLyFVY7qUinNeosUDpbU3mcCXLrK9g2VCPZ+tN1UYYz/rvEojbKNKYLKV+o9oB65/d17Q/NpELVkc1ukYT8FmbrNnVc2eZMa0mc2pE71nVGLcKwrhWvS2GJccRKMt/NpDPZOdAfB68doO4htUDXlsa3ye7tptKVJs2ofRc6nfUwdeT39UY12RfAGFpbxK/K1g/nsq5vEn7qHrOfqn2e0rpZVo7eq1cM04lTWSrZo6YbJ9mcyr2j2HsKWP/x7E316w1/Vjtm2S8Kifeh/0g9ZiaOVfNcdvLMHTRyc4lNeuzUhql/cOavR/sDxPtf06VLCuYjoDPOFV9ogbV5lmme8Xvqo/ls2L9N537mb43Wf1BzSFTVec1Y2NJPkvzXknfjeh/pumibzEOgfDPye+ldh+2LL8jxnWFybaRWruV3sc02StRaw5cp6a+01Svnezcz66Zyn7H5Jftb0SU94Zx7lFr/Sb6OsaX1tBsn2UwjSbUvAOfDE3H36znmve3ee29EfHBnbyHrfSMfI6mc1Lpe4rSPNRUJ2PfS9xL4iJ0vZTK3GR+Gsb7+5L+j3Wk3isw3V2N203W20hpLovo1U3NvgB+rzNMJqsTNenv90bE+4ey92VMctddd8VDIuL3C9d9PSIe/NCHxte+9rW+eGbNU7F8+fJ45jOfGX//938fmzZtikWLlH4xtczKDz17prgn2iTD731x0N5ZH3piGdAIa5NJXHUy9sJW3Ye/q2fJa3CCbgLmpz6sw2vYh56o8Kr7Ss+KsBcjNe2HeeBHxcP80LP0TDWo+ybbhmW21yR+vxzvFnrztVTvNbAXmmqzhMlq03wz7aabnk36gpJ79mJDUXpWVR4W37Qfs3IO40NPTO8BEZ+oF9zKUPZUbWCo+aFE6UPPurSmVpaR0rxWkhc1vu/qhs1Z/53s2K10H4TVo5Jf1dfzGvVRfs3GNhsnm+hKmDdeO1l5mi6w+Uo9R39bDk+Wd+uk3eSlYanem/axUro74kNPtWml5Gx75Xcq+66aa5voDIyaMVzNyzuC0gdtk63nqR1nhj8vs/ZV42bpo1CkyYeeNetYhPUVVU623lRtpNLYROLwmYbRzqV+UypbzX015WwiF6wcNbpGE9QYUdK71XOzl01N51TWH9SLQz7eDcN9XP+8jGviYXyc84AIl+pBra+YzE7HDz2H/XHUZD+KY4csm+x7qfwQlvZW8buC5T2Vc3mT9intZ072I/j+etlxa+WacSppIls1c8Rk+zTrs2psaUKTfahhfOipyqk+xklq5typ0oOHoYtOdi6pWZ81mY+a7O0rHaWsjwxflhVMR2BrxoidtzYapPRSs6Q7bc++7jA/9KzZ5x9mndeMjSX5LM1VJX03Yjgf2OwISmuIunYf7r7XbjH5NhqG3lbqm2rNwfTLpnrtrvKhJ6sjVcelveGatX4Tfb1JGkqWJ1t3Ne/AJ0PT8Tefq+b9bX+77dw9bFV/+RxN56TSfnCTdTNSU5el9zyqXkplbjI/DeP9fUn/V2OnaqvSe6fJfpNRsx+W8TX7AsPYU2NMVidq0t/HGcbelzHInNA71snciJg7d24sW7Zsu/JKp+k7sx/Pyg89e4xF/xfo+0O4dHplBYTvhHBpIFshfsf460g85oGoiYiBaSwV8Qy0zlVzijFFCMuzL4RvgvDjIHxp5y9OHJi3KlOiNtFQpPG+R3T+/gzisC6wbrFvYPlLNFEQJ6vENDlpxSw3Rug2ZgzjFNIwWRrjyoHKq0m9lk7H4aCv5GYYz8zSrnkO9gJRfQA9JsKZd8k6zmB85odpqekUn+/Izt9rSFoR+sVhpnEwxK0T15baRFmkUddM1mpm9h+8fxgWnib7EgvnHTXW7gyavFS7S8TjnHPnwN9hoeYcVv6m40K2DT5faeGJ+RwGcahTIEx2cH5TYwC2Scp4k3kR01N6gqKku6j+MtnDLyXw2pI87QNhLKeyZMr6jOpnOE7mfWr8xTJnHSrLG5OlNr0mH/RiH1NzMdPNVbo1MtIEzDvrWI2r+Cw180+JYzp/r2x4X+q2WIdNTx4ynR/bR9V/9lk1Lqu+sWLwwgnSYCj5Vn1qbODv9oBjQJO1Vc1LuOzP90yuaEVKc/FkrW812fxW622ElVPprSUrGNjXUGbxvltJGvi7GvcRpq+rOmQfQ6sxRMkyPhfTofA+1BNwnMz5GsuDfbO0bm5XlI3JdY31kyDXqPFJjR3shVxTy4WZhsqjqd60vWyI5oeXmUzWjNklatpgMN+JaGLpVslIydIt9m+2p1ZjzU/pcJmeenGDaePckfKCZcO6xT5WGl9r6pnNh1i3qHfeReJr5uomFtOYPqDyUWMH1jOWedPA34nKxto4n3nY1tX3jG1ljZW7KaVDFzWHNUp7L6qPsTl1slYw1NzD1j6qTNiv1H5pE8vYaq5qchiAlXMY1gUna0mzZm+JyWHNGpvVh5ozSvtXasxRe76MeQN/h41qf6ZfRiFuR6HmADZuKpSOzfKogX2IgXtLav+VWV2r2ecvfZhWkgWkZmwsfYQ32f0rVbbSeNDEI1yN7s7kQD1Tad+m1CbDnpfnxcT1X8pXrU0ZatzHcK49sW3vEtciw64XhupX22uQpeZ+fO5sEyUL6sPYpObdSemdtdLXS/OTaj9cs/+S/K7SLT1Lkw91kaZtyp4VdTq2Dhv2IYcNE6Sp1nDqfQ0D10nq2pI+p3TtrCu1N1OzTs3rm76vZO928PnUO7uSgSOEjX1qPFTvhTPMvrkZzHudiGeovWp87swby6nmMpafeme0I97jqrGxNN/XrE3ymmG/jzJmnLlR3lUYxgpv/fr1cf7558fq1atjt92m6qPrMrP8Q09jjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcbsSoxE+ePHOQ3T/L3f+7046KCD4lGPelSsXLkyfvazn8VZZ50Vt956a3zmM5+ZXEGHhD/07PvyvsaiT34HrE4klE5wqK/t1Um60klYzK9kHaHGUghDWTNoYh0DTyjhCYdLIbw/uVbBTgng6RjmTmeQOwbuH2QfEc9+rzlFwU4yTtYtQgvi2g3uVydzmlhQUfU1jFPlk2FTjLssUN/ozx+4NqLcthH8GSZ74rXmWmyDlDNlLWKyp78Q1V5ZN+oEk7K+xE6+1chyWvJUlkcRduqzZF1hEHbqU51+VGUquQZSMGupiDr9xSzz1Zx6S1Q5p5MVz4iIVbGtqwzW5kxWIvr7Met7w3b/iPOeOsk52VOmTax5M7nH56+xmsisAjWxZhAiTll8yLrD/EqWKwbzLqHkglkAmqw1OnUqF8eUrEdmhWmicrDT+FhfTVzal6xIDZslUef2pmTNI4JbdWiiMytKFn0Q5a4Rn690mhvTUGuIEkofZ5Y8a9z2ZDkwLdSPcIxri3LcSeKUbtBkzlRWQbPMTd0gMbloYm2lqTUDdo2ac7fXikVEbw07Vaehm7hza7IeUFZeWPsqK2xqzZd5N+0rifKEgc802XV/E6tXpTxUHaoxDtswLcHi/IvPh9b2mY46WWv3yuJ0aV5rml6OI1gXStaZJTilb2J+yroYm7sm2xeHRY1HGjXHNbFcyWSnqeXoJlZ6Sn1PrZlKOrqaL9h+SslSboS2JprPWGMxEi2UpdyW5r3BNNg+VE0fyGdEfa1GZ2Yyp9YmJavWWM+3Dl7Yge3RKQskapyvLVsE92YyVRbzk5r5idFE71GofbTSvkKNhyTmRadmzMn7VJ8oeV2osQSqrHVnWdsib4SNVaW1+WA5cq9K6T5KfrcXNcZh/1NjKps/lHs8Nk6qvqr6M9tHUe9CmNyzvjVV83QTbyTqvibWqWvyLs33ajwtre2aeJVD1PxbsiI3lZbTWfvUeG5YRH6vIZ97susR1dZsz2owbUaT/bKm74/2IXE4RuN7W7U3krB1yrDnZWYFsGbfilFqx5p6Z14J1Lp52J7GGJMdO1GesA5RD856xnc4TbyDMSufg/exOanm3TrTwZX1VrUmbNImpfFuKt/RNmnjJnrojrZsPdb5V1ozKU8KTO6bvjMsvQdSc0fJk4iCeWtDauSJ6VE181NpDld7XCwP9X4Fy1x6H6vegTMPVmovSFnjbyLLJW8Dk9Wf1NpRPQuj1Adq1jRT9Q7KmG2psehZcu0+yLHHHhvnnHNO/P3f/31s3LgxVqxYESeeeGJ89rOfjUc/+tGTLOlw8IeexhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOM2WUYifKHnE0ter797W+Pt7/97ZMs0dTiDz2NMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhizyzAnhu+6fTrjDz0bmw9uYm655EZHuWEqmVxXZq+ZuWj1fOj6QLm3YCbD8T7l9oih3OFgHd1F4rC+lZvcfFY07V/jsqPUliV3Gur3GrP7kzVtn2lcxy5siHJzwfptjcukkqutqXQFkf8Y2C82DfyNaOZuRj0PtpFyx5Aod+0l12HK5D+eTcD71pG4GvfEed+REKdcNyIpk+j+RblVfwSEL+/8xTECQfll7i1Uv1Kucxi/FPFYt8wEf8kN2CDMZQcbAzEPzFu5aFJuxUruLdRYVXLRmmVuauC8xLqI2C0iWhDHxjrlYqbkMrypu5KS20iVX5PxXaWRz30YxCnXqgzlElvNxcxtpJJ1Nt9jOdX81MQ1Y43bOebaXNU96g9NXWUlrD8oFy7KVVzt7xG8nMoFe2neqXH5PkxqXWKVdI+IsvsaBOsy66c01+G1g2mwe4cx5qhxeBmJw3JifZXctyo3Qpgec0eI8yG2idLBS3qOchuW96HOgGOScr/JmKxrX+Vet5RHk7G/xj1zSSaVK0wcz5UeM2zUWgth7jPVvF3jMi3zUbKpdHCGmtfYGKrctCpdLNOoaXOso9JcptxLNXEBy8YZhVqHs30GtRZSZc46UuOoKn/qGFeKPFS7l1xzq7wzP9RnalyOsr5R45Z1cO00Iu7ZXlS5a3RYVsc1bVCaRxXZT1WZlTs35kq9Rn/I8RSvVf0fyT6k1nAKll7NOoW5MaxZ8zL9CKnpA6zMJT0oovdcNfsobF5Waxqlu7E6UO74kFL945yr2nuq3dGtj/G6a7LPgaj1h2rzjJ+sq2YE+64qf8lVt4L1abWWZGOD2i9WdYvxWR9Yh5NtH5QbLNMx5Nqa8Vyt+0uU3JZiHszl8mA80zuYrhjB16yqryp3maxumsxt2HemymV7guXG+mOuiNXcqXQdtl+qdG2kNGazPCJ69TbZOlP6pwor16OTQY3vCHNxi3FK1ueTa5rKJttHxv03Vea8D9tSvXsc9h4R67dKb2RzOJZZ1RH2fbZeRKbKdXuJ0ntVfLbSvFzTb9iYNtn9zxrY3KfWtCXdXPVptf/K+r1ap6u9WnafItsHZUjNjSy90jw1mEYTSu9DsQ+U1lDbUx7W35lL8xp25FyMsH0/lT97BxvB96LVmDfZdUSpPzXR89U1KDcqvXyug0ncRGVK3RCvVesNtuarWQey/RuMU/oTpp3rF+XifH9ybUS/TsfyrnHtnnk2XRdlPjVu5Zu8Jy1971Kzh8B0PX+eZqaGuRGxuHDNsL9s2JlYkowxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGLPLMBK26DmL2DOm9tR16at4dRqgCcoqaJ5KUKfea6xxlk5HIfhFPjuJXXNKsWT1FMvPTgLiqVc8OaHSK53YwtNm7DThInFtzYk8dqqq5kRP3qdOnShLCllW7HOYRo2Vg1J+DGYd5Z4G6dcwr/MPT4pjnbHTi+p7/cla4mtyQrLmNFtJFmqsZbE4dSKKnbJFK554MgvlDE8uMYsIyqLA5RDOcihrVPjczDqCOhWq2qRkUQApWW6rsbCJlKzalPpfjTUwzHsp+b3GUiK7j1lbGfZp6Pmdf8oiZMmyaZNT6E1PNzKaWM1pak00wROBqp3VuM5QczGbk5RsrSBhZg188L6S5bOSJcVBSlaLUdaZZTbVfiq97A/qpLmyOtBErlnfUVYsECafk7UyOww2RLkv5nVJEyslTL+J4BZ2aihZKVHWnZVMNsmbWdVQc0hprEKLP6oPMssxav7F+0rWL2ssTDB5r7F6OgxYndZYfGMWW0oyG9F7LqWb1sxBiUpjR1nxjOBWLpnOGcFPtas1lbKex2hixTiCW2BAWVYeJhiY33wRbmI9nPU9ZTVXpdfEQozqY6lv1VhmRHJcxjHnaggreco2VOtxZdkKLXmy+xA2Ftesoe4k4ZKlwYnyZqj5A2V5XtTNn9tLU/2ZyZOy5NbEmprqsywNNQYwaiyQIKW9qqm04l/qN030yJIOi/E19VLaO8MxsGQtWPWzJuOFSk9Za2ZMVr9oYhFxqqlp8yYoS3psz2OyKH0d2zfHA7WuVBa+mK5WM16ULDUpSlYRDxB5lyx8qXLiHMjKrPoA8+qh9As1JjWZ15QsZzlwvFf9QVkcSlDvwHrBMb+JNwhm8Y31o6mytK10AaYnqnlb9V9mYXOy+2XD8NTVxOJcTX6TtUjF1i8oK2rvuzTWKsu0TKer8VyB5WDrMLVnyuZ2ZVUO64Lt7WOeTS0V5301Y1zJklyT/dodve+VKOuRrL+V9h0i+HOo97vqfST7vWSBnu31RkS0Iayswt5JfkeUHpXPgn0a91xRv8RyZJ9V+6XKAxvzOKI8hKDc53ig1gFqb2mYn17U6HzsuVF+1fyLMF2jZk7Ivl+zXzvdWBTjHubY/KqeV4X3IXGTXT/WWABO1LjAPEIMwizWNrE4jZQs9+N9ynNOiPhFA38H81Cw/T6VH445pbWQGpeZZeMa3Y2taWu8ODbxptGEGu8dbL5X3pGwXnLO2zzJshkzMXOibLHTH3oaY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHG7ATmhDZPkdh1uzHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY8xOYE7YdfssYn1E7A3/r3H3wMyX15hCzmvQhD9zl1wDXqvc8DJXAMqkeMklunJZqVzHriPXKpPUWOclM+FNXGop97PsetXu2FZYn8w13wPk98FrSm5tSq5M8BrlHkC54snwMFw7IU3MgGf7Ddvd81jnX41rnkS5xFP1k31FueDAPqtcqCRNXDs0Ne0/2X6FLmmYOzflHhRlMtNDE/dYF8p9OMtP9Stm8l+1O7o3wHabrKuIUv2r8ZC5dlam9lV/YLJa476GmetXrrhKbmKa9K3JsmeMl1WN9WyMqXHjnvWg6ney4yKmh3XJZEDNQzWuQBOs7yNJHhG9OlAuaZXrLiYXJVeKET3XOZguji0oe2w+VO6ua9xAl1BtzHQUNT4xsL6Vm6TJygbmnXWHdaRcCjWZ/5B5A3+HRcoyK1fJvesgTCZr3DaXKJ3rU9dgmZWLtiyTWiuo8rNxAscINbewOCV7bL2h5gi8T42f6VarDXFKflkd3Cl+V2MKG6vUXIZ1m+My5teCMMYrV+kMfFamK+HvNXVbGouV262s56le2te4u2c6jtK91PzL4lHXVmtaJPPGtNR8wvJm6wBMN6LZ2ItptCB8BymbcoGMMp7lZO4VJ8ob6yPTq3GryOSwxnUytj1z6xTk9wi99khUmUtuHGt0vqwvNf7W7AOVXL1NdN+OcDvZ1D18qUyl9ZWaL5voeGrvrLROUn2F9cMaF7GlOalmTmXzZI1rNEyj5O4WaTI3lNbkqi8ovSOpcfvKrimNBRHN1lOqjphMqH5USnuyenktTV1SZ9upflDam1AuSJXOxfay1JyKaeQaq6avlNyL16wPmG5Yg1pjJpc3SKtmXkCYO+6a/Yvs32osQ9aRa1jcYLwi26fpmj7rA+v4SnZhcN1M1WeTvZ+8b9h72CVK73NqXDHn9coVeUmnV/tGKr0Sak9jHfm99F5NXVPTN5nMqb3xkv7A9pgidPuwNYZy+Y1kmWtcNTeZD7Eu1P5hhie7j87mhojJuw+uSWNHku6eFWzcU7JcmovwWkzj1sELB2gyx6l1Jda1yi+vUWO9etYHyO+YRsllsuoHSkdh6SnZQnliLt8R1a7ZZ2tkCMci9p5R5Y357U9+Z26kJ6J0DdYt7ltk31A6SmmswvvUnuJk939LbIqIrdFMp1R7w6yta95xZN5sn28QtiZUYzqi5hz23YqSWTYXq/cTpfcZSqcu3dd0Tso+i2m1xbVN90mSUt9EmVbfb7C6QxlrMn+o56h5/56od9ZsflDvSBGmV+1oHdvMFkbCrtuNMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjpiVzo851+2Q/7Z5uzPIPPX8rIq5veE9+pV5TdcryZtLEYgyiThrhyUqWnjq5qk425Zf4+KzqtGjpxKmyGoonMDI9ZgEvov9kE7N6ouoQ49EK2jUkD2WNpGQ9ilk0HaRk9QTrBcuM6e0/8Dei7mQ0O4mNDOMEaCndfKYdfVKDnfhsas2UyT32G2XFk1kzQFT9ZfviaWI15qhTiszST8kiV0TvWZqeji2dqir1lRoLlczqgEr3rsI1B4vflVWUJlY+MA124l2dgldWu0oWCBUlS9IIO7E/bAvAJZi1kSb9EMvLTgOrsa10vgdpapmpZOkWYfKJz4/1cg2E2YldZtF5MA1mTUU9kyLvw+fD/q+siGWZcE5GWcB5TVnnzTRqrBYjzMI1hpVuxk7XqlOmk7WAW5JrrFtlCb407yDMSvgwWB/jz8JkuYnlF7xP0cTasrJMgrB6VSeSVTxDWStkJ6NrxhYmnzVWVUr6bM1p9f1JPI6jSn5L+qrKu8lp7VL5sd7QGsVkrTSWuBrCeIK7ifUORFlUmirSSknWa01ZVf9OsNxKt2By3YZwyQo5lgPzqLFClNezfj4YryzWJmpcwH6R9dGCOOybygoge26mfwzC1pWqLpQF5sNInPKswcZg7CM1Vkjnk7iSBVhFjWVGZpVA9f2SV48aqy/DsGJeYrAvqnpQYzlLR+motZ4BJoLNh4iyhrVp4O9EMCtTas5V/buUroJZQ6rx8hCF+EUirKywsLxLFsyULlXyUKR02JJF3hpKlsFUfZbmErZHMhGDa+gma8xhU7LKoihZxKvxOJNrKTUulKy/qv0YZV2MeYipsbxckiEly00sWqr5ju1h17xmYlabmFWniP4xPMtZ8mA0CKujYa/l1H5B5l1j1RXJ/GqseLL9XTbujYi8tpfJWsdU7xaYnKl0S/Oy6v8qvZIl8yb6Wc27q2HA5jX2ewS3fKaeqbQWUmA5sJ6Z3NdYAmVedNQ4ikzV3m+T/Sm1d9vEuyLTd4Yty2kFUMGsQJbmoQi+p6fWXaxe1TqwiWXHJnudEdzSbc37KPbeQsHaVOmtTWRP6c+ldylNxiqVrnqf3GRPWVlFTDlS+miNVw92rapbtv+CqDGMXa/07qnWsfF9QLaTeh4sA6sT9T1FSX5rxmD1DrJEaT5Q83ZpzlHeO1Q7szG+Zj849Saliyirkqx91DpQ7WWVKFmSV/vPpW9mat5HMJp42lKo8ZylXdMPp4MlbjNbGAm7bjfGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4yZlswJu243xhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMmZbUuG6fSR9HzqRnmQS/ijq3K6xLKDddJRcqyly/IptIuftDU+bM3LJycaZcjzJT803KidS4NWZpKJcdyo11mvtmbtkHwfpi7szRlDW6UUGYOzeFcgfLXKEplwbYR/NZm7qrY3VecnWjaOIeb5juL0so9/NNTJKX3MDVtDnSxBUMc99R4/Ko1F7KvULJFZmaCpkZ+YheWbG/MvfZEf3PmnJWY+Id72t1/uIzKZfLCBuLlTu7kmsNNcaV3IbVzDXsGixDTd/IZ1Rtgu3O0lBjMXOxPgzS3bNy69rErXUTt4Qlta/GhZvq61lvNa5JS27CVR5qvGP3IcxtT42baMybzaMI3oftmvnhXI1jUhvCym0TqyM1PrFyNHGFGdErM7qoQBmqcSXMKLlBUu42ML/SeFBytTpVy4Fhu+AswfpvTVo1MtIE5rISwbZjeoeat5X+lfqvcm9U0h8WkbiIfplENzNMV0b5vkZci+xPfm/iEgzHJyV7WP/MRbVy6Y1lKskTpsfaB+v2LvL74DWsDmrWEnnfsF1Y7Rnj5Su5k1b6C1vb1eh7zB0UpoHrYryWud8O8bvSNfJZ1DMrOSu5aFM65Tryu+qbKBdZB9g/lOs3RPVfhqqvrJuatReWP8eGGre8rO7UM5XcNmO9KHenbLyucZGo0mZjnJoTpspdOzI2Qf41OlxpTm3iSrOGvE/p6E331BLlXry0R6DWmCw9lRbWfxO3gE32XlAO1XyY/V65o1R5ZFvgWKBcuGF6Oc6sEL8jJX0UxxPVb5kbwqZjR4LjfZN2GBv4O5U0cZGt5iHlGpbpXDX1kP0Q02V7mjXUrL2zzKU9kQg+pjQdT9gcpu5DWWf1jHvYSr9A2cq8VX5Kr87rlZv3yY6jmJ7S41eQ39U+1AYRn5TWtJiPcgOsypl5Y33n+qfGpfBkqNGJ2X5LzfuVbKcmY4SiJo2lhd9xXXmnCCc18yjLB3WyJv1U6RrqHU32BzU2YtmYHq/eISqyjdW+EIJpM/1ZrfuV7sbkqcad72TlN+NrXBcznaH0jvfeinSbkGtl9U6B9TEsN/bZkmvsJvo1Pjv2CTX+sX2hmjbAPpnpqTGpLeJzTcvG4wj9rre0F63IsUjNuUhpzCzpzBHlNY26r8ZVeqLeFWT/Uv2lNNaWxvvBNGqecaK8UTZUX8zwsGU5KblgR0pyqPZ9Fay+VV1jfMpCaW9nMA22l6PmJxzf2V4cypP6zmQFCav9O2z/mj2upKTTq7Fakdco/RlRLt9LfV2trdkYh3Vf2kMaqwiX9Aq1v8zmtNK8HsH1i8nuFxkzMSMjEfPnTnzN3M07piw7gln+oacxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGN2JeaMRMwrfP04Z+uOKcuOYJZ/6LkhInaruI6d0sM4PKWrTk2xEwd4sq906gJPPasv9tkJAPWlv/panlklUF/h11jeYb+r0yh5SoCd8MDfI/hpQjzZVXN6s2TBTFkQzeuxDNg+2K6Y92StoLFTkU0t0bL2Vif3SxaJlJU/doprR57UUH2w5tQUA+udWYFUp3nWkWtUPZVO1akxosb6TenEEPZHlp6yeKPKPEZ+Z6fuBsuR8SpddbKJtXfJwgqi8qux6JDPinkwK0sRfLzG528yDyA11gPZCe6a8YLNc+zk4MhEBZwE8zr/2Mni/H0wToFlzxO7qv+ovsLGemWNp1SOmnGTxd8lflfqWz5XzfxcsshSsnQV0XuumtN6bC5Wlg+UVSBmxY9Z7hksEzuJqk5vliw7o5yqsRHjS9bhSlZt1FiN97ExR/WBI8m1w5blVVFnBXCy1PS30rUI1iXKNRtzlHUijH9g4G9Ef7/C/s1OUTe1SJR9sqmVlhwbsY6uE2G8hsltjSUyfNaSxUtEyXKC9az0I6aPYbhkxbPGghW7T+k+pTFcpaHyzvuGbdlgQ9TVb0m3V5YBlDXEUl9W8xob95TVSWXdpsk8yqz71MgCUjoBj5T6grJOrOba+eR31ZY4z5TmNSwHs9x9E4mL0FZvS+tfNTYyHQzHX6Rk7bpkNXSQfMYmVgCnmhpLQE2sBan+Ntm1PtZl9jdmJX97UHNxE0uZLD1cz2G9qH7KxpSa/R0k9RW1blL7SWihO1HWpdga6E5xrbIkmPep9RTbn8N4ZbUZ61PJYckiJcLma7W3ouQkx7Os42Fvt6flMKSJ9fmm9ZDUeIlie5Z4X02fbmIRpslzl+bzmr01tbe/lPyO+eG6kY2NyhPVMRBuF9JA1JolUXWB6x82byk9QnknYVYxVTlwfGXPp/YDEdY38D41VjHY2ntnmnthsqMsUrG1T9NxiMmhsqylLPAxsB+wa2v0pdKYjHlgH2Pr+4he+ZlFdvw9or+ftkgZlDVaTHufyt8jeJ0rK9Ooo7fJfYoana801pbGJDVPIExvqrEYyPpJU+uO20t6pSrVpaqnJt44mujXav9EvdtbQX6v2ctj+wQ1OgPmnf1a7ZGpd73MK0ZNHaUssz3bwTCOKWz/WVnGZhZJ8TnUXKz2/Nk4rvoOjnf5LJgH87AXwffDVJspWc42qbHey1AWvodhmXp7qNkHaFIu9V6ptB/cxPudKhvKGbZjlkN914KwdXHNHK6+o0iULLNnUe9S1RqT7V9hfar3sWwtOVmr4wqVN8unxsI88yxT811C1pfSfTCNkkXkGuvhU7WHbcw4c+ZELFo48TXz/KGnMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjzI5nzkjE/MLXj3Pn7Jiy7Aj8oacxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGN2HeZGRMGiZ9y3IwqyY5jlH3oujToXWsy8MboZU+aKS+4oatz0llwiogtOTC/NT9eYdEZKZUaTziV3oyoNZV6eubrEui25csXfsWzK/XvJZTSak1auB5IaV3JIlkOZJVeur/IarCPlRoe1vXJVW2OCnF3bxGXbdDXJrVwmYF0y9wPKfROS9a1cFSjXbknJvfogJXlXz8pkEp9PyRMzpV/j6gNltYm7cuYiU1GS6xqXHio/5hJdufdQrjCSmudnLlAQ5U6hiWsX5tpauRrIMWLYsjw2QZ4R3H2IcueAfZrN0aoumesVVY8qvom7hhrXsAn2lZI7NJVWaS5T7tcU2RYPhbi2yKM0d6j5CWGun2tcbWG41flbcjUxmHaCdaT6YhN3gpN1PYP34diSdcD6RQR3sTZsWU4XViVqXPqw+plf+D3E7yU34hHN2g7nADb+qD6vXGdmGkqnQLdsTE9kbjMH88BnvY78rtoBXQqx8UfVm3LvnXlivbRFGpg3c4+t3FQ2dePFyDRqXLaW8pism3IF63Mjk0yrlhpXuU1kEuuk5LYY88M553IIl1zlYV9SLswS5WaYuRtClDsslFksf+bdhjjl9rXkEkvpxvh8rM6VLqrkM+sRnxXr5ZciPscc1I2vFHkzOVNrKOXyLusD01Lu4ZGSu9um+yssDSxzU5fdk0W5bqx5npILbNVPSy6wEeYOVrn9aqJrqz0dpSex+1TdZXyT9exgObL8qu1V/8g6wrSUO/qa/ZvBdCPq9jsS5b7y2M5fHKtxLxXHRrZOUc+v2qckT1gvqr5YXI1LwsG1xVSslQfldbK6Ts0+eIkmbsQRtWZn6am948nqTiU3jojSj7H/sv0CdM+qxh/m3h7LhnMju0btzym5Z3Wr9Jml5Jqmeitzjalcuysd5QEShyjdjI2pNfsMjCzbztzDTp1JrVeVG96cl5qujeYP/B3MG2myl6XKke2o8lB9JUi8cmurYP1bjQdMn8WxQO09PQLCOA8m2GbrRDifS7njVvtaOU6odsf2K+0TKj1YuaFPanSp0lxd02/ZupS5Jp/snkCJUrrYN5X8llzoNnFrrN41KV06+0rN+kTpkWwMqNH/2f1N+qaqeyw/jmc3kd9VO+B9rI8peWLPje/vVTuoeYuNVeoduBqLkhp31akHKDlU+5LzyO+lPZcI7mparVWzbEo3mArUurOkD5XWj4Px+ZzMnftE+WU71eyv4/oX24npSVjv2BdKay31O+tPag5RY0Dep/YelIykbl56RzuYX5ZDjV+qzE10otJ9SodV7Z3PpcZfpSsx+VRzSWkvRq0bmJ5qzBQxEuWvH23R0xhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMWYn4A89ZxNLQ59cVV+052mAGmtZzGJG05PTJetzeHJPnQZI1Nf2JesSWGZlCaWEem48RZBlwnpTFpDYaWA8aaJOv+BphmxvdToMT36wE5JHFn4fTBvrvIk1VHYtpqUsDTALhDUn3dhpHHVfzenCZKpOUB7UyVudBGlyykSdAmL3Yz+tsZTKaHLCR53GUtezE6DKYimG2Uk6PKmsrJ+UrJEgzPrwARB3NYQxPWa5suaEOsoyuxapsfDLTsuhvGHfYPXBrJNhuhG8L5asSA2WiVkiU5Tkl9X9sE9QruqUQ52qY6hyM1lXVh/Q6gb2lVJfVqcwS/MktgeWSZ3yZteWxg52+nei+xYN/I3Q1rDZmNoW6eJpPTwt2sSKEoJ1l7KD7YDpqrEh+1fTk4SsjpRVQUYT61N4vRr7lc5aa5F3KtkUEVvFb6oemlgkaqJHKMsXbB5S4LigTpkr/T9B2VOniEv9Qo2NpfFAtXmWWendD4gwk1817jHr6BG9usN+3IJwm1yLYSUXav3GrBJgOVX5mf6s+h+TyRoLYJNFWbobJhtCW/ur0UsxHYaqVzYeYH4/hnCTNYyygM4scKh1JcL0Nly3KSvTeE2r8xfXksqaB+bH9HysI1ynXiOuybBa/yjLKjkWKSvJSiaZXor3KXlhljuaWMhQ/U/lx+Re6eslaq6dSiueCmUJqGQtq2RVZzC+1ObKygvbh6qZ+9lYr6w9MlnAOCX3JX2lZL1LpaHGcTUesDlcWQ5mekILwlhOtR7J8QzL0IYw1tetIpygPClZznLUWOVT82H2B1U2ZU2UWcRq4umgiQeRJuScrCw4lnSOpjpJaT1d0j3UnKtkqGSlqVSfak6arMUYZlFvsBxZH6U1dkR/vy/N4aW1iaI0/6p9AbVPkmBd4N5gG8JsTzGip/OgHNa0Sban2jdQFieZN5zS3j7ex9ppR1gBVPLJ6krJUKleayx7lzyaMOvb6lo1RhwD4e+T39U+DbYjG5/ZnkhEs/dYSp9lc4vaa0cdXOkBibJKxtpYPYdaC7G5rEbPZzR5/1dzX8kyZ8lS6CDMSjIrx462zsuswam9F9af1DuH0tpbWVBW1ljnkWvvIr8PpsH2CZRHR6WPZ1mV1yrlEY71FUTpElk+5Y0Cy1baS1cWL9l6QsmbSoN5McJr2ySPwTQyHtuyRp4ybzUvKf2Z/a7AtNn1pflx2LK8Z4zXHdONlH4zjHUEe3asa1xXtiFcsoJfsz+IclaysKm8PDB9tmZvo8mePxuX1DcZy0R86hVK71bv0JIaK5ilcVm9b8M0mAdhvFa982KULD8PXsOubeI1o+adDtPppkrHNrOeOVF23T6Dvo6cQY9ijDHGGGOMMcYYY4wxxhhjjDHGGGOMMcaYGc+csEVPY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGmGnJSETMrbhmhjDLP/S8OSJ2g/8r9zXM5adCuUNO08TKfY0izRejeeQat2WsnMoMNabNXLcpt2UIc/Og3PEx93gRvTpCM9XKRQhLW3VnNNuN9ZLlUKau0cQ3c9+BbvCUGyll7jrzVK6xlBntfUicMhmO9ZXtptp9GO4kWV/E/jJVrjJ+FeNyrEziNzFlrmAm7JV7G2V+nf2uXDdk2jXtgu2sXAiwa1W9ZJlxLKhxv8PcX2AayhVGyf03Xot1lOVQ4wK6+8F6TvfRyg12yd0zosYc5d6giRtC5vajxl2OmoMYJbP7CBu/hi3LOSer/pbxat5TMNd/Sk6xnZn7R5ZuRH/blPq0cn9Scu+C8q3cWLQLZSu5oFbXltRFfGZsk31FfF6vXFAol1KYXo6TWM4gvw+Sda5cmyl3E0xWa+SXueSscd1d0qtQt8F+lP1c9TPmfneqYLKsxiVsLybXJfdeg/flM6s5QqWN9ZNuYVQ9TdaFPPZj5l5NofSHktsqVQ4mO6ousA6wTtk4qVwx47Nme6vxkrmsiei5msXnUK6vmPtKpZercT77QI0exPrfsN21IyztYc/Li2J8XmZ9nbkQDnEtc3c4GF8ab9X6UbnMyv6N/U7pOmzuwzKo+5RbdRan9I4rB/KN0M/E9hGU3n3N4IUdDiZxOCaha7dlIj5RY2DJ7a4aF1R6Swf+Dpan5O6qxo0UW5ugXqLGFtW3Jyv7S6OsR042XaUXKXfBTN9WbkpL81NTsv5KfWLwmrxPrXEwzFykqv0yfCblWjVRrjVLLlexbKreWBvW6CKsPrDN1PjE+qJyD6/m1HxutS+gKOmziHI5m31b6XGqnzA3hCo/DOeYk3UxVS5iVblKY8cwdJIaXZPlh+2o9l629/UEyiO25/7imhzjlctTnAOwbtl+AbqQVK602Xyu5iesI7wmXXheAnE1OgrLo8a9braP0ruUS93SuIwoF+KsvyqXukiWb4zEDd7HdE+259ik39eQLmKxT9S4Ok3UuM/mYuUGvTR3KF1H6atsf1bdh7LFqOnTqk1Z3k3cjivZY+OTGtdw7cr28NReHt6HsDlOjXcMNR5iHSrdLfPBMqg5nOnS7B3cYH5IE1lj+kFpnb6j3+iz51RrWkbJnXAEb3+c12pc/bJ3DsrNu9IlSvtCauzNPqn6hMqP6TxqPplPwmp8UmuMRSROvbPG5872eYDEDaaHsPWEGs/VOiXjVV0g+Cxs3Y+odUPmU7N3hu2aY4d6H4HPms837PXyWGy7zmJ9Ra0p2NxX4zq7xNUQVu/Csv7Ue1f27UUEfw+NsP3UiPK7Z6Rm74+Ba0zsj7lvheVV7u0fA+EbO3/VnIvlxPFzcecvPj/mvb+Ixz2pLL/qR3htO7ZFjTMI25fEZ2qJPNheBcrhBhFm1LixZ+8Ypmq9bGY9c6L/0z/GDPo6cgY9ijHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY2Y8tug5m9g79EkjhJ2MqTlN3sT6UykNPO2jThWycs4X1+IpAmXxI/NRJy/Vaaw8wVCy/Dd4X+aDJyDwFMU95NoIfnpElVNZ+UuUFQs8PVKyxomUTuyok5clK2F4nzr5wdJQVqSUhQ9m3UI9KztNOQzLJiUmsjY0SEl+m5x2rrEAnKiTceoE8LyBvxF6fCqdbqw5KVY6RcpO2kX011Hmh/0Kn0nJHjthqE5EMUsK6jST6qfsZGLJGkBEv5WGjFd1ryyRZT6l05ER3KpLzQlAZo0OUX0OyfovWRpsYs2uhrRsUHPKPGlizQBRbadOLDKUdcVS+zJreIP3Mes3ynoGO92oTuCpvPO5lWW8kiWrFsThXI3ptSGcc7Tq00oPYJaUVR9QZS7pNiXrjsqKz5UQVnNqwk4kR/Q/K0NZn8XxNZ9bneoettxOBBunVJvXWN5MlHxPVu/GvJkVD2Xpucl4oazLs/6mxmZ1wj3jlVUkZUkhy6R0ZkxD6cel51Zy+MDA38F0lf7Q7vzFebZULxG8L6JOrCwo5n01+ixbqynLSU10YuUNYiqthSabImKr+K3ktQBRVtNqrHIzSu0V0RtnMQ+lXzJL68oSWRNLBCpvjL+ExKm+wk7qlyzfD+ZdGicPh/DPIHwAuV7lp567ZMlIWfpMWVZWX5Vum2OHsjykrKonzPpLhF4LlSy8ImofYUNMjVWDWssham+iZFlN3Zf5qj0rpDQelCx4h4irsdTOLFgo63NszsH+gfpgzXNn3dVY60CyfDgeKl0DLZ18vfNXWStEmWT7hGptotovx9oaDygli9BN1ohYJtUHVJkzPTW/lCzbNrEe14TSvlfNHgNDPecwn0dZgyvtbzTx5KH29kvWzNQ6QOk27DWKWnurMmcdKL31SHJtRL8lT4ZaIx1M4pgHmYjy2KgsCSpLasxqsYJZya7Zi0bYPmiTNRtbQw/bouf62L41OY7DJUuLTT14lPbMlU5Vuk9ZByz1D1zz1byPYpTeH6n3AKV3Pljm0rsmLIfSE9Q+MvPeod5zMc9zao1d42moJC9NLIvWWIJnZVbjKFurlcbtHf0anO2tKx0CYfVQs4edz6zkreSVQHlJwPKruTbzrPFexKzzsn2qwTRYv2GeowbDqB+lTtwW+WHd4bo487sR4loV5czy1Vj/VLoEs9iI9az20pllXeWNCymNqewdOaan1uklXQPHEDUWl6z3TpYxkmbJq02pnpruBTI5VHv5JYvgylNE6d2AsvaObd7EErHaD2Y6A87VKGdIlgP3ploQxmdCnYG9a8H8Sh6eEOX9Qq1p8xqUTazntsg7qfGEUdoPuZL8Pkhp/atgcq/um6o1sjGEkSirfXN2REF2DLP8Q09jjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcbsUsyNWeW6fQZ9s2qMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxpgZT7pun+jfEL6O/NSnPhUjIyOxZMmS7U9sO5hB36xOFjQnrUyPI2mGWLl+KLnFRRcsymU6c1ug3LQqt3LMdfZkXQYql0wl9yfK1TTWLZraZm6N0cw2wtqNuRkavBbJtkTz3cqMPHMvhXHrxLXo6uD7JB/lNrLk5lqZ9lfx+YzKbYvqG8z9rDLhjfflc6O7kezDU+U2Vrn2YK4ulOu3Uv2U5E2l0cQlbUTZzZ2SLeYOWMkCyhZzYYx9U7l6wfLlfcr9FNYLpp1leqi4VrlqyjRwvFAukJmLH+WCQI39zG2Ecss1T4SzHpmLlMH0mLuTGnftbN5RrjIUWV/K/dZUMa/zr+RSoKkbgSZuI0vzpHLrVEpDucrAftgm5VNqmtJdck5Vrt+UmyA2R+Cz4lzNXMVj/8AwzgEok+kuR42d2KfxvnZsi3J3XnJbW3I3E8H7idL5EGzXTHt/duFAOSbrchF1kHw+5VKVjU/DXg6kLDO3bDWyx2RIzUMIq3eVB/a9kvsQNYZiP2UurFR7KpctzP1UjXviTE+5g2KyHsHrVrnMWgxhfK6Uh9L6Z5DUE9sibwTrNsuE4y+WH8ct1q/VnKHqnLnKK825g2kkym1RaW5XYxWmkfUyVTp2UvPsJVfdQX6PKLcBcwMaoV0NMhdCSs9nuho+Kz5TSUdRujamx9wx1qybUc6yPpTbVFyDtkXaOYfjtZifcu2Genyi+jdzTcfqO0LrDPsO/I2IuFrkjaTsqPKo+X4F+R37jtL/mNs05fazNF8Nmweivx5KbkwjyuNUjRve7KfqeZvsTyk3cBifbdd0zyPrA9tItQtzq672jWp0niw/1qfaO2D9CdfQbE0QEXEphHOeVHqCatcsB47Faj1Smn8XiTC2Wz6rKidS0nnVXFNyIY5j4zWFa7F82b6sr2wPS2K8/Mwt52C5Su7z1BzBxsWm+8hMd1LjJluvqbWW2r/J+KY6Sl5TsyZUY2ZeUzN2sHUjpoXth/0Nddt8VrWmx2dh+ljTfcmS29IaHbW0B6v6VOkdA8o6c3nN5oYIPQdleqxs94oy7giYa/MNIozkM9esy5q828H0SrqEci2L7XUluVa5XlXtnzKi1vcl9/VqLalkJMdgfH62LhuMzzLhnIVj4/4inH0S9WS1FkLYmkbNH+oatl+A4LVMxtVcpPbPM72a8RxhdcB0g6mSZfZOJYL3vRrXzxmv9pHV+jdR+odqgw0kruRGPIKvQzGO7QeqvGvamY3rLYhT7p7xmswP3bKreY3ptrgexf6PfZa9p8K+gHkrd9xY5yXX3OyddQR3G6/2flkbYx7K5XfpWwRE5c2+tWDvciN6dT7sd1SbImKr+E09z+D9SdY79nk1DzFZUOOJyi/lrOSWHa8dvEbtRSU4r11HflffMWC6ap5k96GegOVM+cN6Ye98B8NZDrXeVmRb4Foay676BvZPtoZWuiiS+ajvgBRM/6t5v5vX1Hz7gJTWE2o/zJgpZge4br/pppvizW9+c6xatSp+85vfbF9i24ktehpjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMWbXYU5ELCz8m7t9Wbz61a+Ok08+OZ70pCdtX0JDYJZb9LwtIh4N/1cWOlg1qZMYeBqPnahRJ5kRZjlIfXmvTlywk8WqbBjGvPN6ZYVKnbTOMmM51WkHdkoPTyo8DsJ4YkSdVE7UiSgsM6tbPJl1OUk3glsTUidN2hBmloqUdYESm0QYKZ0cVaeAWZuoU3/qtDo73ZNtNuwTlHnqqsbSXoKndpQFmhDXJMwq1iDsFE2NhR2Wh7ICU7LygdfWWPjNPNUJH2xzZpFWnewrWWHBE1js5NNgfneQsqlT7pge69OqnEjptKCywIBkmdRJVnWyLuPVqeaSJTXVX5RcM4sPO8La0MbKfGquYZZna+5j46myRKD6CrNmoazVqDZIlNUCfD605JNjLz6Huo+1+SPE72rOzfJjfmsgjKce8Vku7vx9THD2gvA9EMYxoN35yywyReiT8jnWqNObagxjv6Osq5PtzCpfac5F8DmwPFgXbM5Vp6+Z5eBhWwEci23lrWT5S1npybLVWD6Y7LJGWXtj+SiZZOlhf2RWRyK4/qDmdWWFillLRV0Dnwkt/H618xfHELXGUHNVPivmXVNmJofKOi+mfVznbxviaiw2Zjnw+bCflXSekqXfQbKelT6grB5h/AMkDsExIMs0VVZKWDvjfIFrJjbW7U/iIrRcs76Hbat0dzYG1FhPxfhsO2U1B2FjK/YlZp19sEwpA2ruKVn6VOMX6tUtCKO8s7rFfoV5Y3o5vqC3CmVV8FYSrywdlTyqtElchF4DsrpVeTALIsrDgLLGwNJjVuci+uulqaX6yTCoz5SsW0XwcaqmfOx5lOWm0lioLGup+Tefq4kXmojePmCNdWq2t4T9p8YKFdNBlb6nxp9MQ1kPx/o6hvyOe5/Kcjk+F7MernQilHG2vlGeRRhNvKEMUtrDKcmyspZUWk9NlRXAsdhWx66xVM72EtjaQaXX1LILS0NZ8WHWKJVFbWXFMmUB81D7nmyfuMbqONYX1m1pfYP6ONPTsS7QEhnzgBPRkx1sB+W1hFnIbUHc5eT3iP76Z/uqyiJgaQ2l1t4lD1wly3URfBxUVp2QkiXumvc320ONblHqY2pObVInbK6q8YbD9G5lhRfBOYDNcTXrfrZnrLza4HqMWRdT70bwWXDfKsuv5hOEeUFT3mtUGiVPEco7FrNWrvp3qc6HsU+L9VnSQ5VFOPbOMoJbEN2RlKw6K8ucJe8Wyosewu6rsXbI1lI1ayalGyVKR1K6S5a1qScy5vVD1WfJM4V6V4b3sW8GWhBmFt4jIn7W+Yt19WMIKy+TbF8O01B7C+xdpXoHqvYZ2Fil8mBWTzEPNRaz8UDpmGyvfdhr5j1jvL2Z1WqmT0VoeWnyDQgbs5qu05OaMaJkTVl5p0G5YWtBfFZsc9SfUSfOdmTyOBivPDkm7B1VRH/52bcqam+YrT1qvG6VPHygHLL36RG8bmv2T0t7GGpuZBbxMa6mLzKPoqovqjWgMVPAnJhSi56f+9zn4pJLLomf/OQn8e53v3vyCQ2JWf6hpzHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY3Yp0qLnREzy68h169bFG9/4xjjzzDPjgAMOmFwiQ8YfehpjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMWbXYSSqLHpu3rw57rqr3xPCwoULY+FC/ZXoa1/72jjiiCPiNa95zfaXc0jM8g8950Wdu/aSOfAat3PMNU6N25tMGzubMgfPzIRj2Vok3Yh+U9bKtUaizGVjesxNmnILgl88ryDXqvyYSX98DnT7ivGsnMxd0EQwl2CYRgvCbQhjmdNEuXLVovpRxpdcJQyWKVGuoZVLsCxfjcuzEmMDf4dNjUl85p5psu7y0Hw5M3UewV1QKFeQJZc8iOqnzK00Xsv6UkS/jKTbF+UaS7mgXkSuRbee6GqdmcHHa7Ed2hDGMh/b+ft1iMN2wHZlbhyVu1h8JqwvlM9MD/PDcipXDmmaX7l5V26OMj3VR1R81rMa49V4wOKYG4Bhu6PbFBFbG97T1CVrCXatcjGj8sb+nXXfxM1OBHdHge4vlMv3bBs1tmCZmTtGHC9QZlW/ybyxvFeL/FCeUn6ZTEf0y5OaJ9lYpeZOVg4sJ9YXpsdc0mC6JRnC9JTrYiwbc6OiXOugXDMwXeWKN8e7qXL3jGQfUbJQcglS44arpJ+UdNzBfLLM6j7sj1jfTMdDcNxXriUH04rQ7k2zfZXrN+WCMV25tiAO+xXKArqEa0M49Xhsv5o5NesL80YXkpjGYeQa5ea9NA+oeV2NcYnqW8rFGNNJa/T1Jvo2c0U0bFleFeP9mMnnzyBccrWGZa1xa8zWRKrtlMusDCvdSqWR8rmIxA3Gl9pIrdfYOINxmC7OyziW59iBz6TWI8r1bcajfGO7Kl0550+s27YoJ671S/NWyd22cm1dmj+UrqXWNDk2KtmsWUdm/1JzuNI7JrvOLrE+InYTvymdke1VTdZtc8n9ngLrusa9V9Yxyo3SH46D8Pc7f9leUYR2y5a6a1vkofoecxun+pIa43LtjM+q9BXW7w+GOEyXre8jemPArSQuon/ewzIxd6rKTSXWAXsWtVZSeyNM12iLvNl9ag3Crt0RrI96t7RsnFIyhGMTazukyRilxgusy9J4gOXBfsN0iQ0kLqJ/DY31Uto/VHob64fKrWLJ3adyWYmw/Wwl6zifs/uwPrE8WA58R5J6BVvnDILPzdabOObU7IGxvq7GVAwzV6tN3EPWuKkcFiU3n4iah5rsgak6K92vZJn1e+VqGtu/JHvYzqjbqrkjr8e+iXowlp/Vs9Iv1ZiToM6M17bItZgfti/bZ47o6aIRvbbCOsR3Xm0Io87PxnDMA9PDtirJEytbRH+ds7miZj3NrlHvJhCmSzV5x7K9KHliOlDNGFpKF2H7Phin1ulsPlRjrNLPsD2yP7G97MG0sQ7YfKbWT6z9ca2p1rw4jmR+SndUz5fzJNYtPhPuLy8m6aHsqTFOrZXzGXGPHutF7Vtkm6j+ME+E8/qafRvWv/A+9T6CzQ9KB1hHrq3Vh2thOjZ75ppxhcl9DWxN0eR9lpJT1PewH7J3V0qXY2vCwfhE6cQ4R2QarAwR/f2KrRWUbo99HWUr6xHT+j6E8X0UppFlUvtiav8KyXrE51PrA6TU9sPQG7FNDiZxakxl37gg8wu/G7MDqPzQc+3atbHHHnv0RZ9++unx3ve+l97yxS9+Mb785S/HFVdcESMjI0Mp6jCY5R96GmOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxZpdibpRdt8+NWH3s6rj44ov7opU1z40bN8Zpp50Wr3/962PVqlUxOjoaERH3339/RESMjo7G/PnzY/fdd9++sk+CWf6h51joKlBfzbMTu+qEBn4Bn1/446kAdcKBnWBTJ/zxBAM7FalOTqhTkZhPfslfY7GUWUVRp0DwtDCeoGp1/ioLnCpvVl9YL3jiCU84s5O6LQj/jPyOZcLTj6ytI7TFv7wX21JZAWQWldRpFWU9qnQtswSJ+SwSv5dOcCCZ1lRZDlOnQEsnXGpOR6XFjBshTp0WZqddVJ/APshkXJ2gVFZRENYeqt+w08nK0pFq/ywTysWtIoynj7M+1KkyHJ+YJSa8FsOqXbNN8NSnsmyAYB3kMzJrWhOFs73ZODsIO+2pLP+pk9H5XFiHKAPKulSGlbWhFQPX7Uwme7pRzS0la5XK4payopX3Yrpq7sTwvgN/IyJ+DGF10pWduEfUyb0sp7ICjvkxK8HsJHeE7nundv7iPKusBKhxMsukTowza5wRvTpQYzE+KztRrdpSnXDOMqsTm8piY+aNz4d9pGQBCe/D52D9fdiWthfFuOWwJtYJa+qSofRjdopanUBtoo8riyBszlXzrBovmCUylR7KWfatmvkQ5WIf8ruyrMtO+mJ8S5SzZKGjZP1iMG+2nqohx5R2oTwRvE8pC7nKojBDWaVCSrKoxo6sl2GfJr05xmW5tP4tzUlITdthPmyMV23H6ke1i8ojy6ys7ag2yHjU31oQVhYK0upGjZVDtrZW1o2wny4T8dmvsf1aEFbzIbN4iXnj2ht1fqbPIsqqXNaN8jCg+l+GcV8ArZyo9NKaWclS7WA8W1srfROZKiuetag5F/sNs6qK1FgXS1T/ZjKg1lQIjjNM/1WWs5lnH1U27I84T2ZfV7oG9nVlJSzHF2VRXlnSyDKhVwycL+eRa7EcWJ8PFdcyedpf/K72+5jXgJJ1F0RZRlbyi3ln+bBf1Oi8Oaao9ZQawzJ+qtfKymOCspqUz1PaH1E09YbD+hiCbdQm96Gc4vheqnfVH3FeLrVJzV4QXtPq/L1E5K0s/eTciPPlSyGMa2Qcq/Yiv+O+ltrDy3pUVpvbEGZeRJSlcUStp7I+1J4z3ofjC9ujLFmcjejpK02tEOX1D4jfp5om618lW8wKsdoTKa1ja2B7LGqtXNqjZ2vbiH79U60hmHc4pZcsI2Hc50eU5cos8xpxH5afPVfNuzK2D1WyDK6ur9Hd1LsilobyjNgEtR/CqLEQmeXc2Tr1IKU5h3lniuCWOUv7m5iG2oNR1hzZ71g2pRvi9TnX4tirvJkxLwdKbpS+x9LC/FoQZnv3JYu9IaoRZRP77rEiPsuBZcO8lRVPbPt8F9CCOLX2YN8JKM8Uh0OYzYdNrHgiak5R/TKvV/vdSD7TjvBKVdq3qvHGUIKtf9X6sWb/cjJliODzqJqTlAfFRHmkYfMM9jG0hIsyiWPHMeR3ZYW35BGtBeHLRXzq2PdAHD4z1gWOAahXZLthOUvvYyPKVk9VG5fWRaV3oIhaC7O0Vbs30W+NGSKVFj3nzp0by5apdzT93H777XHrrbfGWWedFWedddY2v++5557xrGc9K/793/+9cXG3l1n+oacxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGN2KSo/9GzCgx70oPjGN76xTfyZZ54Zl1xySVx44YWxcuXKZokOCX/oWXUyAmlyOoyddldf2yuLeewUJqJObZcsO6qTe6wc+BU+fsmvLIRmHbVE3uoUaZZDnYDA9NipNnVaFNNj1lTUCR28j9XRJnEt5oHPiicYsk5rRBDr//udv8rqizpFzfqd6osoE+xkXZNTSjUn/oeFkk12mqfmVBqml/2w5qQzO+lYY+WD1Y+yAKBOQ2M7MatX6iQVlu9qUg6sF1X+eeR3zA+tjbAT1din8XQUnuTE00/MOiZaI8HTWMwqqJJNZYGNWYNRlm5Lp6YwTlleQZhlupq5KJ+1Zm5gFtiUpaaM3xEnKGssIbFrEVbvyqIEswqlrKYoS1ds7l9G4gZhYwDOgcqCDpJWPtSpYMyDjXdrIK4NYZRlpCNzfc0Eec+D514K4cxurCXSxbEM9QuUa2adBusFT1yy8VONgcr6B7tWWRVhJ1XZieVB2HyFVlrQeguOSUw+lWUoZkVq2BaHHohxHwnMApA6MdrklCfOC+wEcQR/JjVml8YGVT/KYm32IdU3lSUcVkdIS8Qzy4U1lsE6z7cIfu97VJQ9zBvHFxwHWVxJ579V/I73of6Qcl1j8ZBZDFNWZtR8x+aVyZ5IVifNm8AsSGL8VM3LzLJpjaU9ZrlG6UjKWkf2T6bjDlKS3xrr2swSI96nLE9l+TFdNQ9hepmGsm6lrIozi3HKoomy7NeZ29EQ7F4wHtyu1hCZhrLWj2G0VpZ1pCz3s3E0olcfGIf6s7LomXOFsnKiLJSV1ouqPzM9Xq3T1HpjqiweLIqIrQP/T1idRXALDsO2bqZ0rpKFa2WllXleUTo/tgGbf9V8gWtlNhbVrA/Zs6q8sQ7IHC512BaEcT3BrIMo6z5433xyLcoQ9v+fiWsStJKG5US5xjYugW3J5hKlx6k9tSZ68UT7bMOek/eM8WfCZ1R7AmyOVtbJlRWtTLvG8kuTfQpliSzDahxiVm4i+JjdxOsCpqXGuHnimrwX+zSi1rT5jJiuWr8zq4JqX0/N20wWsP1wvcnGC9VmykIQ21tS1uFQDrEOsvxKP1T9LOtWrRHV/j+b8+YN/B0W6f2iyVq4Zv+PWUNTFgGHYfkQ9S+2FlD9hlnrw/bCORD7prLume9Jaiw/4vyU+8fYj9V4gHNmyiT2eeU1D/PO/NSeOu51qT3KRHmkYfvWeK3yCqjmQ9YvlaV01p+V1XXmXWgwvUR5kVD6XcLWRTvaK1Vp7FXrvNI+pFp7M++BTT18sd/V+MTmA7ZmxLJF9LdjtjmWsyXyYNaZMe4YcS17FsjvQPgZv8+4nRRTzr8li9mPIHERddaH9yXXKuuX6juBBOsCx0PslymrNV6Q2HtLZSFYzUGs/ykPc1P9brkJJevaNfteTLaYfERo7xDZXsIyreybzNKr2stVe2NMB8fnVvKS8coKJD43ynUnjREoJ25xqD2+Aztp33Ax/I7PhHM4W+tgf0TLo1h+fD5Wj0rXaGJVU+1hsncPNRZnS9bd1ftk1veVB8EdsddlDGFOVLlub8Juu+0Wa9as2Sb+M5/5TMydO5f+tqNo+M3q1PHtb387nv70p8eee+4ZixYtisMPPzze//73911z+eWXxxOf+MRYsmRJLF++PJ773OfGz3/+851UYmOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxuxw5sT4t8oT/Zs2X0duP9PiUT7/+c/H4x//+Nhjjz3in/7pn+KCCy6It73tbbF1a++T/GuuuSbWrFkT999/f/zrv/5r/J//83/ipz/9aZx00klx22237cTSG2OMMcYYY4wxxhhjjDHGGGOMMcYYY4wxZoeRrtt3wIeen/nMZ2Ljxo3DSWyS7HTX7TfddFO88pWvjFe96lXx8Y9/vBt/yimn9F33nve8JxYuXBjnn39+LFs2bt74kY98ZBx++OHxkY98JD70oQ9NIvd50dzkd5q4Vub+lYn6idKK0CbLmdltZeYYr81yoKlkZoY9ot91A6adZqbRfYSqL2aWXbmbV6ax0yUHusNCV8zKtQhzuYPuZtCkNtb5L8nvWDZ0NYdpp7sQNGmtzKNjvaDLiqxH5XYCy8lcyKj+V3Jnivkpl2b4rNl/lLsNhLluYubH0T/gMFga425vatwhl9xRIMo9E/u95L6yxmUlwtzsKDcJKOMlF1ZtkTdzl6pcY+EYh3knDyVxg2B/YmMqmMRfCq56NmB9pBw+BuK+D2HMA91RzCe/4/Ohm03Vrln/yuWOcimadctcWQ3C8pusuXvsO8pVJFMHVJ+banc3zH1EDaVra+YvHCOZ20jlUgphc79y7Yl1jK4glEsxlh6WOedr1Vew32Me6aYR00VZxnEfn7uTxia4b08YIx4El+4G4Ss69+0HZb+F6R8R2tULcw2E+oNyU5YuZZlbugjt4idR7oOVO5lsYzVnlNxGqjlDuaNjqPEi23LYriXHOv/UMyc18p31g89Q8+zMXY5a9qj02FiOfQXTQ3kpuR5S4whzOYv11oYwurF7IikPygL2G9Jn58Ez7Qk/oxyuR5lsQTiftbTmGaTd+XssxLE5PqK/jnI+V2sMrPulJKxcDCpdMdtCuYZr4ia0NK7XUHKtM2xy94O5/ym52cPr1bPX6DLZF1T9lvQvXGvi+K1cUbU6f+8QvyuXaRlW7nBbEGYunvBafCbsszjOZB3g8ym3gAiUjy3JNkN4KeTd18Qotyxv1TfZHoGqZ5TJrC/UYZgbywg+T+L4W+PyjqWFfU65kmNyoPQn5fJ6qtgU/YqYmn9xfirtKzRBufhTOhXbS1DzKFs3oDt3pWex8tW4usT8mI5S456TubFDt3Tzye8R/X0yy4p54xiB61/UGTI9Na5h/OMg/FXyuxrb8ZqUW+WCG+d7tj+F9aJ0G6WDs7UajplsLyOiV2blklPVXead8j1s/Trn5JqxpORSbzDdhMl6Uxf3JZeVJf1F7Tfis7JnwblJ6ZEIk6F9yO+DsL1adMn6YwirNllG4nBcQNi6X+2ZqzbJZ1Tu2tsQZuOM0q/V2MH2UnEOD/L74DVsLazyQFgfVn2AzdtsfXcPuW572BTjvkaHva+G/Ym5qlb5lcZFpeezsbDGvS9zLaxkQdU92z/GdJUrddTB9ydxyuUsxC/q9ItNqj7Vfm/2J5RfzPuJEP4yhLNOcY5UYxW+30rwPtUflBv3LH/Nupm1iRqLS26bkZq9aBaPY3u+9xy2LOe8rOaLLJcaN9V7xdJegkov21HJHsLeQd4pflfjLZYp+zfmh+2PfR313OwrqLurd2E4R6R8KlfUbJ8N74M8apZibN28FccWlL02hHP/+SYSN1i2u0Q486mZi+eTePV+T+3FZD1jxbD34nhtRO+52X74YDzro+o9bMll9DBgsjwGvzWhNB4h7HnIO5dtrmV7R0pukH3ENYsG/kb090EsP86N2RfwPhzL2hDGvlLa48N5C8vReXe1Vb3HA46B+Hz9M7KmF7cV3wlhOa4keWObop7P+n9Ev46d+khJ3iL43ohqE5RJ9m4R60WtleeLMMsD02D7ATX7w0zup/ods5m11Lhu3+lfRw6PnW7R81Of+lTcfffd8ba3vU1eMzY2Fueff34873nP637kGRFx8MEHxymnnBJf+tKXdkRRjTHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYs7PZgRY9pwM7/ZvVb37zm7FixYq45ppr4lnPelZcddVVsWLFinjuc58bH/7wh2PZsmVx/fXXx6ZNm+LYY7e1HnHsscfGf/7nf8a9994bu+22G8lhIgatDSnYKSB1qrRklQC/0leWRNiX7OrUDn4hfye5Bk9qqFNc6lnSwhee1EFUenmKSz0fnpLAEw5ZDjiR3GfQRFg/pB/+Q7p46mornt6bN/A3ov/0izqZ2Or8VRZ9kBaEWT1if1EWNo+D8CWdv+qULJ7CZCdCsJyqzFjOrJtSvx4MJ+xkzrAtG+RpaHZqbZCUC2aBJ0JbREhLEnjyFk8I48lDhJ2iVpQsgapTjNhe7KSXOr2s+m9ej/Wp2h/LkW2Nz6osjDCLPNBXUGaXQHgDlGleZz4YQ2slKEN4AotZJcC2RPBarE88scYsIqhxmY2TypIr1jmepM86bWLFU12P/VpZy0iU9ccMD1uFSOu8Jcsk6nRy6XSZsrxWmovViVGsn2tEPLN0g+lhOdhJOXVyVcknsyykLDJh3bY6f9UpcZyHMO/O+PNQmHNxiF8OYUx6ZSeN2yCuzxIK6/8R3AoajoHYd1rBSethWG/MesjgNcyyLuZXOoGvTkqqfruJXKvmeKwDJifM6noEH++HSem0NfZBZemnidXC0gnSFoTb4j6si5J1XgTbIJ8F01JzuNI7E2XtnaWhLFUrPb+17c97kyJERDwcwvgo1+Xcjv1YnYzGOsr70JqfkhGUQ2KBQdYnG/NxLkePBQpmBaFkLQnLVJpnJ4LNsTv6tHNa58X/M5Ts5fU1lgFL8ltjBYGN5cqKHIL9lFl6UZa4WZlQ9loQRn0V5TAteijdUe0dlLyMoM4MczRW8yM7f1EM0cDI3RC+hlj3HEPdHuWp5DUArSC0IIyWUJhVbqWvqT2JXKuhToHlwbyx/FnnbG8lor8PlzxDKIsmyI6yztv0OmYphFkLG4TpudieeB+up3GOyDZV+pmyFFhaK6mxiMmRmp+xTNl2SmaVtRF8VtwPS3Ac2leEO3IxAnnPhZ8XHR6UDcyyLpYB5RPr6BHkd9yfxXhmPVtZO0bZQlnINQ2u6ZXXB6XzZnrKmhnC1pTKeqDao5lq1sd4+dVcrOKZpxelnzDrnSVLuBG8XlX9KZktpaEsQeV9zItLRN04kij9GWW2RcqB8xOuadXYkfcpa5woL2zuQ2u7CPZHtv+M8lazN5jjSBvilGUwTA/bmL1XKFm/w/RqvL2wfqJ0N4TtmWPZcvwZ9h72oui3sh0xddY9cR/n++zC6NeTmBcEZWWNrZXVfKhkj71jw/yYhcoIvo+P/U7tS7cgnHMcyqGysAgymUnvB8+K3ho3wbVj6t1D9wISF9E/v7Y7f1FJRz1Bebcje+1073CwHKwvogwxrxmDsL0stefE1nLqPY3yzsHAfpT7tcOW5fnwLym9061ZTzN9tmZNwfYslYVNhKWn9huxv7E5Rc0takxm9YV6qVpvsPUf3if2WfN90yOhze6DS/Ed1KEkC5T1e6EuNqk917Qmi+8M1HtorLu+TbfOX2UZm73TQ9QemdLN2TsopY9h32Ayrr4HYGuBGt1gqsh9r9KevCpLjQcJBvP4cCuJG4zHvpDtpDzGKf2ZreuVlxnsV032OLH8TDfHPiYsceNaN6fBuyEtrIrlEEa5zqrZimVjHk0HE2x3/mJ9Yj9W8zJ7d6WsY+K1WF/M0i2iPGswr3Kq35baUnk1Kb3HUGkged+w52VjOoxE//6YumaGsNM/9LzpppvinnvuiRe84AXxjne8Iz760Y/GD37wgzj99NPjqquuim9961txxx3jbx9WrNh2I33FihWxdevWWL9+fey33340j/vuuy/uu683ut91V1P3gsaYnY3l2JiZgWXZmJmBZdmYmYFl2ZiZgWXZmF0fy7ExMwPLsjEzA8uyMTMDy7IxxswS5sa25+oG2elfRw6PnW6cdMuWLXHvvffGO9/5znjHO94Ra9asibe85S3xwQ9+MC699NK46KKLuteOjOhPbCf67YMf/GDsscce3X8HHnjgUJ/BGDP1WI6NmRlYlo2ZGViWjZkZWJaNmRlYlo3Z9bEcGzMzsCwbMzOwLBszM7AsG2PMLCEtek70b6d/HTk8RrZu3bq1fNnUccIJJ8Rll10Wl19+eTz84T2/gD/96U/jiCOOiA996EPxrGc9K4488sj427/923jta1/bd/9b3vKWOOuss+Kee+6RrtvZaY3xifztUf6sdxBmJl25DULz29eR35WpfebKRrnFQTdEaG45zUEzN4IR3KXR4DXMXaFyuYNundIs/WMgTrlUQ5PUnXwWwbXMs2xExNEQ/nXnL1rZvkG5ycL4qwf+Rmh3FejKI9v10oo8mMn8iJ5ZbuW+gZlgx7Byb3gkuRapMR8/DHPzzOXx/vDbn8RvfvObWLZM1c+2aDn+WIz3r+1xj1mCueBUbmGY+3Skxu0Xc7+sXAWovpBpjIlrlWn1TAOfA/s/ygtziY7PhG6rVHqd61fC843Cz7jmQhcaKe99j8Fc/uHFET2z+8rlH3MRG9H/3FmP6BIP3dVhnaM8lVyRqmvnkbgV5PcIPp4r1wtIye0N9h10r/SnQ5TlnJNLYxA+g3IpxVxj4/io3Kaw9JhLr4j+OsP+3YJw9skaFxqsL6gxAtsD07iLxGFfx7wx7ezr+KzCxfxIqxdOLxVYnAdBGKsW5TddtqO72F+oMQnj/5PEK1cZygVXyrJyQ6LG8HxIdB+GY45yRfQAiUOUfsfcLCrZYK5xlWssNn/cGxHvGqIsnxXjz9VEh8BnYK66lFtO1Xb5/MRVeUREfA/CSs5Sx1Z6/k0iPvPG9sIxRz0r051w3MKyoVubdO2GZcA5CeWauHBeDj8fAeEWhNsQHoXw2s7fMXSXiWA/xDrPdkOXrPhMmCGmkYXCwUO55sPnZi79WhD+ekyMcjOq5Je5Oa4BxxGmV5Xc4twbEWcOUZbPiPF5uZSvmicTNXapZ8P0mBupGpd3DOV2mo0BKJvKrRkrp9Ivce5AnZK5fVVu2R5K4loQxjkJXD5itayB8O2dv4eRuIj+KkA37rn2/oVybY5rZOUiMFFtUnIdq6xvYFsyt9pYTnTvh64us0wlN+CD6THdS/VxtX6LmKwcR5RkWW37qbIoN+cJG68G2YfEqTm15Cq0yTjM9KII7Q4571NuiB8q4jM95RJbjTOYT6vzt03iIvrbYdm2YTzvjioxZjcKYaqOYt3j+ITPmnMxyrRy/4iDR7vzV7m5Y25mI8rufJWOycZu5TJY9cUsa42raSTTyDLcGxEfGOKc/OcxPidjI9boCKwukdL+wETjVcLmeTWGqLGDuXFUZT6scE0LwqgzsjkH2wb7P87FqMejbs7cSjPdYIB5x24bt5lf2kd3GEc9X7mCxGfJPonzHtIW8Xkf1rHaf1FjXN7L3MIOwuqrqS7N1tDby7D163fHuCxjWjhG4v4lW1PgPuvlEGayWiO/7Bqluyt3ztkvSvvhEXyOVvvWal9rW49/ei2h+mbmg3M86rDwTutAyI/pz6MQXgnhK0gxpQ7ThjD2gcwb19vYB7B9mD6r9CcE64653sa+o9YpTK4xP6WbLSJhtU+KsD0Vto+ODHterl0rq3cxah00NkFcBO//eD32iRp5YtcynWwwjGmkzoV9UPU9vK/V+Yv7QjjPIlj+48jv+I4GxiJ835TivhAuxcdGN69sulsrioNTLurmW3O+xufHfor1pd6dZ0HUWlm1T+ouah7AQQzn6Ky7Uv+M6B8PSu+6EdY3mqz1hj0vs29EmuzpHUbiriNxEfo5s53UnIXp4RzNxkjlrh1hYyReq8Zv9i4Cx3Sl22AdsfkJ8l7U6oWxO+WnQzhEjEIYbuvzCJ7Dy/Xi901Yfqy7ducvW9tOBHufrNauak7N/qD2u5X+P7gejWj2bQDbTxuEfR+EZVBjR5BrJr/3ZYzir//6r+O/zv6T+NIbJ77uPV+MuGXlK+If/uEfdki5ppKdbpz02GOPjcsuu2yb+Pz+dM6cOXHooYfGokWL4sorr9zmuiuvvDIOO+ww+ZFnRMTChQtj4cKF8ndjzPTHcmzMzMCybMzMwLJszMzAsmzMzMCybMyuj+XYmJmBZdmYmYFl2ZiZgWXZGGNmCXOibONxbuH3XYid/qHn8573vPjkJz8ZF154YZ9FzwsuuCAiIo4//viYN29enHrqqfFv//Zv8eEPfziWLh3/8vxXv/pVfOMb34g3velNk8x9z6g7bYjVlCcWm5zojuidvlEWuUrWPZXFDPyynlkowLJjGJ+bWfHE69VpLTzadAyEW7EteK04efbQTj4ogChse0N4dwhn1S2HuBuUhU128mGxuBbLeSsJHy5+x3ZoQ5hZIFB1j3WO92Xbq36krN2URF1ZR8gjMniCXcFOeLJToXhkZhhsiPF2Y1YYIrhloRoLJEimUXMSFo8VZV2qU1B4UgXrj52Y2ZfETVSORJ1qVv2DnRRsQ7gl8sn635fEDUJO6KAFoVMgjGMAFiOtBo5C3HpiITgi+mUkr8HTWneJa5UcZhvikU0E72On6GqscbK+hmVT1mkQ1vdrTlNmmdSJ0wwPW5aTJlYA1clpfJ6sN2X1V510zOe8TlyrxlWMZ5aF1olrmZVgdtJ5MB7nu+wXeLqTWWGK6LcCkM+NaQlZxjl6v85fZQVQGTVK+b0Y4g6EPG5Q4xpaCv/ytmXrm8/VifE8RYoypE7aMiuSWJ/K2rGyFpqgPJUsW+GpV2UZrckJ3pLFu2FwWzQ/DY39vw1hpveoU8ZsLlPWY7D/Y35YvmxrZT1f6QTZ5r8U1ypLKPmMamxRFj8yPbDSMw9kRVV5ingL4lDXRgt+eA2egs7rHwCdGOfzPotDOKZkv0bZU5b0mQ6urI5gHmwtgHV4MYRxHYMHC5llbETpGmMDf2thc0wT63fDZlNoK4BKLhg1ltdKVkGRGj0+279mvc2sGOLaR7UBlj/7IT4HWq1rQxj7d1rnYdavBsvGrCNAGUbAQtjy4OEfQnhN5y++68Di3wdhFNVM77AV/He0Jkqtl6JFImWVGeuI9YcWhNsiPabb4O9oBQv7c8kaJ4Jps/6lLDjXWLYdJpui37R6qdwRvN5LVowj+mVyHfkdwfZg40SN1V81LyctCGNHZfqQ2hvE/FB/yP6N92EY9XEcD9haQdUnPN88Yo1vOYRxKmMG4SJ6VYr7aaNQz2Mqkfa25emrF5zvWxBOWca0sC7wmdoQZhYIcexQlvSxXVNnUJ5RlB6XYWXNWc0Dg/LbVAcokfteSM16lHmLwTpTVsKYZTAFu6bmPhx7s3zKShG2I5N7bBfUHXGcaUOYWY5jXkEi+vf4sF9k3sp6mmCs01fQmxVuL98GYUwuLWpvaomES9bBsV6UdU9MO/s09juse6wv5e0k60i1A8oN3rdo4O/gtWo9mNeofRa1Dt+RjHX+YbmVpXJmWfdydmFwLzJqjkeYJxA1Vqo5N8uP8oFhnCPYXpayCt2CMLNyiWXaJK5Vpu0zHp//MPJ7RNwA0TlNYhdbDeFbIPzw2JYrStYYI/otEWdbKnlrQ5i9h1Q6itKrsA5Sz2F6ckSdta9EWUxj1v9q9nnVO06WR9bhsGV+t9j2vQfT55SeUrKchs/A5svB/Ni4WePtKdNT+nWNt8h25y8+H+6HqbwzDex3uK+Lbc48BYBc9C1H5tNLuhZ3jyRxEf3yi48ySrJ+KoRxybsV+3rOtdgOG8jvEXofOfVf9c5LWdA8mMRh3qpds+3V/gSmx/Qt9f5DWSZkFggRFT/VNPGwwxZeah+qZOGwxuov20vAelJWG7FNUZ5YmyOqL5SsgqqxiO11wv4Pvk7Arrm88xf1ZNw2wu2OX0M4xwAUtz57cvh8qK8kJUvGg/HsGuV1rQVh5rlK7Q2qvYo2iVsnwgz17gVheoDSbYZpYd+YBqTr9omYQa7bd/qHnk9+8pPj1FNPjfe9732xZcuWOP744+OHP/xhnHHGGfHMZz4zTjzxxIiIOOOMM+LRj350PPOZz4y3v/3tce+998Z73vOeWLlyZfzpn/7pTn4KY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHG7BDmRtmi507/OnJ4TItvVs8555x44xvfGJ/85CfjaU97Wvzd3/1dvOlNb4rzzjuve82RRx4ZF198ccyfPz+e//znx0tf+tI47LDD4pvf/GbsvffeE6RujDHGGGOMMcYYY4wxxhhjjDHGGGOMMcaYGUNa9Jzo38hOK93QmRbfrC5atCjOPPPMOPPMMye87pGPfGR8/etfH2LO94Z2R4fmq5kbFuXSBWHm82vcxzHz2jUuo5lrMOXOBFEuBNIEtHIxqVwWMfPbYMoab2tBOF25Kg9HWAxMI13HKvdULWir66EcWy8miSHKpHaa4Me6wAzvgbAyW81ciiLMhW9Er632Eb83cdeOKHdNNS7bGczVdJZz2C6sBtOPKLt8RGrcP+5T+B1h7gcQ5eaE+VRDsL8p9x3subGvoF16vI+5gMFyortk5YY1y6zcmEIYJ9E8WYFeOnBIehKE94PwjZ2/bYhbDuFfYH2iu5CsjxoXguhuQ7l7SrAuMI0bIZx1i4MVc2s1GM5rlPn8Jv0d/ZOgfGO/LfX3LNuw3d7M6/xT+bI+hjA3LhF87lNyz9oW2xPTUuVkrtJrXN3geJDyieVB+UWBYc+HZcZr1ZyU1+M4g+WEOl8JfS9d3KCLZ3SbgS7oNkK43fmLnhuvhfAiKOcm5aLtcZ2/ylWkUgqynrG/qPrCsfF7pAyqvpAcR2rc3jA3lMqd9ffFfcxFV0mHnKp5uYRyactcyjIXlBFlmcRrMd22iGfjy3wRVm5ass0xbxwXlLsuNobtReIi+ufw9D8DaS0iP0f0u7jJORWL8zAI49SC1Y+uL7Lb/0gUs6/fY93leIbPrFxAtSCc/QFd2igXRRtIWLmb7PM7DeT1mC7ep9wsDmOJzVw1Kj1gR7mexDzZXNc0DaW7s2eueV52jXK3i/0N80u5xrrG/qj0wYzH/HCMwL6C/SMnyrbIQ80d+Swg4CibD4IwTk/Moyx6asYi/18Io/qY4iKnDuViL2/Yl8QNFg7jsw5UH0BX8WxsaEEcujtV4w9zk6XAMmG75jOq/qfcTe5TmW9T9g69f6XcqzF9QblyVddkWM2zaqJh19asfbIu1T6OGstTllXfvI5ci7REfpgG9r0nQjifS/XHh/LonMOx2u4VWeAS4kBSzMsgfAvWOdv7Q9f12EeWkWsjem2IAxG6YMf0sH2yjdWeac08m2XCcmIeJV25xl07GwjnDfwdNthXlCtI5g5WjS14350kvma/jF2j5FeNASl/bE08WDbmMlrtpag5nP2O9YkTn9JRMx7Xj2qseui216yGKJRf3PdCl7Ld5aHSZ9TaJH3KorzhuxXlYrvV+aveAyg33syttpIhBMeRTEO54J5PrkWUm0oci5T7451BaT3edA2Qz4ZtW3K7rsB6QpnEes3yYx6YrtpTY7QgvEnE4zzCXJur8QLJtFF3xPU0pIcijmtrVrQl5PeI3n4YWhdaS4oTEf26bf6AY4h6H8X2hbDusZ9h+2F9sf3z+eL30nsM5Wa2CUpnxv6l9L4kn/XeCa9qzvqYeOzIOlF9s2aeTJjeOghbNyt37Mz1M5YN88M2wLKxvW3sb6qcSL6XwLEFy4/t3IZw7gdDGVBERiGMMpndEOUYw7hvjd0l19k4FnwLwjhX387eK6k92TaEWxBmi3alPynZSj0G3/2otd7gejSCjwWDlPqteke4gVyzv/h9Z+1XJ031g1bnrxqj1LvgDGP/wbFezeeJqj8sv2rzbEf1jkPtu7P9HWxntS+Ue2BQBnxXjDKLyeUeFxZtM4RxPxvl+ojO30shbhTC+Op2K77IurjztwVx6v0v1h1716fGNdRBUOfN65luHNFfCVeSa9QYodo181PrQqS0bzPZ9zfGDJGRKG/HTAszmMNhWnzoaYwxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGFPFnIhYWLhmBn0dOYMeZTJsiv4jAi0IK8su+XU6fk1fc8I5v6avsfzCTkaoU+jqNE/GM4shEb0TvYPXlE44K6si5HTmvDW9qDF47uVwgoGdlMLTUZBEnxUitB62uvMXHwNPSGJTblVlTrB9lKXTrCOsQ0wLLXoyyx4RvRNbygKYsmrDrBKok7jMMgmiTtisG7wwytbABmGWUDK/YQ87m2LcMm9NGTPvpqdGmGU1hToBOZhWhLYcnPepusI08ITdYYMXRn/fLFnaiOidOsI4PNWP9zErZ1jmxfw+tDiUpx6x6IdC+Ojg5NB9O8SN4gVYNrRckOOZsqqprCNg3TGrBGocxWNh7IQzxqFMsjlInX7EcURZMk3wJKfqXyX5yD4+7NPQSemUpwLLzeZMZUWx6fjGQHNYeJKuZJ0X2w7TaHf+4ryt+hs7oY39B58P41skbchvBGRoLoSx6lKW0WoQztVY5NUQxrmfFedq8vs2Cabc4jFNNd4xK9n4IDh3lqw/KPnA/PABssyoAyirKOzEO5ahXZE368PKaoCybjEsmIWHmpPF7PS6sryrLBmx8QJ/V5YtkCyHsiSjLDCwNjiSxEX099/sNzgnYRj7EFr67MwzIyC/uJjFoXo1hFudvw+GOLT0dR+EmRWEiN4cjFPuDyA8v9ULb/oe/JD1hfouKgI3iXDWh2ozZpkiomchguk7g+kxyxSlE+wRZUsiNbD1oLKEsSMsDw1a2q6xBlbSIZRVEUwb65KNBzVkvSkvCVhmlMM85t+COGX9Bi2PpM6lTNSrk//MqpWytviYwQujT89cBM+Bcr9cJNciv2PVo0UEVClTd8dqwbHjBiwf1nkmoqwaI0xPw7ka660NYbwm00ZLiqpumUVt/F31I7X2zvLVeHNB1sXU6Ne3Rf9AruZLZZmJyb6y6sbWRDXjlbLumijLQqpM7Fq1P5LjErNmg79H8L2x0vo/on+8wPVhyq1Yzy2CZ1oOl+RQg/M9WgE8HsKoMrClMFoAHoXxadPj4IfrBv5G9NcXmlHCOm/HtuB4qNZNeY2at5U8sX0trHvmLWeQRQN/I+r6UaKsFW4vS2N8o5N5nIrQFhNZGZUFWTZGKl1b6UMMNQawvPE5rhPXYvnzehyPlQUk1nbK+jyG1boyrxFWekZgHwr3qNkeGA7RuJ7GYuTa+1pcm0P4FvXceQ3WJ445uG/H5ju1j47twOolgluKw7yVhXj27kStAbEi2+Q+7LclbzhsfpmqV2dNdITSOjeCz9vqHVTJU5z6HduLWerC58A0cK+LWZNS3pQwHvd12yQN5fmKWcfEsNhDQpllRiVx2sN96/UQRv34Xzp/Uc3DrnslyizzBoLti/tNWBCUvSyosmbP3h9E9Lcbswyr3nOx92lq70TNGcyyH8psae+nifXtYaLm1LtInJJ75ulHWZdHmB6A6TILcZhHBN/zUG3OLH/j9TXeDDA++6Gy/KjWYJ00VkKfR5XyURBukaTxXRKKAt6H6eXeGMo6yvLeEL4YwpuYboP9Ba35ISjj+YxoyVi9T8YxgM13ODZiPynpriUrlBG99qmx2s3mq5q5LdPeEZ+0ME9rJS+OET2Zq5nj2XsC9V5SfSuQba7mZ+VFjHk2a0Oc0s+UZcoE+6ZaY+R9kBa+C0YrnbhVt6bzF2X2KlE0lNVbOn9/A3FtCOM7qvXYf3MtjOOosp6v1hutzl9c/6v2Yd8bqTFV9Qc25pTel0b0ZBzLVrIii+VU70fYdyZ43yz/PM1MHXPCFj2NMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjpiV23W6MMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhgzTalx3T43+i0I78L4Q8+iq8XBa9IMMbpEQbPoyhx/yT2Icv9TcleCoLuGNP2OZUOX4miqHd20YH5pnhlNdaO9bOU6tnMfPtLIMn4puoXMeDS/vTuEVwYnzWt/G+KWQ3g1hL8Nbbk13X6g6XsMl1z8YN0yN3GDtCGcbYjmwNFFr3IDl320RcoTUXaBo8qGaaALgSxnjTtj5oaBufgZhmtLRk0Zs36UyXLl2oO5HVBuJxDmrgTlV5kvz3LiuLEvuzC0S440tX4TiYvoLz/2vRzbalwtoIuJ9AmHfRDHHOEefXnnL7qMQ/c2aD5/DwinB3KsljaE+6ocnzvLjOMlusTARHC8QzI95VIX02Du45TbOTUlM5ezyv0xczPJ3BNF9Mtiad5h/X3YsjzW+VdyW6Xc+KgxIGVZubcuuSjB+lAuZNGnC7poznGY9YPBMiHZn2pcOzA3diX34xH9z5XtC30e3cctJ5dG9NzT4LXo6vVuXswlbx73k7PxSpjYL4VrcQwYhT69vg0/lPQqbFeUceYCFt154bjF3G0gqAuKMa6bj3JVpdxIZT/HcX2yrppVv830psJNbATXn5UrWCXXiXLJp+ZXJgtIjfvPLJ9yi6nWEGMDf9Xvg/E5NjxVlK0NYayPzhyOrlmxaDgkLY9tORHC2BVwCvwuhG+BcE6peB9Orzg09rVxTuLogg9lsgVhlF/WjxDm9jWi197K/ZByYcXcram8mRsn5fpZjV84r7Y6f5WbtpLM7EjUWriJ2zklT8yFpNKXcE5lrsPUGIp9rEXuU67WsK9kH8L7MKxcnOWco1wNoozcSeJFXaCrKpTJ34LwtZ2/T4QF+cWwE4bNiuNBDj8/hDh0M9s3LOP8mvKnXHBjPJMn1k4RWrbyGuxzOCCWXFgx14sRWpdGsm+oNXbJrd6w2TOa6xAl/ViVu7SGVnqAci+WsPVqBN+HwfplukEEX4djnHJVXHLbrZ5JyfhSEgdp4PzKvGajrL8IwtcEJ+fwFsSh/OL+W9/j4UCS/BjCuC+AA0bOxagQ4PyFBcE02H4ShlGWsd1wns8KQwUJ9/uQJu2KMD0040bEPZNltxivF6W3lnTbJm70Inr9XtUNtiPb+1ZjpXL/zlx3Kl1nHblGudNUrtlvJb8rnV+4du4+SxviYKzaCtG433V85y92419DGF3Aoop6SWzLcgjfovYMs3xYn8oNK5J1oJR7TA/rBefdu8i1qj+w8VPp3YrsUzje1+wVD94fMfWvzJQss3xVuUpjl8pD1WuOI6X5MoLr5kp+1f4bm7eVa9IN4prsY8rFKM4BbG8M+u6B5OcI7qIZ5989xLVIXo8vnVGd6asD5q76x+J3hOkaKL9qrwvbrQXhrNM2xKl9Vdb/lM6nyEUGjiE1rs5ZHmwPe9jzcqJkJFF6qaLkal7NT2wvH/eNbiW/R/C2QRnCNPBZsRy5TlPvWjCevadSOgrWBZajU6e3w3hyAtQzyiF+xPHMzt/lEIe6r1qO5NY1rn9xDl8r4q9odQLqvTGOW9g3cNwquUTHuv0+SVvJunLhnNdjOZuM50oOS66fa+arTLskI8OAubJGSuONWoPifSiTk30mpuNgHLYd5odlvrzzF9fbSk/ARSaTXzXWY9rkXdgohHEuxu9Bduv8RZmF/ewFrZ6c3f9tyCPfTeG4gMNJn+t2LFuuG7Gfq719Nm8juD7Gd31qrZvUvI/AMTPLge2r9iXZeI7Ph4sQRd6n5ETtr7D3JsYMkVqLnv7Q0xhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMWYHMyfsun12ob4aVyfG2H14MkudesxjAneJ3/Grd/zKPk/l9JnEIelG9J+wy1M7mB+mi6cIlNWBPF2AJz8wPWWJLOvjARIX/Qf1l0P4mM5fPKmBJ5nbIrvsxXiaEpsH78MDUd1TX/gcT4Lwv0GY1QHWlTqRrE5sMYtEeB/2OWzjBE9BYV9lFh0x7ZrTUWgFQVkBS7BemBUKZill2JbD0gqgKhc7AYx9XvTTbfKI6K9TdXIVT+Ox9EpjS0RP3tWJL3VKiJ3yVm14pwi3SFrYj0vW0UR++0G9YPNk18NuvhuE1RD37M7fb0EcnsAYhfAVWJAcBDCxFoTVGMdOnKq6v4tci2HMG09HqbrNflJjSQ7J/qNO06nToNlAOBbg82V5hi3L82JbtYSdjsMTiDXyxKyD1NyXKMsAysIXzu2sjpVcszkC+4+yYMDmDlVmFD5MuzNWrYR0b4efUQ6XQ3hN5y9a9GTGtCJin0f8qhte982DxgN4oBPvw9OUfd0M67NF4pTFYayPfMa7xLVKrllbKkvczBqz6jvYF5leqOYrhFnTqLEaOlUsjfGBnMmW6pvqdDcbN9WJdFaX2OdRVrDOsIOjHsVOmJbmhYhe++Lvx0BYWVzKo/9qzG6JcnSe5T4oA86HKEOoY2fVHIDmhvA+sHixBuJRN7+483cU4nA86APrI9sCx/MaK2hZ6MshjllxjOi32sVOGWN/wPkO24rNO8rMQ8nSO3v+wTSwbzDLl8x6zVSSOnaWF/VaNXYN3l+LmtdKVo0QZS2UgfoXs6DThriadVLJ4gPC+j2Zk7fJD/WHTpmwelZDGOVwFMJg8OPUF567Tcm+fOQLev+ZCz+ghe6NA38H8+iDWZNQVkBwfsD2yfZG66DKqoJahyfM2l8Et0qr5he8Vs3LGa/aVVnUWRF6DtgeanV2nDNxfsrxS43NWNelukSU9Q/mPQHHfWwPZm0Ty15jxYRZyiEea7Yp5x0kTult2E+Pg3DWF9TFPNirQ4smLQg/hcShgRWc79GyUGbXJnEDxeiH7YFh3StrT5k4jl/qPrQ0ll6HWhCH+jq2sbKCnOmpvqNkPJ+RWV6N0Ht/Gwb+DnutfFv0b5QM0tRyH/sd66RkbVitMdkcrV49sP1E5TlJrbezzC2RrtINUq7ZXthE8URfHXlML2qr2JthVoTQiudqCKP8YnVmlWM3GIXwr9ETBpYz5UKtc7HMKIcpq2ghjOgi26SNc1+r8xetEW4gvw+SD6usdh8s4hNlcamJhcGpsgKY+15Kn8Uy1lj/mwg1XyorYimrbB8Tf4/g5WRr4onyS3lXe+0tCKMFLLaWUu9fVDnWxDZgFvjaDC9NS2JsXR3Rvw7HNHIowtdO6Jnuu1DOMVyPZn2od3P4vpB5bcK5DF+K3SXCSLvzF+t7qQgzC5AYV2OV9lbyu/KC1UROpsqTDdv3YpaxazxTIMyicY1nOiaHyto16rbZObGPbSK/R/TPAdif5g/8HcyDeZTCa+4Q16r3X534PSE/rIrlItzJesnxuOHdY+Nor08ffOwvuuFf/rSjTOP824Kwem2f48Ttau1Xo6/kg+GAorxNsPehKg9shxXkGuW5DucSZlVQzbM4b7P3TWquQZ0v22eqvEUiWXa1flTWjUt7YOqdf5ukpeqSrXWVhXSlz2M+WZ/qnSjKp5oP2H0olG0Id9oa59HVtJA9K/gR3fdUi569vht136YF3fCBK27ohjf8Tq9s6/7toG3zG4UwNlnf68J854M6LPY9bD/UlbEO0rKxso6p5i/m7VPtObD9BzV/YH5MR1T7FwjKKvNi10QejJkialy3z4t+j9O7MP7Q0xhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMbsONa7bh32WbyfiDz2NMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhiz61Dzoaddt88UloZ21YHmlDeQeDQxrtwzoTn7NFmsqhxNGrP7FMoF1KWdv2ieHUF3hsylaUTPNLlyc6LC6eoF6mIr5IGW/dEVVZrSXQ5x6H4K70OL4a3OX+V5E6sA00tT27dj2a+GMNYnc8OKbalc2SCLIZztptwoMZP5Eb2HQdPavyS/D5Jm7pWbHUwDSbPdyg1FyZ0Tc488bFcZLC/lRqpUXoSZFkcT9pifcruZdYVuBpgLUpUP3qeubZH8IvjYptwFo3umbCfmIjmi7B5RuF7F5NAkdnqkwaSOhjB401jw7F7935/uNNpw9ALHBXQ32dcN81lRxlDulUt05vJXuZWYT67FeOV6BEFZZX1R3cdcRKq+qtLI8UC505kq0kWs4gG4LlEuDthYh+OcGtMGyxOh3e0qNwlMVnGerXExkmm0IQ7dhKPrEOYuRLkaVC6ZOnV0OzzHfiALKE/LIXz7wN+IiCfgtT2X0HPRh1XO9w+CazGMbuywuW9pwX/yWbEumNuQiP52Y/1IuY7F+Kw7dB2LYwe2O8p91imOLZiumh+uJHFKHyu5acf8mNwPe17eO/p1Hsy3Zh5WrhlLoFxnGpgf+i7Feiq5e8ZxFfubavMsx2Hid3Vfhlsib1UXxO0N6szKvVS78/dGmEfRjTuKDc7b6K75t0hxRiGMev4N+CxZR/j8yp0g1uPV5FrlPom5s1LuyNA9Hso1+LnuUuOGhvUBbL8aN0/MLVVpXThVZLmw3DWyydZE6j5sD+Wqi1HjPouVB3UCdPWbY4aaI5Q+nu2Fc4jSuZh+j2MV9keEuIVXS0kc1nF+heFu/bHLIyLi+3f2XM4e94hvdsPfj5O74QUt0MF/3annr0O60t0NrjGy/ErXVq7C0u0y3sdc/kX0j+fLBv4Ohi+FMLZrym0b4tRcrcboFSSuhk0xNWvlTRGxBP6vxi6UC+z3+TzKVaTSbZnOody9sc6s9PwNIpxp4F4eziel8RbHfJwLsMwtCOdzY79SrpHxPua2GOpzDGThBkj7ULgtu/rDIW5PCKN3R3QNm+ts1BnWBmcetOtYPgvTjSO0e9ZFJO5WEW6ReJRpnFOVXo37nFnPyl07Ulojq/Un67dT5e6ZoWSE7cOpMVTNvwnKN6aL4xu2f861WDY15rQgnDKn5ggsB87bbB8K+01p7wWfGV0zqjVfa9t7t2K6UEeoB6NMZhK45kWZRLDb5342Ph6OC9/AG1nfxH1r5bKVuWwsjdWD9+E16Qsb52q2VlZhsb8o5TDLqmRajQHMVXJeO+y9sNK+F/uNyfRE8SxO7YGxPRQsg9pDQpnMPvQAu3DgWvbeCedRou9ucw3bf8NnwsUwgvM8cW+K+15qKfCc8T8LjgTduA1lexRci++gUr27CuJwXECX7hdifWVYyRjWC/M9j3WFm+bKjTten3mjflizV5PXE1fbEaHXtKwPMxexNWAdTtV+9oYYbxfse7imYO/aVFnY+NZkjkdq3jGX5BfbDvfRsN9gf8vyq/1ZzBv3tr/X+Yv1hoKB8WTtgcubFoRHg3PZ+J/7T+y5e95nRa8fbx7rDQK//PkRvftSlp8I+2VfBz0P825D+G52AeoUK0SYrbnwPmxXbEu2n41pYVuquTHHlJp3IbjmYu+68Vr17jnB+9S+8djA32HD3oONid+VnDH9BcdK9i51MJ8E2xbvY+sgzA/TVe8uUc5yz2Y+iYvol3ump7fE75gf6u4d8F3SKIRXQxiXdp15cq9lvbnsxnZPUV6+by+RBXF/L/654/E/fSfo9pgfztvfgvCGrFPVDtgHUPbYvIVjNc7bSj9KGUC9BedwTA8XC1lmLBuOxVi2kkwqHZylrfaD1HhgzNSydW7EWMF1+5YZ9HXkDHoUY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGzHS2jkRsLnz9uMUWPWcKS0OfIlNftLN4PLVRsiRSY9WBnRZXX95jem0I5+koPMGBJ58wD2X9EJ8lUZZpMI3OSYPD4CTDKPyMhw9WQ7jV+YsHAE7sBfc79hfd8C0/fnDvhzwNiYeS0NrQLyC8G4vHDPGUxOUQZpYZ8GQLnk7AEzEoYm0IM+sPeCxblSPbENPF01PqlCU7oVuwDBURvXZVVjHVqYwsX43lumGhTjqyE2jqNFbphLiy0KFOwWXa6jQTnnQsWRpQJ6OVdYyUVXz+lkjjLhJWp1+V5aSHkjgYA9CaAR4EO77zF2QdRWHBib2yLditdxrr/rGRbYvWgvBaCON40H0uZqU3ov+oGIL9gZ0wx5OVKFs4MGXe2L7YZniqFU/G5lyCaSmr0+xUX8nqyGB8jhdNrRBNNU1OfmHHaHJqVFlHYOliv1Enqludv9iv8Dn2FfGZnrLiqazSlcD0yGnCEaiL5fCzkt/1nb8nQNx+vTra40G945l7wVHNWxZ15nAsOk6daN0EWQTj0qaUC3YaPEKfkETZSXAMxDa5lcTjtWqOx/k3xxplgQH7FJt/Fcr6DjsFjHFNrM1Plp/HuMJVKpfKl1kbUfOQOsmdz4bPi+kqK7xY7ymHymoUwsqnZFOdis34NsRhn1AWQldsW4TlEG6RokV0rfw95GS0XtRjdVzRDf/r2Et4emnRD09J4uONYoooq5knyhs+H8oZs9CH89PjIYxzMZv7fkniBtPD/pB5K0tGas7I9JS1HNWPkHzWJpZLpgomCzVk/dTMUyUvG8xqbkT/WM88ayhLCktFONddKHuT9Q6Acw+mcevghaHNgGCdo4x0WCnCOFejgUgoxh2dG9CKyQ9vfSSk1xtU+nTwizsBtKCCRbsCwn0ynnWHz6/avU2uUVa78VpmARitR6jxF0mLZ8rCirLiwMYAZUlQzV1TZdFzMrA9J2XFqWRVRe0ZKEvl2VeYdZQIbemYWXLDfZU2hEsWkLAvoZVyTIOt7RAsP/P6EdGTB3j+EVCKW8HDuR0G3WXOY7pmg2LVvrd0wzf+Gp7lts5fXB/jHI76+A0Q7m7iqbbEumOypSwGKuszGVZWlJX1WWz7lP22SANhOoPSN9X+0c6wUqKsG7OylCx3RnC5V/qSSmM++V3N1ReTa5Q1fozHtTWzjI39BvsVjh1ZDjXWl9b3ETHSuX6rsHC8GqJRzrI7vRTMYf8aLsBpANfFywf+RkT8CMK4Jv8uhLvPiuNaG8Jq7GPztrLAj3XLrPipMVB50WEor2JIplcjj8wtGNuTmapXZ2qMYbpKyYsAXjuYRqI8/bC9AoxjZmUHyb7C9loi9Lu37B/Kah+i9t3zuZWOjs9N5hS1Xf8MCON+WKa6vFf3D3lETxC/++NTehfhMvapnb9rIQ7DuAXcn1Pnb8nyW0T/JH7XwN9BlD7egnDq0sqas/JslempvRh1XzaGsviPZSt5ZdmRc3KT/WcFm6OVnqzWM+w+ta/PLCur91Io98xyXERPB8H2VJYrkdTT1X4p884U0RWYG6DP4zz7NJHEK8Ytch614ifdqP3i5m74wl8/t3ftkt4cvc/vjMvLup8cBL9DundDGMVl987fTVgvaDEc9+KUB4lc2LcgTu1t4kv37AfM89vgfexdr9LjsGzYN/J6Nebg/FCyIKrI+6ZqvczGVrUfrLzQMDlUlOS3tIc0mHeiZBnzY9+M4CYS5offQGD5sj8pa49k/yqi5/QA1XycZ5eK+KPHZXIhupOBZhgFBfk+GBBuvKBTjodBWm0I4/zbgnDXCywWCG9Ua2H2/k7peUoPZvoUyr3qi0x+Ue5xjsJrMm3miWswDYTNH/isag24IzxHmtnMljkjcd/Cib9N2jx35vTDWf6hpzHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY3Ylto6MxOa5cye8ZsucLTuoNFOPP/Q0xhhjjDHGGGOMMcYYY4wxxhhjjDHGGGPMLsPWGInNMfGHnltnkGXZWf6hp3L1HNFvbpiZnEYTzOtEuMa1JAPNQbMmUm4AmKludJOgXJso9++JcjO7z+CFHTqmv6+Da8HTejwheHya4m6B+e2xnjDec3+v/OjG/YnHjvuN/OxP/rh33w8hXazOB0G460Ggxn0ccy/VgjiVBsYzM9ptiMP6RHftyr1Bgv0Br0XT2Nn/lBsA5Qovy6TcrKj6YmbCpwNMDpULZBVOatx0jQ38HbwP88Y6zuvVGIJhZeJ9GbmWuVCK4C6XlorfEXSFl/0QTMuPtHph9KoCXiHT28KcvXp+LpYexsfmVQt6LuiuHuv4p8THw7kbPdashvCVnXFpDOsC3YngM6HbCHQ5m/WM8nSACOPYkW4RsA+0IIyuEFifUvKr5qvMT7lZxP6C+dW4lN1RsLGpxj0Vc9+qXPMqNxZsvFDuFdQ16TZFuRFXLvSYy17Vzth/W52/wr2cHC86rg2XQxRWEbqk2Q/CvzX+5+Dn9ty1HBtXdsP3gKvL+2JBN7zggPHnuv8+qJejIV10J4meYPrEInUMdN2nXMk9BsJZvjbEKTccqPMkPyNxg2Abs36kfmeuatT8XOMClsF0xala2JTSVW4wS+48lLt7Nm5in8f+ocY/HAOynbA82CeUm9KUW+XyBMEy7UV+x/bCcoK7p+wiKKfYxXBKQnl65vif9p2tbtQjV/Tczn3t/qf0rh0NHl7T+fttiDsJwm0Ib2DjGdbL9yHM5k4EXQBdCWE1N+aAVqPnYRuz/qf08nXkGuXesKTbY5mUHE12nTkZMn0175VQ81fN9VmvStfG9Ng6aKL1foJ9iLkYxbEZXa21IZx9Uo1P2F44rqewopu1FoTVmNMRbHw89GCGovBqWFvf25uL53bK+vvxz924K/Z9eDd8bTykG/7lj8Gv1urOX3RxtRbCfd5ucTDKNsFn+h75PaJ/PMw6V7rPMRDGtsr0lBstNQZkW2G63ye/R/A5I8Tvaj2IjbhUpDMM1Dih3NGpdQej5OJayS8qm1eS39m4GqHn34zHPtZumB6LQ9dpDyXX4DNjH8N9GnzWFoQ77T2Ca01gbxFOjt7aDR64b8/X+i9/fkQ3vNeanlzc8YNOOfaENG6HMI4jqPPfknWKbYllVvWZYXx+5d6PuRFV7t6Wkmsj+uUp2+IB8bvaq8r0sN2Vmzu2bp5qd88Ic0UewWVEuBfvC6OM5LyGGzmq3tlcpfaT1LjI5FDpUagHMv0ZnwnnBdwXyefCtNS67BEQxmfp9PsRyI8VJ6LfrfqR2/686LD13XBrWbsbvvpXMBct6fQp3O9eDWGsLtxr/0XuL2PdLxNhJsvqWpTrNoSZnoPygP0F47GvZTnU3IlgW+0/QdxgPMsP1x05XkyVi1i1J8CeU61X1X4Si6vZR8uxDtsQ66y09sYxBOdLfNY2SQ/jsH+ovRBsu8wT5RTHO7H3vQgXyR1wT2ozhE+E8AHjbbXPnN6zfvfmx3bDSw7rTaobR1f27lsy8Deiv9kxvo9sNzV34rjWJom3IE69r1I6ceaJBVXul9kYrtxL7yPimc5wk7iWjTNqncn2AobBvM6/GhfrJbCfsv0PJQtYx6W9C1U/8wb+RvS3kVrf3kWuaUOcmqtxEbmM/I7PinkTXRmzaEEYHwXld+24z+ifLD+qG7XPCuHefmPP9fOhcX1ERKy7DFy34ztmEPW+d1Opu6Ou3beOxbFM7Wfn2IbrZqwXrAQcPzNtpY/iuNyCcPYT7MuijvquybAan0r7p0q+x0j8sGV5IprKdF6PsqnGPFxfHNf5i22PYbWGyfZHecS2xbkY32egLGdfwbkT+yPuVTH9H/s0yin7niIithI9B7cCngph1Jk7e1k33Nnz577ogJ7+fFJ8qxv+zE9f3Q0f8PTx57vxmyArKL+o5n0VwulifutiiFTvHnHv6GoSxnrBtsI02PtiJXsItlXuW6n1VmmuqXnXyb4pUfJd2ieabt+OmJnC5pgT98XCCa8Z61P2y6xduzbe9a53xZVXXhm33XZbLFq0KI444og47bTT4sUvfvH2FHe7sSQZY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDFmF6LGoufIhL8PMjo6GgceeGD87u/+buy///5x9913xz//8z/HH/zBH0S73Y53v/vd21Pg7WKWf+i5KcqnuCP46ZNBywtB4pk1EnWCA7+8x9Nqiwb+DnKMiM8v8tXpOXbiJoJbqMDTQOIkRl/5O9djteDJCDxZjCeeHtSxRnBN70vrPU78dTe8dEHPxNdcOAHwzY7poP2O6ln5vOWHkEkviX5LgnlY5YYWRP4YwlgveOoin1tZvVOnX+4h19RYo2OnT7GdjiO/R/SfCkvwPjyFqU7KJyUrHhH8lCA7dTVsKyV7x3j5lCWHEihvpbLVnGhkFiPU78xqBeajLP8pi1XMasLhJC6iv/zsudUJHjwJhqeKciyCPo9z6RHB6RymOnnf3qmro+In3fBPonfK8sotZLx7EYT/GsJtCOPJye5BDRzXSqcmI7jFMGwHzFDNH+x0I54iV2NqtjHWN566Utae1InfBPsAm5tqTvwPkzwNjc+uLFAmKE84puF9WW8oKyj3yrpE9gVl4UJZT2CWQlDGsF2Y1RRMm53Ki+g/4Y73sZO3ePIS08P+TfgRhNdAGA8mPn/8zyaw3Hkr1KGS5fs3dq7HE5Q4V2P8ZRBG/XtrWibBNimdoIzotY86NdmGMOsPTLeL6O8DzBL8deJ31aeyTOr0Zsman7LavSNPPjPUWKKse5ZQdcmsamJdKkvHbL5WVoEQrON8xr1I3CDM6ifqi9inhcWMDZ20j4Q8WnApytNyCB85rnePPTAXfu6dhl6+YLQbXvrYng5+470w5qwl+aGVIVQZrsPxh1m4xrrAeGZBUelECDuhju2Ep+dVv2QWoZU1FSSfT60R1X3Ksh5jR7oYYdbNlLXZkr4wWeueat5G1CnyRFnS7+uo5D58jkshjOYFNpA4BOdwtrZGfbANYXwOsE6dRgzQ+s9uEO4zkNVbWy9a3ZPxZ8QFERHxlXh6N24pmNT+5U/hWVaCVdDbO+nhvI1Vi/F0jEZLElj3OEa0IcwsaaMejHmg3Mwj12J9sjk+ojegsb4QoddnWH6mg+O8o+aSDTE1lsP2jLr5X+ngmwb+1rKMxGEazIonoiwnYv3iWvfqgb8R/fruTSKc6Slry9hX2D6DsnKCqLmjU76tYN1oKYwHuF+Gw0SK51hPOV53V6+ce7Vu7obvuxcsGWQxQKT7lhJYdX2PysZrNW+za5m13Qhu2S2i166qblEOlYVc9jveV5qLUU9Q3oxwLlw6EDdsWV4a4wO9WqMrveAB8rvaD2a6dI13EGzf1BXUnLyJXIvx6j6VRpv8jpZ31FogO76ySIdjC445oN+n3O4JwomWd9dAGOfJDoeu6s0zaJ0I97vjdqjnVNmfCIngVLUWwn3vtXCuTdoQxjFuHYnHa2tkkumw2P+w0EqPz7Sx/ZTuXrJOpKjR6acSNV8wzwXKwqHyUpEoq6Gl90PKW5jaw2bz543id7bexnEN137YV5gFMywT6nJYX8LVRRb/QPj5tuAs7wXXHDTuVQ6tBD171Ze6YfRq8x+tno4d13TKj/o6ih7Ov339OPcGUAm4VVzbim1RuqrqGyUL9YiaV7KN1f403sfer6q1HrO4O9H1ScrMsOflsdi+Nbla+2eaav7FeDU2JOr9BHuPoOZf5RGuRfJW6yT1DiPjcW5hVu0GSMv0eNup/FJcmz70tVdERMTD44pu3CNh83vDQ3r9dBOUo53leCoo0PD+uq8LovqQebchbpN6h4MXYZ1f3Pmr3mOpd6BMLrC/Pg7CaC00+4mac9X+cj4L9jOldzNdtmYuz/ymytI2o+neXZYR67/GKiOzwKr0BLZ/rvQlpNRX1P4I7m0zHU95PBR6fHYh3KteA+H1EMZPFlrjL3V/b8Xnu1FtGCOuhZfPT3jIV7rh/NjrxhtBd1gO6WI5cDuvO0xgXaASjnsZ2E9wHZJ1jt5bUYdBnYdZcMVBTr1PxPtybYV9AO8rWXZGmVVzEPMCg9duIL8PwrygGjM86ly3z2mU5po1a2LNmjV9cc985jPjF7/4RXzyk5/0h57GGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxNYy7bl8w4TVjhQ9Ba1m5cmWsW1fzQf/U4Q89jTHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYs8uwNebE5sLnj00teiZbtmyJLVu2xPr16+Pcc8+Nr33ta/E3f/M3k0prWMzyDz3Hor8KlBsBZh6/5B5oMI1BNz6DaSBoIjnNbrO08PeIftPLGWbusgZBM//MDYIq59MgDCail3byBAv2cTyEN0L4aAjfOO52asnxPT/L6K79lPhGN3xoXN8Nr43VERHx7zc/p5cWWnB/FIQvhnBaI79BuaNH5pEw1pVyY4BtydpeuY5V6W0Y+DsYbuJuRplxZzR108aGliznsM3r3xbjvk+Um2rlgi1RdcZMh6sv85XbgozHvqLcRmJfSblVrqGVC2oMp+n3NsQx9xiD6bG2VuMIppHlE65G8fH2g3Br/M8icFWLLp43QN3e0V7VDS940Hje998IZUPL98h3IZxucjZh2dFHDrY7yh5zIaHkAtsY5frWCeIidD/K8P6F3wfTzmfBfltyb47lUC5np4p0e6PctWdb30niIvrHNPS1kHKBaal5DdNmY4ByPaNc7M4nv2Me2KYld7aqg2M59yW/Ez9x2+TRuQ9dwLYgjM1/CoRHx/98IHqm6e+Bur0SXFCMgl+Mpx30/yIi4sLjn9tL6zxIF5uvz50k1nm6y/gxxH0dwvjczEWkciPF3ERHcDcWCHPXHtHrf030iwjuLgdRemHmU6On7gyU20Wlg88n19aQaeB92C7oBg7zRlllLscwjC5b0A1L3odzCz43uk/EOSD7CurXysUVur3phNFdMsoydivsCh29+yknf60bdQf4iH1cfKcbXhD3d8OfwXrMObWnuve7wEGdv49sHxz3sL6wXtoQTrlmbtkjtPukbGN04btBXMvAfoTlVK7S9idxCrWuS9k/ksQNlmlHUTOWsHIpnQU7J8o9c/dd4zqW6WpYv9ivxsi1g/kkarxg7gqxzZVLS4xPt+QtiGMuViP6ZGFe53qUMfSSBWK65FE9AX3h4nO64V908lyek3lEPBjyWPeQXl1c/9Pf2rY46MHrWxAexYuwvlJ2lHtXvBavyTpFeVOyx1wS1rg4ZW7KlIs65SqSucSq2fsZXMMqPWN72BD9awCsk9I6EMF5FOVGrZHzGpQVbCPmpjKiVydq7EC9DudfVcfsd2zH+eR3BMuGrmhTCPA+LBv2U6w7ov8shXbAfTQh19HaGhER+x3S7kahLKObqjt26wnrxiXj98V1PZfvfTrDZgiPQrgrIz+DOGw/HF+xjbPusI7YfDlItis+NA462A7YF7GfJ1jfWGa8lrmnVG7R1Zoy+1T232HL8qaI2DqQv1o3s3Wlep6S690rSdxg3kx/UfWE+d0k4hO1z8HSxv6Bbg7VHljKKnNVHtHfN9Fv5HEQ7gjocojCLjsKYfSQeuC469eb71oVjBvu7/mSPvgRvbx/+ZOOTohVhfq/qlq6R1Czl5FtjO2g3Hfi2Idptzt/WxBXM5fMH/gbod1Csr1NLLPSA9h+/I7QrxfF+CJK5YUyl+OJmrfx2cfINWovWumrrExY72ofOeuS7WtH9I8XLQinjo15oF6EfRevYXM/9gnlph7mqpWdtG+An+G1UhzaCy45sqdLz+1MlOj6+Thwe/z+eE83PGdhz83zliXkPQm6eL4Ywkuh7jZkneMzY30qV9oZj+2A7Y51i/ex9QvGqbpFch7ANsNyqL32wfsj9PzB3gEpHX2qXMOmLCNYJ2xPQO3/YdmZ612lL6FMZt5Kv8Gxtw3hVueveieBcq3m1Czf9yGu5rODA0icGuOgD6VrZ3TXjlP1U3kW67aM98lvzjm5G4fy+7L4x274fSDLt/z0wRERcfBDYE5eC/s0OBe3IHxZ5+8mlFnUUdQ7S7ZGwjZRe4ptCLN1jVpDIUx/rXGrXtoDU7Kcz1qzTzRV75YZbB6tGUvYXqd6D4TtnM+Gz96CMO5JsbTVehvjcWzA+k4lVbn7Vnvbj+n8nS9+F2uhDURnGIXfcZjZoxfMORXfFd8HC+dVcXM3fCvUwY/uGv845IDf69XhjRfAeHg+5Lccwvn++hYcOy+FsFrrsTZU4yvK7+EkHueGpSKMsHlArcOZ3oT9BfsDPtN8Elb7QWp/ZWfsZ5vZxNaIouv2LTESmzdvjrvu6p/XFi5cGAsXLhR3Rbz2ta+NT3ziExERsWDBgvjYxz4Wr3rVq7a7zNvD5D5ZNcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjNkJbOm4bp/o3+aYG2vXro099tij798HP/jBCdN+5zvfGT/4wQ/iK1/5Srz85S+P173udfGRj3xkBz0ZZ5Zb9IzQ1hmUlUtmKRPTUFYbmHUuZVECya/oleWpS0R8yZInnhhpQxjL3CLpKmt3cNRiQ+dZ9oW08NDvg/htmfXixT3Lfq34RTf8nXhsN4yWwcY6X2Y/bdVXunEXnghWwvDASwvC3VObeAoBT060IYztyqzr/Yz8HtHfbswqiDrtgBXT5JTxChHOtsL2U6d5VX8eLMNgOVg5d4QVsaUxfoJSnapip5PxGZW1FryvyXOwcuBJOzydjSesML92528L4pT1RTyhw9pfnbTDMQItYmQ5lJVAbGc0S5DpwcnEvcWla7YtzaZY3A3vBWmgZZK5h/TMBd0c49YPbhyFNlsElkn+BxKn1Y/PhHWLz1eyMKGs8GL81eQaZY1EnXrMNsG2xHFLyXI+11Lxu5onsr9j38L8mlgOngxqXmbjnrIExcYuZuEgQlv4YqfjmLW/QZSlXpaHsoSTfegece1e5NqIXn/D04ZYHrRmBzKQ6gha9MFinghhtMR92PhpynPihd2oN8X/7oZ/J77cDX8k3twNfy2e0p/vYJHROiA2+8pl5Bq0wNmCcFskkm2idBuMxwJmnWO66jQlHiVPOVKnedmJ/4ierJYsvUaU5yjMQ1nF21E0saIdUT7lqSw4MisIyiKIsg6Y96p5Vp2Az/ZQVqNw3Eeyb+I4jfe1IfyYXjCrDo1JoGEE1LtXbhv+EZi+PwnM8uEpabSkv+hR67vh+35rQUREbGnv3kv3YlHkvkP5TEfB9sGx80YSjwljm2AaeE3ehzqYOlnMrJWrfqisEpSs5isLBcxaD44nCLPyPdWnopXlMLU2SJSeosZevP46ci2ixoCcL5TuhOHFEM5yqDWcIu/Da9W+AJYp15443+N9x0AY5sBcxz4afsaqh/Fg4697OsPmQ3onmu/vWD94eKztxqFVfbS2v89DftUr3byOpbE7QO9uQd5oEfDXUM/F7qmsrD6U/I7zHo4ByqIbu09Ze830lBwr/Q9lNdtbWSlVOuuKmBqrQ2OhrQkpPZjJNW6sIEqnYlbGa6w9ZBrM0mqEXt+yMmCZMT3c98n5vCXSw+dj1+Be0LEiHnVw7EOdfqENBvToTb9x6iHjpvDngsC9OXqby7lWjoh4w5y/6t041pFb1BlQTwALZn2Wert1jvWmrJFgX2t3/uLzY1ujZf4WhHMeYF4nasl+oNaWpbFdWS4pWevOehm2taGDYny+UnJYsrKm9qeV5wmG0gPYfrUasxWpm6txmlnhxXicyxEcL1BBzjpqQRzqnNinsf+S9b0y+Irh3/SChz5mvA2fEj2r+lfEw7vhv4y3dMPvjg90w5uPGk/wxutg4bwa8mhvW7SIAPUXn68FYbTAhmukTFDtPbF102DamQb2M+zDaCEV78t9DebhajBvNVckJT01ojxeDJO0zqtg73aUBVPV+fIaZcUJWUTCqm2Vhww23yvrY2zfi1lFH7wP5wOU5TbJW3nOgXBejqo27kPBvtfGG3uL6GMecmXntt66ch30wdWgV1+/Geqr1bHuuRYmfHwM9HzVZ3Ar5U95jipZp1bWUkt7rRiP+WEeyqpvybK1WkNn29e8Ly0xVVY8kZRlbBulDyU1cyNbg6g1LXunpaywtSHcImnjfdhvcO5QunTqvMpis7IGnfWlrP6igELdzuuUA1+5PAnCsO+15Ik9wb7v3nH5++Did3TjboieFe1bYkE3vC/k9/yHjOvdF8TTu3ELju893/1t6P+4JGxlJjD2jOG6H8dJtTeS82SN104mc8tEmHn1jOj1mRq9UY3tjBqLnYnq45nGVH3Swrx1qHVnaWxS1tKV/syo8UQ1j/yuLChjmdm3Dlg2tg8b0d9XsnzMO1lE/5gDZTpmxbY/PxLCa4LyJ/v+dURE3AwT5mPAIu9i2L9aCwryScvGF7X/8XMwAYzvv3CffJSEF+GeFtYtPivuNbP3j1ifSibZdwLK8yAqEJh2Xo9jtdpTxpf1uSZX60nmea0GZbl6HvndmOFR47p9S8yJ1atXx8UXX9wXP5E1z4iIgw46KA466KCIiHj608f1gne84x3xkpe8JPbee++Jbp0ybNHTGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxuwxbYyQ2x9wJ/22NOTF37txYtmxZ37/Sh56DHHfccTE2NhY///nPp+hpyviTaWOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxuwybImRuB+sdDM2x5yhfCD5jW98I+bMmROHHHLIEFKbHP7QU5rZVq4wmCt1hLm8UKC5YjTNjOa3sxzKbdATybURPdcryi0DmlZHFwPMNTua+FbuNOBZR5Zteyl6TrsBwi0IdyxOr/vpQd2oQx/ScxV53X/3/Gb8/sM+3Q2fd+fzIyLifnThjJbNfw3hNoR/FARlBh3bZ4z8jvWGJreVO4qJ0o3Qbl0zT+V2GsvPTPArN22LyLV4vXIHgy5CsByZxo5we7NbjJdfuYFjMq5kYZm4JlHPo54t08MOqWQZw1kmZV4fZRZda7D2b5F0I7RLyuxbzJV8hHbD0Ul7BEzHo+n76yGMXsyWjHVK2csDze7/v+iZ1X9sfAeSG/crN/qg5d24jfMgQ7Q+/7UgqOdXrgVR3rOtalzBoN/4rC904yfcCPWZ1c/2xvrGsik3EtkfVP9U92U5drRb51UxXv/K3Qdze6HcdLE5WrkdQblhbgmU+zilP6B8MhfOal5gbovx2otFfmx8Vu5BRZkzG5wvjxfZwRDw4VXjbuXQJcaX4jnd8LfipG54Ofi/eEhcGxERo0cu78bd8W2ot1sgv+UQvhsLkv23DXEoQ9hu6MYi6wvrFl1eoDtunBNSkVFtiaBudin5XelSmF+r81e5Z1Tpsfm+5Ka+iduNJmB7ZHupvLBvMtecNS7smRss1FNwjFB6FHM5tkFcW3LJizoe3of9jY13WBc4Fzy1F8T5Nb1CYDF/AGGUZZDxdDW1Km7uxo2CwK3dsrobvn0OZthjy90dN5ltiNwTwlKWO/W8Sbmnwv7L1kWHi98xjX3JNTjvYd0rN5TryO/YPmp+zf6KY4Ryj6xgruvYOg3jh+0mNsm+rNwGlZ5HuYpUerXKh4HtMV/EJziOqLa5i8SpNTsrBz4r6oDonrgEunMT65SUe+we6CFmLZTi5b3/LIVnWRPfiIiIn8YR3Th03X5U/KQbHgXBXrB8PI37V0N5cKo6EcL/DmG69YSyjPLJXMJhOygXiTjfp4tA5QIU82hBONtwfxJXSz6rWnNOtAc1VXKs1jsld5016ZXW+ZgW3qdcc84ncWqPhbmSVvOJcv+e12D/wb6Juhy6cM5+gfMN6pHokrgNYRwbOuDwhVMu6uawnv7m/eM69qsXfKIb9w3wc3dln6tLILsXuqvDMFbtgRAe7dT/euWGEGUE/Wim7oLu7BC2Vo7o1SnWbRvCx0IYx1e2bsN+hGG1H5DXMD02ouxucmyC37aHX8X43lcNrJ1q9j9KLiRxXFRz9QZyrap3JHUupV8rfY+5FmZ9KaK/n64g17YgjPteYv2XxdgIP/ftdcFdx6/vhhfE/RHRWxMP8pF4M42/8fJOmbALPgjCLQjjWoCCsnKwiM9nxYRxjMN4Nday/UWsWwTbh80DR0JYzQ8PkN/VXiqb2zGt7Ncj5LrtYc8Yr1slC6W95pqxJa+pWeezORr3AtU6nOkJGIfzpdrbTvCZ1PiEco/zTOrmWGZsW+hve0J9ZJaowz4fwuDGfb+H/KIb/tQ9r4iIiBcuPqcbtxIubkXv2hNXfbMbvr5Tjls2PriX8PmQ36gIU9S6Etsq953V/qNyv3w1icc01DsBJXNJzXqQ7X0rHZPpk8pd8VS5cc89bPVsWUasDyVPTLfAsbnpWoTlp97zsHZm42pEf/tjX8l1F77vwH2vOwrxrO9G9NcL5J3dBtV1VONBrje2e4r1k4/6fxER8cqb/6Eb97RVX+mG3xT/uxtGl+7tvvlunPsvgzrCvLHIqcdjN1+v1jQYxvbOeRTnX0Tp5qz/oWyxOTei9wDK1XpJ1pX+p8bz7O9tklYEf089bOZ1/rF380oW1B5Rxqu9zsF8k2wDtUem5DM7O8pmW9yHYw62U8qveq+G/QPTS1lV7zYxDHtcV3Xinw0/b4ZwG8KwVLyjU855cDHK5u3d5+jXsdsxPu8eekhvf+v6jb/VSxibClXNrFrU8/vqBeurBWH2vhV/X0Z+j+iXSSbXam3KrkHZw/6JbVl6H6HyVmMDQ83hU7VeNmacrTESYzF3wmu2NHR4/spXvjKWLVsWxx13XOy7775x++23x7nnnhvnnHNOvOUtb9lpbtsj/KGnMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjdiG2xpzYXPj8semHnieccEL84z/+Y5x99tkxOjoaS5YsiYc97GHx2c9+Nl784hdvT3G3m1n+oeei0NafSl+TK0uM+EV7jRUmljd+1Z+nBNTp5K9DGE98sBOy6vQFxpfyrrAE0eqkgR9Mo5UAtPSzcdvw0Y/oHT1+fpzXDb/qYR/thu+Jxd3w8hWjERGxeXmvDu8YhVMpWBX/CWH6QXeNlR5m0VOdGlTWvrL8eEoNrRLgSTd2gqMNYTyhvpe4JlGWR0snA5XFDlVHzIrJvIG/w2J9TGxxpHTaX52iZicuUe7xtLA6hZn1qu7DclxH4pUlPmwvdtQooncyS520U5Yo8hpl8QEh9T5X/AxjwF5P7ZV/Q8cS7z2QxyI45fXC6J2S/nic1g0f1nnW5YtHu3EbN4D5EzwJthrCVzILHWg5SfUlJjvKQpCaEzKMsof9AU/rstN+JYt3g2mzOGVNg1kzVrKa/blk6acpJVnOekV5UvMsOyWt+n/JQpS6FuPZSciInsVddWob653NqThHKOvbmHbOB2jZBq1L4tgB6W3s6AGHBgfncKiC/x1vioiIR8UPu3F7wfz1ULAGdnGc0g2nNYM+K554qBuNGGKRW3hNp19vxSPc6vQpzq+ZIB65xnkUM0Gyr+0rfsf+xSxMoK6FepzSq5j8qbkE+0MqPW1aSm2hdipg86uyqoMwOVNzNfZ/TC/bQ1lfV5a2kZRfnGdRqfw+hNW6IMG2vUPErxj4OwjUyyhckwZEUNQxjIB1zwW7jVsTOhRMhM2Fsr9xTs+awdfiKd3wMct6Vrm+f+PJ44FHb+0l/C9g9QYPM6LRoq64YN1jGzMLBhG9+kL5bUEYZY/pucpjA1pHZzoPji3M6usgzBqn0qXVmpNZYECYVdphWxxKcryp0eGZpQbltUDdh9fnPHGTuFa1QZYZ5RfzZpbaMR/UyWr0nUyjBXFtCGN7Yftnn0S5x/JAmfeEvjfa+YuW/0YhvBqjl3fDN8cquGS8PdFayWZQ5BeDfjx6Ty+N+y/ulAMsHfUNjWiBcANbx6IctiHcgjAqBVn/ypKc0s1ynFDrPmXhlVl5w3TVHI59hlnFx/za5PeI8b4/FVYN9gy9JlTrTaaX1lgCRdg4pvRxZpFXWaJQnld+SeIQtY+RfUu1M1qdvJPE49zDLPtPlHZnbFgOUashjPtloI8/asG4exqcw68HRb5f1q/ohm/dd7xutvx6915iqHcfDeEfQvgXzDI76jPKQl/qW2yfMULPK22Sn5IhdU32H7X/orxXsHlHrfXZ3DXsNTKmPxa6ztTYkc+DugyOV6gDMZSlRlUPeX2N9TGmG2G6qg2YHKLV2FMhfLHIL9NWejf2D7BMiKpWzsGjEHc8+T0i7tvUcx13w7zxeXft4od3406Kb/V+h3n5FzA3HvCIcXm68eewaP8BFAjLgUvk3Btbz7yXRPTXJ7PghPPEceJaTJt5sFGW4NsQZv0I01X6Osbn+K/2qlWfeoD8ngzb0nZp36tkYbjGu0WmUbOvi+RYr/YdcI7Da9g+pHo3wnQxnNdr9D3m2acFcbjHC2mgJb39SHZYhfC+FvXjty0+MyIi1kEZUE6XwsSNspxeNG6ZB+V8AORXGWO7IfNh415Ef59l1oyVhza8llnzi+D6n3o/yTyWqfWbGouYdTGlXzMvOSrdqYLJccmjEvGMJq9V87Pa40/UO1/1XpjtqytvOKjzYt55PeaBcqj6Ye6f4/4Oumhr8TSWd/7iWhiXj2jtGobw9EZ19KrenvkGaLPzwKwvep77Rmc/G/e7+4qGr+dxjZzqdt+U1NTabMk6II6f2JbZVlif6vuDUpso2cP2zme5SVyLsLEBy4PPjHNN9rlh73vtE9t6mMu6Uvs0+GyT9YjHrJPXvKdm+2UIlrkFYewf+CyZBq7t1L4n9qEsE75zwTECdUYQ0HRQgLKCqhZ6iFnS22u+rjNR4j7VvtBmR0F4FbiXSq816LHm+uvAoie+82qTclyorBrjxaV+r745wTmOjbUoC8oiK+uX2NaYrrLEndeo/QvVLzM/NZ9N1brYmInZEnMqXLdPbPFzkJe97GXxspe9bHuKNWXM8g89jTHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYsytR57p9qoxl7Hj8oacxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGN2GcYtei4sXDNzPo+cOU8yKeaFdmOh3Hwkyv2PMkecZoxVuswMOaaNceiCDv0sIWmeGc0mo0lnNL/dLlyDpvbBZU2fafhWL5jWw5eT4kREPBvCu0H4sPsiIuLhsbYb9fV4Qje8EsyHo1n9NJt/9bd7bm/6HgnLsTcJ3451izcyN2AR3G0kmshGc9jK5HnWnXLlqcxrj5E4VX7Wj7DNalzMl9y9YB7HQDjdJmF/StPgO+JL+ZIsK7d0aL6cubOqcTfJXNApE/7YBnhf5q1c8yLCFXM3b+UeD/sC9k3m5rDGVHuH/UR4tBe849975Xzyc/9fREQshwu+HL/TDaNZ/Vb8ohs+785xdxr3t6HsLcgPq6WNBWR9HZ8f+0tJfpmrp4j+sQNdiKWbAmV2H+UeXQFkPyi5Y4voL3+mrdyTKpjMMPflw3ZhtWeMt49yL8/ilPsILC9zwalctDFXXcpNlnKBg67KSm6nlTuDLCv6XMM5R7lKYW6rcP7CvgL5HTl/25/R1Q26cQTSRcZ+HTdUERH7wLg2r+snLuII8Nuc8n7dET23c1uuBReST4VMUCxQ5dma/Rrd1GNdoIsQdLGddYfjK7oZwfQeA2HWZ5gLncH4HDuYS4xBmCtLbBTmAncwbeZ2SZHPNFWuNJjsKHcmSj9eQX7H8ip3YIka83CcVi5EMz3m1jmiv21wPs/xm7kxitAuW1qkPKjzA1h1h5K4AyEMuvY+x/4KkhjP+46ua6aIx8T3oJSLu+HDwDXsZ24mbiq+DbpdI88XMLeOgLxt/R5cczmEs+7QNz3Os8q1asocc0WHvw9ek+Onco+mXD8nKLOqj2MbM/dsao3I+u1UL+3xeZVui2VMGVFjZc26ONsRn03ppejGMNsMx0TsEweTazFtNeaoNVPO/cx1ZUS/MsrckqOLK5z7Ib/1EJ3FRHdXTyS/R8Qtv+oNCHsd1LshXUiiu9grwGf0elhEH7G4N4e3nz2+Zr9jNxgD0V0dVvlKGAdvZ2NqyQVURK//MHeOEVoO2fVsbRrR3z7Z9ii/NW71WD/BvqzkAFkadbp6UzbEuJ6N/0/UszHdAOtE6cdMB8e5k+0ZRPDnxvFRuRZmriDx9xYpz+A1+Vw1Lk1xnMm5CusK82MuVMU1N4o1Lcr16l4w3UzdA33+9fHX3fC1cUQ3PBf08WP3Ha/ztQeAf+k9II/7IAyqOR/blH6EbCr8jvXJ9qfUPKHWt5hP9g01z6J8MrfCyt0kXsv2APL+YcvyvM4/5TJdwVyUK9eNbK+vZvxjbpdVumoOX0R+xzbCvoD9JmUL88M5dS8I49420w0xjTaEYW9mKzxLTufL4dJvQfiZveCee492ww+dM77HhTr492DtijJ7CrieP+euF0ZExH6H9Mp2y9cf3MsEH+VeFmZ7WhH97cP6PeriOJYpF6bMjSjqjdgXlevT7Bsov2rdh+FMQ4332KcQNkdP9VpZwfJTZSi5dFf1pNabpXdhar7PvoDlaYs0UH7zPtx7xWdFWW5BGMewFQN/I/Q4DeW/pXP9SfAzbsP+uhc8FNbC/x7P6cTxfZeHxxXdMLpuX9fpe4tWjnbjNt0KulkbEkH9nu4/XyoKzdaeWLc4HjKXwRF8jkF9DddQap5r4jYdy5HP0oY4nLexz7E88DnY/DLs91GLYtt5uCRDWG62bxjRa+s7SdzgfZgfm0fV/jmOp/mu9y7xO+pn2OYtkjdzfR3RP3dgfOap+iD0j6VkHxWjNkL4Yb3gIx/Rk5fRzoSN+1vIY2DveBQm98M68n4rZLjPUb29tXWHHdRLBIfUqzp/+7YGca2P7aPe9W4gv6s1L16TczGOVWovCynta2D7sPlczffs3fpgmRLUI5TuPkwm0nnVGh6vZWsKfC6sEzWfs28FlLt2lKHscPjCBOv9ElFOrOOUdzWm43jAvjXB34W7dnyW/Rdt+/P+PPzKQz7WDa8j71IOjBu64Sui923IxXFKN/yy+ExERHwqXtG7EafOH0J4OYT/s/N3BOplK46v+C4Jx1eco1OOsF2xvnB+Zes69f6oZi3M4tSeONM12LvgCN53SnNfRH//U/vJxgyHrTFSdM2+Myx63nbbbfGJT3wivvnNb8bNN4/vya9atSpOOeWUeOUrXxl77bVXIQXOLP/Q0xhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMbsSda7b5+yg0oxz0UUXxfOe97y46667Yu7cubFy5crYunVrXHvttfH1r389PvKRj8SXvvSlOPnkkxunPcs/9By0bKBOFzGYxZ9B2KkLdSoDv2LHEwCLBv4OXiusc3XTUFb72InriP6v9jM9/Nq+DWE8tQAs6fy9FuIeBWGouiVrescU9118a+e2nvWBtXeu7obftOJ/d8NfB9MGe3WOOj7y5N5piR8teVw3vKDVO3lz/0egDm7LAJ5uxGdCa0LMuiNaN8W6R8thCPsae5kIq5NZmac6SVOyhKdOPqnTVpmGOoGPXEmuYadIhm0FkKFOR+XzK4u8KAvs1KMaF0r51Vgtw5NZeQoLy6ZOWSuLgDmeqRPVqhzLBv4OpoFg+Tqnh9AiNp6mxKLByei1HdMkJ8U3u3Gr4hYo5ZJu+Ij4aTd81IpxKwg3LO+dkL7j19B+K0WRu02pTsUhOCfg2JCWFfHEFI6pJfm8tfB7RIAlNS6H6iQYs2qJz6eelVkrq7lvmNwc46bncIxhc5yyqokwGZ8vfkfYCXFmbTeCW0+N4LKDccriItZxq/NX9THMDy2TDOY7GBY6ATMU2YYwWvcEsfjF/a2IiDhqQc/y7iviU93wJ+LV3fByMEWWVrm33A39HK0WtEUYrZl160bJBT4UttuV5FqUIbQwwU5Xo2VVZQUBw8wqClqmULpZ6i7Kao+yPpNlWkriBkl9Ztjz8qLoN9muUBanESarak7Ck9ZZb+rZlQVgZhmM6TcR+kR9qW8qC185NzArRRGxUpyoX975i2rmFRAGA5z33b+gV6IF4wtetJx9c6zqhvcC/fh7aN12FCb6FIcTt/bi2nAiEg/fr4UwU0G2omxhfWF7Z91eLX5HmWWnjLEOsXA4L+N9eRod+4CSLbZ+U1bnmNXuQXI82EDiIrjFkmHL8tIYl+Usgyqr0nNzvsMxGEF5UlZTmTwh2P7YTtmOmC6ug64R8WlhA61zK6tXGE65VfolxuPak1luUJYmYTxIq/lHwM8o9+Do4oCDemkshnLM7ZQP5fv6u3p98w+W/VM3vBHauJ06Clo+AN0erQ72XdNtCzWGK6tebBxX3jSUxRn2O7OAE9Hrl6o8qi+yuRjHGUyPzTVZpqlYK49F83WsSidR1ljxmqxvpodFaIsSzDpITTnZnpuyhs6sAWN+yuIJ3se8NbBxKEJbCuyMOVgVKE+3QLjVq9u0MoRz+Jfj1G4YrZtc1zX9HfGEjvndDUf1+uP1/++3enkcDfP5fjCfd9fQWJ8lb0YRvWdF3QbvQ0v62G6LSRyi9Dhcs6eugHWPfRHbch25Rq05sb2ZxaWxgb/DYmmM1wezRluTn7IMpuJZ+yqdmVlqVrLH9DpMT63v1Tx5cecvmgVCPQt1RtambYjDPV6cW9o8PuUTPdmgFymorsfO+U43nDp2G6yhPR0UZZyXb4WxaPPYuO6OlrpjDeSHYwc2VRZ/k9K1lIW5pAVhNc+q8TzTRmvOKL84BjBLoLgvptbveF+WQ1ljV7o5s6A3HWDPg5TKWzNmM09xWGfKAhPKWer8ynoz9g82t2MeysOZ8krW6vzF9qxYr6UxXHwMXI6u7gV/dOcju+GTVoyb7f0TsKK9VljEvxL6fVoV2rQR+vTzIb82hHErZROzjM0s30f0113WEcqQ6gOYOVtDYyWh3ONeJNPjlGVJJutYDmURWnlvy36irP8/MPB3WOQedsk6oZpz1XqAyVGNZ4DMu7S/FcG9HKg9GLVXx/ZQVB5KPjNv9U4F9EemcuG7Z5QnKNp19/f04GcsuCAiItaAtWzcA/tOPLYbfk58qRtOS4CPjd5c/h8/6Xmj67MCiEMqXX5hvSkvXqyfYN1iGsoLwTzyu7IOiGTbq/6AsPci2L64FlZpMI8qJW8R7D3I9rA+mq01B2Hfdai9BvWOJq9X5ShZfFUecJTXI7b2wb7C9jcH8069UlkDFns2ecmj4Wf0SgVZfx904uM632qgRV60go8equbCs6bV/A33994x91URzrktCC/v/O3zBqvmwP+EMCaSfZm9s4/QY3tJn1UWrNn+KbY15s3WkTV6MOoaqb+pfqvKsbOs5pvZQo3r9pLFz2Fy2223xQtf+MLYY4894lOf+lQ8/elPj8WLx3X0e+65J84///x485vfHM9//vPj6quvbmzZc8d+smqMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhizHaTr9on+bd2Bn0d++tOfjs2bN8ell14az3/+87sfeUZELF68OP6//+//i29/+9vxwAMPxKc//enG6ftDT2OMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxuwy1HzouSVGygkNif/4j/+Il7/85XHAAQfIaw466KB42cteFl/96lcbpz/LXbdH9JsHVu5UEebOg7l4xmsxHs1XK5PazCUWuklAk84tCLfJNcqtJLqMU+550/w0unnA50MXOI/bNvpp8PMohMES/ca1Pf/KBz523L0Uup+6Y0XPRG0Lnu//xMu74T+Pd0ZExEp4ph9Bdd7/OTBlje7tus2NwqVc2mO7MXeM2I/Q3c+NIpzXY/sol0nYJlkO7C/KdRSSZca0lPsV1Z9LsD6s8hgmY7Gt6XzlQpKVYYMIM5dSylWukt8m9c5Qbq0QTA9dIrC+otz+7kXia1yxoey0x/9sbvWi0PQ9DGFznnd3N7x5y7iJ7M/M6fmWfWn8Yzf8kziqGz4FXGukO5wNo1AezA+Lho/SdSev3A5gnaPcMxcwGKdcu91B4tE1B6aBbYL3ZeUpdxzKfU2Ofcqlm3J9VXJbNW/g71SiXCgmatxk7VjjDoC5j1NuzZQrETb+KPfc+Ex3kDCWB9OocXc7WIbB/IAUSTXM4FR1Xy+4csF4OX/R9XsV8db4y2746XFBN7wcFIG/iHeNB8ZAoUb5XQ5htLKPbvHSVd48cNE4hq7fSu6Oa8ZXrM9MA3Ui5u4tol+uc1xWLjZQrtHdZIK6g5ozmridU26jhsmmiNgaZdfsyn0TcwWJbVhT7uzrqs6UG1YM59ir2g7TaEP4avI7zs+oJ2JfSTfhWG/QP26HvLG6RkkxHwxhEIXfXPOgbviIY38aEf369X3Rc+2+Fnw/X/3z1d3wXkf2xuV7DhiXh02X7QnlhLyvgvDGIGD/V/NoyTUQ0UX6ro3oDWI4RuB4qPLO9JhLpYjJu6HB/JSrnkwb88OG3xGuJTeEdnGndG2EyX2NHoxjANNlMD9sL0w7ZQvHPPSjhm2Hk9zPyO/MNeAg2dbYLsy1e0R/P0ydEMd6UTaszuz2oxB3Evk9IhaDS6mnxNe64YvjlIiIuB7cOq9etrYb/lo8pRt+BsznYx3XsQGer2J3CK+FcJ/ryQzgHgLWJ/YpNm8reUL9Ce9rkfwQbBPmKk/N8YjaD8gyK11Zxa+Ineu+quR6EsE6UWuKrMMaWUduJb/X1OWigb8R/etcHG+x/ROmA0T0zy1I1hHO98ewC6O/b5JxBKeyFoR73uhirwN6OsN+cXOnZL0J/3Z4VtS7HxPf74Z/Gg+JiH7X7tePgev2r4JujvO5Gua7YJ3js6bOg3WEMontg2NAPqtyc4coOcy+0RZpqIfKNNS6T7mTH3RZOey1crqVVHtPTVDr2FKZle6OdXkwuVbtux8M4cxbPZNa97PxFvsgthfuw1ze+Ysyq/baRb3kuhjnQ7E8uPXYXt9bEPd3cuhdgK4njwBftPeDbv6KFZ+KiIiPt/9/vYQxb2wGyDvu7ZYCItW4jWPf5bEtOFhh++Fah+nHSk7VeJ0Pg2VWczGSaeO8U9qvHSxfkv1osnKmmNf5p8rC9p+UvGGdsHlbzaPqmZaS39VahLnuxP6h3HqrfZoE13Con6HOz9yVo/Bhv4H3VZgG89b4KAiDbD19RU8P3qujd34P3Mk+PK7ohnEP+2Wwt31ex6/0unvRPy3QgvCDILw++wZz5x3RX59Yz5lgqZ9HaFfqrH2Ui3G2L8l0wgjdh8dIHMqy2vvMfPBZ2bvOYcvy0hhf7KBu0Sb5qneN2B6l90NsnRHB93hRVlQbsH0F5eIb41UdZpkwPywzjg3sHWsL4jAMaewH7ZvyuVwUB6ay3LeOiPhhR8jHYABAnfiF8S/d8Hdg7DisM85cHGt6Cbchv91EOJcbfa+UsG5xX0D1e6V3Jmqtk3Wn5gkMM+UF41QfQD2AjS9q3sZ+m3s0agxn78XvjR2H6vPKHbsaq9nvWA/ZHurdM96H8su+AcH6wzSwjjGfHJPV+0O8Fsuc1+MeN4L3wXz+oI4+jntIuF/c7gWPO6rnjn1pp5zXwf7VKAwCKMsPh02pKzu6/rx5sLBeIp4Py5HvoG5X316wNe94jj2yb7C2juhvH1yTXNj5u1Rcq8aFzEetm5TOX/ouSq0Rs+8oPVa9c58qHduYcbbEnLiv6Lp9x30eefXVV8frX//64nUnnXRSfOELX2icvj/0NMYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjzC5DWvSciB1p0XN0dDT22UcYYAL22WefGB0dbZz+tPvQ81Of+lT88R//cey+++6xcWO/6ZfLL7883vrWt8Zll10W8+bNi9/+7d+Oj3zkI3HIIYcMKXf1FTs7/aYs47UgzE4xqdMQmB5+nZ8nY/CEgLJco77IT/A07lMhjNZN2AkFZc1BWCvIrHfjP/cd3OsZ9IxVHasEX7r/2b0cFvROQHws/qQb3hdOphwW10dE/wnoJYf1zA9s/CFk8j+QdxouuAXipFUvPPmdJ8Gw3vB0xc8gjKfs8GRHu/NXWRTAEzaYHrMwp079sdPV2C+U5U528l6drlCnwvK5SqeYpgosV9H8BIAyyU7oMCtjg/GsbdSpNISdckO5ZxYXI8pj1eNIXISW67T4oU70ihNBI63xv6Pw85EQBjHccnHvyNZjXzh+MvqR8aNu3PXQT9GC0D/FH0Jy43J4wwNwGlpZBFwD4SzfdcqKhTqNhafR2WlhbJM2hHG8ztNrOM5ifspyZMpnjSUR1YcTJbPsPjXPzR/4u6MonXBWVvlyLPwliRuMZ9Y/1Ek7lBFlaSzjUX4xDSxnC8LZR5QlbrT8eClJg1mki+An/CNiY+d6PBQrDuovObU3v27o9M2T4lvbxEX0n6Y8Pc7oho/pnG68aLdVvYT3ggyxyM+B8LtiW8a+B/9RJ1ixnlOWWxCHGSrrqyU5xHgmv8oSBpYZ2zjTw/KoE5JNTmEq63zDhFkpSZSFNHVCnFnGVjSxmK2s8GIdZ5mYZciIfotUbGzAMmMbYTtjeiloFTqMOuSdgCwf8Jhen1gIJnnv6Jz8R6sjr4pPdMOPiZ5s3X9Iz5rQV259eje85Wud+RwfD8eR5RBeSeJvgDgpQ1j/LK5duBavUfKkZCuvr7HgzKyKqDm3iXXAYVjumiwpy9lPleVTRdafKrc61c7at+bZmeULZQ2jZDFCWcfBddn+5Bq11sIws5CCcctEGGh3/oIhvr7h/9m9+kKLnmgZLK1ufyce2417RXyqG/73eHY3vE9pTB2FMMr6erwoy4RuP5S1TbaGZONzRL+uje2TYy3KKdYn6vbYPrl2wjywPEw3GEybpav0SYy/M3aMhRJl3buJRc/BcrM0mCeUGmvA2VeUBXuldzPLfsqiGF6TwqPGdGXVKNtR7XkwC7MD1490yoxW+XBuXN0L3nFVb8w56thxLzhoefeU+EY3vAjK/6F4WzeclsiWYr3hmv1vIIzDbhoOvR367gYcO1V9ZbgNcdeR3xXKqiaCfeBGEo9tjWVWVh9zbais3ihLgYNW9adKlmusak42vclaFMa1NSuH2svCdXh2RPSeoKxdtyCc7YjzCT4HxuMcne2LMo15Cwu/6GGCgcM7yPX1W3rWhzbPGX/p9FXYl09rfxE9y0MR/Wvrx8Z3IiJizv49DzlbfgPmkJiuHdF71OvUWIZ9Hd8bsP0Q7PNYR2pfK9NQljmVPnYn+R0pWX5V+2VqzMk+ymRq2LI8v/Ovxmp1UuMloCbfRFmuZ+OmWrcw64rKaqyy7pTXYLsoi2LKOmCOE5j3EyEM8Ushn1wW961HeRJtGHPy3dX3ut44Ih4VP+yG/zl+vxvGd1e33j++7tmrdXM37o6N0L+PhrwvxoJku+H4hdbClGV71ibKkwSmgdYBDyC/qzUb2+dWnlGUZ6sV5Fq158b2wLBs7GX6sK3mpycb9V6GrSvVHM7Kpj4IqLFYzMqj5J7p3Up+lUeTQavmEf3tiHMLvmvJfqPaFvJGWc25GD8dOKIXPPio3jvbRbAW2NSZ5xdDuvgO6ieQyXJYyL4tPhQREa9DRfnIrb3wD+BjEVz/tjt/+1QjXK8iqINgnWedKs+CbC2EKO9w6v1RpqH6jtqvzPFMWZ5ke59YDjU+4UJlqt4zp3VehO0nIWz/T1Ez9jCL2kr22L6WspSs9rVw3DqG/N6CMM4tqFenyVr1XgY8aIzgtxUdcGp5NIRhGroheu990wvsRuhXT4n/6IbXwsL5SuoxDfgu9H/0YoHh7viiZEitU1sQzrFPeffAtsS5neWnvv1h4ydeu6+4VslcwixwRvC5pqaPM511R1rnNbOJmg89t8acHVSaiPvuuy/mzy+/R5k3b17cf//9jdOfVh963nTTTfHmN785Vq1aFb/5zW/6frvmmmtizZo1sXr16vjXf/3XuPfee+M973lPnHTSSbF27drYe++9d1KpjTHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYs6Oocd0+VvgQdNhce+21MW/exJ9kXnPNNRP+rphWH3q++tWvjpNPPjlWrFgR5513Xt9v73nPe2LhwoVx/vnnx7Jl4ydLHvnIR8bhhx8eH/nIR+JDH/rQziiyMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjdiB1Fj13nOv2iIiXvvSlxWu2bt0aIyPNy9X4Q89SRnfddVf3Q8wmfO5zn4tLLrkkfvKTn8S73/3u/z97fx5naVWeC8N3NwVNN93QTI3MO9oqIhICKrxOBxwiGD1RonE4J5Of581RM5lEY2IC+GXQ80W/HJNozpt4EnNUJHE8URGPBDsRZVAJgnNANoLM0EVX00031V3vH7Xv/Vx713XVWs/uXdVU9XX9fv2r1Ws/e833Wvdaz17XNfDZ9PR0fOYzn4mf//mfH0j7xBNPjHPOOSc++clP7sEPPYU26QDaUPsziuWIhup4A4mLGKTL7kA45QyUfCsCqe+TBh77QlE6K2S9USoFyy8ooO/vlfVr8PF/hvChEL6rCU4+YX1ERJxzwKZ+XErTzCZ3Rj98TZzZD6dkO1J5b71vfZMwKNkMqFj3s4H+XQ3tvB37Hfs120NJfT5exDOJOSXjfY2IT2C/bhDxOKaGZaSGgZTbJSpuJZtRsqVst3FLZaSsJFIf3zr0eSLrUyNBMUXia2StmAwl9gVKDuAv9JkOq6JQV9JXiByHKHelZIq6pHxKohrzBlmJVKxAlZd7RRJAwHxDTx4ApZ9vikbWCiVl74hG5jkloXffDAaOa3dXhLMrV0C7zWAbYR9jXTsxFyhXgBXHdmbyF0q6GxsJx0aOA5S6vEGUk8lx4VhWEpI4nzE7WUx6feVDlNYttC3VjwmU3sC6Y99sIXE4P2J5VN5Mgl3I0Azkk2sElk3ZIc4B3aF8h/NGWT3ILy844bqN9vSqJrhtqknvZWs+GRERp8W/9eN+Pj7YD78iPtoPo/0+pTd+Tzmh+d43p5/aZLIe/MxvQjlQKu/OrCNIgQzMtV0IM8kObEOU/sL2RHmh9AOYrQzHs3VUzdVKSj3tVkmdo/9QkmtHLLb083C+pXaKaCcdi+kxCSvVR8pPKMko4LPo7+E6wiTOcL5QUtJM6hI/h/Y6DsqZU/Gd8ChIv93+g2ZNRam46elZI7//gGb9wk3wJDjsuBYPSERm86JkFtosdh9Ok5exB7DtcaxjG2Q7K+mZR8izCEwX01BynzlmOiIPJVeccy2u5Tj+lKQ3ouSDLwame/9yvsH1WdWdyVqjveEayCS7huOZD47AuRDbOO0TZZtxrsRyok2mbBWuo8pPmCZhJd+k5FK7vb+4Ton94zS00YHEV4JlNB5unu3AevjFOKcfzrX7hfH5ftzfxS/2wy+LT/XDKP++6oCejAzKWqG4SjcEVpMHlHQskxZXcmVdEc/GDD6LBwM4BvIcRcmM4hjAscH2nPh5kM8jtIz6ODGsfoP51OTPzhKwTZSPms+ouUvlne2mvqfW7bQzlETEsjGZz4imP5SEMM4X6Hfm3Ibpdkl5hsq5AtLIPTQuFy+GMJIQQLVP7q1bx8Din+diERE3w376eJChTHlZlIkekIg9DcKXQzh9jQFXRflBbC1GG1NSzAzYhjifK/+OnWth/2C/qj1nVlKtcxhmfmiO63Gfe62OubKSNXLtWUb1bBs/GKHONEpy3xhmsrToP6s9O9o47uMSam1hcznaNOa3kTwbg0cg6UKfBnHiLcv91zfleMnpn46IiNfG3/bjngJnzk+I7/fDO+OAfvjz8cKIiFizrqnHUUd1++Gbj39yk+FnIfP+I8ynjhjsPyavrPw/tE/mE+Ez2K844eH5BCL9MbUu4dhh87naW+IcwPwOdsY9bo6UlHsejhsuC5YH7Q3Dys5KsprqfUY+g99XsrUqjURXlAc3hezci52nRQzKGuP4zbw7ECfmMqZWfTbEncaLcUZ8vR9OdqBfig/04y4Hnfc3xnv74XfG7/TDOx+e/d6agyebhNGX3gRh9WqxD2xDHP9MSl3JyeL+F20B59d8z6jk4XHMYdolGWM1X7B3KMr+2BmYejbH8LjPsHOvjDbL3vUqiWzVltkm2HdKchvjmR2q/QyT1L6JxA1DvStiZ984Hp8CYZyHs71wjP0LhP8DL8YRvb/rIQ6SuPWOH+uHTzumOXdO6ee7YQ35tfiLfvhd8dv98BPje/3wn8TbIiLipfHJftz1E7D57kCfoP9MjzDQb/mOCLN5GdsTxw76x4icM9U6wdZ7TBu/V7LZiGa8qvMeJenO1h31fjufWShbRqi1L8He/0aUfXOcIzCPTE/5Pcp+0ybV2RqOJWXX2f/TJG6+9DKMvjQC+hHdnuHtzFAWBzy+WfvXQL2/H0+MiIgngG2+P17XD7813tkPd2FN+uzdL4qIiN27IJMmicEhexWE+79bwbb/MoTxPEntN3PuK/1mYzifjMc+eTqEcb7A3wRl3mpdwmcxjRx/yr5LfmrNmRI7N35U8RAaywg1P/TcvYjS7X/3d3+3oOm3tqTnPe95cckll8SGDXMPZL761a/Gq171qrj55ptbpXnPPffEb/zGb8Q73/nOOO64uYc0N998c2zfvj1OPXXui/pTTz01vvCFL8TDDz8cBx7IVgnDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMJYLZqXbD5j3mdIPQceJX/iFXxj4/8zMTNx///2xYsWKOOyww0Zi8US0/qHnt7/97fjxH//x+PCHPxzPfe5z+/Hvec974i1veUv8+I//eOtCvOENb4gnPvGJ8frXv55+fv/9s1dyDjtsLhvSYYcdFjMzM7F58+Y4+uij53weEbFjx47YsWNH//9btuCNQHXLswTVdOrX6+yX7OzmcQRnQcBfzatbElivvM3BbklFcLbCiMGbexmv2KYgvXWQxhlznxxoLrx4+JgmuKFXVrzJnDeWIwYN703xZ/3wV+IZERExhbdZ7oQMFdFL/6YXPLsdWfLwpkWJXapL4obTwCuZeZuj5mYEu0HVlukx+5AxZeDnmEdbsDLjTb8s22i3rrQdTwe/eZVgbFnqNptiXchnsM3QhvCH74wFQLH3Yt5s7lAsE8om2c3nx5O4iMHbklj+rJdqlw6EyTw4CeEXQPg0TKK5xvWf4uKIiHjzN5sblM8+pWH3xBtY3+vd3IpoWEpuPK25Fbr19iP64VgL+SGJzT/3/g5coMd2VjcM8cZW3pZUDFZ4m5L14TrxObKCIrNB9uvnIA5v4SmGhTZMeOzGlhpn+b02jB8N5l+Th/Mt3YTEMahYDbN91K1nxdbC2CDQThWTIKaR+WBfXAthvNWM7ZBt0CVxw8D88kY1ptXhX8PmSBtBFt6n8GdXrd7ZD+e6jcx/fxe/1A/jWv0P8cp++IN3/Pxs4LsNTdHasxo6g63HgS0jK/ckViDbFttF3VJEZF/heo8XiZDFE9PukLS6EFa+JWMTwjGAZWaMhjg+0aFRa16OgXGw1M8PbcvJOMTsV9m0YgMrAdNTazSLUwz77EY6fk+x+THGTuUbMAb+iMa/VywtEI8u5f/V+9uBuEMg/KFmszj1K00bPe6w2Yt5yWoQETEJlAi4/q7GdQ0JVHBYJ7BZJiH8NfjiRG8PNK3YhxUycdUn2F6M9fMe8Syuo8x3xWcFw9MASqx86nO29ivfns0zo92GLq/L7DY5AttHje8ErtXKZhn7PdZNMbqyPS32rZpnkCkky7eOxEUM3trHMmcbYdthW6DR4lx+KokTtjDRacLp5yqCrGc1ju4B0fQtMvv9t3hrRET8dryrH/dMUNP48/jVfvjtcWE/vG1bjx0EWQf/EsKTvPhNnyhWCVxzsa9KrDZKQYP54LjeK9aL/Yf+RvC+Ho5nvrRSjlBnAHuG+ffLipEQw4oNLJ/BOQqZetW6nenVsH9i2jlXK1Z9xbDCGCVUOZn/rPZluJ5jerk2on3jmMY6QXoz0B4Tq+dmh90AU9HvnPz2fviD8XMREfFzwKSP6zmyECGTbzJ0nw3UYTdPAAugGtL9O/WMwTxicP/LWG2Uv67YZZkNIZtbF8IdCLN1h52TDscjst+wr3EMKIb4RNZp3Odej8Ss5EINq7liXkoof4HNB2ovjPmh7bCzwCny+XB+udZiHoqNk/nd+CyWB/d8jMlIzV9dCMOZGnZrrsHIZg8EX4ef3aT9pJWNfea6jHvlN8ef9sPIGLYa2n99b4Hd+XDz0uqO6UY1I66EcqB5TrPz4KNEmLEDorOBdojp4TN4kJDzozq/Umc/6RfhfI/+IfYbW1c6EFfDDsjY6BK7SFwZ2pYP7eWj9gMsXikDqPX8ERKn9kFo4yeSZ5WfwM7O1P4Kv4fzZg5Utq+JGBxv7H0VllW1BZQDi5FHToLE8JCNIEEHyLUW19wLo1mfu+L8rXNwd/bzLfC5EvlaD+H70hbUWTUC2zHtAt8h4lmXUv1j7OZKMUmdZ7I1vI0vqPJjDJLDaSeY2stC7ZXV+9+Sysw0eTaimQtx3sR2QJ+EpcHqHqHPsyfI57g3RSjfnbH44/qL76awTNle2LcdCIOPvQ724Vlt5Hy6vgmuPbtZT27Z2aS3+YD1ETGoRIX7Y8QNML5zL/zHPWbPiIiYgLXh81CnRnASyoftqV5UI5jPg22EtqyY+zIfxWrdEXkzn4F9Ppxfjo0aJm42hzNfcrzQtsyYthlKilJtwfq/dNYfMdgH3d5fPKdCn0yxdOI8luuEYoBW+/DMW/mUsD9cDWMl3z2hIg0suTvvasbCzsManzcZtXeC5MXb44J+eBPseXGN/sqRs78dWb2yGVf3/0az+d7+TpCfXQ9l6lcbz5Cw/oqBnJ1bPSKeVSy72Y5q7kDbw/TYbx8USyfbe+M4wzOOdSLM1h1E6T3N3lKdM5Y7Zhk955+bZxaR0TNx1VVXxTvf+c644oorYtu22TnyoIMOiuc973nx1re+Nc4888yR0m1dk2984xtx8sknxwtf+MK46KKL4v7774+XvvSl8aY3vSl++Zd/Oa688spyIoCPf/zj8elPfzr+5m/+pvir1fk+n++zd7zjHXHIIYf0/x1//PHyWcMwHp2wHRvG8oBt2TCWB2zLhrE8YFs2jOUB27JhLH3Yjg1jecC2bBjLA7Zlw1gesC0bhmHsG9gdK2NnHDDvv8Vk9IyIeN/73hfPec5z4tJLL40nP/nJ8bM/+7Pxile8Ik4++eT4zGc+E8961rPife9730hpt/6h51FHHRWXX355/N7v/V788R//cRx33HHxr//6r/Gxj30s/vzP/zwOOGB+OlTE1q1b441vfGP86q/+ahxzzDExOTkZk5OTsXPnLFvU5ORkPPTQQ3H44bO/sE9mT8QDDzwQK1asiPXr18t8fvd3fzcefPDB/r/bbuM3dQzDePTCdmwYywO2ZcNYHrAtG8bygG3ZMJYHbMuGsfRhOzaM5QHbsmEsD9iWDWN5wLZsGIaxb2AmVsR07Dfvv92xZ3LpbXD11VfHr/3ar8V5550Xt9xyS1x99dXxkY98JC655JK4+uqr45Zbbolzzz03fv3Xfz2uvfbacoJDGIlXesWKFXH44YfHypUrY8eOHdHpdOLkk09unc59990Xd999d7z73e+Od7/73XM+P/TQQ+Onf/qn42Mf+1isXr06brzxxjnP3HjjjbFx48Y48MAD53yWWLVqVaxatUp8qijzlbRWNpmSilRyGuzz74i8GWUxyt6grgSWk9EtoxQD0jsrGSykZ04Ka6SDR5zdBKcgjW/10kb67Q6EuxAGddaUfv1fPRmqiIi3xZ/0w/8tfqcfvhEos7vxYxERcfPuxzWJKWWR6yGcj9+CsgNIxY39rvoqoSS2sa9Q0iDbX1FuK5mULYVnscyYX+qBlOiyI8ryqYo+H8uRdPzYLln20ejstR2nRKwqF6unkqVTyLSVrIaSHGNS0kqqADVbsO8SSlLqSeKZ7SROSVejHE6Wg8nZRWiptV7brIfPvwofg8rS0Y/t9sM7YvZywE2nNNpSKB17TTR01feDpl3KuK86sJFc2NokG3EWhJFoejIIlP2i3aNMVParkqMoSZoryRpsc0w7y6ek0nBM4TjK+R8p/A8Tz7JJE59FpE2NRq8//5qM6SsoaRMly8ykfrFuTOIK47G/lDw3kzfCeCVtgmOMSU2h5hqmgXMLkxnG+mN5YG6ZhjF2e69Mr4NHuxCGqWP7TY2kxZdOf05EDEq6nvtTm/rht372on740t0v6oeffsw1ERHx7fWN77htCuo/KcpxGoSvyudRQpLMSRExOGayP1E6CC8SKTmylArDdLGdEUxmR0lt4di5ScQPpzUf2FpbKvNosjjalqdicLwqMJmftlBrUkkCB+cD9F8wvZx7a+TxOiQ/tbagvOmTyOdsHooYMIaNkF8qrqKpXwPhU5rgzq3Nep8SONvAB0Cp15ui8asH5C7WQ9rre/JGX4XNMZ6V7oDwoTCfTWYA7fByCGP/MWlVbEPsH/TjcW5gcowoKaRk7LIvcJ5VPrqSTGXPKuC4zHopqUNm4+Nel9PHZvI/ar/A9o1Y95q9CJPCrZEMxPIxGUclF4tr8fD3IwZtmflnEc0YwzywLToi73yeyckOPcu2IWshDuSuDjmumRDWw6L6sXh5P/z/j9+MiIhzP7epH/fy8z7UD//H+HQ//K747X5466d7G/gPQ95YtoOw/Ngend7fL0McSoxh2+L3Hhn6q9KN4HaG6XYhjHPLqSQe1+TTIYz9iuMPx2WuJSVZyWGsjtiDw0Zty5tDj3/l2yKybkymK2JwjtxO4tX4RuB8kOW7m8QNA+PTz8W0OhDG9JhPxXyv+cCk4tnnEXLfsIvU62oIw5ka7oufHV+KiIjXfu7iftybzntHkyywE9wDvt+q3sL8jPhKP+6AlzdjYOdlMK+hLU9mAOc9XGfVeWa2gRojykYOI3H3k8/ni2dnbjXjKNcgHO8/Es+ytZiVvR7ajqd7/9rOK4kaufaSP65k65ndqzlnSoSZ9B/uW7DeTNK9NJYiBv3u3Nvh+DgcwkIi+GFIL21kKzz6mCZ4/2VNGke86Ev98MvjYxERcQHIPf9l/Eo//L54Qz/8ori0H76xt+Y8/bDG0b/yjuc0GTZLfMDxecShvT7ZjHMxtpeS6M1+O4rEDQPTQ58+n1f+LOLpEM4XXOiX4/cwHtfrtMMuxNWcQZfGbXtoW36YlEudXaSNKElMdfaYfcbOpOcD8/nV2TfaZ5ajA3E4N6v3FumDY38eK8K4/2P7dzw7wzKD/4jNnF2DWYMS867pJo3rDzitH0452H+IV/bjfj7+Vz/8NVi4j4A2yHX7Ywc3hvqd40Au9jNQjqMhfF+uu+o9Hp7r4tjpku8dTD6PGLRxfCbnSUwDfV+1fmQ5lHSskmNne0OsE85VWM783mrxeY7bhTrDRrB5Q51DYd2wjdO2lFw7jv8TSTz2Eb5Lx3GD+eEYYmXDtlTvmZnvo95h4FqbNqJ8Q0gDm67b+3svxD2rCW79WvPC+QnPaSTkn9JrjzvimH7cp+Ml/fCH4j/1wy+Oz/bD/yt+frYIO2HzfTWMCdyTfxPC9/X+rgAbm8H6YV+W3g9gn2E/4DjBNA4mn6O9KUnvbGgcWw+IMM4d2Vdqz87OySOasYZx6h3LnqGdLTOo8yv2mxKsb+n3IgjlGyifP+NvgDh1BoZ+MJP+7pC4CN03jxQ+B1t/GKLTf0YX5clBsQFsJPe3d8N8+P/Ef+2H83wrIuI/RXOudfzK23rfa8br9qth/VXIbtuMe17sH2zbLoSxPXI+Vn4ctlfpLFX9Jgjn6O1DfyMG+7IDYXY2gmXHd+G4TrD9mzobV+9ia95vGcboqJFu372I0u3vfve748wzz4xPfepTsXLl3HyPO+64+N//+3/Hs5/97PjTP/3T+OhHP9oq/dY1mZqaile84hXxpje9Kf7Lf/kv8dWvzv6S52lPe1p88IMfbJXWYx7zmPjiF784598LX/jCOPDAA+OLX/xi/NEf/VFMTEzES17ykvjEJz4RU1PN5PDDH/4wvvjFL8b555/fthqGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYSxBPNqk26+88sp44xvfSH/kmVi5cmW84Q1viCuvvFI+o9CaWu/000+Pe+65Jy655JJ4xSteERERX//61+OXf/mX4xd+4Rdi06ZN8T//5/+sSuvAAw+Ms88+e078Bz7wgdhvv/0GPnv7298eT3va0+LFL35xvPWtb42HH344LrjggjjiiCPit37rt9pWo4fhX+7jL93xphS78YS/lMdmxFtJ7JYq5nGUiGe/ele/ime3KCKamz14awdvbeDNSnW7JoFtgfVjt7ajaQ68dIIXDs6GMNzm+PbO2fL9xAHX9+OQteC7WxpKop86+H/3w2mQOx6GGznqksvzIdwnIMO2RQokZBnCds4bB6rduhDG21Z4gyHZk2qYvDBtdnMI+wf7+1byjLpJr25DJxT7jmKUzXIwFovRblBqbI+ImRi0Q8W8k2VU7Az7k2fxGXUjCsGYv9StNcwPmWLuHvo7/KxiYWG3z9VNI5wv/j3mAsdER3wP8l7Xe6YLHz8NwsAotm1nU/6pA2b7Yj+4Ov2leHY/fHk8rx9+fvzznFI+YeX3++GrNjY3MuN2YMPBIZ23LNdD3G3qtqFi8Dq79/dzEKdY3nB8ZXvhTXPsY7xpi/N13uhS7FnqdhQbtzgvMJZDhLptlni48HlbHBqzZS0xCym2gxIztlovFVsBYzZVN9vUDdlMW7H+Yjk7JB/FWvCICDO3biOJGy5HD9dD+AwIb4IwsOWeFv/W+/jsftw/fLZhNtgGY28bMAluO3g2vrPmln7cNyeBTasL+QGrwuCQy3kL12pkCVOsITlmcO1UczS7IanmXOwfxtSL30ObxbHD+hXLqcYfY3hVaxSbD8Zty+tikAVQAevThmlbrWsIljfeSMcxodiUE9jW6AercmT5cW1FvwT7C+f6HCO4PxCs87g8JQknMumj2a/HrJsy7zhh1m9GRs9vR8OyeyewHOzssW9HxCBr0WRvrT0S4jCMXbkZwrlED3Q7svhgPyArQdo72hM2BmMiGH4mgf2AbY7fy37DdBlT2TAU2y9LQz2bc4BSnGBsICVG8bZIH5uBsRdGlBUtlG+h9hrrSBy2A/pOWI5jybM4btQxSNok3qbHdi0xhuGzuD4pFoccW4rlBNYTLHIO33OD4sHbmzF9/WN/oh9+PrBsfa230H/svIZZaBXQ8P75N97SD7/wx5u99zezSRvyhOiRk81iQIQF2z/rypiM8fMI3uZoC4pVEFUKJob+RmifGf2HbHPFIMTqFDHYh8wOahgMtsf412QGtW8urdslXzuC75cVW2uI+EyjA3GKGR3LnEwTuAjiuRdjiI7gZyXKN0AfL/0KHPSM2T+Cq+9ExNpe+z8EH/8UhDtNMBUtIiIeFzdHRMSfnver8GjjV98Wx/fD/794cz/8lvjTiIh4586G7m/nfTAGzoa8L4Pw9RnA8VLDlJlnHOy8IWJw/UVbZs/jvKDmVMZag2MV1yBMg51rKSYyDGP5h+fzcZ97JRhry3B+paN+xS7GUNpTDZeDQTFPYdrMP8C6qj7IZ0r+fMTgGGOqKeqMF8Yevg9Kkh4Ql8Kh+6z/+wv9ML5IWhU7IyJiHbT912Hzjc92YRLY2LP7S7fBJHE9nINj9dZDmA5F1Wd3k7DamyAUU1zOg7g+17C2snRxL8fUjCKacaCUIxQ7ZX6Pna2Mpkqlwfxr5auwz2uUpkrfU+td9h2uX8rWGVOz8oXUmRuDOltT76MyjAaAZYbzV1CV69sIJtW8gor9Jpr2QmbdM3vvjfB91U0wx6FCFZ5zJyNvd0unyUQx4nch3C8gRiqFIqxM2hz2CZ4vqnNpRPaxWuPVPJLlU3tX9Y4zv6fsW83XjElQ+XzjRKpfqL0uG+vqXL+0pqq1GtfJHw39HQbuTbF9cm5FG1MMdkrdIvNU77mQbZCxr4eIE0pByf6HZ0+oLAPCn3fvbNaZJx4we66FbPcvi0/2w+8HmaufA6bejN94wM39uK+fAhTe2ESM0XMG+xT7Af0qfGndhXC2h2KXx7TRrtMhwbUTxxGed+AzTImh5p1XoqQOF8Hf5ai9N3sfOu5zr/kwqiok+r6KDZu981dMjYpll9kI9iGep3YhrN5NJRSTM56bsLleMcV2mmDarXIHBgSlmoPkVHXFPW/61BGD+997oA1yDpjaDG14COSnRLUmM4B2pd4JqPd0CaVGgXaI+TDFIKZAFsHPPNX6qxRO8nkcZ4oVno3FGsUJs3gai4dZRs/5f8g5s4iMng888ECccMIJxedOPPHEeOCB9rbSuibr1q2Lr3/96/0feUZErFmzJj74wQ/GX//1X8cll1zSuhA1OOmkk2LTpk2x//77x8tf/vL4xV/8xdi4cWP867/+axx55JHlBAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDWPKYiRUxHfvN+293rCgnNCYcfvjhceutjBhyED/84Q/j8MMPLz43jNbXEq+66qpYtWoV/ex1r3tdnHXWWfSzNvjABz4QH/jAB+bEn3HGGXH55ZfP/cLI2BwDV3wGgDew2O1ujMNm7BbyxNsQeOsFb86wW+bqpg6mwW6H4LN4WwDLoRjF2G0shLgpN3nwnCf7LHoRA03+rNObG85XXveCiIjYcHpzswCZhX7i4Gv74WfEV/rh+3s3KQ5fc18/buvdcE0TSTG+BuG8jNKFWy63KEYBdmsQ2x6/14Ew3prBW3t5i1Kx4Shjzny6EIfjRd1yzzIr1gLSZwPP480PxngXwW9xMea9hbp1pRiWGHuKukmFbckYKrAP1U0VxfrDyonhG4YfDM0wqlgVEGmfigkUUbrJjp+z27YRMdVrg3WQx73wKBR5YqK51Zy3rd4bb+jH3Qy33tZA234NWA6O713V/PQDL2kS/igszg9C3jgHZDnwpucAkJGlC2G8vYbMvwxoL4ydEudixdCM4yHbYwuJi9AMBZkejk81bvF77PYl2kauVyXmjrbY3EsT24GxqCnXRd2AZjcTGevDcHzOt+qWtZpn2C1VlYe66Zp1RNYrXBeQ5QbTy7kcGTPUHAE3BTMJXCOx2X67CR7y/Lv64Wt7LAaroQxrgCXg2fGlfvj6gxtGsckeo/rt/wfGMd6mxHKgm/ZdCPdvQSuGIMVQlTcS1U1IxTKZdcT1HsOM0QLzwTKoW/yMDVYxhZYYsRRjB2PiWUwWwHUiXt3aL9VHMRvk2o7tp55Vcwdj5cbxpthUclzgTX2c07GuXQgfSz7HtQfmw3th7CWRwH3w6NkQRkaBlzbB23/YiYiIqRMaJ/0r8Yx++ItxTj988/ef3A/jpd7jXjv7nwFbVm7i0RBOVtAp9LWxr7oQ7ogEEzhesM2xHdMfV7fq1S39bPMaFnw2TlU7SwAA0g1JREFUp2CdFKM7orTpP0yEM+2FYtrO9BWLnrptuq7wuQL2R7aV8tcRjGlRzdkI9I1yrNSw+DNmC2wXZM3pQrhD8j4f4nBcQdtNw/fShjDZt0IYfO0Xxuf74TuAqTeZxC6NF/XjXg7UnJ0fb/ax92+DvXWuy/8G+eFF6UksB4Sns/3Rt8O2Z6wwEU2/sb3tMBgdQ0d8D/fp/wHCuRfAsjGm7uEwW+fVWU0Nu+c4MRG6rCU2P4Rg1ZH7W3aWMFyuBGPnUoxiig0u88a+U6xBbB5W7M0d8Uz2nTpXUSzCkF7a8nr4GNnsYW1HVYwzD5jdj6L6Be6bfx5YiD4ZL+uHJ3fPZrTmgObZB9GWDxThXF7RbCRbWwfC+QU1ztGvQuan/Yf+RmimrqMKz2D/1Kjh5JjBPlPsO2yfmJ8vFDuvYupCMHufEJ+rvWk+r9ZcxSyaQJu9kXyuyoRtfRP5fDi/nCew7xnTqopHW0cfD+etThPEx7Na/xniYLm88oeNL/2aExqb/LN4Uy+Hpo0uiUYVA5VskBHwvt55wK5pWHTXQ97Iu7EDwv3mUnM49jG2UVa2Rn1K7dUS2A+KORWRY0OpIiDYXk6ddSkGpLQrTCvnn4Vi51VnAuwZ9Xmp/ZSKAM7JHQjnGMGDF7VPYr6RUsxChQzGeKjY224iz0YM9iNj9cXvwbkX7pfZMgN2g+sk+sr5DurouKMfh4z4B0D4Sw8033vcYbNMgBsObup668OgNKjEivrzchfiFFslzmE5QSkfRTE2InJdxsUfGwz3OiVWZXUOxM6oS+N6OFxis82yjfuFfp57qXKxuQPrqzo97VDtF0rrq3pWqTuydV6xIuN5C64p+W4G1048A8O1hZWvA3FqfyiKNF9xYtCWcy98OLTF38Uv9cOoZDMNG9ztvTP2b94BKjuIT0N4EsJ5jPY1tA/0fbF/FDN2lh/7BNPA+RPTy75CW1dnjcynVyy8GGbnQ4wtNmLQ12ZrNNpASY1podZlBrXuYR3YHPSACKt3Edl+uFars3zWN2oNVAzQ+N6o2/ur1gJkncT0skzIRlvB4J17TPy9CKpbwBbq8/HCfvg5vXdMyewZEXFyfLsf/pX4y374+z9sflPyrBO+GBERV/7oBU3C34L8uqL4MzmWsT3VvK38KuYfIXMn2j0WJL+n1A9wTi351WjrypdmeaBPgWVjZzvqtyM1dm0Y48esdDv/HWNi19hVGzSe9axnxfve97549atfLeXbd+/eHX/5l38Zz372s+nn86E1o6f6kWfilFNOmfdzwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzCMUZHS7fP9W0xGz9/8zd+Ma665Js4///y4884753x+xx13xPnnnx9f/epX47d+67dap794P1k1DMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMPYQ6R0+3xYzB96nnXWWfFnf/Zn8aY3vSkuvfTSeOpTnxo/9mOz7MS33HJLfO1rX4vdu3fHf//v/z2e/vSnt05/H/+h5+oYlJZUcnSIpFNWMkWKyjybWtGeYzyjWMbPUfIC5TQwPSZNp6SqlAQ5k8xC+nCgF18B4aTdvgse3RpzP4+IK3/QUHufdvrVETEo174xbobSNPU7HnSXP9WTokJJG6p4EDEoa5Oq8ZMQN0Avr2RYM/FjxbOIDoSZROSx4nMsB1LwMyg5bjTvHD/Yv5gHUv4zWSolsYENzSQlGKX9uOn118Us53vJZhWwb9UcwCSL1LOsrZTMlIrPPlADGcNMliGi6V/sZyWl0iHximof03jS3GfQ1l8KYZBi3u85qEc3C5St2gBjvgtlQwmclMtZvbaRitl5NMxDSMH/GAj3pelUPzD53Qg+vjFOSYJ1yDMozYBzB/bJk0i8kgLEcjDKf6xfyWYjuLwbIun1xy1HN9H7h2sSo/XHOjDZpwjdp+zzBwrx2KbYZmq9YPIcTAIsQssApkw71k9JLuFYyTkKJZTUeCSyMM+CKFRoWN8EjzngToiejIjBNXkdzIcoJ/n9O57YD/ftFqTtqFp3RMQm8Uxc0/uLbYH9w+bUiEauCBND+8V4XMMyH+z3L0MYfTMmI4XrBDrsaq7NfLDsKG2B8UyGUI05zC/LtFDSkgxKzqPGzy2BrctK7rlGKi/bCm1a+VFMJpyNn+H8cMym3StpUpgDcBlNs38cxKFc+2YIQzP/5MmXRkTEESBbdRMY/t3Qdqsf0ySy/bhGYu72r/Sex27CIabUZPrTCLaFkgDFOT+fV/sYlMBBabJsZzWfqzGQDabWDOxjJueLUNLGajywNJSc10Jhc9TJayow3xxtUq2duADlAFf7HdVmOZ5U3yr5x6yjyg/B7BPnIVyLlc+Ykogoh4XSSmLflPtplFb+Cwi/rqnfASc0/vPUgD7WLA4HHcttIOGFMliHrpnshy9++LWzAawGSm3hdmRAGQrl+xI4SahzlBwzOIczn2m4UImDC59HcAkrJXOm/Go2d6vx3taW9hS1+2+1N12ofEufo/0qfx3nGTbXMyn54fQyH5x7MA+UPMQBvn/hWYSYs2dI3PUQfhb5PJp98Z/GW/pxF8bb++F/i5/ohy8HOb39Vs46EHde0UjeDeBKCGPTfoedqeAaiA9jv6UN4PeV5CPbQylZdrWmYtqPkDgE9slh5POS/GoE9zMzv7lnHuOB8m0RbP1V7aB8mZJ9qvmUnX0ziefhNNh5oZLI7JD02BoTMWizXQhnPjgOsD3VGSjg+N7fyyHuxfzR9XDw/LjeOfeXopFlewrI7+IZGO6zb+tluP1TIPfcbLEH0YVwDsUJqOu0khzF85f0Y/4DxOF+VO2RmJS6WouVn5n98x0SNwzm06GPpuYI5iOyPBZKIladA7B9An6OYxbnRew7to/A8Y3zyI0kvkauHfsx21XtlZVPkTLI6Afj+RaOG3V2wGR/1fcA7AgEzrOfGN/rh58A4Z+LD0ZExD/EK/txaKf/Gs/ph/G8+o6dR0dExIPfhANqlJLHMG0uNR9iW6jzwwT6KOg/474Z+y31qLENsRylPS2OQ9zf4JhjMrjKH8W1ms3XzCeMaMYD7s3GgTzDRqAvmfMl2qk6D8N2zbqpM02sW+m8DNdAtW5n+6nzdZxzmJ8V0ZyN4rhCqHcmmTZ7ZxrB/bNo7Pd4iHsaT2Id8YnQZlfBuyZci/+/cUE/fOd1s37z2pMaQ936XVA9RZfvegjT35hgeXCuUv5RPqPOgs6EcBfC2RfqnA3tkL3rUO+sS5LLqk7KD834mjyy/At1hl36qYw6W2JpqLQw/kckHtsPfSD2W4+IZlzgfKzsF8O47j6z97cLcbgWY9q4RuTcgY7wMyEMY30GvvfdXh3PhkcP4tmdAy+Fzui9XM7fggzjgNjZDz/9hK/0w1d+pSfZjkdhHQgfCeFrIDzRK+c0Poy2qc5yMZznTNiGXQijneH8+e/kc1xHsR/YnKLmE+xX3Dux3wHV/A4iwzXvcWrsxzDGg0ebdHtExK/+6q/G6aefHu94xzti06ZNcfXVs7+HW7NmTbzwhS+M3/3d341nPOMZI6W9j//Q0zAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzCMpYSUbi890wZXXHFFfOhDH4qvfOUrcdttt8X69evjqU99alxwwQVxxhlnVKXxzGc+Mz7zmc/E7t274777Zi+PHHHEEbFy5cpWZRnGPv5Dz4kYpMFQN7oZe6f6lX7pl+nq9gq7DYFlYuxQ8yGfwdtYWD/8dT67bRvBmRAFo9yBcKski4p2hMUHZr/Vr5rsh/PWxQa46Yw3rBB/+EBzq2pn3gJ5DNAhdODhqyDchXAyj0xjPdVtYbw5dyx5VrHqKNafzPMeEjcf2O1kzEON2+zju8Wz2K8sPbypgXkrZHuxG3njvg09FbNtp258MrZN9TmCsQmpG8TD5RlGzc1zRI6Lk0jcfMBbuHlDB2/oKdbfLoRznGI/4w0evJmF3+vldxpEoYn8YhO85wfNlcv7HzubxsviU/242+BK5mvi4n747+KX+uH9em2682G4mTEJ+SFTIF4so0xNiqEZgW2Q9qKYRBQTRqf391qIw3lBzfNph7i+YP+w27D4Pfwc66HWEnaLi92MHjcb0XTMtRU2j6kb0DinsduGymYZaxQ+z9gSI/S8iUwK2UaYt2INwfbs9v7iPNQJDjbHrYE4rN9NPH7/nv1OiizgMt531jcMQZ1TPzHn0a9Ec/MIb1PGwwf0g9vz5vN6+CKygT0Vwl0Ifw3bP8cn2kWJoSOiaRu1Xio/LftbPYttXvIbsWxoZzhfM6g1g9VVrXNsbRs3mC0zRja1NuLtT8YGoWwZweYnxfiKYOwlaLPYZmrOyT7FW+g4Vl4CYcYm24E4zBvmHPSx8/EdEIfF+QkIP4hJzD50OPgON8AN4Xu2NHPf9s80zEFrXwosBp/qLbbI4o+M2li9mxiTtrqtrnw65m+3YaBT/iwyXSDLPUsX902KFfIB8rka7+p2fH4X1yA1r+WYW2iWwBofnvWHYt9Tazjbv6q9lmJsyn5STBR4k70L4SwrllNRTmPaCRz0inEJw1lXbAvFsgVjYX2vnLhVRhaTI5t98bt2/nY/fNkB5/XDd8Qss9AaYLdBdqLJB9b3w0cfdkeTdjZzN+bGRQwyCg9c/E87wy+qNZyxjeAYwfbC/U+bswzG6IioYe48WDyT31VM0lhOxl4/bhwZdWunUo3I7ypGmBDxpfMN1efZVthHisUQy5nzgWI8Ueo6OR9gGXBuQXYNXKvye5sgDvMW+zxUw5nptdFamC9QjQLYxR68q9ng3nPCbD7/K36uH3dMNHY6CU72f4x/6oc/Hy+MiIh1z23a4uavPLnJpPna4B76iF757lNMfMrHYuNOzffsrBHbG21FsaazczIsj2KzYkyCikG05kxoIaEYt0prdJvzqxoottxpEsf29BFcWYaxG0UM7mHYmTmm1YWwYhFL4BqCTDliT4jRuQZj1pNYjKb8t53QnHGlGhWedb08PtYPvyI+2g/jC6pu9Jh4T4M8KGN+RJwC4WnyufRnpskzam1S7Ly4X8J+SyhFDmafNX4+K4diEVYMmFlHxoK1UIyeao1kZcC6q7UYbYeVGdtB+dUlZnv1joNBnXvh975M4pB1EuuB9ot2y96b4QZY+ea9Oq6HKGD7+redpzVPHtD4yp/u7eWRJfB6MMqd0Zx7PXg7mXPUkc4RInzfpsHyRkSjCBChz4nzecWGrHwitrajfeP460IYbT3TQN9NMYOxs3mMU+yVJfawe0h43CyAee6l/B5mT+o9As6z2T7qewrs7KwLYewPRI4h1e5oQxMins3PJfW7iIZlVZXtYB594NDfiIir+aPf7zMHR8SBs+04ecL6fhSyeF4D7JgYnyZ35/8BRnzVJR0Ib8qAakOc+/4FwjhXpV2r91jq3U5+TzFnK4bmjC8x3w/nzRoEx7XKO9dC5dOWVG/GgWTnZWykyi8VY5P+JgOBdsGUU2vO6Rm7q/KR1PsH9Hm/TOLUnp6pzZ0qni2d5QLwndD65izrn+D8PNUd74hj+nFf3Hl2P4wKdLhG/8wzPhwRER+/7j81eVwP+SkCyv4wVGckiuUSx2naVgficBxhf+MzCWzbTRDG8cf8yZL6YwRn3FX7+9LvQbARlS2z87LFk8429i3srpJub/fjyr/6q7+K+++/P3791389Tj755Lj33nvj3e9+d5x11lnx+c9/Pp773OdWp7Vy5crYsEH5Pu2xj//Q0zAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzCMpYSZKun2+X8IOoz3vve9c36cee6558bGjRvjT/7kT1r90HPc8A89DcMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMNYMqiTbm/H6MkYONeuXRsnn3xy3HYbV6ZeLOzjP/ScjvYyNYxqviTXjlA06yXJbUW3jGCSb0xCNmKQFhql61D+IiUmkFpb0Kxj1qmyoZShnwWp3d5IQa4/eTIiBmUuLo/n98PboO123g701EnT/zBQPWN+WHyk9KfNiLTqSlIq20DR0zPZxWEwGQvVzkjFnekp6SME6/vjIE7JoTD5aLQTJTuHZcrGZbT945bKYGVBMLlIZW8Yz6jy20r2MLl6RnEfMdj/JZr/CRFm8hw1UrWsT3FeQ5p4BJG0vgnG2JnwMTbncY2tpsQcSkXeCFIBpwGX/irQpZ3qjfvt32zmkIFm7kL4XlZ2bAuc91BuBsc9k3JFW1cyBtiv0+RzbGcsE5Yj5UJwvsB+xX5Au868S3Iqw2ViMk2lzxcKTDoMgWVR9pJzpEpLSQpknyppkBo5yYRqs8PEM9lnWJ5rIcwkmSIao1P9DPmt6DThbAIc5i+GMMiwrn7V5n74tpiVoPt+PLEf94T4Xj/88vh4P/ztx5zcD299uKdF1ShAR3wVwmgW34MwlYlSkmAIbK9M43b2YAy2OZNtwfGCsiZoZ2zMKNleJX+W6SlpNiXbmPOBkqZs47OOinUx63Ax2Sosaxt5bmWnKr3MW8kU1aTNvqdkxjCc4w3lxLAfbxDfy3rjeMX+ev7cRyMaGUaUaEQpdcSzmvqllA1KzaHs686DG6mqa095Tj+89a5GwjZl3Lc+BvTlULYZ1K74HIdr3XfI5xGDlc2+wrRwDWQSRhFNHyp5my6EmZSSmluUzG9CyUTj2MAxx+xW2SyT0VkoH7sNsE2Y/E+QzyMG24ftn/Bz/B7ud75LnlFzALY1m587EIcDGdd7zO/pvb/Y59h3SkqaSU2r+Z20y9EQhn3uEx7blHlbrOmHPw3SV+lvo0TdBmiXDYc14W/eALrwV/b+oqlgc4Ls5aBM7LaYH3eLcEq+Y/91IYz7WzzX+HLMBZHsjIjByvyH3l/sd+V3KftMuy6d8cyXxjgx39zAfIgI7svgs1gHJaXO0u1CWEnosrxrJPyYZK+SUcN+zPXnmRCHPpmSmstxintlHCvi7GymC/Gd2T+TECWOkFauavbC3+v53k8ER/keaOcz4mv9cF/uOZq9dRfmuJtvA+l2dI9xqfpiBpjE+XA883MfEM+ysy5MW51nqjHH5nw1/+LYYDLkqt9x7Cgp2ohHz3F7lqMDcV0Iq72GWrtLYFK1qi2Y5DC2I9o69hGOp+wnHHf4vU4hP5UHjo/G9x1olvW9v5MQ928QBjcXZSZ39NhF8OXT5+OF/fDL4pP98A2w30w//Tt3gSz1FyC/IyGMtnxn1lXNo5+AMI6Hw8mzaj3sQhjnz4HNQA+4Vl9HPo9oJiBl9zg3MFueEp8j2Lhkc9xi+NeqbzKMc406n2JjWc29Soo2oc7Z0A9mczn6b2xeHc4v02Pn4RGD9os2DjZJPxeS0RNQrzQ/fE/0mCaIsuvbH9v40rl+vi7e34/7r/E/IOcmv7Mf+/l+eNMN584GcJ+O74Sxi/GcrC/Tjm10GYTVe6UE9oPyOZnfjekpueLSu0p2HjT8vZI8tBrvt5K40pnRuNflQ2PWVrCM2MZMSr1GCjfLrvaECqVzSNy7Mt8J+wIHJM7pWD+cy7Ov8f2Kek+C5cQz1YTy2wA5LW+FuKdC+OwmeNwTmrpMblsfERF3bGnW5Lsnmvy2TTXlfNlRn+qH7/xBZzaAzfLSxi+PrwFrGD7TV6BmfkvEoF2o9wpZvttJXITee+T+Bm1WycSy/sHvqbWfnXcp6W7MG8czO/vG/Nj+bdxyz6dExJrgPomaV9j5JgJtDL+H7YB1U2eO8+UR0bQb5ofzI8456h0ym6uwD3DNZef4d4vPxXuQ7b1nPgYf/2JQTO5c3w9fc8DsudXj4uZ+3HMO+FI//MVt5/TDqw5s7PPau3rnXbi2TkIYbXbgt1pdUiKMY2tWxODZdodkgnPq6RDGtHN+vQbi1HrOftuj/LFHRDzzldXYRx/8VvIsexeu0n607JeN5YaaH3ruHsNa8uCDD8Z11123V9k8I2xJhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEsIeyK/fqXK/UzE7Fr13Rs2TJ48WbVqlWxatX830288Y1vjIceeije9ra3jVzWcWAf/6Hn9hi8uodQLIns1+2KqYvdgFZsnIotiN3CxM83kGcxPUwXf22PNzHUL/nXxFzgbQAox3a4dZOkGutFsoKI6Zqds0woaw5oyvzK+Id+eBNcx7p1svneyic+FBERu79xUBOJNzSAZGjg8sQ0ayN1y5Sxv+Hn2IY4MaibennzSt3cUYxELF11I5PdoFI3TUq3eZFxCRtR3cbKMmNnZxolNpdRoW6ZKOY+BnVTtMRIpJDlUGNJ9V2OQ1V2NT7YXKRuSmLe7LYV3igK8nkEZeBQRJkI6J5kBFwN42K/2NUPvyY+3A//M7CZfSWeMRtQl+sHbB0/YHMwzofItIbzHWO4QQYhddsQv9dmTWA3vRRzmBqXmTdjpx2GYuVhyLEzbmaDid6/kv2qBQXBmPZK9YrQN96GyzD8uWKXyJtt2L6K4W0DeUaNnw6E8cZppof1eDqEIY2ZzzXhqfNm/+JU/5cQ/vUmuP7gyX74zt2zt6A3rGzqfyqwdvzmznf3w3ibcr+NszQGD34NKBOAnBemgEEgA0N/De/AA2hP2ObYHnnT8UfiWXWD9XbyOY4zNRaPJXHqWcwv2aHUrV0ci8wnqHHxF+oG5VTM9oViS0uouYuxCam2RntidqiYvBDqVnb2HY4VzE8xsuX6iQw2alHCvss1GpnB0L5hfN8Ja//GuR8P4IkQvq/p600nzN52xjX3cHCgt+M+ALvkiJ394Nbre0725fA5TluSLDUf+lxwYF/ixJTfw4SxjxUbDGPD2SDC7Ga+2hcqdo7S/g3LjGMH149sA+WDIzK9ca/Lq2N2r8xsVbHbMuYRxU6h/FnG/qf6QPnSbP1FKN88bbzU1hGDfcMYWbAeaMu4Luf3kFIbmXRwDYEy3dZby3CfC+HvX9HMI09/7r82X+v53RENsx/64MgI+D2cPLCJJmMuMA5ZEAYuSDOmeayf2qfm+qsYUrHtkf0821H582p9zb5SazWuA4Ixiq43ak1sqxgxCqZCn3spX5PZfYk9P/NKZJ+qfSc+i8wjzC9R5yqMHV/5zGrtyDbA7+EajntoNk8r9QQc32qR7tXlIBhXXfgYzrV2P9Ssy0f18pyEQzcMfzr+Yz/c3zdHw+b9/R9AnYCQaGCYDBDxMSZ87AdkEmEMI5sgDscAU6PAtNX4VCxYjBUF53OldoJjg43zmvO3YUasxbDtEktKRNOGWG7FjolYPfR3vmeZ3SvVArVfY32qfHD0K9j3cCxhGjgWcqwo5iGsU4fkEc2624W4l0IY2D27z2/SuHvlbJ/8Wvx5P+5wODz7epzRD/8YJH5j7hHQTn8MwjgVDTBqM2UZtZcsnYEou8e23U6eQVtHnwjnVOy375A4zA/9Jiw/YxbCsYNgDGWMdXChXp0pplEsQ7arUsJAKMamhFqrWZlUHoqJLtsIfdiuSEMpjSWUEopiDEugH9GBMJRzGs5+V/fSmIRHkSjzzMaJ3fDYJu9vx6xSzct2Nky4Gw9o2MWeAovn18CWV3dmlXG2fwwOvh6C/AZYPNkeiTGhRpTVihTrJjKOqXlwO4lTZyeIXEeVb88U4SIaW2UKERHcT4hoxrYa19NDf8eF6Zhra2xuVfVV5WHvkpSSIDv7xs+nCs9iWM0z7H1mxOC+K4Fjs0axotv7q/ZX6D/AM4evnpvU7Tx8+9pm/7tyv9l2/ImjrofcYG6EI7DPb2uYttc+ZnaN3no2bLg/CD8CQZ95YFrLtUqxm2I7K4WTtFVsT5zP8T0r+jx55oBzJ/YDti3z45QSFY7FY0kY8yupn0Xw9Xd/Ec5nxn3udX3M3Sur+S2h9gPZd2o+asPUy94TRQyur2mfykdXYOMN+7wjvscUqLAe+D2x31jdqwueZaFr0F1B49f3FmxUfUXGvpPXfLtJAspx+GNmF9j7u+z9zFDeA4yemQa2lfIpEYztGOOYfUeU95tMBS5isE9yfClVDPSV2LtKdUZWglLGVYyyC7UuG8YsZiKqGD2vv/76OOSQQwbiL7zwwrjooouKefzBH/xBfPjDH46/+Iu/iDPOOKP4/EJiH/+hp2EYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYSwm7Y2XsiAPmfWZX7BennXZabNq0aSC+hs3z7W9/e/zRH/1R/PEf/3H8yq/8yp4UdSzwDz0NwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMw1gymImVsavw88fdsTL222+/OPjgGqbeBm9/+9vjoosuiosuuih+7/d+b0+KOTb4h54Sito+oaQPFC13NjXSjSP9doleW0mFIhUySkolJTN+D+WJkYZ5QsR3e3/PhDisH8pfAEX0bT3DWAuPonoHyFEc8vy7mlJMzEpHIqXupfGifhjlL65fe1Y/vPt7Pcl2ZG0HNdh4fwhkOyoqekQHwvk8Stsj1TU+i3Iyx4n44fJE6LGRk46ih1fjMqG+h2CU2SjDo2TpSnLKmca46fUZlCQNk9JE1Mi/7ymwj5TkJ8sP5w6s33QhXkg+yvyyvXC+UDLh10C4l880jPNJGNPXw6PnNmVOiaqb43HB8L54Yz98P5Tp5q88eTZwFzw8CeEByn8ITzEJFCUd2oEwk/XEOCUljM9kQTA/JXfFoPJT61XOmWqpL0mt7i+ebSsHUYvpmDt3lCSq2kg/KzCJEoSqr5LTRRmElEpQZUCbZVK1N0AcpoHfw/WCAcuGeaDP0Fv7b4LPT4GPv9UE7/yTRh/uvN+blas6FIzvJmiXnzrg0n744ute2yTS7f0dkKcC/J2IR1+jn49ae/BZnAezP9XaX/IJOhBWUqRMAqckrzQcRkm7EpTvmVByOZnfrhgvmNxzlkHJ9ewv4ksyHso+S7K5NXNH2g7amxofTA6YyRZGDM4zTIJuE8SBD74C2mg9PNLp/UXpN1QdehDCW5tg+tV4w3Er1PXmG57cD6/sNInv/tZBTSJf7f3FZWYSwljOAXvP8Y3thpI1OGaZXCTaU0mmcDiNhJLJYn4jjk8cwyiHo9JgcegnlOR5sE5KbnyhsD1mBU+YHJ7YEw4gx3SNPBXaZ5fEYz/XtEPOw8rHwzIxGXAlGagkCHPtxzGB4xTlhLGfMz0cE6qNiAw92hXsvU98w3f74aNgnjkm7uiH0/dOCcqIiO62Zo3f+TDcfv4eyQebEyXqjocwSsf213CcD5n0V8Rgf2ddToI4HH/Kp89CKZlRTAPT/hF5FscA80UitEQpyxuBPkPNXn0cwLHUJk+1jio/JOdF/B72rTq7KO3XVN88QD5X0t/sDAw/fyaEbyDPRjQLMNYDz3keEGEsU++gDKvRgfBpTfDwTmO/d8QxERGxE9bwzbDofj2e2g/v2t2cr/X3018FSTxsiqshPOCa5eYa2wIL/WUIY11zrOEch2MA24LtyZT/3IGwkr+7m3yOZVN7ubRJ5Scg2D4s15fFOPdS51cYHnVe2T70N4LvqYafyT5T5wcYz3wuBI4PzJud0aNuKhuDERE/C+EcyzjG0H47EIZn1kHe3+z9xaOsLoT/axPcb2Wz33pKL+9/iFf2454Xl/fDKCP7lXgGxPcWYBxaeGy3PgRynChfqyO+l+2IbYtjDn0pnDBQRpatfWg3aHvoKx1MnsX5V53hMJ8V0/hucLDxt1C2fGTM9oWStiydtymZbebzKnsr5afWe8yDpaH8M0wD7SzzwbTQqcSyqfOC9MHVngp9PFIkfHd1GoR/ogneDOvFz8UHIyLi0gOa91Xb4P0QvrvKtToi4tbvkHLA3nxgDz3QXjnu8ZxRSbejjTBf6igR7kAY58TEceLzKRHPZOPZ/mc4PoE+g1o/EGxsYL3ZGf44MBWzNsHk2iOa+Q0/V+f37BmsF85RJTl75Wurc/JMQ70Hw/3t/RBm41C9G1HvTRN4/olrgfL5e8DlCdfDAZeo8YNXrZ1dn/Dd8/d/0JyNH7C+6Z91EN7xcI/dC5esh0R44Nyr0/uL/Y6+NNoh1o/tNzAO+wHHALYdO0dRe1rsyyyreveIYD6BGn/sLBrzUe+YF+PnK8fEbJlwPmLzxbrC5xHlM2zlH+c604U4HDfqHTJ7141thvmhTeK4ybUdy67eIaMfkOOm5l0MhLf3ntkPyvNVeLTZxsaD/9b8yGPbmbOHS78d7+rHvfoHn+iH1z6msYutt4Mu/Nods3/RNnHLiG7ewE8KNvUC+NsYbAtMBIHtkT7xGvZgDPYJk03H9lT+YendC/YDzueIW0U8Azv7qSkbe69p6XZjYTATK4rS7TOxsnW6f/iHfxgXXXRR/P7v/35ceOGFoxZv7PAPPQ3DMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDWDLYPbMidu4uSLfPtPuh57vf/e644IIL4txzz42f+qmfiquvvnrg87POOkt8c+Gxj//Qc3XMspQwrBt6LsGYMtWNMkSb2xWM8UCxCSEjF2Pd60Ac3jjAZ/EGB95QyFsJ7FZAxOCNA7jxMtGLx9sQeCFzfRN88EPNrYy1r5q9VnHMmoapAG9Fbtp9dj989Om39MN3Xvxjc9KNT/L8BlhF+lA3YtRNhLwRgf3EGAAiBtsWb2XkbUi8gaVu9NxD4rHt2a2rCH67R93mV7d185YH3uooMYctNtbFLHWVYhkqsaSoG5SK7RDzZZgqPKNYKRDZB9iHikEI68Ru/igWQARegcxbxnjDECl5uxDuQDjH9MTcqIgBOzz8uKact/Vof/DW801AiTAl2MUGbzv3gPMM3oweWOmyHbsQh32ibuJiG2Wb4thirGzDYLcUu+TziMExl/lh2djt5OF4dqMWoRiqckwpZtKFRg3rXkL1l2INLIGt0YwhImKwz9XakW2pbkajbbHbkjif4E1fTA/XmVy3FctDF8K4duw/Nzsku+hA+NwmeExvUb0H0vritnP64TVrgM0DiRty6fsmxKkqTeEXcUxme2E9cBJQDE75DF73xn5VNzI7pKCKLQbnhhyLG0lchGbFY0xGypbZLXfFAMzGhmJBHBVre/lgGZjvVFPGjH9EfK7YEeaLi9DM34j0sXH+Z77VcPkyjH2OY/dfIPx8CGe9mE1HxAzczp+GNsipqAtfOw/CyHwNl5onewvzelhQtyO7K6S3ezuweCJY3jiV3afYFLMuyNyAbYT2y9iq0PdRrMZ4YzrzUTfRSwzXOF7UjWrGOqCYCLD8yjfLMqEP3obtZ5wo+f6KbYStxdjPNaoKpfIo/5gxkak9LdvXq705Plu6Ga/qpPb1CVXmjcMPRlwF4U4TvPWOhplz3TFNex0ft/XD073bzbftbCg4t94Fa+P1wPiHPv1lvb/IuoDnWVimgf1E9hU6GGptxD1y7k1wXlCMCIicPxVrkLJJNt4VG9LdIp6lq8bq8PhbIZ4bJ0bdz5fYe4efSbvAdlAsTYxVVeWh5hzGYIFpYR8xNvcOxKH/iXXCZ6bI51g/xUBJ8v4O1AldA3Bt7/9uM+d87+QnRkTE/4qf78e9LBpGk23bGhvZNtWUY9XqnbMBYCqLSyCMjOADJHZZZmx7xWyPfXkr+VyxvOH6mn2FfjmyASPQ8WBzKs7Viq3kRPIMztXKb1TtsVioYUHJ9lbrb5v5QNVR+TIsD8VCmv3UxmYVMA8cN5sgnAtbjeIO9PMU5H10Lx6HN/rdUD20yXVrZtvjTFDImYQDM2QB/PQNr5ib3mbIA4UZcG/dhTBls2P7tIjBtusM/Y0Y7B/G/BfB2T0Vazfm14WwWjMTOOaYXdcwV+MzWWY2D437LIwp2ahzhUSNnbKz6BplGbY/wjGh5Ay7EE47U+yv0+TZ4TQSOH4wb7UHSwPE+UIxXkJ4V+97eHYM72vXvryh/loHbfu9eEJEROwHxndyfLsf/n/il/vhyS3rmwTTtVVKGPdCeKANsq6KhUsxI5cUkZSaDDsn7kKcepXMzkZ+ROKG49m7yprx3oEwU2JhrNzjZudlLIBt2MlK9qnSwvbBvRSbk9V+lM2xbd43R/B3Bvh5F8KKrTLnGvTVMN0O/163Z+9Pg49x+4jbzc3NmN3+E4dGRMT34on9uBMf20hX4B76/rtWNWm8vxeGqLgSwlLkMP+D+wrlRx4swtmH6p0Q7ovV+XlCrds4f+Y4UCpv2MfMlnEcKSZiXGPyeaUAsRjvozbPk49ixm4DpY6J/chU/mrUNNiZpZrrlVoBW2eUTTI2WcVUjGHc0506++ch8ej1EO5ACt+f3cD+8RMaqeQNj23Otx4XN/fDV21t3k3F5p7hdiHdSQij7z7QxTnnKMU1xe7JzoW2kbg5GQLY/g3nTuWbZXpq36Tm8Kf3/qJNq3Nrtq6oMx60e3bmthgKGMa+iJmZFTENjN4Mu3e3+6Hnpz/96YiIuOyyy+Kyyy6b8/nMjPqt4cJjH/+hp2EYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYSwkzMytj1/T8P39s+0PPTZs27UGJFhb+oadhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGEsGu3etjJ0PF6TbC4yfSwn7+A89J0LL9pVk52okH9kzNZJdTMZE0SMj5TGTo0NKZ6RvR7lYJveMeStZPSFFlcVHVdT1EEY5KEBKvH7/mlObSGSJx+8hm3nKUKJi6y7xLLKL9+nqUVpESYJ1STyaT0m2bfj5LMj+7MEYHANsHCk5bqTgR2rspMovyRuq79UA6d2ZVC228zhxYMyVykabLEloKWp+RoM/LT4vAfsZ80Pbwr5h0rtKJlrJHmUaOD6U9BX2HZONRxwu4ntjegK0HVHSogtP3t6UY/UJs/mhbAbKyE7F2rlFm31oFjgvwKMDFPwsfkYtf0r2hvVPiDhFUc8kMlRfInKcKKlIRBvpZyVZzz7HMTwx9HfcUHITw/lHDLafssnsG7S3GjmdlB1QsiM1c+89JA7zxnX5TBKv1n7WzxHc7nEORJksJpUNeUxBuihntakJ/sNJr4yIiMPXNLJW+0006d7zf04ICjal4nyB+UmpuEwE7ULJZTK7RhkStCclcfIAiVPzJDoeaTs1MjBKXjahfE8mgalkMVne45aJvTfmOntMgk7JubWRoldg/pWaW5SEUEqvoC+DYwXHUAfC3d5fJZWCMlhMklTJUYKjux38+MneX9XlrGgRcdPOx82W5oDGP/v6dc9sHsBqY5NvgnCaH6Q7IBs50A/YdljvBM6HaNc4v6aNdyAOMy/JyWCc6lc2LtU+rTQumRRdhN5zMvlQ5V/U7EUXEjUy8kxuqEaiHW0r50Lslxrpq4NJHJPmHX7m9N7fayAO+xnLhsgxy2QzsTwRg7JNJUm1DoRxL9UrJ+55sZiTzaLaXQ8SdGuO6Ients2Wb+Bw67uwHkxCejilZ/x9ELcjBJjvivXriu+hv5LzMrYtbvyZXx7RtL+SK2NSpep7aKdMVm24fDm/4BjAcYZrzfB4Xyj5KtUO6hlESTJPfc7OEtQax2yyRiqP+cdq/6ukJzPcJWWIGByPTJoO64T2rfIjcvPTsIf+UnCgDOXJs3/+a/yPftRGkKvbvqaRcbz5vmafvf0bB80GQJ52QK6uC+GBoZh1xfGP66ia21PG/d8gTs2TbF+szudQQk/5catJnJJIRLn5/B6WU+3lmL+eNr1QUpPKfy49g3FKupPNAWoNVHvrLSSuxmfItiydn0TwvlFrp0ojfVHMD+cLHG+irnf1njkIPn4Wf3TrTc36+8JT/09ERPxd/GI/7lBYdA+Hg+sTT20M//5ts2ls/UCTVkAw8F0VTlv0KBbHLh6UrybPqHkb2xbfMdwAYSUtmWBysRhWErFqvWL2i1D7sPnKo+o/Ktg6j/bJyt7W7y89U7O3YXFM7j6iGWRoT+r9URfCOTdgHtgHaoOLebP3D+rsG/Z8m3t5Y1OBv4vnWpt++Px++JYTOr0cmrXl27koR8S2nU1dt3/z0CbB9TE3vy6EB6ZzbK80ZhyvWCcc07iusUM3tefFfu1AOG38ERIXMbgmMJlnfJatz8Pl2H/o7/CzWG/lj7PytJFTb4M7Yu65F1vjlC+Dz6pzAwblyzDp7Br/P5/HcUBkliNi8MzmMBJWvhPGs7GA8uN3i/DZTXC610ZXQXu+DOq6Hr6Gy1NvC7n9vsY2bwU7Xfufmw3u1qthgc33StjcHQhvgvBAM+d6iGshFgjbE9u8NB4wvWvF97I9uuJz9T6Frds45tBnvoeEa9arkr+p1viFwvaIUJK7Nfvmks+vpM3b7BVUu64e+hsxOM9gf/67iM/1k8m5Rwz2Oc6nmQY71x4uJ/kdxcOwVk+KLO6FcM99+vYhzZp76JHNF6/6Jsi143HR13p/cbrGc7SBaRznz7RVbDd8L96FMNoTti3b02JffhnCHQinz4vrLLYh9g/ml+XH/NScg2ngPMKg6sfKqd6j7uM/RTMWFTMzEdOPFKTbd437fejeg63LMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMIylg5mVsXtX4eePM+2k2x/N2Md/6Dkd+jYEYx6KaJqshq2DsYqoG43qhnOmrW5+qFsg+Wt5ZC7BGxWK9QpvEeRtDkxXMbKQW7/fgvzWw8efIllExD3/1GP+AjKDgYsReLuCMQvhTWZkGEHmg4HLOVl+vGGGwFtjeDOU3bbpQBhvQ6ubenmzAW/FbSGfRwyOjUxPMYxgfuyaGdZJjWGsX45hNT4xP7yhsYE8u1BgzGElKNYHNR8wFgTFUIB9l7dZ1M1zbD98hrFAqHZHG0f77MZcqNuBjC0F20Ld8Cc3a5GNBIfbaRC+s2nHySPWR0TEqjUNFdBVP3x2P3z0Cbc133sI0kjGv49BHN7Wwqa7E8IzXVI4bE+sN44NxjSmWCwYE1VE0+aMSTFi0GbZjS11yx/HABtrhDVm3nKwz7GNsv4LxVJSYh9Q654qD2M4VGyOLG11013NAWw8KeZd7A9kvmBMFDje8Hto9yXWWARrO7hNiU2BDJuPgejLZxfe/c5t6vfgx+ABXM+/BWE2pL8HYWT3lIzIGVa3DtlaFtH0ibqReTB5NoKPS5yXT4cw9mWmofwBxUyXfgfadBsWcDWvKVbaxUINM2fphrO63Y7xzH7VWMK5nq2NNT7X5RDO+QWZRLoQRp8S88sxqW7eTtNg5DIJl5eB1CvieAiDeT545ex/rsRIvC19JIRvL8Sj330KhG9UbAydfADiFCM+TiSMPQ3bUykdZJ9g2ypfG20k0+5CHM6/ao9UYpNX/qQKJ9gYj+B2v9BQ+0BEllHtB54OYZzLS+2n5g6sf/Y5jjHl++JY+DL5HH0G1c85ftX8hb407skzP7R1ZDTBOQ7aMZNA2/wshBsSz9gKm+T1b5hs4q8/Ih9ocCWEHyPiszkgj7hFKYBgG+Q6qliWVNtlGyh/RrGF5TjB7ymfmfl0igVfMaGwfRv6Dsq/xbabiIU7olN+chsG8LaMJpl2DasS24MpBl3GWIVhXNcxP8WcxBxTpWKh+pxBsaQpRowe7p8bFREDNnnVD86OiIj/+7F/3o+bHDh0A3ShXpt7f/HR6yGMzIQD1cs1nCmBDAPj8zAObQjnAMU0lmsxMsigf419xeZiBKarlHPYnl35ijjeGVtV5jdudt51Mffcqw3jPVOqGgbrU8VMzBjXVRr4rDo/T/tU53NoN0ylQs2x2LeooJH5IQuvYqLHesMYS5KQSfgYyWthCBz9m7f0w/8Qs6oYW8VebDWUaVXs7Idz7z2QnxKaQvcnyco249hFW1a2kAliPylGbZxf2Vkq+uvoa7P9QUTTzsiwrtj4EaV5mbF4RjR9j2ty1mPctpzMYW3Yeduy97N3SYhSeupMU72b2kA+Z+WJ4Gyc2BZok5ieOt/JvLsiD1xUcQ7ojeVvwV4TppYHL4NF95TmZdLJ8e1ebo0jfMfdR/fDq1Y3NjvgriSTNu63q5AM1uqdHtoe2mf2Wwfi1NkIrp2MHVCxgal1he3Z1T6MrdHq3Lp0PldiDN9bTNs1dsH2y2pPoOYLlobyE1h/MHWCiEGbxO8xhQJ1Zq7kYrJ8OA4wDzxnJWf3h4ItIFs9smt/ihQDz69AkWbrBLxcXg/PZFfgcvA1CMvXkmm3+L4d51RlI4hO769iYsb5Wp39JrDPsL/ZGSuWTb3/ZWftanwqhtfSuEUstC3Pl2eEVugYNT0cC9l+as+oGE/vIc/iOEC7UWeu3d5fskZGRFlR7PkQp5QUyDk42iG+u8Wzp6dCuHcWvftbzYb1/pMgj03wLJ5xpX2i+lQXwvDquXwWiT6FerfI2lwxLWOfsLzVeRn+poS9T8TxgEoY2A/Ml1DvurFfmT+mlFxHZbA1jD3ErpURBen2sHS7YRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRjGXsBMREwXpNl3W7rdMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAxj8TETZcGT3YtRkMXBPv5Dz5TLaIOkZFbyEUqGd/j7EVo6WMlKMyjJ7ZJMh8obJfSuI59j/ZDeGWnbnzK3OMg8jZKPSHnf7f1VLOJomKgUkWmgAgvSc6Pi42aUDGIyNIoOuwvhksQJVvYpEGYU/FhoJcuMDZn02kriGcuM+WVdsS9VfhjPylyiFMf0FnOKUbbApCmUhGSpb5UEtpJ9TakylJroFvKIaGjSFa07xqOsHFK1MxlDLBvWBdPLdsR0uxBWMsJpWyAnMw2f74BH/7kJbj1+Nr+tNzbyGCs7jUb7nRcPaE826PT+YldPQng9hAcW9ex7JXd9j4hn0ttoC9iGOL+ifWbeSq6MlRPzU3aK829p/VDyhWzuw8Zl9VsMOToGbAcl/YFgdq/mLqxzjl9lK0qOnc0HSvJTyXkfS55V41HNB6Xv4TjNekN5piFvXEfvgvBps38e/ADIWq2Fz68nWUQ0stLY3apoA3IhTMJEtQWOhy6E0+aEHC6dwyMau8C+Rsk7nH+ZvAXaOkplILB+d5M4JXPB1j9lD5h3+hLjtmWGNnJzTAZEzV3qewklvYtQ62uGMV1czxEocZP+M/a5krBS80ECjQF9SmyDXtpfgu+/FD5GGZrTIJy2vJ5kGzEoe4O2elfMxVUQHlhzsW2xfl3yObY9+rnsGVL/iBi0T2z/bEclGadkqxLK9y1J+CqbVXsrJg3L5KAVFsOWGUaV4FHymQzYZjVyVikdhH4CQpU550jsZ/SzlOxpSjjhOtyBMM4/WO8sP47jLoSFz4iPMFwG4Wc2wdv/FdaAVb2/m+DZSQjjcMLlMCWvcG5ZAf0zw/yLCD6nKslCJQnM4nBsoMzzP/b+ov0yOdkILkGG5cR0a9Yg9gzbE0TM9ddLp5HjANpNaV6pgbKn6aG/84HJvCkfT53fZP+ir9OFMK7heKDEJCsxXZRGQ1kylFFN4ByAZVby4jl+oQ0Ph3lmEzwKw3D1KZMREfHx3S/vx22+d30/vHvHquZhcNP7TYpmikvugCuCDzH7xXGE8xo7A8O5k53JDWeecwO2m5J+U3ty5nuqtZ+ljfMChjEPJqOZae0i+e8Jpnp5q/M/ZcvMnhBqPmB76JLMZwSfD1aLMILJmOOzWH4sR+4VleQpfg/HaY4bLG9XlIf5lBEx3UsDhy6GQQF2286mLhsPuKmXW6cftxkc8msfaPYVRx92R5NIFnUS8sAwPfeKiMlsm64oKPYx1pWd56K9of3iGHgSiVfvTZRtZb/i/Mvm7WHk2FDSz+o8h9mPGlN7ionePzUfIZiUtXpPhGM2+0mlW0oP5171LDuvVpKteKCE4ybTxu+p/sL2wrqmk4prD463FwRHrxwHQdSkSGKyYfz50rbnzOa2pvEHdn+jSWT77ZAgrr+n9P5+EeJQRnbAPpkUuNo3oc12IJx2iIv8Ggij/KzyzTNera1MHj2i6U/VZ9jHWP7SnrLNmRJb4/fWXhmh3sUxYDvhXgS/x/wkNT8i2JzH1uEILduN/ki39xfHAfYtlpOdUav3zTh+cczm+IY1Cc+pNkH4XAjndIG2+UIIPwThz4n4BG4JBpoc7YWNabVedsmzEc35Ygfi1NqJ/cOk1JU/XvLj1FkM85/VvKD8yTbIPMZty7kuM19ZvVNBsHqyeTyi/C4d2w/7U6XHJN/RNrGtVV3YBlGdWXYgnHmqcxz0GXGd7+2Xp6DdcNukqnpv7+/XIO6rsOdFc9oE4Xy+5jcnA/VLI8eE1VqMbfR4CKc/i/XHPNTvSLq9v9ie2DA4H2Ifs3eZCPZ7JUwbx05Jrh3zwTUKx63l2o29hF1RXioW4+h1kbCP/9DTMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMIwlhZkYvAfBsDsiVi5CWRYB+/gPPVeHZvTEX8IjWwe7naJY0RjUrQ11YzFvNyomRvWreMZmoK4tYBr4q/4sE/6SH68rAT3IAHplxWLir6cxfjOEH9f7+w2I60IYmwVvUuVtDmQMnITwwEULxv6hbiLhbRx2MwLTQiYvHC84HjoQvqb3F/sEGwZvzDLGCnVzH9PDvszxWsOEwZjIEOqGH8aPejNrFBwZs+3BWJAiOFtLzc/12e0UdaVIsRkk8EaUYv5DZPuVVqOIwXZnDJsIdbOyS55VbB3IhMJYIKGu34Vb26fBozgt3dW7eXV00567vwU3oM+COfry5hZ1vLP3dz2khcPuZggXb4zjvFYzvteQz9HeSkysirUMG4bZkFonSmyS6ll1szLLrMZffr5CfD4qalm2cY5Vc41ao0vANk57wjZT85xiGc00VBlwgTqWfI59gH27ToS39f6i/SpWQcYeCHXFrPG2JCadN5yfDXEbRRi/l0sgNjeyGUypW6SM9RSB7amYfrq9vx2Iw/wUc3OWA/041c44/6a91DASIRgzds3axW7EK6aahQZj2mvDYBDR9BNr0wjdH6V1W7G8sDGmbr2rNZfN9QrMB+1CnJrLyG3g/aG9sVmOh/B9EF7f+4tLIJrCJISRqRcuTPdZe58GcVcpX1PS9vbA2FQjBivT6f1VLI6KwTW/p1jJ1TrKWExKPh8+o+Z+xUiKYONHbd339jXUUcuFfacYuvMZxUyi2jhvlONtcsWijn5Ft/d3f/E58xMimrGl1h6sE/bt/kN/IzQTLrTz9p4NHSH294zkIWKQHf8yEqemaGAl65MSDLhEai/J1nC1h2Ks1hHcL1WsEdsgfCz5XLH6snVFqUVERXx+V61XCGz0/WP8/jVDWxZPtoYrRtQ281Hp/EBJxCiG6yyH2sdeR55FIFsH1gMZM3CuSnY5tS4oH5b4FSvAlidJ0SIGztR2bD9g4G9ExJp1Tb23boL9NGaX9n49xOG6fidmyNgdkbH0Ggij08/OONB+OxDuQhgLypSUFNuQaucsM5ZNsbBgvzL7UOdLjPk3x+q4j9uP6ZVD2S9jU0PU+L5B4ofnqISa/xgLIj5bUq1S7OyILoTXkbiacmZ7oH3jmop7TeXv9daqCfgekk6CGa77+Waxfd8P3jQb+Goz3699SeOk7/xmU+9bH4Y2yLPysyCPyyE8II4C8+tMPoR1wvlQKQywMazWVPVMtj+u62p/gD7b83t/GQtrxOA52mEkrBjz1XiYj0l/oVgA25ybq/NuLC9LT62zap3MvlPvBdAnxv7KttpI4iI4mz2mrXw8plQWwZnLMA30E9R5/OqBP3OSxakB9tNbr5x1iq/aeHYTie+2kCH0YxDer/cXz6rXQ3hzB/7ThXCWWTFf4qTDxgmOAVwH0E6xL9k7UMXwqsD2tzXrAFMnLLGI1WChWAATqiw5NrH91LNsINYwpLVhEsQ1gO3Da84pcXx8l8Srsxmcv0vKK4ppkihLbgbWZyWcdDWEs2nwfOsuEca1NtO4HuKOhvCdOG/hfjTHsnoHq+qH75mzX/B7XfE9xiaqVHRUX+W4U+ed20WYxWG/qzPxHDtKLZGd+S6ULTPbqZlrSntrtBvsrxuHHwz+riZCqzSW1l81h2I43/WysTucBiL7TKkNqPF299zPvwjtshHSOI18DW1PDYX9SNyXIcyUqiJicKznb1+6EIdtj/Gl391guyBdMMazd1rq/Artgvnrbc5a1ffasHHieqDOuGvWGMMYE3bF4O/FGKYj4oDCM0sE+/gPPQ3DMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDWFKYifLv9HcvRkEWB/6hp2EYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYSwf+oee+hO0RcSj8X1HbIz1+ooaCGGmrlVRXKW8mvcFkSSIGy8kkA5Xct6IXT1pxpBR/OoRR/qID4Z6e2zS00RTQjl8Fj74Ewp/t/T0N4g6BMDZhF8KpgINFQPbnXRAekLRgkiQI7D9GeX63eBap5rFfuxBOWTBFs41tjs9kvyr5UQST0VFSkUo2r43UKpMfReR42kY+2xPcG0MaRaHpv7P+Sm4GweTolA2VpOKxPEr+8wHyjJI2xGeRdx7HTeat+hafZRIZ94tnUeIJ5e0SIGuOUhi3Q3gSwn0JDRhjqDZwPcgXdiH+tPwc4tDWUVUOpWr7bYptoeQNmER7RNM2SMuP30N5FZSUYvkp+RqUCthInlXyciWKfSX/jWDjnUnUjVsqYzrm98BKsjcll0ZJdKJNMmlVJful8iu1McpwKFnX7FPsZ5y3EEy6UK3rSnbuuLmf7wK7xyn2IQinZPskxP0bhLGrUMIqhzRWuQvhKWyXf4AwxqeUjZJuxLbHgmQaSl4a2wjbMdPGfldzAI6ZTu8vzgXYrxjPxnPNOsBsXfmVTO5loSQzlNx6okYCNn0t7Ftct5W0btYTy7BBPKukcXLcoI+npA1xkVtNPscxiAsUk6XFcXW/eJbIM+GUjFLMuAayKRa3Qt+CMEo1owoL5pPD9zaSbkQMSk5h+dN/6IrPlZ+b4wHX0WvFs0wyCseDkqBjkmZq/aiRZmeo2YKzzlJ2MkHiFgI1skFt0sB5WEn4ZZ1Umyr5nxy0SuIZgXMKk67DsuH4QKmtHJNbxOc4xlgb4ByC9cD0jpobnoQoLDKuuZj0NyF8b+8v+s93kc+HMdP7O4VlK9l6RNN22C7KEXg8SRsrqPbNSmqUfQ/naByLTL61Zt1BlM5w1FiciIWx4yNjsEwlyfSIwTGbban2lZiGkl5MqLMudnam/FYlv83OwBSYnOQW8TmCje8aGTW13+zVewai0DU8j5di948OmpPF1q+D4R8JD+Mc8CWSRxfCA0ODza9qvsd4Ji+LZ0DYf2jr2P45h28UnyvfjaErvlc681XAfmXSkm2kHttg+9DfPUGNjSRq6sGewXZic+xwOPsX27QLYZBnHRjA+b0OxClfGsdpnqPh3IPnxRivpO4Pm5sdDjGQlrz9EzCWMwg++NabwPHGpkNJ6MRlEEafH/fhVPpZ7XMRHQhnG+E5BO5jsKDYJ9h2ae9sLzicBk5ANww/GIPjCMHOW8k8GxGDYwDzy457hMTBmeRYUDr3KkG1A6IkC1/6nPkAEfrMI/tASS4rG8p8sDzKD+qI+OxTbBccj5gfvtPqpbcKotB+Ue55EsIpBzsN4wLPyLoQfgyEmUzsZiwbLtbYXlko9m4oYnACwjPsbH+sFK6/2H/qvVKu0WoPjWBnZzVrDdsXqfdLauynLau9cmm8LxRYW6n9DAMewqg5FPsm2xLbD+c5dYaY7aaktdFHUhLNmR72wXEQxrWY+QHKN9hfxJOzdnxNi+4lNnO+p5omcRGD9otnXLmeox3fSfyBOYlkodSzOFcp/3KafI57bMyvA+EcGzV9yYDjQb1PZvtitS9Sdp3jHOehLoTH7U8z5Lo8jn04O8u/lXwewedhde6gzsvyGfXuGfNQ59n/Tj5HdCCMezqWN0K9o8x8wDdeLfZ2eHR0fO8vnlXjeff7ITwpnkng3ntgfONeINtO/ShFvd/F9bzT+4vjAScrBDuvwe/hmoD2i99jZ1mYhlpH2TmKOjsr7UXb7NMNY4GwK8o/XViM5WWRsI//0NMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwjCUFM3rua6i5Dc1uW6nbYG2YO9Uv4dkNpXvEs6XvKZYMxX6imHASNTexexa0Auq3QzyKtzKScAVvWSCL2J0QxhtUp/T+IlPoJIQHbmjgbbK8oYD9gLeG1Q30BPYJ3i5XTE14c5Kx02B+ijUuxxfeGMHbHBtEOG8DsRvLEWXWLXUTowNhvIWWN0oZs864WQATiiWFMZYw5p4IzfCV8TVMKIyhDPNQN+KQBTLTU7e8FLsJu+naFZ+rG3aMxRDBmK4wHvphCuzmTmhPXGTT3vEWNd6cxpuVPw7hv+/9xbkAu+E+xYyUdcXbU2ouLt32V6y+0yI+x13pFl4Enw/UjeT9RXyyqajxolh02Hhn43rc116SxUgxY6t2Syh2RbYe1qz9WT/FWlBzo5q1kbolzVikscxYf3WTOZ/vQByuX2tEfJYZ2gXXTizGJISv7/19PsSpy+MYThvH5QvTHWhzXLcZo6FiWkP7XC3iE3gbWvk5bNyrORrLn/mp9YUwM855nsUpF57FqxubWc6FWpcZE4ViY2JzZUQz+HCNRx+IsSZHcFY+5esoJtjMG9tdrR3Y59mn6Pdh/fAGNPPjsb9w/CPIzfkZqF8XxhWur+hq5PqrGLc7EEZmPyRjwO/2odgK0FaTHRzbE/1nbC/GgtyFuBr22mvI5zgGsJ1xL5BpqHkGwcqhfEW1lrRhGykxfo4DuS4zVhZ1259BMYnUzGOZt+o7xVCQa62aIxSreUL1Bdon+vfM11L1w2c7vb9diKvx+VNBA9b1+6D+n4JHz4YwrtdsaZiEMDICUnZPxj4fMejnoI0zVh+cUB4v4tPmFIOkYgrJPmbjIkKv28yO1hU+H06PsdArDDNcLsSaPKyAoeYjpTQwX1yEtnH2ubItHCv5vFJYUeXIZ3BPoBiw0H7ZHIcGgn2kGHQSh5O4CL3HJCzgK6Cc6Cs/mWTdgTgs5qcgjKwn3+v9xekJWX0HuoexLiPLCUL5RDk34DjD/Qjr94iGQRDnGcYUOgy2RivmJGQpxDJnIyj2XlXXdUN/x33cXpobSvtb9bk6I2QMojjIlEoOUwVSfjebL9R634VwaU6hDmoMjiG2l6/xbUi/Xg9hnCI+B+GXQTj9cZyWschqibuLPDsAxQKe9ovjX7HkoWJQ2hM7Y4rgc2DEoF0z3x3BGPgjuP3g3I9zOPOlMV3GIBnBVWvY+rFQe+WaPQxTIisp72Da6ntqPthQ+FwxeDMmRsxbzTPZN+gD4l4ZDQC/x9QYlF+H7YyLai+9+zu8mK8SX8vhgLaO2/7vQfgUCE/2/uJ7MDnn4FqbdUHfGMM4Ztm+QZ1nKqZWPDDIyYYpHw3Hs/NqTAvHQ1fkzcDeO0Rw/7/ko4+bnXc4/Ygyk6g60zt4+MHQ9VXvv1hbqr0yK4d6z6DyY/FoRGofy9554vqEihzqgDnjoTxTUB7cu6L9vrj399Miu/2C4/Le3wFmXsXiyRRpsB5YV5xI8ByK9T3mp35fUNp7YhsqWyZtW7WXY+ys6j0GW2OUr8HKsVCMgey9Uo3/zNpE1VedkbL9bc2enbE+q7Oum8QzTLlBjSs898nyqfNbBGO/hMVzO9Rvf/AJJuFrufQp1wd/f4JKNvlueeBMS81lzJdAWzkdwlgQNd9lm6v5viPSYAz1CPS1DyPxarwofzPHH44L9Z4Vwc691LPMDhZKYc7Y5zETZREE/9DTMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAxjL2BXDP74Wz2zTOAfehqGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGsXRg6fZ9GSg9oyTAkvYY6aaRVrkkLTstwkoCltEmKzC6/o3swSEo+nAmYYVhJbHSK+uMkFlCaXZMYn3vLypQoGzz9eTZiIYBG3+hjXkM6NqgpFC2KdYJ66Gk/rJe2LabIIxteJyIz4rX9CtSnjNJAyWVp+jxE0qODMuZFOxK1gfLwSTmFxNKjoTJfKh2KqFGqoDZ9XfZg0PpYVuyVQjnJybpEcFtWfHZYxswiTMlG9mFcAfCSQ0P42cC7AnVKLZCOB95UHyOw+q95HuI+0hcRMyVRBwuEGrnMAmCCC5Th9J8OHGp8ZfyHUquTFHbbyCfYwMoybu0VbW+IJSUZULJZowT+/f+Ybuj7eRgwPGKz2I7KHntPYWyC+U5sngmxRXB53XsF6wHSsGwOQ7HNOrQYH5sTdqfP3sz9D+qL6XcHC6zaIcoFYkSNyl3tVlJxXR5OQaQZXqm+J6SFcsw+gPXQlitd2lzOM6wf9QYYPaipEGx/ZlkuWoLJrehJF6YvNJibAdYO2B9S7svrHvNHJR9o6TtVJit7Ur6DcuP+eQ8jGVW6y+uOQ+Qz3GtwvSYnC2Mpa1gszhkr4Tw+t5frBLaMkq+1ywjfah6M2k6LByTqYng7YXpKjlnnKyyjTaQuIhGSj5Cy4Kzcir5xyx/jeRZm8ZV42+h5G6m4V+ErkMJ2C9K6hXHNLZxfhfrrvofkc+X5thhpO2o9V7tG7L8qm9xT4jjLdtAjU1sF2ZD3Sa4HaQuV0N+aGaoyJr+NiqSorvbgfAkyboo8x0xOKlk+2OdsHBK2jnTUJKdJVk5Nd8rCSuWFtsfD+ddgpJoXSyo/Et6RjUYtT7YjziGso3V/gT7Bvco+bzyd7GuTAoe5yclO83GNI6lbeTz4byx/NkGUE48R3sY6teFr6Wi3VUQdzSEcQ3HbUGer10GcTPKx2LjG+cy/J6SzM0+UeuXGpfZpkySeTgPdpaBeSOUHDuOoyyHkh5U60f2YZZt3HLP22P2jQXWQc1pCHaWoNqVQfVR6cxPzQvsfB3jlZSikm/N8uP5SBfCWH4lkZrAfSXOSWINWNEzxPXwMZ5lPYt/bcAfT6CM+/UQxma8jTzbxUTUGV+2F85DHVKIiME+SR8F649nFqp/sNAlP0fNk0wGGD/H/lF2zcqDYL7lYp5l15Qrn1HvDpTds7TVeo99kwNV7eHUPi/nUCVb3YEw+n7Zz12IU3sjTBvHEKsr2npBrnozpHUgPItr59chfEbvL557HQph3N6jdCzODRRdEZ/9hufPqi2YnjyOHTW+cb5gZyMl+eyIwXU0xwnu9dQeW8k8M5TKj/kxH3Pc63Ji1L04tjW2KzsXCvJ5RPl8r2avkv2Mg1e9E0U8QsJsHETovUeGN4rPsW2xLp3eX5B+xvF/N7QLnktv6v1dD3F4Vo3sXujy5rSF0s/TXfiPeieavok6v8BzAbRD5oOodlHjL+PVOYo6z8xn8F3CjeJZlt8G8TnGo63muR2OOZVHjtVx2/K6mHWumPy5OgOreS+cqLFJ1l9oT9j/bF1T52kKbP7GeQgNAPe/WA525qb8BFWvBKxx7BVsRLOOok1PQvgxEF4PYXYsNNCGuCdg9ot9jeMUx7R6l5Rtqt7RdMmzEdwHR7D3QBH8tw/KD2L7afwellm9N8o0VF9jo7N3mXvjXMzYJ+AfehqGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYTxKsSvKdwKW0e+M/UNPels1Qt/WYLc8R725pdgB2U1NxQCnbjzlzQh181bdrsE2OJ3k3YUw3hRkQwmenepAGB5ZBzc4kmFkPXyONzEQaIR5Q7J0EV0Cb5PiDQhsW3V7MXGqSO87ww8OAW/bYP9gHti22Z9YWcXwxG7fqZuSyg4yXrF/qttCjA12YujvuDDR+1fDZlCy1RLTihpkqk4sP2X37JY0lgH7i7FEDiPbXjEBqRs8pdv+OPexW6Tw+TTMHZsg7y58LS+IKVtXTIG3kzh5wx/jNxQ+v1HE4/OZBrJ4ItTtvNXkc8VooW5OJtTN2FEZOdgNz7a3gPcUyVKikOVVbCQL5Z0xxr22UGxCBXaBAfvGtRhvP+JVx27vr2LzPliE85YirlnQtjOwxt0LZe70/n4JvoZDF5chvHHZL7LyL7BdrhPxzB9jDEnDz3R6fxWLOwLnz8yvLbtttqOacxWraSkPbAvGJM2YOSI4w/RC2Q670apu+LdhBVKMJqz9cO5GhscahgIGdfN2fxJW7dqBMPO5sH64zmB6/wJhNLoecCqdhDCuqclcgOvvWRDuQhjX2lvmZjcI7GNs/5vEMwn0nzsiPtdDxeaG9sLYIrE8bRhlFfOVWnOZL1XDKof1Oop8rvZ1i4USc+Iw2HxUs49gt91r9tuMMU4xC2HePyLhE8WzirGKsdYputx1Ipwoze8RjS10IA5YF7bDGLsRxjqqZWSRcH1+PIRxudiM5WPrkmJ+WkPi1VwgfJD+97BAx4pnGfsJ9oMac8w/Lo3rCM1QxhhNsGzKH18dEStEvnsKxU7YZi5EKMZLZquKDUIxNw0zI6p0h9Nmz+J4VL4G85sVszQaCdsLsj1jhFbkSHtApi4o850Q/RCEv9D7eyTEMZbAiEE/IJtrPcRtxv5jDKkRzVqs2KQZu0tEM0ep8yu1j2X7ZmRsVOcvir2EQdnkcBkitG0w9qVsl4ViG6o5k2LlHbdCR4kVVPk96mwx113Vh4p5NuuN/iKOFaVOw9ii0HfEcjIm/WjYcO+Dtp2ERxWbXxYPzQn9cVyrcclMpjHc/g90tWJL+hGJU+xLjI1e+UzYhursiOxTiiyeEc37BmwA7FfFOJTjqIKRle4v2Xq12K/O2NqomKAUsh3U3FvKD+usmEDZ+or7bfUei517qTqpd3PMxjFdnA+Uv5K+9Nn8UVxzOxDOqiLzHxYH3dVJCCMTYB+KtgzHfWbeJYWIGGwjTI/5TejD4LPYx9h22YdKSU4xmDFm7LZshCUwBkzEQileII6M2TbA/HGezb7BNlXqiLj+lKDqzhjZSu2EZVLs8ziPKN8255EuxGH9FJt7h5RNsQGz/QaWGcb0bWc2YTzLOqj3F7fmuM9Fdt5JCOd6PvDKQimAlMajmlPZGX1EUy/1/kix5mc+isVTKHEW1zz1OTu3Ue+bETnfoa+h2IAXyq6nYm6/sHlMtTXaS9pCDWs3g1LwU+kx5lH1/gHbEn/XgSpnCVwj1F4xy4QLH84RyArK1nnho0xDXXDtXN/7izZ9G/k8YnAqmsn2UCocWA5s/zyfUizU+D2mCIcFwfVXqVlh27K9sDrbxDLl/K9+W6KQZVLnW21U7GpUFhdqv2wYPZjR0zAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAM41GK3aHvVSR2FT5fQvAPPQ3DMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDWDrYHRE7Cs/4h57jwxVXXBEf+tCH4itf+UrcdtttsX79+njqU58aF1xwQZxxxhkDz1533XXxlre8Ja6++uqYmJiI5z73ufGud70rHvvYx+5BCRTlt6JAL/G9tnlWyccxGU9Fm9wtpI1U0EgRjdTfCkz+AsuBeSM9eNKro2QHSg8/vQkqFa/Ed8XnkxDONJBefzO2EYaRmz+l5LB+ULYBuVjsy07vb00bqvFwLPk8yOcRg42QaTCZ5WGsI88oeTQEk95QskWKQh6fGU533HJ00zHX1lS7K6mahKJfz/GtZMbazAtKaotR6Ss5eiUDiHbY6f1FyQ4ln8AkVPBzRRPP6t2FMIwDzJrJsT8V4q6H8BMhfCCEJ3t/B5oT88bxz2TnEIeLz7HeKFVzE4mbIJ9HRIDkdX9OwX7C72GZuxDOxlPyc8zWFRR9PqadUgF7QxZ2GEoudb44hTbrM+aN7YBtrfoDbbIkq6XkCjNeSZtgOZisawfibhDlYXKTKKshpK/ug3rf15s71oFkCcpmoEONdt+Xu0Ebw/kV7RDtjPW3kihHsHULpTSwL5UsDJP6UP3LZKuUZDnmzSQklUSmSoOt94shW8XAJIxL1+mGv5dQtoJgEsgYh/6UWgMR6cdiWzIplYjBeSLHNfOFIrSkbELJkncL3xOStFPg/6MEbMq9opTkZRBGBRXVROnSzaCBo8+vZJIzQSUjdLeI75C0cJ5UstlpR0pOR8kJZtrY3mrO2S7iWRymoeyTSe6MQ2q1DSZ6/5jkcxs7xLGppGOVb5TtUyMVj/NE5qN8pJL0qBpXuCZhOTIfNQ6wbGzOVpJNmB5Kam0kn6P0OZR5BcwBmM3k3EfjFnxAyS1m+f8J4joQVutk2i2ThIzQvnsWUMl3YgXQtjINLJtaU5n8u9oX1oz9fEbJeCupralYOPkqNdcwP3L4+dXk8y0ijMjnmZzdfMi8S9KAEbw/sE5oy3g+hT4BSwttXflwCSHrLNeI00l6KI+H53Yw7tEMj+/9xf0xft6FMMrbZZOiNPQk2MXMNfABm/vVOop2jfa7JuYC2xP9JyYDrM5BmUTd8PM5DtRZq0pvijxbWqsRC3XuxWQlEUqeumRzyu4PI3FsnR1+Jtu7Zh+L38tyKolMrJPyxxMox4jjFP3VTO9J4nOMx37GPXSON2iXddAPq+BRbDq2DUegTCVTdu5AGE1vCtsCbTmh7Ea1c7admuOVz4DI77J97jDYOq/OXBCYHhvvGKfOl1h+GVdzdrSnqPFzE0z6PEKvfQl1jsyeqfF72PyH6So/H8NZZrUP7JBnh5/J+QDTYLKpw8hzYGjP26A9N8GYRpcgi3EXxD0GwgdBGG25v9yh3WA/Yb+y+RXrzPzyCG7jGIdzo1oz2DyvzsnVmTLzG2ukyXP81fiKbG6oGbfjxL0x64ipM4jSmbqah9m7P0TJJ1ESzgpMclvtXTGe+XDqXLe051PrDL6bxXe2bJ8nsB3sZaJXjoHhAZ+vh3J24ZGZLB/WH21B1TUXfKyfGt9YV+bPqvNn5cflPIjjTPUrOx/tivzUOGGfq3coTBJazRGLeZ6N7ZDlrXn/X5pvVB8xu8f+Um3G8sazIByDuJ7guMLnEzhOz4QwOq6sHFgPtW9mPqNay8D5nYR98X29vjgC13jAv/Hopv3Rz1e2jOsk+12EAnt/FNHMUZiuWhtK40idpWL7n9j7i/akfoDDzsbYHDKcH/uNgprX0O9mNr4YPraxT2Ifk25fubcL8Fd/9VfR7Xbj13/91+PSSy+N97znPXHPPffEWWedFVdccUX/ue9+97tx9tlnx86dO+Mf//Ef42//9m/j+9//fjz72c+Oe++9d54cDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMNYNsgfes73bxn90HOvM3q+973vjQ0bNgzEnXvuubFx48b4kz/5k3juc58bEREXXHBBrFq1Kj7zmc/EwQfP/nr9jDPOiMc//vHxrne9K/7bf/tvYy5Z6Xa3YoBoc8sEf9GuWEXyV/iMcSBCs7Ml8Jf+eGtB3bbF2xN56wLLo25ws9scWOYN5POIgRsamzuzfx+Gsm3Hmx8qv94zm9VNVrwlwW514q0GxSiAz+QtFsUaqtiL2G1hxRyrbnYwtkV1E4OxrCIUW6Tq74RgjKLPMNa5xbipofLIuqkbMsp+8+ZOzc0ZljfGqZva7JaWYvXCvE8U8T8icYgSo5i6La1YXxIdCMP4n4bwZriNlUy8OD2tF1kjGwnenu5D3SpEuziKxKnbhoo5N+uNhTtKhPHGFpsHFZtfiQmSMQYOo3QLGMfUPSSM32Pr3GK4EKX5Bufb0s23EpvWcJjZjmLmUWsxayvFkIW2nMB2Vz4Dg2LDQ7B5CW9pdkQaSCvSS2MKnp0qjd2IxuDV2MX6YTmwzbPtFOsatjNSMDww9DdCM02x9kffpuQHYTkU24Hyx9gNV+VvspuTNTdOFxrs1miND8CeUets6Ra6Yo9R8z72R44ttM0uhBWbUIYVaxTaMtaFsVxiGz5JxLO0kJ0XynE/1O++3rp8BNQD19ka9Nl50W9VbDKMCQ7bULG3YF9lPthnGMb1F9ufzZk1NpJlVuvhqEwh2McdCGM5s141jCYLhf1D+0sK2KeMSUaxdWCbIOtetrHaK6syZXqYnxofjOlJMYfhsyxtrAd+b4I8G9Ewd+A4xrKhbeFclO2BdoMsgVD+GUjva9Cf2Yy3qLlKtVGWtWavwM5UOsGh1rtMQ63xinUty6Hqp/JOf72GQVft1djc0NaWxo0aP7LEal6z/0CwtbiGUazUPuqcJqGY79Xe+xESh2Ma244pQXRpKQfzxnoz5nocb+iPQ59cDuGHen+ROQyLgV2JbN6J+7AvGTPacILZNmrsKKax3Atj/dBHYfNaRNOHioEEK6jYcrMcSpUFwexX7SUUs08+n/ktti+u9jDZboqBtXQGpuZm7C92JqXYWFWfsvbCfZdSeWBjEsuj6pflQ3vD8aGUcXCspJ8LY3ozfPw9ET6l9xfPtE6DMJLjT0L45t7f9RA3peq3PwkrO1X71G7vL/a7Yt9WzJtsX4T9o/YQjNG9Zu1kz2D9SucojIVyodbsGuWnElg/R/Ayq/dcjBFVMe23YRutUU3J/BTrG/aXYv5izLPKrhlbm1j7uzBnItn6fr2/WOTJ4OiSrLcrNjc1Z2ZdsOzY12qfhXNVQs2/an1l+9ESi2dE02+KoVkpwrFxq96hqHWFlSfbdty2vC5mGT2xPqW9u5rTSu+SEKrv2N5H1Zmdnal3Vwj1LowpMKg5ia2pyr7ZWVBEM25wzLP949AzU2y+gPxugWjKeIjlIWfjEVGeM9X+Ub1jybqw8/CIQRvC8Zd1VWyL6owyy1wzh7P9uVpfSopYTC1lOH6hUfIvEW3UHdX5c6luat1mds3USCP0OQ1LQ+0DFYN7lon9nmQ4P9b/zyRxQ+UYaOZeOe5T85ryQbIN0D5Q/Q6hlO4SOC7U3oQxmdawsSs/YDitCL2W5N5E5VFSKFXjtnRWp1DD5m0YC4BdURZLWkaEsnud0XP4R54REWvXro2TTz45brttVv9zeno6PvOZz8TP/MzP9H/kGRFx4oknxjnnnBOf/OQnF628hmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmHsRSwQo+fU1FS85S1viZ/8yZ+MI488MlasWBEXXXTRuEo9Mvb6Dz0ZHnzwwbjuuuviyU9+ckRE3HzzzbF9+/Y49dRT5zx76qmnxk033RQPP1z6ea5hGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGEseu2KWlHa+fyMwet5///3x13/917Fjx4546UtfOq7S7jH2unQ7wxvf+MZ46KGH4m1ve1tEzDZeRMRhh82VAjnssMNiZmYmNm/eHEcffTRNb8eOHbFjx47+/7dsUZJxipoYsZp8rijJGW07UnIzaaKIQUmdpKVHaROkPFaSNBlG+mRFJ43AtknadswPy1miXO+I/C6DMFJ092i0t68ReSAlPpOgwPbukvJAHhHRtDP2iaIXx3ZMFlpFfY95I/U9gkne1UhBMhngGlm5hDJ5JW+WdR1VNpLVY7QfZWs7Xh2zUhkINb7bSDu3+Z5Ctiuz6Qgu9aryZRIzEVpKIL+L8pf4LI5ZJpuhZJiU3Ean9xfHEtZVSIU93Iu/Hj7eD8KYHHbzTKaBNsukNyMaWUx8vqY9lVxR1hvT6IrvoX3m99R4KklhKKlpJTNYQkmavSR1qCSn50f9mjwMtv7WzH/MrtmcHsElbmpkNUqSYjU+A5MhegrEoWyMknbIeCXB0iVli4jIdfd2iEN7QjlY5negNBZCSXVe2/uL9WNSixF6vVs99Hf4WZTbYHORsnvsKyYjVSMZjMixgc8qSRpEPq/8P+VvMjtZGLSzZWaHbWxLtRnmqWSk5ks3QtsnW5fV2oF553iqkY5lcs1Kig3nALz8xiTmUYYG8t4P/O7pXj73od2jJC207QSs4dNdUiasH84HuPYjMm0lc838dfye8teUtBeTXlQSp8p3Z99T+wYmk8okpSMGy4lgPv/C6IpoWz4wZtuGyRqr9Zf5pSXZ1OFnsI0zHzVflNpH7ecUShJdSlYu42vk19DmmOwclkHJlefYYjJNEdIfXw0y59uzzF14Vu3vMb3UlFUSkgjWBjUyykw6lcVheSIG7ZfZvZKZwnOSlAo+icRF6LkdwfpVSQsOSyeO5l9HlNZlJSNdI6Wez6i1WrVDxmObtTlXUHNOSQJM7V2VfbMxhmPpuyKeSbGxNWsYbBxiv6v1CXzbq3p//y/4eBLCamnpA9uC7VeH82a+jWovNu/i2EEfBfuK+bPKZ1J+ArNPrIeSL2Rns9h/NX51lnXPJGJH3ysrZD1L61sEl99WtqDW8Azj97AP0H5L+wMlGcjm7y7Eqb0dmxtw3Vby9vg99HPTb8Z1HdK7TfjBR/T+4rnXbRDG4m+F8EzvL8rDyzkO27Z0RqTkg3MNV74Bzlv4PWyvKfIs89EjuJ9WcxZbkgZtY4usPOM+wy6hje/fpm5KLputqWpf3UZyFr+HYxPzzvMgHBO3ks8jBm2crTPKf1bnNzl34B4bbHY7vIO66/FNOKei9cGBQ33AVjMfZU9KTjV9ApwD1Tso9B+yr/BZ1UaYH/rETDKa2fdw3sz/V2O5Zm1iKI0/dm48blueirn+NXtXWJKZj+BrX8m/jhgcTxlfIxHMnmFnyxHan2XjVJ2XKd+cyXYrCXm2luF4xe+hr8l8W/V+TL13yXicL9j7g2Gk745psXdUEVr2PuNxblR+Fc6vWUesnzprZ32s9t5Y1/1JfM07xNJ7bWUnE0N/26G8Ltecd9VCrblt5ryaNZedPXYhrM6X2dqozg46EGZ7JvX+GsOYdq6paAs4TvFsm/kPaIdz1YJngb559oXag2Ib4e9Psk27EKfmJHVGmfmoNR6fRVvO79Wc1TBfCeuH36tZHxJoAyeK+ITKr3SO+6j8eZqxHDATsz/2nA8jMHqeeOKJsXnz5lixYkXcd9998f73v3+U0o0djzpGzz/4gz+ID3/4w/Fnf/ZnccYZZwx8tmLFCvm9+T57xzveEYccckj/3/HHHz+28hqGsTiwHRvG8oBt2TCWB2zLhrE8YFs2jOUB27JhLH3Yjg1jecC2bBjLA7Zlw1gesC0bhmHsI1gg6fYVK1bM+1vEvYUVMzMzM+XHFgdvf/vb46KLLoo//uM/jt/7vd/rx3/ve9+Lk046Kd773vfGG97whoHvvPnNb453v/vdsW3btjjwwGFWv1mw2xqzC/nbY5AiruYmZP7KXN2qKjF6IgMP3lpA4C/18+aDYi1QN03YbY5htoiEYv/I2wzqJiT+Cp/dnsDPGStWxOBtjaf3/uIND7xRoRhQ2U19ZPboinKyWxDsdmcEb2fFIoVQNzXz+dIt2mFkX6gblG2YaEe9TcTSHQYrx7Hw2a/Fgw8+GAcfzJhZObQdvzVm7VjdEGnLvsbAbigtJBhrSs2NG+zTHGOqj5QtdHp/2c2niHI7Myad4XKgXRPW0wn4XBLdZvkwrWvJ50Np9xPEW1fqVqS6FZb2AqxIkp1I3ahLlNgKI/ityDZsOKqvVV9mPLYtK9vDEXHhAthyG6g1ULE8Jko3IRGKnUKxHDD/AL9Xw+iU/aTWXwS2faZ9lPi8C+ESizmmgT7DmRAuMa3h2GPjCfP9MoTxNiI+wxjPcM5Rcz/a+5NIXA07IFtHa9aU9CWQpaLkK2J8ze1NNt7bMN49HBHvXGBbzjKo2/IltF3LS+uoAmNYVeuXYhZibGyYN7LEMSZbtD1MCxmE2JyNLLYIxcyQtoDpIqs+tsW/QJgxkQkmowEwP73E7BDB9xBs3osYtBHmg6C/u0E8y9gr8HNks0IwO1OsVCXmIfyu+h4bz+O25b+N2TGh6szQxlbbMBS0ZTPNcqi1TjHbszIrFnXGlqUcV6XCwcaKqitj8lHsPsjErdjqGQsp7qFL609XPKv27yw/xfCkypxQPh+2R5YDy1bDqs98FMU0oPoq13515jIfRrPjiDbrcluG3BJbeA1zVkKto4wRRu3LSgznik0I8yuxaiIUk29CsQJhmXHMHkXCyB6CZXsSD6/rlXUtfHwXKVrEIGvgdNYFy6zOghirkVInQb8amM8G6pVQY4D1G/olmJbap+J4yLZVzIyKbZ8xvLY590oshn9d42cw1KzVo56BlVggESxtNZ+wvXKIz3Fcob0xZhpVf3UGhmMyy8rO4SIG12IYA4f2/uKWAIf30RBGk8tqTSMjkWLKZKhRf2FzqlIIwf7DuQrzYfNLiVEKw+rzcbBulc7ckAVwoW25DWrO8tneW/m742jLzI+d9UboPXmukzXrwrR4hp19q3ozlbqjxLN47sXmpRqfAW0h9+r4LhANXyhr9NNT6n6I0nuuGnUwREmNTu1DGEujsmWlcsSg1G4Y2PhbKFtWbTLqWszW0TZrcVtFEGa/SgWhdAavmOGVskD2A455ZZPMr1B+/sEinPlsFJ+rOZC9C645G2bzE9peDQNqziPKL1VzEbPfmrGRdanZbyMyPWWnpTSUGg47k1goW1bvbhLKJlnd1LxZ2k+3PfdiapzqfaxidT6KfF6DzEfZnjqLyzLhuodpKJ+Srb+KeRRZPzMNzK9L0h0G60vVhhvFM8OKD8Ppqf5hqPGJ2bhVtjUOpE+q5rXSmfDoZ1+GofAXf/EX8WvvvCLiGZ+c/8FvXRCve+ad8Td/8zcj5XPffffFkUceGRdeeGFcdNFFI6UxLjxquHHzR54XXXTRwI88IyIe97jHxerVq+PGG2+c870bb7wxNm7cKH/kGRGxatWqWLVq1djLbBjG4sF2bBjLA7Zlw1gesC0bxvKAbdkwlgdsy4ax9GE7NozlAduyYSwP2JYNY3nAtmwYhrGPoFK6fdeuXbFly+APpJfiWvGokG7/wz/8w7jooovi93//9+PCCy+c8/nExES85CUviU984hMxNdXclvjhD38YX/ziF+P8889fzOIahmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhrG3UCndfv3118chhxwy8O8d73jHXiv2qNjrjJ7vfve744ILLohzzz03fuqnfiquvvrqgc/POuusiJhl/Hza054WL37xi+Otb31rPPzww3HBBRfEEUccEb/1W781Yu7bY1DHCFFDhZxAamwlJZiUzCjRoOjlmdSColZX9PlZfiUZgVIfCCaZhXIHSMOspGxYeVi6w0iZmbbSLPkM1hXDihqb1U9JEzDZKiU3g88qCdssR0l2bBgsHinxUaqHSS5ge45Drr0kIc4kex4eMd8SlIzFqHLtLI1RJW3aSs6WpKjUeMM+zXGqJMWVJFb2WY1MOJMdr5H3YBIZMFamYR7dqmSnmUQmys8izT+2edqIkoVVds/o4/FzJT1YkqtTbcvGsxrjJWlN/B6TwK3NZ/h747blid6/kjwNznklqSpM4zDxOYLNsUp2sfS9iKYu+D2UJUemclbXafE5lh/HZkmiUMlm5LjA8fMA+TxiUP6CSU0rWa6NJL4bHMoOsS5ZbyazPJw32ly2DdZVScuovmqDbCO1XjL/CcH6KWKwj/GZlAhEf7ONRPFC4ajyI/OiRi5W+cclKHvK+UWt4UoqlMkQqX5uI1GI4xjnpUQXwkq6Bcc02nIC64Q2q6SPs66qf5SdZXtgHtdCGMc6WzOxr5UsERsPSj5b+ePsWQW2DtTIBta03d7C1ihfgY2ok2BPqDVe2TKTIivJZUc0c6TKQ9lvQtVJSXRNFz7H/sT8sn4/InHDzzIZOyVPi3av6p3l60Kc2hdjPpk22p6qN/NBVNsribZMW/nuCLbvqTmHYHt9HE9KrlrtrfL50hq/WDgyBvtISfyVpOKUndaEE2qNY22p9pUIrEumodpdSdrlXI02hH4Ujje2rp0KceifYZ1QzvzLEM46HgdxOI6x3uCLTvXG58CUK/p1GtpxRe+ZGdWeWH61D0+ofRjuyTNvbLea+TXLp+aZdSKMz2Q7Yj/UyHPm+FPpTohwpj2q9HEt1Byk7JedzSnZXLX3ZM+q86JMQ52NKz+BSVbW+P9MxhHPgrZB+EckjN/rQBjrh2c6+HyOdWxblHtm8okRsbmXxtVCKvI+qPcKeGYmy8H2KxH67Dul3nGewTphe+Hcl3MbjmmcJ7H8+D30t7MdsS3U+QrzH2q+x1BzBotzOzsnfLSi5iw/+1+1k1pfS9KxJdlmNTbRp+pCOOcOJZuKa+ftEMZxmGng3ILfwzUJZVvTbnF8dER+7P0WzgXYFjgfMNvqQtwaCJfOZ3FNqllnVg/9jRjsk2NFfGlfp/Zy7Fl19lDyN9VeuSTXXnqfuFDnX1jeNnt4VR62r2yDGulnNt8qSWJ1jlza5+B8ivmxeUKd06hzre3kWSyPkmjO9L4Lcbi2lKTimYx0hH4/xN4lqfeqCPaOSY1vNe+OeiaacwOWoWYsZjvWSDgzf0WNv8U4t873UaX1UJWFjZua77F3veodiHq/y8apejeCdoZrWPpA6vxD+ZcMyudneyb1OZaNrQfq3HoThNHnzfTY+6zhPHCdyfbHsmEbIkpnythPai1j669616D8sWwP7L82vwGp+X0KgqVdsvWIhd8vG/s8dkV5+ZiOOO2002LTpk0D0UuNzTPiUfBDz09/+tMREXHZZZfFZZddNufzmZmZiIg46aSTYtOmTfE7v/M78fKXvzwmJibiuc99brzrXe+KI488clHLbBiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRjGXkKldPt+++0XBx/MLmUsLez1H3oO/1p2Ppxxxhlx+eWXj7kENb9Mb4O2v3pnYDeJam4yM1YgVR52OyGC/5oebwuoOrGbK4xFbzgeb/fljQ92qzZi8CYkK+fdJG74WcZS0oE4ZOwqMX6oW2NY/tJNBXX7Td2Uyr7Cmy2KAQbLl31Yw0jJmJEwj5rb/4vJEpaoqRsbm+p7bHpse9sk+1e1B9o6Y5wrsdgOo8RiiONN9Rdjz1BslThODys8q5hJGCsfjLcZdeso01YMuhhmcwPeAFdswBhmc1yJUTmC32TDflc31tgNUMyvhs0gb3F1C+WpQVtW2lGQvOmKrYUxISuwMpbWghjKO/sAb2SrW+8IdjsX++tu8nkEv5Gp1hnFoJLPYzm7EEbHlTFvqvkd64TjNPPBtlDzFmOYVAweOE4xve3kGWwXxZ7HmDkUQyHezsS+WkeeVSgxPqgxx+xMMTCU2lnN/Yt5a5IxtbVlN8t+wnIrtjtsy7QnxYKqwGxAsd+oMbSdfI52qvw2dhMb1yp1+zjTVv4z+tqYd7bHtHhW+R2MqVqx+CMYgwiyeCoFAUw72xTXAbVPYbeda5j0cQ7ItlXrjpqfMlzDSqDWV+ZDjnvfWsLmXv5ZxhrWL+zHHAuKSbhm39zG5ygxt9QoJmRdS74I5hHRrEltFQYybbRfxYxd8uHwWdzT4trIGEDRDpV/yRgt1Vqt2MWYj1LDRsL6smZflG17k/hc2W+2rWJbUUyCzM8sMddFzB1/K8R39gT3RsSBQ/kk1FrF2DOUDSmmhuxr7IM2TL41TGRsz65sCIFp57x/A3sw9BnBA+RzBNoI+iAbhx8MvUbg9xir7xbxuSjTTPoSam5Bnwd99xwPHYhTbMGI7EscI2q+wH5jTC8niWcVYxSzvy7JI4KrCaj9vWLryucX2tduuxdnzKZtzq0Vs1pJ9UX5QArsBYva0zKlLfy+YuRlwL5VcwCydCLLH2PZQpvFsYnMfb2yzlSUaQbzY21ew5Kd/cZ8+IjBOVoxL7I82HwfMVhOtpdDv1qdM2T51V5PrV3MZ0Wo8ZDPj8qgt6cY9bytzTuFGgb+EhO3Gm+MkU2dYzC/W7EFf1nEs3Lg+MF9M/Y52kCumcpuMD3GcI1rLpYNWYTRftmZlGLgb7PnU++B2FqkzvkR7JxfKe6ofQNTLFB1YuOypKAwnHfOAcovz3ZeKIU5tR6yc11EqT+UnSoG3Myn5t0P8wPbnFNG8HlWzb1t9nnKn2XvkpQ6zxYRznbuiHRxDWfvaNS5pFKeYOqViqURgetyaT5Q5+oZrnlPp34zwKDeY02RuDbqNaW9OT4z7vdS+T5q1HmYrWHYvooBmtlkzfk9zn+sv1QfKIbkLLM6M1d+QNqcyqPEfqkYRrsQxvbIuUH5GuhrY/szta4gn0cM2kvG17BSKj+G+Ufq3SKbd9V7wZr3aex7am5n77qVwg+zjRrlRLN4GouIlG6fD7sXoyCLg73+Q0/DMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMIxqVEq3j4LPfe5z8dBDD8XU1OwPp7/97W/Hxz72sYiIeNGLXhRr1qyZ7+sLAv/Q0zAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzCMpYMa6XaprjE/Xv/618ettzasyB/96Efjox/9aERE3HLLLdHpdEZLeA/gH3pKunFFS59hRZ9fojcupTucNqOUVlKRjPr9MPEsAvNm1NE18gpIq8/kOZGKG6nBGWUz9gOWHyU2mJwePquoxpnEAEp6HEY+jxgsZ7ZHTV8q+TPWr0wON4LLA2P9lHQFIsukpDnYszVQUpfZXvuLZ8eJid4/Rf/NZNCU5IuSAGayQUqigc0jiqKfjSssB44flCpT0qNMCk9RvCvZ6cxHSTXg2GXynEp6CYFl+nTv7+kQh7Z+PoRRhrJUPzUHZJsrWWcl5cTkpZQsoLLPLJ/qdyWtmeEaGnzWx0p+RcmFdHp/uxC3UHLtJbB1q0Y+vSQjMCXCTJpOSU4psDUVv4dzZRupWrQnJXeW5VfyjzV+B0tX2ROTr1GSNIgu+RzHPJZHSeewOCUnwtZcnF+VRB3OSzn/KMkLNS6zL1TZlH80MfQ3oixXFsHH1N6SoBu1LFif7KcauSjmA9XYLIJJaqvxryS6mIReG9luJkE//CyTLlTjSkkyZZjJwA8D2wBlXbu9v0wyezg9JtWqJHAUst5ob1g2NU7YOFI+MSuH8uGVH5D9rdb4mjkzy4x1LclojRvbQ598KKnI0tqCUG3J/O0aP4TZu/J1SutvjbwllonJE5ck7bFM2LfY50oSMdNT40r5xEym70kQd79Ij9k4fq78S0SeF3wX4kprIOaj1sBjRXzmh22kJC2xHGl7bL6MqJMeZ3uFGsms7bFwspJqTNSsMyWotYPtz2vkaXN+Vm2m1lS2P6xBpo1tUSOrmPVTbaj2bj8iYTWnIpi8LOaHe2Uc02xvgvbWgTDWG/1gJvleM0byebRTLCf64ExmUEkMKrvHtT3rouQNleR75qn27Ajsk+5Qvou9f8aylGxZndMxKVzVz/gspsf8ZnVuWDobVv4lk2xUZ68IbJdcI9C+cb3ANFA+Gtv51N5flGfGPLBMeO7cIfnhWqzW10SXxEVo2dO0FyWf2IEwllOdL7OyKb8681F7WrV+MOlTJdHL/BUcZ1jOtnvDxYKaL9hZgpJARjDJzzZn8mqvhVB+UgLz3iDimd/NZJ0jtJ+beavzVBxDaGf5PfR9cZ+rzniZTSq7uXH4weC+eISW2mW2he2NfcXGkWpD5a+zszPMA+1Q+e7zxQ2jdBapwOYOtQ4wP2+hUOPnJkoytsoPVudJCSanHVH2E2ravcY3T6gxxnw4/D7KlmOZSvNMF8L4nhrLkWMW5wsExjO/Wq3x6h0yk7auORtElPxK5SuxtlXzJFsr1Fgu2VHN7ysY1Fkdq9O498vrIuLAKO9tVN0x/m4Sh3ajfDX2Dqp0RobPqzVXzTNYplyL1D5WnQtlOTAtDOMagXu+hDpjUetWPq98BlxTWV+qtlB7EyY9j58/HcLKT2C/RWDvjIaxmnyuxh+WM8/a1DwTIp6Nv5q9bPZFzW+lEHtrv2zsM1hA6fZutzvaFxcQ/qGnYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRhLBzXS7TWceEsE/qHnABTTVZvbMKVb3+o2R6lMjN1ouGzsJqe6RaNuaLDRzW51R+hbpFlmvCnZhbBiF8i2UzdHDxffy7wVOw7e5mCsOHijBNNQrC/ZXlh/daOrxMKo2MDULFS67adugrGxVsNO0+a2FWMmWYxbGfv3/qmf6DO2AuxbxUDZpq1L7HnqVh4bV/g8tqm6mapuwDOUbrdGcPZSxezH4tU80xH55RyGc8jjIfwvwZF9iN/DOqlbxjmfqdvS7OZlxKB9MiYjxeqqbtKycio2iS0kroYJMp9Rt2jVjcwtJG7U29ltsDpmb1AqLyvrr1gL1O3GrGdbtp3h78+Hkj0pJhkEWwPU2FQ3QDNvrL+6hYlgNwzV7V7WHoqxCsGYGdhaPlwOnA+ug3C2KdpNiRkqgs+ZiqmJMX4r5lE1LktzNI4Hxh6lbriqW5Zt1t98dkXFs3uKHIdq7kWwuQfHcQ2zQYaVD6tuxZbGdw2mhv7WPKvijhXhe0gYP1djBW0IfdQEMpqU2CojmrX9GohDG1Fs3YxZ6B7y+TDSLnAuewqE0Wbb3kROMFvGcaR8/hIDpCpDaVwuBvOIwjExW1/WJjXsAgw1jIE18wTLu8TIpsBu8Kuy4b4R2UZyjKh9oGKlyzLj/K/8fLStZClRjCeMoQG/F9G0XbfiezXshsPpRvBzEkyrzf5N9bVaf28S8YnSOUqJfXk+sLW/Zu+9Lso2NCqw77vimZJPXMMoUYJaTxgzmGqLNutyW1bQBNob25chFLukWi8Ys5ma93Cc4r44+1PVQ+1Nt5DPcfyjn8D2G6pP1DlKaS5WdpptpxgFscxqn8WYHhXYGKgZ4+yZhWIbSpTsJoLvBWvqw9pKnc+qdi3NI2ovzBhhGIttWyh1iBx7aoyh3aM/i+ydN/T+MpaiiMHy4xycdVTjX9WbnRGUVFoiGrtWde2K+Owr9LWxPWvYchNY/xrfrMQsh+3CfAZ1TlhiTyvtCxcDrFxKkabEeFlTBzanPELi2kKtgYgSE5TyGfCMKO1QMXwxu0d0INwlZYsY3CPn86psjHEY8+6Iz5X95pyj2gjrxM7E1XkwjhelSJB1VGdgyk7ZXDUq2pxrMSbjiEE1gXEi98olxjLFRstUWvD5Gn+XzbeqPOodceajxjRCzT/5POaNdq/2qaW1X42xjFfMj6r8uZ4phSS0X1zb0z6VMhSCnT8rRvyaeZI9q/Yb7L2BendVUjersb3S2l6z78vy703G7amYbRu0w/QDcY4t1SGifBaNYOO05tya+TjqfATtvjTGlH2XzuBrlJrY2RLG4bqOay5rI6wf868j+O9P1H5VqUZkPuod27UQxrM/xthZOkOL4GdnNecvpTWujR+n7L6k6FRTzgkS9s/TjAXCAkq3PxphSzIMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMY+lgV5Tv3e5NXo0xwz/0NAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAxj6WAmytLsJcbPJQT/0HPgZ7tK8qJGViShaIoZFX0bKmT182JF1Z6jWEm1odwKpo2SLEnnrSiwMW9Gh323eFZRxnd6f5XsIko+Ip33cL7D30N67eMgzCRJMIzS84gbybM1EhpMLkPJvp44/GAPbCzimFPlyPZQNNsK+TyOESXni2XOei/mz+LbyLDWSKOxtlZSZaqeKeNQkg6MKEtZ1kgUIrKsSk4Tx0IHwlnWGolCZnMl2baIwTmFzVUIjGers5LKw/kH67p66O/w95RENY6NbotysDVG9SXKfmD5E9gWSnKFyWKU5LojuGwpAvssyzxu+94ecznTa2THE8o+S3J1at7M77G616aRUNIb2HdqXWZQMjMpl4FyD8oWEGlbOCZwvKn5icmZK/kLlPLIeUZJgWA5lE+QbYr1x/SUHE7GKxkVJV/PyoY4VjzDpGqDfD4cLkkYKQkcVmY1nh4Z+jtuoHRJSong2FT+C7MR/BzTVfKPTPa6NFeq52v89bby7gxM8gT7piTHouYnTO/pEGZjE8cgzn2IGyCcz+P4x7kY7RfXuG7v77BkcQLnLSzHdvKsksdjUmhYNvU95jdhOWvWkkxDSY0xOdzhcNZRSU8yjFvy+dCIWBNNPytbUP4lk4ErrbnDz68mn9fIO7J0cf5RUuoJnGdwjcCxif2b40LJgbcpM7Yn7s3/hTyD7a3kvJgNqbzVnMnKX7MmYXo5T2DZ7iafR/D9plrXR5WFbHPGM2oeNXvvYTnWhZB7Xh1ampdJReZ3hlFjh6zO6ll2XobP10hIls7cVN7sPEBJIOPcwcqpfGYl1YnxOe6Vbaqzqiwr2hCTxBvO+8vkc9Wv+EzWC30AlLNGu2b1U/scbC/0E9iZG6JGBprN7Tje1Zlhpqf2xyUpxoWWomOyfhF6L5Xt3XbezPIrfwnHB7ZDnqPeGByqHCVfWvndbfYxTGpc+U6q3oj8Lo4PXLcxDWyv7JMOxOGZIdYJ03gS+VydCyDYuSR7f4Bli2jaHPOYEs8q+dzs47aSrGyMqjNDLEe2wakQp84TSn5Q1n/c/nWpLCV/FlFz1sfiSvtYtGmcC9WePdsI+7kmv5LdM5uNGJR1zT7DflL7W7aPw8/R/1fvFbJt2JltxGBdcb7OuuD31BzB+k/VqdSX6n2EWg8xfCuJQ6DvzvZIaq0p2eE4JN8XSq4dcUdEHDjP56weqq2ZP6H2EW3OntR+jdlnW8ne0l4K5w60JxwrabdqTKg1LtcD9Z4d82PzCPNxh+NL9VPvhXGtShvB+Uv5LSXJerUOqH5ja6Z6N4HzZ85bTII+QvubpbVL7fsyvkbqfKFxjwgn1Fkg1p35XKodSu9+at67sfmgZg9T+o0Kjh91RpBhJRVfknxX71rV3jS/h/XDcm4U8cwXxWfVmprlwLHAzrciBtcc9n5IzSeqj9MfUWuZWktYmWvA3p2y9+kRg3Vhc3hNXfOZhTj7MoywdLthGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGMajFpZu35ewLvRN2OHnEnmLQN2iVsjvqZsMio0jgTcBahh78kYEPlvDzsXqgrdfFQPqTeQZdRsR8+5AmN1oUuW8jjyLbYi3HbBdkBWU3WxQN0kYi4O6MaVu6WDbHkyexRsveNtG3TJjcZgH3tIp3R5BsDGqblWpmyuLiWQBZKw6832HQd1Q2j70N0LbMvZpDZMnS4Ol1fYGfJZfsZEoFjR280zZMmO+q2E0wf7pkM+3QRjrzZh+tohn8WYWK4dqz5qb5mz8KJYhNs+UmJiH88h+YzemIgbHiZp/2Oel8aDY1RYKJ8Rse2DfMHYGjMN+VvY2KqM2Y+mpgerTBPadmjtYXAfCigWSsc+psjHmGnbzOELf+s2+wLGkbjVjONNWLLWMiS+Czz9Yf3XLuJS3YuNEpA0oFiK0EcbcUHObsnR7HNPF8pfsRN1QXyh23oneP2xLxuQ2/J0Elif7To1dzEPdTmbPKlaKNv59icGuhkG0VKaS7SFKe4kIfiu7C3HIZn87eTaC10sx+qBt4X4i21kxOal1jZVB1bUNGwOixJCh2HlLqGFHV+wIiVLZxn0b+o6YbesSq0qJyQHRhmFHpYe2rvZaTM2gJr8cb+hT4LzQhoWlBszuFRsSY0lmccNQZw6d3t+u+Lzkx6s5V61Vit0twdhdsByK5V3tU/J5Nbcs5Kke8z3Z5xFzmRXHwWI0jEdi8Lq6YvFUbcLWNQTWh/mXpc8j2jE6qWPMNvM3OzdRTHWKWagNSmzQig1PMcn9O/lcMeIj+yVjaTyWfB7B7QzjGFNKBGfdxrGj2JXZHKFYU9R+g/WxmqtL84Hq6xJr3MHkuXGiDZNbBPfBa+ZCFl/D1tLGf1ZpM6gzccb2jnmoOSfZgJRPqRSq8Hk21zN/dzi9tElMlzEURgyeAXRJfjXM/KxPVD+ws98aZQXsnxJjI2vDCL5/VXvs0pkavjOoYSBnaTGFiHHg0F4+ylZYn6q5XmGcZVZnxzVnKAl1vsP8Z2TFVf3F1nB1HqhY8thZnVJ6YYyGStECxyyua+xdErKSYRqld5XqfIeNE/XeCeu6QTzDGKpLzKPzxQ+nOwzma9Sglpl9IXzsYZTOINrsGWuYO0vnQjVpsPZTzIaltRrTUO82ETkWRmUTVax8it0z49FOO+J7DIppUPlHpfUX7Q3XbSwfOxNFKP+IvUsK8nkE9+lVW6jvMewvwogcGyotNv8slC2zd2Y4xtC3UOtsrkVqv63yY+kq35adj9fMm6V9v5q/1PksOw9Wv+XA751EPscxj23OyqTOtxRzfY4tdXaIeeD4Lv3WAcuM/c3ee9Sw22Ifs7yVP8ueUf5OyZdW41q9b1tNPldgc9Uy+qWd8eiCpdsNwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAepbB0+76EqYg4UHymbjDkL9bVz4FLt6bUTSp1E4HdnlM3ABgrjrpppIA3EVYP/R3Oo3RrZ50IYzkUa2BC1Y+lp25iq/Kzm4Lqhmib2wXqWbyZxZgN1M0cxpKj2GQQozLLsJu2iim0LcvkQiBvQzPmiGG0Yfpk7VrDDsVYbxXzGoLdMla3bBQrCmMdwP5S8xbeIk6bZPNQhJ4DGPurKj+md0Pvb0fkgWHs16wL9hPm3YUwu02mmHIVY+3dJF7d0lS3q1n7K4YYxTzBvldiccPyqDmOQa1LiXGzlPwwZtdk1X5ZHuyXGtZcth4iGHtgQDlq1k5MG/u5xLCpypHp4brRFc8yVknFlIM3qtFeEuqGP+IoEodjCeuPcwvmzRhi1Y1GrAvrH7VeKqaT7eRzdtMzYrA9GFu5mpcRrB2VT8QYkdV4V35hllndol2MdXtDL382R+C4wzLi+GC2iuMKmTHw2RKDMqKGkSiBrCKKkY7NvWrNLd3exXYrMZ4oKFYOtm4pxkNEiYlYzUk4pnHuYHNiDSM+880UkzibG7BdcMxhX2E5GAtWDftOlqlm36f6uMQy1GYMj4rNoVlzR91njIN9Qe3RGMu3YslT6wWzZeXHY36j1ouxmJT8IIwvsZkPp422nKxjuM5i/RQLS7ap8teVTZbYJhQbWJvxzex+1CMv5T8ruy4x3Kg+Ge6fcTPzDucdocd8ieVPtUmp7jW+NPO5FGpYMNizym8r+Xht5kFsCxzTXQgzXxrnqi0ijO2YPjbaL2NtHw5nmdT+AH131m+qjUrqSOpcoESzgFB9ovYbCSxzG5UKtZdQzJiJLOdC2PIw2pzxtmX4StT4G0rloAR2JqPOR9DeSmeW0yKMYPsUpV6j2ivLhGNQ7bVYO6p5FOvCzvjQbjCs9sXMzhQrN/PzsS0Uu1Gb83NV71tJvJrDVXqM4VX1X2mdy7TazFM1GPavh9GG4VqxarY560OwMxblBytW5xJwPWDraFc8iyjlp86JmW+r1rISw7Vi7FV+fLYXlh3rPyorKmMLxvRwTmJngPOlnf2t/NZxsJyjrbL3jMrHZO1VYppejHWZjaFRGcuUIpc6sywxMSqwfq6ZQ5lPiPNlzTkTYwRUfh07J+6SuAi9prI+UeesiKPI54pxmO0VVHsqJvHSu8Wa95OM2V6NjTZqOKXzOUSbsajeQbFzgcWw5Sz7tS2/l22i3vHV+KiJNueJ6l0xorTvV7/1UL/PKCm9qLOFm0jcieJZpkql1BWUIhwD9g+e6yEzf5Zf7WMVSjZXc67KVAPUOFL7l/nKEMHLWcPqimizp1wMtUjDACyjH3KWsHJvF8AwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMPg8A89DcMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwHqXYx6XbIzSVckmSRtEql+iK28qHZBjzU3TRrC41MtGKMjzDSg4LJUKYdOat4llVZiY1jSjJ2GF7KpkaJg+BaSkJkVK/lWTOIgbpqZMSXMntlejFlZw1oiRZWSO5mHXFOqnv1UgBLCSUJDGjGWfSFhHlOrSVJWFjWkmoYn45DrFvlbx4SbYb81OSQ0wqVLWLatuTen9RygnzxjmAQdmCko/LemMeJcll/F6N7BPWm8kGKBm/GnkphpLUNJZHzWtt8mgD9r2FkspQrkm2sZIXZFJ9CLV2qj5vM4+pPmDxaAuqzCXZDCUVP03iFNh6x6Slhp9law72g5LYYxIaSrIG5zVcO5lklBovTMI3oimrmn8RWI7Te39vgDglj87A5DOGwcZLt+JZHFMlyejFwD0RcWC0m5vaSAUhVB5Mig2B41vJL2X/t5Frx/TUmMa6oo3k82rtKUGt2yU7U3KNCsy2aqTENohnEqpdMD7nzBoJIyZlU5pzI3j9ataaNuMWx4OSay9JCTOpzhUtylCDI3tpZxnVHk7Z0P7kc9V3SmqKyZsqySnmSyrZtpJt4byq9lpMPq1mHLD9GJNGHw4zaUbMT/naau+xbuhvhF4PWb2G5cBZfsqWE9h/JT9OAdtI7fEY2khB4rjFOULJmTI/rGZ+VRKle4p1oSXQ2kCN7zY+R816z9ZRHCtqvShJZCo7Y+VQ5SxJFGK6an/L5hSsH5N2j+DShQi1nqBd5F4d64dzhxonWa+a/RGbr7HOat/A9vU155lq/OVcq+bwNlDyo8rXi9CyieOEkgxnc+Goe4OaPmfrSE1+TPZU7e3U/pblo85vS/OPmtMR7AxIrV9MRjmi6aua/kO7Xl34XK1P2QZKilqtndmO6gxYnR20kSKtaecSmMRtjcQkGyfMj93VoizjANvTKYngUaWzlY1k2mrdw7ZW8qwl4NrI9qOImvcd7Ls15+dZR7SbLoTVmfI9JA77R805zH5Vv7JnToI4NV90Rd4JNp8Ml6P0rkite23elal6s/lAzQVsP7W33ksp/zIx6vpbkkseDs8XF1HuL/X+SL13YvtKNccqeeUcy/g9NQZLfqKSumdjQUlGq7Ux42veA2HbpY9d44uqOackwd5m/lXvEticP5+Pm2DnqjVnmKUyl6TH25yTtgHb57WdV9i6rcrL3rG2mWMjGnvBcYzrbM1vQOaLi9C/J8i6qt9klPzx4yDuOpEf8/FwvGJdcT1H3zzLoc4G1fv3zFv1u3rPeCaErxlKa/hZde7I8lS/y0E8MvR3GKXzF+wn3MeospXORtT4y77cG78hMfYN7Iry+Kp5f7404B96GoZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIaxhDAT5R9y7l6MgiwK/EPPqlsGinVlFKgbj/iLdsZ6dQ+Jmy9tBrw9xRg4h/O+h3yugL/qZ7c/1M0lZmzqdiM+i7cy2C1Fxo4YMXhrIb+nblQoNjCWb80tWswn01M3ohSbR7ajYgbDm1RsnKi+VGO/za2K0rOMgXEc2EzyVvXMca+Ya8Zxi4SxLirWB3XrJb+HdqrC2F8bSHwNax0by4oxUt1IS3YQdRtajdkc65ifyqPEAMZYvyIG+5vdNlNMXZgftm3pxlppLi7dZorgc0rbG5uMnbUG7PYhY+5aKJaSNuxyij2DtfGobAcqXcUmxIDtp8pcYrysKVPmU2IMjBhc19ityNKtvIjGtnCNVyzZXfJMDSsfloOtVZifYvhlc8NJJC5CM3uzW9TspvZwPKtjzY0xdota3a7F9mdsOAt121lhuvevdPN5HGwkNSwRDDVtkn2nfKRRGSPUHMDm3po5IMunxkqNYkGiZtwwn5ixOUQM3gDuFtJWzH9txq9iaE6bU3sCRKl+baDas2Y/WMqbjb9x30bdGrNlYmNM+W3MXk4Uz6o2YetPG+bsCL6uYVuX2BFqGITY2q/6s8TiimMexyDaEI5f5ge2ZcfM8mH9sV9LdVHnJWrMZrzaE7Rhd0SU+kQ9W2LzVmOyC+HS/KTaUCmjPFCR5ijYHLNM2wnFGDPuvJktq35me89R2aYU2qyByicusaEqZqFS/6PNYn7Mx4toxqcaS4odJMc37jtQkUOB5cfO1iL03iOh1BlYv9ac0ap+ZektlO+GyHQXSv0CocrVgTA7eyyxGkbMX7cIzebdhrmMpafmoTY+uCqD8gkSNesMm4uUrSv2m4nC5wjm2zJW94jB+YnZhWLgV3mz9qixvTb70Jp3MqV0S3vKmrNUlm6GF8OWEaV2wDLWqFWxz2vOYUpoo0Sg2GZZf6n5SZ31MHUpxZbFzmnU+6zSvoqxv0bo86nMB8+hsMxKxS6/p/pPMYKXGASV3WN8SbGgxKiN6zBToRlOo6R+p5hcRz373lM8ISLWhPbh2pwhlN5B1qgQldjnSvZdWiMxj+G82fkspqf8Tqa22KbdFOOwyjv7qoYpkaXB0poPbc4U1Tvi7UN/5wObl9UZdhu/Sr27QrRZP9g6hmXHOeIpEFZqS+MC8y3azitZ9poxXdrTqjZl/VyjXqSQY0+d1SnViJLSWolVX9W/zbt6tBu1T2fnXjXvutnnyufEueGamB+Yx92FZ2rmKkyDvbNWYH2i/CDF6trm3QtbHxfbxzb2HeyO8vznH3oahmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmHsBeyKiG2FZyzdbhiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGsRcwE2b03GehKI1Hpf5nUrc1tOiK8r8ERqGsaJURJbkzlFOqkYFOuQH1i2gli8EkK2uk1JkMHIaV/AWjNMc8Sr/oxrKpNlKSHUyG4ajC5wikIj9KPIPmXaKCVxTk0/PEtUWO/UcDJXdJ2j2CS+DUtENJnrb0bAQvX42snqLSZ1ByIqxMON6URFIC6eKVbAybGxFK7grB5MNvJZ8Pg83zSk6mlHcpXYWascMkirCfasYDs19EjYQtKxuTlB4nRpXUayMxqtYTJv+DYwLHd42cDJNXU7ILo8pQsnVUzQXKJ2Cy5Pg9tR7m2FTrtpJ3aSN1qtanBLahGi9Y70wD5YKwbKquWWa0G8wP5wscM5m2kuFUaDOnIEp2vxiY6P0bh3x6Au2mJKsS0bR7G9ny4Xymhv4OQ9Uv7aJGSr6N7A2CzZNK+hnBZJawXQ4mn0cM+gFKMm24PMPlaOOXoB2yflNS4KqP2Tqq1hpWzpJMXAQfi20lQNugJOU4TjDJsTaScEpKsiTlVIPS2q/kyZRds/0ok00dfoaVQa252I5pc2r/iGDS7CoPJY/IfE0lAaqkmEtjFu0TffMsK35fzTlt9qNYNpV3QpW9zfeUdDX2a5ZJ2ST6k6q/x4l10c6ualAj6Zjtps60SnNozfxYc95VCyyDklZFZL3UWRBC+YzZBmoOxO+xuqqzNZzj0K4Tan3GZ5lPpHzYkp+j9p2lcwgl4VsDJgVes44xqLl/vjQWak2uAevftlLN+T1V91L9lF9XI82eUPbdRoa1VH5ls+p7LB7tRtWP+RL4rDo7wzWH5afO89mcUrMOlCRS1Xhh8sHD4RJG3f8y37ymDOM4514IsHZQfkqN/PYoqJkrWZsp2VS27qn8lLSq2oOxNRrTayNhjmu/8inYWlRzJpXfU/t0/B62Y853bC2PKEuF15xxq/TaMB2V3kFh3jg/4fdK78LUmXlpvGedVhSea4s7I+LA0PvGErAduoXP1fzN7EL1oRpDmY/yKWvKtHqeuAi9PiXUOotzHzvDZfuvYbC2K70fHk6bnfGhL6LSzjIrf1b5K6UzB/U580fUflX5s9nmaq0p2XLbMzDWP1hO9EXYecI4UUq3xm9g7a7W8HH4IaV2r0GOQ+xPtZ6z8yJ1llU61615d4vPpK+s1ku1nqcdqn7AOrE9S027qD1SrsE132NQc4d6V9/Gly7tCzCtkj9QM69hGhNDfw1j3Ngd5XHrH3oahmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmHsBeyK8g+pLd2+TDBcfXWLouZ2LgMbSG0ZB0qsIootKL+nfvXf5raZummi0s6bPepWYYmtAMuGt4mR+YKxQox6ExvLjrcHMZ4xuinWQXVzuMRQ0ObGBTIiYN5Y5tKNNcW6xsboo+l2c1u0uR016s1zdUM221KxYCrWvTZ5q+9lGPuzhpGX3dxDKMa/zE+NaTX3sZtnOE7VmM7y47yAaHObCdtCpVdCDatN6ZadmpdHZTbItlO3ytow+7B5dKHYeUe9mdmGHaQLYawbjtMsh2KjrSlnOoyKrQn9C3a7r+3cy+pac9N9ovC5QmkMYZ0OJvFqTTodwtdCuA3bE/Yl9lvO14o9Xd1CTNQwAuI8kvWuYTUeda1ljObKn6lhmdxTrIvZOmJbjXrLuMRCxJ6NaMaYYi1QKPnuCOXHt2EBb9MepfmnZl/B+gShbFatqWyfohiJRq0rgjGK4bOqv1l7lRhZI5o5XLWtqhNjkq7Juw3GwQpawvaYlTtJtPVHsozYpjVMG6V5GNFm7Ucols4SM6ta93KewLRwnVF7BcboqRgjmZ+g9hJsP4L5RXCft4bdhEExGbE9NOahmIXY3rTGb2Xjq+b8Beua5VNssIqVqjQHl5QjMp+F8K/viIhj4P9t2T0ZW0fNnM6YGkb1e2oY8dv4GmwOxbGCrEElX5qx5GN5IvT6lGXF8YZ2ytj8MG1MV50RIRiToGLxZ+shtlENgxljeEK0WVdqmAQVExz7vDQWa1jQRmWj3htoa3vpz6l6ldiuGTtURPmcaXhOZGBpjOpzqfHDWGdUehiHyiGK9SrnjNL5rYpXc2qJ2a9mvDIWT5V3G9bMGsbzNqzpCuyZNmyvbG5c7FdnrI0ZQ3pEOyZrNaeV5ga1t0PkuO+Kz9XYzLrUsGeqNZX5x9jPJZU6rLNisGNj6FgSNx9Kz5RYcfF8p6SwgVB9VjP3tQEbOzWqCG3euaoy59ymzjKy38ftY0/FbHuVVBxUfWvelQ6nlfkmGFuaWrMUw3npPQg+i+ODnaPWvMtgY13tuxTLK2ujmjORLHPN+SyWI8fTFvH5qOsEewcxnDZDzX56VLQ5A2D9oFQRlEpBplE6c8Q0Fup91KiKPSWoNi3Nm2rdLqnYjbrfrnnfgcg8lQ0pFstSHkqFj411ZXvs2RqFT+b/1+yFSmyiJSWiiPJZ+8Hk84jRz/BYmdooX+H32u7Dssxt39kYRi0s3W4YhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhvEoRQ2j53Qsl59ILo9aGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIaxj2Amyiz1u2K5/ERyedRibKiR0y1BUe0zOQomJRoxSEnNqKFXi/A0iVeU1Ir6m1H+18ixMHpm1W4lSSMcll2RN0sbab3xe6xOGK8k7xAlqvE20mWY96gSqkriR9FkZ35KPvgBEU4oiRRF5z2f9OlCyUvWSGcztJG0VWkpmQQmP4BQ8wWjZ1co0b0riT1FGc8o3tvMjSpdtLMN4pmEkqksSRpgmMm0RHDplDayN1gOJjUxjDbSqiVphTZSppgfWxuGy6NkChJY1zYyAG0w0funxmmWXdVdtV9+T0nMlMZ/jcRZSfpb2SE+y8ZsW7kNJo2GZStJe2FdS3N6RDMulKwtxrN2VO2Jcu34vdJ8gFD+VvoKOKbVHM7aX7WF6qusI9YDx+I41kQm+aQkh5ikyri3A2nLiFElbvJ7SjYV092fhHHMqPkP49lcp6SYS/N727UlgT66ko9DMLuvWS/YnFojUY3IMpV87eF4ll9JHg+B86WaF0Zdc/F7aU9Ynpo1kJVZtYWScC5hofxpxLqIODCa+ozqh7SVE2srET9f3jXyg6z/29Y1geOjZm4tyc6p8c3kzNU822btr5EAZTLeE+TziEEpwCwfkzSM0HPqPeRz3PejJByidB6i5oBsc5xnaqShSzLPNWcqG2LhbLttutg+eypJrWyoRhq7hFGls9ncoOTqVPlz/sa0VHlUn68jcZheaV3GfkJ7U+c+CeVLYZ+U7LeN/6jmCJXeNHlW9W/Jxxx1nKlzUmw77Kvhc4a9edzOxlXNWsbsHtchtZ9h8zrm18anRLSREB5VznocUpeYt5JXZm2E64zae5dkE7H8JV+6jUxwW5Rk4xGqf0rvI9SzpfWtJAGL8cwnHHUf2wY10sEMbcZ9m/mvjYRwhJZXTqh3KqzMNedX7JxQSWKjb47jntUL01W+34kkrs14VFDp7alENdvbRug+Uecro0BJMSuU3oWoNLKNVLst9PsoNU5ZedV8UnqHjL5M6cxD9bl6f8jmvxo/uLSHxDKr946Ztnq3U5p/a9Y1Ztc4tnFuxDTYO58av6Q0t6g5DuODxNeMXyY7rc7lEeyMq3SWN5x2Pq/25gjm/7eRtl6MdTmhyjXqe+gSSu+ohsH2HW3LwMaK8j/ZGlHjM7A01LqH/jFrZzVXqWfYnKref7VpO7WHZuMb5xy1NpZ8CVy3cY7DZ9NHwbGjfEVmZ6r/Su/32iLz88/TjIWCpdsNwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAepaiVbl8e2Md/6DkddU2AN0fy1/n4a3X8JTy7gTUcn8CBpm4/MiayKRFmN6nUjQt1k3PU22144yDLUXNblJVP3VJTN6yybbuiPKW8VRuNerNb3cTdUzY/BN7KqGGcYYw6qjzshoZit2hzayOffbjFd2rAWAAVYyQrb82t0tKtFkSbWy1qnGb5FZOXuuHD5oMa5gs2VynmYMXMWbo9rsrMWNdq2pDN3eoGN4LdFlX2VrpNqG7JHgXhG0m6qi1Kdl8z/lhfqnmoDZvtQrF4IqZjbhu0YZlS7cdunrZh52rLQMJYfRQrR6kcbR1O9jzaRYllqMbeML0sv1pPcIyVWB4wD7Shki+hWHrU/NTGJtWNy4Raf7FMmXap/go1TJbYdpnPRhI3nF62y7g3NvfGLAvgiRCXfdOWAZ3d9FUoMaUqRgp8tsSk0GaNH5U9re18W2I7LjHR1TA9l/pNsY+NqoqAbf4UCOc4qpmXS+WvYTlnftqoN+Vr/G6Wz948eBhel9Vt81H3BuOAGt8bSJwqG5tna5hL1HlAAtsOmfEYY0lbxrnSnNiGsYcx38+XB9srqLVTMeyzPEpzB1u/IkZnFMByMr9DzYfKvxiVkRJxT4x/r5xoe+6F/ZHto+pYYiJreybFUBqPCDWOS+Mbx4Tyv9heq2atU8oTaZ84jpmvPVymhNofqTmAMeRi+RmLZwT3idqwayulDwRb72raVtlqtmPNvDDqPDLfXLxQ6/dJEEbWJKVYkT5azdlN6exMtQ1rP1WeEtr6F9nnNSyezA5r9r8lFps2DKIRzbhpUz/MW53JsTwUlG/A5oYa+yipYCngvNZGvaPNnkXNhx0I536ZzbPjxjBjfkS7PVPb8ZaoUZVjcz22b0d8r4RR90w1LFTjUAJIKJZdbIMsh2I4Vsx9zCdSrInq3JY9q1BieiyddeHz6t1Fadyq/mujDlej3JXPqPJk/EL52AolBaSSmgFC+czYxjkucDyOW32sxIqL6SpmdIa26jSlvX6pbdmZbYS25URNOUvrkJrDVT9k+bA8ajywvGuUbErjQc0R7AyjjboQ5qe+V8N6Oi6wOabm3JDZoerPp0MY1czaMLeyPXsbFvxhMCUF9JfaKJeU8oho2gvXIczv38X3GPuw2iu3YcfEejPfXL0Tq7HJhJo71F6A2b2qK77/wb18osZvLPkVo575ls7OFntdNvYd7I466fblgX38h56GYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYSwtzET5h57LR7p95d4ugGEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYRj1Sun2+f+0VWLZu3Rq/8Ru/Ecccc0wceOCBcdppp8Ull1wyvmKPCDN6SlkOJY/+3eEHg8uWR5QleVHSUsk0ZhrYVVhmJUPJ5P5q5CEYBXkNnb+SrS2BlR/jVLswWZi20h1M3h6BtOSY33byeY0kOssHn62R7MvxVSNpw/qtrYxoPq/GqqKsz+eRynuKPDcOpKykkhdvQ+vfRlJbPcvkD1VaSt6oJNtaknPAZ2rsl1G4KwkH9T0mb68o/1k5lMywQs4TSpYcwWji1RxYIzGR8cpmlcxRlllJAWIblOaUGkkLBrVesTHXRsploVCqD9aBySnhM0zaJ2JQmgPbtY3UNIJJE44q9YuokRbOZ3BMoGyDkqRMKH/gSSI9JlvF5n0FNY5r5p9EjVx7CUoaS7UH+1yVKb+n7EnJEz5CnkXg/IN9km3AyhDB1yjlS46K1TErR8fkPdvIEkZwaWH1PTWvs8+V1Dh+j83ZNeOKSe4oqZeSr1Ezd7AxgvNaSWpXyTa3mffVnFSz10kon+jGwvdUG5Xm2po1ro2scBvZyJrxXJJKXgxsj9lbsOozFl7I9Y6BybVjmdS+tCQjrNaCLeKZksRZSfKrjXSaildySmptTL+zC3Ft5C9Vv6s5hT2r5kPWBsq/PkrEZ9pqDGB+zM6UTFbp7OTRCrXfwT5Qc1O21VMgTs1NzN9WbVOz7xoFNesX8y9L8qERo0vmlmQ7HxDPqjZK+W4l4YxrLpOhVGdgaE+lMyf8XPlgOb5qZA8Zanx05d89Qj5XebNxqyRiS1go//rQmK2LOo8rjXtss5qzR5YHtqWSW2QSumo/x6SP9ydxw2mwtGvmECVZyj5X0vPMftW5LgLbmUmw1+xT2Pwzqvx3SY4+oqlLjS+q2o71q5p/2DgZde1S/YDPdiHMzowWClOxZxKrCsxGVN+qfRebkzFOndWy82DlJyvfj0H5fggmOav84NI8ocb6BAmX9tjD+WU57hGfq/zyGfX+Uq1xU+TzkiT8cBrZtqOes6lnS3MAlpOdDQ2Dvb9EG8u2WGyJWPb+Qb03RpT8Z3X2zd5Bqe+xtV2t2zXnYWz+VmOP9b/yS1QazC5qfubAzksV2LrVZj5RaWFdcZwqnyDr2PZciPUrhpWfz/w49Q6FzSk1Pj9bA2vaM/Mbty0fGbPtxfZVGKdsss28eK2IZ/ar9j6ltlQozb3KB1L71FHXiHwGbaFN/yuU1lR1DqV8abYnVPtflh9C+T6qzMy3QajzqdL5m/LXS21beueu+l3FTw/9NYxxY3eUx1d7Rs/zzz8/vvrVr8Y73/nOeMITnhAXX3xxvPrVr47du3fHa17zmpFKOg74h56GYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYSwh1Ei372qV4qWXXhpf+MIX+j/ujIg455xz4tZbb403v/nN8cpXvjL222+/0Yq7h9jHf+h5aJR/8T4cn88zxpCIwRsOpV/Cl5htMG/1K30E687SzadhsF85q5t0CKx3ieFLtXO2Kd4Qrbm5spo82+Ymjbp9UboppfoPy6FuMbFnFftWDcsGQ4npRY1P1uY1jGn4vZqxvZAoMRuodmjDmoNQ80HpNpJiv2RMviqtEkNUDaMp6/MSc8Aw8nuqPOrmaOajboZj2zJbwPZWrBulG/7I1KxuLDJ2k5rb3uymm5oD1dzHbvPWsLpmWLGpKvvt9P4qFrVsu3GzfE7E3HkS+4nNKzVzIhu/inkKHUDGQDMO5iHFisJuZNaw07F+ULeh29yUw2eRMZLlNyqbW40/g3XpknisXw0zYZaphgmSzctq3CNzYYnVVK1RbZhMsU9K7aw+X2hmA8b2XsO+WFpH1RzKoGxdgY2bDezBecDGiGInYu2BY77mxj3rX7U+MR+u7bzG9gI1PiCrq2L+Ls2TylZGZSMsAdtN3WbfX8QnFBOkKvNiMAqVwJgNShjHjexSWyIUoz9DiTk4ouknNT6U7ZXYhEpMZDjGSmxJEWWWHsX0gsi6oo87DhbbNmsS5q3OUZgfjGHF+sJYTBDYV9j+pTaoYYxi86ticG6rajAKjhzKH+ugziDYulxiWB7G/kN/Ma0IzQ6Y7Tqq363WhZJdK5b10hpXw8Sn/DpWJnUGgPFMaahm3UgfA/1IrJ9SAmB7fZU3ppf7c7UfUQxBrC41ezI2JyrfXrVXGxZ6Vqb8/rgZPTfHbJ1q2NdZPZVP3IbNRc3DJV9MpcsY19QZDI5NRGmv0GbuwHlc7U1K5+6MuXMY2f41bV9iSSqx+SkoVjJWZrVO1fg8+Yxaa0p2P6qfr/JTaS+m370uZtUvas5C2vjVbAypeinfcNR2KJ0HI9jcWFPnEruhWodKDITqHU6bsxkEfm9UJkx2DqrGS4mlU32u1ihmc+N+x1NS1VJzDpaNte3eUqIqQa0huAaW+k6xKJbeEyifoaQs0+Y9bgRnL615n5yo+YkCs0PF+qt8TfbOWrFys/Mb1YYlW0cfBvNmamQRg+1fsj/Gjh7B98JqnxIkXs17am5nzH7qnUeb8x5ESZlgVNwbs+syoo3CHGuTtr5oibUdwcZeGwbsYZT2LCWW4Jr1jdnnONSL2vhMNYo7LD015tUZNmPNH9W/qnnPpdhJWXkQzD8orQ3D5SjVq8QqPu79smEkUrp9PrR7f/HJT34y1q5dG694xSsG4n/pl34pXvOa18Q111wTz3jGM9oVc0xYuVdyNQzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDGAkzMftDzvn+tZNu/+Y3vxlPetKTYmJi8Mf0p556av/zvYV9nNHTMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMIylhd1RI92+a9eu2LJly0DsqlWrYtWqVXOevv/+++Oxj33snPjDDjus//newj7+Q89halZFh83iS9IPEeOReC19T8mzJpDaXw3sNlIoNTTTmZ56tkQ7jvKnNRT8TE61jTzGqH2jUCOv3CYNRiHcVv6jDU04aw9FAY59tbfl2ks08hHN2CzJhCgoud1x2DqTZK2Zokelfi/JOpUkJiO45IOSa1cShSlfoaQ3a+aAxBYSp6DsRlH3s/m1Rsq1Td5t5uIa6bp15FmEklH5TqFsWddxyz3nbRpEGxmHUWXnVDyzvxr7ZuO0pg/aSDuotT/HZNt5gcmiIkr1VmNp1PmpZg4orTnKnjINta5hHmxeVvaG5WESN0qypo28aM283EYSbKGwPWZvziFK82KbdVR9ziSlaqRGmFxsRNOuNVLk+4v4RM3ckfmNKl+jJLVwrNTI+bDPsR3ZOl+z/jKJKiUdpSSz2F6mjd/VRioSn6+xqzbrjpKZxfqV+gfbsyRRPSqYhNVwnguRb5v02rSTsgUGNWcj2HhUtlCSfVXlUf56ycerGd+jrhdpn2quUvulBM5VPxLxbI+JfjcC66Gk6RI1e+hsZzWnqjOVNnJrSkJ5oTBsy8pnUTK2j5DPa+w0v1fjX7L0atb70tlFjYxjolT/YeR4wjIoH0/JH2Y85lGSmK+BknNmdlsj0ZbpMd94GFMizNDm7KxmzJXWhBp7y2fUfFGqd34+7r3y6qiXe2bxNfbE7EVJjI4DzB/Cfv4R+Txi0MbbzB0l1NSvdFaLKI23mjNMLFOOSay/aqMSVF3ZHpNJwQ4/iyhJmKpn2RhW/lONn5NQZWbjpPSOZRw4MGbLpM4g2Dqi2lqth+x7NfKmae/qe+N4Z8TqguXZIOJV2qVzmlI51Nm+kmhOlPpsGJl2TdmYn1bTD6W01bnRqGd4o9qkKlOWH+Xa1b6C7ZvVerVQErG5LiNKvsqofafGIxuHamyW/GCFGvloBiXvW5rrVTyzLTUG8Vm2Tip/9m4Rn+XHPBCqjZj9YluMY81R0s6sTKo92ZhSfaLmi7S50lmAildlb/OOZTHBzo4RWMaTIHyTeKYNlJ84arpszlZrGZtTSmNpT9Bmjivlp9b4UnupeaZ09hRRXg9LvlnNfD6OcdQGbdpu3GfFhlHGUUcdFRF3RcSOiNhvnid/FDfdtCsOOeSQgdgLL7wwLrroIvqNFStWyNTm+2yhsY//0NMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwjKWC888/PyLeEBH/FhFPFU/9MCJujYsvviIOPnjwEgdj84yIOPzwwylr5wMPzP6gO5k99waW1A89t27dGr//+78f//iP/xgPPPBAnHTSSfHWt741XvWqV42Y4vYYbIK2LIkqzQRj92x7s7j0PcUakt+rYddTN9oYM5hinmJth/nV3AJnjIDq9sj+5Bn8Xk29E+pmcRt2xxomAmyDvOUxJT5Xtz2yrNiG2EaYBt4EG/X2BBt/i3HDeRQo+8XysnZtw0RXwwLYBiUbaZsuK38NIwi7eVVzY7w0T6ryd8kzNcwUpfZo0z/KxtQtNNa27IZwRLkuqpwlFg7VZ+iMYN5ZPiy7urVaYmdh42HcLCUJdYOfzZuIPZ3n5ku7BMYcXJOeYmYtseOpuTf7XDEIYRshsy7eKE3guFHsAYx5VK3hjLlvHYkb/l7ppqpCDWtvQtkI849qWADUeGD53U0+j2jaBu1bPctuzO7NG85Hxmy92/SXYtKYJp8j8Flc79mYVoyKpTKpOUL50vnMsSQuQtvFOIFjDPNm47sN22gE7wusvxp7bdjuSuxEeCP+uyKNUpnVXMX6B7+vWKSYv6L2Mep7OB5Kcw3zY8a9Lk/0/tX6BRGcQVPV9ygIqz4vMeSW5jrFklfyL0sMfhFl9oSa2/dtWPUZMA/FmqKeLzEiINQeM3Fi4XNEDZNNG0UVBVYXlQa2V9ZV+T7j2PfVqK6ME+vmyafEWKWeRag9DBtjbfyotkzz7AxMobQ/VP1fmgPUvF/ae9a0LduP1qgGtEkX64RzdCm/caANY5oCYwCq2XuX5os2LENZj3GvyY/E/IwU2F/M3lV9S2eSNWokiDaqBOx7iolbnc1kfNuxos6BEzWMVCUmo9I5gyozsz2EYsNGlNq8pr3yezVMTTU2wj5HtDnvqzlzKOXH2mAxzrjnY8yP0GckDGqPWWLNVOcVe6oYVWN7rJyKSb+mPCXW4pLSVBfi2pwH1qy/Jf+nxg7ZeyBE6by3Rv1l1H5vwwSqxidba1U/lPIrsfUv1Bn2qGoUbXwqlQdjUlXpog87jr0N66c274wQbfwExOkQRnUytUawNanNOWGNmmRpr1CzZ2e/KVBs3ursnn2OZ8qjKgiU9q5MrSyiPEfU2P1CKVg9ISLWBD9bVGOz9H4cP8d0R2WVVGXKsFo71XgsqVuUfDnEONQoEKX3VYpBelSfSZ1LZh+qd17jgBrf7Iygpj2zv0sM9ipv5Y+ptYspDdWsiQu9Lhv7MiYmJuIf//Gv4md/9v8TET8ec33wmYj454g4K4477rjqdJ/ylKfERz7ykZieno6JicYmbrzxxoiIOOWUU/a06CNj5V7LeQScf/758fd///dx4YUXxuc+97l42tOeFq9+9avj4osv3ttFMwzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAxjEfAzP/MzEbE2Ir5KPr05Iu6Jycl/apXmy172sti6dWt8/OMfH4j/+7//+zjmmGPizDPPHLW4e4wlw+h56aWXxhe+8IW4+OKL49WvfnVERJxzzjlx6623xpvf/OZ45StfGfvtN9/tZsMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwljpWrlwZn/vc38Z5550fs+zfqaaQbJ7PikMOOaRVmuedd1684AUviNe//vWxZcuW2LhxY3zkIx+Jyy67LD70oQ/t1d8nLpkfen7yk5+MtWvXxite8YqB+F/6pV+K17zmNXHNNdfEM57xjJapTsfokqCIthLepTQQSWOMVMpKVgOpv5kkhJKIVZTTTIJd0XaXpOtK1OD4fFsJSVb+NrKKbaV6M43DxOdqHJVk0ZT0EXtGUamX5A1qpBBKEgNtpGzaSA/uKVT6t0KYtXGNLExJ2gFlC0aV4SjZSEnGJYLLzdXIIbexgdI8qaQLVLuUJH5KbVgjI9WmH5RUGPYxk5OpacMsh7IxlB5AsHWgjVSAelbJRewtpESsknRk9WgjeaHkxNrIXSmU7LNGRgrzzjao6WesV44hZXsIJn+BqJG62VOJT+UzKVtmUP1aksrDccZk5SMiOhDO9kI5LFU2tGW2ZioJUCatoSSjS3PmYq6/w9i/96/N2ESpFFZnJZGkJFSyHdS8iWkoCSRWHkTJFpS/pKSOSvKtJah5Tcn/ZZtju6i8MY02MsMlO1R7FzX/ZPlw/lLrAJtHlN1gnUpr7aj+CpanRhKJ5a3mnGy7FYUytEXachs/qo1/oiTH2Dhsu44y2XiE8o+3k88Rbc4L2siWqflEfa/t/nW+Min/qXRegGVW+y3WzmqNH9X21BzA9n017Taq9CQi66XOJJi0ZsTs2rQQa/ZUzC8Ty3AihG8lnyupXNZPqh2w75gtKz9R9UFJGlnNvQxKqqwkMarqp8pU6u8OhEvt3AY1Z3Wl/QTWryQNq/a/T4fwtSTtkqz4fGBt1OaMoEY+mUneTQz9HTdUHXBeaSPzh+ltkU/NRRt/UNkvptFm/8vOZrCeNfbB9lptbDOikZZEv1TNM2z8qnKqPUSWSY3NkmQulgHbUNlvtkeNL1Xyj2skQEed10r1rtlvJEY9RxwnWFvVlGsc51dtJNhZejXlZGNPnb0i1L6S5VOzXpTOw1QapTM+RGm81bRzae+h9s2ZdttzcvaMmrdV2UY91yi9KyutD6p+TMp2HNgesz8YqCkDwzjmG7YPUmsu82HHhcxHSZijPTF57Br/g80BN0BcmzFdI8GOOKn3F/dEqq5sblDziVoP2XmAOosuvcvEeUhJXpdQU37W/jU2V1p32LhV741GxQ9C75VrzoNZ/N0QV/POP8eQkiJX73HZmA7yeU288ilL692o72aVP/sj8UyWo3ReHDH4fjr7Qp0tqPmH+ePjeNdS8lsjyvtIdcYx6u+bMo2a96xtflOg1ppRzzMNox4vfOELI+LIiLgqIs7pxX4nIqbioYc+NVKan/jEJ+Jtb3tbXHDBBfHAAw/ESSedFB/5yEfiVa961VjKPCqWjHT7N7/5zXjSk54UExODk9ypp57a/9wwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwjOWPFStWxJe+9OGY/aHnQxGxOyKuiL/6qz+NNWvWjJTm2rVr4z3veU/ceeedsWPHjvjGN76x13/kGbGEGD3vv//+eOxjHzsn/rDDDut/rrBjx47YsWNH//9btuCv9BVTwTiY7xDsdoq61cAYTdrcsokYvEnEUMNgVrqlWGJCUWhzS02ly26n1bCDsBsa6lazqnfplhrmvb+Iz7YtsX4Nl690K6PU9upmbBtmW+wTxfTCGLhOJHH10Ha8LmZvXdUwuY1604bVR7HVtBnf+OxJEM7bjTW3XmrsM9GWoWAUqHGMtlCaL9RNNzaeGMPMfOmlDai5GG/cjeNGLesftDG07xLjTM0Ns1LbqvWM3dhaGAaD+dfkCF2fDI+6Jtc8OyoTN7bVqDcdS+wT6uYt5pd2ptbA0o17BK4Xo84Xqo0yrG7hqjZiN63VOK1hf2P5IboiPtGB8N0izPLAOmFfYl9l+dX60ubmND6Lt1pr5k8Nbct3RHvmMNZmEXxMKwYPNr7VTd82t1yRbRTnpzZMUDV5Z1mVH9nGDhlDcMTgGMu61LDqlFhT2toh+7yGzSChfIqST1Sak4afacPY0mZbrRgbcT1keat2ZutjPbQtJ9M2KwtbnyM4w0PNOFbMECU/sbRfU+x6an9QYsSvYRVM1LCDsDaqQbLgXTvvU3OhmPcTbRjzahilWBu0Za8pMVXvCeNfgrFr17DtltilNkIcrrmKxeGeiHh43pLOh/ltuWY8ltiGa9jQWZsou1dzSmnOHcc+dtTzqxL7sBoTpTlTfQ/tlK0dapyPW6Wg5GsqtZsSY5Saw1iZ2yodJGrW0Q3kmZr8xn+mou14OuaqUiHGwfRcQht2H4Qaj8wHqpnH2TmGYmcvqbTUsJ+qMjGGzTbqJIoBrOS71LAdM1uoaU9Enj/g95QfgXUpsUCPg6EPUTpHUederN9q3gnUoXzuhSitgW3WyBqUfIIan4HZhTonV3bGVI9wTKAfVWLgRLR9h5ZQY1PVi6GkhDEqM57COHx39UyWqfTeMKLMFFjD8sb27KP6MOz8ZTQfW9vy6pg992qrwlP6nO291RkRm29r1uo2rJM157MsPXwWWTzbqGmo9BI4R2Aeag6bKHyOwDZnLKSINuy2Nf3D3tGgjdV8L5/B77VhWywxVkYMjsXS2W3J7tWeYXzvprQtHxpz3wuUzgTUeTpb17AOap4usb23YfNWZxelcc/Oi2ug5og2c2DNXM/sSX2vVP6SeglCrUmls7WI0d9l5jM178jb2AjWG8t8au/v7RVptFEpKJ3XjluVyjAG8axnPStmx/2VMTsH7orXvva1e7dQC4Alw+gZMfsL3FE+e8c73hGHHHJI/9/xxx+/EMUzDGMBYTs2jOUB27JhLA/Ylg1jecC2bBjLA7Zlw1j6sB0bxvKAbdkwlgdsy4axPGBbNgzD2Pdw3XX/EBFfjYgr4oMf/PM44IAD9naRxo4lw+h5+OGHU9bOBx6Y/dV4Mnsy/O7v/m785m/+Zv//Dz74YJxwwgkRsSMGf/2ON7vwh6MT4hn2ufr1ehtGT1amtrfOMo2a72Fd8fn9SVzbNPYUNemuIJ+rG3QPk3h1A0Llx9pFjaNdEGbmhuVU+am0R4Eac21ujtbYxi4St33g78zMTCGfQWg7ZjZS065twMaY+nH5qPltI2koNoBR81DtsjDMjYMojZtp8SyCjSfVFpgH2mGJ0RMxaru0GX/qNiWz+xo7Lc2ZKg1W5lL9Z29Bjs+W81ZlaSyU1uTFwqg37tusl+x27PD3SnZRs4awdlZMTW1QaiPVFiqe1aWt/5FlUuuzalvGLsDmbfU9Vc6S3Su0GX+lPBbKlhHMd6rZhmQ/PULihtMrYVRfdVQ/bNQ1XK1fo9ZVYZxryzigysHybrNPq8kDMeo+jI3nmv4r7UVr8h60r/H72POVbxjMxtuO41HXDvZM2/0B27O3XasSNXMHayOc71SZt5G4GpTKNM59p0qvzRkIPlPT76OWv2T3bfxnhPIT5pu3RluTI0Y990KU7FqN0zZtorBQ6wy2NeZRc+7DUBorqv6ltq35Xpu98GKv22p8MV+ozTrQdg8yan7sTLDN+ovPZ9kXyr8edQ86Dozbvtm4aZsH22OoNJhiRdvxUbJDNbe0WXNLdalpTzY2xvFeodQWKp9Rz09HHe9qDKj92fTQX/zeYu6VMd+Ipv7jntPH4Q+W7LfNOqvyU37UQqHG52efI0pnAKquo471cfvuCMboruyJPVNzXt+GSXBPz13HbcusnqOeySNKZ2elvfWoa3XNO/LSvN/WJ25TPtZ2ao4o2VmbfTrm1xajvtMoMcPWfK8055TO/BVzJ6aBY5F9r80cV1qfMY2FPveK4GO6zZho+3uDUfc+86U1nN5CnQWN+r22c0GbM9ISxvH+pc35yqjvMmv85zbtWPK3RvX/2o7bwb4c5ezLMGrxEz/xEzGrpntvvPrVr97bxVkQLJkfej7lKU+Jj3zkIzE9PR0TE02xb7zxxoiIOOWUU+R3V61aFatWrer/v6Hl/rMFKathGGVMTU3FIYccUv28tuM/HHPJDMNog/HZ8p+OuWSGYbTB+GzZ/rVh7E3YxzaMpY+2dhxhH9swHo2wf20YywO2ZcNYHhifLb9jzCUzDKMNxmfLbxtzyQzDaINRzr4Mow1mZm7c20VYUKyYWSI/l/7c5z4XL3rRi+KSSy6JV77ylf348847L2644Yb44Q9/GPvtt19VWrt3747vfe97cfLJJ8dtt90WBx988EIVe69hy5Ytcfzxx7t+SxTLuX4zMzMxNTUVxxxzTKxcuXLkdHbv3h133HFHzMzMxAknnLAs2ypieY+FCNdvKcO23A7LeSxEuH5LGeO05eXuX0cs77EQ4fotZdiW67Gcx0FiuddxudZvXHYcYVteDnD9li68V26H5TwWIly/pQzbcjss57EQ4fotZdiW22E5j4UI128pw+de7bCcx0KE67eUMc6zL8PYl7FkGD3PO++8eMELXhCvf/3rY8uWLbFx48b4yEc+Epdddll86EMfqv6RZ0TEypUr49hjj42IiIMPPnjZTZAI129pY7nWbxw3NFauXBnHHXdc//bVcm2rhOu3tLFc62dbbg/Xb2ljudZvXLa8r/jXEcu/jq7f0oRtuR2We/0iln8dl2P9xsVmYFtePnD9lia8V24P129pY7nWz7bcHq7f0sZyrZ9tuT1cv6WN5Vo/n3u1x3Kvo+u3NGEmT8PYcyyZH3pGRHziE5+It73tbXHBBRfEAw88ECeddFJ85CMfiVe96lV7u2iGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRiGYRhjx5L6oefatWvjPe95T7znPe/Z20UxDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMNYcKzc2wXYW1i1alVceOGFsWrVqr1dlAWB67e0sdzrN04s97Zy/ZY2lnv9xonl3lau39LGcq/fuLAvtNNyr6PrZ0Qs/3Za7vWLWP51XO71GxeWezu5fksby71+48RybyvXb2ljuddvnFjubeX6LW0s9/qNE8u9rVy/pY3lXr9xYV9op+VeR9fPMIx9HStmZmZm9nYhDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwjLnYZxk9DcMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwHu3wDz0NwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAepdjnfui5devW+I3f+I045phj4sADD4zTTjstLrnkkr1drNa44oor4rWvfW2cdNJJcdBBB8Wxxx4bP/3TPx1f//rX5zx73XXXxfOf//xYu3ZtrF+/Ps4///z4wQ9+sBdKPTre//73x4oVK2Lt2rVzPlvK9bvyyivjRS96URx66KGxevXqePzjHx9/+Id/OPDMUq7fQsK2vDTHgm15adZvoWA7XrrjYDnasu14dNiWl+5YsC0vrbotNGzLS3cs2JaXVt0WGrblpTsWbMtLq24LDdvy0hwLy9GOI2zLe4LlYMv7mh1H2JaXav0WCsvBjiNsy8NYqnW0HY8O2/LSHQu25aVVN8MwFgEz+xhe8IIXzKxfv37mf/yP/zFzxRVXzLzuda+biYiZD3/4w3u7aK3w8pe/fOacc86Zed/73jezadOmmY9+9KMzZ5111szExMTMP//zP/ef+853vjOzbt26mWc/+9kzn/3sZ2c+/vGPzzz5yU+eOeaYY2buueeevViDetx+++0zhxxyyMwxxxwzc9BBBw18tpTr9+EPf3hm5cqVM6961atm/umf/mnmiiuumPmbv/mbmbe//e39Z5Zy/RYatuWlNxZsy0uzfgsJ2/HSHAfL0ZZtx3sG2/LSHAu25aVVt8WAbXlpjgXb8tKq22LAtrw0x4JteWnVbTFgW156Y2E52vHMjG15T7EcbHlfsuOZGdvyUq3fQmI52PHMjG0ZsVTraDveM9iWl+ZYsC0vrboZhrE42Kd+6PnZz352JiJmLr744oH4F7zgBTPHHHPMzPT09F4qWXvcfffdc+KmpqZmjjrqqJnnPe95/bhXvOIVM0ccccTMgw8+2I/rdrsz+++//8xb3vKWRSnrnuLFL37xzEte8pKZX/iFX5izgC/V+t1+++0zBx100MzrX//6eZ9bqvVbaNiWZ7HUxoJteenVbyFhO57FUhwHy82Wbcd7BtvyLJbiWLAtL526LQZsy7NYimPBtrx06rYYsC3PYimOBdvy0qnbYsC2PIulNhaWmx3PzNiW9xTLxZb3JTuembEtL8X6LSSWix3PzNiWEUuxjrbjPYNteRZLcSzYlpdO3QzDWDzsUz/0fN3rXjezdu3amUceeWQg/uKLL56JiJkvf/nLe6lk48M555wz84QnPGFmZmZm5pFHHplZvXr1zC//8i/Pee4nf/InZx7/+McvdvFa4/9t725CrCzbAI5fI8OMTh+kgoTURBREZEMk1K4CES0q2lQLoTZFH5q4Ccu+xkxyUW2iTe3sY6KoFoEUWUIWkRMWTWSLMTSJyNImc3QS6X4Xw+vjpI6Op3POc9/+fjCb55zFfR2vP7O55/jqq6+mc845J+3ateuYX+A5z9ff358iIu3YseOE78l5vmbTciWXXdBynvM1k44rOe1BiS3ruDFaruS0C1rOa7ZW0HIlp13Qcl6ztYKWKzntgpbzmq0VtFzJZRdK7DglLTeq9JZL6zglLec6XzOV3nFKWj5anWfUcWO0XMlpF7Sc12xA60xr3n8KXz/fffddXH755dHZ2TnheV9f35HXc/bnn3/G1q1b44orroiIiO3bt8fBgwePzHe0vr6+GB4ejrGxsVYf85Tt3r07VqxYEevWrYsLLrjgmNdznu/TTz+NWbNmxQ8//BBXXXVVdHZ2xpw5c+L++++Pffv2RUTe8zWblis57IKW852vmXRcyWUPSm1Zx43RciWXXdByfrO1gpYrueyClvObrRW0XMllF7Sc32ytoOVKDrtQascRWm5UyS2X1nGElnOer5lK7jhCy/9W5xl13BgtV3LZBS3nNxvQOmfURc89e/bErFmzjnn+/2d79uxp9ZH+U0uXLo3R0dF47LHHIqKa50Qzp5Tijz/+aOkZp+LBBx+Myy67LB544IHjvp7zfD///HMcOHAgbr/99rjzzjtj48aN8fDDD8f69evjpptuipRS1vM1m5YrOeyClvOdr5l0XMllD0ptWceN0XIll13Qcn6ztYKWK7nsgpbzm60VtFzJZRe0nN9sraDlSg67UGrHEVpuVMktl9ZxhJZznq+ZSu44Qsv/VucZddwYLVdy2QUt5zcb0DqdJ39LWTo6Ok7rtbp74okn4vXXX48XX3wx5s+fP+G1HGd+55134v3334+vv/76pGfMcb5//vknxsbG4qmnnopHHnkkIiJuuOGG6OrqihUrVsTHH38cPT09EZHnfK1Q6uei5am/1k5abkypn0lpHUeU3bKOG1fq56LlvGbUcuNK/Vy0nNeMWm5cqZ+LlvOaUcuNK/VzKa3lkjuO0PJ/ocTPpbSOI7Ss5cmV+ploOa8Zddy4Uj8XLec1o5aB/8IZ9Y2es2fPPu5fZOzduzcijn8rPgerV6+OZ555JtauXRvLli078nz27NkRcfy/Qtm7d290dHTEeeed16pjnrL9+/fH0qVL46GHHoq5c+fGyMhIjIyMxKFDhyIiYmRkJEZHR7OdL6L6t1m0aNGE5zfeeGNERGzdujXr+ZpNy5U674KWtTwZHVfqvgelt6zjxmi5Uvdd0LKWJ6PlSt13QctanoyWK3XfBS1reTJartR5F0rvOELLjSqx5dI6jtByhJYnU2LHEVqOyG9GHTdGy5W674KWtQyc3Bl10fPKK6+Mbdu2xeHDhyc8HxoaioiIefPmteNYDVm9enX09/dHf39/rFq1asJrl1xyScyYMePIfEcbGhqKSy+9NKZPn96qo56y33//PX799dd4/vnnY+bMmUd+BgYGYnR0NGbOnBlLlizJdr6IiL6+vuM+TylFRMS0adOynq/ZtFyp8y5oWcuT0XGl7ntQess6boyWK3XfBS1reTJartR9F7Ss5clouVL3XdCyliej5Uqdd6H0jiO03KjSWi6x4wgtR2h5MqV1HKHlXGfUcWO0XKn7LmhZy8ApSGeQDRs2pIhIb7755oTnixcvTnPnzk2HDx9u08lOz9NPP50iIj3++OMnfM8dd9yR5syZk/bt23fk2c6dO1NXV1dauXJlK445ZQcPHkybNm065mfRokVp+vTpadOmTWloaCillOd8KaX04YcfpohIa9eunfD8hRdeSBGRNm/enFLKd75m0/K4uu+ClrU8GR2Py2EPSm9Zx43R8rgcdkHLWp6MlsflsAta1vJktDwuh13QspYno+Vxdd+F0jtOScuNKqnlUjtOSctanlxJHaek5Zxb1nFjtDwuh13QspaBkzujLnqmlNLChQvTzJkz08svv5w++eSTdO+996aISK+99lq7jzYlzz33XIqItHjx4vTFF18c8/N/27ZtS2effXa67rrr0oYNG9K7776b5s2bl+bOnZt2797dxgmm7u67705nnXXWhGc5z3fLLbek7u7utGbNmvTRRx+lZ599Nk2fPj3dfPPNR96T83zNpuV8d0HLec3XTDrOew9KalnHjdFy3rug5TxmawUt570LWs5jtlbQct67oOU8ZmsFLee7CyV1nJKWG1VCy2dixylpObf5mqmEjlPS8tFynVHHjdFy3rug5TxmA1rjjLvo+ddff6Xly5en888/P3V1daW+vr40MDDQ7mNN2fXXX58i4oQ/R/vqq6/SggULUk9PTzr33HPTbbfdloaHh9t08tN3vF/gKeU734EDB9LKlSvThRdemDo7O1Nvb2969NFH09jY2IT35Tpfs2k5313Qcl7zNZOO896DklrWcWO0nPcuaDmP2VpBy3nvgpbzmK0VtJz3Lmg5j9laQcv57kJJHaek5UaV0PKZ2HFKWs5tvmYqoeOUtPxvOc6o48ZoOe9d0HIeswGt0ZFSSgEAAAAAAAAAAABA7Uxr9wEAAAAAAAAAAAAAOD4XPQEAAAAAAAAAAABqykVPAAAAAAAAAAAAgJpy0RMAAAAAAAAAAACgplz0BAAAAAAAAAAAAKgpFz0BAAAAAAAAAAAAaspFTwAAAAAAAAAAAICactETAAAAAAAAAAAAoKZc9AQAAAAAAAAAAACoKRc9AQAAAAAAAAAAAGrKRU8AAAAAAAAAAACAmnLRk9rbvHlzdHR0xMDAwDGvrV+/Pjo6OmJwcLANJwOmQstQBi1DGbQMZdAylEHLkD8dQxm0DGXQMpRBywDH6kgppXYfAk7m6quvjp6envjss88mPL/mmmsiImLLli3tOBYwRVqGMmgZyqBlKIOWoQxahvzpGMqgZSiDlqEMWgaYyDd6koXly5fH559/Ht98882RZ4ODgzE4OBjLli1r38GAKdEylEHLUAYtQxm0DGXQMuRPx1AGLUMZtAxl0DLARL7Rkyz8/fff0dvbG7feemu88sorERFx1113xQcffBC7du2K7u7uNp8QOBVahjJoGcqgZSiDlqEMWob86RjKoGUog5ahDFoGmMg3epKF7u7uuO++++KNN96IkZGR+O233+Ktt96Ke+65xy9vyIiWoQxahjJoGcqgZSiDliF/OoYyaBnKoGUog5YBJvKNnmTjl19+iYsuuijWrVsXY2Nj8eSTT8aPP/4Yvb297T4aMAVahjJoGcqgZSiDlqEMWob86RjKoGUog5ahDFoGqLjoSVaWLFkSX375ZRw6dCjmz58f7733XruPBJwGLUMZtAxl0DKUQctQBi1D/nQMZdAylEHLUAYtA4xz0ZOsbNmyJa699tqIiNi4cWMsWLCgzScCToeWoQxahjJoGcqgZSiDliF/OoYyaBnKoGUog5YBxrnoSXYuvvjimDFjRnz//fftPgrQAC1DGbQMZdAylEHLUAYtQ/50DGXQMpRBy1AGLQNEdLb7ADAV3377bezYsSNeeumldh8FaICWoQxahjJoGcqgZSiDliF/OoYyaBnKoGUog5YBxvlGT7Kwffv22LlzZ6xatSp++umnGB4ejp6ennYfC5giLUMZtAxl0DKUQctQBi1D/nQMZdAylEHLUAYtA0w0rd0HgFOxZs2aWLhwYezfvz/efvttv7whU1qGMmgZyqBlKIOWoQxahvzpGMqgZSiDlqEMWgaYyDd6AgAAAAAAAAAAANSUb/QEAAAAAAAAAAAAqCkXPQEAAAAAAAAAAABqykVPAAAAAAAAAAAAgJpy0RMAAAAAAAAAAACgplz0BAAAAAAAAAAAAKgpFz0BAAAAAAAAAAAAaspFTwAAAAAAAAAAAICactETAAAAAAAAAAAAoKZc9AQAAAAAAAAAAACoqf8BsQOf4vkYmAAAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 3100x300 with 11 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dataSet_cropOD.plot.pcolormesh(cmap='jet', vmin=0, vmax=5, col=scanAxis[0])"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"data = dataSet_cropOD#.sel(runs = 0)\n",
"\n",
"fitModel = DensityProfileBEC2dModel()\n",
"fitAnalyser_1 = FitAnalyser(fitModel, fitDim=2)\n",
"\n",
"params = fitAnalyser_1.guess(data, dask=\"parallelized\", guess_kwargs=dict(pureBECThreshold=1.2))\n",
"\n",
"fitResult_1 = fitAnalyser_1.fit(data, params).load()\n",
"\n",
"# fitCurve = fitAnalyser.eval(fitResult, x=np.range(150), y=np.range(150), dask=\"parallelized\").load()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
"<defs>\n",
"<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
"<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"</symbol>\n",
"<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
"<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"</symbol>\n",
"</defs>\n",
"</svg>\n",
"<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
" *\n",
" */\n",
"\n",
":root {\n",
" --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
" --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
" --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
" --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
" --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
" --xr-background-color: var(--jp-layout-color0, white);\n",
" --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
" --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
"}\n",
"\n",
"html[theme=dark],\n",
"body[data-theme=dark],\n",
"body.vscode-dark {\n",
" --xr-font-color0: rgba(255, 255, 255, 1);\n",
" --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
" --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
" --xr-border-color: #1F1F1F;\n",
" --xr-disabled-color: #515151;\n",
" --xr-background-color: #111111;\n",
" --xr-background-color-row-even: #111111;\n",
" --xr-background-color-row-odd: #313131;\n",
"}\n",
"\n",
".xr-wrap {\n",
" display: block !important;\n",
" min-width: 300px;\n",
" max-width: 700px;\n",
"}\n",
"\n",
".xr-text-repr-fallback {\n",
" /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
" display: none;\n",
"}\n",
"\n",
".xr-header {\n",
" padding-top: 6px;\n",
" padding-bottom: 6px;\n",
" margin-bottom: 4px;\n",
" border-bottom: solid 1px var(--xr-border-color);\n",
"}\n",
"\n",
".xr-header > div,\n",
".xr-header > ul {\n",
" display: inline;\n",
" margin-top: 0;\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-obj-type,\n",
".xr-array-name {\n",
" margin-left: 2px;\n",
" margin-right: 10px;\n",
"}\n",
"\n",
".xr-obj-type {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-sections {\n",
" padding-left: 0 !important;\n",
" display: grid;\n",
" grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
"}\n",
"\n",
".xr-section-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-section-item input {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-item input + label {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label {\n",
" cursor: pointer;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label:hover {\n",
" color: var(--xr-font-color0);\n",
"}\n",
"\n",
".xr-section-summary {\n",
" grid-column: 1;\n",
" color: var(--xr-font-color2);\n",
" font-weight: 500;\n",
"}\n",
"\n",
".xr-section-summary > span {\n",
" display: inline-block;\n",
" padding-left: 0.5em;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-summary-in + label:before {\n",
" display: inline-block;\n",
" content: 'â–º';\n",
" font-size: 11px;\n",
" width: 15px;\n",
" text-align: center;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label:before {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label:before {\n",
" content: 'â–¼';\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label > span {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-summary,\n",
".xr-section-inline-details {\n",
" padding-top: 4px;\n",
" padding-bottom: 4px;\n",
"}\n",
"\n",
".xr-section-inline-details {\n",
" grid-column: 2 / -1;\n",
"}\n",
"\n",
".xr-section-details {\n",
" display: none;\n",
" grid-column: 1 / -1;\n",
" margin-bottom: 5px;\n",
"}\n",
"\n",
".xr-section-summary-in:checked ~ .xr-section-details {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-array-wrap {\n",
" grid-column: 1 / -1;\n",
" display: grid;\n",
" grid-template-columns: 20px auto;\n",
"}\n",
"\n",
".xr-array-wrap > label {\n",
" grid-column: 1;\n",
" vertical-align: top;\n",
"}\n",
"\n",
".xr-preview {\n",
" color: var(--xr-font-color3);\n",
"}\n",
"\n",
".xr-array-preview,\n",
".xr-array-data {\n",
" padding: 0 5px !important;\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-array-data,\n",
".xr-array-in:checked ~ .xr-array-preview {\n",
" display: none;\n",
"}\n",
"\n",
".xr-array-in:checked ~ .xr-array-data,\n",
".xr-array-preview {\n",
" display: inline-block;\n",
"}\n",
"\n",
".xr-dim-list {\n",
" display: inline-block !important;\n",
" list-style: none;\n",
" padding: 0 !important;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list li {\n",
" display: inline-block;\n",
" padding: 0;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list:before {\n",
" content: '(';\n",
"}\n",
"\n",
".xr-dim-list:after {\n",
" content: ')';\n",
"}\n",
"\n",
".xr-dim-list li:not(:last-child):after {\n",
" content: ',';\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-has-index {\n",
" font-weight: bold;\n",
"}\n",
"\n",
".xr-var-list,\n",
".xr-var-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-var-item > div,\n",
".xr-var-item label,\n",
".xr-var-item > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-even);\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-var-item > .xr-var-name:hover span {\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-var-list > li:nth-child(odd) > div,\n",
".xr-var-list > li:nth-child(odd) > label,\n",
".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-odd);\n",
"}\n",
"\n",
".xr-var-name {\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-var-dims {\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-var-dtype {\n",
" grid-column: 3;\n",
" text-align: right;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-preview {\n",
" grid-column: 4;\n",
"}\n",
"\n",
".xr-index-preview {\n",
" grid-column: 2 / 5;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-name,\n",
".xr-var-dims,\n",
".xr-var-dtype,\n",
".xr-preview,\n",
".xr-attrs dt {\n",
" white-space: nowrap;\n",
" overflow: hidden;\n",
" text-overflow: ellipsis;\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-var-name:hover,\n",
".xr-var-dims:hover,\n",
".xr-var-dtype:hover,\n",
".xr-attrs dt:hover {\n",
" overflow: visible;\n",
" width: auto;\n",
" z-index: 1;\n",
"}\n",
"\n",
".xr-var-attrs,\n",
".xr-var-data,\n",
".xr-index-data {\n",
" display: none;\n",
" background-color: var(--xr-background-color) !important;\n",
" padding-bottom: 5px !important;\n",
"}\n",
"\n",
".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
".xr-var-data-in:checked ~ .xr-var-data,\n",
".xr-index-data-in:checked ~ .xr-index-data {\n",
" display: block;\n",
"}\n",
"\n",
".xr-var-data > table {\n",
" float: right;\n",
"}\n",
"\n",
".xr-var-name span,\n",
".xr-var-data,\n",
".xr-index-name div,\n",
".xr-index-data,\n",
".xr-attrs {\n",
" padding-left: 25px !important;\n",
"}\n",
"\n",
".xr-attrs,\n",
".xr-var-attrs,\n",
".xr-var-data,\n",
".xr-index-data {\n",
" grid-column: 1 / -1;\n",
"}\n",
"\n",
"dl.xr-attrs {\n",
" padding: 0;\n",
" margin: 0;\n",
" display: grid;\n",
" grid-template-columns: 125px auto;\n",
"}\n",
"\n",
".xr-attrs dt,\n",
".xr-attrs dd {\n",
" padding: 0;\n",
" margin: 0;\n",
" float: left;\n",
" padding-right: 10px;\n",
" width: auto;\n",
"}\n",
"\n",
".xr-attrs dt {\n",
" font-weight: normal;\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-attrs dt:hover span {\n",
" display: inline-block;\n",
" background: var(--xr-background-color);\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-attrs dd {\n",
" grid-column: 2;\n",
" white-space: pre-wrap;\n",
" word-break: break-all;\n",
"}\n",
"\n",
".xr-icon-database,\n",
".xr-icon-file-text2,\n",
".xr-no-icon {\n",
" display: inline-block;\n",
" vertical-align: middle;\n",
" width: 1em;\n",
" height: 1.5em !important;\n",
" stroke-width: 0;\n",
" stroke: currentColor;\n",
" fill: currentColor;\n",
"}\n",
"</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
"Dimensions: (runs: 10)\n",
"Coordinates:\n",
" * runs (runs) float64 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0\n",
"Data variables: (12/13)\n",
" BEC_amplitude (runs) object 622.325100923668+/-nan ... 622.4907683...\n",
" thermal_amplitude (runs) object 574.323330298593+/-nan ... 562.0410431...\n",
" BEC_centerx (runs) object 40.697673212791095+/-nan ... 41.846469...\n",
" BEC_centery (runs) object 38.68619529315486+/-nan ... 40.1657973...\n",
" thermal_centerx (runs) object 41.672856011589964+/-nan ... 42.186994...\n",
" thermal_centery (runs) object 40.50023901378942+/-nan ... 41.8611854...\n",
" ... ...\n",
" BEC_sigmay (runs) object 9.925094420566738+/-nan ... 9.27924633...\n",
" thermal_sigmax (runs) object 15.219058592618353+/-nan ... 14.193823...\n",
" thermal_sigmay (runs) object 18.262870311142024+/-nan ... 17.032587...\n",
" deltax (runs) object 18.54999801825887+/-nan ... 15.3119583...\n",
" thermalAspectRatio (runs) object 1.2+/-nan 1.2+/-nan ... 1.2+/-nan\n",
" condensate_fraction (runs) object 0.5200567557574306+/-nan ... 0.5255162...\n",
"Attributes:\n",
" IMAGE_SUBCLASS: IMAGE_GRAYSCALE\n",
" IMAGE_VERSION: 1.2\n",
" IMAGE_WHITE_IS_ZERO: 0\n",
" x_start: 840\n",
" x_end: 920\n",
" y_end: 1020\n",
" y_start: 940\n",
" x_center: 880\n",
" y_center: 980\n",
" x_span: 80\n",
" y_span: 80</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-60c42fd0-1a85-4919-aa1c-bfb084af74a7' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-60c42fd0-1a85-4919-aa1c-bfb084af74a7' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>runs</span>: 10</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-dfa28b62-a15c-4172-838f-098c85289f06' class='xr-section-summary-in' type='checkbox' checked><label for='section-dfa28b62-a15c-4172-838f-098c85289f06' class='xr-section-summary' >Coordinates: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>runs</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.0 1.0 2.0 3.0 ... 6.0 7.0 8.0 9.0</div><input id='attrs-e6821b36-8258-4c1c-9141-12274eebcbe3' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-e6821b36-8258-4c1c-9141-12274eebcbe3' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-42cb0531-1f9a-4356-b7af-d199d488e654' class='xr-var-data-in' type='checkbox'><label for='data-42cb0531-1f9a-4356-b7af-d199d488e654' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-0123b3c4-de0d-45ad-98f2-f83d620f53de' class='xr-section-summary-in' type='checkbox' checked><label for='section-0123b3c4-de0d-45ad-98f2-f83d620f53de' class='xr-section-summary' >Data variables: <span>(13)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>BEC_amplitude</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>622.325100923668+/-nan ... 622.4...</div><input id='attrs-8c78ceea-4cd7-4c4d-ba36-89f2863c3371' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-8c78ceea-4cd7-4c4d-ba36-89f2863c3371' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-300ecd0d-3710-4646-8b23-417eafa347e6' class='xr-var-data-in' type='checkbox'><label for='data-300ecd0d-3710-4646-8b23-417eafa347e6' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([622.325100923668+/-nan, 565.810960428506+/-nan,\n",
" 580.1085845591986+/-nan, 636.5250359081975+/-nan,\n",
" 600.2141025258858+/-nan, 577.2958286890241+/-nan,\n",
" 627.3808268148166+/-nan, 617.2187811344919+/-nan,\n",
" 641.2607989957359+/-nan, 622.4907683665502+/-nan], dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>thermal_amplitude</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>574.323330298593+/-nan ... 562.0...</div><input id='attrs-80a14f33-5cf0-4c13-9c0a-7576c6f3d980' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-80a14f33-5cf0-4c13-9c0a-7576c6f3d980' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-07353150-bab9-408e-bd57-bf3dc30b3157' class='xr-var-data-in' type='checkbox'><label for='data-07353150-bab9-408e-bd57-bf3dc30b3157' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([574.323330298593+/-nan, 568.4626463236162+/-nan,\n",
" 583.7522671412466+/-nan, 520.5663944276968+/-nan,\n",
" 629.6233172781357+/-nan, 617.2121947211904+/-nan,\n",
" 602.967628810155+/-nan, 562.4835962828049+/-nan,\n",
" 604.8087834130785+/-nan, 562.0410431412295+/-nan], dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>BEC_centerx</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>40.697673212791095+/-nan ... 41....</div><input id='attrs-b16c5c85-3efc-44ed-975a-7c700a2e5688' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-b16c5c85-3efc-44ed-975a-7c700a2e5688' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-0729c6f4-263c-403b-a41f-a4ce1ee63511' class='xr-var-data-in' type='checkbox'><label for='data-0729c6f4-263c-403b-a41f-a4ce1ee63511' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([40.697673212791095+/-nan, 39.45883091234254+/-nan,\n",
" 41.22347787951619+/-nan, 40.89898530220542+/-nan,\n",
" 41.63210069803921+/-nan, 39.324681218279466+/-nan,\n",
" 38.275787736341755+/-nan, 39.60209353554154+/-nan,\n",
" 42.00470746236811+/-nan, 41.846469101560324+/-nan], dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>BEC_centery</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>38.68619529315486+/-nan ... 40.1...</div><input id='attrs-437dd93f-05d7-4298-92f4-44d43fa3b773' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-437dd93f-05d7-4298-92f4-44d43fa3b773' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-97a4586b-0749-4e60-b91b-6c4de93e6359' class='xr-var-data-in' type='checkbox'><label for='data-97a4586b-0749-4e60-b91b-6c4de93e6359' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([38.68619529315486+/-nan, 42.61360351211025+/-nan,\n",
" 41.563561921615275+/-nan, 40.06131528825722+/-nan,\n",
" 43.90475816622681+/-nan, 44.50753547226045+/-nan,\n",
" 43.14256883489733+/-nan, 41.82261283543652+/-nan,\n",
" 41.53493261128381+/-nan, 40.165797300781946+/-nan], dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>thermal_centerx</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>41.672856011589964+/-nan ... 42....</div><input id='attrs-07aeb4e6-91df-4d08-87d7-459104e1eba5' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-07aeb4e6-91df-4d08-87d7-459104e1eba5' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-5f70a575-c0f1-4498-9777-7eba43808c0c' class='xr-var-data-in' type='checkbox'><label for='data-5f70a575-c0f1-4498-9777-7eba43808c0c' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([41.672856011589964+/-nan, 41.10729207485836+/-nan,\n",
" 42.74513908785217+/-nan, 41.541130169383074+/-nan,\n",
" 41.44245089494752+/-nan, 40.150975380806294+/-nan,\n",
" 40.2004632958644+/-nan, 41.44977519532488+/-nan,\n",
" 42.69309201162166+/-nan, 42.18699416012472+/-nan], dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>thermal_centery</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>40.50023901378942+/-nan ... 41.8...</div><input id='attrs-88335c7f-0add-4a64-939d-704c48fe4979' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-88335c7f-0add-4a64-939d-704c48fe4979' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-6f4c67a4-fa1c-4263-90df-7bd0431b4216' class='xr-var-data-in' type='checkbox'><label for='data-6f4c67a4-fa1c-4263-90df-7bd0431b4216' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([40.50023901378942+/-nan, 44.81057142219622+/-nan,\n",
" 43.010161191179634+/-nan, 41.36490168879652+/-nan,\n",
" 45.17646234836704+/-nan, 45.95553486593841+/-nan,\n",
" 44.574513165193316+/-nan, 43.26958231838+/-nan,\n",
" 42.5998739671102+/-nan, 41.86118542627792+/-nan], dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>BEC_sigmax</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>27.10717775959619+/-nan ... 27.2...</div><input id='attrs-4a1c6250-a107-4a59-aed4-cb370052078a' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-4a1c6250-a107-4a59-aed4-cb370052078a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1ee2b534-748c-4346-8ee5-528c67591da0' class='xr-var-data-in' type='checkbox'><label for='data-1ee2b534-748c-4346-8ee5-528c67591da0' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([27.10717775959619+/-nan, 27.813248412756067+/-nan,\n",
" 27.180460059842797+/-nan, 28.359108484779306+/-nan,\n",
" 27.12902681300635+/-nan, 27.786783488553446+/-nan,\n",
" 27.56817106112974+/-nan, 28.162503921088394+/-nan,\n",
" 27.38249247770765+/-nan, 27.269511683790224+/-nan], dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>BEC_sigmay</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>9.925094420566738+/-nan ... 9.27...</div><input id='attrs-7ed7bedc-4010-4cfd-931e-10f017eecf44' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-7ed7bedc-4010-4cfd-931e-10f017eecf44' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-7d439e7e-f79d-4468-be0f-d8e065206781' class='xr-var-data-in' type='checkbox'><label for='data-7d439e7e-f79d-4468-be0f-d8e065206781' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([9.925094420566738+/-nan, 8.320083964510589+/-nan,\n",
" 8.832237277118526+/-nan, 10.102464552278184+/-nan,\n",
" 8.87861409804287+/-nan, 8.215669300544008+/-nan,\n",
" 8.96268636585824+/-nan, 8.690636986312713+/-nan,\n",
" 9.739827034241756+/-nan, 9.279246332574647+/-nan], dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>thermal_sigmax</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>15.219058592618353+/-nan ... 14....</div><input id='attrs-56d1bd43-6cdc-4920-b6c7-1fdd6dd2d566' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-56d1bd43-6cdc-4920-b6c7-1fdd6dd2d566' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-060a01be-af83-46f3-bd5e-d170d23f33c1' class='xr-var-data-in' type='checkbox'><label for='data-060a01be-af83-46f3-bd5e-d170d23f33c1' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([15.219058592618353+/-nan, 13.845036738454665+/-nan,\n",
" 14.10887047132501+/-nan, 13.982332369691441+/-nan,\n",
" 14.817239722846576+/-nan, 13.924008993096628+/-nan,\n",
" 14.06259374875233+/-nan, 13.970679478445314+/-nan,\n",
" 14.551516131029505+/-nan, 14.193823332828861+/-nan], dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>thermal_sigmay</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>18.262870311142024+/-nan ... 17....</div><input id='attrs-23e8b2e2-657a-42ed-961e-c77b59bfddbc' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-23e8b2e2-657a-42ed-961e-c77b59bfddbc' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1a635959-da98-4d4d-91d0-7ae15ed84d91' class='xr-var-data-in' type='checkbox'><label for='data-1a635959-da98-4d4d-91d0-7ae15ed84d91' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([18.262870311142024+/-nan, 16.614044086145597+/-nan,\n",
" 16.93064456559001+/-nan, 16.77879884362973+/-nan,\n",
" 17.78068766741589+/-nan, 16.70881079171595+/-nan,\n",
" 16.875112498502794+/-nan, 16.764815374134376+/-nan,\n",
" 17.461819357235406+/-nan, 17.032587999394632+/-nan], dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>deltax</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>18.54999801825887+/-nan ... 15.3...</div><input id='attrs-81b86ab2-05c4-46af-b7eb-dd9b8692e37d' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-81b86ab2-05c4-46af-b7eb-dd9b8692e37d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c10656fe-164c-4f8e-8e49-5e051c6c829b' class='xr-var-data-in' type='checkbox'><label for='data-c10656fe-164c-4f8e-8e49-5e051c6c829b' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([18.54999801825887+/-nan, 13.721861802607926+/-nan,\n",
" 15.146151354132233+/-nan, 13.58788862429502+/-nan,\n",
" 17.322692355533373+/-nan, 13.985243490736439+/-nan,\n",
" 14.61961018512725+/-nan, 13.749534514247552+/-nan,\n",
" 16.272055915380868+/-nan, 15.311958314696358+/-nan], dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>thermalAspectRatio</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>1.2+/-nan 1.2+/-nan ... 1.2+/-nan</div><input id='attrs-50e91101-69c3-41a3-886f-295285e5d10f' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-50e91101-69c3-41a3-886f-295285e5d10f' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-62611110-afac-4c3b-aec9-0af98ad5fbe9' class='xr-var-data-in' type='checkbox'><label for='data-62611110-afac-4c3b-aec9-0af98ad5fbe9' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([1.2+/-nan, 1.2+/-nan, 1.2+/-nan, 1.2+/-nan, 1.2+/-nan, 1.2+/-nan,\n",
" 1.2+/-nan, 1.2+/-nan, 1.2+/-nan, 1.2+/-nan], dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>condensate_fraction</span></div><div class='xr-var-dims'>(runs)</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>0.5200567557574306+/-nan ... 0.5...</div><input id='attrs-6173a4af-0749-44b3-aae8-5a00f0fed341' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-6173a4af-0749-44b3-aae8-5a00f0fed341' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-f7f70436-1017-4f50-8a0f-05082a167cfe' class='xr-var-data-in' type='checkbox'><label for='data-f7f70436-1017-4f50-8a0f-05082a167cfe' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([0.5200567557574306+/-nan, 0.4988311083501699+/-nan,\n",
" 0.49843465712558144+/-nan, 0.5501078127624015+/-nan,\n",
" 0.4880434542490436+/-nan, 0.4832917128851891+/-nan,\n",
" 0.5099212535656252+/-nan, 0.523198726178512+/-nan,\n",
" 0.5146267977716745+/-nan, 0.5255162945553884+/-nan], dtype=object)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-8e928194-cb1d-475c-84ab-5f5c80f99c34' class='xr-section-summary-in' type='checkbox' ><label for='section-8e928194-cb1d-475c-84ab-5f5c80f99c34' class='xr-section-summary' >Indexes: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>runs</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-7968ab3e-c4a8-4426-8503-25aff64cc953' class='xr-index-data-in' type='checkbox'/><label for='index-7968ab3e-c4a8-4426-8503-25aff64cc953' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Float64Index([0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0], dtype=&#x27;float64&#x27;, name=&#x27;runs&#x27;))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-abed971f-e595-472e-81a4-10d6ecd56c03' class='xr-section-summary-in' type='checkbox' ><label for='section-abed971f-e595-472e-81a4-10d6ecd56c03' class='xr-section-summary' >Attributes: <span>(11)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>IMAGE_SUBCLASS :</span></dt><dd>IMAGE_GRAYSCALE</dd><dt><span>IMAGE_VERSION :</span></dt><dd>1.2</dd><dt><span>IMAGE_WHITE_IS_ZERO :</span></dt><dd>0</dd><dt><span>x_start :</span></dt><dd>840</dd><dt><span>x_end :</span></dt><dd>920</dd><dt><span>y_end :</span></dt><dd>1020</dd><dt><span>y_start :</span></dt><dd>940</dd><dt><span>x_center :</span></dt><dd>880</dd><dt><span>y_center :</span></dt><dd>980</dd><dt><span>x_span :</span></dt><dd>80</dd><dt><span>y_span :</span></dt><dd>80</dd></dl></div></li></ul></div></div>"
],
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (runs: 10)\n",
"Coordinates:\n",
" * runs (runs) float64 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0\n",
"Data variables: (12/13)\n",
" BEC_amplitude (runs) object 622.325100923668+/-nan ... 622.4907683...\n",
" thermal_amplitude (runs) object 574.323330298593+/-nan ... 562.0410431...\n",
" BEC_centerx (runs) object 40.697673212791095+/-nan ... 41.846469...\n",
" BEC_centery (runs) object 38.68619529315486+/-nan ... 40.1657973...\n",
" thermal_centerx (runs) object 41.672856011589964+/-nan ... 42.186994...\n",
" thermal_centery (runs) object 40.50023901378942+/-nan ... 41.8611854...\n",
" ... ...\n",
" BEC_sigmay (runs) object 9.925094420566738+/-nan ... 9.27924633...\n",
" thermal_sigmax (runs) object 15.219058592618353+/-nan ... 14.193823...\n",
" thermal_sigmay (runs) object 18.262870311142024+/-nan ... 17.032587...\n",
" deltax (runs) object 18.54999801825887+/-nan ... 15.3119583...\n",
" thermalAspectRatio (runs) object 1.2+/-nan 1.2+/-nan ... 1.2+/-nan\n",
" condensate_fraction (runs) object 0.5200567557574306+/-nan ... 0.5255162...\n",
"Attributes:\n",
" IMAGE_SUBCLASS: IMAGE_GRAYSCALE\n",
" IMAGE_VERSION: 1.2\n",
" IMAGE_WHITE_IS_ZERO: 0\n",
" x_start: 840\n",
" x_end: 920\n",
" y_end: 1020\n",
" y_start: 940\n",
" x_center: 880\n",
" y_center: 980\n",
" x_span: 80\n",
" y_span: 80"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fitAnalyser_1.get_fit_full_result(fitResult_1)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# Calibration of the magnetic fields"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Z Offset field = 0.489A"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The detected scaning axes and values are: \n",
"\n",
"{'carrier_freq': array([9.525, 9.527, 9.529, 9.531, 9.533, 9.535, 9.537, 9.539, 9.541,\n",
" 9.543, 9.545, 9.547, 9.549, 9.551, 9.553, 9.555, 9.557, 9.559])}\n"
]
},
{
"data": {
"application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n rubberband_canvas.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n fig.rubberband_canvas.style.cursor = msg['cursor'];\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from https://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * https://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n",
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAAXNSR0IArs4c6QAAIABJREFUeF7snQuUFdWV93eLiGBA3goBgSCQoAZxVFCjwhhAcCKIDAjJqIxKRp0o8lCJcYSoKHF8jcYIZgkMCJiPD1QUoiggqMFJUBMfgKKovGLk+UkQHLC/tUtv2910963e55y6t/r+ai2XdHedU1X//Tv7/mufOnWLiouLi4UNBVAABVAABVAABVCgYBQowgAWTKy5UBRAARRAARRAARSIFMAAAgIKoAAKoAAKoAAKFJgCGMACCziXiwIogAIogAIogAIYQBhAARRAARRAARRAgQJTAANYYAHnclEABVAABVAABVAAAwgDKIACKIACKIACKFBgCmAACyzgXC4KoAAKoAAKoAAKYABhAAVQAAVQAAVQAAUKTAEMYIEFnMtFARRAARRAARRAAQwgDKAACqAACqAACqBAgSmAASywgHO5KIACKIACKIACKIABhAEUQAEUQAEUQAEUKDAFMIAFFnAuFwVQAAVQAAVQAAUwgA4MfPnll7J582apX7++FBUVOfREUxRAARRAARRAgUJXoLi4WD777DNp2bKlHHLIIUHlwAA6yLtx40Zp3bq1Qw80RQEUQAEUQAEUQIGyCmzYsEFatWoVVBYMoIO8u3btkoYNG4oGqkGDBg49Vdz0f//3f+W5556T3r17S+3atb33n/YO0afyCKIN2ljHN+zADuxYFXBn5//9v/8XFZZ27twpRx55pP8TKdUjBtBBXg2UBkiNYCgDuHDhQunXrx8GsII46QcV+lR+84A2aGNJb4yrqj/EGVfoE3JchfYVpc8dA2iJ5NdtQgeKRFx1cNCHRGwZvnDDuLJwo21gB3ZCsxPaV2AArREs1y50oEg2JBsrqrCDOYYdqwKwY1WOvOPOTmhfgQG00o0B9KScn25INu7Jxk8k0tUL3HBjZSUWdmAnNDsYQKvCCbcLHSiSDcnGijTsYI5hx6oA7FiVI++4sxPaV1ABtNJNBdCTcn66Idm4Jxs/kUhXL3DDjZWVWNiBndDsYACtCifcLnSgSDYkGyvSsIM5hh2rArBjVY68485OaF9BBdBKNxVAT8r56YZk455s/EQiXb3ADTdWVmJhB3ZCs4MBtCqccLvQgSLZkGysSMMO5hh2rArAjlU58o47O6F9BRVAK91UAD0p56cbko17svETiXT1AjfcWFmJhR3YCc0OBtCqcMLtQgeKZEOysSINO5hj2LEqADtW5cg77uyE9hVUAK10UwH0pJyfbizJ5sABkRUrRLZsEWnRQuTMM0Vq1fJzPvnUi0WbfDr/kOeCNtxYWfmCHdgJzQ4G0Kpwwu1CBkqNytKl+2XRojekb98TpWfPQ2ukUXEJWXWT8bx5ItdeK7Jx4zdHbdVK5P77RQYOdDmT/GtbXW3y7wrCnRHa8CFupQt2YCc0OyF9Rflz57uArdEUkVCBKiSj4iB/tb6XUzUdNEikuLjsEYuKvvp57tyaZQL5oKqcLLThQ9yad2AHdkKzE8pXVHTeeWcA77jjDpk3b56sWbNG6tatK6effrpMmjRJOnXqFJ2/DsBf/OIXsnDhQvnggw/kyCOPlB/+8Idy5513SsuWLUuusUePHvLiiy+WueYhQ4bInDlzSn63Y8cOueaaa+Spp56Kfnf++efLAw88IA0bNowV4xCBKjSjEkvoSnaKm4y1mtq2bdnKX+ku1QRqJXD9+pozHRxXGxf909oWbfgQt7ILO7ATmp0QvqKyc847A3juuefKRRddJKeccors379fbrrpJnnzzTflnXfekSOOOEJ27dolgwYNkiuuuEK6dOkiauJGjhwZ7funP/2pjAHs2LGj/PKXvyz5nRpKNYyZrW/fvrJx40aZMmVK9KsRI0ZI27ZtZcGCBbFi7DtQhWhUYgntaACXLRPp2TP7kZYuFenRI/t+adiDD6rKo4Q2fIhbxzDswE5odnz7iqrON+8MYPmT/fTTT6V58+ZRNe+ss86q8Fr++Mc/yqmnniofffSRHHPMMdE+WgE88cQT5b777quwzerVq6Vz586ycuVK6datW7SP/vu0006Lqo+ZimNV4vkOVCEaFetg0nZxk/Hs2SLDhmU/0qxZIkOHZt8vDXvE1SYN1+L7HNGGD3ErU7ADO6HZ8e0rUm0A161bJx06dIiqgMcff3yF1/L8889L7969ZefOndKgQYMSA/j2229LcXGxHHXUUaLVvltuuUXq168f/f3RRx+VUaNGRW1Kbzr9e++998rw4cMPOta+fftE/8tsGqjWrVvL1q1bS45rhUPbzZlTJBdffGjWLv77v/fLRReVe5gta6uat4Mm48WLF0uvXr2kdu3alV7giy8WSa9e2XVdvHi/nH12zdA1rjY1j4rsV4Q22T/E44yr7ErXvD1gB3asVMdlR31F06ZNo9nOjJ+xHjNbu7yuAKp569+/fzTNu0Lf3VHBtnfvXvnBD34g3/3ud2XmzJklezzyyCPSrl07Ofroo+Wtt96ScePGybHHHhsZBt0mTpwo06ZNk3fffbdMrzptrOZP9y+/jR8/XiZMmHDQ72fNmiX16tXLpnXWv7/5ZhO5+eYfZN3v1ltfkhNO2JZ1P3b4SgGdWh8xords23a4iHy96qOMOMXStOnnMnnyYlZaAw0KoAAKoEDOFNizZ48MGzYMA3j11VfLM888Iy+99JK00qf0y23qqP/5n/9ZPv74Y1m2bFmVbnnVqlVy8skni/7/pJNOigzg9OnTZe3atWV61WrjZZddJjfeeONBxwtdAVSjcuyxh8rmzbpa9WCjUlRULN/+tsh77+3HqHw9BRy3UjF/fpFcdNFXL/wrra1qqtucOQfkggtqRvVPryfu3WbOslwOD4w2VYuPPpXrgzawY01dcdmhAigiP/vZz+SJJ56Q5cuXR5W8iszf4MGDo5XAS5YskSZNmlQZF60m1qlTR2bMmCG6GtgyBVz+ACHm6jOrgL8yKt8csaa+rsQ6mDImR1eD9+vXr8op4MwxKnq9TuvWIvqYKO8BdIlEutryHFf2D/HqjKt0Rd/tbGEHdqwExWUnhK+o7JzzbgpYjZqav/nz50dVPa3IVWb+3nvvPVm6dKk0a9Ysa0x0GviEE04oWUySWQTy6quvRgtIdNN/d+/ePWeLQArRqGQNXBU7xB1Qpbvgm0BcFK8ZbS3c1Iwrj3cV6FO5TmiDAYw3ig7eKy47BW0Ar7rqKtFn6p588skyK3H19S36Ghd93cuFF14or732mjz99NPRAo/M1rhxYznssMPk/fffl8ceeyyqDOnDlPoKmdGjR0ftdcVwra+/+0sXhmzevFkmT54cdaGvgWnTpk3OXgNT3qjwTSAkm9DJxtp/mtvFTcRpvkaXc0cfDKCVH9hxZ6egDWBRZq6znI5Tp06VSy+9VD788MMKp4R1d60G6utfNmzYID/5yU+ixR+7d++OVuqed9550SpgNYmZbfv27Qe9CPrBBx/M6YugS182gwkDSCK2KuCeiP0fOR09kndgx0oq7LizU9AG0ApeLtqFDhSDCQNo5Rp23BOxVfu0t4Md2LEyDDvu7IT2FaXPMO+eAbSCl4t2oQPFYMIAWrmGHfdEbNU+7e1gB3asDMOOOzuhfQUG0Ep3uXahA8VgwgBaUYUd90Rs1T7t7WAHdqwMw447O6F9BQbQSjcG0JNyfroh2bgnGz+RSFcvcMONlZVY2IGd0OxgAK0KJ9wudKBINiQbK9KwgzmGHasCsGNVjrzjzk5oX0EF0Eo3FUBPyvnphmTjnmz8RCJdvcANN1ZWYmEHdkKzgwG0Kpxwu9CBItmQbKxIww7mGHasCsCOVTnyjjs7oX0FFUAr3VQAPSnnpxuSjXuy8ROJdPUCN9xYWYmFHdgJzQ4G0Kpwwu1CB4pkQ7KxIg07mGPYsSoAO1blyDvu7IT2FVQArXRTAfSknJ9uSDbuycZPJNLVC9xwY2UlFnZgJzQ7GECrwgm3Cx0okg3Jxoo07GCOYceqAOxYlSPvuLMT2ldQAbTSTQXQk3J+uiHZuCcbP5FIVy9ww42VlVjYgZ3Q7GAArQon3C50oEg2JBsr0rCDOYYdqwKwY1WOvOPOTmhfQQXQSjcVQE/K+emGZOOebPxEIl29wA03VlZiYQd2QrODAbQqnHC70IEi2ZBsrEjDDuYYdqwKwI5VOfKOOzuhfQUVQCvdVAA9KeenG5KNe7LxE4l09QI33FhZiYUd2AnNDgbQqnDC7UIHimRDsrEiDTuYY9ixKgA7VuXIO+7shPYVVACtdFMB9KScn25INu7Jxk8k0tUL3HBjZSUWdmAnNDsYQKvCCbcLHSiSDcnGijTsYI5hx6oA7FiVI++4sxPaV1ABtNJNBdCTcn66Idm4Jxs/kUhXL3DDjZWVWNiBndDsYACtCifcLnSgSDYkGyvSsIM5hh2rArBjVY68485OaF9BBdBKNxVAT8r56YZk455s/EQiXb3ADTdWVmJhB3ZCs4MBtCqccLvQgSLZkGysSMMO5hh2rArAjlU58o47O6F9BRVAK91UAD0p56cbko17svETiXT1AjfcWFmJhR3YCc0OBtCqcMLtQgeKZEOysSINO5hj2LEqADtW5cg77uyE9hVUAK10UwH0pJyfbkg27snGTyTS1QvccGNlJRZ2YCc0OxhAq8IJtwsdKJINycaKNOxgjmHHqgDsWJUj77izE9pXUAG00k0F0JNyfroh2bgnGz+RSFcvcMONlZVY2IGd0OxgAK0KJ9wudKBINiQbK9KwgzmGHasCsGNVjrzjzk5oX0EF0Eo3FUBPyvnphmTjnmz8RCJdvcANN1ZWYmEHdkKzgwG0Kpxwu9CBItmQbKxIww7mGHasCsCOVTnyjjs7oX0FFUAr3VQAPSnnpxuSjXuy8ROJdPUCN9xYWYmFHdgJzQ4G0Kpwwu1CB4pkQ7KxIg07mGPYsSoAO1blyDvu7IT2FVQArXRTAfSknJ9uSDbuycZPJNLVC9xwY2UlFnZgJzQ7GECrwgm3Cx0okg3Jxoo07GCOYceqAOxYlSPvuLMT2ldQAbTSTQXQk3J+uiHZuCcbP5FIVy9ww42VlVjYgZ3Q7GAArQon3C50oEg2JBsr0rCDOYYdqwKwY1WOvOPOTmhfkdcVwDvuuEPmzZsna9askbp168rpp58ukyZNkk6dOpWcd3FxsUyYMEGmTJkiO3bskG7dusmvf/1rOe6440r22bdvn4wZM0Zmz54tn3/+uZxzzjny0EMPSatWrUr20bbXXHONPPXUU9Hvzj//fHnggQekYcOGsfgPHSgGEwYwFogV7AQ77onYqn3a28EO7FgZhh13dkL7irw2gOeee65cdNFFcsopp8j+/fvlpptukjfffFPeeecdOeKII6JzV0N4++23y7Rp06Rjx45y2223yfLly2Xt2rVSv379aJ8rr7xSFixYEO3TpEkTGT16tGzfvl1WrVoltWrVivbp27evbNy4MTKSuo0YMULatm0btYuzhQ4UgwkDGIfDivaBHfdEbNU+7e1gB3asDMOOOzuhfUVeG8Dy8n366afSvHlzefHFF+Wss84Srf61bNlSRo4cKTfccEO0u1b7jjrqqMgY/vSnP5Vdu3ZJs2bNZMaMGTJkyJBon82bN0vr1q1l4cKF0qdPH1m9erV07txZVq5cGVUQddN/n3baaVH1sXTFsbKQhg4UgwkDSCK2KuCeiP0fOR09kndgx0oq7LizE9pXpMoArlu3Tjp06BBVAY8//nj54IMPpH379vLaa69J165dS66lf//+0dTt9OnTZcmSJdGUr1b8GjVqVLJPly5dZMCAAdH08aOPPiqjRo2SnTt3lomY9nHvvffK8OHDs46B0IFiMGEAs0JYyQ6w456IrdqnvR3swI6VYdhxZye0r0iNAdRqnxo7fVZvxYoV0Xm/8sorcsYZZ8imTZuiSmBm0+nbjz76SJ599lmZNWtWZOC0Mlh66927t7Rr104mT54sEydOjKaH33333TL76JSyth03btxBkdT+SvepgdKq4tatW6VBgwbWMVNpOx1Mixcvll69eknt2rW995/2DtGn6mQDOxXrAzfZb6xgB3Ysnw+MLfecrL6iadOm0UxmCF+RGgN49dVXyzPPPCMvvfRSyeKNjAHUKd0WLVqUXMsVV1whGzZskN///veVGkA1Ulo9fPjhhyMDqNVCfW6w9KbVxssuu0xuvPHGgyI5fvz4qHpYflPDWa9ePct4oQ0KoAAKoAAKoAAKRArs2bNHhg0bVtgG8Gc/+5k88cQT0eIOrdpltlxOAVMBzK8Ryt2m+91mfkU0mbOBGyqAVtJgB3ZCs1PQFUCd9lXzN3/+fFm2bFn0/F/pLbMI5LrrrpPrr78++tMXX3wRLRQpvwhk5syZMnjw4GifLVu2RFXE8otAXn31VTn11FOjffTf3bt3ZxGIlfCE2/G8SdUGUFnv168fjw+Ukwlusn+Iw07FGsEO7Fg/5uKyU9DPAF511VXRFO6TTz5ZZiXukUceGb0XUDc1evq+wKlTp0YGUadz1SyWfw3M008/HT3n17hx4+idgNu2bTvoNTA6lazPBOqmzxG2adOG18BYCU+4XdwBlfBp5cXh0AZzbAURdmAHdqwKuLNT0AawqKioQgXV7F166aXR3zIvglbjVvpF0LpKOLPt3btXxo4dG5nJ0i+C1kUbmU1XCZd/EfSDDz7Ii6D9sx+kRz6o3JNNkMDkeadwQxXHiijswE5odgraAFrFzUW70IEi2ZBsrFzDDuYYdqwKwI5VOfKOOzuhfUXpMywq1nIam0mB0IFiMGEATWCKCOy4J2Kr9mlvBzuwY2UYdtzZCe0rMIBWusu1Cx0oBhMG0Ioq7LgnYqv2aW8HO7BjZRh23NkJ7SswgFa6MYCelPPTDcnGPdn4iUS6eoEbbqysxMIO7IRmBwNoVTjhdqEDVdOTzYEDIvoFL1u2iOg7vc88U6RWrfhBrOn6xFfi4D3RBnNs5Qd2YAd2rAq4sxPaV1AB9BTb0IGqyYl43jyRa68V2bjxm2C0aiVy//0iAwfGC1BN1ieeAu7JxvU4aWwPN1RxrNxa2XG92bWeb9LtrPokfZ65OF5cbUL7Cgygp+iHDlRcYDxdTmLdqPkbNEhf51P2kJk3AM2dG88E1lR9fAQCbTDHVo5gxy87Pm52rbFMuh3suLMT2ldgAD2NitCBqomDSe+E27YtW/krA2SRiFYC16/PPh1cE/XxhCargKsQEm6oAFrHWXXZ8XWzaz3fpNtVV5+kzy+Xx4urTWhfgQH0REHoQMUFxtPlSBLTFMuWifTsmf2Mly4V6dGDD6rsSlW8R9LsWM8zF+3QhnFl5a467Pi82bWeb9LtqqNP0ueW6+PF1Sa0r8AAeiIhdKDiAuPjcpKappg9W2TYsOxnPGuWyNChfFBlVwoDWF2NkhxX1T23fNgffSqPQnW08Xmzmw9cxDmH6ugTp7+atE9cbUL7CgygJ6pCByouMK6Xk+Q0hc+kmJQ+rvrmoj3a+PkQz0Xscn1M2PHDjs+b3VwzEff4sOPOTmhfgQGMS3OW/UIHKonBlPQ0ReZ4mzYdvAhE5daFIDwD6A5oEuy4n2VuekAbKutW8qrDjs+bXev5Jt2uOvokfW65Pl5cbUL7CgygJxJCByouMC6Xk4sklak46nmXXgnMKmCXSJZtmwQ7/s422Z7QBgNoJa467Pi82bWeb9LtqqNP0ueW6+PF1Sa0r8AAeiIhdKDiAuNyObmapqjomcPWrUXuuy/eK2D0mpPQx0XbXLZFm8rVRxsMoHVsVpcdXze71vNNul119Un6/HJ5vLjahPYVGEBPFIQOVFxgXC4nFxXAzPm6rjpOQh8XbXPZFm0wgFb+YMcvOz5udq2xTLod7LizE9pXYAA9jYrQgUpiMKV5miIJfTyhkng3aOOeiBMPWp4cEHb8s+N6s5snaGQ9DdhxZye0r8AAZsU43g6hA5XUYErrNEVS+sSjIb/2Qhv3RJxfEU3ubGAHdqy0wY47O6F9BQbQSne5dqEDleRgSuM0RZL6eEImsW7Qxj0RJxasPDsQ7MCOFUnYcWcntK/AAFrprsEGUC8tbdMUJBv3ZONpKKSqG7ipOlzow7iyDmjYcWcHA2ilL+F2oQPFYOKDyoo07LgnYqv2aW8HO7BjZRh23NkJ7SuoAFrpruEVQE+yJNYNycY92SQWrDw6ENxwY2XFEXZgJzQ7GECrwgm3Cx0okg3Jxoo07GCOYceqAOxYlSPvuLMT2ldQAbTSTQXQk3J+uiHZuCcbP5FIVy9ww42VlVjYgZ3Q7GAArQon3C50oEg2JBsr0rCDOYYdqwKwY1WOvOPOTmhfQQXQSjcVQE/K+emGZOOebPxEIl29wA03VlZiYQd2QrODAbQqnHC70IEi2ZBsrEjDDuYYdqwKwI5VOfKOOzuhfQUVQCvdVAA9KeenG5KNe7LxE4l09QI33FhZiYUd2AnNDgbQqnDC7UIHimRDsrEiDTuYY9ixKgA7VuXIO+7shPYVVACtdFMB9KScn25INu7Jxk8k0tUL3HBjZSUWdmAnNDsYQKvCCbcLHSiSDcnGijTsYI5hx6oA7FiVI++4sxPaV1ABtNJNBdCTcn66Idm4Jxs/kUhXL3DDjZWVWNiBndDsYACtCifcLnSgSDYkGyvSsIM5hh2rAuln58ABkRUrRLZsEWnRQuTMM0Vq1fKvR/keyTvu7IT2FVQAPY2D0IFiMGEArajCjnsitmqf9nawk2525s0TufZakY0bv7mOVq1E7r9fZODAsHTCjjs7oX0FBtDTGAgdKAYTBtCKKuy4J2Kr9mlvBzvpZUfN36BBIsXFZa+hqOirn+fODWsCYcedndC+AgPoKUOHDhSDCQNoRRV23BOxVfu0t4OddLKj075t25at/JX5sC8S0Urg+vXhpoNhx52d0L4CA+gpQ4cOFIMJA2hFFXbcE7FV+7S3g510srNsmUjPntnpW7pUpEeP7PtZ9oAdd3ZC+woMoIXsCtqEDhSDCQNoRRV23BOxVfu0t0uanVwtWLDEKWltqnOOs2eLDBuWvcWsWSJDh2bfz7JHPutjuR6fbeJqE9pXYAA9RTV0oOIC4+lyUtcN+mByLNDCTf7cWOVywUJNY4cKoCWiybWJm3dC+4q8NoDLly+Xu+66S1atWiVbtmyR+fPny4ABA0rOuSjzNGu5uP3qV7+SsWPHRr/t0aOHvPjii2X2GDJkiMyZM6fkdzt27JBrrrlGnnrqqeh3559/vjzwwAPSsGHD2ESEDlRcYGKfcA3bEX0wgBak4SY/DGCuFyzUNHYyzwBu2nTwIhC9Vv3o5BlAS9T9tImbd0L7irw2gIsWLZKXX35ZTjrpJLnwwgsPMoB//etfy0RD97/ssstk3bp18p3vfKfEAHbs2FF++ctfluxbt25dOfLII0t+7tu3r2zcuFGmTJkS/W7EiBHStm1bWbBgQexohw5UXGBin3AN2xF9MIAWpOEm9wYwHxYs1ER2MqZar630SmBWAVui7bdN3LwT2lfktQEsc3JFRQcZwPIh0ergZ599Ji+88ELJn7QCeOKJJ8p9991XYQRXr14tnTt3lpUrV0q3bt2iffTfp512mqxZs0Y6deoUK/KhAxUXmFgnWwN3Qh8MoAVruMm9AcyH6cqayk5F0+qtW4voxyHvAbRE3U+buHkntK+oMQbwk08+kVatWsn06dNlWKmnX9UAvv3221JcXCxHHXWUaLXvlltukfr160fX/uijj8qoUaNk586dZSKr07/33nuvDB8+PFbEQwcqLjCxTrYG7oQ+GEAL1nCTewOYDwsWajI7uVpYw9hyz8mhfUWNMYD63N+dd94pmzdvlsMPP7zkuh555BFp166dHH300fLWW2/JuHHj5Nhjj5XFixdH+0ycOFGmTZsm7777bplo6bSxmj/dv6Jt3759ov9lNg1U69atZevWrdKgQQNLPqmyjQ4mPedevXpJ7dq1vfef9g7Rp+pkAzsV6wM32Q1gaHZefLFIevU6NGsKWrx4v5x9drm3GmdtFW4H2Mk9O+GiG7bnuOyor2jatKns2rUriK+oMQbwu9/9bmSOdPFGVZsuKDn55JOjhSX6bKEaQK0arl27tkyzDh06RM8T3njjjRV2N378eJkwYcJBf5s1a5bUq1cvLD30jgIogAI1RAGtUI0Y0Vu2bdMb96+/pqLMtRVL06afy+TJixP5DtsaIiuXUQMU2LNnTzSjiQGs4hnAFStWyFlnnSVvvPGGdOnSpcqw61RwnTp1ZMaMGaKrga1TwFQA82t0xb2jyq+zTuZs0IbqqJW0pNiZP79ILrqoVnSaxcXfmMCioq8qfnPmHJALLsif6p+eU1LaWGOX63bo4553qAB+raG+8qX8a2Ay8l566aXR9O6f/vSnrMzrfieccEL0ahg1jZlFIK+++qqceuqpUXv9d/fu3VkEklXN/NmB502qTjYLFy6Ufv368fhAOZngpuoxnKQ+uVywYMlkSWpjOb9ct0Ef95xc0M8A7t69O3qli25du3aVe+65R3r27CmNGzeWY445Jvq9CtSiRQu5++675d/+7d/KKP7+++/LY489Fn3w6Tz6O++8I6NHjxZ9Dcwf//hHqVXrqztOXRiizw5Onjw5+llfA9OmTRteA5PrDFKN46ch2fAwdjUCmtCuaeAmISkqPEzS+uRqjFg0Tlobyznmsg36YACd+Fu2bFlk+Mpvl1xySbRwQzd9d9/IkSOjF0WXfref/m3Dhg3yk5/8JKoOqpnURRrnnXdetApYTWRm2759+0Evgn7wwQd5EbRT9JJtnO/JJpffcpDv2iRLStmjoU3V6qOP+4d4LvnO5bFrOjsuNytxtSnoCmAu4a3usUMHKi4w1T3vmrJ/PuuT6285yGdtcs0f2mAArQzCTuGy43pDH5ed0L6idASLinWFBJtJgdCBiguM6eRrQKN81ScfvuUgX7XJB+zQpnA/xF35g51VfKOfAAAgAElEQVTCZMfHDX1cdkL7Cgygaxb4un3oQMUFxtPlpK6bfNUnH77lIF+1yQfI0KYwP8R9sAc7hceOrxv6uOyE9hUYQB+Z4OvFKPoMYqj39cQFxtPlpK6bfNUnH77lIF+1yQfI0KbwPsR9cQc7hceOrxv6uOxgAH2N1sD9hA5UXGACX2bedp+v+vhKGC7C56s2Ltfkqy3aFN6HOOz4UqDw2PF1Qx8374T2FVQAPY2F0IGKC4yny0ldN/mqT2bKYNMmfcHtwbIWFYm0aiWyfr0E+5aDfNUmHyBDm8L7EC99xUms5MwHznNxDjVxbPm6oY+rTWhfgQH0NDJCByouMJ4uJ3Xd5LM+mYeGVdTSJlDNn25z54oMHBhO8nzWJtxVx+sZbQrXACa1kjMeiTVvr5o4tnzd0MfVJrSvwAB6GnehAxUXGE+Xk7pu8l2fXH7LQb5rk0vY0KYwDWCSKzlzyXcuj11Tx5aPG/q42oT2FRhATyMkdKDiAuPpclLXTRr0cZlucglIGrRxuT6XtmhTeAYw6ZWcLnymuW1NHluuN/RxtQntKzCAnkZY6EDFBcbT5aSuG/SpPGRogzbWAV0T2Un6OS6r9mlvVxPZKR0Tlxv6uNqE9hUYQE+jLHSg4gLj6XJS1w36YHIs0MJN4VUAk17JaeGyJrRhbLnn5NC+AgPoaaSFDhSDqfA+qDyhKbDjnoh9xSJt/dREdqgAhqdQq2NLl+6XRYvekL59T5SePQ8N9pYDvRqXalx4NQ4+QtxxFdpXYAA9RT90oOIC4+lyUtcN+mByLNDCTeHdWCW9ktPCZZrbuK6uru61J3286p5fRfvHzTuhfQUG0Ec0+SYQTyrau4k7oOxHSG9LtMEcW+mtqewkuZLTqn0a2/lYXV2d6076eNU5t6r2jTuuMIC+FA/cT+hAxQUm8GXmbffog8mxwAk3hVcBzFxxUis5LVymsY2v1dVxrz3p48U9rzj7xc07oX0FFcA40YqxT+hAxQUmxqnWyF3QBwNoARtuCtcA6pW7PDsGO2XZ8fVsZdxxnPTx4p5XnP3ishPaV2AA40Qrxj6hAxUXmBinWiN3QR8MoAVsuClsA2hhJtMGdsqq52t1ddyYJH28uOcVZ7+47IT2FRjAONGKsU/oQMUFJsap1shd0AcDaAEbbjCAFm60DexQAQzNTmhfgQG0RrBcu9CBItnwQWVFFXYwx7BjVQB24irna3V1vh4v7nnF2S9uTg7tKzCAcaIVY5/QgYoLTIxTrZG7oA8fVBaw4YYbKws3VAArVs3H6urqxCPp41Xn3KraN27eCe0rMICeIho6UHGB8XQ5qesGfTCAFmjhBgNo4QYDWLlqrqurqxuPpI9X3fOraP+4eSe0r8AA+ogm7wH0pKK9m7gDyn6E9LZEG8yxlV7YgR0LO3wTiJ8bKwyghb4ctAkdKBKxnwGVAzRyfkjY4UPcCiHswA7sWBVwZye0r6AC6Cm2oQNFIsYAWlGFHfdEbNU+7e1gB3asDMOOOzuhfQUG0Ep3uXahA8VgwgBaUYUd90Rs1T7t7WAHdqwMw447O6F9BQbQSjcG0JNyfroh2bgnGz+RSFcvcMONlZVY2IGd0OxgAK0KJ9wudKBINiQbK9KwgzmGHasCsGNVjrzjzk5oX0EF0Eo3FUBPyvnphmTjnmz8RCJdvcANN1ZWYmEHdkKzgwG0Kpxwu9CBItmQbKxIww7mGHasCsCOVTnyjjs7oX0FFUAr3VQAPSnnpxuSjXuy8ROJdPUCN9xYWYmFHdgJzQ4G0Kpwwu1CB4pkQ7KxIg07mGPYsSoAO1blyDvu7IT2FVQArXRTAfSknJ9uSDbuycZPJNLVC9xwY2UlFnZgJzQ7GECrwgm3Cx0okg3Jxoo07GCOYceqAOxYlSPvuLMT2ldQAbTSTQXQk3J+uiHZuCcbP5FIVy9ww42VlVjYgZ3Q7GAArQon3C50oEg2JBsr0rCDOYYdqwKwY1WOvOPOTmhfQQXQSjcVQE/K+emGZOOebPxEIl29wA03VlZiYQd2QrODAbQqnHC70IEi2ZBsrEjDDuYYdqwKwI5VOfKOOzuhfQUVQCvdVAA9KeenG5KNe7LxE4l09QI33FhZiYUd2AnNTkEbwOXLl8tdd90lq1atki1btsj8+fNlwIABJZpfeumlMn369DIx6Natm6xcubLkd/v27ZMxY8bI7Nmz5fPPP5dzzjlHHnroIWnVqlXJPjt27JBrrrlGnnrqqeh3559/vjzwwAPSsGHD2PENHSiSDckmNozldoQdzDHsWBWAHaty5B13dkL7iryuAC5atEhefvllOemkk+TCCy+s0AB+8sknMnXq1JLrOOyww6Rx48YlP1955ZWyYMECmTZtmjRp0kRGjx4t27dvj0xlrVq1ov369u0rGzdulClTpkQ/jxgxQtq2bRu1i7uFDhSDCQMYl8Xy+8GOeyK2ap/2drADO1aGYcedndC+Iq8NYJmTKyqq0ADu3LlTnnjiiQqV3rVrlzRr1kxmzJghQ4YMifbZvHmztG7dWhYuXCh9+vSR1atXS+fOnaOqoVYPddN/n3baabJmzRrp1KlTLP5DB4rBhAGMBWIFO8GOeyK2ap/2drADO1aGYcedndC+IvUGUM2fVv10uvbss8+W22+/XZo3bx5d15IlS6IpX634NWrUqORau3TpEk0lT5gwQR599FEZNWqUqJEsvWl/9957rwwfPjwW/6EDxWDCAMYCEQNYLZkYV4yragFTamfYgZ3Q7IT2Fak2gI8//rh861vfkjZt2sj69evl5ptvlv3790fTu3Xq1JFZs2ZFBk6fAyy99e7dW9q1ayeTJ0+WiRMnRtPD7777bpl9OnbsGLUdN25chTHWPkv3q4HSyuLWrVulQYMGVi4qbafJZvHixdKrVy+pXbu29/7T3iH6VH23CTsV6wM32T/EYQd2LJ8PjC33nKy+omnTpqKzmSF8RaoNYHl5daGImsE5c+bIwIEDKzWAaqLat28vDz/8cGQAdSHJ2rVry3TXoUMHueyyy+TGG2+sMIrjx4+PKojlNzWd9erVs4wX2qAACqAACqAACqBApMCePXtk2LBhGMCiCp4BrIgRNW6XX3653HDDDUGngKkA5tcI5W7T/W4zvyKazNnADRVAK2mwAzuh2aEC+LXCcQzgtm3b5Nvf/na0mvfiiy+OXLMuApk5c6YMHjw46kmrhPoKmPKLQF599VU59dRTo3303927d2cRiJXuHLTjeZyqDaDy3q9fPx4fKCcT3GT/EIedijWCHdixftTFZaegnwHcvXu3rFu3LtK4a9eucs8990jPnj2j17zofzoNq6+HadGihXz44Yfy85//XD7++ONoZW/9+vWjdvoamKeffjp6zk/b6DsB1SiWfw2Mrg7WZwJ109fA6FQyr4Gx4p18u7gDKvkzy/0R0QZzbKUQdmAHdqwKuLNT0AZw2bJlkeErv11yySXym9/8JlrJ+/rrr0creNUE6r633nprtBgjs+3du1fGjh0bPQ9Y+kXQpffRVcLlXwT94IMP8iJo/9wH65EPKvdkEyw4edwx3FDFseIJO7ATmp2CNoBWcXPRLnSgSDYkGyvXsIM5hh2rArBjVY68485OaF9R+gyLiouLi63BLvR2oQPFYMIAWscY7LgnYqv2aW8HO7BjZRh23NkJ7SswgFa6y7ULHSgGEwbQiirsuCdiq/Zpbwc7sGNlGHbc2QntKzCAVroxgJ6U89MNycY92fiJRLp6gRturKzEwg7shGYHA2hVOOF2oQNFsiHZWJGGHcwx7FgVgB2rcuQdd3ZC+woqgFa6qQB6Us5PNyQb92TjJxLp6gVuuLGyEgs7sBOaHQygVeGE24UOFMmGZGNFGnYwx7BjVQB2rMqRd9zZCe0rqABa6aYC6Ek5P92QbNyTjZ9IpKsXuOHGykos7MBOaHYwgFaFE24XOlAkG5KNFWnYwRzDjlUB2LEqR95xZye0r6ACaKWbCqAn5fx0Q7JxTzZ+IpGuXuCGGysrsbADO6HZwQBaFU64XehAkWxINlakYQdzDDtWBWDHqhx5x52d0L4iSAVw+fLlcvrpp8uhhx5aRoH9+/fLK6+8ImeddZaVqbxtFzpQDCYMoBV+2HFPxFbt094OdmDHyjDsuLMT2lcEMYC1atWSLVu2SPPmzcsosG3btuh3Bw4csDKVt+1CB4rBhAG0wg877onYqn3a28EO7FgZhh13dkL7iiAG8JBDDpFPPvlEmjVrVkaBd999V04++WTRi6ppW+hAMZgwgNYxAzvuidiqfdrbwQ7sWBmGHXd2QvsKrwZw4MCBUX9PPvmknHvuuVKnTp2S/rXq95e//EU6deokv//9761M5W270IFiMGEArfDDjnsitmqf9nawAztWhmHHnZ3QvsKrARw+fHjU3/Tp02Xw4MFSt27dkv4PO+wwadu2rVxxxRXStGlTK1N52y50oBhMGEAr/LDjnoit2qe9HezAjpVh2HFnJ7Sv8GoAM51NmDBBxowZI0cccYSVndS1Cx0oBhMG0DooYMc9EVu1T3s72IEdK8Ow485OaF8RxABagUlzu9CBYjBhAK3jA3bcE7FV+7S3gx3YsTIMO+7shPYVQQygLgDRCuALL7wgf/vb36S4uLiMEqwCrv6QYjBhAKtPzVctYMc9EVu1T3s72IEdK8Ow485OKg1g37595eOPP5Z///d/lxYtWkhRUVEZJfr3729lKm/bhQ4UgwkDaIUfdtwTsVX7tLeDHdixMgw77uyE9hVBKoD169eXFStWyIknnmhlJ3XtQgeKwYQBtA4K2HFPxFbt094OdmDHyjDsuLMT2lcEMYCdO3eWxx57TLp27WplJ3XtQgeKwYQBtA4K2HFPxFbt094OdmDHyjDsuLMT2lcEMYDPPfec3H333TJ58uTo1S+FsIUOFIMJA2gdR7Djnoit2qe9HezAjpVh2HFnJ7SvCGIAGzVqJHv27BH97t969epJ7dq1yyixfft2K1N52y50oBhMGEAr/LDjnoit2qe9HezAjpVh2HFnJ7SvCGIA9UXQVW2XXHKJlam8bRc6UAwmDKAVfthxT8RW7dPeDnZgx8ow7LizE9pXBDGAVmDS3C50oBhMGEDr+IAd90Rs1T7t7WAHdqwMw447O6F9RRADqK+AqWo75phjrEzlbbvQgWIwYQCt8MOOeyK2ap/2drADO1aGYcedndC+IogBPOSQQw5691/pA/Ei6OoPKQYTBrD61HzVAnbcE7FV+7S3gx3YsTIMO+7spNIA/vnPfy5z5QrC66+/Lvfcc4/cfvvtMnDgQCtTedsudKAYTBhAK/yw456IrdqnvR3swI6VYdhxZye0rwhSAazssp955hm56667ZNmyZVam8rZd6EAxmDCAVvhhxz0RW7VPezvYgR0rw7Djzk5oX5GoAXzvvfeibwf5+9//bmUqb9uFDhSDCQNohR923BOxVfu0t4Md2LEyDDvu7IT2FUEMoJ506a24uFi2bNki48ePlzVr1sgbb7xhZSpv24UOFIMJA2iFH3bcE7FV+7S3gx3YsTIMO+7shPYVQQxgRYtA1AS2bt1a5syZI6eddpqVqbxtFzpQDCYMoBV+2HFPxFbt094OdmDHyjDsuLMT2lcEMYAvvvhimStXQ9isWTM59thj5dBDD7XylNftQgeKwYQBtA4A2HFPxFbt094OdmDHyjDsuLMT2lcEMYBWYNLcLnSgGEwYQOv4gB33RGzVPu3tYAd2rAzDjjs7oX1FMAP4/vvvy3333SerV6+O3gn4ve99T6699lpp3769lae8bhc6UAwmDKB1AMCOeyK2ap/2drADO1aGYcedndC+IogBfPbZZ+X888+PVvyeccYZos//vfLKK6LvB1ywYIH06tXLylTetgsdKAYTBtAKP+y4J2Kr9mlvBzuwY2UYdtzZCe0rghjArl27Sp8+feTOO+8so8CNN94ozz33nLz22mtWpvK2XehAMZgwgFb4Ycc9EVu1T3s72IEdK8Ow485OaF8RxAAefvjh8uabb0qHDh3KKPDuu+/K97//fdm7d28sppYvXx69OHrVqlXRa2Tmz58vAwYMiNoqXL/4xS9k4cKF8sEHH8iRRx4pP/zhDyPT2bJly5L+e/ToIeUXpQwZMiRajZzZduzYIddcc4089dRT0a+0evnAAw9Iw4YNY52n7hQ6UAwmDGBsGMvtCDvuidiqfdrbwQ7sWBmGHXd2QvuKIAZQX/eiX/v2z//8z2UU+N3vfidjxoyRjz/+OBZTixYtkpdffllOOukkufDCC8sYwF27dsmgQYPkiiuukC5duoiauJEjR8r+/fvlT3/6UxkD2LFjR/nlL39Z8ru6detGhjGz9e3bVzZu3ChTpkyJfjVixAhp27ZtNF0ddwsdKAYTBjAui+X3gx33RGzVPu3tYAd2rAzDjjs7oX1FEAOoZuvee+8VnfI9/fTTo0UgL730kkyaNElGjx4dVe6qu2kfpSuAFbX/4x//KKeeeqp89NFHcswxx0S7aAVQn0XUBSkVbbpIpXPnzrJy5Urp1q1btIv+W99VqC+t7tSpU6xTDR0oBhMGMBaIFewEO+6J2Kp92tvBDuxYGYYdd3ZC+4ogBlAXfajhuvvuu2Xz5s3RMXRaduzYsdFUq5q56m5xDODzzz8vvXv3lp07d0qDBg1KDODbb78dLUQ56qijRKt9t9xyi9SvXz/6+6OPPiqjRo2K2pTedPpXTezw4cNjnWroQDGYMICxQMQAVksmxhXjqlrAlNoZdmAnNDuhfUUQA1i6088++yz6MWO4rIJlM4D6XOEPfvAD+e53vyszZ84sOcwjjzwi7dq1k6OPPlreeustGTduXPRC6sWLF0f7TJw4UaZNmyb6fGLpTaeN1fzp/hVt+/btE/0vs2mgdOp769atJebTeq0VtdNko+esK6hr167ts+sa0Rf6VB5GtEEbyyA/cEBk2bIDsnjxW9Kr1/HSo0ctqVXL0lPNbMO4ym4A+cyqWKO47KivaNq0qegjb5miVqjRVFSsZTKH7fPPP49MSs+ePQ8yfHohy5Yti1YH16lTp9pHqcoAqpj6vKE+W6jHqEooXVBy8sknRwtL9NlCNYDTp0+XtWvXljknXcBy2WWXRdPYFW36vcYTJkw46E+zZs2SevXqVfv6aIACKIAC+aLAH/7QQn772xNk27a6JafUpMnncvnlb8ppp23Jl9PkPFCgRiuwZ88eGTZsWDoM4P333x+tpH3hhRcqDIqu0r3gggvk6quvrnbQKjOAav4GDx4crQResmSJNGnSpMq+1eOqAZ0xY4boamDrFDAVwGqHMGiDuHdUQU8iTztHGyqA1UFz/vwiueiiWvJVOeCbx3WKir6qD8yZc0AuuMCpVlCd08nbfRlXVYcGfdzzTqoqgLoA4+abb5Yf/ehHFV75008/Ha3G/Z//+Z9qD+qKDGDG/L333nuydOnS6PuGs206DXzCCSdEr4Y566yzom8q0UUgr776arSARDf9d/fu3VkEkk3MPPo7z+NUnWz0dUn9+vXj8YFyMsFNWUF02rdtW5GNGyvmSR/fbtVKZP16KfjpYNjJbgDJOxVrFJedVD0D2KhRo+jbPjIrcMtfuk7RZl7ZEsc77N69W9atWxftqi+X1lfL6PRy48aNo0Ul+moYfam0Gktd4JHZ9O+HHXaY6NfRPfbYY9EHn86jv/POO9EqZH0NjK4YrvX1Ay26MEQXq0yePDnqQl8D06ZNG14DEydIebJP3AGVJ6eb6GmgDeY4LnDLlon07Jl976VL9Q0L2feryXswrjCAVr7jspMqA6gLPfQZvH/4h3+oUBd97k5fy5JZGJJNPO1LDV/57ZJLLhF9Bk8Xd1S0aTVQj7Nhwwb5yU9+Ei3+UDOpizTOO++8aBWwmsTMtn379oNeBP3ggw/yIuhsAcqjv8cdUHl0yomdCtr4N4BaKVuxQmTLFpEWLUTOPLNmVMRmzxYZNiw7mrNmiQwdmn2/mrwH4woDaOU7LjupMoA6barP+N1www0V6qLf0vHEE09E79mraVvoQMUFpqbpGvd60Me/yYmrfZr3s3Azb57ItdeWnSbVadH77xcZODDNauiqXyqAcSNoYSdu3zVhP/Rxz8mhfUXpM3ReBazfpKHv1NOvWfunf/qnMlev36oxdOjQaBpXp1hr2hY6UAwm7jatYwZ23BNxpgc1f4MGydcLJL7pN/Nq07lz020CM88Abtp08DXq1fIM4DcxZ1yRk0Pn5NC+wqsB1M50ylVfhaLv49Nv0dDFG7rQQt+zp6t1Z+scQw3cQgeKZEOysQ4b2PFjAAtlgUTG5KpqpV8MVlNMrnUclW/HuCInW1mKy05oX+HdAGqH+p2/uvhCF3Doa1f0pcr6Lhs1gDV1Cx2ouMDUVH2zXRf6+DE52XSuaX+vDjeFND1a0TR369Yi+o2aaZ/m9sVwddjxdcw09YM+7jk5tK8IYgDTBKmvcw0dKAYTd5tWVmHHPRFrD4W2QEIrnkuX7pdFi96Qvn1PlJ49Dy34V7+UJolxRU4OnZND+wqvBvCQQw7J+j2/OiW8f/9+q2552y50oEg2JBsr/LDjxwAWUgUwoxjs+GHHOnbT3A523NkJ7Su8GsAnn3yy0it+5ZVX5IEHHoimhPUr42raFjpQDCYMoHXMwI57ItYeCnGBBOz4Ycc6dtPcDnbc2QntK7wawIoud82aNTJu3Ljopco//vGP5dZbb630RdFphj10oBhMGEDr+IAd90Sc6aHQFkjAjj92rOM3re1gx52d0L4imAHUb9bQFy5Pnz5d+vTpIxMnToy+gq2mbqEDxWDCAFrHDuy4J+LSPRTSAgnY8cuOdQynsR3suLMT2ld4N4C7du2KzJ5O95544okyadIkOVNfk1/Dt9CBYjBhAK1DCHbcE3H5HmrqN4GUv07Y8c+OdRynrR3suLMT2ld4NYC/+tWvIsN39NFHRyawf//+aWPWfL6hA8VgwgBa4YQd90Rs1T7t7WAHdqwMw447O6F9hVcDqKuA69atKz/84Q+lVq1alV79PJ1DqWFb6EAxmDCA1iEDO+6J2Kp92tvBDuxYGYYdd3ZC+wqvBvDSSy/N+hoYPeDUqVOtTOVtu9CBYjBhAK3ww457IrZqn/Z2sAM7VoZhx52d0L7CqwG0glIT2oUOFIMJA2gdJ7Djnoit2qe9HezAjpVh2HFnJ7SvwABa6S7XLnSgGEwYQCuqsOOeiK3ap70d7MCOlWHYcWcntK/AAFrpxgB6Us5PNyQb92TjJxLp6gVuuLGyEgs7sBOaHQygVeGE24UOFMmGZGNFGnYwx7BjVQB2rMqRd9zZCe0rqABa6aYC6Ek5P92QbNyTjZ9IpKsXuOHGykos7MBOaHYwgFaFE24XOlAkG5KNFWnYwRzDjlUB2LEqR95xZye0r6ACaKWbCqAn5fx0Q7JxTzZ+IpGuXuCGGysrsbADO6HZwQBaFU64XehAkWxINlakYQdzDDtWBWDHqhx5x52d0L6CCqCVbiqAnpTz0w3Jxj3Z+IlEunqBG26srMTCDuyEZgcDaFU44XahA0WyIdlYkYYdzDHsWBWAHaty5B13dkL7CiqAVrqpAHpSzk83JBv3ZOMnEunqBW64sbISCzuwE5odDKBV4YTbhQ4UyYZkY0UadjDHsGNVAHasypF33NkJ7SuoAFrppgLoSTk/3ZBs3JONn0ikqxe44cbKSizswE5odjCAVoUTbhc6UCQbko0VadjBHMOOVQHYsSpH3nFnJ7SvoAJopZsKoCfl/HRDsnFPNn4ika5e4IYbKyuxsAM7odnBAFoVTrhd6ECRbEg2VqRhB3MMO1YFYMeqHHnHnZ3QvoIKoJVuKoCelPPTDcnGPdn4iUS6eoEbbqysxMIO7IRmBwNoVTjhdqEDRbIh2ViRTpqdAwdEVqwQ2bJFpEULkTPPFKlVy3r2YdslrU3Yq/HfO/pwY2WlCnbc2QntK6gAWummAuhJOT/dkGzck42PSMybJ3LttSIbN37TW6tWIvffLzJwoI8j+O0DbrixshIFO7ATmh0MoFXhhNuFDhTJhmRjRTopdtT8DRokUlxc9kyLir76ee7cMCbQpeKYlDbW2OW6Hfrkx41VrjmwHB923NkJ7SuoAFrIrqBN6EAxmDCAVlSTYEdNWNu2ZSt/ZZJLkYhWAtev9zsd7FpxTEIba9zyoR36uH+I50Mcc3EOsOPOTmhfgQH0NDJCB4rBhAG0opoEO8uWifTsmf0Mly4V6dEj+35x9vBRcUxCmzjXkq/7oI/7h3i+xjb0ecGOOzuhfQUG0NMoCB0oBhMG0IpqEuzMni0ybFj2M5w1S2To0Oz7ZdvDV8UxCW2yXUs+/x193D/E8zm+Ic8NdtzZCe0rMICeRkDoQDGYMIBWVJNgJ+kKoK/jJaGNNW750A593D/E8yGOuTgH2HFnJ7SvwAB6GhmhA8VgwgBaUU2CnUxFbtOmgxeB6HnrQhCfzwD6qjgmoY01bvnQDn3cP8TzIY65OAfYcWcntK/IawO4fPlyueuuu2TVqlWyZcsWmT9/vgwYMKDknIuLi2XChAkyZcoU2bFjh3Tr1k1+/etfy3HHHVeyz759+2TMmDEye/Zs+fzzz+Wcc86Rhx56SFrpp9HXm7a95ppr5Kmnnop+c/7558sDDzwgDRs2jD1uQgeKwYQBjA1juR2TYifzTJ4evvRK4BCrgKkAWmmoXruk2KneWeXH3mhDTraSGJed0L4irw3gokWL5OWXX5aTTjpJLrzwwoMM4KRJk+T222+XadOmSceOHeW2224TNY1r166V+vXrR9d25ZVXyoIFC6J9mjRpIqNHj5bt27dHprLW12+n7du3r2zcuDEykrqNGDFC2rZtG7WLu4UOVFxg4p5vTdsPfdzvNn0wUdGq3NatRe67z+8rYHxVHOGGD3Er97ADO6HZCe0r8pEZCQsAACAASURBVNoAljm5oqIyBlCrfy1btpSRI0fKDTfcEO2q1b6jjjpK1Bj+9Kc/lV27dkmzZs1kxowZMmTIkGifzZs3S+vWrWXhwoXSp08fWb16tXTu3FlWrlwZVRB103+fdtppsmbNGunUqVOsGIcOFMmGZBMLxAp2Spodl/fyVecafVQck9amOteXD/uiT37cWOUDC9U9B9hxZye0r0itAfzggw+kffv28tprr0nXrl1LrqN///7R1O306dNlyZIl0ZSvVvwaNWpUsk+XLl2iqWSdPn700Udl1KhRsnPnzjLR0j7uvfdeGT58eIVRVLOp/2U2DZQay61bt0qDBg2qO1ay7q+DafHixdKrVy+pXbt21v0LbQf0qTrZ1FR25s8vklGjasmmTV+/bVr0WcNiufvuA3LBBeXeSF2JOa6p2vjIAYyrwhxXsONDAXd21Fc0bdo0KmaF8BWpNYCvvPKKnHHGGbJp06aoEpjZdPr2o48+kmeffVZmzZoVGbjSRk336927t7Rr104mT54sEydOjKaH33333TLR0illbTtu3LgKozh+/PjIQJbf9Jj16tULSw+9owAKlCigFcd33mkiO3YcLo0a7ZXOnbfl7XcPEzYUQAEUiKvAnj17ZNiwYRjAonJTwBkDqFO6LfQb57/errjiCtmwYYP8/ve/r9QAahVNq4cPP/xwZAC1WqjPDZbeOnToIJdddpnceOONFcaKCmBchJPZj0qF+91mMpHKr6PATdXxQB/GlXXEwo47O1QAv9awvAHM9RRw+dCGnqvneYrsH1T6XGe/fv2YIi8nFexUnYjhBn0sJodxRU62cKNt4rIT2leUPv+iYl1ZkadbeQOYWQRy3XXXyfXXXx+d9RdffCHNmzc/aBHIzJkzZfDgwdE++joZfQVM+UUgr776qpx66qnRPvrv7t27swgkT1mo6LTiDqgUXZK3U0UbDI4VJtiBHdixKuDOTkEbwN27d8u6desiFXWhxz333CM9e/aUxo0byzHHHBMZvTvuuEOmTp0qOmWr07nLli076DUwTz/9dPScn7bTdwJu27btoNfA6FSyPhOomz5H2KZNG14D45/7YD3yQeWebIIFJ487hhuqOFY8YQd2QrNT0AZQzZwavvLbJZdcEhm6zIug1biVfhH08ccfX9Jk7969Mnbs2Oh5wNIvgtYVu5lNVwmXfxH0gw8+yIugrXTnoB3JGANowQ5u+BC3cKNtYAd2QrNT0AbQKm4u2oUOFMmGZGPlGnYwx7BjVQB2rMqRd9zZCe0rSp9hXj8DaIUwqXahA8VgwgBaWYYd90Rs1T7t7WAHdqwMw447O6F9BQbQSne5dqEDxWDCAFpRhR33RGzVPu3tYAd2rAzDjjs7oX0FBtBKNwbQk3J+uiHZuCcbP5FIVy9ww42VlVjYgZ3Q7GAArQon3C50oEg2JBsr0rCDOYYdqwKwY1WOvOPOTmhfQQXQSjcVQE/K+emGZOOebPxEIl29wA03VlZiYQd2QrODAbQqnHC70IEi2ZBsrEjDDuYYdqwKwI5VOfKOOzuhfQUVQCvdVAA9KeenG5KNe7LxE4l09QI33FhZiYUd2AnNDgbQqnDC7UIHimRDsrEiDTuYY9ixKgA7VuXIO+7shPYVVACtdFMB9KScn25INu7Jxk8k0tUL3HBjZSUWdmAnNDsYQKvCCbcLHSiSDcnGijTsYI5hx6oA7FiVI++4sxPaV1ABtNJNBdCTcn66Idm4Jxs/kUhXL3DDjZWVWNiBndDsYACtCifcLnSgSDYkGyvSsIM5hh2rArBjVY68485OaF9BBdBKNxVAT8r56YZk455s/EQiXb3ADTdWVmJhB3ZCs4MBtCqccLvQgSLZkGysSMMO5hh2rArAjlU58o47O6F9BRVAK91UAD0p56cbko17svETiXT1AjfcWFmJhR3YCc0OBtCqcMLtQgeKZEOysSINO5hj2LEqADtW5cg77uyE9hVUAK10UwH0pJyfbkg27snGTyTS1QvccGNlJRZ2YCc0OxhAq8IJtwsdKJINycaKNOxgjmHHqgDsWJUj77izE9pXUAG00k0F0JNyfroh2bgnGz+RSFcvcMONlZVY2IGd0OxgAK0KJ9wudKBINiQbK9KwgzmGHasCsGNVjrzjzk5oX0EF0Eo3FUBPyvnphmTjnmz8RCJdvcANN1ZWYmEHdkKzgwG0Kpxwu9CBItmQbKxIww7mGHasCsCOVTnyjjs7oX0FFUAr3VQAPSnnpxuSjXuy8ROJdPUCN9xYWYmFHdgJzQ4G0Kpwwu1CB4pkQ7KxIg07mGPYsSoAO1blyDvu7IT2FVQArXRTAfSknJ9uSDbuycZPJNLVC9xwY2UlFnZgJzQ7GECrwgm3Cx0okg3Jxoo07GCOYceqAOxYlSPvuLMT2ldQAbTSTQXQk3J+uiHZuCcbP5FIVy9ww42VlVjYgZ3Q7GAArQon3C50oEg2JBsr0rCDOYYdqwKwY1WOvOPOTmhfQQXQSjcVQE/K+emGZOOebPxEIl29wA03VlZiYQd2QrODAbQqnHC70IEi2ZBsLEgfOCCydOl+WbToDenb90Tp2fNQqVXL0lPNbMO4YlxZyYYd2AnNTmhfQQXQGkEqgJ6U89MNyfhgHefNE7n2WpGNG7/5W6tWIvffLzJwoB/d094L3PAhbmUYdmAnNDsYQKvCCbcLHSiSDcmmOkir+Rs0SKS4uGyroqKvfp47FxOoOjCuGFfVGVel94Ud2AnNTmhfQQXQGkEqgJ6U89MNyfgbHXXat23bspW/MgO9SEQrgevXS8FPB8MNH+LWDAQ7sBOaHQygVeGE24UOFMmGZBMX6WXLRHr2zL730qUiPXpk368m78G4YlxZ+YYd2AnNTmhfQQXQGkEqgJ6U89MNyfgbHWfPFhk2LLuus2aJDB2afb+avAfc8CFu5Rt2YCc0OxhAq8IJtwsdKJINySYu0lQA4yrFM4DZlCLvVK4Q2pCTs42fyv4el53QvoIKoDWCVAA9Keenm7gDys/R8ruXzDOAmzYdvAhEz1wXgvAM4FcxhBs+xK2jGXZgJzQ7GMAsCrdt21Y++uijg/a66qqr5Ne//rVceumlMn369DJ/79atm6xcubLkd/v27ZMxY8bI7Nmz5fPPP5dzzjlHHnroIWmln5Ixt9CBItmQbGKiGO2WWQWs/y69EphVwGVVZFwxrqozrkrvCzuwE5qd0L6i9PkXFReXf2mE9fKSa/fpp5/KAS15fL299dZb0qtXL1m6dKn06NEjMoCffPKJTJ06tWSfww47TBo3blzy85VXXikLFiyQadOmSZMmTWT06NGyfft2WbVqldSK+dbc0IEi2ZBsqjuqKnoPYOvWIvfdxytgMloyrhhX1R1XsBNPMcZW5TrF1Sa0r0i9ASwv8ciRI+Xpp5+W9957T4qKiiIDuHPnTnniiScqjMauXbukWbNmMmPGDBkyZEi0z+bNm6V169aycOFC6dOnTyzaQwcqLjCxTrYG7oQ+FQeVbwLB4LgMd8aV+4e4i/5pbgs77uyE9hU1ygB+8cUX0rJlSxk1apT8/Oc/j65NDaCaP636NWzYUM4++2y5/fbbpXnz5tHflyxZEk35asWvUaNGJXp06dJFBgwYIBMmTKgwijptrP9lNg2UmsatW7dKgwYNvI9bHUyLFy+Oqpu1a9f23n/aO0SfqpMN7FSsD9xkN8iwAzuWzwfGlntOVl/RtGlT0UJVCF9Rowzg7373Oxk2bJh8/PHHkRHU7fHHH5dvfetb0qZNG1m/fr3cfPPNsn///mh6t06dOjJr1iwZPnx4GTOn7Xr37i3t2rWTyZMnVxjF8ePHV2gOtb969epZxgttUAAFUAAFUAAFUCBSYM+ePZGnwQDGAEKna7XSp8/zVbZt2bIlMoNz5syRgQMHVmoAtdLWvn17efjhh6kAxtA+17twt+l+t5nrGObi+HBDBdDKHezATmh2qADGVFhXAn/nO9+RefPmSf/+/ats1aFDB7n88svlhhtuME8Blz9A6Ll6nqfInmz0mc1+/foxRV5OKtip2hzDDfrE/Jgpsxvjipxs4UbbxGUntK8off6pXAWcuQCdktXp2g0bNsihhx5aaVy2bdsm3/72t2XKlCly8cUXR6VVXQQyc+ZMGTx4cNROq4T6ChgWgVjxTr5d3AGV/Jnl/ohog8GxUgg7sAM7VgXc2cEAxtD+yy+/jJ7XGzp0qNx5550lLXbv3i1qDC+88EJp0aKFfPjhh9HiEH1GcPXq1VK/fv1oX30NjK4c1tfA6Oth9J2AahR5DUwM8fNkFz6o3JNNnoQy0dOAG6o4VuBgB3ZCs4MBjKHwc889F72uZe3atdKxY8eSFvpSZ13J+/rrr0evglET2LNnT7n11lujFbuZbe/evTJ27NjoecDSL4IuvU+20wgdKJINySYbg5X9HXYwx7BjVQB2rMqRd9zZCe0rSp9hqqeArZD6ahc6UAwmDKCVVdhxT8RW7dPeDnZgx8ow7LizE9pXYACtdJdrFzpQDCYMoBVV2HFPxFbt094OdmDHyjDsuLMT2ldgAK10YwA9KeenG5KNe7LxE4l09QI33FhZiYUd2AnNDgbQqnDC7UIHimRDsrEiDTuYY9ixKgA7VuXIO+7shPYVVACtdFMB9KScn25INu7Jxk8k0tUL3HBjZSUWdmAnNDsYQKvCCbcLHSiSDcnGijTsYI5hx6oA7FiVI++4sxPaV1ABtNJNBdCTcn66Idm4Jxs/kUhXL3DDjZWVWNiBndDsYACtCifcLnSgSDYkGyvSsIM5hh2rArBjVY68485OaF9BBdBKNxVAT8r56YZk455s/EQiXb3ADTdWVmJhB3ZCs4MBtCqccLvQgSLZkGysSMMO5hh2rArAjlU58o47O6F9BRVAK91UAD0p56cbko17svETiXT1AjfcWFmJhR3YCc0OBtCqcMLtQgeKZEOysSINO5hj2LEqADtW5cg77uyE9hVUAK10UwH0pJyfbkg27snGTyTS1QvccGNlJRZ2YCc0OxhAq8IJtwsdKJINycaKNOxgjmHHqgDsWJUj77izE9pXUAG00k0F0JNyfroh2bgnGz+RSFcvcMONlZVY2IGd0OxgAK0KJ9wudKBINiQbK9KwgzmGHasCsGNVjrzjzk5oX0EF0Eo3FUBPyvnphmTjnmz8RCJdvcANN1ZWYmEHdkKzgwG0Kpxwu9CBItmQbKxIww7mGHasCsCOVTnyjjs7oX0FFUAr3VQAPSnnpxuSjXuy8ROJdPUCN9xYWYmFHdgJzQ4G0Kpwwu1CB4pkQ7KxIg07mGPYsSoAO1blyDvu7IT2FVQArXRTAfSknJ9uSDbuycZPJNLVC9xwY2UlFnZgJzQ7GECrwgm3Cx0okg3Jxoo07GCOYceqAOxYlSPvuLMT2ldQAbTSTQXQk3J+uiHZuCcbP5FIVy9ww42VlVjYgZ3Q7GAArQon3C50oEg2JBsr0rCDOYYdqwKwY1WOvOPOTmhfQQXQSjcVQE/K+emGZOOebPxEIl29wA03VlZiYQd2QrODAbQqnHC70IEi2ZBsrEjDDuYYdqwKwI5VOfKOOzuhfQUVQCvdVAA9KeenG5KNe7LxE4l09QI33FhZiYUd2AnNDgbQqnDC7UIHimRDsrEiDTuYY9ixKgA7VuXIO+7shPYVVACtdFMB9KScn25INu7Jxk8k0tUL3HBjZSUWdmAnNDsYQKvCCbcLHSiSDcnGijTsYI5hx6oA7FiVI++4sxPaV1ABtNJNBdCTcn66Idm4Jxs/kUhXL3DDjZWVWNiBndDsYACtCifcLnSgSDYkGyvSsIM5hh2rArBjVY68485OaF9BBdBKNxVAT8r56YZk455s/EQiXb3ADTdWVmJhB3ZCs4MBtCqccLvQgSLZkGysSMMO5hh2rArAjlU58o47O6F9BRVAK91UAD0p56cbko17svETiXT1AjfcWFmJhR3YCc0OBtCqcMLtQgeKZEOysSINO5hj2LEqADtW5cg77uyE9hVUAK10UwH0pJyfbkg27snGTyTS1QvccGNlJRZ2YCc0OxhAq8IJtwsdKJINycaKNOxgjmHHqgDsWJUj77izE9pXpLoCOH78eJkwYUIZlY866ij561//Gv2uuLg4+vuUKVNkx44d0q1bN/n1r38txx13XEmbffv2yZgxY2T27Nny+eefyznnnCMPPfSQtGrVqlrchw4UgwkDWC0gS+0MO+6J2Kp92tvBDuxYGYYdd3ZC+4rUG8C5c+fK888/X3IdtWrVkmbNmkU/T5o0SW6//XaZNm2adOzYUW677TZZvny5rF27VurXrx/tc+WVV8qCBQuifZo0aSKjR4+W7du3y6pVq0T7iruFDhSDCQMYl8Xy+8GOeyK2ap/2drADO1aGYcedndC+IvUG8IknnpA33njjIKW1+teyZUsZOXKk3HDDDdHftdqnFUI1hj/96U9l165dkVmcMWOGDBkyJNpn8+bN0rp1a1m4cKH06dMnNvuhA8VgwgDGhrHcjrDjnoit2qe9HezAjpVh2HFnJ7SvSL0BvOuuu+TII4+UOnXqRFO8EydOlO985zvywQcfSPv27eW1116Trl27llxn//79pWHDhjJ9+nRZsmRJNOWrFb9GjRqV7NOlSxcZMGDAQdPLpcVSM6n/ZTYNlBrHrVu3SoMGDaxjptJ2OpgWL14svXr1ktq1a3vvP+0dok/VyQZ2KtYHbrLfWMEO7Fg+Hxhb7jlZfUXTpk2jYlUIX5FqA7ho0SLZs2dPNL37ySefRFO8a9askbfffjua5j3jjDNk06ZNUSUws40YMUI++ugjefbZZ2XWrFkyfPjwMkZO9+vdu7e0a9dOJk+eXGkEK3r+UHfWPuvVq2cZL7RBARRAARRAARRAgUgB9TfDhg3DAMbh4e9//3tU9bv++uule/fukQHUKd0WLVqUNL/iiitkw4YN8vvf/75SA6hVNu3n4YcfrvSwVADjRCS5fbjbdL/bTC5a+XMkuKECaKURdmAnNDtUAKupsJq3Y489VsaOHRt0Crj8aYWeq+d5iuzJRp/b7NevH1Pk5aSCnarNMdygTzU/ZqLdGVfkZAs31WEntK8off5FxbpyIsWbVuW0cqfTvDfffHM09XvddddFFUHdvvjiC2nevPlBi0BmzpwpgwcPjvbZsmVL9AoYFoGkCwSSMR/iFmLhhg9xCzfV+RC39p/2dowt95yMAaxiFOj7+370ox/JMcccI3/729+iZwBffPFFefPNN6VNmzaR0bvjjjtk6tSp0qFDh2iByLJlyw56DczTTz8dvQamcePG0TsBt23bxmtgUpZ9SDbuySZlIfdyunCDAbSCBDuwE5odDGAVCl900UXRe/105a2+zkWf+7v11lulc+fOUavMi6B1MUfpF0Eff/zxJb3u3bs3mi7WxRulXwStK3qrs4UOFMmGZFMdHkvvCzuYY9ixKgA7VuXIO+7shPYVpc8w9VPAVlB9tAsdKAYTBtDKKey4J2Kr9mlvBzuwY2UYdtzZCe0rMIBWusu1Cx0oBhMG0Ioq7LgnYqv2aW8HO7BjZRh23NkJ7SswgFa6MYCelPPTDcnGPdn4iUS6eoEbbqysxMIO7IRmBwNoVTjhdqEDRbIh2ViRhh3MMexYFYAdq3LkHXd2QvsKKoBWuqkAelLOTzckG/dk4ycS6eoFbrixshILO7ATmh0MoFXhhNuFDhTJhmRjRRp2MMewY1UAdqzKkXfc2QntK6gAWummAuhJOT/dkGzck42fSKSrF7jhxspKLOzATmh2MIBWhRNuFzpQJBuSjRVp2MEcw45VAdixKkfecWcntK+gAmilmwqgJ+X8dEOycU82fiKRrl7ghhsrK7GwAzuh2cEAWhVOuF3oQJFsSDZWpGEHcww7VgVgx6ocecedndC+ggqglW4qgJ6U89MNycY92fiJRLp6gRturKzEwg7shGYHA2hVOOF2oQNFsiHZWJGGHcwx7FgVgB2rcuQdd3ZC+woqgFa6qQB6Us5PNyQb92TjJxLp6gVuuLGyEgs7sBOaHQygVeGE24UOFMmGZGNFGnYwx7BjVQB2rMqRd9zZCe0rqABa6aYC6Ek5P92QbNyTjZ9IpKsXuOHGykos7MBOaHYwgFaFE24XOlAkG5KNFWnYwRzDjlUB2LEqR95xZye0r6ACaKWbCqAn5fx0Q7JxTzZ+IpGuXuCGGysrsbADO6HZwQBaFU64XehAkWxINlakYQdzDDtWBWDHqhx5x52d0L6CCqCVbiqAnpTz0w3Jxj3Z+IlEunqBG26srMTCDuyEZgcDaFU44XahA0WyIdlYkYYdzDHsWBWAHaty5B13dkL7CiqAVrqpAHpSzk83JBv3ZOMnEunqBW64sbISCzuwE5odDKBV4YTbhQ4UyYZkY0UadjDHsGNVAHasypF33NkJ7SuoAFrppgLoSTk/3ZBs3JONn0ikq5e0cHPggMiKFSJbtoi0aCFy5pkitWqF1zot+oRX4uAjoA035Vbu4rKDAbQqnHC70IGKC0zCl503h0MfDKAFxjRwM2+eyLXXimzc+M0Vtmolcv/9IgMHWq46fps06BP/avzuiTYYQCtRcdkJ7SuoAFojSAXQk3J+uok7oPwcLV29oE16zbGav0GDRIqLy15DUdFXP8+dG9YEwk562cl1loIdd3YwgLmmOObxQweKwcTdZkwUD9oNdtwTsVV7l3Y67du2bdnKX5k79iIRrQSuXx9uOhh20smOC3e+2sKOOzuhfQUVQE+0hw4UgwkDaEUVdtwTsVV7l3bLlon07Jm9h6VLRXr0yL6fZQ/YSSc7llj7bgM77uyE9hUYQE/Uhw4UgwkDaEUVdtwTsVV7l3azZ4sMG5a9h1mzRIYOzb6fZQ/YSSc7llj7bgM77uyE9hUYQE/Uhw4UgwkDaEUVdtwTsVV7l3ZUAF3UC9+WcUVOtlIWl53QvgIDaI1guXahAxUXGE+Xk7pu0CedJifXoOUzN5lnADdtOngRiOqmC0F4BjB3BOUzO7lT5Zsjo497Tg7tKzCAnkZK6EAxmLjbtKIKO+6J2Kq9a7vMKmDtp/RKYFYBuyrr3p5xRU62UhSXndC+AgNojSAVQE/K+ekm7oDyc7R09YI26TWAeuYVvQewdWuR++4L+woYPTbspJudXGYq2HFnBwOYS4KrcezQgWIwcbdZDRzL7Ao77onYqr2vdnwTiC8l/fXDuCInW2mKy05oX0EF0BpBKoCelPPTTdwB5edo6eoFbdJvAHNFHOzAjpU92HFnBwNopS/hdqEDxWDibtOKNOy4J2Kr9mlvBzuwY2UYdtzZCe0rqABa6aYC6Ek5P92QbNyTjZ9IpKsXuOHGykos7MBOaHYwgFaFE24XOlAkG5KNFWnYwRzDjlUB2LEqR95xZye0r6ACaKWbCqAn5fx0Q7JxTzZ+IpGuXuCGGysrsbADO6HZwQBWofAdd9wh8+bNkzVr1kjdunXl9NNPl0mTJkmnTp1KWl166aUyffr0Mr1069ZNVq5cWfK7ffv2yZgxY2T27Nny+eefyznnnCMPPfSQtNK3rMbcQgeKZEOyiYniQbvBDuYYdqwKwI5VOfKOOzuhfUWqK4DnnnuuXHTRRXLKKafI/v375aabbpI333xT3nnnHTniiCOia1MD+Mknn8jUqVNLrvWwww6Txo0bl/x85ZVXyoIFC2TatGnSpEkTGT16tGzfvl1WrVoltWrVisV/6EAxmDCAsUCsYCfYcU/EVu3T3g52YMfKMOy4sxPaV6TaAJaX99NPP5XmzZvLiy++KGeddVaJAdy5c6c88cQTFUZj165d0qxZM5kxY4YMGTIk2mfz5s3SunVrWbhwofTp0ycW/6EDxWDCAMYCEQNYLZkYV4yragFTamfYgZ3Q7IT2FTXKAK5bt046dOgQVQGPP/74EgOo5k+rfg0bNpSzzz5bbr/99sgo6rZkyZJoylcrfo0aNSrRo0uXLjJgwACZMGFChTHWaWP9L7NpoNQ0bt26VRo0aGDlotJ2mmwWL14svXr1ktq1a3vvP+0dok/Vd5uwU7E+cJP9Qxx2YMfy+cDYcs/J6iuaNm0qWqgK4StqjAEsLi6W/v37y44dO2TFihUl1/X444/Lt771LWnTpo2sX79ebr755mi6WKd369SpI7NmzZLhw4eXMXPauHfv3tKuXTuZPHlyhVEcP358heZQ+6tXr55lvNAGBVAABVAABVAABSIF9uzZI8OGDcMAZuPh6quvlmeeeUZeeumlKhdvbNmyJTKDc+bMkYEDB1ZqALXS1r59e3n44YepAGYTPw/+zt2m+91mHoQx8VOAGyqAVuhgB3ZCs0MFMIbCP/vZz6Jn/JYvXx5V7bJtOk18+eWXyw033GCeAi5/jNBz9Txvkj3Z6DOb/fr1Y4q8nFSwU7U5hhv0yfaZUdHfGVfkZAs32iYuO6F9RenzLyrWedQUbXq6av7mz58vy5Yti57/y7Zt27ZNvv3tb8uUKVPk4osvjkqrughk5syZMnjw4Ki5Vgn1FTDVWQSi/egzhhs2bAgyV6/APPfcc9HUNM8AHhxl9Kn6Qxx2KtYHbrJ/iMMO7GT7XK3MIMOOGzuZtQW6kPXII4+0hCF2m9QZwKuuuiqawn3yySfLvPtPhdL3Au7evVv0Wb0LL7xQWrRoIR9++KH8/Oc/l48//lhWr14t9evXj8TR18A8/fTT0Wtg9PUw+k5ANYrVeQ3Mxo0bo0UgbCiAAiiAAiiAAijgSwEtLFXnvcSW46bOABYVFVV4nfrOP33/n77UWVfyvv7666IOWk1gz5495dZbby1j1vbu3Stjx46NzGTpF0FXx9B9+eWX0etj1FRWdl6WoGTaZO4EQlUYXc4tH9qiT+VRQBu0sY5R2IEd2LEq4M6OznJ+9tln0rJlSznkkEP8n0ipHlNnAIOqkWedJ/ksQJ5deqzTQZ+q2gQs6QAAEONJREFUk41WxZN4lUCsYOXRTnBTdTDQh3FlHa6wky52MIBW0hNox2Dig8qKGeykKxFb4xyiHezAjpUr2EkXOxhAK+kJtGMwYQCtmMFOuhKxNc4h2sEO7Fi5gp10sYMBtJKeQDv91pE77rhDxo0bF73Amq2sAuhTORFogzbWfAE7sAM7VgXSxQ4G0H+c6REFUAAFUAAFUAAF8loBDGBeh4eTQwEUQAEUQAEUQAH/CmAA/WtKjyiAAiiAAiiAAiiQ1wpgAPM6PJwcCqAACqAACqAACvhXAAPoX9OoR32R48033xx9Zd3f/vY36dq1q9x///1yyimnVHhE/Vo7fWF1+U2/veS73/1u9OtHHnlE/vu//1veeuut6Od/+Id/kIkTJ8qpp55a0ky/BWXChAllujnqqKPkr3/9a6ArrX63IbSZN29epMW6deui71zUrwgcPXq0/Mu//EuZE3zooYfkrrvuir7677jjjpP77rtPzjzzzOpfRMAWudKnUNkpHco5c+bI0KFDpX///tF3jZfeCpWdOPoUKjv6TVLDhw8/KBvolwscfvjhJb8vVHbi6FOo7Cgc+mUVN910k+jn144dO6Rdu3Zy9913R99vn9lCsoMBDPRBPmTIkMio/eY3v4ne6K3fO3zvvffKO++8E30vcfktYwDXrl1b5nuF9TuLa9WqFe3+4x//WM444ww5/fTTo+Tyq1/9KgLn7bffLulTB9PcuXPl+eefLzmEttd+8mULoY3qpwNIzfJhhx0Wfc2fGsBnnnlG+vTpE136448/HhlCHVCq4+TJk+W3v/1tFJNjjjkmX+SRXOlTqOxkAv/RRx9FXHznO9+Jvh6ytAEsZHbi6FOo7KjBufbaa0Xzdunt6KOPLvmxkNmJo0+hsvPFF19E+aZ58+bR19Xq177pt37pN4t16dIlkc8sDGCAj329+9Mg6vcVn3feeSVHOPHEE+Wf/umf5LbbbqvUAKqJadiwYayzOnDggDRq1EgefPBBufjii6M2Opj0g+uNN96I1UfSOyWljV7XSSedFOmvXwOoW7du3aLfqSnPbN/73veirw7U1+3kw5ZLfQqZHR1LZ599dlTNWbFiRXRnXtoAFjo72fQpVHbU4IwcOTLipbKtkNmJo0+hsvPwww9Hs1Fr1qyR2rVrV4hPaHYwgAE+9XUKr0GDBlEV7pxzzik5wmmnnRa9z0+rVeW3TAWwbdu2ot9T3LlzZ/nFL35R4bRwpq0eR+8e/s//+T+RscwYQIVKvwZMj6UA6dSoVjXyYUtCG/0uxSVLlsj5558ffYj36tVL9G6rXr16kVYXXHBBiRR6965m+cUXX8wHeaJHB0KzU5E+hc7OLbfcIn/5y1+iRzb0O8VLG0DYEalKn0JmRw3O5ZdfHs3AqEnWm3y94dRHfnQrdHay6VPI7Og0r8406OeSFot0lm7YsGFyww03RLN+SbCDAQz0sa/TtDoVOWvWLNFn8GbPnh1V6fTZtPLTBXoK+rvly5dHz/Xpi1hnzJgheoegxvCss86q8CyvvvpqefbZZ6Op5szzJosWLZI9e/ZIx44d5ZNPPomqjXqHodPETZo0CXS11es2lDb6vbeaiFU/HUA61fuv//qv0clt3rw5+tvLL78cTaFnNjXH06dPrzAm1bsqf3vnQh89+0JlR5nQaXe9EWjatOlBBrDQ2cmmTyGzs3Llyui54xNOOEH0WzD0Oe+FCxfKn//85yjXFzo72fQpZHb0caUPP/wwerTrqquukvfee0/0M12LEv/xH/+RCDsYQH+f22V6ev/99yPzoaZOzYhOPaope+2116JnzuJsP/rRj6SoqEieeuqpg3bX5//uvPPOyCB+//vfr7S7v//979K+fXu5/vrrZdSoUXEOG3yfUNp8+eWX8sEHH8ju3bvlhRdeiO7EtQLYo0ePksH0yiuviFZiM9vtt98emW01yfmy5UKfiq69ENjRiquOH71Z6Nu3byRD+Qpg5kO8ENmJo0+hslPRdWsO0lyvN+3/9V//Rd4pJ1J5fQqZHfUDOtu3fv36kuf877nnnpJFiknkHQxg4E99/RDVO8MWLVpEVQY1J7owIc6m5kQXj+hK4NLbf/7nf0aVPZ1iPvnkk7N2pVOgxx57bJln37I2SmCHENqUPm2dmtGHarVKmkQ53bdkSepT2bnXdHa06qfTdZmFVqqDfkjpdsghh0SV4datW6fi8YHSMfTFThx99Aazoq2ms1PZmLniiitk48aNUUWdvHOwSqX1KdS8o9etzxzrs3+lF2wqMzo1rLNYuoV+bAkD6PtTu5L+Mku8tXI3YsSIWEcdNGiQbN++PXqeLbPp831q/tTUdO/ePWs/CpImaD2mlpXzcfOlTflru+yyy0SraZlnLvV5SJ1i12pPZtNnLfWVH/myCKSi+CSlT/ljFwI7egeuU3ilN332VitfOp2nd+n6KEehshNXn0Jkp6Kxqs/X6mu5dEr40UcfjXYpVHbi6lOo7OjKX31ETGet9GZTN805kyZNiirHSbCDAQzkiNSgaTLo1KlT9AEzduzYaFHGSy+9FLn+cePGyaZNm6L3+umm76PTBSD6bjq9a9TKn07x/t//+39l4MCB0T5qHvXdggqNLh/PbN/61rdE/9NtzJgxolPH+loTff+gmkVd4PDmm29KmzZtAl1t9boNoY0aOK2GqtlV/fQ5HH2YVlf8aiVQt8zrGPTZSp0GnjJlSvRuRX0+Ml+00fPMlT6Fyk55estPARc6O3H0KVR29J2reiOuz/vpTI9O++ojJfrcZOb9rIWcd+LoU6js6OyUFiA03/zsZz+LngHUx8auueaa6N2ASeQdDGD1vEvsvX/3u99FJk+nAnSlz4UXXig6paurc3XToOsDoJnqlJo7NSRqCuvWrRsZQW1f+oWQahD1XWXlN12hp0vpdbvoooui5w63bt0arSrS5KTPwilo+bKF0EarNppoVW/VTx+w1Ydpddq99KbVP9VaXwR9/PHHR+9mrGyRTa70ypU+hcpOHIOj+xQqO3H0KVR2rrvuuuhdrPqifc3t+jiB5uLSzxkXMjtx9ClUdpSLP/zhD6Ia6aMWukhRZ60yq4Az4y5k3sEA5upTnuOiAAqgAAqgAAqgQI4UwADmSHgOiwIogAIogAIogAK5UgADmCvlOS4KoAAKoAAKoAAK5EgBDGCOhOewKIACKIACKIACKJArBTCAuVKe46IACqAACqAACqBAjhTAAOZIeA6LAiiAAiiAAiiAArlSAAOYK+U5LgqgAAqgAAqgAArkSAEMYI6E57AogAIogAIogAIokCsFMIC5Up7jogAKoAAKoAAKoECOFMAA5kh4DosCKJBuBfRbfHr27Cn6Xc0NGzYMdjFr1qyJvjlIvy1Av+FG/8+GAiiAAq4KYABdFaQ9CqBAQSqg3zm9fft2Oeqoo6SoqCiYBvp1hvrVjo8++mj0nd9NmjQJdiw6RgEUKBwFMICFE2uuFAVQoJoK/O///q/Url37oFaV/b6a3YuayMMOO6zKZieffLKcd955MmHChEr383U+1T1/9kcBFEivAhjA9MaOM0cBFKhAgS+//FLuuusueeSRR2TDhg1Rhe6nP/2p3HTTTdEXrc+fP182btwoRx99tPz4xz+W//iP/ygxeePHj5cnnnhCrrnmGrntttvkww8/lAMHDsghhxwiv/nNb2TRokXy/PPPy5gxY6Lp3/JTwK+88orceOON8sc//lGaNm0qF1xwgdxxxx1yxBFHRGfatm1bufzyy2XdunXReQwYMECmT59eaRzLVxZvueWWaDq4Xbt28vjjj4t+UfzKlSujcxs+fLhMnTpVfvWrX8n69eujY+l1XHXVVSX9/8///E+kxerVq+X444+PNBk4cKC8/vrrcuKJJ8ITCqBAASmAASygYHOpKFAICqjJU/N37733yg9+8APZsmWL6HN0arzU1P3jP/6jtGzZUt5880254oorZNSoUXL99ddH0qgB/M///M+onRq3WrVqyQknnBAZwObNm0e/69GjR/R7NVmlDaD2d/rpp8utt94aVew+/fRT+fd//3fp0qVLZMwyBlCfGbz55psj86fbscceW2lY/vrXv8oPf/hDOffccyPTqVPAOh2sBlAN3t133y1du3aVOnXqyDPPPCNqEB988MHod2rq9PruueceueSSS+Tvf/971E6vX4+v53/ttdfKBx98gAEshIHBNaJAOQUwgCCBAihQYxT47LPPpFmzZpEJUsOXbdNKoVbS/vSnP5UYwIkTJ8qmTZuifjKbVuJGjhwZmcrMVn4RyMUXXyx169aVyZMnl+zz0ksvydlnnx2Zr8MPPzwybWrOtPoXd9PKnJpFNae6aVVSjdx9990XGbjMdswxx8ikSZNk6NChJb9Tw7tw4ULRyuSUKVNk3LhxUVW0Xr160T4PP/ywXHnllRjAuMFgPxSoQQpgAGtQMLkUFCh0BXSKs1u3blFVS01S+W3u3LmRcdIp2N27d8v+/fulQYMG8re//a3EAD722GPy3nvvlWmqBnDmzJnRlHFlBvC4446L+i39zGBxcbHs2bNH3nnnHfne974XGUCtyunUa9ytMgOo5vKMM86IutFqo1Yo1YBqtTKz6fUdeeSR8sknn8h1110nf/7zn2XJkiUlf9eftX+mgONGg/1QoOYogAGsObHkSlCg4BXQadjvf//7FRpAfVZOp3Z1MUWfPn0iYzRnzpxoGnXnzp0lBlCfASz/qhU1gJln9iozgGrwevXqFT13V37T6pwu9lADqJVE/S/uVpkBLG3a1ODpM41qUtUAl950ulrNsB7zL3/5CwYwrvDshwI1XAEMYA0PMJeHAoWkwN69e6Vx48byX//1XwdNAavR00UT77//fokkOk2sVUEfBlCrg/rM3gsvvFCp5KEMoB6wVatW0QIPfb6voi0zBawLYLRSqJtOV//bv/0bFcBCGiRcKwp8rQAGEBRQAAVqlAJa4bv//vujqV6dItXp0bfffjtalTto0CCZMWOGnHLKKdGiCd1XV/n6MIBaXevevXu0GleneXXlr662Xbx4sTzwwAORxiEN4G9/+9uo+qgLVfr27Sv79u2Lnm3URSe60EWnvLUSqFXKX/ziF9GzhPoMoU5bMwVco4YAF4MCsRTAAMaSiZ1QAAXSooC+BkZNkK4E3rx5s7Ro0SKqcukCCF3tqy9UVnOkK3XVsOniCh8GUPXR17/o831/+MMfRJ//a9++veiLnH/+858HN4B6gFmzZkWvwNFnDtWA6gpmnfrV19H8//bu4IRBGIDCcPdwA3dwCvdfwRlKCr31Ukj5TfkCXvPiFw8PRR1jPAYfFqOY7vv+ult4nqcCuMrFbZ0EJgoogBMxTUWAAIGVBN5vFLsDuNKuWSuBOQIK4BxHsxAgQGA5AQVwuS2zYALTBBTAaZQmIkCAwHcC45uD4/g0juN4/Xnkl0MB/KWuuQncW0ABvPf+WB0BAn8scF3XYxyfxnhTd9u2Pz57p0aAQCmgAJb6sgkQIECAAAECgYACGKCLJECAAAECBAiUAgpgqS+bAAECBAgQIBAIKIABukgCBAgQIECAQCmgAJb6sgkQIECAAAECgYACGKCLJECAAAECBAiUAgpgqS+bAAECBAgQIBAIKIABukgCBAgQIECAQCmgAJb6sgkQIECAAAECgYACGKCLJECAAAECBAiUAgpgqS+bAAECBAgQIBAIKIABukgCBAgQIECAQCmgAJb6sgkQIECAAAECgYACGKCLJECAAAECBAiUAk/xTbAdGa5iwwAAAABJRU5ErkJggg==\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib notebook\n",
"shotNum = \"0008\"\n",
"filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
"\n",
"dataSetDict = {\n",
" dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
" for i in [0]\n",
"}\n",
"\n",
"dataSet = dataSetDict[\"camera_0\"]\n",
"\n",
"print_scanAxis(dataSet)\n",
"\n",
"scanAxis = get_scanAxis(dataSet)\n",
"\n",
"dataSet = auto_rechunk(dataSet)\n",
"\n",
"dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
"\n",
"imageAnalyser.center = (135, 990)\n",
"imageAnalyser.span = (250, 250)\n",
"imageAnalyser.fraction = (0.1, 0.1)\n",
"\n",
"dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
"dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
"\n",
"Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
"Ncount_mean = calculate_mean(Ncount)\n",
"Ncount_std = calculate_std(Ncount)\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.gca()\n",
"Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
"\n",
"plt.ylabel('NCount')\n",
"plt.tight_layout()\n",
"#plt.ylim([0, 3500])\n",
"plt.grid(visible=1)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"Ncount_mean_1 = Ncount_mean\n",
"Ncount_std_1 = Ncount_std\n",
"\n",
"fitAnalyser_1 = FitAnalyser(\"Gaussian With Offset\", fitDim=1)\n",
"# params = fitAnalyser.guess(Ncount_mean_1, x=scanAxis[0], guess_kwargs=dict(negative=True), dask=\"parallelized\")\n",
"params = fitAnalyser_1.fitModel.make_params()\n",
"params.add(name=\"amplitude\", value= -3000, max=np.inf, min=-np.inf, vary=True)\n",
"params.add(name=\"center\", value= 2.785, max=np.inf, min=-np.inf, vary=True)\n",
"params.add(name=\"sigma\", value= 0.1, max=np.inf, min= 0, vary=True)\n",
"params.add(name=\"offset\", value= 3000, max=np.inf, min=-np.inf, vary=True)\n",
"\n",
"fitResult_1 = fitAnalyser_1.fit(Ncount_mean_1, params, x=scanAxis[0]).load()\n",
"freqdata = np.linspace(2.76, 2.81, 500)\n",
"fitCurve_1 = fitAnalyser_1.eval(fitResult_1, x=freqdata, dask=\"parallelized\").load()\n",
"fitCurve_1 = fitCurve_1.assign_coords({'x':np.array(freqdata)})\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.gca()\n",
"\n",
"Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
"fitCurve_1.plot.errorbar(ax=ax, fmt='--g')\n",
"plt.xlabel('Center Frequency (MHz)')\n",
"plt.ylabel('NCount')\n",
"#plt.ylim([0, 3500])\n",
"plt.tight_layout()\n",
"plt.grid(visible=1)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"f_1 = fitAnalyser_1.get_fit_value(fitResult_1).center\n",
"df_1 = fitAnalyser_1.get_fit_std(fitResult_1).center\n",
"\n",
"print('f = %.5f \\u00B1 %.5f kHz'% tuple([np.abs(f_1)* 1e3,df_1* 1e3]))\n",
"\n",
"s_1 = fitAnalyser_1.get_fit_value(fitResult_1).sigma\n",
"ds_1 = fitAnalyser_1.get_fit_std(fitResult_1).sigma\n",
"\n",
"fwhm_1 = 2.3548200*s_1 * 1e3\n",
"dfwhm_1 = 2.3548200*ds_1 * 1e3\n",
"\n",
"print('fwhm = %.5f \\u00B1 %.5f kHz'% tuple([np.abs(fwhm_1),dfwhm_1]))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib notebook\n",
"shotNum = \"0016\"\n",
"filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
"\n",
"dataSetDict = {\n",
" dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
" for i in [0]\n",
"}\n",
"\n",
"dataSet = dataSetDict[\"camera_0\"]\n",
"\n",
"print_scanAxis(dataSet)\n",
"\n",
"scanAxis = get_scanAxis(dataSet)\n",
"\n",
"dataSet = auto_rechunk(dataSet)\n",
"\n",
"dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
"\n",
"imageAnalyser.center = (135, 990)\n",
"imageAnalyser.span = (250, 250)\n",
"imageAnalyser.fraction = (0.1, 0.1)\n",
"\n",
"dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
"dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
"\n",
"Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
"Ncount_mean = calculate_mean(Ncount)\n",
"Ncount_std = calculate_std(Ncount)\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.gca()\n",
"Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
"\n",
"plt.ylabel('NCount')\n",
"plt.tight_layout()\n",
"#plt.ylim([0, 3500])\n",
"plt.grid(visible=1)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[9.525, 9.527, 9.529, 9.531, 9.533, 9.535, 9.537, 9.539, 9.541, 9.543, 9.545, 9.547, 9.549, 9.551, 9.553, 9.555, 9.557, 9.559]\n",
"18\n"
]
},
{
"data": {
"text/plain": [
"9.542"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"l = list(np.arange(9.525, 9.56, 0.002))\n",
"# l = np.logspace(np.log10(250e-6), np.log10(500e-3), num=15)\n",
"\n",
"l = [round(item, 7) for item in l]\n",
"#random.shuffle(l)\n",
"\n",
"print(l)\n",
"print(len(l))\n",
"np.mean(l)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"[10.25, 10.255, 10.26, 10.265, 10.27, 10.275, 10.28, 10.285, 10.29, 10.295, 10.3, 10.305, 10.31, 10.315, 10.32, 10.325, 10.33, 10.335, 10.34, 10.345, 10.35, 10.355]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"pixel = 5.86e-6\n",
"M = 0.6827\n",
"F = (1/(0.3725*8.4743e-14)) * (pixel / M)**2\n",
"NCount = 85000\n",
"AtomNumber = NCount * F / 1e8\n",
"print(AtomNumber)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"muB = 9.274e-24\n",
"hbar = 6.626e-34 / (2 * np.pi)\n",
"gJ = 1.24\n",
"Delta = 2 * np.pi * 100 * 1e3\n",
"\n",
"Bz = (Delta*hbar) / (muB*gJ)\n",
"print(Bz * 1e4)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## ODT 1 Calibration"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"v_high = 2.7\n",
"\"\"\"High Power\"\"\"\n",
"P_arm1_high = 5.776 * v_high - 0.683\n",
"\n",
"v_mid = 0.2076\n",
"\"\"\"Intermediate Power\"\"\"\n",
"P_arm1_mid = 5.815 * v_mid - 0.03651\n",
"\n",
"v_low = 0.0587\n",
"\"\"\"Low Power\"\"\"\n",
"P_arm1_low = 5271 * v_low - 27.5\n",
"\n",
"print(round(P_arm1_high, 3))\n",
"print(round(P_arm1_mid, 3))\n",
"print(round(P_arm1_low, 3))"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## ODT 2 Power Calibration"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"v = 0.7607\n",
"P_arm2 = 2.302 * v - 0.06452\n",
"print(round(P_arm2, 3))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
},
"vscode": {
"interpreter": {
"hash": "c05913ad4f24fdc6b2418069394dc5835b1981849b107c9ba6df693aafd66650"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}