diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 14e2809a..f9ef6417 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,7 +12,7 @@ repos: rev: v1.1.396 hooks: - id: pyright - additional_dependencies: [beartype, einops, jax, jaxtyping, pytest, typing_extensions, equinox, optax, tqdm] + additional_dependencies: [beartype, einops, jax, jaxtyping, pytest, typing_extensions, equinox, optax, tqdm, diffrax] - repo: https://github.com/nbQA-dev/nbQA rev: 1.9.1 hooks: diff --git a/docs/tutorials/custom_strategy.ipynb b/docs/tutorials/custom_strategy.ipynb index 5fa746d5..8fe054cc 100644 --- a/docs/tutorials/custom_strategy.ipynb +++ b/docs/tutorials/custom_strategy.ipynb @@ -29,7 +29,7 @@ "source": [ "import jax\n", "import jax.numpy as jnp\n", - "from flowMC.resource.local_kernel.Gaussian_random_walk import GaussianRandomWalk\n", + "from flowMC.resource.kernel.Gaussian_random_walk import GaussianRandomWalk\n", "from flowMC.resource.buffers import Buffer\n", "from flowMC.resource.logPDF import LogPDF\n", "from flowMC.strategy.optimization import AdamOptimization\n", diff --git a/docs/tutorials/parallel_tempering.ipynb b/docs/tutorials/parallel_tempering.ipynb index acd3c482..e1159032 100644 --- a/docs/tutorials/parallel_tempering.ipynb +++ b/docs/tutorials/parallel_tempering.ipynb @@ -19,7 +19,7 @@ "from jaxtyping import Float, Array\n", "from typing import Any\n", "\n", - "from flowMC.resource.local_kernel.MALA import MALA\n", + "from flowMC.resource.kernel.MALA import MALA\n", "from flowMC.resource.buffers import Buffer\n", "from flowMC.resource.states import State\n", "from flowMC.strategy.take_steps import TakeSerialSteps\n", diff --git a/docs/tutorials/train_flow_match.ipynb b/docs/tutorials/train_flow_match.ipynb new file mode 100644 index 00000000..fa126d6b --- /dev/null +++ b/docs/tutorials/train_flow_match.ipynb @@ -0,0 +1,215 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "e76a4545", + "metadata": {}, + "outputs": [], + "source": [ + "import jax\n", + "import jax.numpy as jnp # JAX NumPy\n", + "import optax # Optimizers\n", + "import equinox as eqx # Equinox\n", + "\n", + "from flowMC.resource.model.common import MLP\n", + "from flowMC.resource.model.flowmatching.base import (\n", + " Solver,\n", + " Path,\n", + " CondOTScheduler,\n", + " FlowMatchingModel,\n", + ")\n", + "from sklearn.datasets import make_moons\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "b3b606ba", + "metadata": {}, + "outputs": [], + "source": [ + "# Optimization parameters\n", + "num_epochs = 5000\n", + "batch_size = 30000\n", + "learning_rate = 1e-3\n", + "momentum = 0.9\n", + "n_samples = 30000\n", + "seed = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "28b5f0dc", + "metadata": {}, + "outputs": [], + "source": [ + "solver = Solver(\n", + " MLP([3, 128, 128, 128, 2], jax.random.PRNGKey(0), activation=jax.nn.swish)\n", + ")\n", + "path = Path(CondOTScheduler())\n", + "model = FlowMatchingModel(solver, path)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "5ebeafbd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGiCAYAAAAba+fDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9eZhc9X3ni7/OVvve+45WJCRZQhbIxALbmNgwDsZJZojJJHGcOJl5bvybcXgmufHMPMn1ZDLOvVnGyYzv42Rwxomd4OCb2DjBYGIIi2xACCGhXWotvXd1d+1VZ19+f5yqUnWrJYRBBsR5PQ+oq+rU6XOqquv7Pp/l/RE8z/MICAgICAgICLhGEN/sAwgICAgICAgIeCMJxE1AQEBAQEDANUUgbgICAgICAgKuKQJxExAQEBAQEHBNEYibgICAgICAgGuKQNwEBAQEBAQEXFME4iYgICAgICDgmiIQNwEBAQEBAQHXFIG4CQgICAgICLimCMRNQEBAQEBAwDXFVRU3zzzzDHfffTeDg4MIgsC3vvWty27/93//9/z4j/84PT09pFIpbrnlFr773e8u2+b/+r/+LwRBWPbfpk2bruJZBAQEBAQEBLyduKriptFosH37dr74xS9e0fbPPPMMP/7jP853vvMdXnrpJT7wgQ9w99138/LLLy/bbsuWLczNzbX/27t379U4/ICAgICAgIC3IfLV3Pldd93FXXfddcXbf+ELX1h2+7/9t//Gww8/zD/8wz9w4403tu+XZZn+/v436jADAgICAgICriGuqrh5vbiuS61WI5fLLbv/9OnTDA4OEolEuOWWW/j85z/P6OjoJfdjGAaGYSzbb7FYpKurC0EQrtrxBwQEBAQEBLxxeJ5HrVZjcHAQUbx08uktLW7+8A//kHq9zr333tu+b/fu3XzlK1/h+uuvZ25ujs997nPceuutHDlyhGQyuep+Pv/5z/O5z33uR3XYAQEBAQEBAVeRqakphoeHL/m44Hme96M4EEEQ+OY3v8nHPvaxK9r+b/7mb/iVX/kVHn74Ye64445LblculxkbG+OP//iP+eVf/uVVt1kZualUKoyOjjI1NUUqlXpN5xEQEBAQEBDw5lCtVhkZGaFcLpNOpy+53VsycvP1r3+dT33qU3zjG9+4rLAByGQybNy4kfHx8UtuEw6HCYfDF92fSqUCcRMQEBAQEPA249VKSt5yPjcPPvggn/zkJ3nwwQf5yEc+8qrb1+t1zpw5w8DAwI/g6AICAgICAgLe6lzVyE29Xl8WUTl37hwHDx4kl8sxOjrKZz/7WWZmZvirv/orwE9FfeITn+BP/uRP2L17N/Pz8wBEo9F2+Ok//If/wN13383Y2Bizs7P8zu/8DpIkcd99913NUwkICAgICAh4m3BVIzf79+/nxhtvbLdx33///dx444389m//NgBzc3NMTk62t//zP/9zbNvm137t1xgYGGj/9+///b9vbzM9Pc19993H9ddfz7333ktXVxfPP/88PT09V/NUAgICAgICAt4m/MgKit9KVKtV0uk0lUolqLkJCAgICHhD8TwP27ZxHOfNPpS3HZIkIcvyJWtqrnT9fksWFAcEBAQEBLwdMU2Tubk5VFV9sw/lbUssFmNgYIBQKPRD7yMQNwEBAQEBAW8Aruty7tw5JElicHCQUCgUGMW+BjzPwzRNFhcXOXfuHBs2bLisUd/lCMRNQEBAQEDAG4Bpmriuy8jICLFY7M0+nLcl0WgURVGYmJjANE0ikcgPtZ+3XCt4QEBAQEDA25kfNtoQ4PNGvH7BOxAQEBAQEBBwTRGIm4CAgICAgIBrikDcBAQEBAQEBKzK+9//fj7zmc+82YfxmgnETUBAQEBAQMDr5qmnnkIQBMrl8pt9KIG4CQi4VslXdR49PEe+qr/ZhxIQEBDwIyUQNwEBb2Fej0A5MFHi24dmOTBRugpHFhAQcK3RaDT4hV/4BRKJBAMDA/zRH/3Rsse/+tWvsmvXLpLJJP39/fzsz/4sCwsLAJw/f54PfOADAGSzWQRB4Bd/8RcBeOyxx9izZw+ZTIauri5+4id+gjNnzlzVcwnETUDAW5R8VeeBZ8/y0P6pH0qg7BzL8tHtg+wcy16FowsICLjW+I3f+A2efvppHn74YR5//HGeeuopDhw40H7csix+93d/l0OHDvGtb32L8+fPtwXMyMgIf/d3fwfAyZMnmZub40/+5E8AXzTdf//97N+/nyeeeAJRFPnJn/xJXNe9aucSmPgFBLxFOTBRYnyhzvreRFug5Ks6ByZK7BzL0pe6vLlVXyrCXdsGfhSHGhAQ8DanXq/z5S9/ma997Wt88IMfBOAv//IvGR4ebm/zS7/0S+2f165dy5/+6Z9y0003Ua/XSSQS5HI5AHp7e8lkMu1tf/qnf3rZ7/qLv/gLenp6OHbsGFu3br0q5xNEbgIC3qLsHMty764RPnXr2raQeT2ppqAGJyDg7cWP8m/2zJkzmKbJ7t272/flcjmuv/769u2XXnqJu+++m9HRUZLJJO973/sAmJycvOy+T58+zX333cfatWtJpVJcd911V/S810MgbgIC3qK0Ii+dEZrXk2p6rcIoEEMBAW8ub6W6uUajwYc//GFSqRR//dd/zYsvvsg3v/lNwB87cTnuvvtuisUi/+t//S9eeOEFXnjhhSt63ushEDcBAW8jVhM8l6NToLSE0Ugutky0XErEPHk8z58/c5Ynj+ff8PMICAh4dX6UdXPr1q1DUZS28AAolUqcOnUKgBMnTlAoFPj93/99br31VjZt2tQuJm7RmuLtOE77vkKhwMmTJ/nP//k/88EPfpDNmzdTKl19sRaIm4CAq8zriYBc6rlXus/OK7+WMJoqqsuuBi95ddiaZhxMNQ4IeFN4rRczr4dEIsEv//Iv8xu/8Rs8+eSTHDlyhF/8xV9sz3kaHR0lFArxP/7H/+Ds2bN8+9vf5nd/93eX7WNsbAxBEPjHf/xHFhcXqdfrZLNZurq6+PM//3PGx8d58sknuf/++6/6+QTiJiDgDeByYuPARImH9k/xwLNnX7PAuZTwuJJwdb6qU1ZNbtvYs+zKb+XV4KWuDm/f1Muv3raW2zf1XvG5BgQEvH35gz/4A2699Vbuvvtu7rjjDvbs2cO73/1uAHp6evjKV77CN77xDW644QZ+//d/nz/8wz9c9vyhoSE+97nP8Vu/9Vv09fXx6U9/GlEU+frXv85LL73E1q1b+fVf/3X+4A/+4Kqfi+B5nnfVf8tbjGq1SjqdplKpkEql3uzDCbgGePTwHN8+NMtHtw9e1KHUaukeX6hz766RS3YwrdYJdanuqCvpmrrcMf2wtM7l6GyFLYPpZcXOAQHvdHRd59y5c6xZs4ZIJPi7+GG53Ot4pet30AoeEPAG0BkFWUlfKsKnbl3bFiOr0SmAAO7aNnBZAdPZ5n1kpsLDB2fYs74b1XSIhST2ji+xZ333sohMa7t7dgyxdSj9mtrKW7Ta02MhmfGFOgcmSkG7eUBAwFuOQNwEBKxC58IP/qI+kosxVVRfVWysRufjK0XFymhI5+/89qFZgGX7Xvn8hw/O8O1Ds5xbaqBIIpbjcmiqzLmlBr/3k9vax9raDmDrUJonj+d5aP809+4a5r7dY1f0urSOrfO1CAgICHirEYibgIBV6BQWAN8+NMtwNsp0SQN4TdGKlRGT1r7LmkUmqlBWTcYX6u00D/gppZFcbFnkpSVqyqrJM6eXAF9sdCfCfHBTLzevyfHi+RKKKGDYLqpptyMr+apOdzzEHZv7uGfHkH9gqxQMrya8Om93irStQ+kf7sUNCAgIuMoE4iYgYBVWppnKqklVt1nbHX/VaMWlIivgC4LW84/OVPjzw3N85F0D3LtrpL39nz01ztdfnOLjN43wb96/vr3fJ4/n+doLk2zsS3Dbhm5GcjH+5HunODRd4ed2jxKWJQ5NlWkYNh+/aYRULERZNclXdZ48nuexo3nu3TXcFiW3b+qFZsldvqrTl4pcFC1aefu1RrQCAgIC3gyCbqmAgCadXUB9qQg7x7LtbqRMLMTBqTIIAgcmSpdtzV7ZyXTPjiHu2NxHdzzU3vdILsYTJ/Is1g1KqrWs3XOypFFomOw9U1jmRXNkpkJVtziVr5OJhZgqqhya9u/bd67IZFFlQ1+CeFgmFfP9Jh7aP82TJxZAELAclyOz1fY++1IRMrEQz5xabB/rSC7GcDbKSC4GXNxJ1XlurZ9b4u2tYDQWEPBW4B3Yp/OG8ka8fkHkJiCgyeWiFp0RnIf2T3FgsrSsU6izfuX2zX2UVZPJosqDL0xw++Y+9qzv5tuHZhntinPXtgEePjhDvmawpjvOh27o49HDc+3Ix03XZXn29CIV1WpHSf7ke6fYP1Fi12iWm9fk2DmW5bkzSziuy7qeOKcW6pwvqNx70wgfuqGfkVyMB1+YwHJc8Dxu39zH2cU64wt1X+x4HggC24bSbWO/P3tqnL1nCjiux87RLD3JsG/g15G2Wq1wOqi/CQjwURQFAFVViUajb/LRvH1RVRW48Hr+MATiJiCgycqFu/PfVq1JvqpzdqlxcadQR2Tk9s19ZGIhHto/DfhRn85C3EcPz7FlMMWJuRTbRzKcmKu2U0a3b+7jb16YZKFq0N+M8Dzw7Fn2T5TQTIdYWOb2zX30pSL8fy9NM77QIBVR+Lndo1R1GzyvLWyeP1tgMBNl23BmWceWL9CaxxZVGMnF+ML3TnFstkLNsNm9pqsdtfraC5M0DBuA+24eXfY6fOvANJMljftuHl21/X1l+ipIWwVc60iSRCaTaTv3xmIxhMAE84rxPA9VVVlYWCCTySBJ0g+9r0DcBAQ0WdnxtPJ2vqrz5IkFuhNh1nbH20Jl51iW2zf1tiMjrYX83ptGwPOWiaNHD8/x1ecnqOkWDcNmuqRx/UCSfFXnmy/PUNVtpssarudhOi5f3nuWY7NVtgym0EyHp08tMJqL8bEbh5BFgYgicsNgivt2j7V9bc4uNdg7XmC2rFFsmDz4wgT37R67OLoiCOwcy/LAs2c5NFVmTXecDX3JtojZOZZlQ2+CF84VefrkQjsCBPDAs2d57Mg8Vd0CYM/67mXiZbWCbFi9xf2HaUkPCHir0t/fD3DRaIKAKyeTybRfxx+WQNwEvKN5LQvrgYkSD704BcCv3ra2PcYA/EX7nh1DPLhvkslCw69ZaaZ+FmtGu/B2stBgoaozU9EYTEeJhSSiioTluByfr7K+N8FP3TjEY0fmmVhSOTVfIyxL3LJW4cRclbJqcXyuylLdYKqoElMkEmGZP3tqnJenyui2w+mFGqppY7keNcPme8cXmCiq6JbD3+yT2bOui00DKb57dJ6qZrFnfTdA2yenJxluvy6bB1K8NFHixfNFzi01ODJbxfM8TuVrDKQj7Louy2g26nd/qWY7SrVzLMtkUeXxo/MMZaPctqH7ki3ul2p5Dwh4OyIIAgMDA/T29mJZ1pt9OG87FEV5XRGbFoG4CXhHcyULa2uhH8nFlkVjwK/BKWsW+arOVFHl2GyVQ1NlXpwoMVlUMW2XG0cznF9SuWEwxbHZKqrpkAzJ3LW1ny2DaQzbYaaskYuF+NndYxyeqaCaDqrlYDsuHh6PHZ2nbtikowrTJZWnTy0ymI4QDcnMlDS+P75EzbBRJBHb8YiFJHIxBcN2WWoYmLMututhOy7TRZV1vQlePF8kGwvxf965if/0kRt49PAcD+2f4vFj85xbbLBQN/ipG4e4dUM3L5wtoFsO3zk8Ry6msKYngWradCfCvHdDD6Ndccqatey1XKobPHlygVwsxG/euakdpSlr1jKxczkDxICAtyuSJL0hi3TAD0cgbgLesVxq9tLKbXyDvSprumJsHc60a14AEIR2NGfbUJobBlMU6gbnlhqkowqq6bS6rRnNRhnNxTgxX2VTX5L3buhhqqjy4rkiEwWV7cMZtg6lOTxdxnFdBDwyMQXTdimpJl2JMImwzIm5GqrlEJZFPvneNQC8Ml0mFpbpToSwHY/+TISlmsnxuSqOCw3DxnI8sjGFnmSYdT1xzi/VGc7FMGyH33vkGHvWd7O+N8FjR+aZK2u4wONH59kylGYkF2Pf+RKO6zHWFUOWBGzH4+hshZ2jWUZyMfa+MMGOkUw7XbdnfTeqYTPaFV8WtXnm1CK3bexpFyvfvqk3iNgEBAS8oQTiJuAdwWrppwMTJZ45vcRHtw+umpLqdA6OhWT2T5T4wZkCeB737R7j6ZML/NUPzmHafkfSVFGl2DDpiofIVw12r8lh2C571nczW9ao6jYThQZTRY2lmsHL02VOz9eJhES64yGmSip/+YNzfO/4AqmoQrFhYdoeXYkwpu2yZ30Xc2WdjX0Jnj21xELN4LmzS/zfP72dyUKDZ04vkq8apKIKuWYreHhRQBYlbNdDAOIhifGFOvNVnWLDpKrZ2I7Hyfka55Ya/Px7xliqG3z/tMNS3e/4ytcMehJhXNdlIB0FD54+uUg2FuIj7xpo1+1878QCH90+yPdPL/L1F6d438YeYmGZTf1JvnVgmhP5GkPpKLdt7KGqmnz9xSlCssjZxXrbvPByKcKgNicgIOBKCcRNwDuCla7ArboQoN0G3er8KdQNvvr8BJv6km3n4Ht2DPHgCxMcmq60W6Mf2HuOUwt1ehJhZsoaMyWNXDzETddlQRAYX6gzXdJY25Ogqtv8v0+NY1guyYiMZjkokohmOtiuiyyKTJY0js1WyVcNBtIRwoqIKIAkwLreBCfn65zO1+hJhjBdF9eDlybKPHdmiaNzVaqazZahFJIgcCpfo27Y6LaL44Jhu4gCFDWLmCJh2C6JsExYEnA8F1EUOJ2v8a2DM5xfUulJhilpFoOZKIOZKFFFZKFmcF1XjLmKTiwk8a7hNN0Jv128Vbdzz44hvrz3LHMVnUcOz6FZDntPL1I3HAp1k75UmF+9bS2TJY2QLNKbirSLsIFlrferidGgNicgIOBKCMRNwDuCzhqZzgWy1cH09RenKKomnudxeKbCibkqMyWNX7hljG3DGQ5PlxntijPaFaeqmjy4bxLDsnFdqOkWj7wyB/ht37GQ7xQ8W9aIh2WqqsmjR+epaH5LtadZDOdiZGMKR2ar4IEkCqzrjnN9f4JzBRVRAK1Z06LIIuMLNQzLwbBdpko6eCAApm3zZ0+fYXyhget5LNQMepO+OV/DsBERMF0HWQRJENAMB9d1AYFcTCEWljkxV/dFVlhmuqShmjZRRaInEaY7Ecb1PKZLvvFfNh5i61CafeeK6LbD156fIB1V+LUPrOdTt67lyRMLlFQTUfBfF0kUMW2Xd49l0S2HiCJR1W1myxq3bezhnh1DF3VxtdrfO4eIdr6HQW1OQEDAqxGIm4Brms5URqsNuSVAfu+RY9yzY4iRXIwdIxkQIBcPoRo2PakIiiRwdqkBwNdemKSimazpilNSLRRJ5HyhgQd4wNahFMfmamzoi9MdD7GhL4Fm2gxmosxVdU7MVwFfkAgCzJRU5soChuUiipAIy/SnI7xwrsR13TEOT1dxPM/3rgEEBCTRNxSXgFwyTMN0GMyEcTwPQfDAg8WqQS4eYjib4NxSA8N2cD2QRYFEWKasWdiOh+N61HQbxwPNdIjIIrm4QrFu0JUIU6ibKBKcLzQYzERpGDZDmSgf2zHE3vElTuZryKJILCyxoTfBZFHlb/dPsv98iYgsIop+Tc5wOsydWwZIRhUmCw1mKzqpiMx71nYxUWhQqBsALNaMtshpTR5f35tYJmQuN3w0ICAgoJNA3ARcE1xqsVstHXXXtgH+0zcP84+vzKKaDnvWd6PbLh/dPkhZNYmEZLYNJxAEeObUIks1g5FclNmzGsfna6ztjnPzmhzDuQh7TxfoToQ4MFlmvqqjWw6LNZMP3dBHdyLM0dkKz58t4HkCIQlCsoQo0BQtfh0MHqRjfk1PqeHPgnI9l5FcnD3ru5mv6MxXdM43hZYs+4aBpu0wVzEwLQfXE9pi6NhclemiRkUzcTwQBV/cdCVDqJaDbrl4QN1wMGwHywXbcbHKHrIo4HhQ121qho2Ax3VdcTygZli8eL7IUt3glrVd9KcjVDSLkmry58+cRW2mwUKSyK7rsqiGgyyJGI7LPx2YZqlucNuGHm7f3McDz57ln47leXmyhOtBOqpQ0Sx2jWW5b/cYH9rS3557tRqdKaqRXGzZYNIr/WwEBARcuwTiJuCa4FL1GDvHspRVkyPTZWYrevvx0WyUeEjmyEyFbExZ1pp8eKbCSxMl0lGFmm7zwrkivckweKBbDsfnakwWVYazUf7t+9bx4vkix+aqhCQRx/WYr2i8PFXCcjxSEYWZks5AKoyLR75iEAtJpCISEUXCsPwW7VLDolg3cQHNclFEgZjip4nOLdaZqeiYtl9no1semmUhArZjI8sCkuBhu34Uqa474Hrolr89gGm5jOcbKJIvdsKyiG65WK6fEpMEcFwPx3OZq2ikIgqe5xEPy8TCEmt74pzK1/nHV+YoNkzu3j7IQDrKI6/MYdouhu0QCUm4nocowFLNZDgXpVA3qWgmhu3SMBw02+Grz53niePz6LZftGzYLmXVxPPg0HSFrUPltgt0yzdnpTjpTFE98OzZZYNJr/SzERAQcO1yVQdnPvPMM9x9990MDg4iCALf+ta3XvU5Tz31FDt37iQcDrN+/Xq+8pWvXLTNF7/4Ra677joikQi7d+9m3759b/zBB7ytWDngsUVrOORsRW+nOfJVHQSBdFRmfKHO37ww6de+NLcf64pTUk0KdYN1vQlEEeYqGqLojyuoGzbzVYNT+TpPncxzbLbKdV0xtg2n6UqEOLNQ55sHZvnu0XlOL9Sp6hZF1WKurGM4HrrtIiBwfV+SG0czeHgYloPScalhuR6RkMi5xToN08HoECqteIYHiKL/gyQs/1Oumy5Osy4HwAZcwHBAFAQiioQiC8RCEngeut08Ls+vzVEkAQFomA7PnylS0SwMy2G+olHXbY7PVTgxX0W3Xdb0xLnpuhxdsRC5RJi1PQmGs1F+MF7gwGSJx4/l0UyHkCyCBw/um+LskkZdd1BkkWxUJqpIjORixMISp/I1njm1iOW4xEISDzx71p/n1TGYs5Wi6ktFuGfHEB/dPsg9O4Ze02cjICDg2uWqiptGo8H27dv54he/eEXbnzt3jo985CN84AMf4ODBg3zmM5/hU5/6FN/97nfb2/zt3/4t999/P7/zO7/DgQMH2L59Ox/+8IcDq+triM4J21f6WOdit5KRXIz1vQnu2TFEXyrCgYkS/3BolrJm058OE1b8AuDW4pmKyPQkI+xe28X/eecmfv4919GdCKNbDlXdas+RrOk2h6arFBsmr0xXODBZRjMdBFHE8TxkUaRYNzAsB92ysVz/eZbj4gITRZXFmoFuuaiWg7Diz7FQ08nXzGaBr/9Y5xYe4LpgO74fTiYqI68YY7NaYsdxPcqq32aumg62e+ExzfZQLZf5qoHVbB8XRYHFqk5Vt9BtDxc4MFlBkQQ+un2QHSMZuhNh7to2wHvW5KhoFvMVHdv1xdJQJspAJkIiLNGfjjCcixIPiYzlYvzmh69ntCtOvmZwKl/j+FyN584WUE2HhZrftfbyZAnbcf229I73vfVZANqDPlfjcp+NgICAa5Ormpa66667uOuuu654+y996UusWbOGP/qjPwJg8+bN7N27l//+3/87H/7whwH44z/+Y37lV36FT37yk+3nPPLII/zFX/wFv/Vbv/XGn0TAj5yVaYROh+BWO/a/3j3KfbvH2s+5XF3FVFFlfKHOwwdn6EmG2xGCxZo/ZDITDbF5INW+st82nGHHbBVFFPif/3yaYsNkqW6imu4ysSACNwwkaRg2J+breMBSTcdptmk7rosDzZ8vPM9umuo5jktVt3A92tt3MlHU8FyQZRG7uYPlW1wQL0t1E9vxSEQk6oZfRCw0H29FfCQB0jGFmmZhuf7jrgeSCKIHVsfJtZ6vSH59z1zFuOh3H5gos3UozT8dm6dhumwZSPKBTb08c3oJ03aRRJFcQmauouO6HpIoMl/VcRyPD23p5+brctyyrpvxhTpHZqpk4wqCAGFZ4t1jOTzP43xBJapInFlscK7QIBVVuO/mUQCePLHAQy9OcV13jPNL/kT01mOv9pkICAi4tnlL1dw899xz3HHHHcvu+/CHP8xnPvMZAEzT5KWXXuKzn/1s+3FRFLnjjjt47rnnfpSHGnAVWdny2xI7w9koh6Yr/pTqFZN2V6ur6BRF63sTjC/UefJ4nrNLDSqqhed5jC/USUf97qlvvTwDwPG5Ki9NlFANm6ph43mQiSkkIxJV3UEWIBGWqBkO5wsqP71ziKW6SVW30Sy3HQnxgGRYQTVtbBcEzxdELcFjex6m7rTPYWWUpbWfbFjCdkXKzVbyTlr7Mx3/2bbjIXigSKBIIqq5XJI0DKedqmr9vqF0hKFslP3nSzjuBQHlFxE7y56vSGA5vvBZqhvsO1dEa4akjs/XsBwXzbSxHRdBFDEsB9PxEPE70ebLuh+tsh2miipnlxp0x0NkYgq65eK4fkHyxr4EB6fK9CXDDGWjjC820EyXqmpeOJhmwbFqOizVdfadLXD7pt7256GsWTxzanHZZyIgIOCdwVtK3MzPz9PX17fsvr6+PqrVKpqmUSqVcBxn1W1OnDhxyf0ahoFhGO3b1Wr1jT3wgDeUldO4O8321vYk/OnUzUWsc5uy6jvqPvjCBLdv7msLno9uH+RTt67lwESJp04u8J3D82wbTvFTNw5RM2wePzrP3x2YIRmRiSq+IAjLItf3Jzk2W6Vm2FQ1k75UhLAsoci+d4uj+wWxX31+Ag+PrliI2eqFz5ksiqRjMo7n0TAdX0y0wimAaXtEZGFZWqjVKq6Ifn0MQKFhMZiJkAzLzJR13OZ2ogDOCkWkWi4C4DiQCIlE4xKFxoXhfZbjIosCYVnA6PjFjusLrpXRmZYQ6kmGSEUVBlJhfnCmiOP5abmhTBTbdVmombgenFpoIACy6AuvoWyU+aqOZbvIksBcRadhOtQNG9V0qJ1a5Kd2DvOrt63lu8fmef5MgYpu8f8+NU6xYdGTCPP/W7Oe2zf1cmiqTKrpvAxw++Y+MrEQk0WVY7MV9k+UePJ4nkwsxLcPzXLbhu5ltTZBJCcg4J3DW0rcXC0+//nP87nPfe7NPoyAK2TlItQpdlZ2w3RuiyDw4L5J4mG57WVT1y2OzlYYycUoaxZPnVqkZticL6j8958Z5sBEia/8YALDdlFMh0RIJqLA2p4EkgA1w8YDFElirmIQD0n0psIcm621j0E1XWQRlhrmsmOrGzbnl/zIRWux9/D/bQkUy72gTmKKSFjxB+3ZjoPlXiginq/qrOuJE5IFDNtDkfx9yYKA1ayDAV8UtWp7KppN59y+5pDy5vFc+L2TJZ3pkn6RsAlJforI81waho0sCuRrF1JWngfjiw3WdEebYsXfgwekogo3XZdr1inZCCHfJdlxPQbSYTzPF1qG7ZKKKmwbSvPl75/Dcf0OLdPyfXuiIZFtzXlerSjcnz19hslCw28XB967vpvJQqPtHt0phqeKavt8gq6pgIB3Dm8pcdPf308+n192Xz6fJ5VKEY1G21NWV9umv7//kvv97Gc/y/3339++Xa1WGRkZeWMPPuAN47UsQgcmSn4nzWSJcDOi0puUiIUkvvr8BAenK5xZrPP0qUUapoNluyRCEmFZ5D88dJDtIxn+xbY+9o4XMG2XgmownImxUNVRTd/kLiQJREMiDdOhotvU52qXSCGtuNfrSBc1lYMkLE/7dJbZWI5LbzJEKhri2FwVz/PFiiL70aT5ikEiLON4NqbjoUgCvckwFdWi2gzzKLKIa/mdUi7gdmSVXPzaGlm4UIfT+Vgniugfs9lOS3nYjtn2yJEEX9wYtsuJ+cZF70uhYfGDM0sYloPlNLfHF1clVUQSIKpIbOpPElVEfuMbh5goqAiCgAfsGE3jOB5Oc2bX1qH0BTfpfZMUVZN8zUCRRD66fZB/d8fGZYK4tW3n52gkF2M4G2UkF7v4gxQQEHBN8ZYSN7fccgvf+c53lt33T//0T9xyyy0AhEIh3v3ud/PEE0/wsY99DADXdXniiSf49Kc/fcn9hsNhwuHVOykC3npcqc1+a6p3JqbwgzMFNvYmkESBuYrGgy9Ocmy2ykguimo4nFmsM5iOokgijutS121eOF/gyGyVf7FtgN/88PV85QfnMR2XqCxyfK7m14oIEAtLbadguDgVtBIBSEUkLNe7qOZl5XM9LmSqLBcmijohyWiLIcsFsRn5qRs2Q5kIEUViuqxjOR5F1XccDkl+akk3XSQRIoqILIoIQLnj2D18AeR76VyI8kBTePkBE8KyiO2C3pm68jxkSSAiC5iOd5Egap176xSrHfVELTElNt2SNdOh2LBwPL+4+sxCDQ+BbEymqjuohsOvfWA933p5hsePzRMLScyWNU7ma6RjCtf3J7nv5lFU07nk52Tl52iqqDJd0tpiKSAg4Nrlqoqber3O+Ph4+/a5c+c4ePAguVyO0dFRPvvZzzIzM8Nf/dVfAfBv/+2/5X/+z//Jb/7mb/JLv/RLPPnkkzz00EM88sgj7X3cf//9fOITn2DXrl3cfPPNfOELX6DRaLS7pwLe/qysubkUByZ8DxXLcf1uIgF2jWV5ZbrMwckyVd0iHVWaUQKZ4WyU6bJGWbMwbBvXAcN2+MdDMzx+dJ6KZiEKArIooFrLl27bfhVF04EHxMIyhfqFNFVUFtAusQ9vxc/GCgXUebum23xoSx//fGIRz/PQLBfX87CdC/txXbBNl039MWzXWyZuBAEiTXHTFQ9R0W0M2yUkC5i255v5eRANycQUEcfzC3bLqoUsgm656M3z6BQyncff2kf7d3JBxEkiFBum39oueCgiqKaNC3iehyxJSKLL2cU6Dzx7ljOLDQoNk+fOFLCbIyMEYE13HNV0GMnFLioe3jmW5ckTC35t1ma/Pu/Rw3OM5GLctqHbr8vaN8ntm3qD2puAgGuUqypu9u/fzwc+8IH27VZq6BOf+ARf+cpXmJubY3Jysv34mjVreOSRR/j1X/91/uRP/oTh4WEeeOCBdhs4wM/8zM+wuLjIb//2bzM/P8+OHTt47LHHLioyDrg2OTJTaVvt7xzLsnd8if3ni/SmIpRVi/es7eLEfJW5ik4qqmA4Lhv7khQaJifzdUQB4iEJzXbwHD+KUDcdHL3VReQhhkQ/HST5KRJVt1cttJWbkY+wJCBJAmbTaM8FSs2uHkX00zeW6xGRxXYkpJWmcZvjEVamiVr3tepzWv41AgJHZ6t4QCKiUNFUZEnEWiGIPGCmrPndU0A6IqHZHo7josgiiabz8GLNBAEMy0MQYCATIaxIpKMyE0sapuPSMJviSBAv/MzqHjrgn2/n8YdkiIUUZElgoWbip7gcXGCqpDFd0nBcX/hopo3neVQ1i+PzNfpSYYoNk2LDH8Zp2x6yLHJqvsapfJ3tw2lKqsWO4XQ75XRgosRDL04B/iBToF1gfHapwQ/OFAhJIpmoEsyqCgi4Rrmq4ub9738/3mXmw6zmPvz+97+fl19++bL7/fSnP33ZNFTAtcvDB2f49qFZpooqtuuRiyuYtsu67jiK7FvcNQwb14NUVMZxPE4v1CirNpbtO+I2DIveVATVdFAkEcv10Ey/y6hV6JuOhcDzkCSRfEcHVAtZFFjfG2d8odEsEhZAENqfd9P2cD0/SuK4Hpbr4XkXJJIoCqzpjrFQNait0uLd6UYsAK2gT0mzaJg2O0YzOK7LRAEE/BSTKPp+OC2dU9ed9vlkE2FkzaaqW80ojEhVa0VMmr/Lg1hIZqFqkK/o/qTwVjoJ39ywqls4K5XYajQ3EQQwbBBFh4yi+NEbwS8UVg23nRYTm2JPEoV2iq6uW0QUkYgiIgoCubjCdMkfQ3FuqUEuEWKsK86tG2JMFlX2ny/RHQ+RioW4c2s/qYjMzrEsizWD4WyUqm4zvuALom3DmWXprKDYOCDg2uItVXMTEAArOqBg2RV1y2L/0HSZQ1MVRrL+VfZ8TSdfMbhzSx/96SizFZ2pokY8LFPVLBAEorJIw7CxHL8QNh2RydcNbNttp2Ciil+TU6ibfnQkLKEIyw3uwI/EVHUbRRaQBQFRFEhKEiXNbrdPhyR/jIHtuEQVgVREIV8zm4+JVFSLimYvi4CslurpSYZoGDaNpgADfyPddBGaEZJoSKIvHWGhoreLi70LmzJd0pBFAdf1sD0wHX9o5komCiqW47brbtzmPCsPf9in2VQ7fkRGwHK8i+qIZEloF1K3HtNMF9sx/OiLBzVjeSzM9fwDXWpYvnlgU6wt1kxfMApQ0622GNJtl5uuy7GpP8njR+cpNEwsx+VEvsbpfJ3tIxnuu3m0nbKaLml0J8Jtp+qVNTeXq/MKojoBAW8/AnETcNV5rYtD51U0sOyKuicZZm13HMvxzd429Cb4wZkC4/k6kiiQioW4eU2OQ9MVDNvFdS0QIK5IpKIKSw0D0XUoNkwWa83WbAFikkg2IpOKyJwrNNrCoG44yKLfcu26F4poY4pIMiKhmRJlzXcZjihCW5z467E/3sDxwLU8Kp7VcZYe0ZBENCQuG3AZbrZ6t36/IEBZs5CatTLxsIQgCJxbalDRbUKSQFiWkCUBSRBIRBXqpoMsCdiO1+64EgDLclkZI2oGu9qiQZZFZFGgYTpkowqJqMzkkkpYEdGsC87HsgjxsIJu2xiWSzIsU9X97rLuRIjFmrGsWLnVGXaZQO6ybWNhmaFslFLdpGbYOK6HuUL2qabD40fnebj5+dizvhvPg4pmsf98kclCg5Jqcff2QW7b2MPh6TLnC35nV08yvOyzeLk6ryCqExDw9iMQNwFXnde6OHT6lHx/fIlcTCEWknhw3ySHp8u8NFHCsF3uu3mUVETm6GyVo3NVbhhIAVDXbb+mpZniSEUU+pJhzhUa2I6HLAqkogpl1U+xKJJAw7SRJIGhbBS3YwWWBX9RDisCjuCRCCvEQxJVw+bMgorjee0FPxGSsWyrHa0QRYG4IlHTbURRaHdfpaIyngsV1SYkipjCBXHTipKAX6viOn6KSxb9SEqxYfn+NqLfHRUPS6zvi6NZLqPZGLes6+Lr+yapahbxiMxizUQ1HUzbvSgi1DpOSRQQ8Y8tEZLwXA/NdKgaFmazRkfvUCot8bFtOMX5JZW5skajKeLAd0bOxkIsdBRUK6KA3BzGaTm+tw34KUQBlhVb++JJ4GS+3hSVLq2mM1kUcFxftD1/psDP3zLGSDbKVEmjbvhpt65EiFLD4vhcjWhIIhWRyUQV5io6sZA/LLUltleK7tWE+JV27wUEBLx1CMRNwFVntcXhSqI5h6fL/MOhWX/cAnBoukJFsxhIR2iYDhPNK/NcIkRYEqlqFl/4p1PYrl93kgjL1AwLSYSSarXbsn2PFo9EWEa3fQM+XXcoNSyOzlSwOsIbLvgFt7YfnUiGpWa3lUc85DvktVJCPckQz5wqoODRnQyTjios1AwEQWb7cLrdPRVRRE7M1XA9D6PDgE8UWJaS2TqU4nS+hma6RBT/9ksTZUzHw3b9hd50HE7nG5i2y2RBAwHGuuK8Ml0hpsjYju8OHJKEi7qwWoiiR0yWsB2XpbrRLoquG65vUNhMM0WkC2kzSRTYf76MLMJAJorrukyVdDxgoWbgrpiT5dcceUiSQDKq4HkCVc0kGpYZzUU5NnvBO0jAT08B2PgdXK33TW5WKjuA6To8cTzPbRt7ePrUIkOZKJIo8MTxBZYaBjFFZvNgim3DmfZQzZaxX6uj6qEXp7j3phFu39Trp7BUk2dOL1HWLDJRZZlvTkBAwNuHQNwEXHVWWxw6ozk7x7I8eTwPgtBeZL59aJYdI5lmR49BQTXZ0JfgdL7OBzf3kYrInMzXmCw0WKoZqE2xYzQjABHFjxR4HpQaFkJH3MIDKqpFPKJg2S5KU6R4QMN0207CfjRGwnBcDNujbthEQxJm87YHbB9OU9H8It2qamLaLmEZIrJEvmpQVk1sF47NVf0RB66H7fp1Krl4iELdxG3eToVlBjJR+lJhFusmIUnA9WBNdwxBEJAlidFclImChuV6DGUi9KUj9CXDfH+8QFmz+P7pJWRJxLQcyprZLpRONzvHbMelYbooooDV/L2uBbbookgCiYhEWb2g7lyPdp2N7V0QN62RDoroj5momzZh2Z87NZCOoFkOcxVjWQ2R7fndTgI2jtes/bFdJEFAEi8YHa7sTGtHwgSQJAFZlHA9vwvsxHydiaKKbrmcX1LZNJAkHhJZrEM6JiOLAoeny2RiIUZyMQ5Pl0EQWKwZHJkuYzl+rqwldO7c2s9Htw9SVs0gFRUQ8DYmEDcBbwqd0RzfZXgaoH21XNYsDk+XKdQMNMvh9HyN3Wu7+NfvGeP2Tb186+UZ/v7AjD9du1WvIvmLpABkYyHm25Os/cGNLQQBFEVENW0s16OuL69ECSkCuuWLF812mhEQ//cs1AzkZrrLd+et0t1Mg5jNQlzThnOLDWj6vQhAsW61W7ozsRBreuKcztcwmq3aIQn6MxH60xHesybHZEnjmZML/vwl3SYekTmdr5GJKVzXHWN8wY9ayaJAw7CpGzZ4IAgCkigQkiVU0y9WFkV/jMT1/Ulc1z+vzf1JHjk8h2a67VEOogDJkExFXV7kLAkw2IyWFVVr2WuVjCoosoDRcNv+NrNlnbGuGJbjUtPsiyJGuu2fsyxAVyzEqflaMxKF39ZuX+j4kgS/eNnymoaGtstILkpNt6lofoquFZHTbZeDUxUSIQlJEMjFQizVDU7ma+SrfsfU/vMlLMelP+13y92yrovbN/fxrZdnKDfb91uT6DOx0BXNpQoKjgMC3noE4ibgTaEVzclXdcqaxXvXdVHSLEZyMfpSkXaNxGAmiiyJ9KYizFV0bt3g12o8e3oRy3XpS4Upqxaa5RILSTRMB9v1iLSqaFu1LFwYGSAIAhFZomD4C7UDDGYiyAL+YMqOJiLLAV24UE/ieizzlKnqDrql43p+91CrnVzkQvFs6z4AQYS1PXEkyfd0EfFFxdqeJL911ybfME+zOPTKHFXdJiSJ1AybQsP03YZVi3W9cXpTYUoNk/mqge16WI5HWBZp6DbpbIR7dg2xWDfYP1FENR0WqgYhWeSTP7amnZJ5+tQSYDOUjbBYM9Esm4WaQToqN9vkfRHnuC5dyTDDId+5uRXZkYDhTBTH9chXjHbbuG67nMrX/aLjiEy82ePVGn/RbIxCECFf0xFbE949/z2yuDB93Gl2gtnNwaNhRaKmO0QVuTmbyl6WzvIAzXKIhiRKDbPZNafysRuH6E6EuXNLHyfmaxybq7JrLMunbl27qiBZGW28XN1YUHAcEPDWIxA3AVeNK7miPTBR4h8OzVDTbZIRmcPTZaaKKrGQxPreBHvWdzNb0Tk5X+XMQp1YSOLARAndchhM+6MIdNvF9jxMxx/M6HqQr/ouuI2O8QdhWcSwXOymOGmZ6oVEiMoivekwFc1GNZdHcowVzsICvngJh0QcxyMdU7Adj1hYQpP96EYyIuF4frdVMiIhiiKCAN3xENMljWLDwHB8YTOYjfLxm0fYO77EnuYQyFhYIhOVySbCqIZNvmbQlwqzVDfRTYeBVATTdhlMR6jrFrGwjON6nF5oUGxYJKMKRdUkosjcuqGH6ZLGz79njPdd709Tv31TL1/fN8nxuSp4kIjIZGMKs2WdqCKxbThDTbc4na/TnYiwUDVomDbX9yU5MlNBs1xSUZneVIThbJRzBRXV9FVha4yD40J3IoxpuyzWDHJxhYbhtEdZWE0R6XgX0l526/1yLogV1XToTYbRLYdkVGapZqJbDmFZvMjduWUeKIsCjucXHpc1m6dO+u7FH7i+h5mKRk23GO2KA/DgvklOzFWJh/1uudVYbep8UHAcEPDWJRA3AVeN1a5oVwqenWNZ/u7ANCfma+wczYIg8ND+KWzXo9QwWduTIBNVeOJ4nkLDxH56nLJq05cKM1nUOLuoIok0RwP4xaei4EcJZGG5E3BrpIIogGo4bbdg04UzSypzFR3H8yMuEflC67ft+s9RRD+lpJoOo10xepJhXp4s0zBsFEmk1LAIyb7pnOn40aOwLHLb9T38i61+HccDz56lolmEZAnLtYmHZHqTYZ49vcThmQrnlhoU6r5ny2hXnPOFBo4LuViID93Qz0xZ49xSg+mihigKfGBTL1sG0+wcy/LcmSX+n++eRBEFJgoNXpoosVDVORaW+LX3r0c1HfJVvT1pfW1PnFP5GqbjEmq2f0uiQDwsk6/qxBSJXDzEPdsHSUYVJgoNbNfl9EKd4WyUdPO1GEhH2diX4OhMpf1ayZJAWPZnWy3VDTTLxaoZ7UiahB8xuxROxzYusFg3GM3FkMWmMaLntV2gW4hcMD/UTIeyZiMKfrrSsBxKmsk/n1wgXzWIKBLPnVniWy/PYDguUUXix5opqtXoS0XIxEIX0qexUPszHRQcBwS89QjETcBVo1U7M1lotGf5dE7x3rO+m73jS/zEuwZY0x3nnh1D9CTDHJmp8M8nFpBEP480kovRlQhT120/LaLZTBQbmM0J1f6CJuJ4Lp4HqZhfN6JIIpbjD5I0O1ZSAfCE5WWrAhfET0QW+PhNo8xXdX5wpoDtuAiCgOO6NAwH23PRLZcj01Uaho3tgiK6rO9NsHtNF/M1nfF8nYliA8/zC25bKbjvHJ5jpqITEvx26Z5EiBtHs+3XYstgiqdPLoLgFwGfWWzQmwpz19YB8DwOTpZpmL4wS0VkhrKx9sIaliWu64q1601uGEiRrxkcnq7wwLNnkSWRveNLbB1McfvmPn55z1pquk1ZNTFsl8W6QVcixA0DSZ46tUQ2KnPn1gHu3DbQTu38zsNHqOv+iIRCw2JtT5yaZlGoG8RCsl+k7LiYtu/I3HJwbuHiR1V6EiEkSWCpZrRnVa0cQ9EpflwP5soaI7kotuuhyCJpWaTQbI0XBehLhptmfh6txnfX860AQrJEVJExbBdZFIiHJPadK2LYLhv7Enx0+yCpiMxizeDARGlZV1VnhObem0bA84IoTUDAW5xA3ARcNVq1M+05P1GFkVwMSRQ4OutHKQ7PVADfgO2//MNRYmEJr+n1smssy7bhDA++MMFcWUcURcKyQFmz0cwLvi2SCK2QgCBAJiL7xbX49R8rjXgdD0KIyKLb7tDpXIAFQeDgVJlCwyAkiWwZTHJuSWWhamDgkIjI2I6HZjl+lEcR2TaU5l/vHuVvXphkuqSxZ30X4A+6HEpHeXDfJHgeP/3uYWq6zUxZ85+Pn7rpSoRZ25PgqZOL7DtXBGA467c21zSLF88X2dSfRBAERMGfFbW2N8G2DqfdnWNZDkyWeO5Mge+fKXDvTSN4wEsTJbaPZDBsl+fOFDg2W/Xfj1iIz9yxkamiimE7fOnpM1Q1i71nCqiGzUguSncizJf3nuV0vs7d2wcpqiau51HVfO+emZLGIaVCLCSz67ocm/qSnF1q8PixPBW1KTyAzQNJRAGOzdUQBI9UROGGoRSZqMJ3jswTVSREweN8QQNvecdUNiajmr478mLNIBaW0C0X1fYjTbGQxM6xDJ/8sTV88Z/HOThdJhsNUTdtdMtBsxzW9MRJhCW/FkgSaBgOsZDEWFecf/O+tRydrfL0qQWeOLGA43qs700wXdIAlkVo7rt59If5UwgICPgRE4ibgKvKSC7GDQNJRrvijORiPHxwBtW02TKYZsugb7q3Z303//17pzg4VUEUIKJIRBWJTQMpDs9UeOb0ot/Z5LiopnBhBEETzxMQRIFsVKKi2Zwv6sseD0m+INA7amdkUcDoaPxpD6hsDsw8MlvBaXrJTBU1qppFdzKEajjgeWTjftfSqXyd7SNp3rehh8eOzLN/ogTA0dkqkiiwsT8JAvzZ02cIyyIjuRiFholmOeTiITwP/uHQLC+eLzJVVFmq++JBFAQqmsWtG7qZKmkcmirTmwyztifOgYkSfakIpYbJ4ZlKe5RAXyrCp25dy9qehD9ywvP41K1r+fAWtR1pWNuTaFVV8+1Ds3x0+yB3bRvgwRcm2vUwuuVPWI+HZB47Ms9iXUdAYO/pRQzLZU23X9AckkTKmsVsSeU967r5dx/cQF8qwqOH5ziz2ODorF+bA4AAhYaJ44HjwJnFOpPlBrtGc/zYui5emSr7njoCCJKA1eH/09BtBFHAw6OiOwi6027Vj4X8kRrjC3VePFckFw8RV/wZWIblEg2JWLbD8dkqmaiCKAokmrU16/uSxEIST59cJF/zDf46P5sn5qq8cK5AWTXbNTZBZ1RAwNuDQNwEvCFc6kt/qqhSVC32bPDD/C9P+u7Ce9Z3M1vWmKvofPPlGZbq/nBKRfLTQgBzFY3vHc9T1/0IiS9OVinubXZBecLqk6o916M7HWG6fEH01A2nvW3L1wZ8N+K67pCMyMiSQE23qDYdhmMhmapmYzdnT/3MTaN8/Calbfw2VVLbU74RoNQw0U2bxZre0hMsVA0GMhF2jWV53/U97DtXRLMcpooaoiCQjipsH0mzqT9FKiJz++Y+FmtGexI6+MNDw5LIU6cWOTJdJr+pt/2at6ILjx6e49uHZpfVhgDtyMPTJxewHL/DLF/V2Xe+iON67LouS0T23frWdydIRhVqusXBqTKa5dCTDBMPS2wZTNOdCPO15ycAyEYVHnj2LHvWd1PWLDb2JZguqRiW345/Yq7WjLA13xNAQqSiWYzmYhRVi4pmgee/X62Ij4tfE5WQQQlLWLYDgj9qQpYETNv36pku6Tyw9xx9qQjxsERJ85Vrax6X7TqEZJFsTMGwXboSYQzL4Z9PLJKNKdxxQx/ZmEKpYXLPjiEePjjDKzMVTszXOJSttF/HJ4/neWj/NPfuGua+3WOv9mcREBDwJhGIm4A3hM5ams722pWdJH93IMShqTJ7x5faEYZnTy+RaDrVZqIKYUVipqTxxPE881XfCK7VUbMSv1XZw/Q8v/NJFvBcr/kc/z/L88VXi6gi4HkCluP6Ay8j/nBN272QDomHZT7xY9dxYr7KqXyN2bJOQ/cLhnNhhWhI5LtH5rhlXTfvXd9NJhbib1+cRBJqZOMhtgymeE4rosgiC1WDoWyUZERuRgccupNh8hWd43M17tzSR3cizNHZCn2piB+16k+2u4+2DqWXDXrcOpQmX9UxHLc9SmBlQeurdfDsHfcLmPeOL6GaDqfydUQRhjIx7rt5lIcPznB0rsq9u0b893eyjNgUFL3JCOMLdRZrviB991iWkmbx3aPzPH+2QHcizIe29DcjUQau65vvdcdDzFf9ouJksyupNxXhvt1jnF6sc7AZnZIQmKnoCHi0jI5V0yOseMTDCrbnkY3INCyXumH6osnFH9NgO+Rry6e4e/gRnnREZqasYTpwfM4XLK7n4Xge2ajCUycXaRg22bg/G+uWtV2s700wlIleeB1bbevCyvhhQEDAW4lA3AS8IbTqPVYutp1+NgcmSvzEuwao6hZTRZUtgynGumJMFRqM5KL8y3cP8/TJRU4t1NAsB9txAY9MLESxcaEzptP1tiViWthNvxfN8lMcLaSmIy/4hbee57d/NywHRRAQOvaRjckM56Js6k8ymov5NSqeh+H6NTSm7bJUNzlfUDlfUBnN+UW9T530i6AjsogiSXQnwrx3fVc7UqWaTjs1N75QR81EmyfhL/xruhM0DJsnTiywUDNQmqGO1WYgAaztjrO2J7GqgOns4MlXdb51YJrJksZ9N4+ydSjdjgK1irh/bvcoR2arzJa19vENpCOUNYvBdIRYSOLobJ2T+Ro/8a5BPryln6OzFV6aKCEIcNN1WV6aKFJVTd41nOH2Tb0MpiMcna1SUi1CksSe9d380/EFGqZNKiKTS4TZ1J8E4IOb+tjQk+C+3WP8zQsT/O3+KWw/O9aefK5ZfiF3LCQRDknMlvX2NHFJgEhIbs/6WolqusxUjHZhuev5UZ/WXLFDMxU29CU4NlvlieN5FusmP3njED9/y3UcaKYawW+hb9WOPXp4LjD1Cwh4ixKIm4A3hFa9R6vTpPXFD7Rn9jx+LI8kCsyVdY7NVnllpkJUFulLRympFo8dmWfveAHdsgnLEpsHku0262LDJBYSoRmNicgChu3iOB5Wx2ImCrSHPHba04Sal/e67VHWlvvYVJoOwGXNRhEFxrrinFts8NXnJ/j594yRjinMV3Qc1yUki2zoiyOJIlFFpD8VZSQXA2C2rPmLK/ChG/rYs7571QWuJxle1pFT1qx20fV713exbSjNrRu6mS5pjORiPHk8z9demGT7cJp/f8dG+lIRDkyUeOb0Eh/dPviqC+iBiRJff3GKomoSC0ntSFBnNOi+3WPkqzpPnligqpqs3dIPwONH55FEAdV0eM/aLqKKxH03j9KTDPPsad875nS+Tiwk0zAcQGA0F/Pfc81iOBslGpJ477ouzhdVaro/QX22YrBQM5kr6+wdX2KurDOQifD/7Z9itqLRlwyzUDV8h+eO97HlQD1b0pe9744HVd0mHg4TVcR2rU9Y8ud0xRTJ7+RyXTJRhWw8xFAmSm8qzOHpChXVT4/dMJDilekym/uT7FnfzQPPnmV8oQ7QFqb37Bji8EylPZdqZZFxYOoXEPDmE4ibgDecwzMVnjnlL3yThQZff3GKj7xrgPW9CV6eLDGQjoDn+VOawzLJqF/rUGwY1JtTosOyQN2wKdRNZEnAccF2PfoSYeaqOlV99foaEaHdBtz5uGo4SLLQHhHQQgASYYnbN/fyzCm/YDYTVfCAY7NVHtw36XdqCQKSKBJRBNb3JtEtl7AscnCqzPdPL7J1KM2nbl3LbEWjrtucmK/xb963btmxdV7Rtxa9VoqpXZTjeRydrfLs6SUc12OqqIIgtNN324bS3Ld7bNnk9EtFEFrsHMvy8ZtGOJGv0Z0It71uVtKX8t+Xx47muXfXMNuGMzxxPE9ZNblx1HfzBX/xPjxTYa6ic9uGbrYOZ6iqJqmowkguyrOnF9Eth+v7kmwbSnMyX+f4fI1iwyQki/SnIu0W9LJmUtMt9GYr+pGZCo4HMUVkKBthrmJgOq2Im4AsCqiWs2p0pvWmf3T7IA8fmkG3/Hocw3KxHJeIImG7vphtmA6247GhL0k2HqamW7w8WWKxZlA3bVTL4f957AQlzSId8afSP3xwpi1auhNhluoGT59aAM9r++O0ROtHtw8G7eIBAW8i4qtvEhBwZbSvWD2Pj24fZCQXY+/4Egs1gyeOL7BlMEVUkahoFqmYgtCc8jxdVClrZruGA/w0hO24dCfC2M0CU9P2WKgZywqAgWXdU6brITY7njqxoT3sMiwJhCSBeEikLxVq1v7Yfh2O63FuSWWpZlDVLeabtTq71+X44KZeuhNhNNMhG1PQLYfFusE3Dkzzh989wWxZ413DGXTbZbLQuOTr05nmgGYR8O4x7rt5lNs397G+N4Fq2qzv9VNOt2/q5baNPaSjSrvWo5V2miqqq+5z5f4/tnOY7kSY588WLto2X9V59PCcL7I6akqmiiqO67WFTSti1HqP7901wn27x8hEFTYNpNgxkqFQNzk2V6Vu2Dx/tsDphTq263J2sYHjeoxkY2wfyZCLh+hPRxAFgYgikQrL/nvuz7FENV0KDZt4WGofZy4eoicZaQubZt02IWl5B92TJxYwbd/QMSyLKM2hnHXDz0k5jsdAOkxPKkyhbnB4pkJZNZmr6CzW/WGjcxWDY3M1CnWTs0sNHth7juFslN5kmC2DfrG3LAocnany0P5pDkyU2q/NVFHlrm0DQUoqIOBNJIjcBLxhdBaxtlqCHc8fTzBRbPA/njyNZvojEmRJQJFEDNvvhHI8D6fDc6as2diuR0gWqWkXerZbgyY7WXkRH1Ek+pJhzhXUZVf4AqBIIsmwhOl4JCMykiiQrxqcztcwHY9EWCYWEpktmwxno/SnItiOx/s29rJtKM0XvneKc0sNzi01iCgSibDMbFnjoRen6E1F2NCb4Ce2DazaSXMlNv19qQj37BiiYdh0J8Lt+/7dBze0oz4r91nWLMqqecmIDPjCanyh3hZMKx9rRSRaNSWd26w0suu8r9WVNZyNcmy2SrGu+8Xh2RjPji8xU9HoT0XaAz1HcjGG0lHOL6mkowrFhkVvKkwuFuK5s8Vl3kWGbWPaQvu9s2yPXEwiLIHh+O97RBYZzoZ9fxyazsQdg1AN++LPiyhATXeYq1Q4OFnGdDwM2yEi+Y7KkihA0906F1fQLZeFqs7fvzzDifkq//sH57n/jo3csq6LXDO9tfL1gqD2JiDgzSQQNwFvCKt9kbe+5I/OVnho/xR13UYSRSRJoNQwEUVf4Eii3+Gkiw6CIKAaDi7+lbZsOW2jvRYtj5PVMhMh0R9sGQ/L9Kcj2LbDQt0iIkN3MkJVt8nFQ9QNh4giUmxYdMVDgEAiLPLBzb3cvCbHP74yx0g2yg/OFOhJhtk2lObwTIX5is4NgymWagYHp8skwjLvHs2yfSTTHtT4oS39y+pZWryaTX/rNSyrJsfnahyfq5GKKm2xsdpzW0aJq7V9d7JSlFzusc4C8JXbrzyHzvTY2p4Ej7wyy8n5GpMlFUkUSEVDiIJAJiazpjuB43oM5WL86lCaWEjiq89PoJoOqahMIizjuH76aNNAgrJqs1Q3aBg213XHiYdkTszXcL0L775uu0yWdGzXFyO67SI3IzXgpzJXEgv7fja65dKOC7kequPbA2RiCsPZKHNlDdeF0a4YA+kIR2YqWA6M5+s8fizPXEUnHpaXzZm60mGbAQEBV5dA3AS8LjoX5GdOLwH+gvfk8TwIAtuG0pRVk1/es5a5ssYL54pYjkOqK8b24QzHZiuczNexHQ9ZFojKIomwRLWZQnCbi1ZnnYws0o7yrMRtzmOYLKhUDZtYSCIii/SnI1Q0C9NycZutyGu64+TiIXLxEE+dXGT7SKYdIfGjSi6q6XB2scHfvDDBWFccRRK5+boc24Yz7fs+duNQ2+DtyRMLF0VRrvQKvrUY3raxh3t3DbdrcDoXyMuJyJURmda2q40S6GQ10XWlC3Pnc7cOpdk2lObhgzNsGUxxdLba9jNCEBhMR/ju0XlmSip4UXaO9fF7P7mNJ08ssO9sod0evntNjmhI4qmlRWq63Z7e/c2XZ5AlgcPTFWzDIR4WCUkSZdVqv/eW417Upd0pdsCfci6JIoLgF4jblkvTt5BUREYS/AjQxr4k5wsqi1WDyYKK7Xp0J0LEFRHVsElHFX5wpsDa7vhFkbp8Vaesmty2sSeovQkIeBMIxE3A66JzQW7V2fzp907xzOkl0lGFdw2nOT5X495dw5zQLc4tNUhEZGIhiZcmSpxbarSFi4iAZjlYHUrGhYtCNCsjOcse80DCo27YeB5YtkMsrJCOKniu22wTd0hFfBfbe3YMsXMs2x4+2RrmCX40QhAEnj61wKHpCtuG0m3R0ZMM899+6l0X/f6zi3XGF+rLoihXKhRWi67kqzqZWGhZ51lrX50t4qvtt7XtcDZ60SiBV2MkF2M4e6ET7HK0RB2ex7bhDDtHs4zkYmimw2xFbxfbPvDsWV6ZrlA3bLKxEAgCmagCQFmzWNeboNQwQYBD0xV6U35aTpYEPv/ocWbLWnPgqEtEEelLRoiEJMot8z9oGvYtP77W7Wa2CceFdMw3aSw1fGHk4dd/DWejlFWLNd1x+tMRig2Tqm5hOy6m49IVV8jEQhybq7KmO07D8EdprCzqfi3dbAEBAW88gbgJeF10CoHvn17kb/ZNcnahRkW32TKYIhcPUVJNTuVrHJ4u47gehuXQMGxcz/OvstvixR874HWoGQmQZQHDXq5wWsWkq+mcljaSBEhGQwxnoyzVDBqmP09Ib3bb3DiaXZaKadESOAcmSnzohj5Uw6akmew7V2TTQIqDU2UyUWXVaMfRWX/OUqcouJJam9bvXbnPS6WBWsd3OdHU+d60IjdXylRRZbqkMVVUV02xdXJgotRuZT+71GC6pDGcjbL/vF+43BIw4wt1tg+nycZ936KqavLMqUVu29DNvbtG2sd5dNavhXnf9T0cnCrzg/ECgiCQiMgYlksyrJCL+wZ8ZxbrCPjWAKbjYa+Wq2zSylA5zaplwVuum9MxhUZTyEQUiSdOLDBX1pGaosewHaZLWjuVGVUksrEQpYZ5kYHllb7nAQEBV4dA3AS0uZL0ycptWovvo4fn+PqLUxQaJomIjCAI7WLLeFjmubMFluomY10xRAEmyypRRUIWBJaaV8+W46HIfpGo5/mTuHuTYUqahes6DGVjlFWTqmYTC4lEQ76zsOV67WGbnSiSb+WPByXVQjUdEmF/QfKaUYaV84KAtkfLM6cWGc5GOV9QmS6pmM1xBZdq8+00MuwUBa9Wa/Na6NzXqy2gK1NGr4VX23fna9Y5LXvbcIapourX4HTHQRAuKrZtibJtw6H2a9l6H6aKKsmIHx2xbJeJpQaG45GOSHzix8Z4/Khf63JuqYEo+IImJIm8Z22O4/M18tULHXeiACEZBlJRFmsmpu1gNtXwbGW5i7EsgmrYiII/2TwbU9gykKLcMJBEkbpu050IsVg1yMUVPn7zKO9d390+1wf3TfLcmQJrexLcd/PoG/qeBwQEvHYCcRPQ5krSJ5caszCSi7FjJINmOTieyyvTVRzXZdtwhu0zFV44W2AoG6VhOMyXVXQHTNMm1GEjLIqQCMm4nkdd91ehomqhNUXJaC6KbjnEQxKpaIh8TWc4G2WmouM4Lo7rL2jpmIIsCDieR8N0KKkWG/oSTBU1uuJhJooqw9kog2m/26ezXgjw02wbuvno9kFiIYmGYbN9JI1lu9y3e+ySQqHTyLBzQb9aXTNXcwHtjF6tdtwrPyudRnat16fl4bMydbYy/dZqRW+9DzuG09wwmCIbVdg+kmHf+SIuHs+cWvI73IQo52wXP8Yn0pUIcXyuRkQRichCO60pCQKm5TFd1ulLhrFd2R//sAqOC6rrolomsgj/dDyP43pYDtiui2G73DiaYSATbRZAK8uiYZ7nxxurmvWqvkMBAQFXn0DcBLS5klD6amMW8lWdhw/OUNYs1vcmePjgDIs1k28fmqMnGUEAZMmfsbRUN9sRllhIoi8V5uySigfkYiEkSWSxquMCfYkQhbo/SbqiOzx7uuB3s0Rldo7F6U6GObtY87teBBjKRuiKh5mt6hTqRtuav6Ka/MtdQ1Q1P1X2j6/MoZoOjx+d59hcjTu39rcjCIs1g+FslG3DGbYOpXn08Bwl1WpPz341Xk9x7luNyx33laZdVtvHytdoZd3WZFHl6VMLuC7cvCbHlsE0r0yXGc/XuWtbP2Ndcb72/ASm7bB1OIksCew9vdQWt/GwjOf5FTiOaWM5HmXVQpFFpFWK0ZNhCc/zqDfDOoIAMyW9/TmNhyRGclHuu3mUkmry5b3neHmiyOmFBvfuGiYTCzFX0fmxdV2kIvJF55uv6ssK7C9X3B0QEPDGEIibgDZX2qq8Z3034Edr8lWdB549y9HZClsG/ZlFtuPyjf3TaLbDP74yx2AmwkguxlLdQBD8du2wItGfirBY92dGySL+PCnDJh6WkZst4p3Fxa2fqprNd4/mGUiFycRCLNZMREGgqts4LvTEQximQywsUayb1EybR16ZQxZFluoGm/qSlDSLbMyvBUk1W62fPJ5vz1dqpZXeiNqJt2v9xeWO+0qiRpfrGFqZ1mr9nr5UhAdfmEBAwLBtTi/U+ej2QSKKxMRSg/HFOrlYiF3XZTmdr3Prhh5OzFWJKhKq4XsmtdyINw8kOTxdoWY4aKaDbjvQ7L7zvAv1Wr7XkoAo+ILbcb3mXDP/syqKAjXd5lsHZzgxV2N8sU6xYbaLolteQ620HPgF0kdmKu3xGl97YZKGYfPedV0Um91dbyehGxDwdiMQNwGXZGUr8WShwWNH82weSFJS/eGXU0WV8YU613X5Qxx7kmH601Fsz8V1odAw2NSfJBqS+ODmXo7MVqlqFjXNZraikwhLhGWRsCzSMG1Ckojreti4FExr1YJhUfT9S2wPXNdDEgV/lpAAyQhs7E9iN40CkxEZRRTpSYU5s9Bg//kSB8UymViIe28a4VdvS7fTLw/tn8ZyXG5Z19VecN+I1M/btf7i9R73yo6hTkGzsuurk1Z31UxZo9gw6UuFGclGqWkWr0xVOJOv86u3reVDN/RTVk2mSioRRUI1nWY7uEcqIrJQ1dEsx/dEEvyIjYjfFRVRJKpNsz9/mKbvaNybDLFQMxGb2dJYWKZm2BiWzaOH58lEZQbSEcKySN2w+dt9kwyml3sNZWIhHto/xRPN1NaHbuhj+3CaQ9MVRrvi7NkQe9sJ3YCAtxuBuAlYlVZEpuVqO13SyMVDgG+DHw/7HUE9Sb9dd7Ko8rXnJzg8XfYXGbdpfy+JnC80mK/ohBWJimphNI3WNvYlWdsT5/hcjTXdMU4vNJgtqTQvbNvOsork35JFAcNy8Vzfj2TnSIYDU+X2kMSQKPBrH9jAYDrC+EKdU/k6nudx85ocAgK3buhmrCtOTbMoaRbbOoZH7hzLttu8b9/UG6QM3gBWRn46BU1nq/lqdVz37R7j0cNzPLR/ij97+izTZZV1PQniYRkBjydOLvDBTX30pcIs1Awqmo0gCGQivmu0LAnMVQw8z09VOZ7/eZJFSIb9QvQWrc+Z58FsWcfxPGTRd1QWgKF0hMW60Z5KvqY3zni+wVLdZAL46vMTfOaOje3z6UmGOTBZ4uXJEplYiG3DGW7f3Be4FQcE/AgJxE3AqnTa9d+zY6jdFTJVVDk6U+F7x/J0x0P8m/ev565tAzy4zw+7H5qucNN1WXqSETxgOBslXzFwPY+FqtFOLdkuWK7LP59cQrdsFmsGIVnE6gjVtLYVgO5kmIF0mJcnK+0J0HvHlwjJEqmIjGbabOhPMlNSeeSVWQQE/2pft3A9l4bhkouH+NiNQzx5YoHvvzjF4ZlKe0L3zrHsqiMTrpTAav9iXq2NvdVqvlodF/gCqDWRPCpL7FnXzdBNMb7zyiwvT5Y5v9Tg+r4kNd1mMBOmJxnhX+8e5ehslUdemcOwHQRhue9NRJGo6PYyU8iWP44o+FEfXwh5CI6HarkYjoveHEFeN232nysBAlFFYjAT4effM7asdb4nGWZtdxzV8KOTrfvKmsWTx/PLHI0DAgKuDoG4eYdxpe3eZc3iQzf0tb+IOztg9o4vtQdGIgi8d303eB733TxKTbd49Mg8ZdXihsEUuViIw9NldMvvJokqIorkt9YuVA0My8F1aacIVrMpcRwo1A0USWw7B7uA6XiIosddW/soNCzOLdb5q+cmcD2PG0cyfORdA0wWGjxzeolCw2ChZrBlMO1fogN43htW7Pt2LRr+UXKpNvZLdZm1BnfuWd/lux8328w/detaHnj2LLNlDdt16YqH6EmGKDYsnj61yFAmylhXlKrud9q1BmeKzfEMruuRDEsYjtv2T/JgmUdOsxYdWfRdsgHkplAKSQLbhlPcsrabZFhmtqKzbSjNjpEMjx+b57tH56loFh/a0s+eDcqFtGfTC2i1MRmBOA4IeGMJxM07jCtt937m1OIl3VU/dEMfz55eZLqk8qWnz/CN/VOIosCHNvfx9OlFZkoqnucxUWhwdLaC1rzqlUX45T1reGmyyHNnSlQ1m5Ds10JcyntNarrKeh54rsvWoRTH56okwjLreuMcm61xrqCiGg5dyTAeMJiJsmeDbwC3YzjNruuyqKbTds4tqyb33jTC7Zt627/n9dZAvF2Lht8sLmecuJpT9OGZCn/zwgRzFZ17d43wh/fu4IFnz/LYkTkKDZOSaiGJtGuqyk1fI0USGEhFiIYkTuXrOI5HPCKzZTDJ/uZ09IgsoF/C/U8EXM9DFsBp3mc6Hos1k2TEr7NpGDb33TzKi+eLPH+2QFiWuG2jX3TfOoeyanLn1n4/nbpKcXUrBQyBOA4IeCMIxM07jCtt977cNqrpMJyNEQtJzJQ0zi41CMsCDx+cYaFmkIoq2K5HoW7ien60plUXUzds8k0DNRcwbb/1NiIJmLbvWCxLgu8b4kEiLKOaDiFFQhQEJgsqlu3yrnUZPnPHRh4+OINluzxxYoHhbJQPbuojFZHZNpxhNBejrFnolsvHdgy102cP7Z/m3ptGVh12+MPydi0a/lFxJZGJlcK70yDyoRenMB2XHSMZJosqZdXknh1DdMdDnMjXGMpEAZgpaQxlozw7vtTuoqrqNrrt+pEYWUC3HBqGQyzkf7Z6EmFqpk1Vs1k5Z9N0QcQ39dMsh0xMQTUdig2TJ07kkUUB1bT59sEZluom3fEwkgiLNYPHj8633ZlbhdWreQddbmJ7QEDAD0cgbt5hXMkifKltWgtULCSxpjvOzpEMe88scWSmiu14zNcM3GaXUjamIDdbaNd1xzm9UMdwPL6+bwqnYwVpzY5ybT9tFZFENg0kKdQN5isGgigwkovRMG0mixqSJNCTipCLK3z52bMMZaMs1Q08PKZKGl2JMIemymyfrfLvPrgBoD1VG2inpKqqucxsbTWX4iBF8MZxqYhhZ0feyrbxzsfu3NrPRKHBaDbKY0fm/a62pQb37BhitCveFg1HZ6t0J8Pcf8dGvvr8BDMlFVkSyURkKppFTJEoaRbnCw1MxyWqiCzWTSzH9dNO3sUjPTxAtx0czyMk+yK7bticztdxXQ/H85gsqWim6zsbD6aYKqp0JcJMFlXeu767LWyePJ73xfWu4XaN1+UmtgcEBPxwBOIm4Io4MlPhC987xULVwHQcqppNLh7i/Rt7qOk206UGtuMRkn2zvjnvghPssblae8HQbRdFvLBfEX/xEAWQRIHRrigLVYOK7rfjdidCaKZ/pS2KMJqLcdfWfv72xSlquk1IFhlIR3jfxl62DqaoahY/GF/i0FS5XZzauZjevrmPTCxEWbOWLbatxbesWe3hl63HAl4/l4oGrhzu2dk23krV3LtrhNFcjINTZca6BG4YTKEaNuMLdR4+ONMeCrpzLMuzpxd58nie43NVfvyGPv73989TKuu42SiK5LsZK7LYrMUR8Tz/Mwl+R1VI9iOILbriStMnx4/8TBVUwoqIabs4HkiiL55ziRDj+QaLdZMfnCkgi36r+D8cmmWy0GC0K+6PDmnWlnWOLn81N+iAgIDXTiBuAq4oZfDwwRkOTZWRRIFC3SSiiKzriZOMKkQViZiioOFP9BZWPLe1VERkgdFcjGLDbM+TCskCiixi2167J1czbSzbxXagrtlEwjIjWQVFErlxNMNMSQPPw/U8FNGfP3XfzaNtu/9UVLloplGLVlQqX9WXRXQ6ayOCFMEbz6WigZca7nmpVE1Zsyg2THaMZFiqG+xZ3+3XUzW3EYCybrMwXaFQN/2iZA+6TJtMTMGwHL8wPSqyZTDFK9NlaobT3n9MlnBdu91hJQgCiZBEw3MxHL/uxnJcBBE8x68X2zyQIh6WGc83AL8mx3Yd1iRjZGMKL06U+P6ZAvGwzIbeBDcMpti2YoTH5WrhgmLjgIDXjvjqm7x+vvjFL3LdddcRiUTYvXs3+/btu+S273//+xEE4aL/PvKRj7S3+cVf/MWLHr/zzjt/FKdyTdL6Yj3QLLBcjT3ru1nTE/dvCH5L7UxF5+XJEsPZKNtH0iQjUttcr5PWzURYJhaWqTSNbGTRf0wzHSzXw7Bdposa0ZBMOhrCAxqmw9ruOLbrMVvW+N7xBU4t1PEE371YEAVkSWSqqAK0PVJawwsvRWuxbW3Tun375j7u3TWybG5WwNWj9bpvHUovez9836EL70O7wNjzuG1jD6mIzHRJQzWd9vOePLHAoekK2wZTbB9Os23IFx2xkEgq5kcAR7vi3LNjkHU9cU7MVy8atOniEQvJCPj+Sq1oS2fruOWC29RDYVkkE1VYqhvIkkB3XGkOdZXoSfgePJmowk+8a4Dtw2lOL9Q5Nlttf15b7BzLXnIg65X8fQYEBCznqkdu/vZv/5b777+fL33pS+zevZsvfOELfPjDH+bkyZP09vZetP3f//3fY5pm+3ahUGD79u38q3/1r5Ztd+edd/K///f/bt8Oh8NX7ySucS6VMuisedg7vsR0UaOsmr6ZnwcLVYOZoook+WZnkrg8ZtOTCGE5LmXNRhH9mT8n5mo0m6ewXd9pWAIkyW+5tV2X3mSYn9w5xPeOL7B9KM1Na3J88Z/HKasWI7kokiCwZ30Xz5xaZNtwmhtHsm9YlCUoDH5rcKkZXZ2FueBHcvJV3RdFnociiQxmopRUixvHcqzrSfDyVBnNcljTHedjO4bYO77EockyZd1GAhTRFzaGA7rlYDu+6HZc/Hqwjl6+1kdcwH9Mt12+d2KhOfbBo6bbbRNAAMN2KWu+ceXP7h5j21AZBL+OrLPm63Kfu6ATLyDgtXPVxc0f//Ef8yu/8it88pOfBOBLX/oSjzzyCH/xF3/Bb/3Wb120fS6XW3b761//OrFY7CJxEw6H6e/vv3oH/g6i84v1yEyFhw/OcM+OIQ7PVPjr5yfanSIhWSAaklnXE+f8kortuBiOb3YmAJ35KAG/M6onEUK3XBQJ5qq63xHFBddY8K+QTdfDBSwHJgoquuWyZ10XJ/I1xvdNMl1SCckitutxdL7KaFecf/fBjW3L+yDKcu2zsvA2Ewu1UzmZqMK24QyZWGhZiuvJEwscmCyhWS4fv2kE1XQYX6gz1hPHXmzgNiOGLh79qTCKJDBX0XFdLuqcggsWSUKrWAx/+rgsC7h4mLbX/Gx7TJdUPnB9D0dmqzxzapG13XFu39zHtw5M838/dgKnaaDzwxb4BwQEXJqrKm5M0+Sll17is5/9bPs+URS54447eO65565oH1/+8pf5+Mc/TjweX3b/U089RW9vL9lslttvv53/+l//K11dXavuwzAMDONC+Llarf4QZ3NtsXJuVOvfvacXefxYnnNLDW4ay1LRTBZrOtl4CEkQyEQVQpJfLGk2CxM8/PpIz/MNziQRNMtDs1xmKzqiINIw3HZRsSz67d5G09hPv1DygCiA7Xk8cTzPXEWjULcIKyKiIHDbxizpiMKZhQYzJX/W1WpDGQOuTS7leFxWTR7aP7XMTbtdn+J5ZGMhrk+GuWfHED1Jv4Pp5akSdd2fjyaKArlYmP50BMNySEYUSqq16jG09E6nk7ZhO1iOgAekIzKj3THyVYPpssY39k83010CM2WNAxMlvvLcBEt1gxtHM+wcy162piaotwkI+OG4quJmaWkJx3Ho6+tbdn9fXx8nTpx41efv27ePI0eO8OUvf3nZ/XfeeSc/9VM/xZo1azhz5gz/8T/+R+666y6ee+45JEm6aD+f//zn+dznPvf6TuYaofVlWVZNnjm9xHA2yvhCHUkUcFyP96ztYvtIhrJqMVlUWdeb4MVzJRzPZOtgipJmcWyuSsOwkUXfBwQuXNGajofcccVruyDiCxtJ9EP9ibBMWJGYt3zBmQiJqJaL6/mLh+t6nC+q7BzJEA1JaKbDuaUGMUViIBMlGZE5s9igotn86m1Bbcw7lc7i8LNLjYu6p+7aNsC24Qy7xrKMdsXbc9D2ji+x/3yReEimKxnBsl3qus1pvU4mppCKKDiud6GzaQWxkIgAaJbrp6NafgZAzbWZKmrkYgoNXaRu+oM7w7LI+II/TTwXVyipJkPpKH2pCI8enls2RLRTzATO1wEBPxxv6W6pL3/5y2zbto2bb7552f0f//jH2z9v27aNd73rXaxbt46nnnqKD37wgxft57Of/Sz3339/+3a1WmVkZOTqHfhbmNaX5W0be/jo9kFGcjEePjjD0dkK13XFSUWVtjne+ILv6Op6Hp7rUdYsjs5UcZsppFYLd0uUtJAloSmWXGz3gm+IJAh4eKiWzbqeBPnmrKloSGYgozBX1lnTHWOpYSGL8L6NPdy3e6zdhn6uoLJ1KM2/ed86qpq1qttrwDuPzvENht0UwiH/ImeqqHJsrsaxuRqjuRgAC1WdiCKRjsnEQwqqZeN5kIkrWJaDZtr81I1DzFd1nj9ToNwhcmRRoD8VwfX8kSCm5WC4TRdt/FRr3bCIhSSGc/6FgywJvGs4DQI8cniOW9Z18WPrurlnxxBw8cytTjET1NsEBPxwXFVx093djSRJ5PP5Zffn8/lXrZdpNBp8/etf57/8l//yqr9n7dq1dHd3Mz4+vqq4CYfD78iC49VC2qsZhrWGR5Y1i2dOLQKwtifB2u44Sw2D0wt11nTHsBzPLwAWQPBWr0kQANvxt8lElXbLN/hRHYBkJMRkSfXFEbBjNM10UacrrjCUjTGU9Xd0Ml/jP/79K4RkkWOzVYazUQYzUVTTYdtQmqmiymLNCML272A6P+N3bRvg9x45xuGZCnvHl3jf9b3Lpr23Pvu/+N41fPfIHAenKyQjCpIgkIzI3HlDPwenyyzWDBIRmfkpnYbpLPt9nucxVVSxXT+9qkj+8KnOPwXLgbmKTqEhIgmQjij85I4hqrrN0ZkKeH4k58EXJrhv91i7UwwuLh4O6m0CAn44rqq4CYVCvPvd7+aJJ57gYx/7GACu6/LEE0/w6U9/+rLP/cY3voFhGPzcz/3cq/6e6elpCoUCAwPBl0Anq4W0V/uybN13ZKbC4eky+84WKGsW9+4a4YkTCyzVTVzXYyATRcC/OlVEkCUR3fK/2BNh39jMdJpdUHgIxsVhfRHoS4U5NV8DIKQInJirMVcxCEkC1XNFREEgFpJ46XwJ3XaJhUSKTZG0d3yJ6ZJ2UTqt8xwDrk1WE+srHX9b0ZDWv0C7yLj13Ns39fJXPzhHTbOo6Tb37hohFZFBEDgwVaInGebZ00scnq7g4o8PcT2wmsZ9rUJ4qznZflWa23ueL4Cqus2m/iTX96c4tVDnB2cK7eGc24Yz4HntIbXB5zgg4PVz1dNS999/P5/4xCfYtWsXN998M1/4whdoNBrt7qlf+IVfYGhoiM9//vPLnvflL3+Zj33sYxcVCdfrdT73uc/x0z/90/T393PmzBl+8zd/k/Xr1/PhD3/4ap/O24rXEtLOV3XfqG+6ggDcsq6LkVyMkWyU67pi7FnfDQKcXazjeSAIHrrlIgp+Dc2NYxm+P760bJ+dwwgFIBWRiIVkZooabtOzz3M9Zsu6vwiEJN/51XXpT4e5cSTNC+eLaIZDSBJ513C6XTDamU7bMpgOwvbvAFatP2k5/Tb/3TqUbk+w73xOywG5RTysMJSNko2FfNfrprh/4niec4t1iqrl79KDVERm82CK47NV8rULNhWXw6Xpvi1A1bB57Mg8S3UDx/UYSkdwbAdFFik2TP76+Qk/AoQvxIIoZEDA6+eqi5uf+ZmfYXFxkd/+7d9mfn6eHTt28Nhjj7WLjCcnJxHF5V6CJ0+eZO/evTz++OMX7U+SJF555RX+8i//knK5zODgIB/60If43d/93Xdk6ulyvJqte+eVcMsRdmNvglhIaouIg1N+6P76gRTfPTKHYbvIooDteu2OEdNxmS1pFzkTgz/VW5EFumIhBrMxXpmuYDv+Fa1v4ifQlVB8I7/mcEPL8QVPLhZCM/1C41w8xPs29ixbvFrptGAxeGewmli/fVPvMqfpldGd1v2xkMTe8SVGmnU3N45m2LO+m9mKTlk1efrkAg/sPcfZhRqOB8mIzFhXjFP5OsWGxUvnS9QNh9WQBIgoov9Z7bhPAERJoD8Vpi8VxnJcBtMRPrSln+8enefZ00ucW2pww2CKWHPA5zOnlyirZiByAgJeJz+SguJPf/rTl0xDPfXUUxfdd/311+N5qxR0ANFolO9+97tv5OFd01yu26LzsZ1jWcqqyb7zRQ5NV9g6XGHbUJobBlNkYwoPH5zm+bO+Q6q5YsSCZrmcXVLpfMvEZmu4JAnIoogiicyUNATPn/ztNGPyruuRiihc1x3nlekysiCiCAIhSWT7SIbRrjjZmMJQJsrtm1d03QUh/HcUl0uptrjcZPHpktZ2Bm65G+N5/PULk9iuy2RRxXZ8I8Bb1nXxmTs28uW9Z3n29BINw2a1b6SYInLzmhzXdcd59JU58nUTkQupqwgC+YrBTEknJIkMZaOM5mKML9YxbZctTWEzW9EZ7YoznI22RU7rHAICAl47b+luqYDXz8qr3c4r286r2geePUt3IszpfJ2KZnFkukxVszg2W+WGgSRHZmrtfUqCX4fgeL6wCUkCg5koC1UdtRnOcT3foXhzf5JD0xVmShqW17yiFS7M/YiFRMqaxXA2ypquOOcKDWRB5MaxDEOZKD9/y3WvevUaeIEEtLhUKvaiGWKa1R6t0DBsBNH/DJcbJmt7E/zEuwb48rNnma9qvtFf04gyEZJRJIFCw8LxfAfic0sNzi/VKWkWIiD6NcYAOK6L2ow+yqLAhr4E3z40y9G5GpIIZ5fqnF0SuGksSyoi8/zZAg3DDvybAgJeJ4G4ucZZeWX75IkFHnpxintvGuG+m0fZOZblPzx0kJenyqzrSTCcjSKLAvsnShRUk3xVx8PjhoEEB6f8ehzL9aibrj9yAQjLAqIAmweSHJuroTUFzmAmim671AwbPF/QtCYqR8MSo9kYvakwL54vcnyuxlh3jE39KTTToSsW4pnTS2RioVe9eg28QAJarBbdWVX8eh4P7Z/mzi19/Opta0EQODlf5eGXZzBtl8eOzvPE8QUc18Nr+S85UNJsBtIX0t+OB6WGSbUjZRWVRVqTNy2XtuBxXJcXzxUpqX7djuPC+SWVZERhtMt3L2759Wwbpn3MsPrPgZAPCLg0gbh5p9HKHTX/PTBRYras47geMyWV6ZKG5bi+pbwkUNZMFqo60bCE63n0JMKUVBPT9r1uHKBmuNQMlZAkEJJFf1YPUNctYukwQnNxSEdl380YgVvXd/Pp2zfw2OE5KppFuWFxar7G1qE0P7NrhG3DmWVTolu8Wnt7QMBKLleInIqFuO/mUQD+0zcP0zAdjs5WKTcsYoo/CFYSBVTT8YUOUFFNZBEkBFzX89NbHehNQ0oBP1Lpeb7WqZsudVMnFZF8geT52wLMVTT+9InTZKMK71nbxeHpMnMVvb3P1vF3/hwI+YCASxOIm3cY24YznF1qMJiJ8ujhOWIhiYFMBPDIJcJMFFQ0y0MQYbqoYdn+lG/NdJBEEQS4RDkUpuNhOv4XfTwkkUuE0Uy/SNjFn/AdVSRCkkBUkTg8Xebx43lmyxoRWaI/7ZujZWKhi7peWlxpe3tAQOeIkZUTtzsLkVvb3XRdlqdPLrBQM7Ach4+8awDNcnjy+AKu57UL4DXLI6L4dWR1w77I76lVb+O1/+cbWyqCgOG42I5HVzzM3dsH2Xt6kYWawfhCnVemKyiSyA0DSRzP47quOGXNYttQ+qLjD4R8QMDlCcTNNc7KSMfh6TL7z5doGDYl1a91cT3oSoTJxUPIEhyZriA2v4i95rez64LnuRTqBrLo19vIom/Y53oXRisIQFdcIRcPMZ6vEw1JZGIKVd1vre1Lh1msmbxwrsimgRS9yTCTBRVPhp+8cZjRXOyyX9xBlCbgSjkwUWrPnPrUrZce0/Gtl2f42gsTDDSdh2kWvIdkEc3yW7Zly49KhiSRomo1Ry+ssOa+BAK+oeWu67JMFVTOF1Vqus18RaOkWuy6LseHbujjgb3nODVf48xig/df38NYV5yHXpwCz+O+3WPt/QVCPiDg1QnEzTVOK9LRai9tzcsZ64qzbUimqtus6Y7zzKlFTuZrDKQj6JaH5dpIInjNwsjW+BzH8Vu/4yEJUQDT9iM1re6pkCSQjinMVQ0000GWBERRaLb7e2SiIeq6g2E71DSLWzf00JMIs2kgxcduHHrVOoIgShOwkksVlO8cy3Jg0rc4ODBRWrWrqqya7D29yFLNwHFcdq/p4vh8lemSxndemSOqSNiOiyKLxEMyNwwmObfY8CfcO17bC2clEVn0rQ0ESIZlorLIC2eK9KRCGJbLXEXjubMFLNvldL5GNqawfShNsWEwVdQoNkzGuprDggUhKJoPCHiNBOLmGqfV4n1ktspsWeNDN/gFlC1vm8eP5RlIR7hnxyAzJY10TKHYMFmome1IzGrk4gqa5VIz/MGAzfpJDMfj3KKKKABN8eN4AvGQRH8qzM/uHuXpU4vsP19ipqKhLzX46PbB9sITfIkHvFYuVVDeOXPqUt1TZc1Csxyu64rxwc19/Pwt17FYM3hw3yTZmMI/HJqhotmEJEimI8yWde7bPcYTJ/IcmiwjSQJqc3qsIl6YFu55rt8VKAoMZ6PMVnQquoXluoRkf/aagIAii7wyXeFUvkZI8iNFDdPh5cky77u+l3tvGgHP48nj+aA9PCDgNRCIm2ucvlSETCzEbFljfW+ibfEOfgv4Ut2gplv88p61DGVjPPTiFLGQDPgdHZ0XpZ0Xqfmq7yoclvzazGUDlJtf6uAPxYyHJAazMWRRICxL3Lymi/NLKpv6UxeloYLOp4DXyuVSlZeK9C2bKL5YZ3yhzpbBNH2pCH2pCL/3k9sAGF+oM1sx6E2GKTUsdMvhubNL3DyWA+DUXA1dcBE8GMlFmasYaJaL5fq1aZ7jMVvW/A5CD+qG43dPAeeW6siSSFgWycRCmLaLYLtIAiSjcnt+2spBt48engvEf0DAqxCIm3cAqw3LzFd1vvr8BDNljS0DKSaLKgcmSyzVDW5ZlyMsi0wUGjieh4A/v6nVASICnQ0iYfmC7BHx6wtkUcB0/HbxrkSY7cNphjLR9rF0usqu5ih7KcfZgICV/LCpyiMzFR4+OMOe9d3sHM22i4ufPLEAnse24Qw3jmaJhiRU0+EH40tolsPLE2Uqqk06KlNvzk9LRiSmSzpWc2isKEJYEtFtl5J2Qfm3/lI8oTmexHboToQYzESp6RaqYTOQidKbDC/rFmx9/h89PLeq+A/+TgIClhOIm2uczo6RzvD8A8+eZaakkgjLDGYiPLhvkopqotsu5YZJoWFi2H6HSCTk1x3otossCMTCEtXmF7Yo+QM0BcHDsv0W2LJqEQmJmJZL3XCoGzZzFZ3/4wPr21+8rS/mzi/r1UZFBJGcgKvFwwdn+PahWVTT8Wen0SxCfnEKgLNLDaZLGrmYwql8na54GNPRycZD3LmljydOLmA3/Zscz+8WbI0bMSwPx7kwjqHFYDpMzXCwHBvNgogi8IkfG2O+YqBIAut7EyiiwFzVIBaSlkWYHj08t2rnV+u4g7+TgIALBOLmGiZf1Xng2bOML9RZ35tYNjhwfMEPidcNg1emK4RlkbAiUjVsnh0voFsuEUVEAOq6jSLhFxR7HrrlIArQlQxT0yyGMhEaus1S3cRo9sEalj8/SsDDcl3qhs3TpxaWTT/OV/25Pi031tW+oIPuqIA3ks4IR2tyeHc8xEP7pzgwWeKeHUPce9MIVdUEQWBtT8J36p6r8YHtA+w7X2RiSeXlqTI3DKQ4NlOlbjrUmiZ+jgeu5bUnfrcQm7dVw6Fm2G07hZ54mELd5PGj82TjIXaNZfnesTya7bB3PMn7ru9d9nd8766RVcVL8HcSELCcQNxcg7S+wCcLDZ45tUg6qhCWRXYMp9u+GffuGiEWkvjq8xOcmKtQ0R32rO/ilekKhbqOKPjjExwPig0DzeqY8O363jf5qoEo+L40oiAwUzEAf65UNCShmQ4D6Qhbh9Icna1ydKbanLOjcSJfY1N/kjOLfkFxZ0pqZV1BcCUa8EaxUkBvHUqTr+osNUzGF+pMFVXuu3m0HVH86PZBbt/Uy2guxkguxt7TSyzWDZ4+tci6ngSD2Qin841lQiasiNiO2y6yb+EBDeuCW7cLzFV1HjsyR8OwEUWYrWhEQzJdiVA7mvTkiQWeObVIbzLcHvy5kuDvJCBgOYG4uQZpfYHn4iFU02GhZjBX0bltYw/F6QqZqNL+IuxKhPlXX/oBmuXy/fECA+kIVU0iJMNC1UB3lve5isBQOsJ0ScfBn5cTkUWmNQtF9FNUfakwYVlisqhy05ocv3XXZr718gwn5qts6kuy90yBfeeK6JbDv9491hY1nUMOgxB7wNVgtQjHal1VnUL7WwemmSxpZGMK5woNPM+fnSZLAobti/n2oExZIBNVcD2PUsNsd08lIxKq6WI5F6I6kgBhWUISRBRZpFAzOe7V2DacxnH9QuRHD88xU1JZqpvUdIvD0+VVzS0DAgKWE4iba4h8VefJ43mqus2OkQx4HluGUjx/poDteli2w3RJZaGm8+ALE1R1m5cnS1iO/w0clkVuGEyxUDOo6haeu7xDiubPFd0mHVMwbRfb9fjBmSK269fn9CbD/mgGz2+vTUcVnjyeB/w5Ojev6eKndw5RVk3+5buHgxB7wI+UV+ueWnn70cNzfP3FKQoNk6FMBEUUkSVf0EwXNTTLQRYFFAFGu2LEQjITBZWqZrUFT0gS6IqHcDwT27jgC6VIAsmIjOE44PmRHNfz2D6SZt/ZIk+fXsSwXAbTEWJhCTyo6nbQLRUQcAUE4uYawndkncZyXLIxhYWaQTqq0JeKsGssy2RJ41S+zoP7JqlqFhXNxnM9BEEgFZGwHY9zSw3W9cR4ebKCC8jNFJNhu4gCWI6HatrtbqlMRPYt5ZsDBhfrfmpqY18S2/F46uQih6YqbB5I+k/wPMKyxHA2RliWVj2PIMQe8FYhFpJIRxU8QJFE1vTEOZX327oTERnddkhFFaqaRalhMVlUiSn+5HDH9vzuQgEmixpOh6Gxh98tNV/1/15k0Y/klFSTv9h7HstxSUUUhrNRCg2Te7YPMpSJUtVt/uc/j7N9OM2/v2NjIHACAi5BIG6uEVrFuXdu7WeyqLL/fJFSw/equW1jD5+6dS0n5qqEZZGueIhHDs9j2L6hWEqW0WybqulRma4wlI4gCv4XsOOB5fjhdAGIKBKCQHuGlG67vGskzdGZCobt4jh+v3hIFrlrSy8IAqmIvOogzCAyE/BWZ+/4EucKDVIRhd1ru+hOhJmv+INmNw0kicoZSqrJy5Pl9pwp1XTwPK89dkGzHATBa3dVKc2h4QK0u6la9Tmy2Bw4G5ZJhCVOLdRxXY+RXIzbN/fxp987RVW3eGmixAPPnl02ViJoBw8IuEAgbq4RDkyUeOb0Eh/dPsjHbhzya1zmqmwaSPHe9d3tdvCf3jnMZKFBX9I3DauZNkXVal9Ruh7MlnUEEWKKiGa5vh8HvthxPY/hTITJgorlwrreOL/9E1v4/vgSL0+VqGgmi1UT1/X8K1rd5vBMhW3DmWXRmMCROODtwJ713Ryfq7JjJNN2L54sNCioJtNFje0jGfI1g5AsUjdtEiGJrkTI/5syXSIhkbJmIQr+hYHjuXiuhyyBJAjYjl+c30KWRKKKhGm7LNZNPNcjqoj809E55isaB6fKbBlMk4uHODpbWSZwgnbwgIALBOLmGmGl2ddoLsbBqTKjuRhTRZWH9k9hOy4l1eL91/ewpifBsdkqNdW+aDSOA+BCw3T9FnD3QsGkbruML6oAZKIyv/nhTfQkw4zmYqSiCg+9OEVEkbhxNAuCwIP7JimpJvGwTE8yHPjYBLytUE2HZEQhGVF44NmzdMd94RJVJBqGjSIJxEJ+Std1oa47eFi4nvf/Z+/Po+Q60zJf9LfHGDOGnEellJJsyZIsWbbloWwXZbtdLqoom+EaTDXQLAq43FPN5dTqRcOlG5qm6WJa3IJeXKAxHOYCn8OhXFDY5bZdtmU8yC5ZsuYppZwzMiNjjr1jz/ePL2IrM5WyXYOklB3PWlpSRkaGImN/+/ve4Xmfh5FsjIrphBVQ1/MYysSYaLaonGV3nioLbs5NgykAXF8QkhuOT9l0yFV98rVFJFm0iXcNZwBW+Ga1uWpttHER7eDmA4LlPJVWi2rPSIaSYbNrOMOW3iQvn17Edn1miiZTBYPeVATTdimaLumoiiJLFAwnfM2AlUrEq2G5HrPlBobt8eRbUwykozy8sz/8fsWw+dTNAxTqNo/sGWrr2KwjtCtm7w+tdfnKmUWeO7nAg9v7+PTuQSaX6lzIG5QMwbNJRBTcIGAgFWEwG0MCzi/WKTRbwwCWB/m6s8Jss5k74PoioDk6U+G7buwhAM4t1tnW38FYd5yXTgtfqQ1dcYIAnj02z0M7+rl3q3bJtGEbbbTRDm4+EFh9ULUMMRVZ2CZUTAfD9rhrrItyw6FYtwVvoCnIB1BtuJeoqS7HWubHng8zBQM64wyko8yVG9y7tYeS6fDHL50jEVH53Me2hBtuT0eEkmFTMh1ylUbo49PekC+P71QQstYaaVfM3hut9TnSGSceUXlkz1CojbOhK8FkweDwVAkfIQY41pPk2GyFiCqRa5Lrl8OwXXxfkIyDoFklXYaG67P/zCKdCR1VgrHuBKmYxsM7+nnp9CKD6Rhl0xE+cdt6AdpBahvfND4MyU07uPkAYPVBtXc0y8HJIsdmy2zsSvDKuSWOzZQZysbERFPVom65K3r9ywOb1sa7OphpTXR0d0QoGS7JiELRdDh3epH7bugJs8gXTuRIRFRu6E1eEshk4jpfOTy7QmunjcvjOxWErLVGoF0xWwtrbfw7h9L0dER44eQCR6ZLYVvoI1u6IQh4e6pEVFNoOB5LNZuoJtEZ1+lPRzm7UMPzAiKqjB9AMqowX7FwlmlIqRJEdRkCCcfzmSs3UBWZrx2dxydgKBMnEVHZPrDSbLalXAztILWN948PQ3LTDm4+AFh9UC0XJZssGHxjokhvKoIsSUR0Gc2U8JdFLqurMnrT8O8SBLCpN8mD2/sAKNZtbuhL8tzxHDNFg11DAxycKLJrOMPn4jolw+bl04srApn2ofrN4Tv1ea21Rj6om9q3i+Ub/3K/s4MTRf7m9Qnqlsvdm7uYLTfY0ptkrEdYm9Qtl52DKbIJjUREIV+zUWSJu8a6mK80mC6YyFLAcGeM+XJjxf+ZjKncOdbFWxeKNOoefgCW79NwfBQZinWLB27q59FbhkLrkif2j3NstsyOwXT7fmrjm8KHYR9uBzfXKVZnlyOdcZ7YPx6WzVuH1x+/dI6q5dLbEaE/HeXoTJmG7aEpEq4f4C2Tgg8QVRvXWxnY6IrgBHREVZZqNv/49gxjPUlUWWKyaPKNiRLnFuucnK/i+QEP7egnE9PYNZwhE9cvUYNtH6rvH2t9Xt9KSbn9ub9/LN/4lwc6I51xsgkdx/PZ0JUgHlE5u1BjrDvB7pEMb10o8OZEkYWKRTahkYqonJmv4Xg+miJj2C66qjBXNEESI+GSJGF7ARXT5aVTghPnByBJzWkqP8DzoWA4aLLEl9+eYWKpzmhXgrMLNXYMpkM+W2s9fBhaDm1881i+Lj4MaAc31ylWlxVbDsd1y+XerT2MNKekCAIsx+fUfBVNkYkoMq4SEI+o2J4PQYDr+UiSqOZkYxr5ZSRICQgCCZmAmu3ieGJTjqoym3qSjHbGuZCvM5COYtgeOwZTEAR85fAs993QQyamXaNP6IOL70RJuX0AXh7LA8HlNgxPHZrB833uu6GHR28Rpputz/D+7X38xtMneO7EArIEFdOlbnnIMnh+gKpIgqDvepRMiGvi/ms0/Rn8AEznYlIhBdCb0hlIRzk1X8O0Pb58aIaIqtBwPT61a4DHbhthpDPOlw5McniqxGfuHOX+bb1hRefgZHGFDk4bH24s3zeA0Cz2g7pG2sHNdYrVZcWWw3FElfmfL4/Tl4pwbLbC5t4EI50x5komqgJ126NYt0hENBz3otdNqzFVthxUGTxPVHESEYWG4xPXVQzLRZFgS28Sxws4v1jj9o2d/H++ezsjnXGOzJQhCMKKTcmwP/B93WuBkc44w9nYZU0U3w8+DD337wSW2zC0KiWtwyBXWdlaGs/XaTgeY70JbMdnpmzSnYjSlYyQK5lYroflBHhNsb+1eG0t+Ai17zvGupguNjAcj5Lp0p2U+diNvTy0ox/D9njm6BxPH50jqioQBBycEFy7asMVAU5zTLyNNpYH6kdmygw2+WAf1DXSDm6uU6xuM7QIj7/33GnqtsvJOYv5ikmt4TKUjbFrOMPx2QoLVQsCMBwXPwgu2Vwby9y/FVmI9jleQCYm4XhgudBwPHJViyCAasMJ38dUwRBk4bjOJ3YNcHSmzHi+/m0dwm1ciqmCwdmFGk8dmqGnIwII52iCgPu3972vLGx5cNyu4rw3VutIwcoAsWTYTOYNJGDHYJpt/Sn+6KVzVE2XiCKTrzu4TaKbjETQvPdkoKtDp1i38f2VxH5dkTk2W6ZQF1NXEsKo9o6xLl45m+fsgmh52a5PX0eEXcMZoSU1WeTYbIUdg6kPTQuijffG8kD92WPzDKSjPLSj/wO7RuRr/Qba+NaRqzR4+shcmEG+cCLHv55dIldpUDAcVFmmJ6XTndRRZYnRrlgo+a4rCrp66eWXlv3b9SCuKWzojPGjd29EksS0R65qEddV/ABmimb4/L2jWT69ezC8WaYKBtNNTZ02vnPYO5plS28yzLpaRNf/+fJ4aFJ6ObTWDFys2Dyxf1yUqCeKV/y9f5CwooImSXQmNDY0zWIJArb0JrE8j4mCEQY2majCJ3b10dOhA8JZvD8VwWsGNkrzBtRkuHkkzXTRxPFF26qVdlQMm7MLNQbTUfaMZLhpMIUfwJGZcjhM8CN3jn5g2w1tfHto7R9z5QaZpvdgC6vPlNVfvxe+2edfSbQrN9cxVrcWZkomc2UT2wvQmnHLYsVmtmRhucK9uEUetl0P211Zt5G51AHccnxuHU1hOT66KtOwxd8t8nE6fpFTs7qa9GFg5F8L9KWi3LOlm/P5OnFdYdtAit0jGQ5PlUCS3rUS88KJHE++Nc1jtw3z+B2jHJwocnahxpbeZPs6vQtW32u5SoOnDs1wdqHGVMHg/m29jC/WePXcEs8ey+F6Pt998wDD2RjPHpvDtcWdtbU/xd2be1iqOdSsIobtM7FkhhOLUU0OfdxmCiamLWo5StPrTZUlkCS29CbpTkZ4fXyJiCLuxwPjS1RMh1RUfd8VvDY+HFi9J7SmaVff86snBZdLDewdzYYV4uVegcvX2Xpqd7eDm+sYy3uoTx+ZY6ZooikyqZiosJQMBy8ICAIf1xPtJVmChK7gBQGyFOA3p6UkaWV22ELF8njx1CKFuo0iyXR36HxkSzfTRZOT8xVKhsPTR+bWPEj7UtEVo7Ttzfb9471aRV87Ns+bFwr0dkT46I29/OwDWzk4USSuK/zSPx6hZNgcnMxemr1L0oq/RzrjbOlN8sieofb1uQxait/33dAT3nOtoHAwHaVkClXvz947Rncywv/51hRzFQfH9Xnopn5ePZvHsG0UGWZLJv94cBpFAU2WkfDxAz9sRwmTWpBlmC03wvsxHVMxbJ/uZISJpTpz5QZj3QkG0lHeGF9CU2WOz1U4NFUiE9fD1nAbbYBoWz/55hSP3T7C4/s2rEhEj86UeerQDI/sGbpkUnB54rNcCuGuzV0Um2r26zWhbQc31zFaC/RLByb5m9cnGM7GePSWIbJxja8cmsH3AyQkFFUhoin4foDj+TRcDwkxvaErEh0RlaLprEluVGWJzT0JVEXC9X360zG29ad4dM8QXzs2j+kI6wVYO1JfT5H89YT3+txGuxJk4zqjXYkVgdDvPXeaA+cLDGYEWTBsU0kS92/r5f5tvWRi2pqtw51D6av2+11PWG5K2woAW5/fai2nDZ1xelMRNnYnePyOUXo6Inxi5wDPHJvH8wMM2+OdmRKeJ6aoOqIqZlMlvLdDJxvXOZWr4TVdwxVJ/C1LEjFdIZPQ+NczixiOcB7vS0XIVS2imsJto1liusK2vo42l6qNlQiC8O/lwczOoXQ4aQvwS5+86bKaZCXDZmuf8CQ0HY/7tnZfEsSsJ8mJdnDzQUAQsFi1OJ+vc/vGLEs1hbrtoyoynh/Qk9TJJHR+eN8GXjy1yPMnchi2hxdAhy64N62132Lh+Ajfm2REQVVkjs1UqNsu0wWTLx2Y5Kc/upl7t/bw5FtT79rSWF1dam+07421KgWrD6pHbxkiFVVBknjhRI6Xz+QpGTaFuo2mCOG4fZu6KJkOT74pgs/lQU0L6ynTWq9Y6zNqbeK5SmOFltNq4nGu0uDYnKhwpuManusR01Q8xcd2A/rTEc4t1gFBIA6CIGwdw0WLhnzdIapJzBRNZsoNXB9eObtEbyqC6wUEakBXMkKhbrOhK0FfKsrTR+baiUUbgv8iSTx223AoWfC1Y/Pkaxb/3x+8JZy0bf0NK6s5rbX08pk8923tpjsZ4exCjUxcX9d7eTu4uc6RqzSYKYoxU8P2eH28QDqm4vsB6ZiG7fks1mwmiwYRReaz945xaLJIzRJE4JLpUjZdFFkI9S2f1vCAWsPlQr6O6wcoskxXQqPh+hw4v8Sje4bes6WxnKHf3mjfH9aqFKyu5PSloiBJPPnmFB/Z0kU2rvHS6UXeulDEcn0SuhoevgRCFW61KF3rddrX493xbp/RWt8rmQ4vnMixazjDl96Y4PR8FdcP0BSJ0YEUxbrNUs0mHpOI6yo7BlKcXzIo1G3myhdbVEHzj4ToIrpewPm8gecLu4auhE694dIRVfnUzQN8/60jHJkpUzJsjjb/Xh4gt/HhxMGJIi+fXry4nwRAIEhcuUqDqYKxQt7g4EQxNIo1LJd7mrpprWGR+2FNvs56Qzu4uY7RkmD/53fmMGyPqCYT02S6OyLMlxsossQdGzo5v1Tn/GKNc4t1vnRgkpmSeQlxWFNkZCnAbvrdSIhRcEUSXjddCZ1Sw6WrI0q+anEmVwvHUb/0xgQ7h9IrSIyrKw3tCsH7x+rPanklZ3kFrFVumymZHJosYbk+Dc/H9YXGSut5j98xevF1TGfNcnIb3xm0eAll02EgE2W6YBLVZBJRVYyFdzX5cKZDVJOpLdToT0dxXGG5oCky3irrk5gmI0kShu0REKDLIMsysiyMOA1b4thshRv6SiBJvHwmz3i+znTRXBEgt/HhxOr95CfuHaO7I8Ije4b48tsz/PXrE+wYTLGlN8mhqRJ+AB+9oYcHt/ViNGkHj902soI/2Uqc1nM1vh3cXIdoBQ4lw+bYbFn05SWpaakA6ZjGbNFkqW7h+UKorysZYbbU4MhMGWcN2yjL9dFVUAJhkOl7wm7BsMXPb+5NsrWvgx2DKQ6cLzDaleAjW7p56tAMr51b4vhcNSzPv3Aix9HZCrMlUR1qVwi+OawmYrdc3gczMY5Ol5ht+hLdv72PTFxncqnOsdkK6bjGDbEkEU3BtD2++NxpbhpMsW9jJ7uGM+F0z0M39X3TujhtXB7LA/m9o1mGszEuLNUxbQ9dlRnIxMjENQzLw3Q8FFkkD5bjI0kwXxbJRkSVuXU0S6Fmc3qhBlJAJqZx81CGF08vhlWcAHG/5msWPckIRdPh1HyV/+PVC9w2muW+G3rYNZQOp1nWep/ta/7hwWLV4uCkGDZ44UQOJCms1HzpjQnyNYtXzuZ580IR2/PYPZyBQPDDjs9VuLW5rpdPWt6/ve9dTVvXw1prBzfXIVqthftu6GHHYJoLTfEwCVFlmS0a1CwPxw945ewSmYTObNmk4QYsLtMfkBCZous3/WyQUWVBbKw13HC6KqIrZON6OD54YanOQtXiI1u6+ey9Y4z1JCEIwoP4ybemcTyfuzZ3tSsE3yJa17hk2FQaLq7n89aFApois3s4TcmwOTlX4eBkkXu2dHN7weC5EwtM5A1Gu+PMlhoYtke14XIhbzCer4eTD612FtCeqvkOYPX4bKFu47g+W3qT7BhI8fVTi5ycr3LzcJobejt49tg8oSF4ADXLb96/AW9NFJpTiz5xTeMH9o7w9dMLYUU1pst0RDUKNRvPC8gkdJQmt663I8KFpTqJiMr923ovIYi3yf0fDqwOLJ46NMM/vj3D108usFSz0VWJA+NL7NvUyUM7+pksGMyWTLb2ddCZ0OlM6PzFaxOUTAddlXjx9CI39ndwOidEI5Gk95SQWA9r7aoEN3/wB3/Ab//2bzM/P8/u3bv5H//jf7Bv3741n/vnf/7n/PiP//iKxyKRCI3GxUM5CAJ+5Vd+hT/5kz+hVCrxkY98hD/8wz9k69atV/T3uNZoLdoV/c9tvXQnI/zLkTmmCgaaqlJuiIwxIonOhe8HuK7Qzgiki9mfhLBX2DaQplR3GM7GeON8ES+A/nSMQt1CkWU29yTIVS2e2D/OjsEU00WTSsPhqUMz/NInb+LxfRvC97h3NMtjtw2H0zntDPFbQzihYDo8c3Qe2/O5aTAlRBW7Erx8Jo/j+RyeKgki+WgWx/ep2Q4T+TqyLNMRVbhjrDOs3KzO5FsBaRvfHlaPz5ZNh3RM4xM7B3j0liEM2+Pl04uUDUcohc9VyNfLK14jABquD+7Fx1TZ5+xijVPz1fCx77tliKOzFRYqFgFQaTjcMpzhxHyVoUwMRZbElNzJBTIxLfSYa1WVlr/fNj6YWB1sdycjbG8GJ3XbxfZkXj6T553pEoPZOLtHMnz3roFwjzjW5GtZrg/IlI0Gf/rKeTb3JLlrcxf3b+sN/6/LVWbWw1q74sHN3//93/P5z3+eP/qjP+KOO+7gi1/8Ih//+Mc5deoUvb29a/5MKpXi1KlT4ddSS5ujid/6rd/i93//9/mLv/gLNm3axH/+z/+Zj3/84xw/fpxo9IN7mIYVm63dZOJC4bQvFeWnP7qZyYLBmVwNTZHwgoBkRCUZVZtKkQGJiIrj+0hI+IGHKkNcVcnGNSKKwqO39DG+WMMPAjoiKl4QsH0ghRfAg9t72X8mz7HZMufzdWoNl5FsnEf2DF2SJfSloiHHo41vHcuncSqmw8n5CgRC+2TncIZP7x7Ecj1ylQYLFYu3p0ts6BTquGPdCUqGw7aBFNv6O3j2eI6K6fDo3uFwI1oekH4zWA/l5vWG5deqZNj8m5v6KNRtPrKlO5xsW6xZ7BnJcP+2XmaKBifnqk23cAAZWRbu39YyYU1FllisismoFs7la5zNVUPOXL5q8dr5QrPC5/C//5sbuXerFvq6DWdjTBcvtoevB65EG98elgcWL5zI8ZXDs4x0xtg+0MFiTdjv1BoOlYbL5Lk85xZq/NjdG/nNp08wWTDRFIm4rhDTFe7e3MWFJYO7N3dxbLaC4/m8cHKB+7f1vmtFZj3QEK54cPO7v/u7/ORP/mRYjfmjP/ojvvrVr/Jnf/Zn/MIv/MKaPyNJEv39/Wt+LwgCvvjFL/Kf/tN/4pFHHgHgL//yL+nr6+PLX/4yP/RDP3RlfpF1gOXZ/GpH18f3bcCwXU7nqswWG/hBQMmwBec0CBjIRKmaDrmqjefT3Ehdig2X83mDN84XCIKAhhswsVSnKxnh9EKNhuMRUUXZe8dgmnu2dNPXEWFDV0L42KyD8uMHHfmaIHAHwO5h0WpoVQm6kxFcP+DN80Vsz+eHbh9h74YsXzk8Syqm8cT+cd68UCQRUUnFdR7ft+HbClDa1/vyaE25DWdjFA0n1A569niOIzNlRpsj2qLl6+MFkFBVFFlCVyR0VaFs2lQaQvfG9vwwMGnh8GQ5dA/Xm9YNrg/DmSjbBtLsGkqzcygdjqgvr9wsf5/ta/jBxfJg+8D5AvPlBsW6TUSVcXwfzxdCrg3DJUAEMifnKrw9JYYSJAl2D2f4vr3DIXfrlTOLHJ4u8c50mQ2dxVDXaT3jigY3tm3zjW98g1/8xV8MH5NlmQcffJDXXnvtsj9Xq9UYHR3F93327t3Lf//v/50dO3YAcP78eebn53nwwQfD56fTae644w5ee+21NYMby7KwLCv8ulKpfCd+vWuGXUNpxhdrKxxdezoidCcjvDNVouF62KaPh2g9FQwJr2YDwgizBUUCr6lK3NowJUT2aNoeru8TURXmyiYfu7GXH7lrI32pKIbt8ZXDs2zojK+L8uMHGa3e9u6RDBuyMSaLJs8em1+hWXNspsy5hRpjPYlQqyIIAn7vudMU6zaBBKbtMtP0+BK8qJXBMby/qkz7el8eyzWd/vVsnlfOLDLSGScb04goMpoi8fSROV44lQs5N54fIBGQ7oiSiekoBFQaXkg4VuISiiySkdbzVQUIIKIpZBIRTNsjHdeYLpocmSmHXJuS6VCaLl1CGm9fww8HDk4UObNQI64r3LYxy7a+Dk7mqrx1oUi14YIEcV3GtF2Khk1/Kkq+ZuP6Pnds6uT+bb383nOn+cZEkU09Cbb1pyjULHaPZC6rv7WecEWDm3w+j+d59PX1rXi8r6+PkydPrvkzN954I3/2Z3/GzTffTLlc5nd+53e4++67OXbsGMPDw8zPz4evsfo1W99bjS984Qv86q/+6nfgN7q2WM5W/+y9Y3z57Rn2n1nEcj3++Z05FioNvCBAlSU8RcJr7qDVhrum+nBLAbW10QoycYRKw+XWDRmmSiYX8gZLdZvOuM5/+PhKddbWgl7vEfz1jNV8jtfPF9jSmySuKzyxf5x7tnRTNB06oipdSZ0vHZhkQ2ecg5NFFqoioNUVCZ+AZ47P0xHT+MiW7hXGm63r934y+vb1fn9480KBw1Ml4hGVsZ4kQ9k4juvzlcOzoWy9JkMyqtKwPS7kDVy/HvqfCJ8piULdDh+LqjK6IlGxPFRJCG4uVBoMZ+OML9RpuB4zxWUB7GVI4+1r+OHA3tEsn7ljA5WGIHKloio/cc8Y2/rzPH8iJyrztkcVj3OLwqduIB0R4q4RlSf2j/ONiSILVYt83ebx20fYMZheEcis5yrgupuWuuuuu7jrrrvCr++++262b9/OH//xH/Nrv/Zr39Jr/uIv/iKf//znw68rlQojIyPf9nu96mhyjyoNl4MTRU7OV3jh5AJvT5aYq5jISBi2i+UGKE2p4bWCmhbcADrjKiBhuz6eH7CxO4Fp+yiKzGLVRlEk4orK7pFM+HPtzfHqYQWfw3R46KY+BjMxfufZU8wUTc7n6xi2i67KvN0ks/anY2zuSeC4PiVTTL1l4xpzJaGLBDDWk2SsO7Eie29n9N8eWhv9cDaGYbvsHsnwyJ4hejoiK8i9Nw128BevTpCJqdyxqYvTCzXenhT6Ii1IgO8TTkmpEtiuD0iosoQiSwx3xpCQGMrGOLdYx/MDjs6W+exfvMm9W7u5aTDFhmysbcXwAcV7XdMW//HpI3P8z5fFfd/ias6VG+wZSRPVFBarFrlKgyAQOmd3jHWRiuu8fr7AraNZjs1VODVf4cxCjaFsnBdOCFmKZ4/nyMa0UChyva2xKxrcdHd3oygKuVxuxeO5XO6ynJrV0DSNW265hbNnzwKEP5fL5RgYuHjA5nI59uzZs+ZrRCIRIpHIt/AbrC+0fIFKhs2Tb01Rt1xSUY07NnXyjckiZxaqWG5AACEJUYx7S3QnI9iej2E5mE4QTkvVLBcJcDwRCDlewE/dN8bXjs1jex5be5PcNJDi4Z0D627xfhiQqzT48tszPH8iR9l0+L69w/zL/nHGF+uMdMb41M0D/PM7cxTrDkgSsiQxV25gWC6pmEbJdFEkuGdLF2cWatiuz+RSnYLhXCLw1g5avz0sb0vt3ZBdYcEA0NMRYalmcXiqzH/65HYiqkJcV1iqT3Jjf5Ka6TBXsdAUCV2RxfRUM7hxl7WxZEki8H3iusqD23oZz9fRFImOqMqhyVJz/L9OR1QjG9f4/edOYzgepVVGh+37+frG+62a7B3N8vDOfiaWRHXmuRM5FqsWqahKIqJycq6K6XjENAVNlTm7WGMgE2W+bNLToTOQirJQaVA0bP7m9Qk0RaYrqfPmhQKdcZ2ff3jburT7uKLBja7r3HrrrTz//PM8+uijAPi+z/PPP8/nPve59/Uanudx5MgRvvu7vxuATZs20d/fz/PPPx8GM5VKhTfeeIOf+ZmfuRK/xrpB6/A5OlPmX47MkatYbOxO8AO3jfADt43wn/7xCO9Mlwkg9KdpBSyz5Ub4WFIXG6fIDJuv3aGTbMq4A3zvLSLj7E6ICP6pQzOMdSd49njuEq7GN4v2pro21vpcDk4U+bsDk8xXGsR1laePznFuoY4fBPSnorx5voBhe9ieT8lw6E7qZOIahbpNOqYhSyayLDFRMElENIayGg/t6MewvbbA23cYy4PD5Rozyw+hfzg4zf4zeSoNh6FMjLcnisxVLHo7dG4d7aR2Jo8kiXvUrTuoCrjexf9DcG8CIprMRL7OX74+QclwqNte02BTFHjTcRXfh8NTJd6ZKZOKajy8s39Fhl0ybF4+kwfWx2HUxjeH96q0LpcOydcs5soNvnxohrO5GoosMV00MWwXRZEZzESJaQrTRZPDkyXO5mpUGi4zpQYbOuPsGExj2C7D2Rh1y+Xerd10RFUIRDD/ft7P1cYVb0t9/vOf58d+7Me47bbb2LdvH1/84hep1+vh9NSP/uiPMjQ0xBe+8AUA/ut//a/ceeedbNmyhVKpxG//9m8zMTHBZz/7WUBMUv3cz/0c/+2//Te2bt0ajoIPDg6GAdT1juUHDbDi0MlVGjx1aIZc1aLWcDi3UOOJ/eNsH0ihqzJRTSYV05AlmC0LEnWr2u0jNr+xniQTS/WmpLtLVJXZ0JVAU4S424Ulg90jaT56gxjVH0wLh+mxnuSaXI1vFuu5T3stEQr3mU7YxpgsGNw40MGN/R3EdIU3xgs0XA9NlnhrosjJuQqKIhNRJDzfp2573L6xk4klg7rt4AfgewEX8nUGM1F0Vcj4r/7c29fk28Pyg6Q1nbTcQbxk2JRMh90jaY7OlJlYrPP2RLHJrVEY7oxxdKaMBDRcUWXxgyC8eUM7FFnC88H1A5bqNl4guDgK0NWhEwSiGqvIMj+wd0i0D47Ns6ErwaO3DK3IsO+7oSfUy2rj+sO7VVpb1jwtob2zCzUG01HOLNSwPI/ejiiaKjGZd5ERwfj5xTpBEOAFAY7nM9oVZ6w7znSxwb1bu9FVhb8/MMnJ+SqW6/O9e4d5+fRiOBW43iq/Vzy4+cEf/EEWFxf55V/+Zebn59mzZw/PPPNMSAienJxEluXw+cVikZ/8yZ9kfn6ebDbLrbfeyquvvspNN90UPufnf/7nqdfr/NRP/RSlUol77rmHZ5555gOjcbP8oJksGHzpwCSP79vAT390MwcnihybLZOOaWiKxGypwWvn8rx0ehHfD9gxlGbHYIq/OzCJBERUCVWR8f0AVZFJ6Ao1y6FmiXSwLxVlrCfBVMHE9X2W6hYNJ+DN8wWmiibdiQiP3TbMPVt7QtHAb9c0bb1F+OsFcV3B8XxmCgYv5+tk4xqvnVsiEVH53z62hb2jWb789gwn5yqcX6pzJlejank0HDHmmY3r+AEsVIUUwHxZCL1FVTGpUzbdsF3ybt5f7SrON4/lfJvlujJA+Bk++eYUyYhC2XSwXT9sF2/pSzJdMJkoGGzuSVBruEwvEy0F4S+lyBKuHxCPyKiKTKVhE7igqzK3b8yyuSfJvxydJxlRyZUtjs6U2TWcCe/d1vsY6YzTmdCpGHZbaPMDgMtVfM8u1EjHNKYKBumYxoauBKdyNbqTERQJ6g0xT+t4AQ3bozcVZaYkTJgdL2AkG+P4XJVcxeJPXznPZ+4YZa5sYrk+p+arVAx7RXC83vYNKQiCd+OcfiBRqVRIp9OUy2VSqdS1fjuXLIrlX//ec6f56pE5PrlrgP/+fTeHEflr55aYrzSoNVx6O/Smfo1PV1InoshMFsXmqMlwQ38Ht2/s5J8Oz7JUF313GbEp3jnWSVRTeOVsHi8IGMnEyFUtdEVmU3eCB7b1rhB/a+P94/3e7K3n7T+zyPMnF3hwex/3bOlmsmDwT4dnScVUinWbH9q3AV2RQZKwXY8/fPEctYaNLMsokowfBDSaG1MQiGxfliET0xjOxlmq2zyye5AdQ2kml+o8cyzHY7cNXyK62MrsP717cF1lYusZl6vctB6fLBg8c3Sej2zp4sCFAhP5OqPdCeqWR8W0sV2fbELoEP3xi+eYrYiqa0tNXJHE/ep4ARs6o9Qtn0LdwvFBAWIRhd6OCHPlBlFVQZYlIqrE5p4kqiLz2G0j4bV8+sgcf/D1s9Qtl5+6b6wtunmdY637NVdp8MKJHP9ydJ63J4tEVIVdQylylQaaIrO5N8lM0WR8sUbD9ZElSOgqpu1RarioMnRENCzPQ0ZMW963tYeposHp+SpRTeVz92/hpz+6+V3fx5XA+z2/19201IcRq1sCy8t7P3zHKImIyj1bukNV0R2DKV45s0jgBzRcn3zdJgiE+nCuYreGqpABx4ezC3UqpkOhGdhA035BEnHt25NFPD9gU3eCDV1xJEmityOCqoh2VTuw+dbwfls9reftGRHKw4/sGQqF2DZ0xvm9509zar7G/3jhLJ0JHdP2iGiyaEt4ATEdxvriLFQs6pYbTt3oqsRopwhqVEW0IF85l+fYXIXBTEw8SZLCjbBlmdGurH3zeC++zX1bu/mp+8bYO5rlR+7aGAZCR6ZLfO34vJiW8gP+ZP94GNgADKYjzJQtJMD1fVwfpgqmGAJoad+A8JJzTXaPZIjrCiXTYaFisVC1LplmGekUkvuHp0rhBGYb1y/Wul/7UlGQJBYqDfrTUQzL5fB0mYbjsWs4jel4jC/WSEY0/MChYDjUGh6y3LLlURnpjDFZMOhO6hQNMU5eMYU+jq7KpKLqe76Pa4l2cLMO8G6LYmdTcfTpI3M8+dYU+88scnCyyPhinWRERZaEd1QQSIRFuOBijz6mKrh+wGJVbJiaIkZMvQAsJ+B83sD2xPRUZ0JnqmBi2B7dHRG29acoGTZHZ8qX8AjaeG+835t9+fMWqxZPHZoBYKlm8TdvTNCTjJCLWyR1RegS+QGluoMiSUhKEDpEj3bH0BQxLeUFAdm4TldSZ6pocm5R2GaML9b5nptTPL5vQ3hNW2anQKg82q7YfHtYywcOLvLnWuP9mbgOgdCiKpsu8qpYo8WbcwNEFMPFoAbEfR7TZVRZ5uGdfWzu6eDvDkyiqzJ3bOokHlF5ZM9Krs2ndw/ysw9s/bbby22sDyyXi2glwABHpkuAEH3d1tfB29Mljs1UiGsKL59epGH71CyPoUyUasNBV2UM2yeqyWRiOoW6Tcl0qTRc0lGVLb1JbtmQ5cRche0DKe7f3nfJ+2jtJ+vhrGgHN+sAlyNiLW9r7B3NcnCyyKvnljBtn86ETlwXo3u6LDFXaQhtm0CQhl0forrKXZuylBoupu1ycq6G2wxkZAl0RcZyXFRZYnNPgh+4dRjT9jhwocCZXI24rlKo24zn6yGPYD0t3vWO90uwW/68J/aPh9We8/k6r48XiGqCT9ObEuOZskRTtVb4EckyzJcbLNVtHDdAVyU8J2CpZhHXFVzPpwFoqkQyorJzKM1SzeIfDk4T15UVZqftw+47g5YK9JbeZDhZuHxUdu9olif2j/P2ZInpohHej50JjbkmVwreXaeq9f2krjKYiZHQVU7OVZAkMXa+bSDFoalSSPgc6YwznI0x0hlfd+TPNr59LK8Ug9Cy6e2IcHy2QkxT+NzHtnJkusSfv3oBw/ZREIU70/FQFZn+VJSZUgPH9ZkqGPSkdJE8B1B3PP7p8Azfs3uIz947xlTBYLFqrcn1WS+DCe3gZh1j9UL57L1jjHUnOHChwEunFqlZLneOdRHTZOaP5vARGhggbBbqDZdXxwskdAUkQUYMJ6cCCPCxXJ+i6VJtuLx5ocjj+zZwZEaMk2/IxrhnS/cKHsF6WrwfRLTsEx7ZM8RSzaLheKiyRL5mE48oLNZsHC8AgrD9lNBlYZfhCt8Yw754JFYbLl4AGqIK+MC2Pu7f3sd/ePIQr40XqJgO33vLUNvF/TuMVjJydqHGCydyoc9Tq4rzwskFnj+5wFLVwnI9hrMx9oxkGc7G+J8vj4fifSCUw4PgopL4aizWbPLNJGQgHSURUfGDgFRU5b4beigZNrlKg6mCwXTRDIOdNj5YWF0pLhk2By4UuLBk8I2JIqbtMVM2mVgSKtYt2x2zbKErUDBsYrpCwxYJk+Ne3GMcN2Ci0OCvXpvg0FSJkuGweyQjFLS5mPSurlReS7SDm3WAyxFPW1MNx2bKlEyHXUNpMnGdbX0dHJut0NsR4VM3D/BbXzuF01yFihSEm6BPc2S0ZuMDuiLE+lpVbcsF1xO9VD8IeOtCgYmlOotVi1tHsyGRuLUxwvrrq35QsLyNsXeD+GwN2+Mn7x3j2eM5dg6meeVsHtf3SUU1bhxIcnquxpLhUGl4YdCqEHYvuKE3iSRLyLJEd0JHlSU2NLP23SMZjs9VsT2fv35jEl2RrwszvPWM1ffxZ+8dE3oyprOCaJmrNDgyXaJk2JiOh6bIeF7AK2cWGe6Mc/NwmoNNxeJsU0G8brsEboDQKF5Z0QmAmCrTl4owkIkyV2rQEdU4OlthQzbGoekyIJTNo6rMZMEgV2m0A9kPGJa3pw5OFEGSKBkO923tZqlu87XjOSzbQ1UlNFlU75tDs7g+lAyXmCbTmdRJ6AoThToA6aiC4weYtk+A0E5SFInvurGHe7Z0r0h619MQQju4WQe4XDVkqmBwfLZCybBJRFT601E8P+ChHf387w/eQFxX+J1nT1E2bJK6gmF7K7K7lmS7BBCIBayqEnFNoeF42G6AIkF/Osq/2d5HueHwxngBWYZdw5nLlhrXy+L9IGH1KHFnQufwVAnPD8jXLLYNpFioWuiKmIRxPdjUk6A4UWIZBQN1madYvm5z68Ys1YaL6wekohp/e2ASy/XoiGrcNNBBpeHSGdfCceE2vnVcbjAgV2msMDo9OFHkwpLBlp4knUnBbXhnqoTtBdTtKg/v7EeWJaYLJooMU0UhwKkp4jBaq4ATADMlk2xcp2G7vHx6Ec/zuXtrN1t7xXV+5ug8+brFoakSqZjG4/s2XLXPpo2rh3BAYTjNQDqKrsqcnK9gOR6KIrGlJ0nD8ajbHgtVCz8Qa8t2wfN9Ypos7DyaC02RJe7a0s2B8wU8L8B0fVKqxlAmFp4F6zHpbQc36wCXWxh7R7M8dvsIFcNmsmhyPl9jx2CaXUNpnjk6x//99gxV02VDZ4LRrjj/em6JWtMkU4IwxVNk6E5GiaoSqbjOA9t72X8mj+f7NByfnmSEgUyMZENFkSVu2yj0bN7r/bXxnUNL6K3ScBnrTlAxHV49m0eWYFt/BwldoSOq0hFVOZOrsVSziagSiiKhBQGBJKEpElZzrNMPoGw6FGo2EHDTYIqZksnBiRL5qoUiS5RNh4F0lILhkIqq7Uz+28Tl7pPV/JZWy+qN8SVmiiY/cOswQ5kY8xUT0/Yp1m3KhsN33djDqfkKU8UGPqAstwdnZQVHkiCmKWzqTjCer2M2WceHJkvYrs/33DzIY7cNc+B8gTMLNdHnauMDibAtZTocfmeOC/k6pu2Fa+T2TZ1NLpYZtp1sUcBHU5TmgMrF16s1I+of3reBo7NlFqsWI51xdg1nwuesRw5XO7hZB1i9MJa3KDIxjV1DaVIzZXYOptg1nOFLb0zwlcNz1CyXbFxjQ1ec2ZKJJrdM9QJcX+xfyYiKD9RtF8ORcPyA/WfyHJ2uEIsoKMC5hToHJ0vsHc1cUvNeq2W23sSaPgjoS0XJxHVePpPn07sH2TWcYbJgsKErAcA/HZ7lttEsh6YvVmp8aPJvAAJcPyCqyvSnIyxWbbqSETZ1J5grC82jm/pTXFisc8emThxftCGRWoFweyT428U3QyD/7L1j7D+zyJlcjb+yJ/iJezYB8ORb05xbFO0ASZLo6YiiSGWhNN288AqQjCp0JSMUajam69OT0CmZLq+czaNKwgne9gKqDZe67fHSmUViqsKeDRmqlhtKAbTv5Q8ellcM3xhf4txCDR+IyKAqMmXDYSJvYDcjm5b/oOMFGI7HUt0hHdeIqDJLNQvXD3h7skTd9ji7UKPheJRNh389m1/XU7Tt4GYdYnWLIqrJvDFeYLgzRsV0ODxdJqLKBMgYjsfhyRKW51M1HQLAcy/yahqOJ9oYAcL1tSndH9Fkdg2m2DmY5p+PzDJbbnB+sQ5BwJll9gprtczapOIrg72jWUqmE0r1z5YbxCMq3ckIgkIMqagqBBg1CXcVw9QPxB/XCzAsDz+whNCj5fLCiQVuGc1w95ZuklGVjoiKYaV4Z7rEYCbGrjbB9KqhFVDcOdbFdLHBYs3iz1+9wG0bO/nIli7OLtSYKhp8/eQC92ztoqcjQr5m4TajGx9xXzccj0RUYSgeY7ZoUmmIsd3OpM4P37GBF08tsFR3KNdtTs9XkZA4u1hjoWrxytk8H72xN5zq+nb94tpYf+hLRbljrIsD5wvUmzY7ZdPltfE8piMMkzVZENUDP0CRQVNluhIaPhIDmQi261O1XEzH49BUUQj6BQGFmsffvjHBUFb4Sq3Hc6Ad3KxDtEY279nSjWF7fO3YPPmaTb7WoFC32dyTpLtD55XTedwAljwLEAGMJks4zZpitGm9YLt+OH2h+AHzFRGNa4pE0XTY2JWgbLrUbI/NPQkeuPGikNvy8dEW2m2qK4O+VJRMTAtF31qeMGPdCfY0RdeGO2P0pyPk63bo/L4cXhAwXWo0q3Ue0wUxZlyzXd48XySqysQjKnFdaT7ucWHJ4Mh0qT1Bc5UQCvvd0MOnd/t8Y6JIOqbx1oUCvakoxbrNfNnCsF0OjBcwbQ9dFRYqrh8gIQxvWxo4hbrwIsMUvQUpCDg0WeK7buzlpVOLyBLc2NeBpsp86uYBpotmOJU30hlHkSWOzVZ44eRCyA1qBznXH1aLcfalouwaSnPHWCczRZNT81Uars98xQ5/JhFRqdueOB8C6E/oLNZsqpbHTNGgLx2l2hDTtJIEGztjGI5PvmYzX7HY2texbg1428HNOkPLGPPYbAXD9sjGNRqOx60b05zN1ZlcMijWHUaysZDw5fhiEgouSrXLkpiS8YNgRYbfGhW3vYBXzxVACoiqKhs641zI1zk5V2UwHePR5vOnCgZnF2o8dWiGno4IfanouuyvXu9Y3oq8b2s3SBKP7BliqmAw0hnn6IyYeNnSneRCXky0raJgAMvbVALlhsOD2/t46fQCthegyhID6ShIcHquSiIqAp12W+rqYXly0PJqOzZb5sk3p2jYLn3pGLuGU9Qt0Qao2S4dUVWowyIulb/sMiuS6C22HsrXHQpGGSQY7oyzeyhNR0zjmaPz6IrML33yok/fVMHA8wN2DKYgCNoV2esYLTFOx/MZX6yFejRncjXKps0tGzK8My0mb2VJGLbqqhz6DAIsVC2iitgLHB8iisztm7J8Y6KI5wXUHR/L9tjYHWfXYJqfWFXtW09V/XZws87QMjyL6wqHp0osVBo0XOHQmoqqGLaH7/vEIwpqs08K0J+KYDQ1UQo1G8cPcOwgVCpu9et9P8AOAqKaTFdSSPkLXxuN6aJMteHwjYliqM3RMnN86fQiY92Jtg/NFcLybH48X+fsQg0QisFHpkvMlhvctbmLjphGrmzhBcJeo4W1Ah216St1fK6C7YoDrCsZ4cRchYF0lIFMFE2RuWOsawWBvI0ri9Uju612ZG8qSjahU6zb1G2PPcNpHM/n+FwF1wuWiTeK11ElEejYrsd8+eIBpTZF/GK6zFsXChydKfPQTUJNdqZk8utfPR5WhUc64zx220gYcGXiersie52iJcZ5dLbC2Sa1YO9olt3DafafWWS+0uAjW7p44eQiEDDaFacnGeHtyRLlhgicbTfAdi9GzpWGiyRZOF5AOqbRGdcI4hoPbu/jR+7aeEl1Zj1V9dvBzTrDSGecLb1JdgymeOboPEEQoKlCXn1LT5KussnkksHRmTKqLCFLkIpqSJKM53mUDNGuUCUh2a7IgiEf1RQUWaJkOjQcH9UPsF2fuuVguaIk+fi+EQ5cKLBvtBMkKeT9lAwHx/Xb2f0VQq7SoGTY3HdDDwQBZxdqbOlNhpn0fTf08NCOfggCZoompuOJaQYZ5KYi9XJEFJAkGdfzmVgy6Yiq7BhM8f23DvMP35hmqWYzU2rQ16Fzz9aeNtfiKuHoTJmnDs2E3mHLs9xdQ2nu2tzFPVu6OTlf5ZUzi5zK1djUnaBkOMyWTDEcEAihTsNyieoqtYa7UgpAFpIPhu1i2j6262M6PvvP5vn392/ljfElvn5qgRNzFTqi2iW6JNc6227jW0Ou0uDLb88wuVTnoR39YeB6cKLI43eM8s5MmVPzVSSEEnbVcpgumsyXLay1+ttNWK5PyXSIqDIP3dSHIkvsP5PnxVOL7BhMX7Je1lNVvx3crDO0VEQBTs5XKRo2n9o1wD1bhdLoP70zG05AyBJ0RFU0RSab0JgvGyEPo9WdUGXBu4nrKjFd8G98z8cLhH6KJElIEkR1hR2Dac4t1hnqjEMQcN8NPQw2Tdc2dCXa2f0VwsGJYjgltXc0G6rZHpkps2ckE47tPns8h+sHZOIahu2RjqksVgV/SrQbRaUuqqlUmpIABAFFw8HyfF46tciR6TK27+O4QuyxO6G/63tbTz306x1PHZoJg5mdQ+kVWe4LJ3K8fHqRw1OC4O0F4jrnKg0cz8MPArqSGnXLR5Ul6pYXyj60kIoq9HVEOLdoIEsSFVO0s0zHQ5eF11DD8eiIquwZybBjMH1Jhn05d/M21jcOThT5uwOTFAw79AY8NlvmxVOL7B5O8xP3bOJvD0zi+wGJiIsfiHXUcJrJbRMRRdAZPN+nI6rxwPZeFqoWR6bK9CQjDHXGeWe6zO6RzAoz1vW4TtrBzTpDS+/kVK5KIqIQ12NoTVXRqulQNh0cz28eYjLpqEquamO7Hstap+Gm53gBmhdg2A6VhpDT7ktHRTXG9/G8AEWW6G+anoGQ7X75TJ77tnbzytk8s+UG92ztWXeL94OAXKVByRQqoss//1fO5jk1X20K7ql8z+4htvQmefHUAiXTwXV9qs1SsiyBJAtBRk2RietKWGYGsRbemSpjuz4DmSjnl+qoioTt+jxzLMeGrsRls6311EO/3tEi8d6zpTs0OGx9pjMlk8mCgR8IT6DbNmaF8Kbns1SzCYClqkNp2XVdjbrlMeGYYmIyIKzyKM2K69eO5cjEVD6xc2DNlgJcOqkJ7et+PWDvaJYf2reByaU6S4bNlw5MEtMUbNenULeFpEQAB1eIfnorXkNGCPaZjlAirpjCzHW6aFKzXM4u1uiIquweyYQCkE/sHw9b6OttnbSDm3WGlt7JS6cWyVUsYprMv7wzh67JaLJMrmphe0FTsVSmYrlYrn/Z0qIkSbi+T9HwCXzQNJmS4aDIEoqsUHJc5CDA8YKViqpxnZLphC2S9dBD/SDi4ESRl08v8undg6G5YosU6Po+00WTW0Yy3L+tl/u39fJPh2dpOCuvtR+AIskomkRck+mIqpQbDqYtgmBNlXA8n5miyVA2xuaeJD1NDRzL9VdMwq3GeuqhX+/YOZRm51A6NNAsmWLKaaQzzuGpEgHCyf2R3YOcXazx4ulFOiIqXhCgyTKJiLoiuFltw+AHhOrUvu8zXTQggHhEJRHVyFXrjHTGGOsW2klrVWmWT0m2Hmtj/aMvFeWnP7qZXKXBbzx9AoBKw0GVhLDn25NFzizU3tWIVddEohRaucgS5xZrzBYbyLJEuWHzp6+cJ5vQ2TmYYjxf59hsec0K4HpAO7hZR1i+2fzQ7SOczFUxbY/TCzW6kzr7Rjt5bTzP21NC1KtquujvcQVdP6AzrlGo23iA7/hImoyuyty9uYsTc1V6OnQ2dMZDv5mWdf0LJ3I8tKO/bah4BbE6eBjpjLN9oIPRrgRzZZOvHJpFUSReOJELhdckhJBb65jTmiP/ju+BpDBbbuD7hNo4rbKz5XqcnKsiy6JlkY3r7zkGvp566B8ULK/QtaokXhCwtbeDjqjGUDbGgYlC0/U9oLcjirpqQgqWqRMjJiSjTQsWMSoeoMoym3sSfHrPEFXTwbDm2NiV4OUzeYCQuL6lN7miStO63m1pgPWLy7WDDk4UKRkO/+amPoqGzYXFOgESBcMmmxADIvPlBhKCk7kcrgd2IBInRRLmmZ7nM5gR4+ATiwZFw2EwG6PSEBYfvR2RsCLZqkaul7OiHdysIyw3H/vp79oCCBLibz59goWqxVA2Rk9HFIkyEk0xL1eQhzuTOk7T4Xs1TMcNOTjiwBMjwaos88UfuoWnDs3w0ukF8jUrJJcu54Gsl8X6QcTq4OHITJkTc9VQ2lyRJU7P1ygb03QldWqW2ySIy1QaDq4vJhwcV4hyqZJPfzqKLMG5xTrNvQpZEkRCy/VwXC90CHa8NlH8amN5hRRJomLYfM/uIXYNpZkqGEwWDJaqVtPkVOfcgoGmK1Tq9iXVGgnQVfADCVWSSEdVyqaL7QVk4yqf3jPEhs44cV3B8nzu2dLNbMnkwIVCyO9pTU6tx+y7jbVxuXbx8mTp9547zTcmivR2RISL93CaF08t4gWCeK6yMsCRJAh8yMRUZEmiYDjULI/elMpc2aElZ16qO7x2Ls9izSJAcLmOzlY4PFXiM3eOrhvPsnZws46wVgtgqiCiZcN2eenMIifnqwTBpa7AqiyxtEZgA1C1xAknAemoiixL2G7AGxcK5Os2pi1aW8dmK6EycbsdcY0QBDiez4HxJQIgm9DZMZBi36ZOYrqC5QhxrQsFc4X/S0dURW2OTVmOxwPb+7Acj1zFJgh8/ACW6g6KJPjJqiJkAe7a3MWuZqtkPWVdHwb0paIQBDxzLMdjtw2HbasvvTGBHwgLhVzFZqluIRvgrGGaGQCOCz4BFd8Nkx4Zca8fnCzy1XfmyNctYqrMWHeCTFznTK5GteE29xavXZ27zvBePma5SgPT9sjEdfpSUc4u1DBtj/5UJORrzjVFIFtwPEjoCvdu7Wa23KA+U0FVJM4u1PGDgB0DHTRcj4lCnXzdIq6r9HZEqDRcDk+VqFvuuvIsawc36wSXKzPuHc3ymTtHOTpd4uUzeYqGTTKqhGZmPoI8OLtqobawPNMLgM6khuNBKqYyX7aYzNdIxXUiqsyOwVR4s7TbEdcG92/vYzxf57VzSziez4bOOB+9sYdjsxUiTcEtxwtWtChUCZIRhfmyhSSB6XocmipRtzxsz0dTJOEfRUAARDSZiKqSieuhUOBaWeB6noT4wKBVNVtWPbt/ex9IEkenS7x2vkBUVTBd77J8ia6kTsm0cb2LtisBsFCz8GYrNByXxZpDXBNijXtHs3zP7kFOzlcYysQoGXbYkm7j+sDl9ufWPVsybHLVBhs741QtMV07WTDoSka4dTTL/3VwppkUE07YaooY/X7lzBIxXUFTJBq2R0+HTjqqcc/Wbm7f2Mmf7B9nttxgMC10slJRlc/cOQpBINbuOkE7uFkHyFUa78o6z8Q0HtrRz8lchUrD4eahFMdnxSSN4/k4/qX9+Bbkplqx64uDrWS4jHYl6EtFBO+iKeS3pTdJdzLCCydy7BrOtMdArxFapordyQivnFmkZAgS30zRpC8VwQ+gI6aRsT1UCYqGQyqusVSzxcEWgGn7HJkqE9FkJMT1T0YUYYznekQ0BYmAhaYa9iN7hsIx9OVoT0pdGSwPGu/f1htaHqxAU9+qK6Fz22iGN8YLTBQELyauS4JTFQRYnrDWCJocq1YyI3zINB7ZPcjXTy+Qrzlk4ipHp0vENJk3LxQwbJfuZIRnj+c4OlNm51Ca+7f3te/56xgvnFzgyTeneHhnPzsG07x8epGS4aArMqdzVXwf3poo0nB8ZAglJGQJNFmm4fnIsvAu8/0A0wuwXJuq6fLlQzN0RDU+uWsAJClso7bW7sGJ4jX93VejHdysA7RUideaSmot1o3dcd6ZKuP4cHCyTCqqUndc7DVK1XKTfCghvEO29iY4OV/D9XwevKmXW0ayHLhQEGJODQdVlolrCv90eJa65XL3lm4KdZuSYYeKpe0N7+qhLxVlQ2ccVZHJaAolw6YvFaVi2hiOj9NUrI7pCpXpMnXLvYQ24yGyMFWRsVyfdEwjrkvIlkTN9jAdj6iu8PLpReqWy//7wRvWtdroBwmrg8bVgWNLRn+mZITXzm4qFKuyxK0bspxbNCgZNng+lu2jSBDTZMzmJJ0MmI7H2cUat2/sJKGr2J7P08fm+frpRSqmwy0jGR7ZM8RTh2Z47dwSx+eqZOJ6O5C9nrGsLTTWk2SxavHauTzVJj8PBEk4GVFIR1UWqhYyTcPdICChq5RNB88XVR1FkWm4YjTctH1OzldoOD733dCzIgFuTQDC+kmE2sHNVcK7lfhb2jZrEjuDgLrt8vr4Eq0J4LrtUbe9S58L6LIQYSII8IC65XJqvkpEVdjal2RzTweVhsuZXA1dFT39vaNZHtrRz2TBEK2QpmlnyXTW3YL9MKClffPQTX3sGs7wr2fzPHcix3ylQcV08ANBFtZVKTRE7UxoWK4TBroykIgo2K5w+01FVQzHIxPX2NAVJwggG9c4vVBj/5k8u4YzlxAB263JK4P3Chr3jmZ5eEcfb0+VMB0PVZEYzETJVxtIksTbU+UVfkA+Qol89fZRbbjsP7OIrsh0dUTQZBldkSkYFgoSm3uTTBUMHtkzxFiPUMQe6YyH/Cug3ZZc51h9rty/vU/IeBg2zx6bJ6KKhSEjOFy2FwjPKCTqtofTDGJ8HwjElJTrE1p9qLJENKKiq2KA4dhsme/fO0LFdHjyzSkeu32Ex/dtWJeJUDu4uUp4txJ/S9vmK4dnwxL1l9+eYWKpzsd39LOhM86LpxYBYZCpyBcztNVw/AApEIJucU2hbHnUbB/VDTjdHC2/dTSLpsjctjHLdNHkR+4cxbA9VEXmvht6eHTvMH2pqNC7Watk3sYVw/IW5WO3jbBzKM3fvjHBidkKmYRGT1LHbJaMJVnCsH38IKA7qRP4QTgtJzyHBDlZkaFsumwf6MD1A/aMZPjXs0vkazabuxMsVC2OTpfItUf+rwreK2jsS0XZ0JXg9fMFCnWb+dkGEU3GC0AKfGpr0OscDzH51oQPSAFoskTRdCmarrDlkGVcNyAaUzm3UOPoTJlMXOfnHrxBkJkPTIaHVsuhHtrJzXrF6nNlOaH4wPkCzx7PYbnCVV4CAj9AUWWCwMd2IR1TSUVFtcZ2A0EKRlRyHA9sz2MgHcWwPRpuwLmFOvvPLLJnOEPJsKkYwmF8PSZC7eDmKuH9ZGslw6ZkOrxwIseXDkxSNGwSEZUfuXOUd6ZL5Gs2uiq0LC6HmCaTiWvMly2qloeuSiQjKo7r07A9FqoWN/Z3cG/TziFXsVaMgS7P0tbjgv2go+UQrUgSx2bKTBYMCnUbRZYo1h3iWZVH9gzxzNF5ZkqG6JWrEtMFE2NZwBsE4PminOx6ULVdTs5XMWyPpZrFA9v6GOqMs2sozVOHZkKjvfb1Xh/YO5rl4GSRpZpFOqYxX2mI1oEnsmnfD0hGVYIgwHQ81tLw7O0QgwKlhtgvLA+0IGC4M046pjFbMtFUmYklg6cOzQhdm1ZbIwjWZTbexkq82zXK14Q1iwS4XoCiSHR2RPD9gKWmrMCmngSO6zNTEutLbVb/IqqEpoiAaO+GDKdyVUzbxfUCTs5V6emIkInrpOLvbt9yLdEObq4S3k+g0FJ83NSd5Ltu7OHcQi3UoGhNyNQsD0US5ojWGjGO5fps7EpQqDs0XB8ZiR9uthv++vUJKqbDV4/M8eN3b2LXcGYFp6Z9sF17tA61184t8X+/PUPNcunuiDCYiTJVNOntiFA0hOmd5Qpileu15qAEZETm7i878BzHp+TZKLLMRMFgpmyyYyhNT0eEz947Fpa2l5e5od2WuNJ4t8/7kT1DnM/XOT5bwVyW0PR06CR0lb2jGV47V6DeFODTZYjqKtWm55Tl+BTqTvhzXXGNG5vVu6WqcJb/xPY+LNcPhdhabY32nnB94HLX6OBEkbLpkIlr9HboVBtC2yqpK+RrNn7TcDdXtiibdjiQ4gZi/3D9AMf1GO6MUW24nFuoh88xbJdC3eamwRS71rHQYzu4uUZY3SttkYrjusr5fJ24rqAqMobtYbmecABHHFrCO2alnFfre14A78yU6enQqdseMVVmpiQ2P1WWiWoK9YbLH3z9LJ+5c5T7t/W2D7B1hNahZlgux+YqVBYcBtNR/s1NffzdgUm29CbZ1J2gI6oSmDaqIqPKEpYb0Gim7y1CeQsKoCoSMU0hCAKQZKaLJk++NQUQ6hodnChSMh1ePr0Y/my7LXFlsbytABc/772jWZ46NINhu9wx1sn5fJ3pgkEyolJuuNQsC02W2dKbYKYZ3ARAZ1zH8VxMBypNx3DBudLIxDUUWebkfJnejgif2N7HUCYWTkf2dETaAc11jKMzZf72jQk6EzodUY2IplAxHVwvIB1TiTVbm61zQxCJA2KajGOtamn6EFVlDMtlsdkHlRDj4pIEZ3I1KqbLVMFYt0rW7eDmGmF1r3SkM86W3iQ7BlP88ztzLFQa9KaixHWF/9+LZ0VrQgGaY99+s3wscXHRRTQVw3KpWR41S5BHUzGd47MVDNtFkSWSUYVcxQIC/uLV88wUDc4t1sP30ca1w3KNioLh8Ikd/eQ32uFEy2y5wUunFjm7UKPScHF8UbHZ2J1gfLEWvs5qHS0PYaAa1SCmK+iKzLmFKp1NOfblPJ+Hbuq7ZCy83Za4cljdViiZDiXD5oUTOd6eLGK5Po/d1sO+TV2cmq+w/0yeuKaQSWgcm6uQKzdCbRvHh8miEQa2rcc1WcawXRwv4N6tPQAsVBoU6zbnFuuM5+ttk8wPAJ46NMM/vzOHHwiPss29CeK6yq7hFHXL4/BUCUmSaGp94gZQNoXPYAutf6VjajO5dunpiLBQsSgaNj0dUSKqTEdUY2N3/F196a412sHNNcLyTS3X1Btp6dwYtkfddjk+W+HLb88QUWVimkJtFddGkUSlJgBsD1z/okJxXBf9UsNyyCYjxHQF2/M5t9CsCskSp3M1IqrC//Ojm9sH2DrACydyPPnWNA/v7Oe+G3ogCHh07zAA3ckIt4xkWKxazJYMfF+0KX0/4MxCDXuZjrosS3irhI92j6TpiKgs1izG83Usx6dsuvzBi2f53j1DHJstNzfCzIpMrH3YXVmsrpS0SLz33dBDJq5zeKrEn796gdmSSVxXmSmZDKSjEMChqTIgDiRV5rJ6V5oiNc1VYSAT48b+Dp58a5oNXQnu2Rq/rElmW8RxfeD9XodH9gxxeKrEqfkqtutj2B7dSZ2hdAzX93lnqojvB9jL2tWqIvg4LQQIleLuZAQk2DmYIhvXhR5OAA3XZ+dwmqmCyYW8EVb81uM6ka/1G/iwYvmm9vvPn+Hl04sMZmI8smeIHYMpTNunULc4MlPizrEubuxPsizABmDZmgwbVLoq05+K8OC2PmKagqYpzJYanJ6vNXVvFO4Y62THUApVlsgmtKvy+7bxPtCc5U3FNAgC/vqNSX7vudO8cHKBQ1MlVEXmXL7ORMFEksRopxuwIrCB5sTcsq9VCWzXJ1+zmSk1sJvE4yBolpcbLpu6k8yXGxyZEQdmrtLg6SNzwv+ojauGkc44w9kYu4bS/NyDN/DQjn5KdZtC3SYRURjtjGE5HvYyQlUAl/UHk4ChbBSQaDguf/jiWfJ1i8duGybVnITcOZQOJ22WQ+jtTPHE/vH2OriGaFX5WyJ5q+/N1tc9HRG+d+8wI51xbujvwPfBCwK+fmqBo7MVHJ9mtXcZAglFltAVsVaiqoyuSJiOy0zRpGQ4HJ+t0N2hk4yqlAybesPl396xgcduHwnb2cvf33pBu3JzlZCrNHjh5EIoUd3aSA5OFDk8VcKwPYIgoKfpsjpVMDg0VWKhavP8iRzzlYt9T7hUuA/E/hbVFNIxjcmiQaXhoskwmIkyWTDoSUbQFYWPbu1h13CGp3pn6E6IEfS2YN+1x66hNOOLNXYNpTkyI8T5Dk+X2TWUZs9IhtfO5elJ6uRrFp4vqjaXw+rvnM3VmrYLMoYs9C4yUZXOuM7EUp3OuE7ZdDgwvsT923pD8ciWjkUbVwdTBYPposmRmTKZmMbOoTSn5ivEdIWP3djLTNHkuZM5upXIiqECz7vYpg4QWauqCAXamWIj1MWyTJc/fnGcf//AVl4fX+LodImdwxnu39YLrCQ0t8jt7Um6a4vVrcvVlIbW16XmWPZn7hxlV3Os/1/emcVwPCzXRwJiqozt+WFibDX/oTZ1bQKEbITlCrFQx/ObVaCAzmSEkc4433/rMBFVYaQzzsGJIiOd8TUVzq812sHNVcLBiSJPvikInK0gorUwPnPnKEemS1xYqvPE/nHGepJMF01kSYh32a6Prsh0J3Qaroe9jDy6AgFs60/iBXBspkzD8cn2JvjEjn6eOZbjrrEu4VkzU2bXcIZf+uRN5CoNNnQl2oJ96wCtg22qYISHTaUp7vjauTz7z+SJ6QrJiEa+bq/pUdfiYLXME31Eb911fUzXR5NhKBunYjp8es8gmiJzdqGGJIkM7nTzIFs+EtzG1UPIvTFsvnJ4lj3DaW7sT7FUs/inw7N4vk8mpjFTNIXuDZea6AIgQTKqUTEdGu7KdrZhexycLLKlN8kLJ3I8c2yeA+eX2LepKySTtyo5yyfp2rg2WN26XB3stGREjs5WRCCsKcwUDWaKBrYfoEgSS82pOTfwiagShrPyvnYDoYvUmVDJ12xMx0eRJXYOpRjr6eDkXIWhbIyhTAzT8fnasRzD2RjTRZNP7x5cl2dGO7i5Stg7muWx20dC/YhWtP3p3YM8vm8Du4bSfPG50xybLTPWnWD3SIa3LhTYPpBiKBPj0FSJM7kqthuQjWuYjkfVFNMQ4QYnCYG/iuGs6L1vG0iRr9t8ZGsPTx2a4bmTC8Qj6opeKdAW7LvGaH32rYyopUHz0plFxhfreAE0HCHaF1Fk1KaxHZJYA62Sc4AgmDveysOvO66xcyTNzsE0HVGNVFQNJ2UsVxjrbe4Wge5ymYA2rh6Wi7Bl4jol0+H4sRz5msVi1WrKO1wkC7ew+usgECKe9YaLu2w6RpEBSSKuK3z23jHevFDgwpLBq2eX2Lexc11m4G1cHi0+DsBsycRyfU7lapzKVfG8ANP2VpwFrgdrNzDFPpGMKASBzlLdhiDA9gImCwZnFmrEdYVzi3Xu29rNp3cPMtIZ58h0iZLpcHSmvO78CNvBzVVCXyq6ory/OvqeKhgYtheSOu/f3sdvPH2Cty4UMYc8SoZDd0eEmuVRaQjicDahk46r5CoNDEvYJtwx1slX35lja1+S8cU6xbrNH3z9LHNlk+6EHupZPLJn6D09btq4umgdbC2fluFsLJQH6O2IIssStuPj+T7JhMYD23v5+qlF5ksG3qrTzVlDAymd0LlrUxfPHMuxfaCDC0sGz59c4OcevIGnDs1wOlclogodnPHFGp+9d2zdbFQfBqwmjraCHBAVvGdP5Dg4UQoDmYgCqqJgOx6rEnHhCl61sL0AXZXo74iwVHdIxVS29XcwlInxwokc/akoJ9Uqo13xNU0z2+ap6w9ryQfcd0MPj902QlxX+NqxeaqWw9uTJRzfx7Q9ZEnsCfGIWC/LocpN0c8A5soNoqrKSCaK5QVoisThqRJ1yw0J6KuNMl8+vcj4Ym3dTdy1g5trhLVKja+czXN4qsT/9Y0pzi3WKdQsCnWbQ5NF0jGdTd0JZksNqg0HAhhIR9g+mOLcogHATLnBP35jmvNLJv2pCAldxbA9TsxVcDyfV84t8ejeYX7pkzcB0NMRCf/vNtYPWtcjrivULZfOhM4D23qFz9SZRf7XiRxTRRGAzJcbWO+SjcHF6s1i1eL/PDhN4AtVW0WCQ1Ol0Bkc4J4t3Xzt2DyvnltirDvB43eMXvHftw2BtXhOy5OiiYLB4alSqEbcMkV11+gcRlQJCUEsd9wgVKA1bI+IKjf3EZfeVIRP7OjnJy4TyLZVitcf1romrX+/cHKB0a4E//j2NLOlBooMo11xZFnibK6OaXsh36a1L7TWkwRIkkTNcpAkqDQcDpwvsq2/AySoNhxKpmhvtQKs+27oCas4a03cXUu0g5urhPc1zhcIL6Bnj+fIlRtoioQiy5QMYbvQn4oS0xRhRx+Ias/EkhH+uOUGzFcvGs8EBFQbLjFdYTgbw7Rdfu+506Iy1PQRWi9RdhuX4uRchdfOLZGIqPxvH9vCzqE0/3o2zzvTZWwvoGQUcFzhI6bIEm5zPLwFWRIk89ZgjWl7TCzVSegqh6dK3LYxS8l0GM7GODJdYqwnybaBFLPlBifmqpedwGnjCqHJb5opGvz6V4/zyJ6hFWP5P3zHKKbtcTpX5Vy+hmH7YctRaV7rlptzOqqxULPDn10+WblUd9gzHGe2ZDBfaVCsW/wEY2u+pfYesf6wVmJ8cKLIZMHg7w5M4vqCPBzXFCzXp2i4fM/uARYqFqWm95wqCWHPRjMyViQxaSs1KzhKc466ZNicmq8CcGquSiKiMr5Y45E9QyuCmp6OyLoT87sqo+B/8Ad/wMaNG4lGo9xxxx0cOHDgss/9kz/5E+69916y2SzZbJYHH3zwkuf/u3/375AkacWfhx9++Er/Gt8W1hqXa43wHZ0p88T+cc4vGaRiGpbr05nQiWgKAQERVWWhYnF0toztCY1iTZawPFjunylGxQPiukJnUueTuwb4rht7+K4be/iFT2znlg1ZDk+XefLNqXU3ttfGRbRGcJ8/tYDl+mztS7J3NMvRmTL/+PY0kiQR12XSUZ2x3gQ9HRFsLwj1TtQmByeiQjqqhhtVVJMhkCibLkt1m9fOLXFivsr/8a8X+Os3Jvmb1yd4Yv84u4bS/NR9Y9y/rbc9En4Vcf/2Pn7qvjGKdUEmfurQzIrv7xxK8wvfvZ2PbeslFbko4SABEU0maGpeSUDNclf8rCZLSIg94oa+BPds7SGmqc0kqcEXnzvdvsbrHMvPi+X3ZOtsmVyqk4iobO5JomsK6ZjKaHecpC5zaKpEXFdQJEhHFeIRNZQWURHrp+H44nwJoGI6eD5oiswndw3wyZsH2DOSYWtfkrMLtVAy4sh0aV2OgcNVCG7+/u//ns9//vP8yq/8CgcPHmT37t18/OMfZ2FhYc3nv/jiizz++ON8/etf57XXXmNkZISHHnqImZmVN/rDDz/M3Nxc+OdLX/rSlf5VvmXkKg1KpsN9W7tXlO1ai7Il4LepO4EEWI7HUDbGLRsy7BhMs7ErjusHnM7Vmkz2AMPxiDadXlsQZWdxyJ1brPH6eIH+dJS3J0u8eaHAWE+ST988EOoTtLH+kKs0KBk2g+koZcMhosrs29hJXyrKl96YYLJg0J3Ueey2EYayMf4ft47QlRTmdV4AQZNhHgC2C5qioClCuyIIQCJAkUFXZBYqDVwvYLHaoDOuMdwZ49VzSxyZLoXTMutVw+KDiFZG/vgdo3x692DYKlyOgxNFnjo0S75mh4EMgGFfHO+1feEr1UJEEea5fakIuiJxdqHO375+IdTKUWTRnvyNfzmxIsBpB7brC8vPi+X35EhnnGxcI5vQ+Z7dg7h+wFypQcl0SeoqfZkYx2bKzJYtMSll+1Qabjgx5UJYBfT9pi9dIMQf45rMjqE0OwbTYUtqMB2l0pqulaR1S0K/4m2p3/3d3+Unf/In+fEf/3EA/uiP/oivfvWr/Nmf/Rm/8Au/cMnz/+Zv/mbF10888QT/8A//wPPPP8+P/uiPho9HIhH6+/uv7Jv/DuHgRJGXTy/y6d2DK1pSrQVhuR7n83WyMQ1VkRjJxpgrNbiQr9MR1YQniB9g2BezMb+pFqmr4hADEanGdQUvCHDcgPF8HcfzKBo2h6dKnFusrzm211YiXT84OFHk5TN57ruhh53DGWYKBkdnKxydKZNN6MiSjOsFJCMqt23MQhCsMFVUFQmv2d7IxDXu3tLF6+NLVEy3ybORSEVVPD9AkmR0Rdg3qIpMV1wnV7ZWtKMux7lor5nvPJZ/pi1e3GrsHc2yYzBFvtYQk3GBaEfLkvAQaxGLVQV8TwS5fhDgBj49UR3T8aiYbjhlJyOeUzJs3poorNCzaZOJ1xf2joo2csWwGetJrlC3PzxdRldkbtuYZb5s4rg+nh9wcr7CWG8SSRIMm9Uj4KsRIPhanXEdXVXIJjSePTbPo7cMsaU3yWvnltAUmZ1D6TCoWa/3/xWt3Ni2zTe+8Q0efPDBi/+hLPPggw/y2muvva/XMAwDx3Ho7Oxc8fiLL75Ib28vN954Iz/zMz/D0tLSZV/DsiwqlcqKP1cTe0eza0a3rUztzQtF3rxQYKZs8iN3buSB7X3CldXzKRo2luOFxK/VF8x2L2ZvUV0mqsk4nvCIViSJW0c7uf/GXhRFIqrKa3qBtLPz9YPlCrWP79uA5fl87dg8X3zuNB1RjWxcQ1dlCnWb6aJJKq6zta8jXAOWF4STUxFV5tE9Q/zsAzfQ06HjBWD7AYbt0XA9NEUiEVEZ6Yzz0E19PH7HKI/dJuweWtl6a41eboqmvWa+c3i3z/ToTJlf/+pxFqsWH72hh46IhucJdWoJSEVUNvUkiOsKuiqHtiwteD6czxvULFe0K7riSEioqqjoZeM6j+weIq4r/PpXj3N0phyuxfXsH/RhQl8qSiamcWhaCDz2paK8cCLHa+eWGMnGuGkwxY7BFEt1B9sP8BA8mpmCiSQFaw4d6IqEuuxQ8aFJ9YANnTHyNYvnTy7wV69P8MieIT5zp9gj7t/eF3J91mtl74oGN/l8Hs/z6OvrW/F4X18f8/Pz7+s1/uN//I8MDg6uCJAefvhh/vIv/5Lnn3+e3/zN3+Sll17iE5/4BJ63xvwr8IUvfIF0Oh3+GRkZ+dZ/qW8BodrnsoWwvOS7IRujMy48QEqmw9mFGqosEddVggCqTRlSGehMaJcs0tYmZto+nUmdoWwMCVFunm06gr89WeLQVImpgnFJuflywVcbVx/LhfxAjOxvH0iFX/+/PraFf3vnKJ1xnc6Eju16HJ0prynktlCx+PKhGTIxjX0bO4koQmYdCXRZJgDqDYfXzi5RMR12DqXJxHVePr34nkFLe81853G5zzRXafAbT5/g796c4k/3j4Mk8d03D9CV1NAViagqUbVcJptrBD+4OFElQ0dMoyuhIUsi8DUcj4d29PP9e4e4e3MXmbhwkbY8ny8dmORv3pjgT/ePX7IW27i2WJPeIEloikxMVzg+W+HNC0VSESXk3gWBRFRTuHk4y2jnpRUWWb500jIIfEzbp2q53L25i6FMlJmiwRefOy2SrjtGr4uW9bqelvqN3/gN/u7v/o4XX3yRaPTihfmhH/qh8N+7du3i5ptvZvPmzbz44os88MADl7zOL/7iL/L5z38+/LpSqVz1ACeUyDYdMjGNyYLBM0fneez2ET6ytYeJgsFM2eTF04uUTYcgEFMwsizh+35YPn4XxX0CIB3TeXB7H3/x6gVsz+ftqRL3bO3mUzcPsqGZhbUcoOGiEmm77Hzt0eLb3HdDT7h57RxK8907+/nrNyaZWKrzw3eM8qf7x3nx1CIxXeGN8SXmKw1U+eJIZwuSBKfnq+QqFq7n0xFVm2RklarlUKuLfqbTcHn62DyP7h1+36O/7TXzncflPtODE0UWqhZRVZxEzx6bR5ElZEkmQCIIAqFW7AVkIgq+KlMwHCRg12CafN1iuthAkyVUWQwcHDhfYN+mTjZ0JbhrUxeTRZOzCzXqtguBYKS3KzfrC2vRG+7f1ksmpnFspsxbF4os1Sx++I5RTuaq/Ou5JUzLI6YrJCIKx2tiTcgyYXVXliTELnBR6NHxoOqLJLs7GUFXFcbzdSabifEXvu9mdg6l171MwBUNbrq7u1EUhVwut+LxXC73nnyZ3/md3+E3fuM3eO6557j55pvf9bljY2N0d3dz9uzZNYObSCRCJBL55n+B7yBWy6pn481phyBgqmBwYq6K4/nsHsmQjWmczdc4NFkSAkwyoQqtLIl2g+X6aIpwfxYVHZ3uVIQ7NnXykS3dTC7Vee7EApoi02iKNm0bSPHUoRmOzZbZMZhet4vyw4oW32Y1N2vXcIbOI3N8Y6KI6Xi8eEoEwIbjkY7F0RUZSQK3aferNQMdxxfBjSQLzZMACdcLqGnuilI0wNmFKr///Bl+9oGt7aBlnWHvaJYfv3tjKN45sVTnwlKdm0fSTBUMpgomtu8S1WQ0VaJYd1EkQTA/PF0ORf9kCfZsyFKq27x1ocjBiSKjXXH+w8e3herlOwZTvNlTYENXgiMz5bBys97GfD+MWCuYaAXEJdNBlSXO5+uMdMb5iXvGiGkKzxybZ75ssli1QIKupE5PUufsQk2EMwHEdRnTvkh9IBDO4Jt7k6iKRN12MS2XWES40n/pwCQ7B1MgSaGkyHrEFQ1udF3n1ltv5fnnn+fRRx8FwPd9nn/+eT73uc9d9ud+67d+i1//9V/na1/7Grfddtt7/j/T09MsLS0xMLB+N+XVsurLRY8WqxbbBzrQVZmy6bBUs3hnuozl+ERVGcP28BFlxqW60+TTQH8qwmLNJggCZEVmz0iWY7MVLNcnm9DRVYnR7iTnFuq8PVkiV2ng+QE7BtOh+mybGLp+sNbm1SIM5qoWpu0xUzTRVAlNEaO91YaL4/okIyq+1nQK9wKc5iSMExCKnMgE+IDpCB0MGcgmhJWH58NbF1YSSnOVBi+cyIWbGNBeK9cAfakoj98xytNH5njyrSkycY2NXQl0ReaVM/kwO9/Sm+TYXBnHA10Wl70V2EhAV0eEYzMVFFkKJ2IkSWKkMx5ObI51J4hHVF4fX+LOsa525WYd4d2qpbuG0ty1uQvT9nh7ssSJuQp7RjI8snuQ/3Uix0K5QSBJqJKQgog09dK8ABzbQ5Il3KbmTVyX+bG7N1I0HL52bJ5sXKMvHeVTNw/gB9Cd0PmbNyapWy4EwboV+rzibanPf/7z/NiP/Ri33XYb+/bt44tf/CL1ej2cnvrRH/1RhoaG+MIXvgDAb/7mb/LLv/zL/O3f/i0bN24MuTnJZJJkMkmtVuNXf/VX+f7v/376+/s5d+4cP//zP8+WLVv4+Mc/fqV/ne8YloseHZwoUjQcqg2HgxMlNKUlyOaT0FUsz8P3hLlZK+H2A5gpNUJfw1rDEdWgIOD5kwvNySmVB7b1UW04HJ4q8ambB4ioSnh4Pn1kjpJh8/KZPNCeiLjWWGvzeuHkAq+dW2LHQIp4ROV8vsaD2/voTOhMF03OLFSZKzeo2i6KLKPKMookJmQaq6RrVUUiosjUbA9Fho6Ixo19HRyZqRDRJG7b2BkSSlvO9E++NQ0I3zGgPT1zDdFy6W5NrCSjKrbrI8mCi5erNvCbatW6quA7XrhndCU18rUGltuaqpSxmj5lf7p/nKmiSSauMVMyefn0Ium4xom5CmXTaVdurgNMFQyKhsOekQwn5iu8My20aLIxoZEmiroB9eAioTwVVak0XObLFroqsVC18HyIKDJDmRgdEZXtAylOz1eoNjxqDZdf/76byVUaTBYMDk+X17XQ5xUPbn7wB3+QxcVFfvmXf5n5+Xn27NnDM888E5KMJycnkeWLNfI//MM/xLZtfuAHfmDF6/zKr/wK/+W//BcUReGdd97hL/7iLyiVSgwODvLQQw/xa7/2a9e89fReyFUa/N5zpzk8Xebf3rEhjHhbOgWm7TbFlDxcT+gONFyfjohKwRAlaV2V6OmIMF1srFAdtVyfsws1Go7HdNEgCAL2jIggpli3URWZiKqEh1LLv2jPSKadna1nBAGaIrNvUye7hjOhVcLOoTR//NI5Xju3RFdSb0oFeFQMh950FMO5KBvQklnXFRkvEFWbmK7yXdt6OJ+v43g+2wfS/OwDW3li/3gYwAgycwejXYk1pd7buPJYXlkFGOtOEFFl4QruB8Q0BcN2mSs3Qs5VQpepN9sMMjTb19DS9QtoGbDCeN5gtmSyazjDfLmBKksU6zbVhkvd8rh7c1f7el8HaI2JH50uUWu4BIGEYbmUzYv7gCyJttNMsYFUbtDbESFfs0noCq4nRCBlhP/U3781hWl7fN8tQ3QndN6aKJJN6Dx9ZI69o1l+9sEb1r1b/FUhFH/uc5+7bBvqxRdfXPH1hQsX3vW1YrEYX/va175D7+zq4uBEkcPTZVHOa0a8rbbD6+NLlAwHRZZoNAW4AqBuedQQUw8JXQiyZWIai1WbRnM3kwDXC3j59CKSJOF5Aaoi43g+T745Sanhcntz8ecqjXB6C6BkOuEUVTs7u7ZY3SLMVRogSeHo5Qsncrx1oUh3MsJUweDkfIWqJYS1WodV63Vaga+mQCam4zaDH6tZzYlpos8+XTBRFYl9m4RQ4D1bujmfr3PPlm6mCgZz5QaJiNgm2iTiq4+WWvUrZ/MQBMyWG2zpTXJhyWCyaAjtIlm0IkHsBamoRt0WNixNCgWVhossiYpvSx+nBdsN6EronKoKmX1hyKvxwI29PLpXSAO0DrV2O3L94BJKQRBweLqMoshhINOC1jTH9GmuCR/myxY+YJsuanNtJHSFWsNlrlxGV4Wnxy9893ZeOLnAkekST741BVwfRsvrelrqg4a9o1n+7R0bQg5DrtLgif3jHJutIMsShu3RmdCI6Qqe52F5F8d6PR8aboDhOOTrzorXDZp/TMcnocvIzTHAYt3Bcl3qDZeCYfPy6UVAtBj2jmYvcoCaX7fQ5uFcG6wWTVs9HTFTMpkuGrw9WeTQVIk9wyIYPT5b4dxijaDpCdPKwALE5IMfBERVBXNZNadsurx2bgnTcdFVhVfO5umInCUV1zFsl796fYIfuXOULb1Cbn05F6eNq4PW6G8mrvHS6QX0ZrvA8Xz6UhHqtmhlO57wFFNkiKsyG7vjFOoWTQUJbE/YtXREVGQZDMvF9mCsK0rB9Lh9NEtME/o4MV3httEss+UGG7oSLFYtvvjcaYymUGR7DVx7tPbnkunw8ulFJgsG+ZqF4/mUTZuYpiDLQsQRRGI8lIkxX2ngukF4piwfrvSagU1XUme+IkxWFUmCIBCj3kHAXDOwXs/VmuVoBzdXGK2F2CIQ7xrOhLoRByeKoe1CR1SlWHfQZInupM50wVzxOpIEnuevaEW10BFRMGyRwUmyjGP7yBLEdBkCmVRUZd9oJzuG0uG0Flx+DLytTHptsHr0trWJjHTGefrInBjVbZ5Y923tBkli38ZOzuRq6KpMw/aRAiHmaNoXKznluoOiejjuxew+okg0HA/HE7oWR6bLLFQs/v39W4g3jTU3dSd4ZM8QTx2aabctrwFawW1nXCMd08nGNYqGw/MnFrAcD1WRycZ1XM+nVHcIfIjqKoW6EwY2ADFViDU2XI+yIY40GejqiPHZjw5TMWz+6Z05ejsilAyHbWOC39UiGh+aKrFnJHPdHGofdLSqeZm4Rmdc4+R8hVfPLTHaGcdyfKoNF6sZxGgy7BpOs1S1CFh5eLTYMi0bj0xMpdZwsd2AVFTlrs1dIEmh+/djt41cVwlvO7i5wmgFCsPZGNNFM/wbLh5ek0t1Dk2VuHdrN4mIypHpEqWoQ7XhhssxaK5AuUmgaO1digQDmSgT+TquH6DLEl0JjXRMkA23D6bpTOjcvqkTw/bYNZwhE9dD6e61KjTrXb/gg4rlomk7h9L0paKMdMb5zWdOslBpsKknQV8qwpbeJOP5Om9PFonpKjcNdjBRqIvNTBW9cy8QZomuH+ACfrNGHddlZElCVQQvA4RpnmF7ZOMau4YzzJRMLMcLW1PtceBrg+XB7T1bDUY64xyZKfPS6QUOTpbo7YiE3nGSLHyBDNvlnq3d5GsWS3VHtKL84JJqb1SXOZ2r8ltPn2S0O47j+XR3RNi3qQsgbFW3/K0e2TN03RxqH3QsJ5YHQHdSR1ckJvJ1fITZZSuxCRAifkXTZZWXavP7zcAmoTGUjTO+WCOuyfSnIhyfrbC1J7nubRYuh3Zwc4WxfIOaKhgrRsBbVZMvHZhEQlRnNEXC9nx6O3TiuoJpe5iOh+0FtIZf5OYfHxH01BsiA/cRHJqopuB6DrIsUTBsKg2Hv3p9As8PeOy2kUtIxbCyQtPmVlwbrBVUPnVohsNTJaKqzPfdMsQju4comQ7PHpvHcn1O54q8PcHFQEWVkSQJxwuQ5Yuu8a0SdFdC54HtfTx3PEfJcIhqMnFdVP6Q4F/PLPLUoVkgYLZkcv/2vkveUxtXB8vvw1ZguXMoTcV0ODhRpNpw0FQxgNDi0LhewPl8nbimsIRDIqISBAFWs5Qj3OIlPM+n3gx4FyoWNw2mKBmO2FAkKVTB7UtF20HtOkNfKspn7x1jrCfJkekS+8/kmSk28IG4prBvLMvZhRq5coMgCPjGhSLWGiX/1iMSIgDe2B0Pk5xjsxVBUJ4r8x8e3nY1f73vGNrBzRXG5TYouNiy2jWUZvdwmpfP5KlZLqbtMdwZI6IqeH4gVEOXQ7pICPSBuXLjolCXLCHLErbngSdxIV9nY3eCqYLBTQOpNUnF7YNrfWCtoPKRPUMYtseGbIyPbO3hyHSJmZLJQDrKI3sG+d3/dTqsBAqOjTBY1RSJqKrQaPJsWhycpZrN6VyVhapwle5LCffxIIDJgsnr5wWxXZUl/uXoPLuGM+1Adx0hV2lwcr7STIYklmoWqiI85RqOj+UFHJ4qoysInznXJxlRqFtieiqiSHQldRRZZr7cIKrJ3Nif5EfuHMWwvTBwHszEALh/e991l7F/0NE6N+7f1suuoTSFuk3ZtKk0PGK6TKHm0BHRKGo2dcsPyeZrodUJKJku+0/nuX97H7dvzHJm4SRBANMFMzwvrje0g5sriNVjnKv/XTJs/uHgNJbrs32gg4CAwUyUYt0hosrMl01M272EZ+M3CaNyU4VUlsWYr67I3LW5C8v1OHC+SECAYfsoEtiuj+l4PPnm1LoWXmpjJXYOpfn1790FwJcOTPI/Xx7HDcQI8FTB4M6xTg5OlijXbXRNIQgCaraH4wd0yDIRVcJxA3RVJggCXD/grfMF7KYJazquIUui4ue4PoW6AxLEIgon5yo8dWimnbmvI7xwcoE3xgvUbZ+oFjDSGeO+G5LsP5NnYqkOzWkoywPFF7yrxrKxGTcIKBkufhCIarDn8c50mWeP53h83wZKM2UG0lEOT5U4PlshE9fbwe06w3Irn6PTJY7NVdAVmZgWkNQVAgLmKib+ajsWYHWY4wegypJoXdZsDk+ViOsKvR0RXF9YdVyvwwTt4OYKYjkxFy4KoE0u1fm7N6f46I09LFQt5komjufTk4zy8I4+8nWbF07kUCSI6Qo161JDUFkWrq2TSyJrv2VDmu/a2ksqrnPg/FJovFmzXBarNvGIChLkaxYHLhS4f3tfmzh8vSEISERUtvYmOb9U57XxJRK6IP4VEjb5mk3DcpERSsWSBDf2dZCvWlQtl01dSS4UjFDGPwDOLVSJaarY+AKfhuOxvb+DT948wHTRZMdgKhT1awc56wBBgCJLJHQZCRhfrJOMqDQcD1UWJhtBQMi7WguaLFGzPFRZBLg1y+X1c3niusJ00eS+G3roTOgcah50bawvtDRtjkyXeGuiiOcFZOI6iUhANqER1xWSEZWKsdKtO6rKuL4ftqpb50vDFmshGVGJRxQczyfVFO3sbfL+rke0g5sriLXaPntHs7xyNk/BsDm3WKe3I0I6pvEDtw4zXTTZNpDizfOFcGOynIuO4K2RbwnBzak2hHx2EIhR8Q1dCZ58a4qIKrN7OM2DN/Wx/0yekuFwy4YM3ckIJ+eqnM7VVlSR2m2p6wO7hjPcla/zyJ4h/nT/OEdnyjRcj7cmikJK3fexHLFwHC9gsWZj2GLU27Q9LhQMobG0HIGE6YiWhe3BucUaA+kYvR1RHt45wC/94xEOT5UALglu2pIBVx/3b+8DSeLA+BIvnFzAcFymihpLNZuGG6CAmJxb5aLa8ppyfaF5oypCxbhmeeAHLNVtUjGVYWLsGkozvljj1HyVJ/aPh9yr9jW+ulhL96r1dSamMVducNNAiqW6TdkQbebpgkHJbGoaNV8nqkr4AU3V+4uv7wVgu0LFujOusWMgxUypwT8tzBFRZcZ6Ehi2x1OHZujpiFx3178d3FxBrOZQtP79+L4NxHWFe7Z0M1tuQBBQMR3eulBksmDw8unFpmaNEo7rhZwahG5BEEhUGi4dURXT8TCbi7Buu8yWHOK6Sm9HlF//3l0rAplUTFg0LCc0t3F9YPnk0kdv7OGNCwX85m7lej6eH1zUrmhuYp7vC8l9CaFcilhDuiqhqwqKJGHYK6fybhpMsXc0y5ffnuH4bIVNPYlwamb5Btuu/F0bZGIa2wZSvHpuCdcPMG2X8IJLkIwqeIaPooDrikNseRXHRwQ5WhAI7g4i4PmXd+bY2J0Mp6TO5+uhBUe7PXX10Rr5PjhZ5LP3jq2438JJ24LBk29OYro+3QmdTFyjZglZEMfzkCWR6CiyRDqmUmy6xUssD35khjMxjs1VGEhHabgyiiRx79YeJpfqvHZuibHuxHVHZWgHN9cAO4fSYRb8pTcmePKtafrSEUqGje15WM2sS1UkJBRs++Kkg66KSRjP9fEQ2jcAZ3I1TsxV6Uro3L25i5iuYLkeT+wfXzHG+fi+DVf9923j20eu0qBk2Nx3Qw97R7M8sX+chuOhKYI0mo7rGJaLY3koTQd5NwDRgRK8q1blT7j/Bkiuhx7V6OrQmS0JRVtdlYjrCl8+OM3zJxeoWS5be5LsHEqHopNnF2pAWzLgauPoTDkU1Puemwd48KY+Xj69QNFwcX2R9KiyjOMFaKqM3VIwbw4gqBLhxKUfECqhxyMySDK7htN87Ma+8Ho+sL2PiumQiqrta3wN0Br5boloXu5+qzRcTMdjKBOjK6mTiGiMdsY4cKHAQsXGB+QgEOr1gVgnvR2R0IYjG9c4matiuwG+H3DnWBdbepKkYhrZhE7dcsNW9vWEdnBzjdDKgGdKJkXDJhNXCRCGmrmyheX5xDWFenBxUQmvqWAFMcwNxIGUiChUGi6SBK7v89zxPIenSkyXTOqWy3//vptX/L/tVsL1hRdO5HjyrWkeu22YvlSUR/YMcXKuwsHJIqbj0xnXuXVjlgPnCxj2RVsORRZZ+mr+RRCA5QbE/ICFkh0+3peK8daFIq+ezWO7Adv6O8KMrWXiubsp6Nau/F1dPHVohoMTRYayMTHNJElsyMaoWi7PHJtnaqkOiFa2rip4smhHqYpMvXHpYIIXiIpeNq5jOT5xTRwHJ+cq/NXrExi2x4/cORoqmbctGK4uWiPfLRHY1t8vnMhxdKbMqVwVWZLYMZgiG9cpGjavnF1CQlR01ObkbOAHoSQAiP1gvmyhKhKqLDG55IRBb7XhcnK+ykhnPBSQzMT1kINzPaEd3FwjvHBygb95fYJ4RCERUUnHdJIRm6iqsKknweSSge0FYXYFoCDE+2QuivjJwK6hFKW60LcxbY83LxRYqttEVJlUVMN0vHCcr91KuP6QqzQ4OlvBsF2OzlbIVRrsHErz3TcPcnSmjO0GDHfGcD1BJlVlkZn7gRD08nx/xZSEDPSnoyxUGpiOG66lZEThu27o4c2JIg1HYqFqM5SNcWS6xJGZMhXDRlNkdg6m2gfcVcBqdfOW75dhuzx7PMfhqRLDnTG64jqf+9gWfutrp5gtCRKp47koioTlBBjNPSSmCYNi1wtw/CCs9OiKzGLV5plj85xeqBHXFQ5Nldg+kKJk2OH7aO8bVx+tBKKlSTacFcmHYYtqTaFuk43rPLyzA8PxRGs6ANsQoo1RVSKhq+iqzEL1YhLjI2w5fC9AUWUkz8cJoDcV4VM3D9ARURnrSbJrKB3qsl1vaAc3VxFHZ8o8sX8cSYJ0VGOh0iCmq2ztS3LLhgyn5qu8daGI4/kgwXA2huf52J6o3qiKMMX0ILSrl2WJpZpDsW7TldDo6YqjyhK2F3DXli4KdSfcnD6xa6DdSrgOcXCiyGzJZKQzzmzJ5IUTOTJxnV1DaT5z5ygHzhfoTOjkaxa7htMokpiiyddsHM9HV6XQMBPExiZJ8KmbB3m7qUQb1RTGuhOUGw67h9N0RFX+6Z05ppYM3rpQJB3T+Mydo/zUfWOXrJ12NfDKYLW6+X039PDAtl6QJCpNr7gLp+sgQa5qcetohvnyPH4gRvxN28NeHtY2S77JqNj2fd+n0vCYKZn4AZRMm7iu8CN3jrKpO0F3QuflM/lQ0Rza+8a1wnIx2O6Ezitn8+RrFroSJRlVeWN8CVmWSEdVSubFaUjXD+iJqSxWrRWv1xKBFV1rn95UhIJh05eKUqjbHJwssmMwzf3beq/bKcl2cHMV0Nr8959Z5GvH5vGCgD0jGbIJHblJ6Pxfx3Ocz9fxfMGK0BSZXNnCDYImgRiUlrANMJSJkjAdLMenWLepNFxqlkuiLpzFt/Yl2dydZLFaYMdgOrw53quV0D6o1h9Wq1yXTIevHJ5lz0iGk/NVlmoWc+UG923tZudwhv/x/BnyNVG5i2oymiJTMp0VAU694bFtIMV8RbQt79zUiarKvHpWkFSzcY2FikXZEJpLt23Mcv+23jXXRDurvzK45LobNi+fyfPp3YPcv62Xk7kq+08v4gdwZLpEutk60GQY60pwaqEWSlQrEnToIiGKajLVhoft+WGrO6Er7BhMcfvGTrqSEfZuyDLSGWdDV6LdglwHWP75TxUM1PMFupIRJpYMFNtDV2VOzpdxXHGtW7e658NU8eJIuIT4/vKpKdcXOmjDmTiVhss3Joroqsyx2coKjZvr7WxoBzdXAa3Nf89Ihl1DaaaLJvtGO7E8n2OzFXo7IlxYqhNRZSzXC3UIKk3H3wCxIM1lLapT87UwE4tocnP6RaYzoZGrCO2cVFz/ps3O2gfV+sPyja2nI8ILJ3LsGcnwyplFjsyUiUdUYqrMkmHz0qkFbMdvSgQEVCwPAvcSQS8vCPjzV8+TK1v4wHMnctwx1kXddnG9gF1DKfrTUVRZIl+z2bex87JrqJ3VXxmsVjfPVcQhVTIdFqsWcV1FVxVKhk3VEvtE69A6OlsWE1FyK4OHomGjKkLJ2PU9khEVS/boTOg8smeIjqjGM0fnmSwYzJZMtvQmeWTP0HV1oH2QsbxN+dhtIxybLTO+WCemKYx0xTiTq+IFK4lVq6WOopqMLIHl+OiKjOWKADdfd1Bkmbs3dzFTNlmqWmzpTYZtyb5UlBdOLvDkm1M8dvvIdTGY0g5urgKWZ2CtUeyWZ8/BiSLPHp/n3GKdzT0JAmCmYFKzXGwvCJWI/eAiORSaY3zNlWs6QmL9we19PLpniC+/PQMSDKajwjPoW3iv7YNqfWB1tnRwosjLZ/KiZRkEjHTGiagKmbjGO1Nl8jUrJA7aXoAiCzNNy/EJgot8rUpj5QSE5QVMl0xSURUkiY9t60VXFSqGTSquc/+23su+x3ZWf3XQl4qSiet85fAs44s1zufrpGMq1WYSpMlCOEKoEl+q4Of4YtjA9X16OqIMpqPcsiHLI3uGmCoYvHF+iemiwda+BIos8fZkcVk1uZ3sXG2sde+3HLozMY2OiErk/8/ef4fJdZ/33fDn1Ol1K7YCIACCKAQIkQBlFskUTZG2LFHOY9l8bCX2a1nxlciKI+tN7CROsaMojpVEj2w/kR35jRPbok3bkahiMhQFSSTFCqI3om/f2Z2dPqeX948zM5hdLEBSJCiCOJ/r4gXu7MzslHPO7/7d5fuVRZaaFhMlrfOdtycjvUsPAfyW3o3jB4t/NiZTbpWxYqrE5jVpTi808HyIKVKnLPnA9jUXPX/8S5/47ZjVCYObt4DuprCnTi3ywR1DnQPgge1rmCxpvHCuRMN0yMZU1vclOsJpshTMcbYnGy77N1IRNg+m0SyX4VyMbxyeAy6Oe77WC1O4UL29WJlJ6w6U26WDqZJGXJX4g++cwXJcRFGgogXlSccNZPbdliz/aqGuSBAIByatHr7v8/TpIkuNoAHxI7eOLGtsXSkqtvL2kB+M17JAtNVpX5mvsVAzsFyPRERGs01M10eRwO76kgW6bFoIxsFdD3QzyNCN5GL89tePMbHUJKYE4n9zFQNZEsnGVTTLYetQhtF8PJyWeou53Llf0Swe2TdFNq4w3hNntqpTbgZfepCpE4jK0LQuDUKWizv6GI6H2JKOWGqYPHe2yMaBJJsHUtyxsW9ZM/E9Nw0s67+60mt9OxAGN28hu8ZzVDRrmXlloWaQjsqM5GMcnakCkFBlBBEkj072BkBAICoLl6iPqpLAzSNZAP7rk6coNU3qhsPaZpyNAylG8/G3ZWQd8uqszKStVqqYKmm8dL7EfNVgfV+SYsPE9QKJgELVRJVF7K4EdVKVUGWBkuYgCbBxIEFUkZlY0jBtl1xCZSQX47a1+U4mp93YemahcYmoWLvhtf06w+PsB+NKC0ShZrD35AI13WZiqcl3X1mkUDVQZJG7NvZweKaGYbmM5eIU6mbHskURIRtXqeo2giBgOR4eUNYd6rNVFhomCzUD1wum5XaO5fjYnevQLHdZ0NotRXCtibldi7R1rXaOZpeVhtpj+eeKTfaeKDBbNbAdb1mPTSIits725VuZtoRIUpXYPpJGtz3KDRPb81mom2hWoHa+tifBfVsG6UtFmCppncdfaeP7dsz4h8HNW0h3WhkCpdGKbvP1w7MsNSwUUaTYsPDjPhv7U7wyX8d1L6rOWq5PRBboS6ostnbVshj4TB2YrHBqoc5MWcdyPWRRIKpIHUXbqZL2tousQy5PoWaw90QBBOGyjbxwcUFsmA5lzSKiiIzl45wqNPAJjp3uYFgWg34bo2XT4PowsaQjCBBXZXqSKrrl8e2TC/yj927god1jFGoG2ZjCaD7OowdnLhEV614E3447uGuFyy0QbfHEp04tdhrF+9MRqrqN6/lUDQfH9WhaDm7dpyeuYLsepuO37BZsTNdHpEvBmqAMoYgCEVnC9XxkUWDHcAbNcjvBaV8qwv6J8sUSpnCF9HHIm0a7/JyPKxyarvK9U4tB2WgwzYO3DPOhncN863gBy/GIKiJJScRyPQzbQxDAXrEBFoCoAook855NvRyZqbFY11nbm6TUtHC9QCogKkvEVKmjq/Naz+W3Y8Y/DG7eArqzJqP5OCO5GDXd5qlTi6SiEkdmaniez5pMlKWmSdVwGMpGUWURy70YffsEXe2ZmEypYQVxuQ+ZmMp8zcCt+sQViWRUJaFK3DKa7Uw7tHk7RdYhlyeQXp8GgiB4tQtHoWZQ0W12jmSomw6zFY35qkFEFqnqNo7rdjyF2qRUGVUJ6vRtFElEFqGi2dgRCdvxKGsWz55Z5KHdY5dcuB49OMNoPn5JFgnenju4a4XLLRD7JwKV2kxMYaE10vvAtjU8sNVnsqyTiysUqia26yEKAkorWIH22H+wZ4+pIqIoYDkusiiSjshElMCHTmtZuJRbk3gQLGidPo+NvavKAIRcHbrtFZ49u8QL50s0TYd9F8qMtYwsq5qN29Ky+ulWg/FzZ0vUDJeVIagPZGMRbr+hh1PzdS4sBRmZ04UmouCDANm4guvBmYUGf7D3NLeM5bh7Y+81+52Hwc1bQMeiXrM4MlNl30SZrWvS3L2xly/sPU3dcIirIhsGkkyeaGK58PSZ0qrP5QFnF7VOkcHz4Ya+BE6redT1wLBd+tNR7tjYt0yj4O0WWYdcnl3jOT5y6wgIwmUvLvsnyjxxbB5JFHC9INtXNxwcx+9ka6KqiOfRuU/ZcKDLLFjkoueUD6QjMiXPwvXhW8cL/NO/OsAv3bm+cxx1+1utpn/xdtzBXeu0+2xePLdEVbd513iOB28JvL72T5QxHRcfH8v1kASRxbpJRBZxWkrV7SlL34dURKHi+jQtj6ZlIlRNZiMGkiCQiysoktCx+OgujbSPw7DU+NbQXYJKxxS++8oCh6erbB0OhBVjqoRHoFbfm4qwdSjN3748fdEjbpXnLNRN9p5YoCehdFodJBFsxw/Gwz0fWRKp6C5Pny5ybLbGP3rvDdfsdx4GN28BnUYw3ebQdJVy0+L0QoP7tg4idiYcfA5MVHBXjOyKgCxBNqbStBya1kW1WUmAuCqRjiqYjockClRa7rCa5XJkpsr3Ty8yWdZ5aPfYNSvGdD0ykI6+am/DrvEcTxyf54VzJW4ezWBYgUt8PqmQa8o0LRfBD7IqcVXipQsXA2YBGMxEMG2XknZxamqhYRGVRQQ8DMfnG4fmwIf7tg6yazwXZmZ+CAyko2RjCoW6wWg+zvu3DnYk+GerBpIo0DAdhrNxGobNYt1ClS8tH5lO0Cxud11kBAFEQaBmOtQNh68dnOX/e3+gQP3YkbnOZN7BqcplM4ghV4+BdJSHdo9xz+Z+9k+UOTZb5f/97lkisoDjevQkVT56+zh/8sx5yi1V4jYxJcjI6raH4wUb4ZrhoMoCvekIN/TFOV1osGR7CEAiqpCLq8RUiULVoLGKp9S11LsZBjdvIduHM3xwxxAn52oM52JUNIuP37WeP3nmPFXNZqlpInQbR9GWyQ6Cn+FcjDMLTbzW5JQiicEkjOe3mkgD99eILLKuN8GR6QpPny5SM2ziqtSpn18LB2bIq9P+DiuaTalpMV3SqesOmbjKzrEc+yZKrElHO47z3bs5SYBy00IQhI5aKQQLoOl4gYWDF0zrzVR1Htk3RUWzOtMS4fHz1tJtovjMmSLPnl2irFnc0Jtg13ieQs3gpjUpvnFojrazmCr6tJI3yK0gpqrbRBUR2QvcoDXbIxeT0SwXQfBxPJ8Xzy1xz+Z+RvNxcnGFiCyycySzbBAi5K2j3UyO7zNT1lvKxEFvXSIi863jBRZrBlFFxPc87FYgY7seUUVBsC4Gs8mIiO343LouQ38qwpHpGookoEgi7xrPoohByVozXSQR8P1lU3LXUk9dGNy8BbQPiA/uGGIsH+fgVAXT8Tpqo3/9Kz/Cf3zsBHtPBC7Mq1Fs2pSadmcRCrQsgp++f6aIaXvkkyrjPQluGcvSm1D52wMz5JMqt67NdcS4ug/MaykKD1mdzQMpDk5W2D2eZzijs2+izGA6ypGZKo7rY9hu0KTeur/Ycoj2fAIX4FZqOyqLHTd6CYjKEhv6kwxmo5xfbDKciXF0tsb5YrMzLQWEx89bxEoTxWLD5KlTRWaqBt88PMdkKei38vzgO7Rcj6gsghCI+8VkEcvz0G2vMxpuOx6eH/z/LWNZEhGJswtNTrUaxgFOzNUBuHVtjoPTVbIxJZyIe4vZP1HmkZem0CyHTFxhfW+CYsNivDdBPq7yvVcWWKgH53hvUiUXVzhXbOJ6QV+OKgnYrcY7w/a5eSTB5sEUDcNhvCdOqWnheT6W43N6qY7tevzojX2M9SSYXGry/Pkg43ut2feEwc1Vpt30ubIxK65KPHEsUAPdNZ7jl+5cz0xZZ/9kuZO5kQRIxWQUUcR2Par66oGP0RrvrBk2ogC9CZW66VBpWgio3LdlkG3DGfpSEeDigXktReHXO5cLRB/cNcJYT4LRfJwjM1V2r8vzvdOL7J+o4ANNU2csHyemOFR0G0USUCUxUC82gmb1QII/WBRFIKJKVOwUXQAAq/dJREFURFUJtSVvq0gicVVitqITV6XOtBTAI/umOsFOuNBdXbr7mXavzXO60CAbV5haauK4PhXd7ihRe35QjsjGFRzXQ7PdjgBou8G8JxUJtJA8n4lik4/cOsr7twZibe3j6f6tA50JqfW9iXAi7i1kmSLxbaN8Zf80x2Zr9CVUHM/j9Hyd22/oBUHobHqXmha5hNIxUXb9YDoyIgmYLcPUE/N1TMenqttUdRvT8YjIIiO5GCO5GIemKty3dRDNcnn+3BIb+pOv2b7n7UQY3FwFuhei/RNlnjq1yN2b+jq3PbB9DX/0vbM8dnQeRRKYWGqyfThDVbeRRQFB8MlGFZqWS18ywqd+7EYW6gaf/buTl2jcAOBDIiKhSiJnF5ssNaYQBAFBENgylL7sgXktReHXO5dbUAbSUUbzcT7/5Ck0y+Unb15DqWEFGRoCBdJMTEa3A8Vry/WxJZ9MTMFbRdIvFZXoTUZAEDg8XSETVdg+kuW2dXmOzdbYOpTm2GyN0Xw8KHO2SiXdHjQhV597bhqgZjicnKuRjMjIUh3X85mrmXhOMA7s+6DbLookXvJ4ERjLx1EkgXOLTaqGzUxV59P3bwboCI7evamPc4sNzrR6BNuL7Qd3DIXXjTeR1TYv3Rn/ezb38+L5Jc4sNmhYLp4fTMG9Ml9bJu7q+VCoGoEXYStD1zbQbCMCPj4NM9gM9yVVLNfjzGKDpuFwcr7OM2eKnezstZqhC4Obq0D3QtStKtm9OB2YLFM1bBRR5OnTRcZ7Ety0Js181QABNMdFsz3qhsNoPs4Xvn0Ks6UmmY4EX1ul1ezlEZQb0lGZpunStFyqhk1Kldk8mL5sCvlaisKvd66kgfL5J0/x0vkSYz1xZio6Sw2T0VycbEJBFgWycZUTs7XOY1zXJ6qIJFQJ2/OwuqT6TccnFVPwPD+YshIENMvlpQtljs/W0CyXUjOY+svGlI50f7jQvTUcnany6MEZ7tzQy0sXSq2+qhgPbFvDmcUGi80ivi+wJh1hrmZiOx7pqIztCMsWuBsHk3zg5jX85YuTaJaDAKiSyMMvTjJT0pip6sGUlO9zZqHBhv4kNc0KvIVCIb83ndVaBjoifrrN3pMLFGoGW9akkSWBQ1NVlhomVd2mabvILWseEagZ7rL+ulRUxnKC81yRIBlVuFDUaFousigwnI1RMxyOzdRQJZHBTJQ7N/Re8+tDGNxcBboXou6Rvmxc7ciYAyiSQF9C7TzupjVpvnNyIfCD8n1EAUZyMT7/5CmKDQtBaMmn+4Dgt4w2WzV01+8IOMmiQD6u8mNbBkhH5TCF/A7gShoomuUy1hMnFVUoN4Mxbsv1WKiZrO9L8NHbx5ksNTldaJKLy6SjCnXTQZEE1vclOV1odjKChuNxfrGJZjk4XhBkD6QiHJupMlc1iCgCdcPhi9+t0JeK8kt3rg+Pq7eQRw/O8NUDMzx/bomIHExKFmoGL14ocXahgev5+H5QorJa9ae64ZCIyBhOME0znI3wGw/cxJ89P8FkSe9MUX3v1AIHpyqUmxa641Ksm9y5sY/7tgxwz00DfPXADBXNumSCJuSNs3LzEngOFjoSDvdtGWDrUIZjszUc10eVBCqag+kGgaksXXyudk+VAESU4PHNVlOxT2CzEFeDB3ieT1mz2b0u38n2VXX7dXsSvh0Jg5urwGoLUfu2h1+Y4JF909yxoYfRfJyqbvHt4ws8d7ZIVJVwWhcnWRQZzkSpGTaHZ6ooooAoBOZ3lhkc0Jm4TFQWsT0PSRBIx2USavCVTpd1FEm8oh9IyLXHyvR1+3uNqxJPHC+Qiyk8tHuMA1NlXjhX4sh0hX/+t4e5bW2O9b1JJssaU0s6TdMJ+rRm6mSiMtmYjGF7jPbEKWsWdcNBlUVuGkwxVdY4PFNFlQROF4Javef7pGNq6Dn0FvOhncOcnKsxW9HZPpzhV+/ZwDNnipxZqNO0XGKKSNX2qBoXFyfd9nDcYNxXEmBjf4r/+NgJyppNKiqh2gK67VE3XDYORPmxmwY4NFNloWbwtUOz/MgNPdwDpGMK2bgamP+GvKl0rxntPs2hTJRXCnVEQeDFCyUe3DmMZjo8f26JVFQOAhjDwfH8TsNw21BZEWFdb4J4ROZkqylcJMjuCAJEFQnb8+lLqAxkgl6b588t0TRd9qzLvyMm48Lg5q2m1Zw3nItzz+Z+Pv3IQTTb5chMjbgqkYzIpKIyjutR12102w2mWkQfURBwWglHH0hFgnSj6AaBT6lpM1cJDsi7NvZy54becKrhHcbK9HW3KevxVunp43evJx2VOTxVZb5mUzVc9p5c5JaxLKcLDRzXvygCCZQNB8mCpCojiQK246PKIh5wqtDEtN2Ww7CAJASKyQOZCJ++78bQ1uMtoLux9Mh0hd5UhIW6iQD0JCPsGstR1S1UOfAUWtmVJwsgigJxRWRNOspiw+RkoYEIjGSjbB5Mc2axgSqJrSEGhX9+/2aOzFQ5Ml3p9FTds7m/My0VcnVoW22cWWhw35YBlpoW331lkSMzVWbKOghQ0mx0y6U3pTLek+KVuaAPp5uIIjJXNXBcj6giEZFFfHwc1yefVKlqDnbL2ufobJV8QsV0PM4uNpAlgULdvOZ1jcLg5i2ge7d9z+Z+arrN0ekKNc3C9X1uHc+xYzRLw3T47iuL1AybdFRBFAVE3UazLRwvMDzzcbDdIOXYMFxiqsjG3gS7x/MgwJMnCizUTOKKxDNnApXJcJrlncPlem9G83G2DKXJxRUqmsX2kSw/urmfrx6YRrM8BtIqc2UdfB9FEgJD1pamkkegbF01HI5MV5HFwGcq8KoJShAiwejwQsNClQQ+vGuYzWvS7D1R6Cjahrz5dC92G/qT7LtQxnY9RvNxZqtGx+trvqrj47OhP8UrhaAx1AcisggC+F7wvQdq6BEEgtJFVJU5OV+jULOQRLhQ1HjpQjAJ9w/fc0NHPK67xB5y9dh7osCzZ5fYMZLhnpsG+MrBGcyWf9Qr8zVcP+iNMhyP+aqBZroYzqUlpIZ5McSNqQI+Pqbjs2kgxc6xLF89MEMyIpOOKSw1bGKqxKfvu5E/e36CD9y8hogsXfPndBjcvAWs3G0XGyaPHZtnIBXlwZ1DPLhrBIBPP3KQ6ZIW+IWIAh/cOczWoTT/7uvHqbRSyFlJpli3MFoTEXvW91CoGZiux8fuWs/929bw6MEZepMRnj+3hCTAs2eXWN+bCJsA3wFcboGZKmnMVnQmlpp855VFPqjbbBvOkIsrzFR0pss6BybLQVq6lbfxWulrr2ur7/rgumC2ZAcUUSDdKlm17Rl2jWc7ukltrSYgLE9dBdq+Uhv6k3xo5zDrexOdnpd0VGb7SJaHX5zkVKFOOqqwbTjDhWKTJpCJyuwcz3JgokLVdjA1B3AoNS3wg4B1vmpgOkFjqSQKmJ5H03L5631T3LGhl23DmTCgeSsRAqmG7SNZBtJRtqxJc3iqCgTN/rmEQiYm4/k+jutRM2wisojbpVy/krpp4/nge3C+2ESzg6zNrWuz3LO5n795eZr3bOpj85o0f2/XyDvmHL50RjDkTWfXeK4zOlmoGUQkEVUSuVBqMlHSGEhH2XtygRPzdRAEoopIVJWJyCIb+lP82JZ++tMqCDBXNbBb9XPL88jEFOqGw4HJMntPLjBV0vjYXeu5Y0MvG/qT7BjNokpi6Ob7DqVQM3jsyByj+ThD2RinCw1myxrffmWBJ47NM5yLE1MkSg2TwXQUVbwogC0JQR/FlS4CsijguD6C0Bb+c3n3+l76UpFl+k3tAL6tfxPy5hB4jI3ysbsCf6+H9oyTjso8fnQegL5UBN/30W2Xqm4HpcmWDIAgwvu3DHLPTf1IXae/7fnIkkA2rqBbDoOZGP/wPev52F3r2DGaIa6ITJd1Hn5x8ofzpq8D2udtoWYsuw3g/q0D1HSbP/reWaqaTT6hBi0JnkexbnG60KSqO52G8YFUhFWm/Tu4brCB8QHDdpgs6WiWy8SSxreOF5ivGhybrbH35AJ//NQ5vnpg5pLXdi0SZm6uEqs1fu6fKFPRLJ44UaBmOEQlifGeRPAA38f3AvPLXEKl1DT55uE5Sk2Lx47MUzddEmowvqtZgeurKoocm61xYanJjpEsNd0ORjVvGyUbU5gu68vcfENF4nce3VoY24bSPHVqAccTqWo2O0ay4Pu8PFGmojtsH0ljOh7FhkVUEVnfm2CypKG2pu5k8WKJCkAWA/sFH59UVKbRMuX8yoHArfzgVIUP7hha1th8raey326smqlrb1QEgb0nCrw8UWZNJophuxSqOpIgMtYT56Y1KYayMXav68FxPJ4+U8R0XBzPpyehElNEaoZNIiKRiiqkozL//sHtfOnpc7w8UWYsF1vW79Me+Q+vHW+c1Ua/u8uPz51dCqYTZZE96/MMZ2M8emCGmYrRCV7tlqRDw7wo0AgsKzdDYJoLPrYXTEMprbFb3XZZqJtsHkwRkUVePLeE5XpMLDU5OFW55u1WwuDmKrHy4N0/UeaRfVMMZWNkYgqzFZ2NA0nSsWCUcygbYzQfx/Y8tg1lKNQMNNulbto0W81igiBgOV7nQI6qEluH0sxV9UB92A+cgY9MV/i/94xz96Y+arp92dcUcm3T1sK4e1Mfo/k4Fc3i529fu+w+MxW9k907Nd+gaQUlDQGIqRI+wdi4IgtICMiSgOcHo6OOB3XTXeY9pUowsaTx2NE5tq5JE1elTjkqPKbeXC4XWHQ39n71wAxlzUIWRVJRGTUiIUsuQ7k4xbrJZx87ge145JMRUlGFuCdTM2wWGyaKJCLLIheKGv+/759HlQTu3tTPx+5az/u3aozm48sW3OmyDoTXjjeD1Ua/25/znRt6OTFXY7FuIoqwe10PD+0e48xCg5lKINAHQYBjOh6GbXWetz0RZ3fVqAR8Ng6kmCzpOJ6H4Xis7Y2zfSjD5jVp0jGFR16awnY9fuSGno52VUW3r+n14i0Jbv7wD/+Q3/u932N+fp4dO3bw+7//++zevfuy9//rv/5rfuu3fosLFy6wceNGfvd3f5cf//Ef7/ze933+zb/5N/z3//7fqVQq3HHHHfy3//bf2Lhx41vxdl4TKw/ebuO7PevyZGIKmwdTPHVqkWxMCX63GOhUOK5PXyrCK/N1lhomshhE3BFJRDODQCcqi/iez5PHC8iSwFRJY/e6HnaMZHi5VRrYPpzppK+7x8HD3fU7g+6elyPTFR7ZN839WwcY60lQ0Swe2TdNRbNQZJH+dIRi3cRrjYKarsfxuRpaS/8iEPLzwYGoItD2b21nuyUxMF6UpaBMdXK+zkLNBILpDVh+AQyzhG+c9mZkJBdbFlh0Z3PSUZlcXCUTUxjOxijUDeJqDM1yaJgO54saqiRQNx1cD7YPp1lsmJxf1IhHJDIxhfmaQbI1efnc2SUKNYNfu3cTUyVtWb9PKNb4xuk+Ly6nFr9/oozn+4z1xOlJqByYKPF3R+aISgJiS/dGIMisZuMqZS3IxHoejPXEmK+a1HXn4kSkH1jzjPXEOLvYYCAd4f4tg5wtNhnLx4O/7fsgCNyzuZ+BdJRtw8EG+1qejrvqwc1f/dVf8alPfYovfvGL7Nmzh89//vO8//3v55VXXqG/v/+S+z/77LM89NBDfPazn+UDH/gAX/7yl3nwwQfZv38/27ZtA+A//af/xBe+8AX+5//8n6xbt47f+q3f4v3vfz/Hjx8nGn17XEhXppO7je8qus3ZxSbDuThbhzLsGs8xmo/znZMLTJY0TNtDFgXiqsRAOkpNd1hqWFQNh96kiigKbOpP8vz5ErYbOIGnogrbhzNA0EB8aLrKeE+CLUNpxnKxcNrhHchoPs5ILsj4VVoZusmyzsHpKjtHs53pqVLT4unTRRZqBh6wtifGYCbG8ZkaOheNFNvYjt9xpxdFyMVVXC+w2HRcF7/Vh6NbDktNi3xCJa5KQY+G73PPTQNhlvAN0J2x+eCOoWWZm5VsH8kymo+jWQ671+VBEJgpaZR1mxsHBEpNm4gsEFMlGkYwZjlfNUlFZd59Q08ncAqm7GzOLzV54XyJL78wwT+5dxNwUYx0W+v6EvL6aX+nFc3iqdNFgGW6NvsnysRViS89fY47N/SydSjDs2eXWKzXKTUtNMslHZURWuKuvh9o1rRHvW8eyTBfNZlY0tHt5WIAng/TFYMB1yepKiiSSMNyOk7vi3Vz1fLTtb5eCL7vX67J+k1hz5493HbbbfzBH/wBAJ7nMTo6yq/+6q/yG7/xG5fc/2d+5mdoNpt84xvf6Nx2++23s3PnTr74xS/i+z5DQ0P8+q//Op/+9KcBqFarDAwM8Kd/+qf87M/+7Ku+plqtRiaToVqtkk6n36R3+tq53K72c4+f5H89P0FMEelLRcnFFS6UNJYaJprlEZFhQ3+K84sa+aTCYs0kpkokozKqJPIzt46CIHByrhakG6NyZ2d/LR+kIctZeaFsN6t3lzAqus3XD80SVyU+evs4J+fr/I/vn2exbjKaj2M5LnPVIO0dkUX0rmkLCUhEpY6xZiYq0zCDnWBClRjriaNIIoPpKNNlHdv1UGURy/GIq3KnxyvM3PxgPHZkrtNH9Wrn7WNH5jrl7rFcjJPzdfZNlMnEFH5uzxjfPrnAs2eLeB7kEyr96SAjfONgiq1DGWYrOhFF5NkzS+RiMgPZGFMlndvX5/mNB24CQuf3N4P2d3r3pr5ONqT9ebaFXX18ThXqvH/rIL9053r+5OlzzNd1JpY0Sk2L3oRKKqoyVdZomG4nyBEEiMgCIHQCm3bmVQDiqogiiazJRGlaLrMVg3xc4UO3DHNmodFRQf7IraPXxDrxWtfvq5q5sSyLl19+md/8zd/s3CaKIvfeey/PPffcqo957rnn+NSnPrXstve///189atfBeD8+fPMz89z7733dn6fyWTYs2cPzz333KrBjWmamKbZ+blWq11ynzeL15KOv1xEnIopZGIKN/QlGM7GgsZizaZpOOiWRz4eCZRlfZ+4IpGOKWwdSnN2sYnt+kyWdQ5NVajqNnFV4qE946E68TuQdlbk7k19nZ199zHXTil/8/Asz51boqrb3HvTAPdvHeS7rywwXzU6dguuF0iwd+O3LDzaVLvl9gWBhm4jiCJ3bugFAQ5MlmmaLqO5OPdvHbjEdiQcEX99XMlHbOW1pdu77s9fmGS2ouP5Pj1JlZrh8NHbx7lQDKYyY6rEaC7GucUm2XjQ9zeUjfHM6SIN0yGmisiiwNahNIWawReePAWCwGwl7LV5o6y05OmmZjhUNIt4RApOPj+QdriwpDFZ0ihrFp4PczWTmuGSVCU000USwXbbBqmtsjKQbjWIz1SDaadsXGVNJsotYzm2DqX525en2TGa5ba1eU7O1Zhc0rl5JEtFs655VeJuruooeLFYxHVdBgYGlt0+MDDA/Pz8qo+Zn5+/4v3b/76e5/zsZz9LJpPp/Dc6OvoDvZ/XwhsZiU1HZXqTEYayMWarBuWmxQdvXsPNoxnycYV8UmWhbpKNKwzlYvSnox059HeN5xjLxxnJx2iaDi9NlJkqaZ0afcg7g7Y0+90be7lncz8PbF/TUQnuPuZOztWYLuu4nsdESeMvX5xk30QZWRZxPB9FpDM+ajj+Mo2MwXSEVEShbVfTLSLQMByWtMBNeKas8/KFMjXdQZVENNPmwHSFLzx5iqMzgTZHOCL++mkHhivP29U+y86kmiCwsT9JTJEQBZgoNvmfz17gieMF7t82SDoi0zBsDk9XsVyXiBwMI7w8UcJwXJIRmQe2reEndwxz23iOdT0JDk1XOTRVYUN/MtwgvUG6J2ZXjli3bS12r83zIxt6eM+NfVQ0i/u3DXLbuhwxJTgTXS8IhIpNK3D6XqHdJ7csenxAkUWSqoQqBye5KAos1k029Kf43Ed2drJ2JS3wICs2LZ44XrjkPF1tZP1a4bqYlvrN3/zNZdmgWq121QKc19u0W6gZfHX/NCcLdRRRIBmV2b0uz7HZGsdmq0yWNBbqJndv6kO3XWYrOrrlcmq+we51eW5ak2bPujw1w+Hrh2aJqRJ9qQjvGs91XkPY3PnOYf9EmadOLXZGsLsnprqPuS89fY7JkoYiieway7KhL8mLF0qcLwZN6zE1aED0vEvFv8qazZahNDNVHbyLBnyWHci165ZLbzLCTFUnrohkYjHqpkPD8njpfBnH84hH5Eu0cELeGJe7tuyfKPPEsXmGsjF+atcwT58uBkJ+psN3Ti6wZ32euzf1sW+yTN1wAIGabvHV1mjxcDbKrz2wmXtuGmDviQKPHwsCom3DmWVNpiFvjNX60Ao1A3yfj9w2Cr7PhSWNbxye65SJ7tjQS9NwODRd6ZSJHe9i2alNNipz1429HJ6qUqibFOo6A6kYSw0Tw3Y5MVfjyHSw4ehLRQJ7h62D/PyeMY7OVDm/1GTzYGbVY+ta7Z27qsFNb28vkiRRKBSW3V4oFBgcHFz1MYODg1e8f/vfQqHAmjVrlt1n586dqz5nJBIhEon8oG/jdfF6m7D2T5T50+cmWKybRGQBWRLpSagkIoF78+HpKj5QbJi4PmwbznJ2oYEkCSQiMs+fW2JNJopuu4HyaBN+9MY+Pnnvps4F6Vo+QEOWs9oIabvvpnsB2jGa5cBUlagsElMkyk2LpXrQu+UDhuWhyGLgMk+Q2m5fLA3b48BkBa/lLCyJ4LiBBpMqCmxekyafVHnmdJHRXJz3be7nsaPBBXlNNspgJnZRwbgrEAt5Y6w0V2xvWHaN53j69CL7LpToT0XQbZdULMgCT5U0Dk9VuXkkww19CY7N1HAcj5cuVIAgY5eJK50m8JrhYLsekyWNT75vY/i9vYmsFpzuPVHgT5+9QH8qwsfuWs+G/iQvnCvh47NQN/gf3z/PsdkqluMjC+C0TtK2hYoqCeQSCqbtcXy2Rs1wiEgiMVVClQQMx0W3g0xdXJUQBDg2G/gYbh/OBBIiwLaR7KpB7LU8YXtVy1KqqvKud72Lb3/7253bPM/j29/+Nu9+97tXfcy73/3uZfcH+Na3vtW5/7p16xgcHFx2n1qtxgsvvHDZ53w7s2s8x0guhiwKDGdj3DySxbBdnjxRoGk6QRNgKsKpQp2qZpGISNy3ZYC7N/Zx35YBNvQneXmizEsXSozkY+QTKmM9iWXpz26F5JBrm5Uli8t9tx9991r+5Y9v5v3bBjldaHBouspQLk4yInUc5QUhyMRkY/IyAWufINgRCcbCHS/YLeLDWE+cmCJydLqKJASaOMP5OEO5OIW6yXTZ4L4twa4/PO6uHu0Ny94TQSlhvCeB6Xgs1E1uG8/x0dvXsq4n0SpzRzk+V2PfhaAfT1WC0qTgQzIi86Ob+jvPl25NUc1W9M415FotS1wTCALFhsm+iTL/59g8H9o5jO26nC82efjFSY7MVGlaHrbndwIbAFmChCqycSDJA9vWsLY3wXRZp6rbOJ7PUsNkqqQzmI6ye12eW9fmuHtTHw/uHGZdb4L5qsH3zxT50tPneOJ4gWzL6X3ld325Eum1wFUvS33qU5/iH/yDf8Ctt97K7t27+fznP0+z2eQXf/EXAfj7f//vMzw8zGc/+1kA/sk/+Se85z3v4T//5//MT/zET/CXf/mX7Nu3jz/+4z8GAiG7X/u1X+Pf//t/z8aNGzuj4ENDQzz44INX++28IVYrDw2ko/ybn9za8YM6OFVh50iG0XycOzf0olkuTxyf51ShTll3OLPYYF1vgjWZGJrl8rG71rNYN3l5oszu8TxbhzOXiC9d6yN9IZfnct/tQDrKQ3vGg7LngRlOztXIxBVMx2W6FDSIGrZHMCwpLBPqayMK7UbFANuHswtNTvlNADb0JfiFO9YxlIlSqOrYjofjusRV6YqvLeSN05YBqBkOT50usnM0yx039DDWk+CODb08enCGk/N1dNvl3i0DPHd2iamShiIJ9CYjaJbL7evy/MjGPu7Z3M9i3WQkFyOmSjRNh61DaSqaxd6TCzx1ahG4qKQblrh/MNoBZEW3ycYURvNxAG5bl+fQVJXZis6/+/oxFusmkhB4fe1Zn+f8QoOpciDjILZsUAzLRxB8zi40cFyfTEzBavXOaS3RV9fzqGk2Yo/AXNVgYinQQts2lObQVIVnTi/i+n5HjmTvyYWOwv1Du8d+eB/Um8RVD25+5md+hsXFRf71v/7XzM/Ps3PnTh5//PFOQ/Dk5CSieDGB9CM/8iN8+ctf5l/9q3/Fv/gX/4KNGzfy1a9+taNxA/DP/tk/o9ls8vGPf5xKpcKdd97J448//rbRuFnJlTQOALYNZ9g2nOHoTJWT8zVOztf5pZaXTKFmMLnUZKaic3axiWW76JaHJAqM5uMMpKPsWd/DxJLGcD7OA9vXcHSmyrnFRufkCbn+6F6E8H2eOrWI4/lEFJG1vQl2r83zVy9NodtWR4RPEoKxcK1lkrliiIqoLGC0to8CcOfGXrYPZ/jN/32Yc8Umjg/zNYt/87WjPHTbWMcQdu+JQti78SYzVdKYLuus703wwR1DTC41OT5XZ9twpiO+17Qc5qsGT58u0p+KIIoCiiQyXzPx8bF9n3OLDWKKyDcOz6FZDueLTY7MVNk+nOHsYpO7N/Yuy76FJe4fnPZnOFnS+IvnJ4irEk3LDSYec3EePzrPYt1EbgWgE0sa+USEgUyMybKB0hLSNN0g44oPnuMzVdJYUqVO2ao9Ai5JAobrM7XUpD8T6Bl979QCt4zm2Nif5PhcjVvHc3zsrvXBedmRPr6q6jBvGW9JQ/EnPvEJPvGJT6z6u+9+97uX3PbTP/3T/PRP//Rln08QBH77t3+b3/7t336zXuJVZeXo7mpp+qMzVX73sRMcna3heD7xiMydG3qZLGmdBr/3bQ7GbktNi4pm8/CLk2wbSjOUjXHTmhQ13aZQMzoXvqmSFgpvXad0L0KTZZ2m5eL5PrbnU6xbmI7H7evz/N2ReXwfoqqI63kkIjK2Y2G3vGnaO0WA/lQE34fZqoHYqmM9enCGmUpg/1FqmJguTJd0/vKlKdIxhXPFJs+eXQrMW33/mvaqeTuxcrS4Y3IpBJueDf1J3ntjH0+fLvLR28fpSUZYqJss1AyalotuOcxVDZ47G/TsLTUsbhxMsXkwRX8qwvu3DqJZ7rKgpt3f0/33Q34AfJ+mGbizS6LA5FIzyN5MV4ipIqWGheN5SILAqfkavakIqZhMRApEGbsRAM320OzAG05o3ZaKSChy0GuXS0a496YBHn5xkmMzNQpVk5vWpIirMtuGM51z8Z6bBt5R0iHXxbTUD5sraRy0d9hPn17kUKuPYcdIhlxM4Y+fOsd4T7xjZrZ9JEuhZmK7HoOZKPsulHj2TJEfuaGHE3N1TszVL8pps/wCFKaTry/a373puBybrdKbVNEdj4gkkI7JfOPwHP2pCGt74kRbZaSaZlPSbLIJlWLD6tgvtMtVxYZFRAmaEm3P57snF/nAzWvYPJjiyEwV14e4IrFpMMkDWwdBEDiz0GDHSIZ8QuXvjsx1lJDDXf8bY2XJr9tvav9Ememyzq6xHF/6B7d1zv22pUJb6PHYbJWaZnP7+h4USeyUxT+4Y4j33HhRPb4tQAfB9xZ+dz8YbX/BbFxh51iW4UyMsm4zW9H5m5enOTFXpyeuoFsuNcMhE1MwHI+pJQ3H9/G9oHzcPQEeU0Vs18NyQfQvNhxXDZeY7HfGqgbSEbJxBdv1uOOGHm5blycRkdk+ku081zutjBwGN28Bl5tyGEhHOzvsnaNZfvLmNYz1JHjwlmH2nlyAs0vctCbdGd0bz1us7Y3j+/DhW4b56oEZ9k2UyCVUPnLrCAjCZW0WwnTy9cnfvDzN0ZkamZjCbWtzNE0HSRJ4Zb5Ow3AYycUAeGW+QVwJVIZVMdC60SwH0/VxWqqnmu2h2x6SAKokUNYsvnNqkbphUzdcZAG2jaT51x/YSl8qwt4TBW5f30M6pnBkusKx2RrDLbuIkB+cy/Xutc/r1SbqHtk3xYb+ZKcE0W743jqU6QQ7o/n4ss1RmzBb8+q8ls1j21/wubNLAMRVmZpucXyuxmAqgioJNCwXXxCCaSjHo2k5yxy/V6JZHjFVxPE8rBXVpFRMxrRcZmsGX/zeWS4UNTzfJx9XScUU9l0os74v+Y7N7ofBzVvMyiCj3Rh4x4Ze/uF7bgDodKt/5NYR7rlpoPO4yZLGgckKiYiMZrnsXt/D6YUG5abFR9+99ooZmfACdX3RXtCSEZkbB5MATJUDxdM7NvRy63iOw9MVzhcb5BIqoggN08UDyoaLYLj0JRVMx1nWa9PWQR1IRdBtD9N2eWDbIN8+sYAoQqFq8tvfOMZwJkZFtxnKRDk+V+eODT3sGs+hWU5YLn2DvNpGZeXmptu0d/9EufO7gXSU0Xyczz95iopmc8tY9mL/xRWeL+RSXsvmse0vuL4vydHpCoemKpxdbKDbHg3DYdd4DkmEU/MNepIqJ+ZqVwxsIDgXx/MxGqbLTNnonJ8Angd96SiLdZMFxyUZlbAdn4W6ycRSs/UE74z+mtW4qqPgIZeycjy2uz+mUDN4+IUJvvDt0zxxbJ5sXGUgHb14cfF9LMdDlgQmSxpDmSiDmSjnl5qhAmwIcFFRtN13UTMcREFgqqQzUzGIyRKD6Si9qQgj+cAjqtS0Om7hLUHTQFupaeMDmwZTSF2j4qIo4Pg+mu0wXdZZqJv86OZ+BIJszuGpKvsmymzoTzLWkwBgOBvjMx/ezkdvXxsG2G+Q1ztiP5CO8qGdwwxloky2rjMQHCuff/IU+yfLmI7bCX5CXj+v9p0cnanymW8eZ7Fu8tDuMT557yZ+7vZx7r2pn96kynA2im65OK5PMiozsaR1Apu4IhJTLp6bK6kaLu+7aSDQsWndJgEj+Rh1w8HxfDwfMlGVm0cy/NSuEd6/dZBb1+aWlaXeaYSZm7eY1XZV7X/3nlzgj586hyqLlyjOAiAImI7H5FIgt19s9OB6F0f5CjUjKGe1nJm7d2BhWer6oP09f3DHEB+7az1fevocBybL7BjJsGM0Syqq8NjRuUDIS5HoT0e5sNjEI2hCNNqCNgSNxKbjU2pYJCNyx2NKEgQWayaKLBKRRV46X8JwPNIRiUREojehMNbSWIkqQco8pkqXf9Ehr4sfJJNyZLrCs2eXODRdZaw1Vbn3RIHJksaWNWl++a71aJbLaD4eeoH9ALzad/LowRm+dmgWzXK5c0Og2H3P5n7OLTYYTEfRLYeFukFClfA8H8MOOmsEwHL9y2ZwJAF8z+eZM0UUWURwXEQfto9keGDbGv78+QkyosKe9XliisRc1WAsH0ez3Hf80EkY3PwQWFmf7ZwUvk8iIrNjJLNqejgdlYmrIq4HO0YyfGjnMFMlrfM8jx2Z45GXpoDALO1yQVTIO5eVzesfu2t9xy38yHSFo7M1pks6rutjih5b1qRYqJs0TQfdDsTCAJIRCRFoWC4LdYOWdAYRSWCsJ8Z0SWcwE8HzYKqs4/lQ0YKAKBmRsf0mZxcbeD4s1k2+/OJkZ9y4olnh1NRbQHuzU9MsThbqqLLIjtHsxWuAIKBKIuP5OJvXpDvXkHAT9ObzoZ3DAPQm1M7nW9Ftvn1yITCu9X0qmoXlyFT1IGOqygKW4+Ou0GSIyiJRRaRuOAxkotR0m6puE1UkFFEgG1e584ZeNg+muGtjL+OtPk64OPXW1jV6J/e/hcHND4HLZVFWjuKt3EG1+29qhkM6ptCXiiyLuneN5zoeJSuDmLBufn2wmhv3A9vX8PCLk52s4Pr+BG7BJ6ZIVDQb1/PAB7tVf5cEsF0f3/PwfDqBDQTTUEOZGBNFjcmSTkSWiCginu8jthbL/lRg/np2sYksCtw4mCIXV9k/UWbHaBYEIVxA3wL2T5R55KUpig0TgLs39S2zVLhncz9HpiscnK6y90SBh/aMh5ugq0ChZnBkusL6viTbhzOM9SSIqxJffmEisESxHTJRlWRUoaJZGLaHKot4XpCu6Q5tFCGQZ2gYDp4PpYaFJAbyKLbrkokrRCSBbx6Zo6RZXFhqslA3uWNDb8dqAbgu5ELC4OaHwOUuIN0ByMMvTl6iFtlWnW3vrrIxZdniMJCOviOUJUPeON0B9K7xHEenK6iyyK3jOR7aM86RmSr4PkPZGOZ3zrTcoj0EASRRIKqIDKRiXCjpWF058ZrlYDou8YhMWbPxbZd0REaSBJqWi2F7TJV1tg5n+EdbB4NAPCozlI0xlo/zoZ3DwUXW96m0dJnC7M2bT9s9/v5tg5yYq3F6ocG2ofSyz3ogHWX7SJYTc3Xa/hvhJujNZ/9EmT9/YZKm6fAP33MDD+0e45/+5QH2TZTpbfkIpqIyU0saZsvI1nI8FFFAaPl/dRAFvK6Rb8vxljUR267F+EiOqm5TaloUagaFmsmfPH2O3tbULVwfmfwwuPkh8JouIFdQi7weDsyQN0b3MbJ/osxs1eDuTX0du45zi41OoLFxIEWhqqMoEp7nMbGkI6lw42CKeERmtqyz1LSCDI0Huu2RUCVMJ2iALBsOAsGOUpEF4qrC5sH0skD8gzuG+Jc/seXiCxSETgk1DMjffLpNSx+8ZfiiWvUK2vo4Ya/Nm8fK3sdd4zl2jGR4eaLMkekK92zuR3dcXM8nHVf4+dvX8lcvTaI7XqchWAASERndtjEcUESIKRK67S7zmFrZimO5kE+oDOdi7LtQxnK8wA5FgDMLDTb0Jy8rF/JOIwxu3qZcSS1y5YEZCvSFrGQ13ZPRfJz9E2UePTjDU6eKFBsm920ZZLaiM9aTYKFuYrrBTrFmODx+dB7Xh1xcIR1TGExHmK8YnC7UMeyglJWKyni+Q38qwqaBFBFFYmN/knRU5uhMlcmSRi4eLJ4rLSGAd/Qo6lvBynP/6EyVL78wQT6hdoYSrrSQtX8X9tq8ebTLgRCcR8WGye51eRbqJkdnavzLrxwhn1BQZZFi3aSmWWTjClFFRBIFmqaLKAYm060efnyC8/jYbI2yZiGLgZmtQDBFJYkiCD4RSeLwdJX+dATL8ViTjfLAtjXcsaF3WX/m9bBmhMHNW8TrPZheT2QdTkKFXInuBeyRfVNMlpq4vsdMWWc0H+e+LQO8eKHEmcUmDcMmIovkEwqFqonnQ7lpI0kCJ+btS57bI2gijkdktg1l+OuXp/j+mSKm43Lb2jxLDYty0yKfUDEdjzMLDSp68DwfuW2UezYHSrirnR8rb7seLsivl5Xn/qMHZ/jmkTlycZV/+J4bXvPnFWaD3xjdx2Z37+PRmSr/53iB588tkYrKWK7Lc2eXgilC10O3BR47Os90qykfz0MSwfWgal5sdpMlgSMzNQQBFClQJYYguElGZVRJ5D039nFkukpJs5mrGOi2i265jOXjHf/CNtfDmhEGN28Rb/bBtPJkgvDCFHIpK4+TZ04vMlHSWN+bwHQ8fvexE/SmIhRqBhv6k5yar2M4LtmYSkQWmSwZuJ6P7a6eYfE9HwEoVA3+4sUJyprT+d3h6SrjPXHKms03Ds8xlI2ydShDTbN4/FghUNUmaJxfzVR2pYvy5Yxnr2dWnvsf2jlM03QY70mA77/ma871UKa4mqy8vrdLrUdnqhTqJhXNYl1PgnRM4XxRY6nlEeX5Lifn6y0JhgBJAEUCfBBFEc/3SEYUaE0iJhSRquFQ1R0QoG64JKMCR6arzNdMxvNxGpaDLEJ/S6hxJdfDmhEGN28RlzuYftDd6MqTKbwwhazGyuNk23CGg9NVRnMxJpaavDxZJ6bI3LWxl5vWpEmoEs+cKXK6UCemyiRUiabh4Kzy3KosoNkurh+oG68MfxzXo1ALJnUahk1cTfKhncN8/0yRsmZRM5wrmsq21btrus1TpxavaDx7vbIyKNk2nOE//NTNQHBt6S5th5mvq8flru/bhjN85sPb2T9RpqJZfP3w7LIWYaGlXdaN6wcLsyAFI9+yKNMwLBxPCKYSRQFBEGh50SKLsLYnjucFtikIUGpaDGdjyKKw6kTU9RDMhsHNW8TlDqbXmtFZeWG6HiLvkDfOrvEcFc3qTCbdc9MA54pNnju7hOV4pKMKPmDYLo8fnWdtb5z+dJS6blPTbWzXDwZpuiIXEZBlAcf1kYTgYtwd2IgEfToNy6XUtMjGZEbycTTL4chMlcmlJsmI3JmYuntjL/ds7r9kwZ0qaZxZaNA0He7e1LfqfUIuz8przvVQivhh8Wp9kKP5OM+cXkSVRLxWFlSk3TMTnGCSJAa9bIDpAm7gDG7htHpvfGq6jeMHelMQlIRFUeDODb2YjsdTpxYp1MxlwozX6xoR2i/8kHmtUurtC1NbHr19MoUX+5ArMZCOko2rPHVqkf0T5Y6w30/evIahXJyEKiEJAmcW6jQth80DKd69vgdREHB9Hw9YWZHyAMsJJN29VapVHlAz7ODxPlR1h5myznRZ55X5GueXmgxmoiAIPHVqsWMzspJd4zk29CeZqxpkY0p4rL9BXq9tw/VIWx+qbVHxgz5+74kCj+yb4ktPn+PoTJXPP3mKx47Nc2K+jkcQ1PSlVGw3EM70vCDI6UsqQFCaisoi/SkVp/sEbI1TOZ5POqoQDEIJvHi+xJ0betkylEYS4a6NfWxek35jH8Y1Tpi5+SHzWtODYaYm5Adl5bEzkI4y1pPAPb3IUC6OabucWWywayzHg7tG2HuiEAQdMZWaaWG1alJiS0DM94OAJx2V6U0onFvSL/mbnk9nEsrzoWE6LDUtDk5VuG1tnjMLDdIxhbs39VHRLI7OVDvaO23rkG6F5ba9SFhWef10f25hxubKvJ7s1mrHY/vxO0ezOJ7PU6cWmSprHJ6uIgkChuUiCgK+4NO0gpKuQCAzpFkuzjLhPp8LS3onK6qIAv0plULdRBTA9XyiqoxhuxyervLEsXl2r81zoaiRjsrXfaYuDG6uEa6HGmnI1WG1Y6ftFH1stsZQNsbGgRQP7R5jIB3lnpsGmCnrHJqpMlvWOFvUEAliFadV44/KAmt74yQiEnM1E8MOxMREgukN0/GwHY+IJDCSi2G7HjNVA0mApulw+/oe7tnc39rhTnNkpsqJuTqW63Gu2OzYj3QrLn/p6XMdEbLwXHjtXO+L3OvhtW4iu4/HdsP7rvFcp08MYKFmUGyYmI5HTQ+mEG3PRxYFJFFEFgVEgkxnW7vG9y5uCAxneVpUkQRqhosqSUitslQqIuN5gTr4kmZR0+1lU4iv5b28UwnLUiEh70BWS69339bOimwdSlPVbe7c0Mu24UxnN1rWbU7M1ZAkgUxUJh2XSUUkRCHQ1zBsn8PTNfadryBLQsc13Ccw1pRFAQ8wXZ+ybqPZHnFFwvXh2ycXKDZMBtJRaoZDWbNQZZEtQ2k29idXdafeP1FeJkIW8toJy1Gvndda7u8+HttTaXtPLvDowZkgAPd9MnEF1w1MMFNRmYgi4vsu4DPeE+f2G3rIJhRUSUBtpRnamZyVCARqxE3TwcMnE5MRRQHb9UhGZfrSEQ5NVfja4Tnw/c75cz23LoSZm5CQdyDtjMhHbh3hoT3jwOo7+PW9Cdb3JTtln/Zu9PZ1eXaOZjk4VUGzXIayURbqJqIQ1KXa8x225yO7fqcvR5UE4qqI3ryo0VFq2sQUkXRUYTATZV1vgogk8vCLk+D75OIqtuNR0mzu3tTX2QV3s9IQNOS1E2Z93xyuJL9RMxz+9/5pFqo6uUSEb7+ywHzFQBAFLMejrAWj3wLg4TNd0nA8L5hEdH3iERG5Jdy30gE8E5XoT0eZKetYrhfo3Dg+nucTjSrctCbF+WITWRTZMZKhZjjBud9l3XM9EgY3ISHvRFpeQZ1/uTTl3h0AtR2hzyw0GMoGafWRXIz9E2U836dQNzBsv5NG70a3L95iuj5zNXNZo7EARBWJTYMpTNsjH1f55pG5wOtqbZ77tw5QN4PGnu0rxMbahAt0yA+b7s3BaD7O/skycVVCs1xOztU4OlNFEgUalofluoxk4/hARQtcvkUhaBT2PAJBy0Kzcy41TY+ILDKYjjJZMlBlkCQR3fSoGi6pqIvb8p26oTfBYDbKU6cWma8ZDKQj/NSuEdJRme0jWb78wgSW61336t9hcBMS8g6k7RnUnQFZGSC0S0I1w+kYLd63JXCef2TfNOeXGtQ0B1EM6tcRSQABbMdHkoLpDt2+eAGVW8qqiiTi+17HTVwWYc/6PPdvHeSlC2VOzleZrxnkYgr7LpTw/RyHp6s0TecSJdWQkLcL7X6a0XycRw/O8LVDs5wvNnE9n7JmoUgig5kIPQkV14dbRrN8++QCfSkFWRLoSarEFYnjc3V6kioLdRPPu9ikbzkeC3WL9qC4YXmd4KfYMBEEkYgIqiKiiAKOBxJQ1W3G8nF2jef40tPnOFWok4srnfP6es10hsFNSMg7kNfiP5aOyuTiamey4olj82zoTwYjpWtSWK5Lw2gQdNIIOL6P7/okojICoMoivm9jOoEsWWvQA8vxkEUBRfSxvaA58vunFzmz0MC2XWaqJo7nY7smrg+65bJxIMnx2RpHZ2uXXJDDKamQtwNTJY3pss5USeNDO4cB2DqU5huH56jpDooksFi3mKua+L7PQs1kqqQRUyRu6E+yUDfpS6psG05TqBmd80USwBeCjYHj+SiySHvYUBZBFATefUMPc1UD34cTczXOLohYjkdPQuGndo10DHLPLDTIxlXmqwaPH51nLB+/bjOeYXATEnIdsFq/zfaRLOeKTbaPZOlLRXjmTJHnzi5RbJicKjQYycVpmoFGTVSRuKE/hm67vG9zP3/XakyOqzKe72K5QR+OLBBkdzwfsVURc32omx7mkkYmpuC1alYCkEsoFOoG/akomXiQydl7cmFZr0A47RPydmBl39e24QwPvzDBfNVgx2gGfHjhQomluonl+mTiHut6E9iuT9NyAskDww6cvb2gYiwLFw0wI4pITJHwPB/NcoL+HA8QfF46X8Z0Pdb1xulNRJAlgaruIItiZ3Mymo/zkVtHGc3HO7IK13MTeRjchIRcB6w24tq9E+1LRfD9IAOjWy4LNQPb9dg5mqPUtDGcoMbUn4pwdrHJUtPGcsEzHfpSEeaqgc2C49ORK/Z8lvXoRBUJSaQjYhZVRDzPR5VEXjhfwjAdkjGFmmbx2JG5UI075IfKMhd7giA7rkp86elzfGjncFA+FQQUSWT3uh62D2fQHZfzi00M26EvFeX29T1879Qihu0ynItRrJudhmHfB0kUcFqGDAIetiPQsNxlr8P36dy2VLfoT0e5e1MvByYr5BMqNcPhqdPFzkTc/olyqOZNGNyEhFwXXE7rpqLbVDSLvScXmKsa/MgNPfQmI5xaaCAJ8N4b+7hpMMXXDs9yodgkGwvsGuKKiNnagZabNvm4Qqk1ESILQZAjCZCJyUFWx/OxHA+t1TjsE2RzGgtNaoaDKAjEIjJ3b+ojHVeXGWaG4nMhPwz2nlzgkZem+Mhto2RjCl87NIvtehyZqaJZLndu6GUoE2XLUJqZssaL55Z44VwJ3XLZvCbFjYNpjs5WOb3QYCQbJarIRGQRVRZwnSDT2a0+rNsA7iWvIxmRQADTdqmbDtWFOj4+pu2hWS7vubF/WWATZjkDwuAmJOQ6ZSAd7Vy0797YezGlPV1hOBPl6GyNbxye4zMf3s7TZ4qcmKvTNF3EVuNw+7JsOB6G49GyyCGfUFlqWrg+VLTAudj3ISKLpGMKdcOmPWAltZS2RvIxhjMx7tsywMn5Ovl4kMF56tQiFc3qGEC2d6NhH07Im8mqx5PvY7keR6Yr/N97xvngjiHiqsQTx+bRTIdH9k2RjSs8c7qIKAhYtovuBufB+YUGCzUTUQwMZJuWy4b+FLeuzfHM6SJnF5v4BKFMe55RFFqZHNenL60ykIpyfK7O9pEM79nUz7dPFpgp68RUicFMlLmKwY7R7LIsTZjlvEgY3ISEXMe0J0C2j2Q7PQSP7Jvmjg09RBSJimbzpafP8WNbBjg6XaVmOJ0Jj0s8p/xgl+n4Qb+N5wc9Na7rUzEcrFYAlI4qLd+pYPGIKhLFuslCzQQBDkxWSERkxnoSgSt4K+0OF3ej+yfKPLJviv2T5Y6acUjID8rKjEehZoAgsGMkw1zV4Mh0hWxcpScZIR6ReaVQJxtXKWsWdcMhFZVRFYlYVKY/FeH8YpOKZiO11IgXaiZPn15kvCfBTLm5zGi2/f+BG7iPJMJoLo4iC6iSQFWzqRs2muny3k19bBvO8MTxAndv6rvk2A8lEy4SKhSHhFzHdPfdACAEqqczZZ3b1uYZzcd46tQiTx4v0JOMkIrJjPXE+fFtg2Rjl+6NbMfFsFwkUSAZkYipEroTlKI8QLM9qoaN74Pt+li2H2R52mUryyUiiyQiEs+dK/L40Xnqhs0Hdwwxmo93FJZH83EkUeDYbPUSNeOQkFdjpYL3ShXn/RNlnjq1yPaRLB+5dRQEga8dmu0oEMcUifmqQUSWSEdl4orImmyUvmSEuCphux6G4yIJcENfAkkUaFoeJ+fr6M7y19KtSCwIIq4PR2dqHJ+pYzgeZxebPHOmyFxVZ6lpMZSNsaE/yYd2DodB/RUIMzchIdcx3Wns9oX+5pEMh6erXFjS2LImhel4zFZ0epIRelIqdd3m0EwVgaCvRpVFwMewfSRRRJFEHM/H9X3mKsYlGR4BaFouTmtqyrBcllpGnAKQiSucW2xSNxx84NBUhY++e21nd13Rbc4tNtAsh61DmUtS8KuVGMIyVkg3KxW8V2Y8OhnNlu5SoRY408dViWLD5HyxSalpYTgu793cx7HZGifmgl6YuCJh2IFGje44uG4w3u24Lp4f9KR5/sVGe4HAN8r3faKygOkEpayhbISoIjLekyCfVDk5X+el8yWiisTEksb63kSoCXUFwuAmJOQ6pvui/tiROZ46tcjdm/rY3poEGcoEgYBmuZxeaKBbDrNVA8P2SEUl1vUGpaPvn10CYE02ys3DWR47Nodh+5f45IgC9CYjVA0b1wqmRBzPR3RcbFfkwGQF1/Oo6A6u59PbEjvbe3KBezb3U9FtjkxXuLDUZOtQZtWS1GpNlWGjZUibQs3g6GwN2/WWKXi3f7d/osxkSWPfhTLr+5JsG850zpOHX5jg+6eLaLZLVJFYLBpolktFs7Acj0xUZudYlgMTZaqGi+nA2WIDURCQWyKYngf5uEzDdDGcIAiyXB9FhKrhBudEK7O5aSDFx+5aD8CFYhPd8pit6qu+9pDlhMFNSEgIcGkz4v6JMifnahyfq3P/tkF2r8vzd0fnmWyVsCzHZ6aiE1FE1qQjFBsWqiRS1izSUQXDtvBX/hEfLNfDcX0USSCuSNhe0HtT1mxSUZmepErdDBaPd43nOFds8pX907wyX+PMQoOabtOfjnLnht5VszHdU2BtQcBXa7QMMzvXD/snysxWdN59Q88y9+z27752aJaoLFLRLGqatfzBgkAuoXJjKsKWoTR/u38GuzXbLYuAAAOpKL2pKLqjYbWcvV3XXzYHVWzatO7eOUcEQSCfkNEsl1RExnJ8Dk5X+bPnJ3jf5n7WZGI0LYdzCw2yCbWz8YDw+F2NMLgJCQkBLs3ifO3QLPmECkA6pvDQ7jG2j2T53P85yYUljXRU5uxik+mSjuN5aLbHifkGpwoNkhEJqavpOCKB7UI+qWA7PlbrF+mowPbRLCdma2iWQ19KpSehkozI3HlDL7ety/O5J17h+FyNk/NB2n9tTwLX83nmTJHpsg4sz8Z0T4Fl42rHGflKGZsws3P9cCUT1vbvjs1WOTBV6WRHCjWDvScKzFR01mSilHWbF86XaJgWLQkoHA8qusPXD8/gI+C3jvGVRphtPIKAqP17QfBRJJG4GryONZkoz51bYqGVabpvywAvni9xcLJK09J55kyR99wYBGfdY+vXs1lmN2FwExIS0qG9AxzNxztNvFMlrdOT8/0zRaYrOvM1DcOOkIjICAJISOiWiQdIksAt4zlmKzrnFpu4HpitBaDStJf14Hg+3HtTP6WmyZmFQA35fFEjGQlKXuVj80RkkVvGctzQl8ByPN6/dZDZqkFNs+hNRpZlaNq83pHYcIT2+mE1a5K9JxfA97nnpgEe2L6GimZ1rEkKNYMvPHmKp04vAgJlzaZpOqiyiO0Gx3B3gUi3fMZ6YsxV9EtHCrto99oIgo/jgukEApqW63FstspoPs6aTAxJFDhfbBJXJR68Zbjz4LYFBHDRJPM6N8vsJgxuQkJCOrQzGO3Jkb0nCp3d696TC3zp6XNUdRvXg6WGxWAmQkSR0Ey3M/6NHygZF+sWqixhtba2jtdSMO6iath88XtnKVSDwEhRJXzfp6E7PHGsQDaukE+o/Pztw0RkqbPbbvcHjeRiHJyqdDI03en515OBCUdorx9WlnD2T5R55KUpgM5xdM9NAx1tpf0TZQ5NVwGBW9fmmK/qvHShjOV4nZLSaC5KXyrCwakqkhBIIrTtR7pVutsClwDJqMwNfQkOT1UD13Dg7ht7mSoFPTVV3SIbVxjOxpgp6zx3don1vQn+68/ecsl76n69IQFhcBMSEtKhO4MRaMlMY7se5xYb9CYjpKIykihg2h6W67HUtBAFgdFcHAGf+Zavzovnyrx3cx+FmoEkgOO5l6TnW/2VHesGAARwvaDR2LVdJEOgpJn8wd4zSKLArWvzPLR7jIpuc/fGXraPZJdllr709DnOLDSA5eWlozNVHj04c1E2P+S6ZWUJctd4jo/cNtrxYloZ/Izm42zsT6I7LpmowvliE78lYimLQfZFFEWGsjFOzNcxba9zDEZlEUmEphUc/N3BvSIKrOtNcLpQp2l5xFWJbUNZjkzXWKgbLNZMIorEAbHC5sEUDdOhZgRz5CtfYxicX0oY3ISEhHTovkjuGs/xkVtHODobNPKu703wvpsGODZbYyAdYaasU6jqjPYk+OW71vOVAzM8dmQWFyg2Tb5+aJZy06YnqdKfjnNusYHp+Hh+cGGPqyJVY7ncvGm5y5osHc/D9aBQN5FEgSePF/j+mSIN02F9b4KhbKzz2LYr8ob+5CU72EcPznQWtDC4ub5ZWYIcSEc7fSorA+TRfJzPP3mKyZKG5Xjsv1Cmotud5mDPB9PxubCkMV/VsT0f1wfX8QO3b3w855KX0HqsT0WzuXVtnhfPl+hJKKSjMh+4eQ3PnCmSjSlEVYmpUtBX5noeJ+drncBmpehg2FC8nKsm4lcqlfi5n/s50uk02WyWX/qlX6LRaFzx/r/6q7/KjTfeSCwWY2xsjE9+8pNUq9Vl9xME4ZL//vIv//JqvY2QkOuClaJmbbJxlYd2j/GRW0e556YBPnbXej56+zjDmRjTZZ2BTIzfeOAm3nNjP4bjYrccjhumy1LTxgOKDYtThQaj+Thqy2/B9nzMrlROu2fBbul/KCLEFLFjvikCw9koDdNhYkmj1LQ4PFPhz56f4JF9U3zp6XMdV+TVxsM/tHOYD+4YWt6nEHJd0T7GF+vmJbc//MIED784yd4ThWUB8sMvTvLc2SWqus2edTm2DKU7xzC09GpakbjhXJQ+kMWg3ab9OwGQuv6mJMCG/iQROXAC/6U71/GTO4c5OlsjFZERCFy/16SjiC2PNlkUOT5b6xzr3aKDe08U+OOnzrH3ROGy5/L1xlXL3Pzcz/0cc3NzfOtb38K2bX7xF3+Rj3/843z5y19e9f6zs7PMzs7yuc99ji1btjAxMcGv/MqvMDs7y9/8zd8su+//+B//g/vvv7/zczabvVpvIyTkuuBK2jAf3DG0LOX9wPZgZ1lpGWU+enCGvlSEqm51Lubd+ASaHdMlLdiQtG73Ws2P3ZmaNo4Hsg8RSUQEkjGFTQMpig0L3/cZycfYuibDg7cM88Sx+U4/wkN7xoFL0/bbWmJsIdcv7eM5H1c4NF1lx0iGT967qVN+Bbh/2yBDmSi9yQgAY7kYgiBQ1SxmKwYLdRPHvxjEKJKAIgqBXo1/cfLJW2VCSlFEMopE03IYzcepGw4nZmuYrs+xmSqRlkDg9qEM928bJB1T+Mr+aU7M1YkpEh+/ez1HZ6qcWWgwVdKWl6HamjeCEE7+tbgqwc2JEyd4/PHHeemll7j11lsB+P3f/31+/Md/nM997nMMDQ1d8pht27bxt3/7t52fb7jhBj7zmc/w8z//8ziOgyxffKnZbJbBwcGr8dJDQq5LVpsWutIE0X1bBphcapKIyBybrQaNxtrF/LskBhd4RRaIiAJN20OzW93GLaxWbj+iCNiO3+phEHB9H9cLDDlvHEyxcyTLhVKT88Um6/vinF3UyMZUfumu9WwbzjBbNdg3Uebvjsx1PLK6L/Cj+XjYbxPSOY4nSxrPnl3i0HS1EwB/5NaRIEDwffZNlPnWiQJ1w6ZhOsQUEUuEuung+z52yyNNFGBtb5xy06ZpWwhcDNQlCbyuiqssgioKuF4QGPUmVbIxlcmShuv5TFUMBCAXV9Btl7F8nAe2r2GmrHFhqcnudXke2jPe6R0bzceXvbd7NveTjSmrnr/XK1cluHnuuefIZrOdwAbg3nvvRRRFXnjhBT784Q+/puepVquk0+llgQ3AP/7H/5iPfexjrF+/nl/5lV/hF3/xFxGuoNZomiameTEVWavVXuc7Cgl5Z7NaQ+KVmhQ1yyUZVbh7Ux/nFhscm61h2m5nQiQiiSiqiOm4mJ5/aWqmC7uryzKhyty6NsszZ5YQgLpuc3axwUsXyhiOx1A6StNw2D9R5tf+8gAfffc43zw8h2m7HJur8ejBGbYNZ5YFZl96+lzYbxPSOZ4LNYN0VGamovPM6UXiqgSCQE2zqJuBMnZVs/iLFyZxXJem5ZGJKcyU9VbwHTyf68OFxSa5uNoJapIRCVkUOo2/0JqW8qBpu7itjM4r8w32rMuTjil4noXpBsG9Kotk42oneLl/2xpMx+P+bcF52O0F130srzxXr+eMTZurEtzMz8/T379c+VGWZfL5PPPz86/pOYrFIr/zO7/Dxz/+8WW3//Zv/zb33HMP8XicJ554gn/0j/4RjUaDT37yk5d9rs9+9rP8u3/3717/GwkJuc65XKNit/fO9uEM54vNVskoyNpYro8s+dhu0GDZ3tUm1KDzQHcuXuj9Lp8dBJAlEcsJxlFM1+P0QqPTn+Pjo8oiTcvlfLHJZ755Asf1SUVlbluX7/TUdF/s27eF/TYh0Gog3jPOZ755nCdPLjBR0phYatIwHUQEsnGFeEShptvEVCkoi0YkbNenYS7vDrY8WGhYneCmYbqdXrE2PkGWRxYEEPzWOSIQUyVUSUCVJWw3eF5FEpivBnpSUyWNim4vC2ZCPabXzusKbn7jN36D3/3d373ifU6cOPGGXhAEmZWf+ImfYMuWLfzbf/tvl/3ut37rtzr/f8stt9BsNvm93/u9KwY3v/mbv8mnPvWpZc8/Ojr6hl9nSMg7ncvV77t3kBXNYqqkMZIPJpemSzpVw6FpuqiyiOV6pCMymbiK53kYTtB1rFsuiYiE64MqBSn7wXSEbx0vdHbH02Wj4z6uiHD3pl6qusPh6QqF1ti5QCAc+IGb16yamelLRdg1lqMvFbm6H1bINUU72LVdj0PTVXTLJR2Vuf2GXuq6xbdOLBCVRZqmy+wqBrBtlhdbQbe9IJCPSDTMwCsqqkg4no/X6tdJRmSGszFYm+f4bA3T8SjUDHqSEWzX55nTi8iSyH1bBpY1Docj36+d1xXc/Pqv/zq/8Au/cMX7rF+/nsHBQRYWFpbd7jgOpVLpVXtl6vU6999/P6lUiq985SsoinLF++/Zs4ff+Z3fwTRNIpHVL16RSOSyvwsJCbk8l9sptjM3cVXiieMlig2T3mSEuzf1sdcqYDouAgKe59MTV6noNpLoEFVFinULDxjKRFAlifmagSiLDOXjbBpIMl3WqJvLJ6k2DyYZycfYN1FhsW7QNF38VkZIFKCi2fzty9M8eMvIstfZHu09MFnmb/er/Nq9m8LS1DuQ1zIK3X0fgCPTFXqTEU7M1XBdD9fz6U9H+OT7NvKFJ08hS8EkUzYOEVmkUDNXra62szZRScBoRUCSCCPZKCcLzc7PoiggiRK65TJf1fmLFybZsy7PL9yxjpgi8jcvT7OhP4nleJwq1IkBNcPhnpsGwvHuH4DXFdz09fXR19f3qvd797vfTaVS4eWXX+Zd73oXAHv37sXzPPbs2XPZx9VqNd7//vcTiUT42te+RjT66l/owYMHyeVyYfASEnIVuNxOsZ25eeZMkdOFBnFVZl1fIEgWUSS2DWc4OV/DMH0qRuC/Y7kepu51SlB108V2bBRZYDgbw/V8Xji7hGYtHzXRLIeq7rA0VWWhvtzIMK4EY7mW6+H4Xmf8tW0h8ejBGY7N1miaLqcKJR5+cZLPfHj7m/9BhfxQuVyGsdtOpH0sPHFsnmLDpFA30SwHAYHd6/JotsvutXkA7ts6yMuTZXTTZc+6PAenKssCm7bqsCxAPCKhGS4RRcJolZccD6bKF0exDdtFVWQiskDTcjEcH8e1OTZb5UM7h5ksaZyar7NYN/mFO9aRiMg8e3aJrx+apdgwV5U3CLkyV6Xn5qabbuL+++/nl3/5l/niF7+Ibdt84hOf4Gd/9mc7k1IzMzO8733v43/9r//F7t27qdVq3HfffWiaxp//+Z9Tq9U6jb99fX1IksTXv/51CoUCt99+O9FolG9961v8h//wH/j0pz99Nd5GSEjIZWjvfkfzcdb3JalpFt8+ucCByQoIPpIoYtgeIuC6QY+B43lsGkixUDMo1Ex000EQwDbhVKGB5XqdXoW4IqLbgby95UKxYSJLQbdyZyJFgHV9CRRJ5MRsjaPTNf7suQuUmxaHpqtsHEhyeKqCIovcPJyhYTosNUwefmGisxvuXvzaSsfhInLt0X08PnZkrvN9VnS7Y9NxbLZKuWlxbKaK6XjcPJJh61Ca47M1hrMxcgmVRw/OcmaxQU8igu146I7LfM2gZtjElOCY9mlNXvtBU3GtJURZ7WoiFoC+pIJb8zEcD0EQ2TmSQbNdyhOVYDIqobJlKENclXj69CJN2+XGVITtwxnwfXqTESZLGmcWGuyfKHeCtlCw77Vx1XRu/uIv/oJPfOITvO9970MURf7e3/t7fOELX+j83rZtXnnlFTRNA2D//v288MILAGzYsGHZc50/f561a9eiKAp/+Id/yD/9p/8U3/fZsGED/+W//Bd++Zd/+Wq9jZCQ65YrXUQX6yb7J4Og4KHdYzz8wgTTZZ14RGIkG2O+ZmDYHtm4QlSR2DSQJBtXicgipwuNTv+C3PKjkkUByw1GZmVJwPaCvoXgZ5GoLGK3xENEIKKIQcDk+vzojb3MVQ1KDZO/fnmapCrRMB3mazo13cZpBVd3b+zl0HSVR/ZNdzyE2jv+kVxsVYfxkGuDdobxsSNzPLJvCqk1dt3uWRnNx9FMhwtFDR+/ZUbZYG1vnFvHc8xWDY7N1pirBsfMYCaK4XpUNIuKbuF7kIoqRGSRpukgEAQ27WyOAKSjUqBQ7PmYjs90xSQii6SjMr4f/E1VFojIInFVIhVTmC7r/NnzExi2x67RLHdu7OPIdIWnThf54I4hHrxleFkpDUIH8NfKVQtu8vn8ZQX7ANauXYvf5WD63ve+d9nPq3H//fcvE+8LCQm5elxJDOwSOwNBIJ9QuXkkQ9N0sFyPRETml+5cR38q2ikL/M2+aZqWS1QWkCWRRssuvD+lstiwkESBiCRSbFiIAqSjCqbrUdGdzkLiAprtoUhguy7fODSH5XgIgsBSw0RMRjAdj5rh4LcWoNOFBj+6qZ+fu32cmmZR0W0KNWPZjr+duflBCHfTV4/X+tkWagYVzWIoE+X8UpOtQ5ll/SrbhjMcnK5y82iGF8+VWGzYfPXALB++ZQhJFIhHJBRJZCQXZHFmp/SOFhNAWbOJqyJDuThzFW3Z387GFUZzcfrTEW7oS/Cnz05gOh5JSWAoG+N8scn+yQqW4+F6HlFF5d3r8miWy6HpCkPZGHdu7OPgVIW7N/V1mohXLQuHDuCvidBbKiQkZFWuNHa6crz6ns391HSbrxyYZr5i0JtS8X0wbK+zoz6z0GAoF8X2PP6vd41wfK7GS+fLSCJUdAfDDsw1I7KIIAZ9C0stFeSVCATlrgtFPeh9ECGuyjRMh7Jmg+ATUyQkMRjPdVyfZ84U+aO/fyv7J8r82fMTfPPwLHdt7OOODb1vuCQVqsL+4Lxa8PJaP9v9E2WeOl1k52iWeETmzg29y5637Zw9WdI4PlNrHW8+Xz80hw/cOJjiw7cMk0+ofOeVRUbzcc4s1LHdIFvoA47rUW1auN7F8qhAYPaq2Q5TJRdZFIjKQS+YKgdTUreO56iZDqfnGyTjKjePZnhozzhHZqocmKpQ1mzSUXlZUHM5Qgfw10YY3ISEhKzKlcZOV9oZDKSjTLaajAfTEZJRhcJik8mlZmdHfd/WQWZKGt88MseadJQfvbGf/+qc4nShQUmzg3KTLJKNKxRqF0U3ZTHYpLZLWZKwvCQAweKjW61Mje8z1hMnEw120wcmK8xUdeaqOl948hRj+TiiAIemK0yXdYoN8w2XpEL9kR+cVwteVn62lwuGdo3nqOg2L55f4nShgWY6lDSbimYtE8ar6zaSGEgH7H1lkWLDQhJgrmLwwLY1HJgsM1/VufemAZJRmYOT5U4Gx3TBdJ1lpow+wVSTQHD8yi07hjXpCB/YMcRwNsY9Nw2wWDf5j4+d4Nxik+mSzvfPFJksaXzg5jWd+7Tfz5UCvnAc/LURBjchISGvm9UuvmO5GH3JCNuHs0yVNYazURzP59OPHMT1fd6zqZ9DM1VUWQRB4ORcjUrTwrADJ3BJgFRUpmnYywKXVFQhpkgUagZRRcT1PNwuLTVJgHhEptYqXZmuz1Ld4v/aNcpkSaM3pdKfiWDZHt95ZZFUVGbLUJr3bR4gG1co1k12jmYvG5i8lrJIuOD84Owaz7V6W4JS4ast5pcLhtqP23ehDMBYT4JtwzJHZ2ucLwYTfe2/E5i8+qztiRORRRqGQ9NyOTBZ5vB0lZru8O2TCziu1xGbbCMAonjRR6qND5iOx2LDRABKus1i3eDF8yW+dniGTFQNFI49H1kS+PaJAueKTT58y3DHE+3V3mPIaycMbkJCQl43q118H9w1wlhPotNf8+zZJb7zygKG7TGaj/FH3zuLbrv0pSLUdZv/fWCGuWowLqvIAtmoQtN20S2vY0woiQJNy6HZUoaVBIFmV2CjSLBjJIsiC7x0vgKejwc0TIcnTxSYq+j4wI9tGeClC2UkUaA/FaFQM9k6lKZpOjxzpkjddHjwltUVjANjxSn2T5ZXHckN+23eGAPpKNm4ytcOzZKNKa+6mF8pk4PvE1cl+lMRNg+meOZMke+fXmC+bjGYihBTZSaXNERBIBNTuO/O9Yzm4/zzvznEifk6z59bYjQfZ6FuUGpY+K3aU0IV0Swv0KsRIBlVqGk2Xc4hJFSJxbpJ1QgCbvB5+swS81UD3w90btJRGUUUWGpYxFWJnaNZ7tzQy8MvToLvd7I3bR2pdrYpPMZeP2FwExIS8rpZrQzTvcPuS0VY35tgpqJTalq8eL5EWQvKAcWGyUxVpy8d6ejSWI7PUtNaZsUgCYDvIwkCjhd47+hOV4cnYLswVda4aTDdmZARCRagySWNmmFjOR7Pni3SNF1u6E2wpFmUGhYnZmv0pyIkVIkTczV+/ZGD/PJd69Esd1mD8a7xHPsny52R3F3juWULzcpAL1yIXj+XK+ut9lleKZNzz00DnCs2OTZb5c+en2ChZjBTNbFdn5rhcOOadMus0uPCUpODUxU0y2G2YuD5rd6vhXonKyMLEItIRGUJ07GIKRK+D6ok0peOMFc1USWBhCqzrjdB03KpGQ6yCMO5OMOZCDXdwrQ9oorEnnV5bhnNgiCQjincs7mfvScK/L/fPQv4IAg8tHvsEg+pMJPz+gmDm5CQkNfFygVnpfJr+/+7U+3/89nz/P7eM4HuDYH1wppMlOmSjud61FtianbXBEi7x8ax/U4mx23FNm0RNYBy02LfRLmjViwI4Hg+/akI6/vjLNYsNMtlrmpQ1WwaXSMwDdMhHVMwHY+XLpQ5XzxCOirTtFz6UxFgPQ9sX8PH7lrP3hMFKrrN3hMFnjpdBIKFZuXC/GoL0fUa/PwgfSSvJXBcmeXoTUaQBIGFmsFSMxB9jMoi7xrPcqZQJx2VQJA5OFGhYiz3ihIAw754DPo+GJaLbrkoLc8zs3VgrslFoRpYgKiuy7HZWkvfRqU/HUG3PfZP1zBsj4Qqc/NIhvu3DXJstrbcob5j+ix0JqBWHlNhT9frJwxuQkJCXpXuRWXlgtP9M7Dqwt6firJpIIkkiiRUiWOzVeKqzP3bBnn+XJHqokMmLiEKAqVmMCElcDGAWdY83NLGaZtxWi5YrosSmDvjBp6bTJY1RogHY76qRE9CJROTObeoddRlNw0k+dHN/ZxZaPD06SKLdRPdcqm1ymDtBbO7dNI9qtv+Xfd7fbUG2Ot1F/563nf7M4ur0rLAZbXnmGoJ3f3JM+dYrJvMVXQsN+inWWqY4EMyJpOMKhQbVsexuz3pJAKyBIos4fkemrU8wHb94JjT7ZbOkkCQtalcVCBuWB7gIQqQl1UgKEHNVXRiisSNgylkSeQbh+c4MlMFLjrUbx/OcPemPsZyQVMxXHpMhT1dr58wuAkJCXlVuheVlYt39865bU65coe5azzHM2eKHJqq0JtMkomp7BjN8sn3bSQXV/hfz00QV2ViioTleh3vqP6kSt10OguLD62yQPBDt1ODIolEZYmaYeN4QVlrx0iG43M1js5UEQUBw3aRWsGRIgncti5PuWkxmImytifObMXgjg09nFloYDkeR6YrbBvOcHSmyjOnF9k5muWezf1XzLisVjbp7tm5Xnfh3e/7tY5/5+IKJ+bqrO9NXNYVezQfp6xZPHNmEd8PTColQWAoG2WxYVJs2vg+DGdjqLKITzCB53hBMDyQjrJYNzqaS3DRwd7xguPQ7qqGqpJAqWFecn+f4LjyPJ/RXCBkKYkCm9ek2TKU5uxCg13jgb3DnRt6O4+dKmmUmhZ3bui9rjJ5V5swuAkJCXlVuheVlYt3e+f86MEZPnbX+lV3mAPpKNvaUveZGDFFYqy1G+9LRYirEk0j6H1QJAFao95Ny8V2vE62po21vPWGmCISkSVKXbo4qiyxe12ep04vtnoofGw30CGR8ImoEo8fDXyGBCATV0lGZdIxlQdvGeHxo/PUDIfHjszxzOlFnjy5wL2b+zsZhWfOFJeVF640otzds/PA9jWX3YW/3pLVtVTi6j5uHjsy95rGvydLGifm6p3SzUA62skedlssTCxp2G4QZDRNF0GAozM1dNMhFZXYNpRutbQIJFWJXWMZ9k1W0CyP2apxyd+XRDBdD8e9mDVsSxDYrk8qIiIJLumYTE9C7Ry3phMYcB6braFKAut6E+xZl+ebh+coaRYRJRAK1LoO4Os12L3ahMFNSEjIq3KltPhqi3c37QV4+0gWgO+dWuSl8yUyCZViw2TvyQLzXbo2+MGorOX66JbLionbZQgEJYVsTCEdVdAsB7M1wjJfM/n33zhBRb9otulDpznZcX0WNLPz/DXdZmN/gtmKzlg+zq1rc9QNmz9+6hw7RjNsH86QS6g8sm+KYsNkvrUotoOb1Uom7ff+oZ3Dr0kB+fVK679dSlyvN8ha6QW18nHt461QM0jHFPD9TvP5F759mkNTFXaMZik1LW7oTZCJyjQMu1OSFICKblPVbWzH4/B0ldmqTsOwGcnHWNJsrO5RpxW0g+E2igiyLKJbHq4fPLcP5BMqC3ULzfZIihI3j2SZLuus70vg+YG433Auzk/cvIaDUxU+cPMaIrJ02Ub8kDePMLgJCQl5w6zvS7K+N7Hq4t1egD+4Y4hsXA1cum2XPkngzEKD0XycySWNVuWJRFQmHVVZbBhYjo+AT8tWCgFQFQHL8fH8oHRgOi5zNZOFuklMkbC5GBAVm4FAmyoJeH7wPG2Nku6yAoDl+kyUdH71no3UdJt9F8qs7Q2yS5bjoUgiw9kYpuNRN2xuHEzRm4xwdKbKVEljNB9f1ouz8r2/pgXsdUrrv112/SvLlntPLiwbbV5JtxdU9+NWa1TH93nqdJFsXKWi23znlQVM2+PWtQIjuRhnFgMRyE2DKZqmQ023ySfUwOTSh2REpmY4VDQbDzhVaBKRuES/5krEVJlMTGbBNRAEAUkUEQWBuzf24QPfPblIb0rFcj1SUZmRXJzZis7mwRTbhzOcW2ygSEF2MQxk3hrC4CYkJOQNsX+izFOnFvngjqFVF7J2T05clZit6Hxo5xClpsX7tw6iWS5xVeLoTI1iw0IRBf4/d65jvmLw7ZML6LbLjQNJjs7W0Fr6N5IgoEhCUIKw3IueUz7otks6KlM3nc60lQ/EVQnT9YjJEo7rUWsFNm1zTgjKXobl8r1XFpgqa8xUDHaMZvj43es7ZaihbAwEgfW9CRAEnjq1yMRSk0PTVXaMZPgn925aVTW3olkUagaLdZNHD84sn5bp4nLS+pdzL3+77Pq7g6z9E2UeeWkKoGNQCqtndy553L4pnjlTZNtQmprh8PjRee7fNtgxv3z6hQnwIa6KVDWbw9MVyrodTCmlIpSbNq7rIwoCDTOw9IgqIra3PFh0vKD01O7fMpzgOJFbXeqSEKgRt9FNh4bpMJyNolsumu1xx4YefuW9G1isBwrXR6ar1AybW8dznXHu9vs6NlsL5AlK2jKhwmuprHitEQY3ISEhb4hXyx60NTueOVNkuqxfksV4+MVJzFbHZkQWmasY5BMqFc3Gcj0mSlqrARjwYTgXQxJELiw1OoGNIgaLU1SWMBx3WX+OCNSNINgxWkJsbVRZYNtwhmMzNRzHo6LbPHlyAcf1EQWoaDaj+Ti/+/hJFmpGR9L/7o29zJQ1GobNYDpC03Q4NF1dVpYr1Az2nijw4vkSpxcaAJwrNvnqgRnOF5t85sPbX/dI9NvVvby7jFTRLO7fNkg6Kq+axapoVtBD08rstN9Hu7z51KlFnj1TZLwnzmRJY/9kmQdvGWbvyQUOT1dZk4kwVzNpmDaTZR3b9YnKIs1WNGK6PqcXmh35ANNxOw2/0JIR8C8mx/SuafB8UiWuSFR0G1NvC0eC0+oBq2o2essDbb5VJnv04Az7J8tIgoAqi7iez8MvTvLQ7rFOj9AzZ4o8dWqBimYzlo933vPbpaz4TiQMbkJCQt4Qqy3I3TvS1Zy3CzWjU7p4pVDH9XyisoAgCDx2dJ7xfJyYKoEFo7k4jqdh2R6SJOA4HtN1g1xcxa4FPTOiAB4CphMsPIHPj4DhBP013VmcoFQhYdoupuNTqBokIzKC4GDaHk7rzqIQuD0//MIEL50vIYmwJhslF1d58XyJZ88uUdYsSprFLaNZhnOxToamPfL9yL5pik0TWQgEeD60c5jzxSYVzeZLT59bVfF4Nd4s9/KrTdu8sjuA7c46fXDHEBXd7mR2gI7v01RJ484NvRycqjC51OTCkkbDdHjxfIn/58lT5OMqVd2mbthUdadj2WEDyWjwfaZjMnXdwiD4rjNRiZoRBD2yGPxnORcDHYEgaG7391Y0CzkZJRtXaJgunucTkUU022vJDvgdGYLzi03+42MnyMQUBlIRtJZ8wCvzdQ7PVDk8XeGzP3Vz4MM2lGbfhRK5uNIZa4e3T1nxnUgY3ISEhLzprNyRdgc/X3r6HL3JCF8/NEvTdOhNRZAkkbW5GIt1k6WGxUmrTm9KRZVEkhGZ0VyM6ZJGJq4wUzYwHA9VFkhEJGRJRBEFbM+n0gwaPUUhGAm23IvlKWj33gRu5SAg4lPSLAQEBAGGs1EUWWC6HCjWVnWbTEwJmkMdj6MzQXkhFZHxfB/H9Zku6QgIFJsW331lsaMyu2s8x0duHaFmOKSjMtuHM0yVNH7t3k08enBmWQP25YQQVwY+fanIJeWsK5U2VpazVpa1VuONlEpWW6xX9h0VagY13WZiqUnNcHjqdLGTkRrJxdBapUZRgNF8jELV4O+OznH7up7gCf0g6PzZ3aOYtsehqQpbhtI8sm+apmkvG9tORRVs10eRLqpcC10t6umoTFyVWGpaWK6PLIpsGkhyfrGBgI8oAkIQzCQjIrIo0ZtUybQ8yZ46tRhIGKgSuWSEHLCpP8mRmRozFZ2HX5zkzg29bB/JcvemPs4sNDqqwxA2E19NwuAmJCTkTedyO9JHD87wtUOzvG9zPztGsxyaqrBnXZ6do4HZ5rnFJqIoYLse5aZNVJE4MV+nYTi4vocoiQxlIszWTNIRmZmqgYDHxv4EVd3BF2xEP/CqqhtO98ALEOy8kxER1wXLDUpUmhWMmvs+WBGfuzf18fjxAk3DIRNTmK8aOF7QnCqJAlFZBCGYhIkoIiP5GCO5GPsnK9hO0LNT01sj6b5POq4GMvutSaj7tw3Sm4xQrJudHozVhBAruk02pqwqnNjNlbyvVpazXktZ60pTX5cLeLp/v/J5VyoID6SjjOXjHJyqsH1Y7vTTtIOv3oTKgakKUUUiG1f4m5en0U2XUtNi61CaF84tIQkCT58usnttnjs39PLVg7PUdHtZINsbV7hlLMuzZ5aoWw62EwQ5kiTguoHqtWY51A2nE+5otse+C2Vs1+1MXunWRY0l2/PQHYGhiExfMsKJuTo9SZV1PQleOF+ioltsWZPm9356B48enKE3oXYCu4/dtX5ZABtydQmDm5CQkDeNKy1yAB/aOdz5ty8VWbZg/tF3z3BspsZILhpYJegOo7kYCHBSqwECTcMhG42SVGUaposqCQgIDGSi3DwS5flzS0giXCjqlx0hb5rBbyQx0D0R8TvBzZpslFxCDZ7fsJmvGZQ0C1kSyccVcnGFmhFM5Bi2h4uPYbn0JFQiiojterzUaiCVxSBbIImt7o9Wk8fEUpMTc3XKmsWFJY2xfHzVYLCiWZcVTuxmtVH8laWg1TI3l/verpR9geVBUftxFc1aZkmx7He6vcwnaeX7aQdL24YzFGoGxabF+WITy/G4cTBFOqoQU0U836fUDPp1mpbDgckKJ2ZrQb+WILAmE8VyPRbqweh/1bB58XyJpuXiukHWxmpFP3LrC7dXOUja9hxROfjejNbIuONBUpWo6Bb7zltk4wqKJLLUsHhg6yAI8NKFEuM9geBg+/2M9SRW1Yda+bmHDcVvLmFwExIS8qbxag2S7Yt+m+773LGxj4mShm67LDVtFMnF9nxuG89h2i6u7zNZ0inUTHTbxfV88gkVzXI5MVunkrEp1IJR3csFNqIQTMRYXmB+aDhB9iYRkYlHZG4cSPK/989QbpWqnj+3hOAHSsef+NENfOmZ85xdXMJrBSq+D/lkhIf2jLNtJMv3Ti1wYKJCTBGJR2SyMYWpksbfHZ7l771rhFvX5tg6lAaCzM9sRSeuSsvE6dqBYaFmgCAEDbirfJ7dC+PKrMBqI+jtz321Ka3VFKi7WS3gKdQMvvT0Oc4sNLhv6+AlY/Ddmaq7N/VdMjG2dSjNl54+15kcOzpT5XcfP8n5xQam43UUpSEoLyUjMoemq0iCQCoqs1S3qLfNxvAZysX4x+/dwKceOchS08b2oFC/qHHUOQaA9b1xzhebl2T2FAF8QcDz/NY4uonQulM2prQyTjYOPjXDZiAdJa4Gvh+71/Wwe22+Y6EAy8tOqwUyYUPx1SMMbkJCQt403kiD5FRLjVazHGKqhCJGGM3FqBo2Jc3mltEs2bhK03BYalqBA7gAhu1iuW7wr+Pjd61YsggpVaZiOB15fAeISMECadQtRFEgqkjUdIsnji/geB6W6+F6YDhBI+lILsZ7buznb16ewm5lARRRQFUEEqrEkelKsKj5Psdmah3V2w39ScqazURJo246rMnE0EyHE3N1khGJk/N1vvT0ueD+LT0XCBa6gXSUbEy5WK4SBGq6TToqc89NA6v2NR2dqfKlp8+xdShNPq5cMnoMqy+y3aWj1RbclVmHQs3g/3nyFC+cKzGUjbK9K1PRFuWraRbFhsHJuVpLKbpITbf56sEZJkoa6ahC03LQLJfPfHg7X3r6HM+dLXammJIRmfNFjWprlF6SRHTToT8dYbFuskKkmi2DaV66UML3WTYdtZLelIpue6tmbSRZZCCl0jQ9Fuomkgg9SYWILLG+N8EN/UkmljREMZjsS0cV9qzvIR1TriiHAKsHMmFD8dUjDG5CQkLeNN5Ig2S7AffoTJWnTi+y1LRoWi4/emMf/akIg5lgJ+14Ptm4wkxZDzyoCNzCq66DJASaNrrpBoufD7bvkY3JVPSLAY7p+izUrWBcWBBwPQ/T8WmYdicgqrV6MRRJoNy0ePiFCY5M14JmVy7qpByYrHBirsbfHZlj9/o8ru8Tk0VURWK6pFHWgibnpbrJA9vWcGCqTLFhsmO0n4gicX6xwR997ywP7R7rlJDaAUI76KgZDl8/NMtCzSCXUDlXbHLnht5lvSwQ9DR95cAMz59bwvfh+Fx92egxXNl8sq3BszIL0007Y/PyRJm6aVPSpE7Jae+JAo/sm+Yjt46AIGDaHsfnauxe38MHdwzxzJkiE0s6puNRwyEiiyw1TD73f05ycKoCCIit7zAekZgsaUDQQ2UYDgh0vMO66UkorMnG+JNnzlHRbNRWb41mXRrB+D7EVJG4EkxBtREB0/YoNix6kxGquk0yIvOzt41xcr5ORbM4u9CgNxVh50iG2arBhv4kH7trPUCnP2q1z6u7RBiqE781hMFNSEjI24KBdJSH9oxTqAVj3i9OlNi9Ns9MRWeypDGcjTHeEyi/Fqo6pusRzDxdxCcwLkxEZeqGgyCAaft4kk9clbBdtzP267f+cz0PzRI6I+COB5rtkorKuJ6PIAocnalyZKZGJioRkUXwL/5l3XbRLIcXL5Q5OV9nqWmRjsj0pmSKjocsBWUO3XaZWGoyXdIBH9vx+MDNa/iv3zpNsWHwd0fm+MU71vL5J0+hWS4V3eboTJVDUxV+cscQO0az7LtQoj8V4cxCg2YrA9Q2lQS6Rs0tbhxIsW0ke8mC2y2q2A6iuvt2pkraFRfc/RPB/d41nmO8JwHA5FKTz/2fk3znlQVmyzqvFOrYrk8uoXLr2nzHbDTIDJU4u9AA3yefUDi10ODZs0vYnkd/OkJMFhnNx3nxfKmTfbEcvzXKLaKZ3iVZmZpu89++c4Z0TGZtbwzd8ihrFmIrhdMd4hQbFqWGhS8sf472fXTbQ7ddIopIJqbQMB3mqgb5uILbKlHmEioQGGBeqcesu3T3kVtHw0DmLSQMbkJCQt5WDKSjbB3OsH+qzKHpKqIQlADOLNQRRREBiEVkEqaL4DsokoDlBJ4/ETnoo5FdD1GEdb0JEAJNErHVW6M4Hpp1cYF0PJDc5Qum4/o4ko9luyiKiCuIVA0b3RaRBNAckASPfELl/9/emwfJdZb3/p+z9jbT3bMvmtFoXyzJkoUsWbaRjW1sx75g51JxML6OoQwOlF2BwCWYCgmBFCEQbuAHP6rI/ZFAxTEkzr2ACQkGG4F3SbZlWfsuzWj2rffT3Wd7f3+c7taMNsuLtvH7qZoadfc5Z97z9lGfbz/v8zzflGWjqyohXaXs+vgCiq6H4wkKdiCwVAWKtscLhyZYMSvOgVGffSM5+lJFBjNFPF+wfyTHPz53pFbVNJCyeHr/KAoK8bDOn9y4sBYB2DGQ4el9o4wXyuwfyfHnP93B7IYId67u4t6renhkUy9Xzm0kpGsnze/UpooHR/O1KquPvnseP3t1gGcPjNHdGK0tM52pqzAEpf0vHJpgOBM08FMqibWpgkNXQ6TWzG4kW2JHf5oVXQnG8zaW7ZIvebQnwqQKZXRVI6qr5G2Pvkmr5gRfxfMDIXqisFEAx4d0ySVdcomZwftQje6coGEAUFUFgUBXg0hRNWnY1INKqvGcjamrTFhldg9lKZRd3rO4hWWdCdJFh0c39VIoB5HAlOVMq2yD46X8VSG4oLVOLj2dZ6S4kUgkFw1TQ/hRU2fLkcmgSVo8zLFJi/ZEmDlNMY6MF+hMhumfLKKpgRuzpoCpB63268M6mqqwbFaC/cM5HB8UH2zXpVq8VHV5DhBEDLV2Q9UrgsknEDq+cPEFtWUOFVjSUc+Vcxr59a5hWis3/t2VNvsIwYLWOhrrTHb0Z7CFoOj6HJ2wGMwUURDMa66jIx7GVBWa4iHaExFuv7yDZw+MY9keqYJNImKysitRS1JNWza7BjNsPjJJ34SFpiq8eHiC/lSRkK7RlyoihGDHQAYAo9KOuZqgvHFvUKa+YWEzEVNj0+EJciWnVmU1ni/zm72jAKzoSrKjP83RicK0MvOxXJnnDo7TN1GoWVCEDY32RIiyc7ysOm05aKrC8wfH+fGWPqyyy+6hLMcqwkVXFTxTVLr++pQdv+bqHtKOdwauoihBlZM9pd7bUINlw6JzPNPKqnShrg+pWLZP2FRxHJ/qCpWuKqiqIB42aa0PETY1DozkSUT0oHpOUSjaHvNaoniicp34gvqQXpvHp/eN8tLRSUK6GjQmnFLZBpyyyk1WQ51fpLiRSCQXDVNdsT910yJ+vKWP2Q0RwqbGPz53hJCu0RgzGcmWMXQF2/PBB11Tg4hJ2UVRg07FdSGDfcM5xnLloBOtCnURg1ylH8rUniiOB5qYkn+hCFy/0qbfE5hKIGiqS1mmrrKorR7LdlEUhbLjEdI1DE0lFlJZ2FpHPKKzdzhHxNRoqw8zUSiRK/vYrkAFxnI2uVIaxxc0xkI01YVorQ/XIi+L2usBaIiZ/OzVAfYOZXm5N4VlB8tgUVNnUXs9RdulqyHCeM7miZ1DvH9lJ+9f2cm1C5rZO5yrRWKOTVq1iMMDG+bx0pFJeicsVnYlank+1y5oxiq7WI7Ho5t6SVk22ZLLWK5MoezSGDN5YucwfZMWpq6xZk6S4WyJkuPTXm9yRU8jqYLN9YtbWNRWZChT5AfPHyFbckhGTKJmUC4fNNMT1IV0BlLHTVNNNahk8/zp7w+VOY8ZGhMVAQRBxEZToT6sUyi7qIpCSA+icRFTp+jY+JWlRXxB1FBprjOZLDhYtse+kRz1YYP/dnkHPY1Rfr59iEVtdayd00i25PIvm3rJl13qwjrxaLAU1RYP0xgzcX1B2fVrgudET7DTlX9Lzg9S3EgkkgvK1KWPrGWTtmwGUkEi6fLOOCu6knzrqf1kLYeYGYibW5e3kys62K5P77iFrikYmkrJ8Zi0HGxXULTLOJ5PpugQq9gt5CviZ5r5FEHCanlKmKDkTnsZz1eIhFSELyg6PnUhnd2DQRday/awXRPb9VFVhZ6mKI11Jr/YPoRl++gqhHUVTVFqSyS6FjQqzJddPCFIxgxWdSV47uA4VtnltWNpRrIlyq7PeL6M8KmVn3c1RuhuaKA9ESZjOSxZ0MyS9nq+/ItdHB23+OmrA/zV+5expCPOI5t6K4m6sGJWgq6GCDsHMwykixyeyGO7PmFD5Wu/3MNorsyHr5nLtQtbeGTTUSKmRn8qaHJnuz6pwjAF26PsBg0NES5HxvKUHJ+y61PyBPNbYjgNEW5d3sGO/jRf+a+9FMouIUMhXbSZzAtUVSUZVtEVFd+fXrXkViIlrfEQni+YKNj4gX5F+EH59bT3rdJLqFyphvOEQPXVIPk8U8L1wa281ypBZ+P+dNB92tQCL6iIEVxTe4dzxEIaI9kyKAq9EwU8XxAxNDYsaOaGJa21v/uhdT3EQjrXLmiu5S1NFTFS0Fx4pLiRSCQXlKnVO/GoSTJqkirYPH9wAgjMJi3boz0ZZrJg8/i2Ad7V08iB0TwxU8MXgpTlMqc5yt3runl0Ux/ZokPI0AgbGinLQVGCb/lUysdPpDlmMpwr451QXKMB0bCO43kYqkKmUp2VKTkkYwaL2+o5OmGRjBocGS+gKgq94xb9k0UcN+iC6/swmClPO64CtCVC9I4X0BQF2/V49uA42/szRE2NzmQEQ6sktJZcCmUXxxdoisJgusTC1noc1+fp/WPsGMgQ0lVGs2V8Aemiy1/9fBf/46oejozlaa4zaYyZPHNgnKaYSTJi8tyBcXYPZXE8wavHMuRLDpqqsvnwBB999zyWdSZ44dAEsZCOZXs4rk8eUdOEdSGdroYIuZIDIhBIvufzk60DtCfCXLuwBZSgTN71fHxfUKpMrqoIljbVM5gqMpybPi/V46csh0REn1YVVT4hlKOrMLspzLHJEm5lUSqYbx+v8remloT7wETBQVcVfCFY0ZVg/dwmBjJFthyZZO9wjkREZ8OiVrYcnmD3UJZ18xpZ0lZfi9pUqfZr+uWOIdmn5iJFihuJRHJBOTFBNRkxakmzCMGKriSrZzfQN2nxL5t6gaC3zXCmhEKwXGHZHoWyS7boMq+lDst2MTSV1bOTPL1/jNY6k1f60hRsH1MHxw2WPQLPII2xgj1N2CiVn0TMQFcUFAQlxw2cySsb9I0X6G6KcvfabnYOZOidtHBcQdF1iJkGgqDdPxzvjFu72VaCR64PAsGugVwldySIlIQNlT/eML+W97Ll6CS7BrP4IvCyevHQOB3JCKaucixVxPN9FJRaQnW66PL4qwPkSy6GqXFgNE9zXYgr5zQwkiuzfSCD5ws0NYhohHQNFNhyZBJFgSXtcd5/eQd7R3I8tXsUz3dpqQ+hAoahcetl7dy6ooMv/8cuBtMl8H0KCpRdH8t26Zu0aIuHaK43UZUgUbd3slSbX62yrSJO3ZFGVQJRODXINnVLFWiqCzGULk+bWwBNUwMXeF+gK+DUBJlGImLg+T75ssfitnpmNUT4zx1D+L7PrGSYG5e2MSsZ4dHNfVi2R8TQiEdNntk/RjJinCRgZJ+aixdFCHHylTXDyWazJBIJMpkM8Xj8Qg9HIpGcBVOdxKv5EFbZJRk1aKoLMashwqruJP/nlX4G00WKjsfCtnqG0kU0VcV2PQq2R1t9mJFckZIz/aPP1BRCmkLBDmzFTU0hYmikisfXqEIaaKqK6wtcX2BqCl0NUfpTVq3iBoLcEV8E+SCJqMlE3iYRMSg6LiVHkIzqzG6MkbYcJqwy9SGdTNGhWKniihoqv7+6i5sva+PXu4YxdJWM5ZCIGgxnS+wdyjGYLhIxNOa2xEhGDCzH48BInnQlJ8WojF/XFHQ16LN7zfxmRnIlLNtjPFdmLFfG8QRhUyURDgxCDV2hpS7MAxvmkS46/K9f7SNfdtmwsImhbBkFhc6GMPmSy6xkhJ+/NkjJOV7FFDNVuhqipIsOo9lyzQSzKlJCGiiKiuv7tUqnE4kaKlFTY7zgnPK1WQ0RBtLFigHqdAGkqQqJiE664ATLWZXnF7bGmNdSx56hLBFT4/O/t5TBTIlHN/XSEDMp2h7JqMG9V/WwdyjLc4cm8Hyf913eWcunkUnBF56zvX/LyI1EIrkkaIuHuXvtbCAQOgBb+1JETY0l7XG2HUvz7IFxhjNBozut6DKYKlKwXZZ1JljeGefgaJ75rXW8eGiCsuvTP2nVKnJsT6BWrRtEtTz4xD64yvTGb6rCULo4TdhAcMM2tMBpXFMVIqbGtQua2Duc49BYAdcPytab6w2GMiUmHRtDU4kYKiXHx/F8frt3lL6JAluPpfC8IEIVNjWaogYlx8P3BZ4Ieq0s6wySgv/fjQd47uAYECx1mbrKsllx+sYLHJ0s8vzBcRpiZqW6SsUTAp+gwsh2yyxsrWPdvCbSlsPmIxP0ThTwhY8vguWrohOUbj93YJyS47OsM86shgjHJqzaspGqqrieH+SuVPAFRIwg6VuvmJWGdAVNUzEFFOzp82w5PvaJnfoqdCTCtCciHBot4BMISUdM7VsUuLVXhU3l7eTwWIG2RARFUdDUINq3YlaC9fObuHZBM49s6mVrbwqAG5e04vmCqKmzois5zbJC+kFdGkhxI5FILjmqztJP7BwGYO3coANu1NSY2xzj2gXN/H/PHmZrX4rZjVEees8CfrZtgINjhaCDsKnRkQhj6goHRgq1m2DZ9VE53tDNOSHPwz7hcdVRHKZXU6kKxAwNXVcp2h5lx2fL0RRFxwtKyssuh8fyZCyntmzi+B5KxXlc02A8XyZsqDRETAYzJUquT67kMpkt01BnggJl1+Mnrwzw76/0c/X8JtoTYVRFJR7WcXydiXyZTYcmatVkEwWbTNHB9gSmrtSsDnQFFrfXEzF0Do0VODqex7J9siWnNgdjeRtTA9vxcDyfeFinIWZwLGURDemIsoMQUHJcUtbxxCa1OneVRGRHCeao7AoUz6MjESakq1iOQzVfWFeDZalTMZYrEwvpzGoIM5Qu4VXmW9eCHkieL2iqM6kLa5Qdn5QVVMfNagjz0Wvn1qwupvahAbj3qp7KexoYcS6riOGphp8g/aAuFaS4kUgklxwj2RJ9kxY9TVGWdsRZMSvBsUmLJR1xrlscVLX831eO4XqCRa11DGZKPLN/jGzJJVcKqqwUBTriEZrrTMbygcFiS71JRNeYsMrky0FjQGNK3oZC0G9larGVX8ndQakZf+MJSJVcdDVIvvV8wViuTE9TBMfzKNpBdEGZ0syltrQigoUU2xMcGbeY2xyt5ZMIQFErvVqUoKvyYLaEqsAz+8eY11IX5JpU+vRUq4UU1yMe1ulpjDCSK5MtujREDXIlFypl8dmig+P57BspgxB0JMJ4widtHV+Wsz0YypRxfIHnu5QcjwWtdezszzA1+NJWHyJqqngiWEY6PF6seT5VxY5PMF9D6RKGFuTQDGfK+ASdiD38UwqcbNmjP1XkmgVNeH6aupBGxNRRFNg/koNKnxrPF2iaSjxi0FOxoGiqC9V8v8ZyZdJFh45EmIOjeVbPbuArv78i6AVkBRYM85pjJ+XTyDybSwMpbiQSySXH1t5ULWpzy7J2jk1aPPbysWnN5g6M5nE8we6hoJdJMmIwr6WOuc1R9o/kGc+VGc6WSER01s5toDFqsqC1jsmCzebDExTLFh6BmMCDsBYsWela4Jk0NYgjOC5spuL6QfUSgCKC3iuqoiFwyZVdYiENxw0qsAwt6I6rqgqOKzAqKmAiV8arLOeEDY2GiMFo3sbQVUwtKBFvrDMJaSpNdSYLW+vYO5yj5B6vGNKU4HfE1CmULRQFUpaLyvFE3f5UqbZUhRAcnSwS1tWTTCgdP6gCc33Ba8cyXLeopVZuXWUgU8T1BI4XJFVrlQztau8gOJ6H4xP0GRrPB92NTU2p5DQd304l0IBq5YRSlsPT+8eIGBrJaARfCBRFIawH1XFFzUMIQTxikKwPsWxWgm3H0uwdzvL8wfEgUThiUB82eN/KTlbMEqSLQdgoGTF47KVjADywYd5JS0+yd82lgfr6m0gkEsmFp+o4vXMgQ9qyuWZBE0s76ulujLK6p4EFrXXsGgxcsUeyJf74uvnMb4kRMlR2DmbpbIhy05JWWuuD/jBtiRCqqtBcH+LB6xfQ3Rhl12CWFV1JPvruecypRExqqR9KEIWx3eNVUFVipkpHInTGD1QBDEwWiejBvp6AXMmrCQ/hB3fvcCU3BYLk3lwlJCIE9DRGaU2EUZRgDLbnoaoK713aRlN9iFd704zmgv44ELifq5Xk5lxlKUxXg6WbsuNh+8G46kMqC1tjdCZDNMdMBMEyki8CkVUd49RzgWDZ7ljKImpOt3nIljwsx8f1RfBbQCJsYGrHe/10JMLMbggHIgcQQhAyVK5f2Bz4d1XQlCBaphDMzZymCJoK+ZLHeN7m4GiBsZzNjv5MEKVSwPZ8ChV/rtb6EDdf1sb7V3Zi2R65kkvJ9QOfr5RFxFA5PF7g17uGa7k0d63p4q4ru2V05hJGRm4kEsklQTXXoashUvNfSllOLSfio++eVzMprFZVdSTC7BrMMqshQqpg8/PtQ5Qdj+Fs0MhNCEHfRJHP/d/taKrCvOYYnYkwlu3R3Rjl8LhVExolV6CrPs11JrbrUXbd2k2+pT7MkvZ6fpUZOeM5ZEou2hQFJABRWc5yKwk7CkEUx/UFjn08IuIJ2DOcI6SrOK7A9z08P8iBeXLPCBMFm1LFekBQtZcQGKqKI/xKzo1z3IzSC4SLU+nm6wkYTJcI6VqtFL4hatCRjKMpsLUvUxNNVF53fcHB0TzxsFGLxIR1pZZgPTWeo2sKEUPF8z08AaO5Mg0Roza/uqbiuj6bjkxSsL1Kmb5KvmKUqSmBuImYOrqmUPKDLOJC2SEaCiJOnh/4RTmej66p6JrKYLrII5t6ufeqHqKmRnNdiJuWtvJyb4qBdJH/80o/KcthZVeiliR897qes78wJRclUtxIJJJLguq36KqVQPV39fm2eJiPvnseW3tTpC2bx17ux7JdVvc0cO9VPQxmAuPGzYcniJo6c5uj1IU09g3nyJcDA86wrvLIpl68SiKNrh4vVVYJ+usEOTdi2o07XbA5NmnRUm8yWbBr0Z5qYqypBzkytuuf1CjwxMeZkoepBTfyku1Pc7T2RRB1MXQFhIItgoqpoUrXXUEQ5dCqSzk+xEIqUVOl5AgSEb2SmOwEhqGqghCBUeRozkZToDNh4ANlxyNd6fasqgCCupAa5LIoQbVRNTE4XQy6R+fLHvYJlWNwPOpjOX5NzDieYLIQ5DrFTJWwoTFR8HFKQaRKU4PKK0FQMq5rCiVHcHC0UHNwNzUlKJMvOizrjJOMGOwcyFIX1lk7pwHHFxwZL7DlyCTj+TIT+TJr5jTy8esXMJYr8/i2AUK6yvMHJ1jRlZTVTzOIc7YsNTk5yT333EM8HieZTHL//feTz+fPuM/111+PoijTfj7+8Y9P26avr4/bb7+daDRKa2srn/3sZ3Fd9zRHlEgkM4VqrsPyWYlpv6fekNri4UDsKAq3Lmvjw9fM5Su/v4IlHcGN70PrerhrTTeXdcaxPZ/GuhCGoZAI67TUhzB0lYGUxVCmGHhSVVyjAUxDxdQDc82iPV2RpEsue4ZzTOZt6sM6daFgmSbwmtKpDxu4lejJKRokA9Ofd/3AsNPUTt7a9wVCTO+0bGjqlAZ3Ss10UgEK5aDDsaHBovZ6rl/cQjJiAEE0yhXHq8O8SnQnpKkIIciVPUZzZYYyZcquoCFqMqshiusLoiENs3IHcTyB7QVi51RFTgIoOl7QBHDKOVXtFhxPkLYcdBViIQ1DDcrsS3bw2a4BK7uSxEJazQEegvwYTVGwyh7t8TC3LGuvzL+O4wtePprCKrtoqsJwphQkjovgOlk+K8Gf334Z966fwwMb5k2zV5hKdTm02n5AcmlwziI399xzD0NDQzz55JM4jsNHPvIRHnjgAX70ox+dcb+PfexjfPnLX649jkajtX97nsftt99Oe3s7L7zwAkNDQ/zRH/0RhmHwN3/zN+fqVCQSySXE1t4Uz+wf4/0rO2umht9/9jC7BjPMba5DCIHn+yzrTHBtxZepqyHCI5t6Gc/bJCNBozxdU+iMh8mWXExdpSlmUrRdjk4WAehMhCiUPbIVXyNE0BXH1DVsL0hOLTo+uuLj+SoqCj7itOJmapQIEfS1KTsn9tkJBEHwfe64jCi7fi3xV6/YNgxmSoHY8MEFbM/j5aOTmLqGVT65OV6VTKmS6OzXhgIEUZKiHURzPF8Q0hUU9XjN9okRqBOxyh6apmBqKmFDIV92CesqtidqJfaqAM/3MbTAmHQoXWQkb6PpCnOboxweLxDSFWw3iJxdNitO2nLYOZBh52CG9kSYVd1JZjVE2FyJ1oQNLbBcAOJhnSUd0xu/vV6CsCz9vjQ5J+Jmz549PPHEE7z00kusWbMGgO985zvcdtttfOMb36Czs/O0+0ajUdrb20/52q9//Wt2797NU089RVtbG6tWreKv//qv+dznPsdf/dVfYZrmKfeTSCTvHE4s1a32MnF9wRM7h0hGTC7vTjCeK7N3OFfL1emfLOIjWDMnMKUcTBeJR4xKTxiV3kmLSMV/QRCIGFPTyJddIqaGEIKGmEl3Y4RXetO18bgCXMcnHtYIGQrZKR2PDTWIuthekNmrAomwTtkLLALOlqoAiZkaNy5p4YVDE7XXqqJHAAXbrwmhE/1D60Ianu9TdASFE/62rkJbPERrfYidg9lgyU5TwXEwVTD0YAntxH0qp3V8HlyB43pEQyqt9SG6GiIcmyySLToUXb9SORVEpfK2y6L2OtJH02gKPHtwgnwpcP6OhTXqTI205bC4rY7DYwXGczb/8doQ9WEdlKC0fcWsBGvnNgIwkC6ypD3OnVfMmjbOMzXlG8mWSBcdNixslsnFlxjnZFnqxRdfJJlM1oQNwE033YSqqmzevPmM+z766KM0NzezfPlyPv/5z2NZ1rTjrlixgra2ttpzt9xyC9lsll27dp32mOVymWw2O+1HIpHMTKrfxKs3qqD6pZvORATHE3Qmw0QNjY37RvmXzb38P0/tJ6SrXL+khduWd3DrsnZ6GqOs7E4yWbBJWTZj+VLQjM/1Ks3/VIbSFinLJmRoqIpS8UqCw6MF/CmqoVr443qCyzrqg3wZgo69mqYQMoJya1+BkKGysidJ2NBOPK1KonGQnwJB4z1TU6Z9iJuaQl+qOM224MQMmKD3zcnz5noevjgeV1KAqKkS1hVcHwZTJfomg341MVPD8XzKHggUHE+c1MtZVxUu66ynp2G6YPCBQtlnNFtm33COnuYonvCn7AeJiEHfeIFNh1OAT8jQ8D2fZNSguc5kaXs9maLD9v4ML/em+aP1Pfze8naunNOAqascHgvMVm9c0sr/vGUJyzoTlJyg8eDW3tS0JaZqZKbanXgq1ShgMmrKfJxLjHMSuRkeHqa1dfr6pa7rNDY2Mjw8fNr9PvShD9HT00NnZyfbt2/nc5/7HPv27eMnP/lJ7bhThQ1Qe3ym4371q1/lS1/60ps9HYlEchHzeu3wq2KnuzFKS32IO1bNYiJfpnfSoi6k81p/BlNTeWDDPFb3NPDnP93BtmNpbr6sjcaYyWCqiKoG+Shlx2f17DqEyNMQCww+hzMlth/L4APDmRI+QTRGV4Nk35Cuki8HpdEvHk5haMG3StvxQQXHdWs5JLbwOTCcI1RpcmOoCgIRGE16QT8YQxNETRXf9+lMhhlMl2rVSZ6A0RNyQ3T1ZDFTXUYLKqqC50qVpS5dVSp/T+B4UxrpqUFHZMcLvL1iFVGGAvGKl1OoYh/hiSCfZyBVxD6h67MK6FoQ1XF8we7BHO4UZeR6QRWWqqr4QhDVdQplj1Klz89V81pY2hGnd8LCLzogBMs6E/zPW5bUliCf2T+Gpio1N+9q1CVddE5aYjpTUz7ZsO/S5Q2Jm4cffpivfe1rZ9xmz549b3owDzzwQO3fK1asoKOjgxtvvJFDhw4xf/78N33cz3/+83z605+uPc5ms3R3d7/p40kkkouHs82JaKkPsXp2Ay31IY5NWtSHDTYsagnqsBWl1o4/bTk015k0xswg8VYJjCcVJRAtY/nAMylm6mSLVZPKSkSkUrGkA80xk6LjU3Cm57c4XiAq/Er2raEpqBW14fiBzUGdqRHSVRIRHccT5EvHj2HZ1UUmODpRnJbDky25ZEvTCywWt9dzdLwQGIJOQQD1YZ1M0Z0W3QnrCq3xML0TFp4fdAvWK9lCsZBOrhRYSDg+dCbDTOZtUgWHaEiv+V1BEPnJlQJ39upf1gBVU+hqCDO7McbBsTzD6VJQvu4fL41PWw4N0UA89qcs7JJPVA0qtWIhnWsWNLNnKEvJ9biiu4HVPQ3sHMjw+LYBrl3QzLzmWDAPQjCSLdUE7s6BDIfH8nQ3Hs/lPFPOjWzYd+nyhsTNZz7zGT784Q+fcZt58+bR3t7O6OjotOdd12VycvK0+TSnYt26dQAcPHiQ+fPn097ezpYtW6ZtMzIS9JU403FDoRChUOis/65EIrl0mPrt+nRRnOo3+qqP0NR92uLhwHF8zwjZksuitjpe68/w/MEJ2uIh6sM6nckw3Q1Rtvdn6J+0cDxBwXZZ1FZP0faCHi1+0GNGUxXqQzq5sodlB71odKXS6ZjgJq5UGtNFTJ3Zlb49+YoosT1BznZxPBjN2bTWmyzpiLN7MDutKzIEuqw+opM9QaBUUYDOeJgj44Va35qUFfS60YD5LTH2DOWIGhq2H0Rk8raPnwkScW3XIxZSyRV9XCGwHZ/uhjBDmcDtOxk1gjJ0gqhOzNAocrwcXVFVnCmZxqqm4PmCkaxNPGySsdygS/GUwcdNnZLnYTkefZNBg8BZSY1lHfWkK7YRO/rT9E4EKQuzV0Zpi4f521/u4Ve7hjmWsrhuYQt7h7PsHwne72rfmmOTFv2pYqVsPyQNMGcwb0jctLS00NLS8rrbrV+/nnQ6zSuvvMK73vUuADZu3Ijv+zXBcjZs27YNgI6Ojtpxv/KVrzA6Olpb9nryySeJx+Ncdtllb+RUJBLJDGHqt+tf7hg6ZRSnmlS8oLWudjM78fXHXu4H4K4ru1kxKwGKQtay2Tecw/UETXUhVnQl2HJkEt91KdoesZBGV0MEXVPonbCwXQ9VUUhZdlD2XTGJ1PXA4yhdsHGEIGoE1VOJsIamKRRsN3C41oIo0dRmeeN5m2zRqZWRT4uyGCrvu7yDX+0aIW05uH5QRaQCmgZRQ+Ol3hSW7aMp0FxvUnI8Sq5P1NToTxUpVUqrl7bX0zdpMWk52J5XaSQIaeu4cEoVHXJlF11T0BSFon38Nd8PuiAHTugqqlIxAVVULCcwGI3oCpYjsGyP3YMZPAERUwMFCmUPXYGOhgimrrJ7KEfZ8bh+cQtr5zTy6OY+RrMlMkWHNXMauWZ+EwfH8/x693AQiamEfSbyQY+j8XwZTa2oyApTRe3UiF/1sRQ6M4dzknOzdOlSbr31Vj72sY/xve99D8dxeOihh/jgBz9Yq5QaGBjgxhtv5J//+Z9Zu3Ythw4d4kc/+hG33XYbTU1NbN++nT/90z9lw4YNXH755QDcfPPNXHbZZdx77718/etfZ3h4mC984Qs8+OCDMjIjkUhOmyMxtQHgqW5i1Zb7KAo3LGmlLR5m50CGf3zuMIva67Fdj9/uHaUhZhAxNDqTYbJFl7Cusa0vjamrNMdCHJ20wPNpiho0xAwmCw4py8H1fGzHA4JKoETEYCRbppD2GMmWcf1AuDTVmUE+TqXBnVeJapSmNMabKnBc3+eZA+PkbSdYNlMBJehuXB82UBWFbDFolOcJODJWwK0s/+TKHvlyYP/QEDUYzZVR1UBceb6o+UUZlaons9J52PYEmi+oj+goBH2A6kLBrURVgrwYy3axHB+v0rRQIWjKhxJEuIKxQyJqsKSjjoMjBRzHo6HOZCxX5l09DZQcD9v1WTunkRuWtrFzMMvLRydpjQeVbFFTY99QjsmKyeX9754HBP10FrTUBR5UBTsQqhWmitrTCR25DDUzOGd9bh599FEeeughbrzxRlRV5QMf+ADf/va3a687jsO+fftq1VCmafLUU0/xrW99i0KhQHd3Nx/4wAf4whe+UNtH0zR+8Ytf8IlPfIL169cTi8W47777pvXFkUgk71xOlyNRff50kZ2pLfdHsiX+4elDPPZyHwOpEo0xk3hEJ2XZWI5HMmLw/pWziEcMnt43GuSV6AolO2hSpyqwqL2O6xe3sWcoy693DWM5PpmiS0hXaYzpJCIGY7lgaachZjKWsxHAaCYQGG3xEOqUZN8TIzYxU6OnKRpUclVEia8E1UvVLScLDnUhlamtcio5zMcb/img69CeCDOULuL5QULxVCNMUWnyp6sqId2n7IpKwrBP2fPRVAXLdmvHtj2BpgaO5QoQMQPLhHzJxdRUmmIG2aJDLKzz3sta2XIkxVjeJmqq/I+resgWXZrrQmRLDlFTZ0VXEoDlnXGWz0rUHOC7G6M0x0z6UkWuXdDMscoS1guHJwK/sdkN/Py1wZo9x6muiaqw6W6M8v6VnTJxeAahCHEqL9uZTTabJZFIkMlkiMfjr7+DRCK5pKnm4ky1bDjV8sNItsS3f3OA/9wxRK7ooGsqSzrqMVSFiKGxsjtJfdggHg6+Fz66uY+jExaW7SJEEAEJG2rFJ0pw15puDo7leWb/GK4XeB8pQMjQsD2fupDOmp4kv9k7Nj3vJKwRNTWGs4ElQsRUsWwfs2q66UF7IkSm5JIrusGSj6nheoKyF1QneSKIumhqtRIqQK8k75qGStn1CekqyzrjHBrNkyu7wHFxo1f68BSdE8qtCARXXVhjfksdmaJN70TgIu4JcNzjthHdDYEtxlO7R5jfWkddSOfHW/qYLDgkIjpl16fk+BiawoZFLXzl91cwlivzraf2Y9ke914ViM6fvzbIhoXNlbU+wQ1L22rvYVW0rupOMp4vc8eqWWeVU1Pdr9rwUXLxc7b3b+ktJZFIZjzVZYfT3cSq4idt2bx8dBLb8VDVYNnktuUdzK44j7fFw7Ub4oZFLdxzVQ+/2jnES0cn0VWVuS1RTE1l33CevO1ycCzPFV1JSo7H9mMZMkUHQ1O4ck6Q/DySLXNkwkJTFUwlqMhyPB/L9jA1jfZ4iELZRVMCq4F4WGcsb1P2PYbSJdoTYRJhnVzRIVvyMHS1Vj7ueUGEpi5koKpBCbcQIjC3NFQaYgZD6TJFx2f3UJbW+jC25+P6oGsCxw3+ZnXMhhYsjwkfVBUUASU7sGdY1lHPRN5hZVecw+MWacuuVWelLYf+VBFPCF7pTVGwPTLFIKk5UwyiXrMbwzTEgiq2jXtGSEZNPF8wtylK2rJZ0ZXk/Ss7SRcdHnvpGADJqHnKyMtUIfN6gkWWes9cpLiRSCQznhNvYlOrqoBaJdXNy9pZM6eRbMlFAd6zuIU7r5g17YbZ3RilqyHCilmJ2nJH74RF2nLYMZBFVaDsCAxNQQh4YtcI/SkLy/YIGxoLW+tYPz+wffj17hH2DWUZ1jVWzKpnsuCQLTmk8jYRQ8UwNIq2R9ENzDRHc2Ucz6epzgxc0fM2ecejMWZS8sroikLRCaIxnu8TNjS6GqM4nk//ZBHX97G9IJ/Gdv3AnNMJknDyJRdFUbDdwJHbBzxPoGtqUOLtg6kqLGyvo6kuxI6BDPmSw3C6RL7kYNk+B0cL5MouIV2jXMm3aYwZXFsp3T4wmiOka0QNHcvx0FWFrsYID71nAU/vG2PzkUm2HJnk/nfP46413aSLDv/x2iC/2TvKvVf10DdRoC0eImxotfyptxJ5kaXeMxcpbiQSyYznVNVR1dwboFZJdcOSVm5Y0hqIlhOWPmrRnaJTKydePisRGC4KwdP7x9jal8ayXUp4GJrK6tkNxMM6+0Zy7BrM0hQz2TOU49u/OcDCtjpWdSfZO5zD9X3iERNdVRlMl3D8wGl7fn0I3/MZyvoUHb/i6aTywSuDPl0/2txHuuhgOzoxUydfciql1YKoqdHTGGU0V65Uduk0RA32j+SxfUG+7AUO3xp0JiOkLDsQOhVMTUHTVSKaQtnxay7gRyaKLGirDyqhNBXH9ytu50E5l6Gp5MpOrY8OAn69a5hV3Um2HctQcny6GyJYtkfZ8QjrGrsGs+wfzeP6PvtH87Wlw417RlAV2HYsDcBEPugY3RA1pznCny7y8noNHiUzFyluJBLJO45T3RSn3gDvXjv7pH027hnhsZf7uXVZ27Tk02oy8g1L2/j+s4fZcmSSsutx09K2mo/R4fECdSGdK7qTbB/IYNkeuwYypC2HkuvREA0aBm45MonteUEJM0FESEEQD+tEDJV00WX9/Cbqwwb/+5nDpIsOCtCRDFF2Bfmyg6pCfdigMWayqL2eFw5OYLse6+Y2Eja0Wu+XkuMTMzVWdMdZ3BZnOFMiU7TZM5QjV3SZ0xRlXmsdJcdDCDg6VmAoW2L5rHqWtMfZP5KnM6HQO2nV+uG8e2EzW3tTZIsOWiVPyXJ8Xu5NsaangTVzkuzoz3LtwmYWt8fJWjbxqMmKWQma60LsHcqypCNeEzaPvdzPNQuaWNoR59oFzQymi2RLLvGwflZLSbIK6p2LFDcSieQdx4mRnNU9DWzcO1qL1gAnf+NXFBzPp2/S4s7VXUCQkFrdpi0eJM6unt0wrTngt5/az0uVmzuKQtjQ6GmKsKQ9Tsn1GMwUMTSVI+OFYGkIQTxiEAtppC23YnngEjV1Vs1O8nvL2/nR5j5KjouhQkciQmcywosHJ/CEIGJomJrCmp4GrpzbyIuHJnD9IOH4/mvnUXI9Nh2cIFNyKVSaDL54aILxvM38lhiqqiCUwAxzJFNmPF9GVxVWz2ng6LjFHau6WDErQe9EgZCuYuoqE/ky6+Y10dMU49kDE0RDGnWmTkPMZO3cRhzXZzBTYlYiQsZyWdwe54YlrdPm+NikxbZjaeJhnY17R9lyZBLH85nVED1JbE6Noj2zfww4tXiROTXvXKS4kUgk73i29qamJaoCJ33jv2FJK4fH8hwczdeSj6uRnNlNsdpNemqS6+PbBni5N0XRDvJYEIJE2OCuNV3cva6HnQMZfrS5l56mGLmSw4HRPL4vmNdaR8ZyiEcUNEVnIF3CF4JUweYX24fYPZjF8YJ2fZmiw6HRPL4I8mIsO4i0WLbHS0dTlRwYlVnJCMcmLa5b1MqewVylMirwy4qYGtmiw77hLA2xEFbZo7sxyoKWOp7YNYzwBUva46ydEzhs7+hP81p/hrFciYaoyQ1L2/jou+exce8o8bCOqgRLSJmSwzULmvnE9QtOqlarRmaqc1HNZcqWXJ7YOYzj+ayf38QNS1pPWl6qRmQ2LGw+Ywm3zKl55yLFjUQiecezuqeBu67sBiFOWqqqUo3MVG+yG/cGFjN9qSLb+jO17avJyQta6zg4mmdNTwOW4/Faf4bZTbGaQSfA8lkJ/ua/B01KR7IlUgWb1/oz3Li4lVzZZduxNO+9rI1tx9KkCjYNMZPrFrWQrThi255PoSzI2R6mpmJoIBCYmsruoSxzm2Nc1hFnWWecV3on+eELvdy2oo3ZjRFGcyXChoYQAlPXqAvrRAyN/3Z5B2XX59oFzTyyqZfxfJnuhijXVHrJVEuuG6MG+aJTMyNti4eJGCpFx8NQoashwoK2utprVZFRLdGueWBVOghXrRHmNcdq70U156laoZa2bJJR87TVURJJFSluJBLJO562ePikpY8zNQOEIJKTjATmjjsGMqQtm417RmrC5o5Vs6ZFKY6OW8TD+rTjnhiR+JObFtUef//ZwxwYzbO0I87Nl7Xzv585TKbocvNlGr+/uov+dJGi7dGZCDOeL9ORiHDtwmbqwwYAe4eybD4yCUBYV9l2LEPR8dlyJFU716LjkYyajGbLtMVDXDWviVnJCDcsbWNrbwrLduluiBLSVR7fNsAdq2axYVELO/rTeEKwsL0ezxe15OpfbB9iOFOiuT5ELKxx3cKWkxroTY263LWmqzYPJ/p9TeVEV2/Zl0byekhxI5FIJG+CqUKnGtHYsKiFu9Z0127Q1Rv7DUvban1ZpgqaExNepx7zjlWzsMpBt97uxugpI0sIQWcywiObeklbNqmCHYgbUTGiAopll0NjBboaIgxlysxpirLtWJrbLu+sibNvPbWf146l2TWY5el9Y2SLDneu7iJt2WRLLn0TBQ5WqpiSEYOjEwWips69V/Vg2V5tTNWGe90NEbYdy0zzdapSK6XvStbmLRkx+L0VHWcUfr+3ooORbIlkxJA5NJLXRYobiUTyjuetlgyfKepw4rGnWkCcLuF1JFuqRUOeOTDO7MbjSbVVB3MUhRuWtrFxzwjDmRLJqBG4mR+aCMqygcu7E0zmbTJFh/++uovZjVGipsZzB8drfXpGsiWWtNVTdgNX8/0jNntHcmztTYGisO1YmlXdSaIhnaipMZgp0RYPc2Akz2CmNC3idd3iVq5b3MrOgQy6pk7zdaoy1Zn7TAm/p6p0kjk0krNFihuJRPKO562WDJ/ppnvisU8UQqfar7Z0s6jlpITZrb0p/mVzH4Xy8ZwVQ1N598IW4mGdbMmtNMzLE9E1LNtjTU9DrRnhL3cM1cRFS32I7z97mBcPTWBoKrcub2dhaz3NMZPHXj5GIhKUlCME/akizx0cpz9VpCFqYGhqECE6BVMFzInLUmdz/tXX00WHtGUzki3J3BrJG0KKG4lE8o7nXJYMn3jss4k+vF7+ycquBK/1Z2pJt9WlmhMbDvZNWhydCATGWK7M9589zLULmtmwsJl00eFnrw7w4qEJFrbWsXZe0zRH9OcOjrPlyCSNMZPlsxK8f2VnLepz7YJm3r2w5bTzNdWFfWq5/Nmef3W7ZMQIlq2ipozYSN4QUtxIJJJ3POdyuePNHPtM+7TFw3zypkW1pSk4fbTpmgXNNV+s7z97+PhyWMUxu7ESgVk7t3Ha8tKxSYuUFTTiW9mVqImeH2/p48VDE1hllz+5adFpoynV8f94Sx+PvXSMu67sPmVjxNdD9qmRvFmkuJFIJJJLjLZ4mGTUnJaMe6pE5alVRXesmlX73VIfApjWd6bKSLZEuujwvpWdxMP6NAuKrGUzmi3xcq/P1t7USX/3JLFTXbY6zfLV2ZynjNhI3gxS3EgkEslFwBtNaj4xqjE1t+dUEY/lU4w+4Xi051Sl2s/sHztluXU8atIaD7OyK3HKv1vdvnouK7qStSoxieR8IsWNRCKRXAS80aTmU1lIVH+/mYjHzoEMj28b4NoFp+/6W+3tM1WAnUpIvVW3bonkrSLFjUQikVwEnKv8krONCD2+baAmrv789stOuc2pRNOpnpO5MpILjRQ3EolEchHwVvNLThf5OduI0NScnNNxtkJJ5spILjTqhR6ARCKRSN461c6/3Y3R2nPV5OANC5tfN4rSUh9i9eyGWrLxqagKpa29qbdt3BLJuUCKG4lEIpkBTG2cV6WaHJyMmqfsnPzLHUOMZEu1bV9PuKzuaTijC7dEcrEgl6UkEolkBnCqPJc3Ym9wNnkycrlJcqmgCPEmGxBcwmSzWRKJBJlMhng8fqGHI5FIJOedt+qnJZFcCM72/i0jNxKJRPIOREZhJDMZmXMjkUgkEolkRiHFjUQikUgkkhmFFDcSiUQikUhmFFLcSCQSiUQimVFIcSORSCQSiWRGIcWNRCKRSCSSGYUUNxKJRCKRSGYUUtxIJBKJRCKZUUhxI5FIJBKJZEYhxY1EIpFIJJIZhRQ3EolEIpFIZhRS3EgkEolEIplRSHEjkUgkEolkRvGOdAUXQgCBdbpEIpFIJJJLg+p9u3ofPx3vSHGTy+UA6O7uvsAjkUgkEolE8kbJ5XIkEonTvq6I15M/MxDf9xkcHKS+vh5FUS70cF6XbDZLd3c3x44dIx6PX+jhXHDkfJyMnJPpyPmYjpyPk5FzMp1LZT6EEORyOTo7O1HV02fWvCMjN6qq0tXVdaGH8YaJx+MX9UV3vpHzcTJyTqYj52M6cj5ORs7JdC6F+ThTxKaKTCiWSCQSiUQyo5DiRiKRSCQSyYxCiptLgFAoxBe/+EVCodCFHspFgZyPk5FzMh05H9OR83Eyck6mM9Pm4x2ZUCyRSCQSiWTmIiM3EolEIpFIZhRS3EgkEolEIplRSHEjkUgkEolkRiHFjUQikUgkkhmFFDcXKV/5yle4+uqriUajJJPJs9pHCMFf/uVf0tHRQSQS4aabbuLAgQPndqDnicnJSe655x7i8TjJZJL777+ffD5/xn2uv/56FEWZ9vPxj3/8PI347ee73/0uc+bMIRwOs27dOrZs2XLG7f/93/+dJUuWEA6HWbFiBf/1X/91nkZ6fngj8/HDH/7wpGshHA6fx9GeW5555hne97730dnZiaIo/OxnP3vdfX73u9+xevVqQqEQCxYs4Ic//OE5H+f54o3Ox+9+97uTrg9FURgeHj4/Az7HfPWrX+XKK6+kvr6e1tZW7rzzTvbt2/e6+13KnyFS3Fyk2LbNH/zBH/CJT3zirPf5+te/zre//W2+973vsXnzZmKxGLfccgulUukcjvT8cM8997Br1y6efPJJfvGLX/DMM8/wwAMPvO5+H/vYxxgaGqr9fP3rXz8Po337+bd/+zc+/elP88UvfpGtW7eycuVKbrnlFkZHR0+5/QsvvMDdd9/N/fffz6uvvsqdd97JnXfeyc6dO8/zyM8Nb3Q+IOi8OvVa6O3tPY8jPrcUCgVWrlzJd7/73bPa/siRI9x+++285z3vYdu2bXzqU5/iox/9KL/61a/O8UjPD290Pqrs27dv2jXS2tp6jkZ4fnn66ad58MEH2bRpE08++SSO43DzzTdTKBROu88l/xkiJBc1P/jBD0QikXjd7XzfF+3t7eLv/u7vas+l02kRCoXEj3/843M4wnPP7t27BSBeeuml2nO//OUvhaIoYmBg4LT7XXfddeKTn/zkeRjhuWft2rXiwQcfrD32PE90dnaKr371q6fc/q677hK33377tOfWrVsn/viP//icjvN88Ubn42z/H80EAPHTn/70jNv82Z/9mVi2bNm05/7wD/9Q3HLLLedwZBeGs5mP3/72twIQqVTqvIzpQjM6OioA8fTTT592m0v9M0RGbmYIR44cYXh4mJtuuqn2XCKRYN26dbz44osXcGRvnRdffJFkMsmaNWtqz910002oqsrmzZvPuO+jjz5Kc3Mzy5cv5/Of/zyWZZ3r4b7t2LbNK6+8Mu29VVWVm2666bTv7Ysvvjhte4Bbbrnlkr8W4M3NB0A+n6enp4fu7m7uuOMOdu3adT6Ge1Eyk6+Pt8KqVavo6Ojgve99L88///yFHs45I5PJANDY2HjabS71a+QdaZw5E6muDbe1tU17vq2t7ZJfNx4eHj4pPKzrOo2NjWc8tw996EP09PTQ2dnJ9u3b+dznPse+ffv4yU9+cq6H/LYyPj6O53mnfG/37t17yn2Gh4dn5LUAb24+Fi9ezD/90z9x+eWXk8lk+MY3vsHVV1/Nrl27LkkT3bfK6a6PbDZLsVgkEolcoJFdGDo6Ovje977HmjVrKJfLfP/73+f6669n8+bNrF69+kIP723F930+9alPcc0117B8+fLTbnepf4ZIcXMeefjhh/na1752xm327NnDkiVLztOILixnOx9vlqk5OStWrKCjo4Mbb7yRQ4cOMX/+/Dd9XMmlx/r161m/fn3t8dVXX83SpUv5h3/4B/76r//6Ao5McjGwePFiFi9eXHt89dVXc+jQIb75zW/yyCOPXMCRvf08+OCD7Ny5k+eee+5CD+WcIsXNeeQzn/kMH/7wh8+4zbx5897Usdvb2wEYGRmho6Oj9vzIyAirVq16U8c815ztfLS3t5+UKOq6LpOTk7XzPhvWrVsHwMGDBy8pcdPc3IymaYyMjEx7fmRk5LTn397e/oa2v5R4M/NxIoZhcMUVV3Dw4MFzMcSLntNdH/F4/B0XtTkda9eunXEC4KGHHqoVZLxexPJS/wyROTfnkZaWFpYsWXLGH9M039Sx586dS3t7O7/5zW9qz2WzWTZv3jztG+vFxNnOx/r160mn07zyyiu1fTdu3Ijv+zXBcjZs27YNYJr4uxQwTZN3vetd095b3/f5zW9+c9r3dv369dO2B3jyyScv2mvhjfBm5uNEPM9jx44dl9y18HYxk6+Pt4tt27bNmOtDCMFDDz3ET3/6UzZu3MjcuXNfd59L/hq50BnNklPT29srXn31VfGlL31J1NXViVdffVW8+uqrIpfL1bZZvHix+MlPflJ7/Ld/+7cimUyKxx9/XGzfvl3ccccdYu7cuaJYLF6IU3hbufXWW8UVV1whNm/eLJ577jmxcOFCcffdd9de7+/vF4sXLxabN28WQghx8OBB8eUvf1m8/PLL4siRI+Lxxx8X8+bNExs2bLhQp/CW+Nd//VcRCoXED3/4Q7F7927xwAMPiGQyKYaHh4UQQtx7773i4Ycfrm3//PPPC13XxTe+8Q2xZ88e8cUvflEYhiF27NhxoU7hbeWNzseXvvQl8atf/UocOnRIvPLKK+KDH/ygCIfDYteuXRfqFN5Wcrlc7TMCEH//938vXn31VdHb2yuEEOLhhx8W9957b237w4cPi2g0Kj772c+KPXv2iO9+97tC0zTxxBNPXKhTeFt5o/PxzW9+U/zsZz8TBw4cEDt27BCf/OQnhaqq4qmnnrpQp/C28olPfEIkEgnxu9/9TgwNDdV+LMuqbTPTPkOkuLlIue+++wRw0s9vf/vb2jaA+MEPflB77Pu++Iu/+AvR1tYmQqGQuPHGG8W+ffvO/+DPARMTE+Luu+8WdXV1Ih6Pi4985CPThN6RI0emzU9fX5/YsGGDaGxsFKFQSCxYsEB89rOfFZlM5gKdwVvnO9/5jpg9e7YwTVOsXbtWbNq0qfbaddddJ+67775p2z/22GNi0aJFwjRNsWzZMvGf//mf53nE55Y3Mh+f+tSnatu2tbWJ2267TWzduvUCjPrcUC1lPvGnOgf33XefuO66607aZ9WqVcI0TTFv3rxpnyWXOm90Pr72ta+J+fPni3A4LBobG8X1118vNm7ceGEGfw441VyceP+YaZ8hihBCnLcwkUQikUgkEsk5RubcSCQSiUQimVFIcSORSCQSiWRGIcWNRCKRSCSSGYUUNxKJRCKRSGYUUtxIJBKJRCKZUUhxI5FIJBKJZEYhxY1EIpFIJJIZhRQ3EolEIpFIZhRS3EgkEolEIplRSHEjkUgkEolkRiHFjUQikUgkkhmFFDcSiUQikUhmFP8/wzPShMLDhx0AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "data = jnp.array(make_moons(n_samples, noise=0.05)[0])\n", + "\n", + "plt.scatter(data[:, 0], data[:, 1], s=0.5, alpha=0.5, label=\"data\")\n", + "plt.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "d78c3725", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Training NF: 0%| | 0/5000 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sampled_data = trained_model.sample(key, 10000, dt=0.1)\n", + "plt.scatter(\n", + " sampled_data[:, 0], sampled_data[:, 1], s=0.5, alpha=0.5, label=\"sampled data\"\n", + ")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "526d1097", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiEAAAHHCAYAAABp4oiFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAACllUlEQVR4nO2deZhUxbnG39PrbMwMAwMDiOwCbqAYcdAIKhFQo6iXRGMU1GBUMChGL3hVxESJioIaFRMVXKMxrlcTI4LoVXBDiBugEJB1kG1mmGGmt1P3jwndVV9N1+kz3bN/v+fph66uc+rUWbqpqe/93rKEEAIMwzAMwzBNjKe5O8AwDMMwTPuEByEMwzAMwzQLPAhhGIZhGKZZ4EEIwzAMwzDNAg9CGIZhGIZpFngQwjAMwzBMs8CDEIZhGIZhmgUehDAMwzAM0yzwIIRhGIZhmGaBByEM04xs2rQJlmVh7ty5GWvztttug2VZ2L17t+O2vXv3xqRJk+LlZcuWwbIsLFu2LP7ZpEmT0Lt374z1ry1gWRZuu+225u4Gw7R6eBDCtBgWLVoEy7Lw2WefNXdX4v+RH3zl5OTg8MMPx80334zKysrm7l6zcuDAAdx2223KQCUTHLz/B19ZWVno3r07xowZgwceeAD79+/P6PEyyfLly3HbbbehvLy8ubvCMK0KX3N3gGFaMo888gjy8vJQVVWFt99+G3fccQeWLl2KDz/8EJZlNXf30mbdunXweMx/i/z5z3+Gbdvx8oEDBzB79mwAwKhRozLep9tvvx19+vRBJBJBWVkZli1bhmuvvRb33XcfXn/9dRx99NEZP6Zbampq4PMlfj6XL1+O2bNnY9KkSSgsLGy+jjFMK4MHIQxj4L/+67/QuXNnAMCVV16J888/Hy+//DI++ugjlJaW1rvPgQMHkJOT05TdbDDBYNBxG7/f3wQ9STBu3Dgcd9xx8fLMmTOxdOlSnHXWWTj77LOxZs0aZGdnN2mfKFlZWc16fIZpK3A4hml1rFq1CuPGjUN+fj7y8vJw2mmn4aOPPtK2++KLLzBy5EhkZ2fjkEMOwe9//3ssXLgQlmVh06ZNDTr2qaeeCgDYuHEjgLqZgCOPPBIrV67EySefjJycHNx0000AgB9++AGXX345unbtiqysLAwZMgRPPvlk0rbnzZuHXr16ITs7GyNHjsRXX32lnc+kSZPQt29fZGVloaSkBJdddhn27NlTb3u7d+/Gz372M+Tn56NTp06YNm0aamtrlW2oJqQ+ZE3Ipk2bUFxcDACYPXt2PHRy2223xa/tqlWrtDbuvPNOeL1ebNu2zXisZJx66qm45ZZb8P333+OZZ55R6tauXYv/+q//QlFREbKysnDcccfh9ddfV7Y5GOr58MMPMX36dBQXFyM3Nxfnnnsudu3apWz72WefYcyYMejcuTOys7PRp08fXHbZZco2sibktttuww033AAA6NOnT/yabNq0CSNHjsSQIUPqPaeBAwdizJgxDboeDNNW4JkQplXx9ddf48c//jHy8/Nx4403wu/349FHH8WoUaPw3nvvYfjw4QCAbdu24ZRTToFlWZg5cyZyc3Px2GOPpfSXv4kNGzYAADp16hT/bM+ePRg3bhwuuOAC/PKXv0TXrl1RU1ODUaNGYf369Zg6dSr69OmDF198EZMmTUJ5eTmmTZumtPvUU09h//79mDJlCmpra3H//ffj1FNPxZdffomuXbsCABYvXox///vfuPTSS1FSUoKvv/4af/rTn/D111/jo48+0sJDP/vZz9C7d2/MmTMHH330ER544AHs27cPTz31VIPPv7i4GI888giuuuoqnHvuuTjvvPMAAEcffTT69OmDKVOm4Nlnn8Uxxxyj7Pfss89i1KhR6NGjR4OPffHFF+Omm27C22+/jcmTJwOoex5OPPFE9OjRAzNmzEBubi7++te/Yvz48XjppZdw7rnnKm1cc8016NixI2bNmoVNmzZh/vz5mDp1Kl544QUAdQPH008/HcXFxZgxYwYKCwuxadMmvPzyy0n7dd555+Hbb7/FX/7yF8ybNy8+c1ZcXIyLL74YkydPxldffYUjjzwyvs+nn36Kb7/9FjfffHODrwfDtAkEw7QQFi5cKACITz/9NOk248ePF4FAQGzYsCH+2fbt20WHDh3EySefHP/smmuuEZZliVWrVsU/27NnjygqKhIAxMaNG419mTVrlgAg1q1bJ3bt2iU2btwoHn30UREMBkXXrl1FdXW1EEKIkSNHCgBiwYIFyv7z588XAMQzzzwT/ywcDovS0lKRl5cnKisrhRBCbNy4UQAQ2dnZYuvWrfFtP/74YwFAXHfddfHPDhw4oPXzL3/5iwAg3n//fa3vZ599trLt1VdfLQCIf/3rX/HPevXqJSZOnBgvv/vuuwKAePfdd+OfTZw4UfTq1Ste3rVrlwAgZs2apfXnwgsvFN27dxexWCz+2eeffy4AiIULF2rby6Ry/wsKCsQxxxwTL5922mniqKOOErW1tfHPbNsWI0aMEAMGDNDaHj16tLBtO/75ddddJ7xerygvLxdCCPHKK6849kEIoZ3/PffcU+9zVV5eLrKyssR///d/K5//5je/Ebm5uaKqqsp4HIZp63A4hmk1xGIxvP322xg/fjz69u0b/7xbt274xS9+gQ8++CCeufLWW2+htLQUQ4cOjW9XVFSEiy66yNUxBw4ciOLiYvTp0we//vWv0b9/f7z55puK5iMYDOLSSy9V9vv73/+OkpISXHjhhfHP/H4/fvOb36Cqqgrvvfeesv348eOVWYLjjz8ew4cPx9///vf4Z7IOora2Frt378YJJ5wAAPj888+1vk+ZMkUpX3PNNfG+NRaXXHIJtm/fjnfffTf+2bPPPovs7Gycf/75abefl5cXz5LZu3cvli5dip/97GfYv38/du/ejd27d2PPnj0YM2YMvvvuOy38c8UVVygzRj/+8Y8Ri8Xw/fffA0BcVPrGG28gEomk3d+CggKcc845+Mtf/gIhBIC65/iFF17A+PHjkZubm/YxGKY1w4MQptWwa9cuHDhwAAMHDtTqBg8eDNu2sWXLFgDA999/j/79+2vb1feZiZdeegmLFy/GsmXLsH79enz11VcYNmyYsk2PHj0QCASUz77//nsMGDBAyzwZPHhwvF5mwIAB2rEPO+wwRbuyd+9eTJs2DV27dkV2dnZ8cAQAFRUV2v60zX79+sHj8TRYD5MKP/nJT9CtWzc8++yzAADbtvGXv/wF55xzDjp06JB2+1VVVfF21q9fDyEEbrnlFhQXFyuvWbNmAagLr8gceuihSrljx44AgH379gEARo4cifPPPx+zZ89G586dcc4552DhwoUIhUIN7vMll1yCzZs34//+7/8AAO+88w527tyJiy++uMFtMkxbgTUhDGPg5JNPjsf4k9FUmRo/+9nPsHz5ctxwww0YOnQo8vLyYNs2xo4dq6TQJqMpUoq9Xi9+8Ytf4M9//jMefvhhfPjhh9i+fTt++ctfpt321q1bUVFRER9IHjzn3/72t0kFnnTQ6fV6693u4CyFZVn429/+ho8++gj/+7//i3/+85+47LLLcO+9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RLLrXVlZiZqaGmRnZzdTz8x069YNCxYswHHHHYdQKITHHnsMo0aNwscff4xjjz22Wfpk2zauvfZanHjiiTjyyCOTbtcSnnGmjnYzEzJjxox6RVTyi/64bdu2DWPHjsWECRMwefLkVtNvN1xwwQU4++yzcdRRR2H8+PF444038Omnn2LZsmUtut+NRWP3+4orrsCYMWNw1FFH4aKLLsJTTz2FV155BRs2bMjgWbRPSktLcckll2Do0KEYOXIkXn75ZRQXF+PRRx9t7q61SQYOHIhf//rXGDZsGEaMGIEnnngCI0aMwLx585qtT1OmTMFXX32F559/vtn6wLij3cyEXH/99Y7rz/Tt2zf+fvv27TjllFMwYsQI/OlPfzLuV1JSgnA4jPLycmU2ZOfOnSgpKUmn2677nS59+/ZF586dsX79epx22mkNbqcx+33wmu7cuRPdunWLf75z504MHTq0QW0eJNV+l5SUaALJaDSKvXv3urrnw4cPB1A349avXz/X/XWic+fO8Hq9WqaW6dksKSlxtX1j0JB+U/x+P4455hisX7++MbqYMZJd7/z8/BY7C5KM448/Hh988EGzHHvq1KlxgbjTzFdLeMaZOtrNIKS4uBjFxcUpbbtt2zaccsopGDZsGBYuXAiPxzxhNGzYMPj9fixZsgTnn38+gDrF+ObNm1FaWtpk/c4EW7duxZ49e5T/3BtCY/a7T58+KCkpwZIlS+KDjsrKSnz88ceuM4Moqfa7tLQU5eXlWLlyJYYNGwYAWLp0KWzbjg8sUmH16tUAkPb1TkYgEMCwYcOwZMkSjB8/HkDdlPWSJUswderUevcpLS3FkiVLcO2118Y/W7x4cdrPshsa0m9KLBbDl19+iTPOOKMRe5o+paWlWnpoU1/vTLF69epGe5aTIYTANddcg1deeQXLli1Dnz59HPdpCc848x+aWxnb0ti6davo37+/OO2008TWrVvFjh074i95m4EDB4qPP/44/tmVV14pDj30ULF06VLx2WefidLSUlFaWtqkff/+++/FqlWrxOzZs0VeXp5YtWqVWLVqldi/f398m4EDB4qXX35ZCCHE/v37xW9/+1uxYsUKsXHjRvHOO++IY489VgwYMEDU1ta22H4LIcQf/vAHUVhYKF577TXxxRdfiHPOOUf06dNH1NTUNFm/x44dK4455hjx8ccfiw8++EAMGDBAXHjhhfF6+pysX79e3H777eKzzz4TGzduFK+99pro27evOPnkkxu1n88//7wIBoNi0aJF4ptvvhFXXHGFKCwsFGVlZUIIIS6++GIxY8aM+PYffvih8Pl8Yu7cuWLNmjVi1qxZwu/3iy+//LJR+5luv2fPni3++c9/ig0bNoiVK1eKCy64QGRlZYmvv/66Sfu9f//++DMMQNx3331i1apV4vvvvxdCCDFjxgxx8cUXx7f/97//LXJycsQNN9wg1qxZIx566CHh9XrFW2+91aL7PW/ePPHqq6+K7777Tnz55Zdi2rRpwuPxiHfeeadJ+33VVVeJgoICsWzZMuX3+sCBA/FtWuozzgjBgxDCwoULBYB6XwfZuHGjACDefffd+Gc1NTXi6quvFh07dhQ5OTni3HPPVQYuTcHEiRPr7bfcTwBi4cKFQgghDhw4IE4//XRRXFws/H6/6NWrl5g8eXL8R76l9luIujTdW265RXTt2lUEg0Fx2mmniXXr1jVpv/fs2SMuvPBCkZeXJ/Lz88Wll16qDJzoc7J582Zx8skni6KiIhEMBkX//v3FDTfcICoqKhq9rw8++KA49NBDRSAQEMcff7z46KOP4nUjR44UEydOVLb/61//Kg477DARCATEEUccId58881G72N9uOn3tddeG9+2a9eu4owzzhCff/55k/f5YOoqfR3s68SJE8XIkSO1fYYOHSoCgYDo27ev8qy31H7fddddol+/fiIrK0sUFRWJUaNGiaVLlzZ5v5P9XsvXsCU/4+0dSwghGnOmhWEYhmEYpj7aTXYMwzAMwzAtCx6EMAzDMAzTLPAghGEYhmGYZoEHIQzDMAzDNAs8CGEYhmEYplngQQjDMAzDMM0CD0IYhmEYhmkWeBDCMAzDMEyzwIMQhmEYhmGaBR6EMAzDMAzTLPAghGHaIbt27UJJSQnuvPPO+GfLly9HIBDAkiVLmrFnDMO0J3jtGIZpp/z973/H+PHjsXz5cgwcOBBDhw7FOeecg/vuu6+5u8YwTDuBByEM046ZMmUK3nnnHRx33HH48ssv8emnnyIYDDZ3txiGaSfwIIRh2jE1NTU48sgjsWXLFqxcuRJHHXVUc3eJYZh2BGtCGKYds2HDBmzfvh22bWPTpk3N3R2GYdoZPBPCMO2UcDiM448/HkOHDsXAgQMxf/58fPnll+jSpUtzd41hmHYCD0IYpp1yww034G9/+xv+9a9/IS8vDyNHjkRBQQHeeOON5u4awzDtBA7HMEw7ZNmyZZg/fz6efvpp5Ofnw+Px4Omnn8b//d//4ZFHHmnu7jEM007gmRCGYRiGYZoFnglhGIZhGKZZ4EEIwzAMwzDNAg9CGIZhGIZpFngQwjAMwzBMs8CDEIZhGIZhmgUehDAMwzAM0yzwIIRhGIZhmGaBByEMwzAMwzQLPAhhGIZhGKZZ4EEIwzAMwzDNAg9CGIZhGIZpFngQwjAMwzBMs/D/8lJU7YRiCWoAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "grid = jnp.mgrid[-2:2:100j, -2:2:100j]\n", + "grid = grid.reshape(2, -1).T # Reshape to (10000, 2)\n", + "log_prob = eqx.filter_vmap(trained_model.log_prob, in_axes=(0,))(grid)\n", + "plt.imshow(\n", + " log_prob.reshape(100, 100).T, extent=(-2, 2, -2, 2), origin=\"lower\", cmap=\"viridis\"\n", + ")\n", + "plt.colorbar(label=\"Log Probability\")\n", + "plt.title(\"Log Probability Density\")\n", + "plt.xlabel(\"x\")\n", + "plt.ylabel(\"y\")\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "flowmc (3.12.3)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/tutorials/train_normalizing_flow.ipynb b/docs/tutorials/train_normalizing_flow.ipynb index 992112da..b058c0db 100644 --- a/docs/tutorials/train_normalizing_flow.ipynb +++ b/docs/tutorials/train_normalizing_flow.ipynb @@ -30,8 +30,8 @@ "import equinox as eqx # Equinox\n", "\n", "\n", - "from flowMC.resource.nf_model.realNVP import RealNVP\n", - "from flowMC.resource.nf_model.rqSpline import MaskedCouplingRQSpline" + "from flowMC.resource.model.nf_model.realNVP import RealNVP\n", + "from flowMC.resource.model.nf_model.rqSpline import MaskedCouplingRQSpline" ] }, { diff --git a/pyproject.toml b/pyproject.toml index 45be1ae2..df9134f2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,6 +24,7 @@ requires-python = ">=3.11" keywords = ["sampling", "inference", "machine learning", "normalizing", "autodiff", "jax"] dependencies = [ "chex>=0.1.87", + "diffrax>=0.7.0", "equinox>=0.11.9", "jax[cpu]>=0.5.0", "jaxtyping>=0.2.36", @@ -55,18 +56,17 @@ visualize = [ cuda = [ "jax[cuda12]>=0.5.0", ] -codeqa = [ - "coveralls>=4.0.1", - "pre-commit>=4.0.1", - "pyright>=1.1.389", - "pytest>=8.3.3", - "ruff>=0.8.0", -] [dependency-groups] dev = [ "flowMC", "ipykernel>=6.29.5", + "coveralls>=4.0.1", + "pre-commit>=4.0.1", + "pyright>=1.1.389", + "pytest>=8.3.3", + "ruff>=0.8.0", + "ipython>=8.30.0", ] [tool.uv.sources] diff --git a/src/flowMC/resource/local_kernel/Gaussian_random_walk.py b/src/flowMC/resource/kernel/Gaussian_random_walk.py similarity index 97% rename from src/flowMC/resource/local_kernel/Gaussian_random_walk.py rename to src/flowMC/resource/kernel/Gaussian_random_walk.py index 8d19f959..7194d618 100644 --- a/src/flowMC/resource/local_kernel/Gaussian_random_walk.py +++ b/src/flowMC/resource/kernel/Gaussian_random_walk.py @@ -3,7 +3,7 @@ from jaxtyping import Array, Float, Int, PRNGKeyArray, PyTree from typing import Callable -from flowMC.resource.local_kernel.base import ProposalBase +from flowMC.resource.kernel.base import ProposalBase from flowMC.resource.logPDF import LogPDF diff --git a/src/flowMC/resource/local_kernel/HMC.py b/src/flowMC/resource/kernel/HMC.py similarity index 98% rename from src/flowMC/resource/local_kernel/HMC.py rename to src/flowMC/resource/kernel/HMC.py index a96fe7be..9ed3e972 100644 --- a/src/flowMC/resource/local_kernel/HMC.py +++ b/src/flowMC/resource/kernel/HMC.py @@ -4,7 +4,7 @@ import jax.numpy as jnp from jaxtyping import Array, Float, Int, PRNGKeyArray, PyTree -from flowMC.resource.local_kernel.base import ProposalBase +from flowMC.resource.kernel.base import ProposalBase from flowMC.resource.logPDF import LogPDF diff --git a/src/flowMC/resource/local_kernel/MALA.py b/src/flowMC/resource/kernel/MALA.py similarity index 98% rename from src/flowMC/resource/local_kernel/MALA.py rename to src/flowMC/resource/kernel/MALA.py index 254e6e0a..1e8fbace 100644 --- a/src/flowMC/resource/local_kernel/MALA.py +++ b/src/flowMC/resource/kernel/MALA.py @@ -5,7 +5,7 @@ from typing import Callable from flowMC.resource.logPDF import LogPDF -from flowMC.resource.local_kernel.base import ProposalBase +from flowMC.resource.kernel.base import ProposalBase class MALA(ProposalBase): diff --git a/src/flowMC/resource/nf_model/NF_proposal.py b/src/flowMC/resource/kernel/NF_proposal.py similarity index 98% rename from src/flowMC/resource/nf_model/NF_proposal.py rename to src/flowMC/resource/kernel/NF_proposal.py index 5af8d855..cf137e98 100644 --- a/src/flowMC/resource/nf_model/NF_proposal.py +++ b/src/flowMC/resource/kernel/NF_proposal.py @@ -7,8 +7,8 @@ from typing import Callable import equinox as eqx -from flowMC.resource.nf_model.base import NFModel -from flowMC.resource.local_kernel.base import ProposalBase +from flowMC.resource.model.nf_model.base import NFModel +from flowMC.resource.kernel.base import ProposalBase from flowMC.resource.logPDF import LogPDF diff --git a/src/flowMC/resource/local_kernel/__init__.py b/src/flowMC/resource/kernel/__init__.py similarity index 100% rename from src/flowMC/resource/local_kernel/__init__.py rename to src/flowMC/resource/kernel/__init__.py diff --git a/src/flowMC/resource/local_kernel/base.py b/src/flowMC/resource/kernel/base.py similarity index 100% rename from src/flowMC/resource/local_kernel/base.py rename to src/flowMC/resource/kernel/base.py diff --git a/src/flowMC/resource/nf_model/__init__.py b/src/flowMC/resource/model/__init__.py similarity index 100% rename from src/flowMC/resource/nf_model/__init__.py rename to src/flowMC/resource/model/__init__.py diff --git a/src/flowMC/resource/nf_model/common.py b/src/flowMC/resource/model/common.py similarity index 83% rename from src/flowMC/resource/nf_model/common.py rename to src/flowMC/resource/model/common.py index bd4e3a2c..8de695d3 100644 --- a/src/flowMC/resource/nf_model/common.py +++ b/src/flowMC/resource/model/common.py @@ -1,11 +1,68 @@ -from typing import Callable, List, Tuple +from typing import Callable, List, Tuple, Optional import equinox as eqx import jax import jax.numpy as jnp from jaxtyping import Array, Float, PRNGKeyArray +from abc import abstractmethod -from flowMC.resource.nf_model.base import Bijection, Distribution + +class Bijection(eqx.Module): + """Base class for bijective transformations. + + This is an abstract template that should not be directly used. + """ + + @abstractmethod + def __init__(self): + raise NotImplementedError + + def __call__( + self, + x: Float[Array, " n_dim"], + condition: Float[Array, " n_condition"], + ) -> tuple[Float[Array, " n_dim"], Float]: + return self.forward(x, condition) + + @abstractmethod + def forward( + self, + x: Float[Array, " n_dim"], + condition: Float[Array, " n_condition"], + ) -> tuple[Float[Array, " n_dim"], Float]: + raise NotImplementedError + + @abstractmethod + def inverse( + self, + x: Float[Array, " n_dim"], + condition: Float[Array, " n_condition"], + ) -> tuple[Float[Array, " n_dim"], Float]: + raise NotImplementedError + + +class Distribution(eqx.Module): + """Base class for probability distributions. + + This is an abstract template that should not be directly used. + """ + + @abstractmethod + def __init__(self): + raise NotImplementedError + + def __call__(self, x: Array, key: Optional[PRNGKeyArray] = None) -> Array: + return self.log_prob(x) + + @abstractmethod + def log_prob(self, x: Array) -> Array: + raise NotImplementedError + + @abstractmethod + def sample( + self, rng_key: PRNGKeyArray, n_samples: int + ) -> Float[Array, " n_samples n_features"]: + raise NotImplementedError class MLP(eqx.Module): diff --git a/src/flowMC/resource/model/flowmatching/__init__.py b/src/flowMC/resource/model/flowmatching/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/flowMC/resource/model/flowmatching/base.py b/src/flowMC/resource/model/flowmatching/base.py new file mode 100644 index 00000000..08935cba --- /dev/null +++ b/src/flowMC/resource/model/flowmatching/base.py @@ -0,0 +1,328 @@ +import equinox as eqx +from jaxtyping import PRNGKeyArray, Float, Array, PyTree +import optax +from flowMC.resource.base import Resource +from flowMC.resource.model.common import MLP +from typing_extensions import Self +from typing import Optional +import jax.numpy as jnp +import jax +from jax.scipy.stats.multivariate_normal import logpdf +from diffrax import diffeqsolve, ODETerm, Dopri5, AbstractSolver +from tqdm import trange, tqdm + + +class Solver(eqx.Module): + + model: MLP # Shape should be [input_dim + t_dim, hiddens, output_dim] + method: AbstractSolver + + def __init__(self, model: MLP, method: AbstractSolver = Dopri5()): + self.model = model + self.method = method + + def sample( + self, rng_key: PRNGKeyArray, n_samples: int, dt: Float = 1e-1 + ) -> Float[Array, "n_samples n_dims"]: + """Sample points from the solver. + This sovles the ODE forward, i.e. from the prior to the posterior. + """ + + def model_wrapper( + t: Float, x: Float[Array, " n_dims"], args: PyTree + ) -> Float[Array, " n_dims"]: + """Wrapper for the model to be used in the ODE solver.""" + t = jnp.expand_dims(t, axis=-1) + x = jnp.concatenate([x, t], axis=-1) + return self.model(x) + + def solve_ode( + y0: Float[Array, " n_dims"], dt: Float = 1e-1 + ) -> Float[Array, " n_dims"]: + """Solve the ODE with initial condition y0.""" + term = ODETerm(model_wrapper) + sol = diffeqsolve( + term, + self.method, + t0=0.0, + t1=1.0, + dt0=dt, + y0=y0, + ) + return sol.ys[-1] # type: ignore + + x0 = jax.random.normal(rng_key, (n_samples, self.model.n_input - 1)) + sols = eqx.filter_vmap(solve_ode, in_axes=(0, None))(x0, dt) + return sols + + def log_prob(self, x1: Float[Array, " n_dims"], dt: Float = 1e-1) -> Float: + """Compute the log probability of the initial condition x1. + This solves the ODE backward, i.e. from the posterior to the prior. + """ + + def model_wrapper( + t: Float, x: Float[Array, " n_dims"], args: PyTree + ) -> list[Float[Array, " ..."]]: + """Wrapper for the model to be used in the ODE solver. + + The output shape should be [n_dims, 1]. + """ + t = jnp.expand_dims(t, axis=-1) + x = jnp.concatenate([x[0], t], axis=-1) + y = self.model(x) + div = jax.jacrev(self.model, argnums=0)(x)[:, :-1] + return [y, jnp.trace(div)] + + def solve_ode(y0: Float[Array, " n_dims"], dt: Float = 1e-1) -> PyTree: + """Solve the ODE with initial condition y0.""" + term = ODETerm(model_wrapper) + y_init = jax.tree.map(jnp.asarray, [y0, 0.0]) + sol = diffeqsolve( + term, + self.method, + t0=1.0, + t1=0.0, + dt0=-dt, + y0=y_init, + ) + return sol.ys + + x0, log_p = solve_ode(x1, dt) + return ( + logpdf( + x1, + mean=self.model.n_output * jnp.zeros(self.model.n_output), + cov=jnp.eye(self.model.n_output), + ) + + log_p + ) + + +class Scheduler: + + def __call__(self, t: Float) -> tuple[Float, Float, Float, Float]: + """Return the parameters of the scheduler at time t.""" + raise NotImplementedError + + +class CondOTScheduler(Scheduler): + """Conditional Optimal Transport Scheduler.""" + + def __call__(self, t: Float) -> tuple[Float, Float, Float, Float]: + """Return the parameters of the scheduler at time t.""" + # Implement the logic to compute alpha_t, d_alpha_t, sigma_t, d_sigma_t + return t, 1.0, 1.0 - t, -1.0 + + +class Path: + + scheduler: Scheduler + + def __init__(self, scheduler: Scheduler): + self.scheduler = scheduler + + def sample(self, x0: Float, x1: Float, t: Float) -> Float: + """Sample a point along the path between x0 and x1 at time t.""" + alpha_t, d_alpha_t, sigma_t, d_sigma_t = self.scheduler(t) + x_t = sigma_t * x0 + alpha_t * x1 + dx_t = d_sigma_t * x0 + d_alpha_t * x1 + return x_t, dx_t + + +class FlowMatchingModel(eqx.Module, Resource): + + solver: Solver + path: Path + _data_mean: Float[Array, " n_dim"] + _data_cov: Float[Array, " n_dim n_dim"] + + @property + def n_features(self): + return self.solver.model.n_input - 1 + + @property + def data_mean(self): + return jax.lax.stop_gradient(self._data_mean) + + @property + def data_cov(self): + return jax.lax.stop_gradient(jnp.atleast_2d(self._data_cov)) + + def __init__( + self, + solver: Solver, + path: Path, + data_mean: Optional[Float[Array, " n_dim"]] = None, + data_cov: Optional[Float[Array, " n_dim n_dim"]] = None, + ): + self.solver = solver + self.path = path + n_features = self.n_features + if data_mean is not None: + self._data_mean = data_mean + else: + self._data_mean = jnp.zeros(n_features) + + if data_cov is not None: + self._data_cov = data_cov + else: + self._data_cov = jnp.eye(n_features) + + def sample( + self, rng_key: PRNGKeyArray, num_samples: int, dt: Float = 1e-1 + ) -> Float[Array, " n_dim"]: + rng_key, subkey = jax.random.split(rng_key) + samples = self.solver.sample(subkey, num_samples, dt=dt) + std = jnp.sqrt(jnp.diag(self.data_cov)) + samples = samples * std + self.data_mean + return samples + + def log_prob(self, x: Float[Array, " n_dim"]) -> Float: + std = jnp.sqrt(jnp.diag(self.data_cov)) + x_whitened = (x - self.data_mean) / std + log_det = -jnp.sum(jnp.log(std)) + return self.solver.log_prob(x_whitened) + log_det + + def save_model(self, path: str): + eqx.tree_serialise_leaves(path + ".eqx", self) + + def load_model(self, path: str) -> Self: + return eqx.tree_deserialise_leaves(path + ".eqx", self) + + @eqx.filter_value_and_grad + def loss_fn( + self, + x: Float[Array, "n_batch n_dim"], + t: Float[Array, "n_batch 1"], + dx_t: Float[Array, "n_batch n_dim"], + ) -> Float: + x = jnp.concatenate([x, t], axis=-1) + return jnp.mean( + (eqx.filter_vmap(self.solver.model, in_axes=(0))(x) - dx_t) ** 2 + ) + + @eqx.filter_jit + def train_step( + model: Self, + x_t: Float[Array, "n_batch n_dim"], + t: Float[Array, "n_batch 1"], + dx_t: Float[Array, "n_batch n_dim"], + optim: optax.GradientTransformation, + state: optax.OptState, + ) -> tuple[Float[Array, " 1"], Self, optax.OptState]: + print("Compiling training step") + loss, grads = model.loss_fn(x_t, t, dx_t) + updates, state = optim.update(grads, state, model) # type: ignore + model = eqx.apply_updates(model, updates) + return loss, model, state + + def train_epoch( + self: Self, + rng: PRNGKeyArray, + optim: optax.GradientTransformation, + state: optax.OptState, + data: tuple[ + Float[Array, "n_example n_dim"], + Float[Array, "n_example n_dim"], + Float[Array, "n_example 1"], + ], + batch_size: Float, + ) -> tuple[Float, Self, optax.OptState]: + """Train for a single epoch.""" + value = 1e9 + model = self + train_ds_size = len(data[0]) + steps_per_epoch = train_ds_size // batch_size + std = jnp.sqrt(jnp.diag(self.data_cov)) + if steps_per_epoch > 0: + perms = jax.random.permutation(rng, train_ds_size) + + perms = perms[: steps_per_epoch * batch_size] # skip incomplete batch + perms = perms.reshape((steps_per_epoch, batch_size)) + for perm in perms: + batch_x0, batch_x1, batch_t = ( + data[0][perm, ...], + data[1][perm, ...], + data[2][perm, ...], + ) + batch_x1 = (batch_x1 - self.data_mean) / std + batch_x_t, batch_dx_t = self.path.sample(batch_x0, batch_x1, batch_t) + value, model, state = model.train_step( + batch_x_t, batch_t, batch_dx_t, optim, state + ) + else: + batch_x1 = (data[1] - self.data_mean) / std + x_t, dx_t = self.path.sample(data[0], batch_x1, data[2]) + value, model, state = model.train_step(x_t, data[2], dx_t, optim, state) + return value, model, state + + def train( + self: Self, + rng: PRNGKeyArray, + data: tuple[ + Float[Array, "n_example n_dim"], + Float[Array, "n_example n_dim"], + Float[Array, "n_example 1"], + ], + optim: optax.GradientTransformation, + state: optax.OptState, + num_epochs: int, + batch_size: int, + verbose: bool = True, + ) -> tuple[PRNGKeyArray, Self, optax.OptState, Array]: + """Train a normalizing flow model. + + Args: + rng (PRNGKeyArray): JAX PRNGKey. + model (eqx.Module): NF model to train. + data (Array): Training data. + num_epochs (int): Number of epochs to train for. + batch_size (int): Batch size. + verbose (bool): Whether to print progress. + + Returns: + rng (PRNGKeyArray): Updated JAX PRNGKey. + model (eqx.Model): Updated NF model. + loss_values (Array): Loss values. + """ + loss_values = jnp.zeros(num_epochs) + if verbose: + pbar = trange(num_epochs, desc="Training NF", miniters=int(num_epochs / 10)) + else: + pbar = range(num_epochs) + + best_model = model = self + best_state = state + best_loss = 1e9 + model = eqx.tree_at(lambda m: m._data_mean, model, jnp.mean(data[1], axis=0)) + model = eqx.tree_at(lambda m: m._data_cov, model, jnp.cov(data[1].T)) + for epoch in pbar: + # Use a separate PRNG key to permute image data during shuffling + rng, input_rng = jax.random.split(rng) + # Run an optimization step over a training batch + value, model, state = model.train_epoch( + input_rng, optim, state, data, batch_size + ) + loss_values = loss_values.at[epoch].set(value) + if loss_values[epoch] < best_loss: + best_model = model + best_state = state + best_loss = loss_values[epoch] + if verbose: + assert isinstance(pbar, tqdm) + if num_epochs > 10: + if epoch % int(num_epochs / 10) == 0: + pbar.set_description(f"Training NF, current loss: {value:.3f}") + else: + if epoch == num_epochs: + pbar.set_description(f"Training NF, current loss: {value:.3f}") + + return rng, best_model, best_state, loss_values + + save_resource = save_model + load_resource = load_model + + def print_parameters(self): + raise NotImplementedError( + "print_parameters is not implemented for FlowMatchingModel" + ) diff --git a/src/flowMC/resource/model/nf_model/__init__.py b/src/flowMC/resource/model/nf_model/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/flowMC/resource/nf_model/base.py b/src/flowMC/resource/model/nf_model/base.py similarity index 84% rename from src/flowMC/resource/nf_model/base.py rename to src/flowMC/resource/model/nf_model/base.py index f5662c5f..fa3029f5 100644 --- a/src/flowMC/resource/nf_model/base.py +++ b/src/flowMC/resource/model/nf_model/base.py @@ -243,61 +243,3 @@ def to_precision(self, precision: str = "float32"): save_resource = save_model load_resource = load_model - - -class Bijection(eqx.Module): - """Base class for bijective transformations. - - This is an abstract template that should not be directly used. - """ - - @abstractmethod - def __init__(self): - raise NotImplementedError - - def __call__( - self, - x: Float[Array, " n_dim"], - condition: Float[Array, " n_condition"], - ) -> tuple[Float[Array, " n_dim"], Float]: - return self.forward(x, condition) - - @abstractmethod - def forward( - self, - x: Float[Array, " n_dim"], - condition: Float[Array, " n_condition"], - ) -> tuple[Float[Array, " n_dim"], Float]: - raise NotImplementedError - - @abstractmethod - def inverse( - self, - x: Float[Array, " n_dim"], - condition: Float[Array, " n_condition"], - ) -> tuple[Float[Array, " n_dim"], Float]: - raise NotImplementedError - - -class Distribution(eqx.Module): - """Base class for probability distributions. - - This is an abstract template that should not be directly used. - """ - - @abstractmethod - def __init__(self): - raise NotImplementedError - - def __call__(self, x: Array, key: Optional[PRNGKeyArray] = None) -> Array: - return self.log_prob(x) - - @abstractmethod - def log_prob(self, x: Array) -> Array: - raise NotImplementedError - - @abstractmethod - def sample( - self, rng_key: PRNGKeyArray, n_samples: int - ) -> Float[Array, " n_samples n_features"]: - raise NotImplementedError diff --git a/src/flowMC/resource/nf_model/realNVP.py b/src/flowMC/resource/model/nf_model/realNVP.py similarity index 98% rename from src/flowMC/resource/nf_model/realNVP.py rename to src/flowMC/resource/model/nf_model/realNVP.py index 2d516436..38211ca0 100644 --- a/src/flowMC/resource/nf_model/realNVP.py +++ b/src/flowMC/resource/model/nf_model/realNVP.py @@ -5,8 +5,9 @@ import jax.numpy as jnp from jaxtyping import Array, Float, PRNGKeyArray -from flowMC.resource.nf_model.base import Distribution, NFModel -from flowMC.resource.nf_model.common import ( +from flowMC.resource.model.nf_model.base import NFModel +from flowMC.resource.model.common import ( + Distribution, MLP, Gaussian, MaskedCouplingLayer, diff --git a/src/flowMC/resource/nf_model/rqSpline.py b/src/flowMC/resource/model/nf_model/rqSpline.py similarity index 99% rename from src/flowMC/resource/nf_model/rqSpline.py rename to src/flowMC/resource/model/nf_model/rqSpline.py index 4b884429..d1012521 100644 --- a/src/flowMC/resource/nf_model/rqSpline.py +++ b/src/flowMC/resource/model/nf_model/rqSpline.py @@ -6,8 +6,10 @@ import jax.numpy as jnp from jaxtyping import Array, Float, PRNGKeyArray -from flowMC.resource.nf_model.base import Bijection, Distribution, NFModel -from flowMC.resource.nf_model.common import ( +from flowMC.resource.model.nf_model.base import NFModel +from flowMC.resource.model.common import ( + Distribution, + Bijection, MLP, Gaussian, MaskedCouplingLayer, diff --git a/src/flowMC/resource_strategy_bundle/RQSpline_MALA.py b/src/flowMC/resource_strategy_bundle/RQSpline_MALA.py index 434cf225..0af672b9 100644 --- a/src/flowMC/resource_strategy_bundle/RQSpline_MALA.py +++ b/src/flowMC/resource_strategy_bundle/RQSpline_MALA.py @@ -8,9 +8,9 @@ from flowMC.resource.buffers import Buffer from flowMC.resource.states import State from flowMC.resource.logPDF import LogPDF -from flowMC.resource.local_kernel.MALA import MALA -from flowMC.resource.nf_model.NF_proposal import NFProposal -from flowMC.resource.nf_model.rqSpline import MaskedCouplingRQSpline +from flowMC.resource.kernel.MALA import MALA +from flowMC.resource.kernel.NF_proposal import NFProposal +from flowMC.resource.model.nf_model.rqSpline import MaskedCouplingRQSpline from flowMC.resource.optimizer import Optimizer from flowMC.strategy.lambda_function import Lambda from flowMC.strategy.take_steps import TakeSerialSteps, TakeGroupSteps diff --git a/src/flowMC/resource_strategy_bundle/RQSpline_MALA_PT.py b/src/flowMC/resource_strategy_bundle/RQSpline_MALA_PT.py index bed71977..af973028 100644 --- a/src/flowMC/resource_strategy_bundle/RQSpline_MALA_PT.py +++ b/src/flowMC/resource_strategy_bundle/RQSpline_MALA_PT.py @@ -9,9 +9,9 @@ from flowMC.resource.buffers import Buffer from flowMC.resource.states import State from flowMC.resource.logPDF import LogPDF, TemperedPDF -from flowMC.resource.local_kernel.MALA import MALA -from flowMC.resource.nf_model.NF_proposal import NFProposal -from flowMC.resource.nf_model.rqSpline import MaskedCouplingRQSpline +from flowMC.resource.kernel.MALA import MALA +from flowMC.resource.kernel.NF_proposal import NFProposal +from flowMC.resource.model.nf_model.rqSpline import MaskedCouplingRQSpline from flowMC.resource.optimizer import Optimizer from flowMC.strategy.lambda_function import Lambda from flowMC.strategy.take_steps import TakeSerialSteps, TakeGroupSteps diff --git a/src/flowMC/strategy/parallel_tempering.py b/src/flowMC/strategy/parallel_tempering.py index f6d76cd4..0d70df16 100644 --- a/src/flowMC/strategy/parallel_tempering.py +++ b/src/flowMC/strategy/parallel_tempering.py @@ -1,5 +1,5 @@ from flowMC.resource.base import Resource -from flowMC.resource.local_kernel.base import ProposalBase +from flowMC.resource.kernel.base import ProposalBase from flowMC.resource.buffers import Buffer from flowMC.resource.states import State from flowMC.resource.logPDF import TemperedPDF diff --git a/src/flowMC/strategy/sequential_monte_carlo.py b/src/flowMC/strategy/sequential_monte_carlo.py new file mode 100644 index 00000000..6691af1d --- /dev/null +++ b/src/flowMC/strategy/sequential_monte_carlo.py @@ -0,0 +1,20 @@ +from flowMC.resource.base import Resource +from jaxtyping import Array, Float, PRNGKeyArray + + +class SequentialMonteCarlo(Resource): + def __init__(self): + raise NotImplementedError + + def __call__( + self, + rng_key: PRNGKeyArray, + resources: dict[str, Resource], + initial_position: Float[Array, "n_chains n_dim"], + data: dict, + ) -> tuple[ + PRNGKeyArray, + dict[str, Resource], + Float[Array, "n_chains n_dim"], + ]: + raise NotImplementedError diff --git a/src/flowMC/strategy/take_steps.py b/src/flowMC/strategy/take_steps.py index 897a883a..3d8c114e 100644 --- a/src/flowMC/strategy/take_steps.py +++ b/src/flowMC/strategy/take_steps.py @@ -1,5 +1,5 @@ from flowMC.resource.base import Resource -from flowMC.resource.local_kernel.base import ProposalBase +from flowMC.resource.kernel.base import ProposalBase from flowMC.resource.buffers import Buffer from flowMC.resource.states import State from flowMC.resource.logPDF import LogPDF diff --git a/src/flowMC/strategy/train_model.py b/src/flowMC/strategy/train_model.py index cc5db6bd..d04d893b 100644 --- a/src/flowMC/strategy/train_model.py +++ b/src/flowMC/strategy/train_model.py @@ -1,7 +1,7 @@ from flowMC.strategy.base import Strategy from flowMC.resource.base import Resource from flowMC.resource.buffers import Buffer -from flowMC.resource.nf_model.base import NFModel +from flowMC.resource.model.nf_model.base import NFModel from flowMC.resource.optimizer import Optimizer from jaxtyping import Array, Float, PRNGKeyArray import jax diff --git a/test/integration/test_HMC.py b/test/integration/test_HMC.py index 0e2663c4..5bd27231 100644 --- a/test/integration/test_HMC.py +++ b/test/integration/test_HMC.py @@ -3,7 +3,7 @@ from jax.scipy.special import logsumexp from jaxtyping import Array, Float -from flowMC.resource.local_kernel.HMC import HMC +from flowMC.resource.kernel.HMC import HMC from flowMC.strategy.take_steps import TakeSerialSteps from flowMC.resource.buffers import Buffer from flowMC.resource.states import State diff --git a/test/integration/test_MALA.py b/test/integration/test_MALA.py index 26dc43fe..2242437f 100644 --- a/test/integration/test_MALA.py +++ b/test/integration/test_MALA.py @@ -3,7 +3,7 @@ from jax.scipy.special import logsumexp from jaxtyping import Array, Float -from flowMC.resource.local_kernel.MALA import MALA +from flowMC.resource.kernel.MALA import MALA from flowMC.strategy.take_steps import TakeSerialSteps from flowMC.resource.buffers import Buffer from flowMC.resource.states import State diff --git a/test/integration/test_RWMCMC.py b/test/integration/test_RWMCMC.py index 806ae9fd..dccee845 100644 --- a/test/integration/test_RWMCMC.py +++ b/test/integration/test_RWMCMC.py @@ -3,7 +3,7 @@ from jax.scipy.special import logsumexp from jaxtyping import Array, Float -from flowMC.resource.local_kernel.Gaussian_random_walk import GaussianRandomWalk +from flowMC.resource.kernel.Gaussian_random_walk import GaussianRandomWalk from flowMC.strategy.take_steps import TakeSerialSteps from flowMC.resource.buffers import Buffer from flowMC.resource.states import State diff --git a/test/integration/test_normalizingFlow.py b/test/integration/test_normalizingFlow.py index 503cbd1f..f05bf350 100644 --- a/test/integration/test_normalizingFlow.py +++ b/test/integration/test_normalizingFlow.py @@ -3,8 +3,8 @@ import jax.numpy as jnp # JAX NumPy import optax # Optimizers -from flowMC.resource.nf_model.realNVP import RealNVP -from flowMC.resource.nf_model.rqSpline import MaskedCouplingRQSpline +from flowMC.resource.model.nf_model.realNVP import RealNVP +from flowMC.resource.model.nf_model.rqSpline import MaskedCouplingRQSpline def test_realNVP(): diff --git a/test/unit/test_flowmatching.py b/test/unit/test_flowmatching.py new file mode 100644 index 00000000..4fa95737 --- /dev/null +++ b/test/unit/test_flowmatching.py @@ -0,0 +1,193 @@ +import jax +import jax.numpy as jnp +import pytest + +from flowMC.resource.model.flowmatching.base import ( + FlowMatchingModel, + Solver, + Path, + CondOTScheduler, +) +from flowMC.resource.model.common import MLP +from diffrax import Dopri5 +import equinox as eqx +import optax + + +def get_simple_mlp(n_input, n_hidden, n_output, key): + """Simple 2-layer MLP for testing.""" + shape = ( + [n_input] + + ([n_hidden] if isinstance(n_hidden, int) else list(n_hidden)) + + [n_output] + ) + return MLP(shape=shape, key=key, activation=jax.nn.swish) + + +############################## +# Solver Tests +############################## + + +class TestSolver: + @pytest.fixture + def solver(self): + key = jax.random.PRNGKey(0) + n_dim = 3 + n_hidden = 4 + mlp = get_simple_mlp( + n_input=n_dim + 1, n_hidden=n_hidden, n_output=n_dim, key=key + ) + return Solver(model=mlp, method=Dopri5()), key, n_dim + + def test_sample_shape_and_finiteness(self, solver): + solver, key, n_dim = solver + n_samples = 7 + samples = solver.sample(key, n_samples) + assert samples.shape == (n_samples, n_dim) + assert jnp.isfinite(samples).all() + + def test_log_prob_shape_and_finiteness(self, solver): + solver, key, n_dim = solver + x1 = jax.random.normal(key, (n_dim,)) + logp = solver.log_prob(x1) + logp_arr = jnp.asarray(logp) + assert logp_arr.size == 1 + assert jnp.isfinite(logp_arr).all() + + @pytest.mark.parametrize("dt", [1e-2, 1e-1, 0.5]) + def test_sample_various_dt(self, solver, dt): + solver, key, n_dim = solver + samples = solver.sample(key, 3, dt=dt) + assert samples.shape == (3, n_dim) + assert jnp.isfinite(samples).all() + + +############################## +# Path & Scheduler Tests +############################## + + +class TestPathAndScheduler: + def test_path_sample_shapes_and_values(self): + n_dim = 2 + scheduler = CondOTScheduler() + path = Path(scheduler=scheduler) + x0 = jnp.ones((5, n_dim)) + x1 = jnp.zeros((5, n_dim)) + for t_val in [0.0, 0.5, 1.0]: + t = jnp.full((5, 1), t_val) + x_t, dx_t = path.sample(x0, x1, t) + assert x_t.shape == (5, n_dim) + assert dx_t.shape == (5, n_dim) + + @pytest.mark.parametrize("t", [0.0, 1.0, 0.5, -0.1, 1.1]) + def test_condotscheduler_call_output(self, t): + sched = CondOTScheduler() + out = sched(jnp.array(t)) + assert isinstance(out, tuple) + assert len(out) == 4 + assert all(isinstance(float(x), float) for x in out) + + +############################## +# FlowMatchingModel Tests +############################## + + +class TestFlowMatchingModel: + @pytest.fixture + def model(self): + key = jax.random.PRNGKey(42) + n_dim = 2 + n_hidden = 8 + mlp = get_simple_mlp( + n_input=n_dim + 1, n_hidden=n_hidden, n_output=n_dim, key=key + ) + solver = Solver(model=mlp, method=Dopri5()) + scheduler = CondOTScheduler() + path = Path(scheduler=scheduler) + model = FlowMatchingModel( + solver=solver, + path=path, + data_mean=jnp.zeros(n_dim), + data_cov=jnp.eye(n_dim), + ) + return model, key, n_dim + + def test_sample_and_log_prob(self, model): + model, key, n_dim = model + n_samples = 4 + samples = model.sample(key, n_samples) + assert samples.shape == (n_samples, n_dim) + assert jnp.isfinite(samples).all() + logp = eqx.filter_vmap(model.log_prob)(samples) + assert logp.shape == (n_samples, 1) + assert jnp.isfinite(logp).all() + + @pytest.mark.parametrize("n_samples", [1, 5, 10]) + def test_sample_various_shapes(self, model, n_samples): + model, key, n_dim = model + samples = model.sample(key, n_samples) + assert samples.shape == (n_samples, n_dim) + assert jnp.isfinite(samples).all() + logp = eqx.filter_vmap(model.log_prob)(samples) + assert logp.shape[0] == n_samples + assert jnp.isfinite(logp).all() + + def test_log_prob_edge_cases(self, model): + model, key, n_dim = model + for arr in [jnp.zeros(n_dim), 1e6 * jnp.ones(n_dim), -1e6 * jnp.ones(n_dim)]: + logp = model.log_prob(arr) + logp_arr = jnp.asarray(logp) + assert logp_arr.size == 1 + assert ( + jnp.isfinite(logp_arr).all() or jnp.isnan(logp_arr).all() + ) # may be nan for extreme values + + def test_save_and_load(self, tmp_path, model): + model, key, n_dim = model + save_path = str(tmp_path / "test_model") + model.save_model(save_path) + loaded = model.load_model(save_path) + x = jax.random.normal(key, (2, n_dim)) + assert jnp.allclose( + eqx.filter_vmap(model.log_prob)(x), eqx.filter_vmap(loaded.log_prob)(x) + ) + + def test_properties(self, model): + model, key, n_dim = model + mean = jnp.arange(n_dim) + cov = jnp.eye(n_dim) * 2 + model2 = FlowMatchingModel( + solver=model.solver, path=model.path, data_mean=mean, data_cov=cov + ) + assert model2.n_features == n_dim + assert jnp.allclose(model2.data_mean, mean) + assert jnp.allclose(model2.data_cov, cov) + + def test_print_parameters_notimplemented(self, model): + model, key, n_dim = model + with pytest.raises(NotImplementedError): + model.print_parameters() + + def test_train_step_and_epoch(self, model): + model, key, n_dim = model + n_batch = 5 + x0 = jax.random.normal(key, (n_batch, n_dim)) + x1 = jax.random.normal(key, (n_batch, n_dim)) + t = jax.random.uniform(key, (n_batch, 1)) + optim = optax.adam(learning_rate=1e-3) + state = optim.init(eqx.filter(model, eqx.is_array)) + std = jnp.sqrt(jnp.diag(model.data_cov)) + x1_whitened = (x1 - model.data_mean) / std + x_t, dx_t = model.path.sample(x0, x1_whitened, t) + loss, model2, state2 = model.train_step(x_t, t, dx_t, optim, state) + assert jnp.isfinite(loss) + assert isinstance(model2, FlowMatchingModel) + data = (x0, x1, t) + loss_epoch, model3, state3 = model.train_epoch( + key, optim, state, data, batch_size=n_batch + ) + assert jnp.isfinite(loss_epoch) + assert isinstance(model3, FlowMatchingModel) diff --git a/test/unit/test_kernels.py b/test/unit/test_kernels.py index 6b5608a0..ecc9262f 100644 --- a/test/unit/test_kernels.py +++ b/test/unit/test_kernels.py @@ -2,9 +2,9 @@ import jax.numpy as jnp from jaxtyping import Array, Float, PyTree -from flowMC.resource.local_kernel.Gaussian_random_walk import GaussianRandomWalk -from flowMC.resource.local_kernel.HMC import HMC -from flowMC.resource.local_kernel.MALA import MALA +from flowMC.resource.kernel.Gaussian_random_walk import GaussianRandomWalk +from flowMC.resource.kernel.HMC import HMC +from flowMC.resource.kernel.MALA import MALA from flowMC.resource.states import State from flowMC.strategy.take_steps import TakeSerialSteps from flowMC.resource.buffers import Buffer diff --git a/test/unit/test_nf.py b/test/unit/test_nf.py index d866f26f..5a566dd3 100644 --- a/test/unit/test_nf.py +++ b/test/unit/test_nf.py @@ -1,8 +1,8 @@ import jax import jax.numpy as jnp -from flowMC.resource.nf_model.realNVP import AffineCoupling, RealNVP -from flowMC.resource.nf_model.rqSpline import MaskedCouplingRQSpline +from flowMC.resource.model.nf_model.realNVP import AffineCoupling, RealNVP +from flowMC.resource.model.nf_model.rqSpline import MaskedCouplingRQSpline def test_affine_coupling_forward_and_inverse(): diff --git a/test/unit/test_resources.py b/test/unit/test_resources.py index b265c658..dfd05e29 100644 --- a/test/unit/test_resources.py +++ b/test/unit/test_resources.py @@ -2,7 +2,7 @@ import jax.numpy as jnp from flowMC.resource.buffers import Buffer from flowMC.resource.logPDF import LogPDF, Variable, TemperedPDF -from flowMC.resource.local_kernel.MALA import MALA +from flowMC.resource.kernel.MALA import MALA from flowMC.resource.states import State from flowMC.strategy.take_steps import TakeSerialSteps diff --git a/test/unit/test_strategies.py b/test/unit/test_strategies.py index 32eb856d..2e0ce659 100644 --- a/test/unit/test_strategies.py +++ b/test/unit/test_strategies.py @@ -3,12 +3,12 @@ from jaxtyping import Array, Float import pytest -from flowMC.resource.nf_model.rqSpline import MaskedCouplingRQSpline +from flowMC.resource.model.nf_model.rqSpline import MaskedCouplingRQSpline from flowMC.resource.optimizer import Optimizer -from flowMC.resource.nf_model.NF_proposal import NFProposal -from flowMC.resource.local_kernel.MALA import MALA -from flowMC.resource.local_kernel.Gaussian_random_walk import GaussianRandomWalk -from flowMC.resource.local_kernel.HMC import HMC +from flowMC.resource.kernel.NF_proposal import NFProposal +from flowMC.resource.kernel.MALA import MALA +from flowMC.resource.kernel.Gaussian_random_walk import GaussianRandomWalk +from flowMC.resource.kernel.HMC import HMC from flowMC.resource.buffers import Buffer from flowMC.resource.states import State from flowMC.resource.logPDF import LogPDF, TemperedPDF diff --git a/uv.lock b/uv.lock index e82dbc98..0dde54a7 100644 --- a/uv.lock +++ b/uv.lock @@ -444,6 +444,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, ] +[[package]] +name = "diffrax" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "equinox" }, + { name = "jax" }, + { name = "jaxtyping" }, + { name = "lineax" }, + { name = "optimistix" }, + { name = "typing-extensions" }, + { name = "wadler-lindig" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/9e/d6081a1daf7a7b70f53ddac637bd2e6cd6fa91042ffd7b204741c0ce6d44/diffrax-0.7.0.tar.gz", hash = "sha256:f3bcc578cd92a9ca86fc6f5a54c1de76c1ba62f74de69b56002624bf205316f1", size = 151595, upload-time = "2025-03-14T03:52:22.422Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/1d/236424e689f62d7fe58f8b10f08c63a49c68efba087eabdd09198a9bbf38/diffrax-0.7.0-py3-none-any.whl", hash = "sha256:aa9645c40552f11a2d32042ef6b9fcd53c1f0f6bdbe32d37cb788669ca9910be", size = 193163, upload-time = "2025-03-14T03:52:20.943Z" }, +] + [[package]] name = "distlib" version = "0.3.9" @@ -516,10 +534,11 @@ wheels = [ [[package]] name = "flowmc" -version = "0.4.4" +version = "0.4.5" source = { editable = "." } dependencies = [ { name = "chex" }, + { name = "diffrax" }, { name = "equinox" }, { name = "jax" }, { name = "jaxtyping" }, @@ -529,13 +548,6 @@ dependencies = [ ] [package.optional-dependencies] -codeqa = [ - { name = "coveralls" }, - { name = "pre-commit" }, - { name = "pyright" }, - { name = "pytest" }, - { name = "ruff" }, -] cuda = [ { name = "jax", extra = ["cuda12"] }, ] @@ -556,8 +568,14 @@ visualize = [ [package.dev-dependencies] dev = [ + { name = "coveralls" }, { name = "flowmc" }, { name = "ipykernel" }, + { name = "ipython" }, + { name = "pre-commit" }, + { name = "pyright" }, + { name = "pytest" }, + { name = "ruff" }, ] [package.metadata] @@ -565,7 +583,7 @@ requires-dist = [ { name = "arviz", marker = "extra == 'visualize'", specifier = ">=0.21.0" }, { name = "chex", specifier = ">=0.1.87" }, { name = "corner", marker = "extra == 'visualize'", specifier = ">=2.2.3" }, - { name = "coveralls", marker = "extra == 'codeqa'", specifier = ">=4.0.1" }, + { name = "diffrax", specifier = ">=0.7.0" }, { name = "equinox", specifier = ">=0.11.9" }, { name = "jax", extras = ["cpu"], specifier = ">=0.5.0" }, { name = "jax", extras = ["cuda12"], marker = "extra == 'cuda'", specifier = ">=0.5.0" }, @@ -578,20 +596,22 @@ requires-dist = [ { name = "mkdocs-material", marker = "extra == 'docs'", specifier = "==9.5.47" }, { name = "mkdocstrings", extras = ["python"], marker = "extra == 'docs'", specifier = "==0.27.0" }, { name = "optax", specifier = ">=0.2.4" }, - { name = "pre-commit", marker = "extra == 'codeqa'", specifier = ">=4.0.1" }, { name = "pymdown-extensions", marker = "extra == 'docs'", specifier = "==10.12" }, - { name = "pyright", marker = "extra == 'codeqa'", specifier = ">=1.1.389" }, - { name = "pytest", marker = "extra == 'codeqa'", specifier = ">=8.3.3" }, - { name = "ruff", marker = "extra == 'codeqa'", specifier = ">=0.8.0" }, { name = "scikit-learn", specifier = ">=1.6.0" }, { name = "tqdm", specifier = ">=4.67.1" }, ] -provides-extras = ["docs", "visualize", "cuda", "codeqa"] +provides-extras = ["docs", "visualize", "cuda"] [package.metadata.requires-dev] dev = [ + { name = "coveralls", specifier = ">=4.0.1" }, { name = "flowmc", editable = "." }, { name = "ipykernel", specifier = ">=6.29.5" }, + { name = "ipython", specifier = ">=8.30.0" }, + { name = "pre-commit", specifier = ">=4.0.1" }, + { name = "pyright", specifier = ">=1.1.389" }, + { name = "pytest", specifier = ">=8.3.3" }, + { name = "ruff", specifier = ">=0.8.0" }, ] [[package]] @@ -1027,6 +1047,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/a4/df2bdca5270ca85fd25253049eb6708d4127be2ed0e5c2650217450b59e9/kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650", size = 48530, upload-time = "2024-09-04T09:05:30.225Z" }, ] +[[package]] +name = "lineax" +version = "0.0.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "equinox" }, + { name = "jax" }, + { name = "jaxtyping" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6f/75/6ad88863640c6213887c8928aef406713ecfa3c61808c563b9a3f2bf0673/lineax-0.0.8.tar.gz", hash = "sha256:bb2778066b8882acc88ff569d8e415bc5aa387f751b14ae262c9f9607d7f25bb", size = 45304, upload-time = "2025-03-27T17:38:54.421Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/a9/2d8d6002eb124e79f7c9ee2311b62f35289fc7e75ee0bbfbe5a4c7295bb9/lineax-0.0.8-py3-none-any.whl", hash = "sha256:1bd21d6c41afda233769d1c1096329ee75181825c9136be65c92b41f6daa1ddb", size = 68045, upload-time = "2025-03-27T17:38:53.394Z" }, +] + [[package]] name = "markdown" version = "3.7" @@ -1646,6 +1681,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5c/24/28d0bb21600a78e46754947333ec9a297044af884d360092eb8561575fe9/optax-0.2.4-py3-none-any.whl", hash = "sha256:db35c04e50b52596662efb002334de08c2a0a74971e4da33f467e84fac08886a", size = 319212, upload-time = "2024-11-12T21:52:15.446Z" }, ] +[[package]] +name = "optimistix" +version = "0.0.10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "equinox" }, + { name = "jax" }, + { name = "jaxtyping" }, + { name = "lineax" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/78/ec/0d51681732f15ccb8e2a546d7358a4d56132016b73b822a52b54e3a2450e/optimistix-0.0.10.tar.gz", hash = "sha256:80a481d66d64c9445eaf74158b71d65a9087b7e038f0c4bc7714ef5ff6350050", size = 55112, upload-time = "2025-01-03T23:48:28.361Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/9c/4672a90dfd2ce7d40428759c9aaed0164a9a90010349f607aa5e29132766/optimistix-0.0.10-py3-none-any.whl", hash = "sha256:f10eb93d24311aca21fb6d1e74f39a4a38f976d5accbd577ef1705218609bfdc", size = 84274, upload-time = "2025-01-03T23:48:26.117Z" }, +] + [[package]] name = "packaging" version = "24.2" @@ -2491,6 +2542,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/10/f9/0919cf6f1432a8c4baa62511f8f8da8225432d22e83e3476f5be1a1edc6e/virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0", size = 4276702, upload-time = "2024-11-26T04:32:36.948Z" }, ] +[[package]] +name = "wadler-lindig" +version = "0.1.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1e/67/cbae4bf7683a64755c2c1778c418fea96d00e34395bb91743f08bd951571/wadler_lindig-0.1.7.tar.gz", hash = "sha256:81d14d3fe77d441acf3ebd7f4aefac20c74128bf460e84b512806dccf7b2cd55", size = 15842, upload-time = "2025-06-18T07:00:42.843Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl", hash = "sha256:e3ec83835570fd0a9509f969162aeb9c65618f998b1f42918cfc8d45122fe953", size = 20516, upload-time = "2025-06-18T07:00:41.684Z" }, +] + [[package]] name = "watchdog" version = "6.0.0"