{ "cells": [ { "cell_type": "markdown", "id": "5625bfb9-4b1a-4a11-8d5f-3652dc517fb8", "metadata": {}, "source": [ "# Demonstrating Hadamard langevin" ] }, { "cell_type": "code", "execution_count": 1, "id": "56e4e450-aaa6-4e75-bdaa-22ed0ba019ff", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from context import samplers as samplers\n", "import matplotlib.pyplot as plt\n" ] }, { "cell_type": "markdown", "id": "748440a9-3807-434d-af4a-52490500bde1", "metadata": {}, "source": [ "Create matrix $A\\in \\mathbb{R}^{m\\times p}$ and measurements $y\\in\\mathbb{R}^n$. We will sample from\n", "$$\n", "\\pi\\propto \\exp\\left(-\\beta\\left(\\lambda \\|x\\|_1 + \\frac12\\|Ax-y\\|^2\\right)\\right)\n", "$$\n", "where $\\lambda>0$ and $\\beta>0$." ] }, { "cell_type": "code", "execution_count": 2, "id": "08fbac5f-c49e-40f3-ad37-752e4d974669", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "lambda 0.005524786083441602 , beta 5.0\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "p = 20#signal dimension\n", "m = 40 #number of measurements\n", "\n", "#make x0 sparse\n", "x0 = np.sign(np.random.randn(p,))\n", "x0[np.random.permutation(p)[:9*p//10] ]=np.zeros(9*p//10,)\n", "plt.stem(x0)\n", "\n", "A = np.random.randn(m,p)/np.sqrt(m)/4\n", "# A = np.array([[1,2]]).T\n", "# print(A)\n", "y = A@x0\n", "\n", "lam = np.max(np.abs(A.T@y))*.1\n", "# lam = .5\n", "beta = 5.\n", "\n", "print('lambda ', lam, ', beta ', beta)\n", "\n", "#smooth part of log density and its gradient\n", "fval = lambda x: np.linalg.norm(A@x - y)**2 * 0.5\n", "grad = lambda x: A.T@(A@x - y)\n", "\n" ] }, { "cell_type": "markdown", "id": "324ca835-5a97-4c88-ad4c-c1492a428b1c", "metadata": {}, "source": [ "## Proximal Langevin" ] }, { "cell_type": "code", "execution_count": 3, "id": "cad14249-14af-42b4-98e5-695f7d19e20d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.1928833042471887\n" ] } ], "source": [ "import time\n", "\n", "\n", "#Lipschitz constant of smooth part\n", "Lf = np.linalg.norm(A.T@A, 2)\n", "\n", "#parameter for moreau envelope regularization\n", "gamma= 1/Lf/5\n", "# gamma= 1/Lf/100\n", "\n", "#stepsize\n", "tau = gamma/5/(Lf*gamma+1)\n", "print(tau)\n", "\n", "# We will record the results in the following lists\n", "method_list = []\n", "sample_list = []\n", "time_list = []\n", "\n", "\n", "#number of samples and burn in\n", "n_exp = 5\n", "m_exp = 4\n", "n = 10**n_exp #number of samples to generate\n", "burn_in = 10**m_exp #number of burn in samples" ] }, { "cell_type": "code", "execution_count": 4, "id": "c278ce87-32c3-4156-aabf-e50a4a187452", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running prox-l1 sampler ...\n", "\n" ] } ], "source": [ "#defined the gradient of Moreau-envelope of the density\n", "def soft(x,tau): \n", " return np.sign(x)*np.maximum(np.abs(x)-tau,0)\n", "grad_F = lambda x: grad(x) + (x - soft(x,lam*gamma))/gamma\n", "\n", "#Run proximal langevin\n", "print('Running prox-l1 sampler ...\\n')\n", "name = 'Prox-l1'\n", "Iterate = lambda x: samplers.one_step_langevin(x,p, grad_F, tau,beta)\n", "xinit = np.random.randn(p,)\n", "\n", "t1 = time.time()\n", "samples_proxl1 = samplers.generate_samples_x(Iterate, xinit, n, burn_in)\n", "time_list.append(time.time()-t1)\n", "\n", "method_list.append(name)\n", "sample_list.append(samples_proxl1)\n", " " ] }, { "cell_type": "code", "execution_count": 79, "id": "652c5e5b-7a4b-4177-9cee-4e3d0a0f71a4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running Proxl1 MALA sampler ...\n", "\n" ] } ], "source": [ "#Run proximal langevin with metropolis hastings correction\n", "print('Running Proxl1 MALA sampler ...\\n')\n", "name = 'proxl1-MALA'\n", "\n", "Iterate = lambda x: samplers.one_step_MALA(x, p, lambda x: fval(x) + lam*np.sum(np.abs(x)), grad_F, tau,beta)\n", "\n", "t1 = time.time()\n", "samples_px_mala = samplers.generate_samples_x(Iterate, xinit, n, burn_in)\n", "time_list.append(time.time()-t1)\n", "\n", "method_list.append(name)\n", "sample_list.append(samples_px_mala)" ] }, { "cell_type": "markdown", "id": "0876309f-29a3-4e2c-98eb-2907c55fba22", "metadata": {}, "source": [ "## Hadamard Langevin" ] }, { "cell_type": "code", "execution_count": 5, "id": "d5670187-732a-428a-a197-ef75ce10b62e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running Hadamard sampler ... \n", "\n" ] } ], "source": [ "n = 10**n_exp #number of samples to generate\n", "burn_in = 10**m_exp #number of burn in samples\n", "\n", "#we will use the same stepsize as for proximal langevin\n", "print('Running Hadamard sampler ... \\n')\n", "name = 'Hadamard'\n", "Iterate = lambda x: samplers.one_step_hadamard(x, p,grad, tau, lam,beta)\n", "\n", "#initialization\n", "uinit = np.random.rand(p,)\n", "vinit = np.random.randn(p,)\n", "uvinit = np.concatenate((uinit,vinit))\n", "\n", "t1 = time.time()\n", "samples_uv = samplers.generate_samples_x(Iterate, uvinit, n, burn_in)\n", "\n", "#take the Hadamard product for samples to the required density\n", "samples_x_uv = samples_uv[:,:p]*samples_uv[:,p:]\n", "\n", "time_list.append(time.time()-t1)\n", "\n", "\n", "method_list.append(name)\n", "\n", "sample_list.append(samples_x_uv)\n" ] }, { "cell_type": "code", "execution_count": 25, "id": "bb2cfd2f-5ee5-400b-8237-1334c09a6ad7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running Hadamard MALA sampler ...\n", "\n" ] } ], "source": [ "#Overparameterized langevin with metropolis hastings \n", "print('Running Hadamard MALA sampler ...\\n')\n", "name = 'Hadamard-MALA'\n", "Iterate = lambda x: samplers.one_step_MALA_hadamard(x,p, fval, grad, tau, lam,beta)\n", "uvinit = np.concatenate((uinit,vinit))\n", "\n", "t1 = time.time()\n", "samples_uv_mala = samplers.generate_samples_x(Iterate, uvinit, n, burn_in)\n", "samples_x_mala = samples_uv_mala[:,:p]*samples_uv_mala[:,p:]\n", "time_list.append(time.time()-t1)\n", "\n", "method_list.append(name)\n", "sample_list.append(samples_x_mala)\n", "\n" ] }, { "cell_type": "markdown", "id": "a4807fcc-130e-4e1e-8b11-2df43f3f1325", "metadata": {}, "source": [ "## Running the Gibbs sampler" ] }, { "cell_type": "code", "execution_count": 6, "id": "1ee1ab93-d6e8-472e-a9d7-6067c342962c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running Gibbs sampler ... \n", "\n" ] } ], "source": [ "print('Running Gibbs sampler ... \\n')\n", "name = 'Gibbs'\n", "n = 10**(n_exp-1) #number of samples to generate\n", "burn_in = 10**(m_exp-3) #number of burn in samples\n", "\n", "init = np.ones(p,)\n", "t1 = time.time()\n", "gibbs_x_samples = samplers.gibbs_sampler(A,y, lam,init, n, burn_in=burn_in, beta=beta)\n", "# gibbs_x_samples = gibbs_samples[:,:p]\n", "time_list.append(time.time()-t1)\n", "\n", "\n", "method_list.append(name)\n", "sample_list.append(gibbs_x_samples)\n", "\n" ] }, { "cell_type": "markdown", "id": "6593f24a-3967-4beb-b655-e34cec8107c1", "metadata": {}, "source": [ "## Visualize the results" ] }, { "cell_type": "code", "execution_count": 15, "id": "64f9a857-9d4b-416a-864d-6c92f206228f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Prox-l1\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiYAAAGiCAYAAADTBw0VAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC7pElEQVR4nOydd5QURdfG72zOywZgWVhyZskZQaIgAkoQJQgiJlAQxEDQV0BFMGBWEEHMiAQVQRGUJDnnnHPcZXdZ2Dj1/fF8RXX39KTNMvd3Tp2Z6ek0Pd1VT91765ZFCCGIYRiGYRimCOBV2CfAMAzDMAwjYWHCMAzDMEyRgYUJwzAMwzBFBhYmDMMwDMMUGViYMAzDMAxTZGBhwjAMwzBMkYGFCcMwDMMwRQYWJgzDMAzDFBlYmDAMwzAMU2RgYcIwDMMwTJEhX4XJtGnTqE6dOhQWFkZhYWHUvHlz+vPPP/PzkAzDMAzD/Iex5OdcOb///jt5e3tT5cqViYjom2++oXfffZd27NhBtWrVyq/DMgzDMAzzHyVfhYkZkZGR9O6779Ljjz9ekIdlGIZhGOY/gE9BHSg7O5vmzZtHqamp1Lx5c9N10tPTKT09/fZnq9VKCQkJFBUVRRaLpaBOlWEYhmGYXCCEoJSUFIqNjSUvLzejRkQ+s3v3bhEcHCy8vb1FeHi4WLJkid11x48fL4iICxcuXLhw4XIHlDNnzritG/LdlZORkUGnT5+m69ev04IFC2jmzJm0evVqqlmzps26RotJUlISlS1bls6cOUNhYWF5d1LLlhH17q1flpSUd/tnGIZhGA8mOTmZ4uLi6Pr16xQeHu7WtvnuyvHz87sd/NqoUSPasmULffTRR/TFF1/YrOvv70/+/v42y+WonjwjIMB4kkR5uX+GYRiGYXIUhlHgeUyEEDqrSJEgI4OoYGOAGYZhGIYxIV8tJuPGjaPOnTtTXFwcpaSk0E8//USrVq2ipUuX5udhnWMmQrKyiHx9C/5cGIZhGIa5Tb4Kk0uXLtGAAQPowoULFB4eTnXq1KGlS5fSPffck5+HdY6ZMElPZ2HCMAzDMIVMvgqTWbNm5efu85aMjMI+A4ZhGIbxeHiuHElRi3thGIZhGA/EM4WJmSuHLSYMwzAMU+iwMJFkZRX8eTAMwzAMo8MzhYkZLEwYhmEYptDxTGFitdouy8ws+PNgGIZhGEaHZwoTM9hiwjAMwzCFjmcKE44xYRiGYZgiiWcKEzNYmDAMwzBMoeOZwoQtJgzDMAxTJPFMYWIGB78yDMMwTKHjmcKELSYMwzAMUyRhYSJhYcIwDMMwhY5nChMzWJgwDMMwTKHjmcKELSYMwzAMUyTxTGFiBge/MgzDMEyh45nCxCwlPVtMGIZhGKbQ8UxhYgYLE4ZhGIYpdDxTmHCMCcMwDMMUSViYSDjGhGEYhmEKHc8UJmawxYRhGIZhCh0WJhIWJgzDMAxT6HimMOEYE4ZhGIYpkrAwkbAwYRiGYZhCxzOFiRkc/MowDMMwhY5nChNOsMYwDMMwRRLPFCZmsDBhGIZhmEKHhYmEhQnDMAzDFDqeKUw4+JVhGIZhiiSeKUzM4OBXhmEYhil0PFOYsMWEYRiGYYokLEwkLEwYhmEYptBhYSJhYcIwDMMwhY5nChMzWJgwDMMwTKHjmcLEzGKyd2/BnwfDMAzDMDo8U5iYsX17YZ8BwzAMw3g8nilMzCwmDMMwDMMUOixMGIZhGIYpMnimMGEYhmEYpkjimcKELSYMwzAMUyTxTGHCMAzDMEyRxDOFCVtMGIZhGKZIwsKEYRiGYZgiAwsThmEYhmGKDJ4pTBiGYRiGKZKwMGEYhmEYpsjgmcLEniuHJ/JjGIZhmELFM4WJPdLTC/sMGIZhGMaj8UxhYrWaL2dhwjAMwzCFimcKE3uwMGEYhmGYQoWFiZaMjMI+A4ZhGIbxaDxTmNgLfmWLCcMwDMMUKvkqTCZPnkyNGzem0NBQKlGiBHXv3p0OHTqUn4d0DRYmDMMwDFMkyVdhsnr1anr22Wdp48aNtHz5csrKyqKOHTtSampqfh4257AwYRiGYZhCxSc/d7506VLd59mzZ1OJEiVo27ZtdPfdd9usn56eTukacZCcnJw/J8YWE4ZhGIYpkhRojElSUhIREUVGRpp+P3nyZAoPD79d4uLiCvL0WJgwDMMwTCFTYMJECEGjRo2ili1bUnx8vOk6Y8eOpaSkpNvlzJkzBXV64Natgj0ewzAMwzA68tWVo2XYsGG0e/duWrt2rd11/P39yd/fP/9PJjvbfPnNm/l/bIZhGIZh7FIgwmT48OG0aNEiWrNmDZUpU6YgDpkzWJgwDMMwTKGSr8JECEHDhw+nX375hVatWkUVKlTIz8O5jj2LCbtyGIZhGKZQyVdh8uyzz9KPP/5Iv/32G4WGhtLFixeJiCg8PJwCAwPz89A5g4UJwzAMwxQq+Rr8Om3aNEpKSqI2bdpQqVKlbpe5c+fm52GdwxYThmEYhimS5Lsrp0hy4YL5chYmDMMwDFOoeOZcOTt3mi/nPCYMwzAMU6h4pjCxZ8lJSyvY82AYhmEYRodnCpP/z0BrAwsThmEYhilUPFOY2At+ZWHCMAzDMIWKZwoTX1/z5RkZzrdNTSVavNi+O4hhGIZhmBzjmcLE3ugbV4Jfe/Yk6taN6Jtv8vacGIZhGIbxUGFiD3sWk7NnicaNI2rVimjZMiwbPbrgzothGIZhPIQCm8TvP8H/Z6bVkZpKFBdnuzwujqhcOaIHHySaOjX/z41hGIZhPADPtJiEh5sv9zK5HDt2mK977BjR6dNE779PdPly3p0bwzAMw3gwnilMzAQIkXmMyfHj5utev67eT5yY61NiGIZhGMZThYk99uyxXXb1qvPtli/P+3NhGIZhGA+EhYkzrl1zvs6lS/l/HgzDMAzjAbAwcUZCgvN1kpOJMjPz/1wYhmEY5g7HM4WJxWK+PCDAdpkjYeLtrd4nJubunBiGYRiG8VBhYo/sbAz99fYm2rYNy5y5cuQIH1dcPgzDMAzDOMQzhUlgoPnyrCyiF18kslqRn4TIscUkO5soIsL5egzDMAzDuIRnCpPYWPPl2vlvTp7Eq3ZYsBlBQXhliwnDMAzD5BrPFCb2Yky0xMfj1ZkwsVrxyhYThmEYhsk1nilMXJkZuFQpiI6kJMfrye/ZYsIwDMMwucYzhYkrFpObN4lu3FAWEXtcuIBXHpXDMAzDMLnGM4WJK9y86dyNo8WZZYVhGIZhGKd4pjBx1WLiTJhER6v3LEwYhmEYJtd4pjBxhZs3nbtnxo9X792xrjAMwzAMY4pnChNXgl9TUpyLjbAw9Z4tJgzDMAyTazxTmLjC9evOhcmXX6r3HPzKMAzDMLmGhYkjrlxx/P3ateq9q8Lk5Emis2dzfEoMwzAMcyfjmcLEFVcOEdGJE67v0xVh8tVXRBUqEMXFqbl4GIZhGIa5jWcKE1c5dcr1dVNTiTIzHa/z0UfqfaNGznOkMAzDMIyH4ZnCxFWLyfnz7u3XUfbXrCw1/47k4EH39s8wDMMwdzieKUxc5fJl/Wdvb8frX71q/7stW4iSk4kiI4latFDLGIZhGIa5jWcKk9q1XVvPaAGRMwnbw5Ew2b8fr02aEDVtivdbt7p2HgzDMAzjIXimMHHmyvH3x2tamn55RITtutpljoSJjFcpV46ocWO8Z2HCMAzDMDpYmJhhL4i1RAnbZb6+6r2rwqRRI7zfscN5wCzDMAzDeBAsTMywN1qmeHHbZVlZ6r0UJqdO2YoUKUzKliWqVIkoMJAoPd29kT8MwzAMc4fjmcIkp4SFEfn46JfduqXenzyJuJTy5SFiUlPVd1qLiZcX8pkQuZcrhWEYhmHucFiYuENAAESFFq0w2bePaNcu9XnAALxmZqpsr+XL41UKk+PH8+VUGYZhGOa/iGcKE1fzmBjZvp0oO9t2uYwzOXaM6MgRtXzVKhzr2DG4fIKDiWJj8V25cngdMsR8nwzDMAzjgXimMHGG0Soi2bPHXETIWYYTEvTCJDERFhGZSK1aNbXvunXVehs35v6cGYZhGOYOgIWJGe6mipdWkOxsohkz9N9t3aqESfXqavnAger9v/+6f44MwzAMcwfimcIkp64cLZ9+qjLBlimjlqek4LVyZbxu2WIuTAICiKZOxfsNG3J/PgzDMAxzB8DCJKfcukUUHo73MiGblj598Lptm7kwISJq3hyvGzbkzTkxDMMwzH8czxQm0vXiiEcecfx9crKKLUlOJoqOVt/5+hJ17Yr327YRbdqE90ZhUr8+hh9fucL5TBiGYRiGPFWYOJuMj4goLs7x98nJKh39lSv6rLCZmURJSXgvXTtERFWq6PcREKDm7dm+3fk5MQzDMMwdjmcKE1dITDRfLkWNnClYrmtMV//++7biJiDAdn/16+N1584cnyrDMAzD3Cl4pjBxJZ7j4kXz5YGBeE1JUSnqU1KISpfWr5eVpZ/F+NtvzfdXrx5et21zfk4MwzAMc4fDwsQeMlOrERnompysrCS3bulH5hBB2Lz0Et5Xrmw/ZqVJE7xu3swBsAzDMIzH4+N8lTuQc+ecr6NNLa/Fzw+vyckqiDYjA1ldtZw9S9SmDdHatXDpWCzm+6tXD/u8ehXJ2CpVcuUXMAzDMMwdiWdaTG7edL5OZqb5cmkxMbpvtBP2ESH4NS2N6K67MKOwPfz9iRo0wHvOAMswDMN4OJ4pTOxZL1xBBrBqg1+JiC5cUO9l2vlLl1zbZ506eNWms2cYhmEYD8QzhUluYjm0wkQOFyYiWr9evZcjd+wF0BqRo3fsxbXkN1arSsN/6xbR998THTpUOOfCMAzDeDT5KkzWrFlD3bp1o9jYWLJYLPTrr7/m5+EKhgoV8JqSojK/EhEdPareZ2Xh9cUXXbOCSJdQYQiTK1eIypeHmGrRgigoiGjAAKKaNYl+/rngz4dhGIbxaPJVmKSmplLdunXp008/zc/DuI8jV45WbGjx8UGw60MP4bPVap6XhEhZZNauJerQwfn5yBE9rgTl5pSLF4n27rVd/uGHRGfO4L12zh6rlWjwYM5IyzAMwxQo+SpMOnfuTG+++Sb17NkzPw/jPo5cObVqmS/PyiI6fx7DfmUMiStJ0U6fJkpIcLyOFCb5ZTHJziZq1Qp5Vdas0S//+mvb9RcsIGrWDAG9332XP+fEMAzDMCYUqRiT9PR0Sk5O1pV8wZFlIijI8bbZ2WqOnDfeUMuHDCG6ds12PhwionXrHO9TCpPr121H9+QFO3YoV9MPP6jlf/0FseXjQ/TJJ3DrZGUR9exJ1K8f1uGZjxmGYZgCpEgJk8mTJ1N4ePjtEudsvpqcYi+ws00b++4ZLSEheNXmOrnvPozSuftufNbOx6O1UpgRGopClD/unPffV++XLYPF6PffiXr0wLJnnyUaNgwTEcrz5sRvDMMwTCFQpITJ2LFjKSkp6XY5I2MfCoqYGNeGEstkatoGe+tWvFatildvb6LXX8f7996De8QR+eXOWbOGaM4c9fnkSaI//iDq3h2J4YiIBg603a5uXcySfPUqx5kwDOM6GRlwc9+6VdhnwvxHKVLCxN/fn8LCwnSlQElLc209mWRNy+uvQ6hIYZKRQTRokPp+4EC4geyRH8IkM5NoxAi8j4gg6tQJ77t2VcODv/5aJXjTEhCg8quMHZt358QwzJ3B8eNEf/9NNHcu0eefE02aRDRlClF8PCYnjYsjeu45opUr1UjF3JCWBrf4F19gxOAHH6BOq12bqG9fohMncn8MpkjgmSnp5UR8Rm7eNBcdRnzsXLbz54mqVFGf/f3hoklJwb537TIXAURqyHBeunJWrULPJSyMaPduBOL+9Zf6fvp0okcftb99ixaYXPCnn+Duadky786NYZj/JgcOEL36KtHChY7Xu3YNsWuffIIRjQMGYPoNIRBL9/jj+sEGyclIVPn554iLCwtD/RkdjW2+/RZ1qRl79+J8evRAjFzbtmqSVeY/R74Kkxs3btBRTX6PEydO0M6dOykyMpLKOkrTnt/ExJgvT0tTc+GY4eUFS4OXxtBUtiwafCIo9ho11HdHj+p7Co6EiZx3R5tBNresWIHXHj1gkSldGrEkv/+OHCtPPeV4+zFjUKkQYXQOCxOG8WwWLkTKhOxs1IPVq0M4REURFSuGjlWjRqhf1q3D+r/9hk7b22/r9/X555jotGxZWF3++cf58YsXx/6TknDcJk1g2f3oI2w/dy4KEeYhe+AB1GOuxA4yRYZ8FSZbt26ltm3b3v48atQoIiJ69NFH6WuzYaqFTVqaCmw10rs3ZgmePFkvXipWVMLk5Emipk3Vd//+q/ezLl9O9Nhj5vuXWWSvX8/p2duyejVe5X9gsagejCvExhItXUp0771E8+YhVkYG6TIMUzTIyiL68ku4NrKyiD79FMH4ec369bB6ZGejTnj7beXuNaNrV5T0dKLZs4mWLCEqWRLbnziB+unNN/Xb+PkhVYFMy5CSgqk9Ll8mat4cuZW8TCIQunaFdXfWLAiiPXtgLd65E/F9gwejY1a9OoqjDihT6OSrMGnTpg2Jojiiw9453bqlYi+MhISouXG0rpxmzeAyIYLP1dcXga/Z2fo09USOR+cUK4bXvBImViseTiI1wiYntGmD18REmFY3byZq3DjXp8cwTB6wZg3csSdPqmVdu8JNUq8env0aNex3uJyRno7y889w52ZkIK7j99/tu7SN+PsjncKQIWqZEJj6Yv58xMLVqoX9ly+fs/O0WGBJadQIny9dIlq8mGj0aLh5/r9TTESwtEyfTtSrl34fR46gzk5MhEVm1y5YsC9fhlsqOJioVClYoB95hKhcOdvzOHAAv8vbW8XaxMRwh85NPDPGxF6Qa1qa/SCt0FAlHnx91XKte2P8eJgmAwOJbtxQwVglS+JBuXLF/jnJfScmuvILnHP6NM7Bzw+Wnpzi748HWI4qatGCaP9+fSwNw3gyO3Ygg3LNmkQvv+z6JKFCIPj8q6/QOPv7E1Wrhp59jx72rRE3b2Im8qVLkQogOxsujrFj0RmZPZto5ky1frFiCELt3h0NpT3S0oi2b0dDnp6ODteiRfo6sUcPxHq4KkrsYbHA+jJgQO72Y4+SJSHO7r+faOpUomPH4Gbavx8jDR98EN8NHYrruHgx1nFEUhJcUtu2IcamUSMMdhAC1+PYMdvOKBHai06d0KFr0ADbh4YiFkYrxITI3QSzdxAWUSRNGiA5OZnCw8MpKSkpb0fo2Pvzy5aFa0ZaQLSMG4chtA8/TNS6NdEzz8BvWb06KhMtxYrB8iEFSc+eKlAsOdlcPf/zD9LXx8crS0du+O03VER16ujzreSEc+cgumbNwufOnTHkmGE8FSHQO54zBy6NzEwsnzQJdYUrvPEG0WuvmX/n7Y1nrn59NJznzqFuOH6c6Jdf9C7ifv2IZsxAj14IPJsrVkAw/fuvXljUqoXA0+vXIYB69SJq1w5u5unTYRkww9+f6JVXUMxcKf8VMjKIJk4keucd206ory8s4KVLw8JUtSo6dSVKwFouBzB8/z3aCLOm02KB4ClRAikkDh3CdvZo0ACCdu9e1Pu1a6ONGTnyPx8Xk5v22zOFSdOmcEkYKVkSloC1a22/mzwZptHOnfG6YweWp6SoTLASiwU3bWAgKpCPPlLDdleuVO4RLdu2QYGXLp03Q4bHj8cQ5kcfNU87nxOOHMFDlJVFNG0arEXx8fbXz85WvQmGuVM4fhzDU7V1SKlSMPt7eRF9/DESLdaogWfm+++RCygxES6XFi3gTpgyBduOG4c66cYNZFrescN5tuhSpdCoPf00XDf2OlvZ2RBPCxfC+uEoZQERGtSGDdFI16lD1KULOmQ+PnpL8X+dffsQFLt9O2JXHnmEqH17110uFy9iqPSlSxCRqamwWnXqZOvi2bMHwm/zZhyvbl1YbVavth9W0LQp0a+/2h+o8R8gV+23KMIkJSUJIhJJSUl5u+NRo4TALaEvxYoJ0aSJ+XeffirE+vV4X768fn/BwebbyLJwoRC+vnj/8cfm53TsGL4PCsqb39ixI/b3+ed5sz/JSy/pf9svv+i/37hRiEmThHj2WXxfubIQiYl5ew5FiaNHhbhwQX1OT0dhih43bwpx+LAQGRk538f+/UJER+PeDggQolUrIebPF8JqFeLJJx3XA2Zl2DDbY1itQnz1lRCNGglRsSL2+9ZbQjz4INbftAnruMv580IsWCDEmjX4Hd9/j2OUKydE27b4Lisr59eGcY+zZ3HvvPEG6ukDB4SYOVOIiAjcG3FxQmzblv/nceWKEJcv5/luc9N+e6Ywef5580oiMFCIevXMv/vmG9wkREJ4eQmRman2FxPjuPLZuBGih0iIZ54xP6eEBLV+Wlrufl9WlhBhYdjXzp2525eRW7eEqF5dnWu5cnigrFYhDh4Uwt/f9ve/8YYQTzwhxF13oWG4E9i1C6JLNlDvvivEyZNoSAIChJg3r7DPkJEcOiTEU0+pe7NWLSHOnME9m56OZ/nECTzjO3YIkZQkxAcfQHTUqiXE5MlC/PuvEHv3orEgEqJ+fexDS1aWEK+8IkTt2qoj4u0tRLduQrzzDjol8+dDXNx7rxBffslCgLHl8GEhqlbF/ePjI8QLLwjx8stCjBghxOzZQty4odbNiUAVAvfu118L8dhj6AybCeRcwsLEXexZTLy8VGMjP2utHkuXqs87dqj9OesVnT4NKwuREF26mJ9TdrYQFgvW0fbAc8KuXdhPSEj+VHxnz0LhS/FDJER4uBCxsebXTlu6d8/78ylIFi4U4umnhShe3PF/HhQkxL59qGQmTBBi1aqcVyKMe1y/LsS0aegE3H+/eq6MRVo6fX3tr2NWqlVDL9MRiYlC/P238/UYxoxr14To1cv8/gsPh2iOi4PYrldPiDFjhPjuO9Qz2dnm+0xJgTiuXdt2ny1b2t8uh+Sm/fZM578Q5sutVn2gkkyoJrfRjqrZvRuxJkQIHpPJzMyIiYH/8eRJ+wnUvLwQNJuYiJIb36JMVNSsmX4ywbyidGlEs4eFwTdLhIj1pCTkY9m+HTlQLBbE02gj1X/7DdHrlSrl/XnlJ2fOIPDvu+/UslKlEAT3xx9Ezz+PZTVq4J45dAiBhtp7qFw5oh9/RIwBk7fs3o3EWomJyFRsHN3WtSvRCy9gFET79ogTkTN5y8DVatUQZHrjBmLNhg1DPNWyZQh0PX0aAfJ//YUYEUcUK4bjMExOiIxE7qiffsJ9HRGBsmgR6s9//1XrynwtkmLF0I5lZREFBWGElZ8fAn/lve7tjcDqli0xOKNlyyI1IsgzhYm9XCVEGA5mRnq6fi6GAwfU+8WLcdO0aGEbre3ri1KqFD5fvWr/2JGRqFATEpz+BIfMm4fX++/P3X6c0a8fKvGDB4l++AFBc59+qh8Ct2oVgomDgjACYdkyDDecONG9Y507B8F1zz3qWhYUGzdCfN66pcRWrVrIjVChAqL34+MR6PjII6gUWrRA42e1YrREaioCIDt2RCBc8+bunUNmJoLt/voLIyoefBCNbU5JT8d9+V8eYSEEcky8/TYCTrWBndWqYVRaRAQSDGpz+Rw4gGc5MxMB72fOIHNpuXLqOa9SRYl6mQMjNRVBoK5MW8EwucViQZB1375q2TvvYKDE0aOoV6pXJ9qyBSO3LlxAgK02F9aNG3iVgqRKFYz46dNH5eUqgnjmqJwnnlBDXx2h7e3OmQMB8sMP+Ny7N5IOGWncWM00TIRKLC0No3I+/hhWhqQk8+PJbX//PeeNTkoKFLPVih5eXFzO9uMuQjhX3D/+SNS/P94fOqQmPHRGUhJGIBw/js+jR6sRDfmBEPrRVvfeC0FQqhTyubgiKq5cwf/YvDkqj6QkDM1csQLWon37cG+cOoXKxM8PjaeZ6Dp2DKm19+3TL2/RAtcwMBAWtqefRkNrxunT6HllZmLUxy+/wOK3Zg1EozOuXsVQycaNbUehFQQzZ+LaV64M4bdvH3qJ6elqHSla69TB88ajwRhPIyEBncFq1SA8kpNRt2Rno1StWmCWER6V4y72fHeOyk8/IYJdfr7rLvN9f/aZfjtvbyyfNk3FXtiLNbjnHhVom1OWLcM+jCOHigKpqUKULKmCB10hOxujEYz/x7JltutevCjEkCEYkTRwYM5GX2RkYIQCEUYgTZ+u/rdjx9zfn5bkZCFKlcL+nn9eiD599L/JYhGiXTsEar76qhC9eyM+RQZkR0YK8dBDKGb3aLlyQqxebRujdPiw/QDtMWMcn3NiIq6ltzfWj4gQYsaM3F0HI5mZQqxdi2dn7FgEmlqtQmzejIA/GThur9SujfgvhmGKDBz86i6uCJMSJfSf58wRIjRUfa5a1Xzf27fb7ispCZWt/Hzxovm2Dz+M7z/8MOe/bcIE7KN//5zvIz/ZuVNdh127zNc5c0aI+Hj9NfTxEWLDBiGGD8fnKlWE+PVXDAEVAgKmQwdbUfjDD0IMHoxREDVqCFGpkmPhZxSWsjz2WN78/jlzbMVIkyZC1Knj+H6MjEQQtWTLFgSyvfWWEK+9ht+lXb96dfzul15SQcq+vkK0b4/gb3mfEEHIjRsnxPHjCJATQoh16zCSSnvPa0tsLITV9es5vxa3bgkxciT+W+P+jb/HywtC7YUXhJg4ER2FAwdwvhxUzDBFDhYm7mLWA3dWZM9ZlpIlzfd98aLttnv3Yjii/Pzvv+bbDhmC7197Lee/Tfamp07N+T7ymx49cI4vvmj+vdGS4OcHgSEExttrRwPFxwsxYIB+VIVRVJoVs/8gJUVt26wZrE4lS2KoXm5yX2ixWtX9FxeHnBSSf/8VYvx4DDl97DGsFxSEKPwlSxzv9/JlITp3xvpmv7dZM+Sx0J6HUchpRZBR5KxfjxFekyfj/5DfNWggxKVL7l+H7duV9YwI592ypRBlyuj/9x49hFi0CMPpGYb5z8DCxF1yIky0PUwiDMU1IzvbdtulS9Gzl5+ffho5L27d0m87bhy+Hz48579Nmv0XLcr5PvKbhQtVr1s7nPnCBX2SqgcfxFj7a9f022/dCveC2f80bRoa3fnz1bXw9haiXz8M1ZbrNWli29N+7z18V7Fi3gkRM7KyMKzPlfs6Pd39Id9XrsDdcvfdEB9vvGGe9O3SJSGeew73W/PmenHn4yPEoEFCrFxpe50uX8Z/KIdMR0W5lwjqyBHlWoqMFOLnn/XXe9s2Ib74QohTp9z73QzDFBlYmLhLTmJMpAtBFl9f+/s3JhmbORPLZdIlaZo25jR5911858gNY7WiUdCa9bXfydwMBw64f10KirQ0ld3wjz+wbOtWfU99wgTn+1m7FlaHMmWEmDXL3DW0Zo0+qdulS8qq8OOPWHb6tBCjRyuXQl7HUPxXsFph8du+3bX8G7t3C1GzJq5ZsWJwtdnb74kTsDyVKqVy3NSpkztXEMMwRRYWJu7Ss6f7wqR/f7yWLo1Xi8X+/qOibLdfssQ8df0PPwhRoQIsHLNmYdl999nf93ffKTeAsRd87pwSPY7Som/aVPgZWEeMUK6Y1FQkrSJCIONvv+Xvsd94QzWmn3yiRBIR3EJ5nGjojiYpSYgWLXDtgoOFmDsXlsAdO4R4+224FmVyQW1p3hyJ+hiGuSNhYeIuOREm0g3QqpVaJgMvjWizx8oSFmYeSKjNIDpvHl6bNTPf7w8/6Lc19lBXr1auCHvs2gXhEhCA9MaFxeXL6npIIRcTUzCxBLduqcZUllq1YEHhQEr3SUkRonVrx8+Pjw/cZz//DBcNX2eGuaPJTfv9H86uVABo8zvIpDXajKVnzphvZ5Y7JDkZ+UyMaLPJbtuGV2PWSiIkkpI5QCSbNuk/HzmC18qVbbcXArlY6tZFjpO0NKLBg5GltTAoXlxlS5VTrb/7LhJi5TcBAchJU6YMPrdvj1wiffsWqeyH/xlCQpDgSSYiI8L/2KED8s388Qfu6U2bkP+nbFm+zgzD2IWFiSMCA9X7lBS8li6tllWrhqyTRuLj1fsSJdR7mX3PHjJp2MmTRK+/rpbv369PnFW8OF6NwkSmxa9ZUy2zWpGN1MsLmVq15yWEPsV6QTN6tMpO26CBPsNhfhMRgTTmS5ei4XQlyRhjn4AAoqlTkZFy3z6IzeXL8R937gzxwjAM4wKeKUyEcG09beppmdpXK0yIiMaMsd2uQQP1PiaG6JtvHB/HywvZ+STp6UTjxxPt2UP0669Ify7Ztk1lrd2/Xy2/eFGloh8wQC2fOVNlq5W8/TbRZ5/h/dKljs8tPwkKwtw5Z88SrV6dP/P6OCIigqhTJ/21Z3JHpUoQxmwRYRgmh7AwcYR2HhE54VeJEs7nF6lRQ72/eFFvwTDDaiVassR2+bRpRD16qM8//wzRU60aPh8+rFLmT58Oi0zz5uidTp2KOT++/hrf9+6N/d24QfTyyzCze3tjnpuTJx2fX35TujT3qBmGYRgi8lRhIt0yztD2+uSsw9HRmPxMi3ZGYiK9W+DqVaLQUOfHGjXKdobiadPU+w0bMHEbESaO8/bGpHLnz2PWyOnT8d3ZsxAuL75IVLEitiOCUBkyBBM/EWE+HTnny19/OT8/hmEYhikAPFOY5MTMLCcLi462Nf1fuqT/rA1etVoxy6kz9uxBMG29eubfN29O9OSTeO/rC9FBhIDXX3/FOQQFmQfkVq9uHpB77714LUx3DsMwDMNo8Exh4upU79JNQgSrBBFmbDQGsV6+rP+snXaaCO4SV5g3D6N37DFrFqwkRCruZMMGomHD8F5abj77DAKle3fMtjp1qvn+pDD5+2/9LK0MwzAMU0h4pjBx1WKSnW27LCLCdtivI4uJO+zdq4SHPdavx2unTnh98039kOPWrYmGDsVQ2F9+gavnvvvM91W/Pta7cQPrMkxec+YM0eOPEzVpgpFmx465HuPFMIxH4pnCxFWMlpGAAJSmTfXLnVlMXOXkSb3IiIzEa0QEKnYi5N8gwhDgEiX0QiY+nmjGDOfCKzkZI3q8vJDLhAjbMUxecvIkXJNffUW0ZQtGmlWujBip996zjc1iGIYhTxUmrvbYjMJECoWePfEqhw4bLSbuCJNixfSfs7LwarEQHThAFB4OC0yXLli+YAFcTCEhRC1aqO1GjECcStWqzo/ZowdcQXFxRHfdhWOtXEn0zz8Imj12zPXzZ/SkpSHm548/1BDzgiQpiejPP5VgtVoLx0Jx8yaCtRMSMCptyhSiVq0QH3XqFNFLL+EeXLeOLSgMw+hgYeIIGVcikcnSypfHq4xVOXCA6NNP1fruCBN76wYF4XhyuHBKCsTImTMYkVO5MhpAIqKGDYkmTXLteCtWqNE/Z88SffIJ3D9EGEI8dSoyzHJj4T5WK1xsPXpASJYpQ7RmTf4cSyZ715KURFSlClx3xYphNJiPD0Zide+O/9Zo3csPMjORS2fbNqKoKIi0UaNUBthZsyCKT54katkSAeUjRnCcE8MwRMTCxDH2hIm0ckjrxuLFRMOHE334IT7bizGpU8fczWK2LDUVYkQO6d2xg6hrV/W91qrxyCNqGPDBgxi9c/So7T6FIJowAe99fPC6aZNtkrhNmyC6nn1W/cb/EomJyB+TXyxdioym0lJ24wZEyfz5SojExkIodOlCtGpV3hw3KYno44/h1vP3RzbgqVNx/MmTicqVU67AjAwsFwLWk99+gzWsYUOc5/r1+uDuvCIrC8Js4UJYR+bMIZo9G4kGw8KIGjdG+v/Jk4kGDoRrNCEBv+uxx/L+fByRkoJORX5cB4Zhck4+zN2TZ+TbJH7t27s/iR+REH36YPvNm/WTz2lLSIj97a9cMZ/gz1j8/fG6a5cQe/ao5Q884HibGjX053H0qP53r1qF7/z8hDh2DBP5EQmxd6+a3ddYpk7N22uf3+zdK0RQkDr/KVNsZwvOyhJixgwhli51b983bmBmYh8f7LtJE0ys6OMjRM2a6pgNGgjRqxdeiXA+f/8tRGamEMuXY6LCGzfcm8guK0uI+vVdu0/LlcNEjnFxQnToIESZMubrtWyJCfjc5fBhIbp2xb381Vf6795+G/sODBRiwQIhGje2f56PP47ZiX/6SQhvbyxbtMj98zGSmSnE778LMWaMEJ07C9G3rxD796vvf/lFiEaN1HPWpAkm0ExI4JmlGSaP4NmF3cVdYWKx4PWJJ7D9kSOq8nW0XWyseh8Xh22LFXO8Tb9+QtSrh/e//orGyyhmSpdWDZ62ETaWWrWEyMhQv/upp7D8ySfx+Z578LlqVSG2bkWje+qU7Uyx77/v/jXeuFGISZOE2LIlV3+VSyQmCvH990Ls3q2f/VmWTz9V66akCPHcc+q7++4T4vp1147Tq5fze8XLS70PCFD/pY8P7gHtuhUqYLZdIfA/p6XZP/bcuWq7jz4S4tAhIV57zfb4n39uu21mphBffqkXzfKevuce/T1iZOVKHPvbb3F/TJ2KmbK1x1yyBOuuW6cExosvqvsoKgr7OHcOwmPwYHWdnn4ax3/pJXXNPvgg5wJh2TIhypa1vS7FigkxfboQEyao326vxMUJMWAAngWGYXIECxN3adfOdVHi5aUEyLPPYvsrV1zb9pdf0CskQs81KUl9JytwY5k6VYgHH1QNkBBohIKDbdedP1+IP/9Ej2/ECAiP558XYts2JYCWL8c+rFbVMP7xB5ZpGzsi9DInThTioYeEaNMGwkY2qg8+KMSgQUJcvWp+TRMT0bhMmybE//4Hq4z8natW5e3/p+XWLdX4yxISgt8mhWFYmBDnzwvx6qt64SBLp07OrRdLl9r/n4OCYHGSIjEkRG+9atLE8X1SrJgQJUrgfdu2sPpcvYrfJgQa6bp18f2ECVhmtQpx8yZ6+iVL4rvBgx3/hk2b1H+qFSdPPYV7U3sNMjOFeOYZ++d8110QdURCVKokxJkzyjKjbfgDAoRYu9b2XObMUeuEhQkxcCCeEbmsYUP8NlfJyhJi5Ei1fVQULEJDhsA6Yjz/bt2EGDUKFp6BA4UoVcp2nfBw83NnGMYpLEzcxR1hEhqKCkp+zshApW227n336XulL7+MXqZsNKRbplgxIdasMd9HzZoQF0RCvPCCOufy5W0bBkeNad++WK9nTzRmL7+sGtGbN7GO1SrExx/bF0lmpXNnCDMt2dlYbm+bdu3y9v8TQoizZ+GOGTjQ9njff491srIcuxK05Z9/7B8rLc3WavXRR0JERprv6+OPcZ8MHaoa5wkThHjvPSEOHhRi9Wq4Fl59VbmF7AmWlSuFePdddS+eOiXEJ5/gd3l7K3dE6dIQh65w7JiyumlLw4YQcElJ+mekXDkImmbNsN3YsUKkpwuRnKwElbHExcH1eeCA/fOYOVO//YgRELZaES6tMfY4cgT3uNaKM2wYXGWS1FSI5WbNULp2df1+9/eHFWbtWiG2b8e9tWRJzlxgDONBsDBxl7ZtXa+YSpbUV3q7d2MfoaG2627aJETx4ub7mTABFg4iNCoZGfaP2bs3Xh98EMc6dEj//csvO68YZ8ww3/dDD9mu68gaQGTrsrJY0Kg4O5YsXl5CXLqUu/9MK8L27UNjqT3Gr7+i1641v1utaBilRUGWoCD0zrXColgxuOomToS1ZcQIiJ7OnWEp027/3nvYf2qqEP/+q4SDvF+k8MvKUlaFcuXgyjCSkgKRsnatEDt3Oo5B+uADiAfj8tBQ961Sp08r0aa1IkVFKctacDCsfkYSE4V45BEhfH2FqFLF1j05e7br55GdrbeezJ+P/7FPH7WsVSs8E3364Jz798ez9v77+k5DQACsLPJ/nzcPrq0vv4QVcfduIYYPV+t36YL/NzIS25YsCctXy5a295exhIUJ8dZbLFAYxg4sTNylTRvXhQmR3gqyejX2IStv2WMlQqNmbx9ffaV60DJWZd4883Xlvhs1Qg973Dj995GRaBQdkZwsRESEfrsGDWBpEAI9482bUWEvX24/QNJR6d8f+zCKsUceQQPzwQdqWbduOf+/Nm7Ebw4Pt40fCAhQQkEya5YQtWvjv2neXIj4eNUAa90D33yD5e5YjGbMMD/HTz6B++a33/TLr1+Hq4MI1/iTT/S9eSMJCRAZ588LUb26Ou4zzyjrUFCQEKNH4/yff96xVcIRSUnK5RQUpG/k/f1x3Y0cO6Z3U8n7UT4jUky7i9ZtJON+7rrLtf+kWTMIxIsX8d9rA5HtFWdxU5mZEJyu3ButWinhbbVCgKakwNKWkKD2eeMGLHMTJ0KMpaRwsC1zx8LCxF3cFSbasmAB9lGnDj7LWAoix0G1MmCWCD1yIdC7N66n9c+Hh+t7sx9/rBrmr792/juXLUNvf+hQ+N8zMoQ4cUIJJGelWDFz37u2aK1JgwbpAzgTEvS96WPHcvZ/aWMPtMc9c0ZZUg4cQA9Y+39oi7e3cvFIMjKUCLznHr0QqFnT1t3x6qs5O/8jR/TXISYGAbmZmY6327VLiKZN0ZAtWKDEVV7GPRw7prfCVKqEoFztiKXkZLhYnn9eWZlKlxZi4UJ9fE9oqBK+7pKRoYKziWAZeeUVWCWGDYMFQz4LcjRZnToYeXPyJISaVrT6+cGaU78+LCAREbhn6taFdc1VkpIgUL7+GiOrfv1ViLvvtr2/fH1x/0g3lPY5LlMGz7JZsLy3N87puecgWpzdEwzzH4GFibuYVSz2SvPmqkEgUsMj5T60PSp7bpwSJWDelp9ljEZ2tuMYA6NguXRJiMmT8blGDbgKHHHypF5YPPqo42NIl0dUlH5EkTtl2DDbc5DXKCe96e3b1b4rVhTinXfgjvr9d7XOH3/YCpJHHoF168cfMRpjzx7z/csG32IR4uGH0RA+8oj+f6lQAVar3PRujxyBO0/beD74oOMRMZJLl4SIjsY2Y8bk/BzskZ2NayQb008+gcDctw+iyBhLo7W8JSbCktOqlRB//ZX7c/n7bzTyrtxrJUvCxaMVkDExEBKujrTKCZmZsNJ17Ahx5GyUjzulUiU847l1fTJMIcPCxF2Mw2EdlSefxKvsCX3wAfbhKKeIsbz2mgpo7d9ffy5mQxvNyrvvYv3r15WLxiznw40bsCQkJtoPznRWpkxBfo6cbOvnZztyRwZS+vk5HhJrhpkVShvDcPq0CqD094eguOce93z/Tz9t/ltk8GlekpqKkVey8W3SBOK3eXPEEmm5dAnC5ZFHsG6dOu5fP3eYNMn+/1q5MkaYffeda2IqNxw5IsRnnyGmpEIFiOuXXoIFKSUFbh9pNdGKx1mzVHxPQXLwIARSrVqoWwYMQIySWZxKrVoYdXXgAO67+vXNhY2vL9w9rpKZiU7A+fP59CMZxj1YmLiLOxYT6fuWjZ8crjlokOPtRoxQ7zt1Qq4QY6MqhPKjO8pv8vjj+m3kOY0YoV9+9aptrgxZtG4KbWne3HabvXvVMGdXyyuvqNiDH3/Un9f336v1XE1qduuWEI89prbTjtSIiIDw2r1bWXlq1YLZXbrYYmMhrlwRKFYrLDC9ekHchITAtO7qKJec8NtvtkOXixWDBcdqhWWESCXxs1jyPyeM1aofcuvjAzfajz86t84VNGlpsNBMmQIXZ3Jy/h/z5k33rGbp6QgSr1MHQbWjR5vHF129iiBjY5JDLy+kA3DE1q2oX6TQtVgg6HLqUmOYPIKFibu4I0yGDcOrHK4rXRXaCtys/Pab7bKQENsK9KGH8J0xYC8yUu+TDgxEzzEuTojx47GsQQP9vj76yD0xIcumTUq4VKmCBkqax//6Cz1CmbgsMNB+HIe2REdDOGVl6fO+yMBfZ0iXlSxLlqAnLXOF1K+vLEJVqiBeZ9o02/No2RIiJykJ1+3zz22HWZ85g30Yt506Fee/YwcaGSGw7VdfQfTklm3bIHQnTFABuvbK6NG5P54rWK1CrF+PrMH5bRn5r5CZibgsLy+4iu65B27R+fPxzE2Zglib2rVhtXEno68WqxUux8GD1f9usSAI/oEHhLj3Xoic6tURj+MoP07x4nheckp6OjLyvvqqEIsXw9KXloaA65dfhoCW94cM6t26VeXe0ZKVhfvJUdA3c8fBwsRdzLKD2ityJIT08VeujH1oR+AYR7QMG4bKzGjK7dnT9lykwOnUyfbY9uJP5JBSLy+90DFLJOVK6d0bvv02beC62LFDiRBtRSN7i9nZaLzMkr4ZS4cOqHArVsTncuWc/z9Wq36ESEyMOg/t0FIi/OaEBGwjxUW7dvohwsb/oWRJiAH5e6RbztdXb1b39lb7jI+H9WXCBPW9DITOCzIyVK4ZWSZMQIBpQWTPZczJykI2Zneepz59cmfBsVpV58OV0r8/Og9SRNeurQS7MeeQM86dg9vMGPgdEKB/JokQoPzqq7brRkdDQNWqhWdPdmQCAhDMPX58/lojmSIBCxN3cUeYmBUhhPjiC/VZm0hr5UqMdFi6VIju3fXbtWlj6wOXOTD69LEf6+CozJqFBvb++/HZlUC8evXQyO7cqZbJeXXWr1fLzISUlqwsuGmGDXMcsDh4sP77YsUwEuTaNf3+UlIQi6M1aTdqhHOSnDyJ6yqtSXXrCvHhhxgtQQSLinTfrFhhG4ugLS1bIpaBCCJwzx5UmAkJqECdXce4OOfDtt3lr79wf06blrf7/S+Sna3PSHv6NHrm06fDlTpkCIY0y+9zaqmwR3o64kXk/fHjj4ix+fBDPBtlyyJZW58+EJWvvaYCvatVg0Xs8GG9uE9MtG85uHQJQ8U//dT1XEulSsG1+7//4TmxWoW4cEGJ8apV4aa0WlEuXkRQ86xZyHzbpQtKx44Ypq3tbMTE4Hdq5wSLjcXvNc4JVqKEezFtxYrB6rNmjRDHj7M15Q6EhYm7tGyZO2GSnY2erPy8erV68HftcrytcdTKTz9heatW+BwT4965xMfrrTfavCpmn7Xl5EnkgCCClcFqVanPvb31gsAZf//t/nWsUwfbpqail2b87fHx+mPcuOH8+jzyiH6bEydQ0a9YgUZh/364RYzXZdw4/XZHj6IC7tgRGXi16w4cqIKWn39ebZOYiFE9gwdDcE6ZgoaVcQ2rFWL5q69gLZLu0/Ll1eg4s1KuHKwD3t6wFkyZAqGam6G3WVn474lgmZRzGjlj7VpbC4KfH6wH0l3q64vMzN99h1FmU6diWL+ZizQ2FgHgc+ciDsUo8o3F1xf37Tff6C0cERGO6wJtadYMbioZaJ2djWDdrVuVS/PkSfxH99+P+DI5KeWVK6gD//wTInLjRjyDWVnYx+zZtnlwiCCIPv0Ux7JaIUKvXSt6sU13GtevQ1AvW5bnu2Zh4i65FSbXr+vjGbRD+2QP3FHRzvq7cSOWyUn+unRR673+OoLnXD0vrZtBlgEDEO8iKwPtKJexY5GYStuoy/fr1rl/XefMQQ/L3vkZ0+oTocLXZlaVAaH+/ujZXbiASm72bL15OzAQI6bGjFENgY8PtnGFQ4eUZaZmTeejOZ5/Ho2fzCy6aJH+d9SrZ+7aeuAB969jTjl7Fg1Ky5bocf/9d8Ed2xGZmbAE7NqlllmtiM9o3hxiuHp1++nttaVKFWRrHTcOAtGRRax9e9eCn7Oz0fCPGoVe/LhxKmNvcLDzAFQjly8jHoTIveR9RHAL3303hiNv3Ih97d2rH4118iSC0ytUgJjx8XFvyHJwMDpCI0bA+vTll8jT8tFHiCfJa8uTkawsiJZevWwD74OD9cLLYsE6b7+d99bJokJ6OtqQQ4fgtj14EM/Lzz9DYB4+nDfHycrCvn79VaVFkCM869fP82R/LEzcJbfC5NQpNOrys9YMqR2NY6889pha/+JF1SCnp6thxcbSrZvzoN1vv7VdtngxbriHH1aV9Ztv4r2cw0aOAJGlT5/cXd/0dATemfmpjctq1bLNUEsEEbJtm/nv/PJLfeV58yYyssqsvK6SlAQzd07TipsJwbg4VPraUVDanCv5waFDcCcaGycvLwxvt9fQXLoEAZqbIaZXrkCsJSWh4pNWiqws9MKee05v5apdGxYCexMEBgZCrHTsiEr5/HlkaR0zxnY4tRB4fqZPx31+4AB6fw8+qJ91Oz4elfzp07b5TXbtMk/zL0XFTz/l/NpIN9TBg/gtU6bgN6xaBQF/9934nR06CNGjB65XdjYCvbWTLRJBfHTvbn8SzexsCBY5Y7ij4uWFOLV77kGeIHe5eRMds6efhgCT0zasWwcRtW+fe+ImKwu5c8ym+dCWUqUgUBwlotu1C79p717Ev3Tpgk5NUbO8pKYiEN84EsteqVgR1/mZZ1A3DhyIDpWM5+ncGR21CRPQmf39dwjb3btxvYYNsz8TffXqqsOVh7AwcZfcCpMNG/RDWU+cUPuWPSU5eZ9ZCQtT61utqtd39CgeULNtJk7Uj46xd4NpPw8ciAdYO1zXYlHxGCVK4Byys9V+Q0NRgecVt2659vDJRjU+Ho1pRoZ50OF99+GhNsan2OPmTYjIiRMx+igvsVph1erRAyb5Vav0D7cMZq1d2/3eSEKCbc6S7Gx9r/HQITQO2l65vz9GemktV+3boxJcuRKjSfr0sY2hqVgR88jIuaC0HD8Oc/2YMRBA990H8TBggMr8Gx6uKr7YWOdzzWjv659/RkzWunV5l6dl0yb7br/27WFZGjlS9c5DQiD+R49G3MiAAXD75SVWKyyqxvNq3BjWmmeeMbcaaS0I5cohwNURR4/CDXv2LER8nz74b+xZVYKCYPH79lvn5//PP7aiyaz4+6PD8cADcNG4kvU5IQFTXJw6hec/PR0W06+/tr2fKlaE0Nu0CWJz2zbHoqxGDYz0056H1YrnyV58S1ZW3jTWt27BxTd/PjpQo0bp43ZkCQ+HxSwkBNblVq3QVrmahNOVEhAA60j//uigLlqUb6KNhYm75Db49fvv8efKz9oU4RUqYNmqVfpt5HwpsmiDG6WgWL7c/oR60rVy5oyqGEJCMDLELEnbtm1q/8YHVuuvl26olBQ8uDlx4Thj9WrXrmv9+qqSOH9ePZBr16I3OH06egRRUfju448dVxwZGfrRTn5+7o9wsVoRn/Lbb6jo3YlbuHZN9QJdGcGTkoIeupypuXhxVMoTJ8I1I2MGfH1t4ww6d0bFpw0E/fhjx64Os+LnpxJ7Wa1orFyNTTAWY56W2rX12ZEtFtybc+fmj/sgPR3i7X//g6XOXsPcvTsawLwkKws9Viny09OdZ17WNlAjR8I6kp6Oe27lSlWHhIfDBZuTa7Z5M+JC4uLM/9dGjdAj/+QTCISLF/E7nnpK38EoWRIWiZkzMRBg4EDURxaLufvKYoHoCg+HKO7WDVaWV1+FFcSZ2EpLg8Dp3t28UdceJygI9UOXLrBAGy2yxYvrp/uwWBBXM2UK4mhWrsT1Dw7GffPuu6h33WnAL1+Gpa9hQ/sxQRUq4DpfueJ439evQ0CMGwfrWqVKELdBQXi+Q0Lwmzp2hBBs2BDCplgx/MbYWNStPXviektLUufOSN/Qti1EcR7DwsRdcmsx6dNH/3DIuW9u3VKV3+nTtkLkn3/0lbRExpVMnw7rCxEe7ho1IFSMD21mpmpwNmywdY8UL67WvXrVvKKQCd1WrMjba2uPt95Sxy5f3vacypbVW56kqb96dXz+7DPznkPr1nAbTZmCBlVW1kePqkBebSlfHhXc/v0qYFnLxo2wODRqBBPwlCn67YODUVG5Wkm98gq2q1XLPMeDEDiHb75xbso2K97e9nOq7N2LirxBAyV+jdYri8VWQBDBKqKdB8dYjKMyZImM1DcEXl6496V532pF4Lgx+/KQIQjutHeN8gKrFQL30UfxP7ZujQo/L0VRWho6Ltq8RDVqqASL3t6IH0lMhHC+cAEN2Asv4J7//Xf7+WMSE/V1V0gIGqLx47GdsZ68elUFrO7Zg3t+xQrlEsvMhAm/XTvXe+W+vhAUZinz09JgoUxJgZVt0yY8967OTXbXXWioFyzAc/fKK7Bg/fGHcg1On44MxUOGwLKldU/UqAHr5cyZsPwdPYry+++4n83mKnKnWCyo9xs2RDzO6tU41tKlEHE3buBYffvaipGSJfH7unSB1XHePPt1iLwf09Jw/WrUyNtpD8xKRIT797oTWJi4S26FSZ06+kDHSZOw3z178DksTD9pH5EauaNNirR3L7Z77jl8fvllmOvl/DbGmWq1SJeRWdHOnPree1hWuTKGOcp1pLD55JO8vbZC2H/gFixAo3D8uJqjRlv8/XEtjaZisxgURyUkRC98Xn4ZQV9aE7q3N/4niwWNxsiRaoSSWTFapSpWxJBLZ1y9qgRH06Z6F9SNG2hUjD1Ae5WQry+uTd266P3IgOY6ddRoCcnJk3rrxJNPoicoR3689BJEwK1baAjnz3ecl6ZbN9yvZ86gErZa8dsOH8b91rcv3Fk3bmB/H32EHtz8+favzbFjtjFVsbEYlVNUZ93NyEBQ8bPPorc5dixG16xYAcGq7SQYG/uwMPcDaY0kJyPvkJmY9PLCPfz66zg3R9aybt0gBGU+kYQEBKO68nwVL45h7SdOoOHs0AGjhb77DhYZMw4cgJVnzx505KZPx7V79llYcJwJI7Pvy5fP2azo2ufLxyfnU3c4K/7+sAh+9ZWat+uRR/C8xsZCKFWuDJf1I4+gAxEdjfPLrYhy51qEhEA05TEsTNwlp64c2diFhuobvqpVEbA2fz4+N25sO3xWJjrat0+/fM4cJRh69cI6MoD2ySft/wY5/4y2UpLvpTBIT9f7rOVIA+2D6egYrmK14vc/9hgsMTJQT/aU7bF8ecE8fO4ULy+IJ21wZteu+I2JiRBy2kpDO8tzcjIahIgIXOvdu1EhDxigrnlUFFxpnTvb9qq8vVFZJyaiNystKZGRGI1idEOdP68S/0lxfO0aRJY2wZwsUpR06WJuJdi6VQUjBwYqU3+tWvguv3jjDVvXQnQ0er9vvonfnZ2NXro875s30TB+9hlcCbt352yeHPm/OhNCS5agQ+OKaywiQiURu3wZPf4FC/BeTn/wwQd4zWn+jrQ0/CeTJyOni0y6aCxSbPr5od4qU0Zfd0VGYh+TJqkkiNrSvj1EyJw55t+blZdecs8Kde0ahG1hP/uybixWDPeimfgrrBISop/JPTwcVt3hwyF8Pv8cgrVmTdx/wcHmHZy4OARd33UXrPbyfm7YkINfXaXIWkzslXHj8Nqnj/6G6txZf3ytBaBKFVRQRCqvh8xtUrmyfiTCunUIFBw0SN+DmDdPjbqR+VCEMM/9YMyVUKVK7s3ncpSPWfHxQaVuj8aNc3atH3jAtV6Fr6/eEmC2jZeXXiSMHw+RMXMmTMnGLJ4JCSpjr48PrGDFitleW1eHilosMHfLAL+SJSFQjP7pF16wrTy++87xb+vbV+9Gk/dVmzYQPUYyM9HIjx6tb4SDg3Fdfv3VuRsrOxt+bDka5uRJiKF27WCOl/dbZiYCAd3534OC7P/vISEI0P3xR/1/lpWF/+ziRVh8tmxBcOisWSpLqrc3nsvy5XGevXpBhC5Zgo6CtpIPCUEdMmIEBGi5crY9+uhoDOn9+mtYU+bORT1gbNzLloXrZ8cOPOvbtuEcV61Cg+PKEFmrFf9Lp054nipXhrVqzRr8FwcP6gWQFMtmsWnR0Rg1tWGDsugKgfP45x80hK48dxUrwhXYvj3qxTFjUC+WL49GPzgY1p2yZR0LAFdnmna1eHvD4uPq5KlmdUWxYuYNv6+v83gsGXxapYpz121YmMr+/OGHqGfM9u/lBbGxcCFGJB09qqYC+fZbdBjr17f/vzVsCOtZERImFiGEoCJKcnIyhYeHU1JSEoWFheXdju+9l+ivv9zfzteXKDPT/vcVKxIdP07UuzfRvHlY9uCD6r3k7ruJ/v0X7729ibZtI6pXD5/XrcOyZs3027z/PtGoUc7P8YcfiPr1I0pOJgoPt79eZCRRQoL6fOQIUVAQUWys82NomTmT6Mkn1edKlYhmzSJavJho7lyiM2eIgoOJvvqK6KGH9Ntu2mT7O43060f0+ONEGRlE588Tffgh0Z49+C46mujqVf36vXoR7dxJdOwYPvv7E02dSjR/PtGaNURWK5bHxOB8vvqK6MYNoogIogYNiP75B99HReE+GTOGKD5e7T8hgWjhQqL33iM6dMi1axQVRTRkCNGWLUTLlqnltWoRVa6M/Rw86Nq+iIjKlCEaPx7XZfdude9ILBaiEiWILl3C5xIliC5fNt9X2bK4F5o1w//44INEJ06o70NDiby8iJKS9L+nenWiqlXxG65cwfK6dYkCAog++0xdR4uFyMfH9rlp144oKwv/CRHRgAE4l8OHiSpUwDVOSNDfo0a8vLBN8eLYTnuO/v5EzZsT1ahB9MsvRBcv2t+Pq3h5qfvHjDJliDp2JPrzT6ILF+yvFxRE1LIl0datjn+fPGapUvhfvL2x302biMLCiGrWxPO1e7f+t0uaNCHq1An/f7FieA7LlsWztHIl0U8/qWdJ0qED0bPP4n5Yv55o717cn7//TpSSotarWBHP0JkzRIGBOC/t9/mBvz9Rerr6XLky7pPt24k++QTnWqwY/ofr13FN/PzwHGRn2+7Py0v/n8pXHx8sz8jI2XkGBeH/qlgR123bNiz38yOqUwf1U1aWWj8+nqhpU6LNm3GuNWvi3j19GvV5TvD3J+rfn2joUKJGjbDsxg2ipUtxPt7eRNWq4flo0AC/N4/JVfudpxLJDp999pkoX7688Pf3Fw0aNBBr1qxxabt8s5hoJ8lyp7g6427v3ur9xIm2x5fz70jf5i+/ON+nKyMjAgMRwW21oscrl3/zDUy/2uRtxngKb2+URYvMr9nRo+h5aVX1+fPKGtG7t61ZOi3NNvdKmzaIMRFCzdCsneNHG8xWqZK5qdto9h04UJ+JV9s7cXS9li5F71H2mkNC4J83M4s3a4YhdsagT3fjX4jgX65cWW/JsVjQox4/XvXEgoPNXTLabcyWDx2KHu7vv9v2kipWzNvhh47OTftfxsXBvWe8fn5+jidEXL4cLp34eFgEHnxQBZLmtEgLmdGiVbUqjuPlhXvHXk++fHkEzvr44Pd07w7riaynMjPhyn3mGaxXoQLim155BW6RgQP1I0JKlMB/7e+vgtLDwtxPziZ/mytzWMkSGAirT926zgMsvbxgbciv+6dcOVhVGjfG/VKqlK1VISoKloN+/RDP8vHHiLeqVQvPSmys42M4qxPq10fM1LJlcBP27YsYms6dUcc5mgVeWxo1gktr0iS4hs2sFdrn4957EXfz+OO2/0N0NI5bvTpiVp54AvFcX38NF+ELL8A1ExyMfRrvm+bNcS5ffIG25vp11M3SfXnmjG2MWh5QpF05P/30k/D19RVffvml2L9/vxgxYoQIDg4Wp06dcrptvgkTVwWGsSxZYp5nQNs4eXsr90SNGuZuEun6kA1gnz4w25ods0UL/WdHrg85gkUbf6IdoWO1KneBv795YqmWLW3P99Qp9RB17YpGz2pVQqdRI/s++uvX1QzKslStisBH48PaqBHcCEOHImj34kXzfZ49i/Ns3lxlNz1+3LYSNbtGMTFqOG7p0pi07NYtFUjq7Y3jL1liPrEiEQRl48b66yxHAwwZAjH2+OMw37syk3WHDraip2FDldPj4EGYZB2l469VS1+hFS+OYDr5uXZtjAAxSwpnVpo0gaju1QtuwgEDcC+WLYvfXrGivtHQVoYBAfh/+vbFPd6jh3ILZGfrM/3KxuDrr53nMLlyBaPd0tKQn6NvX5yH9r+OjHRvWgdvb2xfogTu7c8/x6gSOYLozBm4hqZOhctlzx4lzm/cwLPw22+4Vn/+6ThW5cwZ/fNsT9RaLHhOX3oJjeOAAXhmHA2TjYiwbTSNz0B+xkwEBEDUdeuG/3vCBLgQ774bnZGWLfG8STdK9eo43xIlcO9WqmTu2vDzg0iJjXVPqIWFoUEvUUL9x7VqwbVUpYpro1zatoXLb/duvMqMu2XKKHHWqBHuZ7Os1rkpZgIjr4ufH66Tl5ftTPV5QJEWJk2aNBFDhgzRLatevboYM2aMzbppaWkiKSnpdjlz5kyOf5hDcmox2bzZPHJdG9Vdr56ybthLJSwnypPBTFFRUKzapFeykjHO0yKLvZvWKGTeeEN/7G++cf47z53TbyNjZ2QpW1af2t5eJL6W6dP1+zCKkvbtXU+aZoY2rufJJ9G4TJuGHrYMEI2KQiOfmqp63fXqQRiYXYdmzdAT/vNPiEmzhsHLC9lGrVY0vsOHC/Hii4idmDFDDRutVcv+EFt7pVYt9K67dsVv0h4/IAC9fm1jU6YM8k0YG+YGDdCzciUrKBGEgr0hq1Yr7ut338Vopz/+UP//99/bzkCrPd8mTfT5fzp31t/HxYrBYmSMq1i5Um/hu/9+vWjNyoKlr3p1dV/5+DhuyB1V+mXLIsZn1Srz3CNNmyKGo1Yt25iR9u3Nc6Jcu4aGW977Cxdi+e+/o05p0wZC31mPX1v8/Mx74t7esIKsXIleslagBgbCEhEcjAa6dm2Ihrvvds0SUrIk/semTbFN8+b6UXShoRD0jz+O5H8dO+pHhzkrkZGwHowYoSyZ+VV8fCAA3c31Yyz5OZS3YkW0AV99hfrk00/x3PXsif+tRg10/AYNQl3Rrx+uXe/esOS1a4fr7+w3hoXZf+ZzSJGNMcnIyKCgoCCaN28e9ejR4/byESNG0M6dO2n16tW69SdMmEATJ0602U+ex5iMGkX0wQfub3f+PGI93ntPvzwsDDEdRCq+JDQUfk4z3116OnzxRHhNS4MvccAA+P6++QYxMN984/g3VKyIbQYPJlqwwHad115DLIL2HDIziUqWJEpM1K9bu7byN0dEIH6gRQvEi8jf9vDD8Ndrfa8TJuAYjti+nei++1TMg5HWreHztljMv8/MxDlERqp1hCDatQu+2vXriUaMUOv7+8MvXq4cPicmEi1ZAj9ulSpYduAAYjOc+ZG9vREH8cwzOB4Rrt+tW/DDP/UU0b59RIsWKV+y2T4OHcJ57diB3zBrFvzP0vcdEgIfsI8PzvvMGfNzq1+faOBAos8/R8zT66/jfvv1V73/nQjXZNAgorffRjyBljJliLp0IfryS/jWy5YlOnsW7y0WounTsU6TJogp2buX6OhR+PJXrlT7CQ3FNS1eHDFNzz6La7NwIdHJk9jH9u3wq2vx8UEshr8//N6zZ6u4jMaNidq0wbU6dkwf86IlIoKoWzdcu+nTVYyAvz/iKs6cMd8uJ8TEYL+nTtl+FxqKmJEVK/AfWCzw3ffti/99/XrUHWlpiBdZsQIxOmZYrfgfVqwgevddXHPjfeDnh/ii8eNR9+zbhxibRYuI/v6b6Nq1nP/OLl2IRo7Ef+bjQ1S+PGIdNm9G3JijOBIfH33shJYyZYieeAL3yK1b2M+NG7gmMTG4z2JjEbPk749thEDs29GjOP6GDVheogSeg3LlEGdSvjxiiNavR9xOejriNAIDUQcHBGBZWhriP/buJVq1Km/vD3exWFQMoI8PYo2M8Ut16hBt3Ijf4Q4ZGfit588jrm3XLtwfa9fa1vsSbUxaHlFkY0zOnTsniEisM2QTnTRpkqhatarN+gVmMZHDep0VY+9l6VJ9YiiZb0SrRuVMv9rRMWbI5FVm4/B9fdEjdXRuf/yh9nXkiDoXs++NyKGwnTqpERsdO6Jn7uiY0dHoHT/3HMbd24tH0XL5supFV6qE6HyZ7Cs8HGZqR//v7NnKjdSxI6xdI0eaW64GDVLJnHr2dH5u77yDdVu2RGK1xES4CuTwbWOvOjxcxcXIoh2JYzZXTYUK+A1mJCTYJhqTGWIvXUKvt2RJ9HpiYnJmitduYzbCISxMDY003kP2irc3espmvfvQUIwC+Owz9NgbNHBukvbyQuK3hg1z527o0QMWI2M8lvxfvLz0/5HFgt5kdDR6z86O3bAh/Pu9emFU2MiRcPu5k36geXNbS2pqKlx1L72Ee9x4/j4+cJ/17ImhvUYX5/XrGDot3U87d8LCJq0p9erB5RAZCdfavfeqeW7at1duyQ8+UK4o7bxHkvPn8duLF4f1r1w5vcXI1xfn+OmnqAdffRUjn1asyJ/EeSdOoC7XZrk2IykJllMzy0ZsLOrAxERYk+vXxz1cvjyevcBA12NqAgKwnfY5a9YMFteTJzFiZskSjG7S1nlZWbhWVaqoY8rtAwNRzy5bBovk4sUYiffWW4hfWbAAcTavvAKXq6tDuo3Fzy/P/54i68qRwmT9+vW65W+++aaoVq2a0+3zLcbELFDSrDgbUqZ1m3zxBW4gOfxx6FB836OH+TAsOUTYXvngA5jiZsxAxWXM7mqczOvUKeVSatlSHfPWLVu/twy2rVpVn1flgQdUBW7vvN57z71rrR0OqnXVOBoGmZ4O0WCvMjErjz6KIaK7dqmKxJWp6s0m8MvMVPE/8vg1aqBikI1snTrq2HKoqfzcsaPa/q67zE2kt27p44pkZVayJGJV3HU35jRtvKvFxweNW58+qAhnzkQg57RpiMv47LPcm8Tzq1gsOcuq6+8P0VG1qmuCqUwZxAqZzYWiDWb194fL7513IBpc2XdICBq53r3xXPTtC1dYo0bqfg8Nxbl27IiYnd27IQ4XLsS6DRrAxSIbc7N6NSUFDZyMy4iLg9ioU8f+PWZ8RoOC4JZ6+GG4FSZPRmfmrbcwhPnQITxLHTuiczRjhuP4orQ0/I5t21A37NuH66e9bm3aIG3CTz8h/ki6F0+dsnUJNW+Oxt0YWG+1ov548EHz31m5MtwlL72k/t++fdVkjZJz5xBrps17NWmSSmYnOXsWiQhdncgvL54Ds05CcDBEdx5TZIVJenq68Pb2FgulP/X/ee6558Tdd9/tdPtCFybOov+1vXbZ6LZti8/aBtleHg8ZhOmo1K2Lm15OpEYEZW3GwYN4+GfMgJJeskRZK0qXVpHX16+rG/T4cXOrjWxon31W5fMgQgPqKGnazZuw1ly7Bl+7bBAWL9avN3UqegnaRjsrC4LLGCfTsaMKmPTxga++XDn0MrOzbRNraWNivvzS/DyTkhDrY8+vum+fEhfe3giA7NgRn9u2VddMWymHh0P0CYHenPzt/ftDiCUkoEdfp46+V/TII7hWjnzqMseG/P+l1SkngsRiUX5ps1EGZmIwOBg9ZWMjarFAwLsTRxAYCMFesaIakZKXFbC3N37bjBn6Zzg6Gg3JDz8gC6nspVaqhIb0oYdwn8v5rtwpfn7Y/quvEJsycWLexB7k5wgqLy80sLVr47qMHu3aBH1mJTjYcUyPs1KxIkSBJDMT2VLHjHEczFypkn2LnJwzR/4/gwejXsrKQk6ob7/F//XttxAS2vnMZG6h11+HxSchQV8/3LrleFbujAzEnGnrsuBgxIvMn49nviBGx7la7rvP/m/JIUVWmAiB4NehQ4fqltWoUcM0+NVIvgkTV4bnEtkflSGL1ly6ebNe+Y4Zo1/3u+9sz8M4n85996GHYjzOO+9gfTmaaPhw+79t1y775yuzgwqhXAgffADztLNrUbKkvoK46y69JebqVRStJUE+lA0a6NfdvVutExaG65iQoA/SM5by5XG9fv4ZPbEKFdAbM1YYQqBS04o+maL/3DmY37t3V8KrYkWInsWLbXuQaWnmvSc5MqtqVTXBWd++trMyv/++2iYqyjYwNCICjZlMBnbxIv4LKWh8fHAPVqqEwNVy5cyHD7sTvd+kCUz9klu3cO+ePQuxmFcVnZ8fgoqdVb6xscgqumwZglpLlcpdg965M5KDPfccrn9mJv73LVtcD+6zWvGfEsEKNHQoGrBNmzB8uV8/NQlcdLQKrjYrTZtCmLZrB5dJjRp6URoWhnVefRX30oULGJq/bBl65w89BHdLjRq4Vh07wtX4wQcIKJ8/H0PeZ85UdYcc/RISgnOrUwe/4fvv8cxUrepakrQyZXDv+flBAGstYtWrw/JQvDieB63Azen/J1169evbCubwcGUR9vVFXTlokHLzynN09iyEh9tan7VFpqgPCsL5VK8Oa7jWopOSAuEph/E2aADLWu3aqE+kQPP2zp0V0dvbtd+UF0U7ejOPKNLCRA4XnjVrlti/f78YOXKkCA4OFidPnnS6baFbTGQKd+0IFHnzEsGsajZ8mAgK3LhsxAhbt4628frwQ/3oEm158UXVKC1dav67srNtJ14rV04Jirg4JRA++khVPrt3w1z73nuuz5dBBIGQlOR8SKw2w2hmprL8OCqhoWiknc1jUauWSvevJSFBCUuLBRWXM5N5sWIQfy+8ANOxELDGSIFVtaqqCKtUgYXKHjduOPf3BgTgXszORklPVy6ckBB93hlj6d8f/5t2srgKFXCfTJmChrRKFf02n37q/Nn4+Wfc1y1bQli4M0rE1xe9TO05EaEhaNJECS6z/2HUKBzbUSUcFGR/PqOQEFiy+vTRN4ytW6OhlyQnY8ivs1miMzNVR+N//8Pw9k8/RYbVrVsh5OSzJGegHjdOZfCtXBnWOu3znpGBbLJacSlHdV27pibAe+01x8Khdm0ca9QoxxaFtm0xumjNGsQ5NW2KxtRZQ1eqFH7nxYs4F60VxVFD60zsSCtE06auz08TE4P78eGHITo7dMBzYa/eldfn++9RF1asiFEsb76pz0/k769mQ5b3rjFzs7aULInzrlGj4FyW9rLe+vjkz0igPJ6fqkgLEyGQYK1cuXLCz89PNGjQQKxevdql7QrdYiInyuvSRV/Jywewa1dz33V4uP3K4pFH9Oci40dKl4b5f/Zste7w4bYPcHCw/UAys/kmZs7E+rK3/u+/WDc5WVW8jz6q38+uXejB7dkDc+pvv6l4G6NIMyvPPKPWr1YNPdaUFATCBQc7Fwixscj5IM/TmFL9scdgRZKVk8x/Mm+eCiyU8/fkJpjyf//DvqSLSU7A2LSpbYyPZO9evUsmIAABvjExEIbPPYfeuFa0BAXpky0RYRvt527dcP0efVQNNbVaVbB1UBBcdFq2bFFuks6d3U85nZ6OuCmZAM/PD1aVrCzcm/aum6OK2/idPYtKRASeuQoVcO4PPYTYhP37XU9yJYuXF57lZ55R1zk6GpY648zdWmSQvI+P7f9DBDerFLDOSEpSbl5XS2Ske666evUgSB9+2HnDFR8PYfPcc2oId82a+H/37oUVUftfhYSg43LzJtwbcXFq6HHdunpXnsxd8+abEDYlSuRPDhUpJiIiIKSrVcP9HhKS8+PJTkx+WykslvyfMdjHx7HYMq6bxxR5YZJTCl2YyEa4Vy99YjNpqrvrLuf7WLUKrgPtMjOTstWKxvvHH9VDNXUqhIR2265dzX+T1i00fjzM87NmqXlNZLZZrRto6VIsK1XKeaOVlaVGAzjLhRIejgRL7jYg2iJ9/9r4g6Ag/A/R0TCxmp1HQAAqRLN4jcqVcT3HjUPF6uenKt+oKFsfuZcXesJWq7IkBQfr81RkZ6PBzMxET9o4ssXebLIZGWqyRlcrjgMH1PZpaWq+HiL7s0RfvIh70JEbY+NGNGb33Yf7ZPBgmOmlKLZYcE/dvKnuk5Mn9ZV3UBAsS8YGITgY1p3XX4egSk9Hb1Y2JGa/1ZjvJSQEQk4r9mNicE4vvYT/NTcNn8WCc/niC5U5+fBhBPRqhVPx4hBpsbH6RqVqVbj8pk3Ddjt34jmVc6rcdZd5DI69HrGjCeRcadA6dsTIj3ffhaCTjdPYsRDwZ8+i9OyJ5ZUqwS20ejX+K+3/2rgxYnUuXEAnSm5jVqKiYFUy9rylRfCPPyDO6tTBvVKrFiy2Rgsbl/wv2v9YBjnnMSxM3MVVYSKFR79+5smpzMyRxh7ghQuIxpYT8xHBtGrGk0/ie22cycaNqCjbtUNFJjOdGpGWlmbNzL9fvBjflyqlxMrNm6pyPHbM9et39aq+4qxdG6ZodwIgtUVWtEFB5iZaeybi8uX16f/Nyt1345pt2YLrmJAAq5XZutHRqJi15xQaigZKPsDz5qnrkJqq3FjaRqZWLTTC0jrliNOnMYzQLBuxlxd65N26qf82IwNWEm3j/fbbrllDMjJw/p9+CsF07Bj2lZsp1u31yJo0UVYziwWWOyPZ2ejhly2LczDGXjz6qPn9cPfdtoGHV65AHERGotJ1FPfhrBifYSleIyLgHszpfZ6T5yI+Hu6phx7Sj/ySjUnHjhCla9bA9SktLHJySe1oL5ldNSrKubgpVQoiYtUquMLmzFGWFT8/xKstX47O0/DhCLaXGaHPn8domNOnYXF79tn8T5bm7H40FlctUXIkS0iImqE5IAD3ap06iC1p0ABCvkcP1NNm8THBwe65gPLCYhMaiuegXDlYHsuWtd9ZjIhwXn+4CQsTd3E1xkSmbH/sMcc9BW25/371ftAg/XGlq2XYMNtzSk7WV4iyN/n66/g+I8PxtO4yl8K4cebfp6crd47WlSbF1/TpapmMdzAjKwvrSlEWEABzuCPriJlJ8d130TBarXq3QLFisOQMH45e8k8/4XyGDcP35cvDxC5HqNSvj0Zp/XpYLrSiQ8YjhIfDPJ2Sos8bcv/9CDI8dUr910FByhetHZVDhIpfCARBDhpkO5rJYkFP2VG0vhBw2a1bp+JttHMFydK9u7o+//6rsgRLdxIRjm8vR4rZ/+Zoavn27dHjf/VVWJxmz0ajkpiI4cBm4iUmBveSNjV/+/bKspaSojKn+vrqhdrly+i1//svhh9LS1OpUoiRkUMrk5MhztavRyO5fLnz2Y2lSLt0CUHnWhdKaCisAN7e+K+Dg/E7zEYGRUWhwXnnHcdzFuWmFC+O40dE4DnRNkiBgRiS/eOPEMevvw5hZOY+Ll8elqjly81nFXel+Pvj2jia0Tc6Wv2PFy/iWR08GGK8bl11n9orERG2HTpvbwjQKlXwXWAg9telC9xTnTqh0XdXQHt7o95evhzC6c8/cb/KIHWrFZbH2bPRMejfH/XovffCjfvDD7j+SUno0CxbhjqgVStYzRyNJvPywrOgHQyg/V9lXSOtgH5+uN8aNEBH5L771LUMCsJzOX8+3NqyripXDs/q5s3o3Myfj2ena1f3R/yULetaPeIGLEzcxVVhIk2MQ4bYumPslVmz1Hvjef/1l3pgtEmSkpPV/DmyyPiWzp3Veps24YaVD9bu3bAEvPqq2k7GZggBs7L2s2wknn0Wwa/bt6v4DTlc7KuvIA7KlUMD+8476GFnZEAgSKuOtsj5d7QlKAjHMOuZdOyozunyZfT4tBVymTK21ob0dLhu5BxLx46pnus996ABev55VG61apnPXSEf1oAACB6tlSE5WQ0Htlfuu8922neLBRX5gw9CrKxerRJdaUlOhoCbOlVV/GZiLjpaxS3Mnq3Ej7ax8PKCBcKVYLXTp1WMi9z+7ruVVa5qVVx/Z/u6eROupHHjEJdw6pQKIL1xA0G3Y8faxj9ZrWpkk7+/Gl1kdn2rV8f9kB+sW2d/nimt9c9Vv7+XFxqIhx/WN7RyWLUc0q2NTYmPV/egry86H926ocE8dw4xXV98YT/A11hyGqNgsegFhKtTJcgRKPXrO54bRk6S6OODBrxVK/OhxO3bo6PQsCHcmsuXQyjcuIE6WjtKLywM17JUKdR3Bw7gmcrIgEVUG7NlsUDIHDpkfi+kp+PZatVKLy5KlMhZvpuICJxXnToI7n3sMYg1+cwGBuK+f/ZZxNw88wzqkubNcU86Gy4fGIi4tj59IDw+/BBW/2vX8Hz9+iuEha8vLCNvvol6u21bfDaLj9IWf3+0b3kMCxN3cTXzq7zZR460za1hr2zbhodq1SrzY0uTZps2KlixY0dVychRNXJIW2goGqGtW5XFo2dPNF7GYwcHQ1gIgYbb3x/byFEJP/yA9cwCc729bSdX01oXXnjBds6cnPr1GzWCBcRsEjNtZTt5sv3RE1lZaAwd9QxCQnAsrVnfzw+9I7Ned3q6+wGK9o4bGgoX4Lff6v9fZ9utXYtz+e47x+s2aQKh64gDB2xHgMikc1arqtjym5QU8xFGcjhlzZqoqI1zNOU10g3WtSsqd+OwUe39GBho//4uUQJi/eBBWDKcZcz19oagz8w0z/braomOtrVm5NTk37Rpzs9DW8qWRSO8ZAkayP798X/as7oEBuK4zz9vLlaMz4l0o5jtq3RpCGvtNu3aIS7szz9Rf8jh9n5+EJCVKjlvqB39j+5u46prKb9LQADanI4dIQR79ULemn//zfPROJIiO1dObslVrn1HzJ+POW2cUbo00blzRKNHY16SN99U31WogLls/vmHSDu/z8mTao4WMx5/nOirr/D+f/8jGjIEx5GsWYN5ZW7cwBwcZnNTlChBFBysn0PEy0vNtXDsGNGPP2L/RERdu2JeljNnMCdKXuDn53yeGSLME9OsGea7yMlcDBYL5lF59FG17MwZoo4diQ4etF3f0XwdWp5/HnNznDmDa3P+POYGWrsWc/NIWrbEfB1m596tG1HnzpiLY8cOzFGyYIHtnDWS4sXxX9erR/T117a/s3p1XKuXX8a5yHktwsMxd0xgIObOOH1a/dfVqmGepYYN9fu7eRPLDh7EPEjDhmGuoLp1nV+b/EAIzOlz9izOoUkT3N8FTUYG5jeS81BFRxO1aoU5oFyheHGiK1dsl4eGYl9NmuB/lPPl1K2LuVz8/XENRo4k+vhjzNny9tuYn+rXX7HPsDCs37o10WOPYX8rVxL9/DPRnDnqP2/QAPMJLV9OdPy4/XMNCMCxGzbEef/zD+aIcuX5cJW6dTHvzI0bRH36EK1bp77z9VVzW1WogPlgrl7FdXCVSpUwf09kJH7/v/9i3py0NDXPFBHqtZEj8Wx8/rlrdZMZrtYfEj8/XGNvb9TBiYmY80n7G7V1s8WC/zk4GNteu4Zr8+KLeM5378Y8ZdWqoX4KD8d8S4cPox5avx77PnwYRe7zhReIhg8n+uMP3DM3buDaVauG/6hxYzUHUQFRZOfKyS35ZjH5+WfXeyhEML/J5FONGqGHsHs39nXkiH4bsxTnWrRul+rV4cvUKvLMTOVyyalf+4MP9MFmFgv8+UKYJ3DTFnsz7Rp7Ds8/r18WEgKrzssvw7p0333oJV+4gJgK2auRGWSJ0PPs1Ak+0h9+QKDv/v1wCWj37esLC8KFC4gVkS4XmWrcYrGfb6NrV1ihateG1Wf8eOe/Lz4e/zkRzOqnTsHKtmYNeh4REUj5beT8eczmHB+P+yQ+Huf+zDPKrJyWpj/Xnj1ts23mJBi1YkWYvmUCKa2bqF07xFu4ysaNiFeYNAmWrVmz7Mcc/Zc4d04FsXt7w+Qu8ym99pqyvjVpAqtaly7odf/6qz6Tc9Wqyk1TowZcYcaU6keOCDF3LobYyiHs2vw98+erda1W573Wo0fxPyxdqs+f8vffcPdKK0BwMKwho0fjP9+1y3aGcplu3pX7KiQEz1vPnraWEO0+5LWzWFBv3XcftjMLetUma7NY4Bp89FE8M08+Ccvso486tzbIrMPaKSC0z0O1arDKhIWpoGj5fZUqiJU7cAB1spkVuUoV1GVt2qj8K/374/lYvVo/U7bZdTMGSXftqh9Zl1uuX0edY0x1X0RgV467zJ1r/nAZi/Q3vvWWmvjOLLh09mw8JC1aOD+2bPBk0TZSgYFYZ8OGnLlJjG4NHx+VXluOJtEG55oVs9FHxhIdbetqaNJE/cb0dPiJjxxBJSoT1XXsaB6r06iR/hpduwaXhqOYD19fxHQsWmSb5+T773EOxsnOhIBwNCYeM5bBgyGCpJiaN0+5PBISzIOQ58+3dU0FB+uTywmBGAL5fceOar9nz2Jd7T5iY+GS++cfxIl0747/58EHcf1ff931+6R0aQSxpqTAjSUbw3XrUEF/8gmG8GrTcmtLu3YQZhkZEGonTxaMGyi3pKWp4eHytwQFmU9ymZqKuAV7v0vryoyIwH09bhyu4fXriNl65RUEgWqvnZeXvuGzN7TbSGYm4soSE5Ub6Px5PFc//wzR8/ffiGVLScE5rFuHBjQqynEQq7bOqV07f/KMOCtly+I5v3IF99bWrejwLV2KeJt33nE9EZssVatCLDoL/ixdGnEy2piS2Fh0QBMT9ZMZnjuH//b33+Gqv3RJTYUxejR+R1QU6kVjdmd/fwTM7tnj/r37H4eFibu4KkykYn/vPbXMLLW8ELh5HU1MJ3GWWVVaXMyCTB2VuDhYE7RBbR06qP2MHYv9vv02PlerhkpPZp6V/l5ZmRl7IK5UcMnJqBi1YkubFVbGuFgstoGf586h8n35ZXwfFITYHplLxmhF0PqVZU9IBiu/+SZ+a2oqGoonnkDFt3OnY1EiZ1f280Plr51t2TjCSssff6j1ypSBD13OZWOxqLgRIVQDFRZmPnpnwgR8Hx5umzDNjKQk8xiHmBgEFK5fr58vRt7TlSrZn6TS2xsi+957EexrLzjP2xtWodmz0ZhMnYrU5++8g9iL77/XWxKsVjxL0dHobdob+p5TMjMxgkXOR1SqlO191rSpPiW/FleE1ooVrs8nExxsK1arVoWVdOpUPJsvvwxLyPbtaKDffhv/W7t2qpHz8nItvsHVIFZZSpdW2Yu3bcP51KsHC8u8ec5nTXY3+FZb10ZGqizL7g6jrVsXQcN5JaZCQzGab/t2xAe+9BKsaa1a2c8w6+vrOCuyzILsKDv0HQ4LE3eRDaSrD5c2x4R0ieSEmzedH2/LFqx74YJaFhCAh8ZR/hWZUXbtWrVs4UIMASVCIyOEyigqs5qePq0qPUemU20lYAwekyNvHM114++vKukuXdCIXLyohr/27WubTp9ILw6cFTlstXFjNDIPP2y+XmQkgpNPnMD16tULDXF8vLoW/fqh96YdVdSjB8TE2LFKoKanK7Fz331KnGZmqtEolSvDgrR+vdqXnOxPS2Kict9NnQoXwN69zhvMS5dg9Xj7bVhFDh2yHXH03nvm1pCwMFhumjfH6LMlS2zn/Nm5E/eN/P/kiAtX/pNSpdD4DByoxJq2tG8P1+OSJQjo/uwzBPWuWIHEXr/8giDn1q1xfR94ANe1Vy+Im3r1MOS9Xz/9sGVtiYmB6007u7Vk716VpM3XF/fw009D8C1YgNFbxllok5NhrapbVz/E11Hys8KwSNgr2v/OywvX7e23lVtLkp2NemfvXtzvQ4ZA9P/5J0ZPZWbif1q4EM/Kjh0Q8IMGoUPQoQOE7ejR+gbeHUGjvW5PP62fG2vXLtesQmFheEYdTQborISEQOzGxOjP32LB/blsGTJkb9yIeu2/YE3MZ1iYuIvWAuLKQ/LAA+p9btC6SYyjfGRj/+OPWHf/fpgk5UPx1luovFetsv8wyoykMoW6EHhQiODvTE5WlhHZWx00SF+BG/epTeZVrx4q6+xsdW5E7s8qumwZjp2QYNvrCA3Nm0pcG7ujLTJ99fjxuAb28q9YLGgwHR2jbFnlIihZ0nZ4+MGD6n+tU0c1YMWK2d4b6ekQPmbHadw4d4JYkpmJBmTXLgjWr792HhNl3H7fPgwJvnkTgmX8eLjiqlSBeBgxAsLh/vvNE5EFBSGHzbBh+ZP229cXo8s+/BBxUK1aQfw89hhGI7RsCQvatm0QQK4IrIgIWDYWLkQHwBXLRGysa7EcQUH6+IeoKGWRMbMsaovZ9fPzwzD9jRtxnUeOxP9Rty4EyO+/4/n97TfbjoS3N2Io7FmUtGRlmbs0jx2DaIyNhRvZnbrBYrFvnXvjDfPGfsUK1KtNm6KefvppJZROnbKN/Tl9GnFDHTtCzHbrBqtuw4bohFSpArf9668jqdyqVbaW8IwMiLhVq/J/JNl/GBYm7vLOO44fEGPAlox1GDgw58dMTVX7695dH0xHpIYmT5pkvyfg44PGTluZzpqleqLSCqLl5k1VgckU5pUr4+FKSHBsRi1VCo3RsmXuNxBTpkBkvfoqTNQPPIBKdsIEVcFMnuz4P3B1qJ2j3AOu5J/x8sJ5LVumHzLtzrDCyZP11/3qVfvxGh9+qF/3xAlza4K2kq5Xz3GCvaLI9eu4Lg8/DAEzd64+CPfQIWUNqVYN93XLliqzZvv2sKi1bw9h3r+/45lhZQkPd23yQdkp8fbG8xYTAwEpr7ufn/0MsrGxaARXrkSH4YEH1LPUq5fKQ5QfJTgYDXVGBqxww4fD4jhlivtByseOQcAYh8m3bw+r3eXLEDL79sEa9+CDuE5eXrh+jRsj+LZOHTTurnT0SpaE1fT77xEMumoVrC1SRKxbBwvdxIkIPM7LgFGmwGBh4i5Tpjh+cIzZ+qR1Y+TInB9TJlcLD8eD/vnn+mPImXAffxwVnrHylMUYWPfEE6gYiFCJmjVe8fH4Xrol5IiATz9V52Ts3d5/v35OGHu9eWPx90dvw9i7MUs6JjOePvaY/jdrK0ft5xEjMDrhm2/0vcVff8VyZ4mKiFTPSgq/3r31PaKMDH1MBhF6UfLayVdjb9XPDzlLJNKNQ6RPRhUfr78OaWk4J22js2gRGgSrVZ9IbuDAO9tEvGIFxOzatZhC4fHHYU2oUkVveQgPR/DnnDlIOhUcjNiehx/OmwytjRvjXJKT8Tw9/bQSHTExeOZ27ICb46uv9NbP4sVtrTDy3IOC8MxNn46YnNdfx6gvYwZhs+LlBavNzp3O74FDh1DfuBKjpGX1atRDxjrHFXeJtvj4QGzefTfcb19+CQvDkSP5l0CPKXKwMHEXRz112RBpP0sLysSJ9vdptaKhrVhR9QrXrEFvJjVVDQGWVpfly/XHGDMGr82a6a0YYWFwPUn/ubM5Hr780vbcBg9W39eqhXPdv1+ZjN95Bw1CrVoQCTK76rJlqPibNIG/2JiQSc7aSoRjvPEG/NGucOoUtjNWgmFhto2LxYIKTjsR3Q8/wBT96qsqgn7bNvvXRaZjDwhAUqFr18xnCE5NhdtE2xAuXw4TsBQ+kyfDBfLDDxjqrB099MEHKhjWxweN16lTqPAHDMB2c+agx9izp75n7+9vPlvt/PnqfAYPRtxDcrJr1zknXLtmfwZre1y5kvMhxdopBxyVZs1gefnlF707xccHlrEpUyAU+vWz3bZJE9znTzxhv6H181P3Y3Q0LJAy/be7xWLBf3X9Ooox/qVCBXzfvbutoJaTCrZqhTibPXts436ys2Gpee45/K6PPsKIP+30Bl5e6Mh06oTOS4cOcN32748gZRmYuXOna2kCjCU4WC/CgoPxLLD4YAQLE/dxZjExmoulSd7RML/jx9X6H3+MADH5eeRI5apZuhTrb9igP4ZszKRPWTZEcghxVpZrlUWPHrbntnmz+r5NGwzL0/b4t29XvfISJdCzsTfzq7bMmAGfNZHro0gkMreCbCRkHE1GBhrGzz7Tu2hefFGfBVZOrEcE95ckKUk/EiIiAj3B7GwlrFq10md+vXxZHdOs0ZKjdF5/Xf03U6eqnmtamgq09fJSDc0LL+B77RBte+4pf3+MJpGzv3bqhMZLBg0aR3eULAmBk5aGHrKj2YNdxWpV/0vx4irWIDMTv19e/+xsiKVx4xBzIS1MISE47/794afv0wfXZd48W1+/Fm1OnAoVcG+WL499L1qE3/n223j9+mt1faOizLMHa4t0CU2erOYeWroUQkU2quXLOw+MlCNjXHFV1Kqlsi1LUlNhRXPWsahZE+4ZR6xb53jUnI+P45Txslgs6HRpf1NEBATgffeho/HZZxAznTohHmPgQHRGtMIwLg7Pg6P/mPE4WJi4izOLiXEsuiw//GB/n9pYBuNwQjk3iMWiGm85WkY2SufPq3W02xApl4qz5GhEiAsxmnqvXrVfoVaurM+tYSzBweYTc/XqhX1rA2GnTHHt+l+9qh/+Gx5u3rCuXavysBChobt8GWZhbfxH8eL6Hv4XX6jAQZkITwj0OrXXoVIl/A5XAiDLlkXFqx2h9dxzSuBIi5n2f5AT0Dnbt6ulVCk0qGb/R3w8YlXcQc62fPMmGs6HHtLvs3x5WCCkUC9VCr18o4vNldKsma0VJjtbWQqJ9DlfsrLw3732muszwbpSjMGoXl64x2rWxP314ouuT4IXFgYBr92nlxca8U2b7F/369ch6MeNg6Vo0yZYWQ8dcj5B4dKl6tkJC4OYffhhuCQHDYKbSFoszpzBcWbORCza9Olwh779tu0UAQ89ZCumHJGZCeF64MCd7V5kcgwLE3dxJkx8fMwrf3s9mV27XKvIatdW22gbAYsFZnB7GT+XLMHDb4xwf/hhmJuN8SrGSPEPP8RyY1xExYroEcnGuk8fx+f/8ceouI3JguTEhTVrOq+krl1TDY0MLOzb1/E2X35pLh5atFD+eWMm1pMnbYd5CmF/CLEslSqp3CsBARAf8ru+fdGYakd1deumhqEeOIDziY6GGyw1VQW1yhgis4Zy6FAEAhqT25kF39arhwbnmWdsA5ejotDAHTgAN6LWwiQn+3r2WbgX33xTPzxbe3379LE/0Z4scv6Xl16Ca+XECbjSPv8cDd+4cRCqw4ap8+zXT7ndpk/XT7z23nvqXJctc02EG4VGUBA+BwVhaOuHH6IDMGkSgjvl/S9jIJzNiyT3LeuD0qXx/5oFjDdrZhv/1bEj7o/x4xE8ai+769WryAXz3nsIRLXnDv35Z2XRu/fe3Gf8PHgQLqBt23K3H4YxgYWJu7zxhvMKzyz6Pzf7I4IYEQIVlDHY1GxYnXTrVKiAio0IjfpDD8E9I0lI0LsgjHEKslF89VV943fmjLJ2tG+Phkz+bh8f1TOuUQMNiT3Rcf26qqwdmaGzslQgrq+vMjfLIdKOWLFCb74OCEDFKkVmdDRM/W+9hUpbZroVAtdKzlZ86RKCX198EbkWevfG9TSbpPGxx2Al0Y6uCQ6GuNGa/tu1w3kMGgSXR1YWKnspvLy81HvjtPKff67O8++/VWMo85xcugTTvXbYaHAw3FFdu+J/2bFDWZZq1VJCs1YtXG+z4OaclhIlIEgWLkTM1ciREG8PPABr0vjxCBatVAni5o8/kLlWioIXXlAuMflbpKjcuNF1a0zNmnAnWa0QRVKE3rpl362Vng53jjY+Z906CLVq1SA+QkL0MR/t2tm6KLKyIM7nzMForn/+Ud8dOgR3h9k5ly+PazRvHqyg8+ZhdJ7ZqLInntAP5Z4xQ90bDz10Z0wRwNzRsDBxF21eEnvFONQzPt58X3v2qHW0oyuIbKPtZbDl7t2uVb5m87p06GB+HtrhiTNmqOXp6arnvXs3KsROnfQ9zWLFEJuhzYj7229qey3nz6uMkOXKwVQshAoufeUV+9d93jy1/zffVALInZ7fzJkYUipn1r12zb4/PThYn/xq61a1n+++czxjdMmSKjPr1av2M0CaFXt5LsqX11tB/PwQf3LkCMSkFCx9+tj+7i1bzONTLBasP2GC8+HVOckbkpNp4M1+t1k+jy5dICrmzNG77IylWjXcj6NGQWw98ABK9epwoc6e7XrA5YYNsPBduIAEdtr5a4yldWv38rxo2bYNFpsJE+Aacjb0PD4eMTWdOythKXPuaF2ETz3l3N3DMEUAFibu4mgOFlm0CcSI7M+DoxUjv/+ur4CNVhdp8neWuMvHR5nhjfkQjPkyJDNm6Cvy555Db3LhQiwrXhyWmlu3bI83fjz2IeNkjOIiJQUBpHPmwIqg3TYiAvudOROfW7Y0Pz+rVSV0eu01mJCJYE7PLSdPwmRetSqCe+1d1+bN8ftfesn2uyeewBDVW7dg9TGb9E6b/8bVifa08Uqykde6MIggSOR3991nm6hN8tVX6v7y9bUNUK5a1dzyFhenFxj16tkXMRYLrFExMXhO0tNh1TETf61b4z575hlk9+zRA735J55AI5uTyQi1JSwM993779tOIGcsoaFI/mePEyf0Q7iNZcAA5NNYsgRl69a8FQCpqXgWX3xRWb/q1kWgsEx6Jlm50tyVNn48x3Mw/xlYmLiLo56yLEZ/sUzpruXmTX0DbdyHsZck3S/Nmtk2VrIEBOhdG9eu6b/X5hbRcumSbYDrn38qN87zz8OEbeyZNm8OM3hmpqowP/oIsQEHDsBq4Cw3xNKlapZlPz/zXCpr1qgGffdu5Vp4661c/502WK1oZL7+Gmb2P/807/n37w+z+0svOZ/dVQis8+KL7jewRkuFvM5PPKEfgh0QoE+5nZqKBlIbNHrypH7+IXeKTIqlXdasGcTE/ferYfEBAQgK/vNP/e8/exZuD3lvHz+ORrxtW/vB1YGBEEaupAMvWxbC+8kncV3mz7fNKdO8OawG//sfzu+ll1Qnwtsbol+bM8dqhbCRcU1eXip+xd8f1j/jRIv5TVqacythRgZcW199BdG/fXuBnBrD5BUsTNzF3uRl2mLMXyDjQ7TIYaCRkebBjcbK+uefMTJEu2zMGIz2uXhRLTM27EeOoEGsXh3nZTb5W0aG49+1e7d+AsE//8S5yEZv0SIs1/rXK1aEJcK4rzfeQFyJnCCwbFl8lpPJmc0DM3Qovnv4YX3uDkeun7zkzz+VlcDHB+Z8VzlxAgKqTx+IAik0GjVSMRF162KUglmSt48+giWkbl2VqK5qVTT0cuJBWTp0wP9/+bLqNcfF6QOOz59Xwi40VC90XS0yJkfLrFm2IurZZ/WNaHa2skrZc9Foy4svqhmN//wTAZ6vv65mjfXxwX3z7rt6a8C2bWqdkiURxHr8uLnFICtLn6uHCO60+vX1wqZdOzVKKzGRh7cyTD7CwsRdXBEmWr8uEXq3WuTwXilMjMnHtEX26N55R1kOZIUuJ4OzWlWjdugQGq3Dh9XxnnhC7e/JJ20raJnFVRatKfjBB/W5W2SiuFu3MLT2rbfUd/biED74AFYIbc8tMVG5JWTQKZFtz99qVTEaRqFTpkze5OBwhYsXYTY/dsz1bebNMxcbffuq/+DwYRWLs3Klik+SroyAACyrXl2JVW2MS2wsgljlcVq3trXqlSypH4J6+TJGryQkQCzIyRBleeQRjEwxnne7duZTsH/9te3kZPJ9hQp619axY+aj1mQJC9MPqw4IwP37558QtXIEUP36KpmfZPduxJLIa9ekifnke0asVvvzI3l7Y0QZu0EYpsBgYeIu9oSJtvfXuLH+u+ef1+9Dm5/Cx8fW5Kwt0rIwdCisJrKyJkJjL5ECZsEC9Gi9vTF0MDPTNnZg2DD9+ci09LIsWAAhNHMmXDLSP9+oEXrk2dmOsz1q4x4eftj+tfzuO1X5a0d+fPEFvteOwDBakKR5ffXqPPlb85xvv1X3RO3aGFHy4ouwNDhq5LKz4bY7cMDcDaadhTY0FEJUCIhWrfvPywuNuYwliYqC9UxLZqYa0uzlhZl2585V5/HVVwis7NoVVjGz8964UYmFp5/WT3cvA3lLloRV8LHH1P1MBCtUw4a2cVsffIAirR7G0qeP7eRoc+bo40jat7cfb2OG1Yrf+NdfCHJdsgRxQ1qBzzBMgcDCxF3sCRNtpWh05RgtJt98o77TpsA2Tsbm46MSmN13H7LHakWQtvcuLQ7awNuhQzFUlghxLPXrqwZDjhg4e9b2t4weje8yM5U1p2VLFdD322/qPGRv2xhc2K0beqFXrti/lhkZ5vkgKlWyf52lS0UGDptNPljY3LypYkEef9y1GBQzDhxQ1iIfH/01Dg7WD2sWAi6MgQNxT8kZoK9fVxa8tm318RNakWDM5eIKS5eqocwPPoh97tqVsynifXyUm8fLCxYeqxWCq08fuKTKlIFgNgqkuXOVWLvrLuRcYQsHw/xnYWHiLvaSR2ktJlIAyPLYY2r7W7cwoRYRGh1tw2wcvVC8uJrAr1Yt/fBEmVhNYszGaCyDB6OBlOf/xhuIf5DflyihLDFVq2Kfgwap75cswbLkZNULf+YZ58m0wsP1SZ+++AKWEG3WU7P5SYylSxc1Z1BQkBJp9kY8FSY//ohzK1cud6Mz5BwwxYurmJ5vvsEQV1dcFEJgu2eeUYLuiy9w38jRRRYLLCOuYrXCZfLUU+qeb9hQb53IzMR5Opp9mggWkZo1MapFuvnk0PGqVR2LWnkuv/+uLDNPP51zEcgwTJGBhYm7tGzpvBE1jsoZMADbpqfrl48bpxr5+vVtR+KEhiIRGBEqX22QXlycOqe0NP12y5fbChU5SmLOHPNznjZNn0Dt8GH992lp+skDw8NthVSxYuZp1Nu0QTIqKbJkuecelZPEXvH2VjMODxiAZY8/rkSVt7d7JvuCQE66JodSG1mzBlaMESNs4yQkhw+rmB05R5KrZGVBuLz0krk40LrFtHlrnLF7t+08K48/bn/SvnPnMHw6Kwtux59+gmDZvNl+kq+rV9VQ+XbtbC0fR47ABfjyy/r77667OEcHw9whsDBxF+NMn2ZFDp2UpV07bGucFfjTT5UY2blTLddaX1JT1XutL75VK+zzzBkhxo5Vy6tUwfLkZP2xtCZ8Y7DjnDloQLRBrto5P1591bXsnz/9hGN8+SXiVrST5TkrcXG2jZ6fH2YyFkKfjl4GcsrgWZmorSggJz308sLw3KNHETz56acQbX//rXd1BAVBwGiTcSUlKXfgffe5d/wFC9ybav6DD1zb79Kl+piXjh0hdvPDZbJ/vxJUMr/IihXmmV1DQhDD5aoFiWGYIg8LE3dxRZgYJ+IjUkM9tUWa/IlQGROhQtb2BDMzlSjQDg8dMAA9RKPVIipKNRbjxsGysW6d/jds324+WkQbuOiomAXr9utn20jt2GG7XliYPhhXCrPFi23nDapUSe1z6lQsq1tXLXvqKSwbOTJv/+OccuqUirl4+GEIKHuZXIlU0jgpZBYtgmVKWuUiIyFuHGG1YsqBZctwjbTz1tSrh+tqteIekBax8HAV8Ozri8yw9ti6VYiePdU+a9e2nw8nL3n1VRyvVClcS2nl8fZGHFW3bhDU2hFcDMPcEbAwcRdXhIkxiNWsREfDSiHfb9yoLAdaYXPkiOo9axv0//0PcR/afcpGXgY+CmG/R2svJuXpp+2fs72RMcZkWhJnFpN+/Wy32bxZn1n0xRfxG6pUwefx4xHsOHmyCgy2l/K/ILl+XSWgq1EDsxvLxHkhIYg3CQ6GyOzZEy46qxW/RQa4WixK2ISH69PgS2Qm3cWL4Srp2tX2unbujNgSI1YrRMj163gvp1coVkzNByRJS4Ow1Q4Bf/pp8wR4+cGNG7ai+/HHnQs1hmH+87AwcRdHactlMab7Nitz56JxIUJ8iXzfoIF+rp0lS1SPVSsMZs1SiceIkOnymWfw/oEHcK5nzugn7JMY40eM5euvbZc98YR+NJEs5crZDziUgYzPPKOGDxuTahlnMxYClgdtg/vll+bbasvFi2hw//5bzSvkClYrrA3ffw932uHDtmIuOxvumB49cN0/+wwBozKHypkzarbdmBhYv2QukWbNnM+ZkpSkUvoTQQxI95TVCqtZUhIS6pmlardYIM7q10cSMlcDQJOSlMvOxwejdA4fhqjSiuPevW2FS0Fw8SKEaZcuGH7NMIxHwMLEXRwlQ3NHmMycqea96dZNNfr33KOf9O3jj+Gq0DZaRPC5yyGzMgunjFMJCEClLmMCFi/W/4Z338XyTp3wOT0dMSmyh2rMH7F8Oda7eRONc2SkckO88AK+S0xE467N9CnTd//0E2Il5P6KF1fWn0cfxbrnz8NqJEVBZqY+y6u2mC3/+mt13YsVsz/9+82bcAeVKwexZRxBpf1NQuB8+vc3Pw9pMZIlMBATr8n/NSgIw7FdZft2XGtpFVi/Hm4zoyALCVHHjovLnWhITVVZiI2lRAnHc8gwDMPkAyxM3MWVuUZcESYPP6zeP/WUiqHo21fvynjlFSUktEUGWRIhwFIINKJmw3f9/CBi+vZFgy+HAb/+OrbLzob1xV7m1saNsW9j6m4i1ShKt0CPHvh88iQ+O0s77u2NBllaVMaOxfbvvWe+vkxWl5SkX24MOG7QwHzkh5krztvbNr37zJmIEZGC0dvb+bw/skjL1htv5Pw+u3jRdg6luDgIMKsVv23XLjVhY27IzoY7Tsa2eHlBSPbvD2vd7Nk4H3ewWiGev/02786TYRiPgIWJuxhn7DUrxtElzkq/fvDnE9k2/k8+qU/RLRs+7cgOrevBUYwIEQIspfleZvn86Sf760uRNGaM7Xc1ayIAVztyiAifzdYfNQpuAu2wZCL9kFZ/f2S4lQnKtAnjSpeGZUeizQwry2efqW2JENA7dCgCNh95xP7vjIpCunWtdUpbXn4ZDfgvv0AUXryod63Urat3tXl5uZe+3sgLL2A/9eohuHX1aucuIWcsXAiXT8eOCLyW983Ro2oen/r1bUWevOdcnTRx82bbQGpfX1yr8HBO8c4wjENYmLiL1iVhr7gyn462fPutEhRGEXL//bbDe7U99+HD9ecnLRdE2OeIEfptY2JUT3znTmxjFkApS506+s+9eyNvxfLlakSEMT+J2fXQjvzIzLQ/N4mxxMcj/qJyZYg0bUyKzPEiS/PmWL50qW3+DrPYDFmkpahCBYx2MptU8bPP9OnJs7NVXEjduog3GTVKv02lSrAWOMJqRRzR/ffD2vTvv5jLRo7mkYnthIAwmTcPguzyZfx/L73k/BhCYB3jNXj6acxjY8/C16cPgo21QuXll5FDRggEqA4eDPfma69BkG7cqIKwvb3xv5nNjdO1K2KCXOWLLzBc2DjCjGGYOw4WJu5inFfGrMiZcl0tVquavVc74R4RRInWAkCkPrduDeExfDgaiy1b9I3tzZuq8TBrbFNT0aCaDWmVVo1GjZQlICTEfFTE6NH2f1tQkP0hnYmJegFhL/+Gn58SYzVqCPHPP2ioli/Xu72IkBFWCDTwzz5rPhmdUZAYS2SkPjeMtnTrhuPLeBxfX6SClyOEpBCTo2tKloTF5rXX8HvT01VCsnPn9GnhzX73ww/j+p05o2J2zM5XuvOEwP10+DCEW/fuEKvyP27QANYY4wirmBhcsxdeQLKyFSv0/9Vrr6l1LRYkxtMG7BLhv5TXtHVrFV+TnY3RZbt2IQuy/M9q18bvMiMrC260zp3190hkpP1tGIa5I2Bh4i6uCBPjpHmylCmDHqh2mex9ytE+RouJI5EjR+HIYxoFgtbtkZWlRskQIYB09mw1s3BUlEpgVbq0EjkREXD13H23/URmcjizFFfaYzjLWvr997a/q1EjzL1y6JAaguuoaAWGlxf2+fnnQkyahGvubHtXSvHitvEyAQGI+Xj7bbXsxRfxu2TKd22Ji0MsjZeXGsUjG/phw2CNMjt2iRLKylW8uK0YI8IQ9Rkz4Gq0Zx26+26V5v2XX5Qlo1IlBNo6wmqFpcbsej7yiMrWSoQ4Hkdup+3blSsyMhL3/FtvwZ35zjsY8aTN8SKvkfZ32MscyzDMfx4WJu5iZnkwlvBw8+WDB6PSlZ9lcOS336rEWHI+GNkIahNmaUuDBvbjXWSDs2ED9i+Hs2obVqN4ko27tzfiQNLSbBvAGjVsYwN++UW/TsWK6jgHD7p2TY1xMdqJ+Y4etW/ZkGXcOFsLgL1iscAd8fLLEAOvvKIEXblyjt1alSur61ajBtwphw+rETIPPIDrJidOtNewakvJkmoCvX37lDXMzw/3glaYRUYibiUrC4G5e/bAguVMfDVuDJFmDEBNSsL1dTfeY9o0iLKgIFg1hID157nnEMTtimg4ccLWTWj2HE2cCCGTmAihKi0/ffpwCnqGuUNhYeIurggTs6yqRHC5zJ+vPs+Zox9dQ6RG6zjKGGosRkuJHEZMhAbD3vTxZsXLC8GnxYubC4LWrdW12LHDvgiTKfNdITVVn5SuWDGkGF+1yrVznjIFIkjmDrFXatc2n5tm61Z8HxEB11bnzvj9I0ciJ8pff6kh3A0bIs7j0iVsK6cJaNsW5zFxorIGPPUUXDxaV0SJEs7nW6pcWVk2Ll+GhaBhQ/sZWs+eVTMIDxyI/yU5Gdvm16R2KSn258hxlcxMBGN37AhrXcuWEFlNmsCyKK+xlr/+UmJ92DDb761WiLfUVOfHt1oh7jh7LMMUKViYuIt2vhp7xd6sqmPHIpmX/Pzvv7YjS2SP3dU4FR8fmM4bN9YfR77Xzl6cm6IdLXTwIBolo5tFxoH4+7sWkKn+LCWC5HBnozXonnuw7ORJiIURI9SInSZNsB+rFWJCWidiY9V1LFbMfir1jAz1n9mz8pw4oYY0f/wx9iUDoX19bQVrzZrKnbFvH0SpNu+JlxdcX0ZLSseO5g2yM6xWz5kvRjuKbOhQCLM//hCiQwc1XUKJErBIfv45xMwffyBb8NatiHf59Vc1TURICGKRXn8deWiWLrVvRbp4UYjp0yE4d+wo0J/NMJ4CCxN3MZvzxljsBXG++aZKPU+EDKHGUT4ygZvZfDtmRTaW2jJoEAIYnW1rnM3Y1fLooyrYU8Y+tGoFN8bkySohm6v89hv2UbmyinnRlkWLzLe7cEG5jcaOxbZm8/h4edlPmy+Rw1s/+8z+Ou+/b349jLlRgoPhdjAyebJaZ9w4LLtxA8nlZs+2DThl7KOdcDI/SseO+oBiOSJKm9zPywtuR5lp2GqFqBkyBM/6N9/g3t6yJf8sVwxzB8LCxF1cmTHXXkzEBx9g6nj5+cIF21l769bFq5ml46OP4Me3l2tDltKl0fM3C5K0N1GfVuB4ealRGGaxEQEByloh92cctuwOw4ZhH0OHwnoi58UhQqPtCONwaHn+LVpgBM0rr7jWs5UBrPfcY3+djAz9DLcNG6KBlNaWiRPRM7eXdTY7GwJk7lzO45EXLF+uv5/79UMM1/HjsGr06gULZHg4LHHa+youDu6vNWtgUXnuOcQ6DRigLFsBARgC3rmzPqA4NlYfH1O8OIKdO3Sw/0yWLAmr4xtvYIqFGzcK++oxTJGFhYm7zJjhXJjYC3T88kv9DLpa64lWVMhK1ih0tPPejB6NQFMi5KF44gkEdEr/u3a+HW0xyyJbuzb87BkZyj0zaBDM3d9/j4rdbGLC8HAV1zF7ds6vqcyjsXAhPl+6hIbFlVls5Tw2bdvC4jJqFBomd5HzB3l7O8+VsXQpApb37lXDhjt25F5xYXHunGup/61W5H7Zt8/xeocP6wWo9n5/5hnkX8nORqCvfAa1z2qXLgiE7tQJeXjMLJOBgRBBGzawSGUYAyxM3MUVYWKv/PijCrQk0gdrliqFnBbSNSEzwWqtAMaAvuHD8d2oUWqZMRmbsRh7dWXK6EdrLF+ujnfkCJZlZ6PyfOcd/bZvvKEq3d27c3Y99+xRx9POs1MYyMkSidC4OAqgXLRI/fZKlRBoytw5WK1CfPcdBMZrryEezExAZGRg+oJBg2A9M4utSk+HmB07Fh0IY2xWo0ZwE9kTKCdPYt8zZ+KZb9FCjeRimDsQFibukhth8ttvGIorP0vTcqtWqJSOHFG9qTlz9NvGxdmeixQ2332HnuDcufr8GVLkzJqllhmHH5vNgSIDT4OD9cu3bVMWoZYtYeGQoiqnvb5u3bCPe+/N2fZ5yZUr+hFNMg7EyMGDauRV69YsShj3sFox3HvQIH1AdN26cEWdOwdXT3Y2rKzGBIuyjBqFuC6GucPITfvtRZ6IEDnf1t+f6Pp19TkpCa9TpxJZLERz5qhj9OpFVLu2WrdHD/2+srKIduzA+xo1iO6+m+jhh7FNYCCWW61EISFEN27otyMiKlUKxylZ0vY8n3sOr6mpRMuWqeV16hAFB2O7adOIVq7E8i5dcP5mJCUR7d5NlJZm+928eUS//07k7Y1rUNhERxNt2ED0ww/4/PbbRNu22a733nu4Nm3bEv39N1Hx4gV7nsx/G4uFqEkTotmziU6cIBo7Fs/Vrl1EgwcTlS5NFBpKVKYM0ZNPos6oVInonnvwnHfpgv28/z5RrVpEs2blrl5imDsIzxQm9vD2Nl/u46Pe37xJlJCgPl++jNeKFfH61194bdOGyNeXqFkzte7bb+v3e+AA0a1bqMBOnyZKTsbypUuJNm8mGjhQHXPECNvzat7c/m/p3JmoZUu8//Zb/W9p2hTv164lWrIE72VFacRqxW+pWxclPV19JwQqZCKiYcOIata0fz4FicVC1K8f0YMPEmVnE/XpowQkEa75/Pl4/+qr+v+XYdylVCmit97CMzxlClG1argHhSC6cAEdi6lTiQ4eRCdh9WqixYsh6kuVIjp2jOiJJ4juuw/rM4yHw8JES1CQ7bLAQAgHSc+eysogCQsjiozULxs8GK8HDuD1hx+IAgL062zditeGDYmWL1fLFy1C7yoqCp+tVvWd1qrRu7fj3/Pmm3hdtky/j7Zt8TpiBNHx40R+fkQdOpjv49tviXbuxPvDh4m++EJ9t2sXKtWAAHWsosQXXxCVLUt09CiEk+TXX9GDLVsWooth8oLISKLRoyFAsrOJ9u6FReXwYaJRo2wF8IMPEh06BDETEIAOSf36RB9/jG1SUvTPLcN4CJ4pTOw97NJ9oiUqSi9MiFDZaKlYUQmG06fxWq4cekz79uGzmTVh0ya8li0Lt4rkxg30qKSbR0vlyup9/frmv0PSvDkqvCtXIEAkPXsSeXkRZWTg8733oldn5Ngxoscew/tixfA6YgQq3Zs30csjgrXFbPvCJjKS6Oef8d98/z0q/rFjiR55BN8PGoTrwDB5jcUCF82gQbCK2CM0FGJm61bUEZcu4RmrVg0dHn9/3MdRUeistGtHtG5dgf0MhikMuFbWYrRoEBGdPQvfsSMqVMBrVhbRuXN4HxcHN09iIiqpatX021ityvpw86ZaLmNDvvlGWSokJUogBkUi3Uf28PNTQuboUbW8Zk3EVTRogNiKCRPMt3/tNfV++3ZUlEQQITVqIHYjIMD+9kWBpk2VuOrcGb1TqxWVvdaKwjCFSa1aiI364AOi1q3hBiZCnZKYCPfx8eOw1rZsiXtaG+vGMHcQLEy0mAkTIufCRAqEc+fQ6Pn5ISD17FksL1XK1hqzcaN6Lyuhrl2JHn8c75cs0Vc8X30Fd8/LLxMNH070yy9qO0dIYXLkiH5527YQFpcvm1terl2DD5wI61WoACHl748gWGkZ+uILovh45+dRmLz9NoJ+iWCdmjmTaM8eDnhlihZhYUQjRxKtWoVYrps34QreswduoTVrlIv4669xTz/9NNF338F99McfcL2uX090/jwsolev6uPCiGDxnDEDnYtSpYiefx4dDxncnpmptypfvUr044+w5MyaBaHEMPlIvkb9TZo0iZYsWUI7d+4kPz8/ul5UFL696HczYVK9ulouA9qMVK2KV9lYx8XBRXDtGj7LWBEta9bgtUwZVCJERH37mjfysbGq108EH7SrVKmCV6MwccacOaig6teHZYUIQaTx8RBJJ04QPfQQlhV1oqPhFjt6lKh8eQhHhinKWCzozFSvrl/eqhU6L/36EZ06BYExY4bjffn7w91arx7RmTOoew4dUt9/+CFKUBCE++HDynV0/ryq1yRDhxJ17040aZKqX5iCQwj8LyVKuNY5/Q+Sr8IkIyODevfuTc2bN6dZs2bl56HyBrMYkzVrUAkQoUEz9j6I1OgX+QCXLYtXR8JEVgxPP0305Zd4X748BE2XLmq0DBF6Njklp8Lkm2/w+uij+uXx8Rji+F/Dy0sJSIb5L9OiBYbvL16MAPQ//oCbp2xZ1DWHDsH1I60e6elECxeiSIoVIxo/Hp2o6dNhMUlIgOWFCHFpV66o9evUIbrrLozk27MH1tRffkHQfP362E92Niy0nTrZTz3AuI4QRBcvoh0JCcH/s2SJGqJerBg6ts2bI06pYkXEBVqtuBfseQD+A+SrMJk4cSIREX399df5eRj3ccdiUrw4ehxEECZBQbamTCkcTp7EqxQmclixccSO1Yohg0S4maTLR8aqvPeeXphIYZQTpCtHVjiucOQIgvG8vWHFYRimaBEWhnqhXz/bNAREqOPOnkWddeECOhpJSQjKr1gRbuOICKzbqxfqpLVrIWIqVoRb+upVopgYxMdpO1e7diGI/M8/EVC+dKn+2HfdhZKRQfTbb6gfJ02CxYZxzK1bqPs3bcJ13bvX/rrXr6Ps3YvOrZeXEqNRUcif06AB2p/gYLRj1aujnbp2DaKnVCnE4RWxlAlF6mzS09MpXWORSJZ5PfIaV4WJHLEhzWU+PraipHp11TtYsACv0ldrZjG5eZNo7lwoXiJE4VutOHZMjNrnihWIwLdY9G4cd2nQAJXTyZMYjfLtt85HokhrSYcOMBcyDPPfwmKBFYMI8W7ORIGXFxK/SSpVsr9u3bqw0uzfj3pq926IGKsVy9et048cOnECIuauu+CKKlsWVp3DhyGWIiNhkQkKImrUCEno7gSLy5kzGG25fj3aBNlxbdIE1yA0FJ3XBg1giZ47F/FC2pAHLy8IyJQUtBEtW2IAxAMP4LoeO0b02Wew7Gdno6738UHbM2WKa+dZvDhcc85cggVIkRImkydPvm1lyVfs3fRGYSITrkk16eMDkZKZqdaJjVXv5fBemZPEKEx27YIZVjsK56uv8Fq+vP685IPdu3fuHtLwcATMvvkmcqn88w+ER/v25gnlkpPhbyZSw4EZhmGM1KxpmwZBJpE7ehQNbPv26Pn/9BMsMmvXmu/r99/V+wYNEOT7xBPKWl3UEQKW5nPnIBjmzkU7YNYJ1v5WM8qXhzu/cmUk2TRa3CX16qH06oUs1tevI57Oxwe5mhYsgNUsIQHCJjERr6GhEKvh4XABXrmiEoUWEdwWJhMmTHAqHrZs2UKNGjVy+2TGjh1Lo0aNuv05OTmZ4qTqz29ksJkWozDx8kIPoVUrtY5012zerF+WmmrrypkzRy9KiJSpTmZjJULP43//w3uZDC03vP46bsaxY2G+69RJnU+fPoj8/+ADPAypqShVquCGZxiGcZXq1W0Ddh99FPXZpk3oGKWmwjrcsCHiJC5cQL6npCTErWzfjvL223Al33MPUePGaEiLImvXIoHeli2237Vtq8RFcDAsGjt3wtKRkQFryMqVsB41bYqRTx06uJ9fKThYP3q0Vy/b+ttqRf0fE6P2n5EBt30RGxDgtjAZNmwY9XEyEqN8+fI5Ohl/f3/yLwiFbKZiAwPtu3Lkq8UCU9rrr6scHzt3IhDsoYf02w4cCH8hkbKYSFOeGe3bq/e//abeP/CAo1/iGhYLrCYtWuDG374dy/v2xdDZf/7B5x9+wBwf8rs7wZzKMEzhI60rztzSV65gaPLbb8MV8s47KAEBSFbXqRMs1klJ6P3fc48ayZiYCNf4tWtIUpmWBtFTogTc4r6+qOOWLYOl4MgRCJ6uXVHvpaVhWgBX0whcuEA0eTLRp5+iTfHzg7UjMhKdvL59zV1i2o5tQeLlpbfwE+GcW7QonPNxgNvCJDo6mqKjo/PjXAoOM2Hi5WXflWNsoI1mL6MoIUIEfMOGeF+smEpRraVMGRX4KoWJEERvvIH3oaGOs0a6S8uWUMdnzhCNGQOLiRQlRLDmHDmC4z77bN4dl2EYxhWKF0fn6emn0UH7/Xe4tU+exOih6dNtt2nYEC5oRyMPQ0JQB8vOomTlSv0UIxYLxEr37sgXpc1off06rD5btiCmY8UK7JMIgmvKFI7JyyPyNcbk9OnTlJCQQKdPn6bs7Gza+f+ZTCtXrkwhhZnC3FWLiTEGQ27nKMFQYKC6+WUW2Mcew2R+2twBRFD/s2ZhG6lkZ89WsSr5MSzXYkHg1axZeMCOHoWwatyY6KWXsM7YsfyAMQxTeAQEIMjz4YdR765ejTpr3z6IhfBwWDhWrNDPHl6sGCwWYWHYR3g4Yj4OH8b3lSujPi5TBqOPtm3D3GRXr8KtcfAg3PKbN8Nq07MnXCuLF2PiT218IRECesePh+WGyTPyVZi89tpr9I0c4UFE9f8/w+jKlSupTWFOnmYmTO66yzbGRLpw5PpyKFZKCl4rV9aneieC6a5xYwgMGV2dnAzzIZF6oNLTkXGxUSNYMoQgGjAApkaJjAXJDwIDES2+bx9SYF+/jiyuMTHwlzIMwxQFLBZMtmnWZhw/rqbLqF/f3A0jBDJtBwVh9I/WAt6ypX7m9rNnMUP85MmIA5k9Wz83WoUKcH00bEjUrZt+7jImz8hXYfL1118XvRwmRLaumcBADJXSTqRHpISJNNfJVzmMefx4uFq0M/OWLq0i1eWwYS0RETBLRkVhvVq1sHz5cr0o2bdPDffLL4oXVw97RITqVXBsCcMw/wUqVnQ+Z5jFgiRkrlCmDDLrPvYY0b//wt29ZQtGCg0dqrJgM/lKkRouXGAYLSbFiqGRNrpypEtGCpKsLLxKi0lkJGJDLl7EHBc//QRhUq6c/WPLAFjjWP1vv8Vr5cqwZBTGPC4sSBiGYdApbd0ahSlwPHMSP6MwkZYRozBJTcWr9CvKV2kxCQ3Fa8mSEDdEECZm05Ib3UTDh6v36ekYJkeEBDs8uRzDMAzjobAwIYIw+fdffS4SLVKQpKdjW2kxCQtT68hMrklJRB99pN/+xAlk+5N8+aV+iNamTRBBJUvq85kwDMMwjIfhma4cI97e+nTMWtLTEa1NhODXjAxbi4kQKjfIhQv67UuVwtj2U6fwed0623HjcrhamzbsTmEYhmE8Gs+0mBiRMSRmHD6sH/uelKSyt4aFwdrh5aVm4kxK0m+flYVy5gw+DxwId83AgZilkwhD3oiQBIhhGIZhPBi2mBCZj56RLF2qTyN/8aJ6v3277ZBeKUC6dMEskampyGcixc+xYxAlREgItHSpiknRju5hGIZhGA+ELSZEjucl8PVFemOJzPrq66smu5MEBalRNzI5282bmLzPjI0bkckwO9u1YW8MwzAMc4fjmcJEJkqTmCVckyQlqdE5REqYhIWpIFgiTAW+fj3cPhaLSjVPhJkmJQEBmDFYTnQ1Zgxe/z/5HMMwDMN4Mp4pTIxCxFHAqVGYXL2K19BQ9X75ckzml56Oz6VL6yfs0071PXo00c8/Y/I8LXXruvMLGIZhGOaOxDOFiRFnFhOtK+f8ebyePIl5FYiIqlbF67FjeC1bVj+fjnakjpxtskULpH+XcEZBhmEYhvFQYeKOxeTKFf2oHaOlgwhpjImI+vXD6/nz+mNoJ36qXVsdU04BXqYMUdu2rp07wzAMw9zBeOaoHKMQcWQxkTMES65ds13Hy0tlbiXCxFAnTyIYVjuiJyhICRMizLVToQLRvffiO4ZhGIbxcNhi4gwpTOyN3Hn6aby+845aNnQoXqOi9OtWrapG6xAR+fsTPflk/k/WxzAMwzD/ETxTmLgzKufSJbz6+dl+99VXRJ98ol9v2jQVkxIZqZ8jh4cDMwzDMIxDPFOY5ASjq6VVK8SI+PoSJSSouXL69CG6fh3vixXTW0hKly6IM2UYhmGY/ywsTIhcc+2EhOg/ayfw270br+XLQ4xohYkcQkxEFB6e83NkGIZhGA/AM4WJPVfOoEFEDzxgvo1WiBDpRcaOHXiVuUikMAkPJ6pSRa333HM5OVuGYRiG8Rg8U5jYo3VrfRCrluBg/efISLxarWqum4YN8aq1mMgcJlu2EBUvnpdnyzAMwzB3HJ4pTIyuG5mnJCTEfk4Tf3/952LF8Dp0KNGCBXgvE61JYRIUpBKtaS0nDMMwDMOYwsKESLl2QkL0ydS0yBmBJXK0zYwZapkMbk1IwKscyePnZ+sKYhiGYRjGBs8UJnKOG4kUI8HBRGlp5ts0bqz/HBion0OHiCg2Fq8yCZvMfVKihOPssgzDMAzDEJGnCpPNm/Wfs7LwGhysnxdHi5wNWBIQQHT6tH6ZtJhIYSItMyVL5vxcGYZhGMaD8ExhYkQO6Q0OtrWCEBH98INtgrWsLP0Mwo0bqzgUKUyk4ClRIk9Pl2EYhmHuVDxTmNibyddMmMyYoSbnCwhQy8eOJTpyBO+bNiVauVJ9J2NMpFuIhQnDMAzDuIRnCpOYGPPlQUG2rpwrV9T7LVuIypXD+9RUon/+wfsmTdRw4owMtQ8pctiVwzAMwzAu4ZnCxB6hoUQpKfpl0vpBRBQfr5/7ZsUKvJYvr5ZpA1+TkvCeLSYMwzAM4xKeKUzszRTs62vrypE5SSQ3b6r30jJStqxaJoVJRATR5ct4z8KEYRiGYVzCM4WJ2dw4Xbrg1ShMpNVDYjacOC5OvZcWlqgoJUzYlcMwDMMwLuGZwiQjw3bZU0/hVWsRISJKTtZ/1k7KJylTRr2XFhOtMGGLCcMwDMO4hGcKE+0wX4kccWO0mBhjToyixstLbxGRwiQyUgXOsjBhGIZhGJfwTGFihhxVY7SYGIVKZqb+c8mSRD4+6rPMKhsSolLd8+R9DMMwDOMSLEwkISF4NQoRrVARQiVNk8hJ+iSXLuFVCp3ISATVMgzDMAzjFM8UJmajcqSQuHVLv1z72WgtIbKNOblwAa8yUyy7cRiGYRjGZTxTmJgh85M4EibaETmtWuH144/VMiGItm7F+9BQvPKIHIZhGIZxGc8UJjL2Q8sLL2C5UZhog121wmTsWKJz54iGDVPLzp4lOnYMMSfR0VjGFhOGYRiGcRnPFCanTtkumzuXaP162zwlWveN9rvoaKLYWP26hw7htXJllf+ELSYMwzAM4zKeKUwcYYwZ0Qa7aoVJRITttlKYVK3KOUwYhmEYJgd4pjAxy/xKBFeOUZhkZ6v32pwmkZG22x84gNdq1YguXsR7tpgwDMMwjMt4pjCxx61b5llhpdXk/Hm1LDzcdr2dO/Faty7iTYj0WWEZhmEYhnEICxMt9oSJHAIsY1O8vVG0WK1Eu3fjfd26RGfO4L12Hh2GYRiGYRzimcLEYjFffuuWbQI1IiUypBXE3992nRMn4Orx88NswzI1PVtMGIZhGMZlPFOYmFlFiBDcKkfhaC0iUpDIuBE5r47kxg2MxCEiqlVL5TKJiiIqVixPTplhGIZhPAHPFCb2UsSnpqrZhLVWERlbIl+N8SVz5qj3HToQ/for3nfvbt86wzAMwzCMDZ4pTORQXiOrV6v3QUHqvZz/Rr7K5GmS335T759+mmjHDrxv2zZ358kwDMMwHoZnChNpFTGSkKDeh4Wp91LIyLiRiAii69fV93v34nXZMqKKFVUQbJ06eXK6DMMwDOMpeKYwKV/efPnhw+q9nOuGiOjqVbxKQbNsGVHXrngvhBq1U6UKAmWTk+EuqlYtT0+bYRiGYe50PFOY2AtIlUGuREQhIeq9FCbazK/r1iGINjFRBdOWKqUfJixnGGYYhmEYxiV8CvsEihTBwQiAJdK7ck6fxqtxKPHJk2oUT2QkAmY5FT3DMAzD5BgWJlrsCZOLF5FAzZjK/vx5JVZKlcKrDJDlVPQMwzAM4zaeKUzsDeHVzpOjdfdkZRGtWmW7flKSmkXYKEzYYsIwDMMwbuOZMSbGdPISbeI1Y66S9u1t109KUoGvUphIVw5bTBiGYRjGbfJNmJw8eZIef/xxqlChAgUGBlKlSpVo/PjxlGEv62pBYsxDItHGkJjNHiyR1pCkJKKFC/FeChOZhC0mJnfnyDAMwzAeSL65cg4ePEhWq5W++OILqly5Mu3du5eefPJJSk1Npffeey+/Dusa9lw52dnqvSNhUqkSLCOXLxNt3oxlpUvjVQbKli2b+/NkGIZhGA8j34TJvffeS/fee+/tzxUrVqRDhw7RtGnTiq4wsVrV+4gI+9tXrEi0YQPR33+rZQMG4FUKk3LlcneODMMwDOOBFGjwa1JSEkU6sESkp6dTuiYANdlehtb8xs9PH2Pi7a23pkjRId02zzwDIXPzpsp5whYThmEYhnGbAgt+PXbsGH3yySc0ZMgQu+tMnjyZwsPDb5e4uLiCOj09/v76zK8VK6q4Ej8/ZU2RI3CM1pLQUNvgWYZhGIZhnOK2MJkwYQJZLBaHZevWrbptzp8/T/feey/17t2bnnjiCbv7Hjt2LCUlJd0uZ2QW1bzG2Yy/gYHIaSKxWonq1sX78HCVFTY9Hann69XDZ218Cc8qzDAMwzBu47YrZ9iwYdSnTx+H65TXzEVz/vx5atu2LTVv3pxmzJjhcDt/f3/y9/d395Tc59gxx9/7++tT0t+4QXTwIN6XKGFrTQkIwHuOL2EYhmGYXOG2MImOjqZoe8NtDZw7d47atm1LDRs2pNmzZ5OXVxFJm5KYqP/coQPRypUqjsTPT28xuXFDZYQtWVIvWrQTAvKIHIZhGIbJFfmmFM6fP09t2rShuLg4eu+99+jKlSt08eJFunjxYn4dMucMGaK3gvj66oWJFCVEGBasFSZlyqj3LEwYhmEYJlfk26icZcuW0dGjR+no0aNURtt4E5EwzjlT2Pj7E2mtOb6+iDMxIyREL2K0GV7l7MSG38swDMMwjGvkm8Vk0KBBJIQwLYWOMTDVz0/v3vHzg1AJCrLdNiREb03RCpNz5/Aqk60xDMMwDOMWRSToo5Dx89PPHOzri1etZUQSHEx06pT6LEfrELEwYRiGYZhcwsKESAkR42etZUQSEkKkjZNp0gSvKSkoRESxsXl/jgzDMAzjAXimMDHGgPj66t07Uphog1y13z3+uPqcloZXmQU2NNTc0sIwDMMwjFM8U5gUL267zMyVY2YxOXpU/1laSdiNwzAMwzC5xjOFiZGMDP1nPz+8mgmTGzfMP0uLCQsThmEYhskxnilMjKnujQnXHLlyZs/Wf5bChC0mDMMwDJNrPFOYyMn3JB99pP9s5soxDjGuWBGvRlcOB74yDMMwTI7xTGFiJCZG/9mRxUQiZxtmiwnDMAzD5BksTIiIjHP/mFlMtMGxTzyhRt4kJ+OVY0wYhmEYJtfkW0r6Io3RLWMMaHUU/EpEdNddaptr1/DKrhyGYRiGyTVsMSGyFSbOXDk1ahBFReH91atEVivRhQv4zBYThmEYhskxnilMwsP1n7WzBxM5zmNCRFSzpnL/XLtGdOUKUVYW5tcxxqswDMMwDOMyLEyI1MgaiTOLSWioEiZXryo3TsmSRD6e6R1jGIZhmLzAM4WJERnAKnFkMfn3X7xqXTnbt+N91ar5c34MwzAM4yF4pjAxBr8mJek/y+BXo8UkMJCoZUu817pytmzB+7vuytvzZBiGYRgPwzOFiRFXLSbaWYilxeTaNaJTp/C+UqX8OT+GYRiG8RA8U5g4s5hIAVKypPlyImUxuXKF6PRpvC9bNu/OkWEYhmE8EBYmRESZmfrPUoBUqUL0+OPKOqLNUSJFS2Ym0YEDeB8Xl/fnyjAMwzAehGcKE2dIYWKxEM2cSTR2LD5XqKDW8fe3zRjLwoRhGIZhcoVnChMvJz9b67LRrm+MOdFaUCIjiYKCcn9uDMMwDOPBeKYwcYYclSORCdiMo3Rq1VLvOb6EYRiGYXKNZwoTY4yJEaPFRKasN1pMmjVT7ytWzP15MQzDMIyH45nCxF1XjrSYOBIm5cvn+rQYhmEYxtPxTGHiLN+IPWFidOXUraveO7PCMAzDMAzjFM8UJvbmwJG46srx9yd64AGIkt698+78GIZhGMZD8cwZ586fd/y9qxYTIqLvv0eSNe1QYoZhGIZhcgQLEzMCAvSf7VlMiCBWnFlgGIZhGIZxCc905TjDKEzsBb8yDMMwDJOnsDAxw54wYcsIwzAMw+QrnilMGjZ0/L07rhyGYRiGYfIMzxQmYWGOv2eLCcMwDMMUCp4pTMwSrA0erN4HBuq/Y4sJwzAMwxQILEyIiA4dInroIfVZazHJyCDKzMR7tpgwDMMwTL7imcLEmKW1alX9Z60wkW4cIraYMAzDMEw+w8JEYrWq9z6a9C5SmPj42M46zDAMwzBMnuKZwsQsxkQI9V4rXDjwlWEYhmEKDBYmEmkxMVpTOPCVYRiGYQoMzxQm2dm2y7QWEy2c9ZVhGIZhCgzPFCbbttku08aYaGFhwjAMwzAFhmcKk6ws22VSmBgtJxxjwjAMwzAFhmcKE0cxJkY4xoRhGIZhCgwWJhJt3IlWpLArh2EYhmEKDBYmEq0wkZleidiVwzAMwzAFiGcKE7MEa/aECbtyGIZhGKbA8Exh4sxiog2OZYsJwzAMwxQYLEwkWjFi5sphiwnDMAzD5DueKUzM0IoRM1cOW0wYhmEYJt/xcb7KHYiZxSQ9Xb3PyiJKSyNKSWGLCcMwDMMUIJ4pTMzIyFDvMzOJOnYk2rKFKCYGy9hiwjAMwzD5jmcKE2cWk7Q0on//xfuTJ/HKFhOGYRiGyXc4xkSitZicPm37PVtMGIZhGCbfyVdhcv/991PZsmUpICCASpUqRQMGDKDz58/n5yFdQ2sxkTlNtBaTdetst2GLCcMwDMPkO/kqTNq2bUs///wzHTp0iBYsWEDHjh2jBx98MD8P6RraBGty0j6tMJk0yXaboKD8PSeGYRiGYfI3xuT555+//b5cuXI0ZswY6t69O2VmZpKvr6/N+unp6ZSuEQhJSUlERJScnJy3J6YdDowDYASOI6xWrMcwDMMwjENkuy1k598NCiz4NSEhgX744Qdq0aKFqSghIpo8eTJNnDjRZnlcXFz+nlx4uPN1GjTI33NgGIZhmDuMlJQUCneljdVgETmRM24wevRo+vTTT+nmzZvUrFkzWrx4MUVFRZmua7SYWK1WSkhIoKioKLKYzW+TC5KTkykuLo7OnDlDYWFhebpvRsHXuWDg61ww8HUuGPg6Fxz5da2FEJSSkkKxsbHkZTYS1gFuC5MJEyaYWjW0bNmyhRo1akRERFevXqWEhAQ6deoUTZw4kcLDw2nx4sV5LjTcJTk5mcLDwykpKYlv/HyEr3PBwNe5YODrXDDwdS44iuK1dtuVM2zYMOrTp4/DdcqXL3/7fXR0NEVHR1PVqlWpRo0aFBcXRxs3bqTmzZu7fbIMwzAMw9zZuC1MpNDICdI4o3XXMAzDMAzDSPIt+HXz5s20efNmatmyJUVERNDx48fptddeo0qVKhUJa4m/vz+NHz+e/P39C/tU7mj4OhcMfJ0LBr7OBQNf54KjKF7rfAt+3bNnD40YMYJ27dpFqampVKpUKbr33nvp1VdfpdKlS+fHIRmGYRiG+Y+T76NyGIZhGIZhXIXnymEYhmEYpsjAwoRhGIZhmCIDCxOGYRiGYYoMLEwYhmEYhikyeKQw+fzzz6lChQoUEBBADRs2pH///bewT6nIMHnyZGrcuDGFhoZSiRIlqHv37nTo0CHdOkIImjBhAsXGxlJgYCC1adOG9u3bp1snPT2dhg8fTtHR0RQcHEz3338/nT17VrdOYmIiDRgwgMLDwyk8PJwGDBhA169f161z+vRp6tatGwUHB1N0dDQ999xzlJGRkS+/vTCZPHkyWSwWGjly5O1lfJ3zhnPnztEjjzxCUVFRFBQURPXq1aNt27bd/p6vc+7JysqiV199lSpUqECBgYFUsWJFev3118lqtd5eh69zzlizZg1169aNYmNjyWKx0K+//qr7vqhd1z179lDr1q0pMDCQSpcuTa+//rr7E/kJD+Onn34Svr6+4ssvvxT79+8XI0aMEMHBweLUqVOFfWpFgk6dOonZs2eLvXv3ip07d4ouXbqIsmXLihs3btxeZ8qUKSI0NFQsWLBA7NmzRzz88MOiVKlSIjk5+fY6Q4YMEaVLlxbLly8X27dvF23bthV169YVWVlZt9e59957RXx8vFi/fr1Yv369iI+PF127dr39fVZWloiPjxdt27YV27dvF8uXLxexsbFi2LBhBXMxCojNmzeL8uXLizp16ogRI0bcXs7XOfckJCSIcuXKiUGDBolNmzaJEydOiL///lscPXr09jp8nXPPm2++KaKiosTixYvFiRMnxLx580RISIj48MMPb6/D1zln/PHHH+KVV14RCxYsEEQkfvnlF933Rem6JiUliZIlS4o+ffqIPXv2iAULFojQ0FDx3nvvufWbPU6YNGnSRAwZMkS3rHr16mLMmDGFdEZFm8uXLwsiEqtXrxZCCGG1WkVMTIyYMmXK7XXS0tJEeHi4mD59uhBCiOvXrwtfX1/x008/3V7n3LlzwsvLSyxdulQIIcT+/fsFEYmNGzfeXmfDhg2CiMTBgweFEHggvby8xLlz526vM2fOHOHv7y+SkpLy70cXICkpKaJKlSpi+fLlonXr1reFCV/nvGH06NGiZcuWdr/n65w3dOnSRQwePFi3rGfPnuKRRx4RQvB1ziuMwqSoXdfPP/9chIeHi7S0tNvrTJ48WcTGxgqr1ery7/QoV05GRgZt27aNOnbsqFvesWNHWr9+fSGdVdEmKSmJiIgiIyOJiOjEiRN08eJF3TX09/en1q1b376G27Zto8zMTN06sbGxFB8ff3udDRs2UHh4ODVt2vT2Os2aNaPw8HDdOvHx8RQbG3t7nU6dOlF6errOFP9f5tlnn6UuXbpQhw4ddMv5OucNixYtokaNGlHv3r2pRIkSVL9+ffryyy9vf8/XOW9o2bIl/fPPP3T48GEiItq1axetXbuW7rvvPiLi65xfFLXrumHDBmrdurUui2ynTp3o/PnzdPLkSZd/V76lpC+KXL16lbKzs6lkyZK65SVLlqSLFy8W0lkVXYQQNGrUKGrZsiXFx8cTEd2+TmbX8NSpU7fX8fPzo4iICJt15PYXL16kEiVK2ByzRIkSunWMx4mIiCA/P7874v/66aefaPv27bRlyxab7/g65w3Hjx+nadOm0ahRo2jcuHG0efNmeu6558jf358GDhzI1zmPGD16NCUlJVH16tXJ29ubsrOzadKkSdS3b18i4vs5vyhq1/XixYu6SXy153bx4kWqUKGCS7/Lo4SJxGKx6D4LIWyWMZhJevfu3bR27Vqb73JyDY3rmK2fk3X+i5w5c4ZGjBhBy5Yto4CAALvr8XXOHVarlRo1akRvvfUWERHVr1+f9u3bR9OmTaOBAwfeXo+vc+6YO3cuff/99/Tjjz9SrVq1aOfOnTRy5EiKjY2lRx999PZ6fJ3zh6J0Xc3Oxd629vAoV050dDR5e3vbqObLly/bKEFPZ/jw4bRo0SJauXIllSlT5vbymJgYIiKH1zAmJoYyMjIoMTHR4TqXLl2yOe6VK1d06xiPk5iYSJmZmf/5/2vbtm10+fJlatiwIfn4+JCPjw+tXr2aPv74Y/Lx8dH1MrTwdXaPUqVKUc2aNXXLatSoQadPnyYivp/zipdeeonGjBlDffr0odq1a9OAAQPo+eefp8mTJxMRX+f8oqhdV7N1Ll++TES2Vh1HeJQw8fPzo4YNG9Ly5ct1y5cvX04tWrQopLMqWgghaNiwYbRw4UJasWKFjemtQoUKFBMTo7uGGRkZtHr16tvXsGHDhuTr66tb58KFC7R3797b6zRv3pySkpJo8+bNt9fZtGkTJSUl6dbZu3cvXbhw4fY6y5YtI39/f2rYsGHe//gCpH379rRnzx7auXPn7dKoUSPq378/7dy5kypWrMjXOQ+46667bIa7Hz58mMqVK0dEfD/nFTdv3iQvL31z4u3tfXu4MF/n/KGoXdfmzZvTmjVrdEOIly1bRrGxsTYuHoe4HCZ7hyCHC8+aNUvs379fjBw5UgQHB4uTJ08W9qkVCYYOHSrCw8PFqlWrxIULF26Xmzdv3l5nypQpIjw8XCxcuFDs2bNH9O3b13R4WpkyZcTff/8ttm/fLtq1a2c6PK1OnTpiw4YNYsOGDaJ27dqmw9Pat28vtm/fLv7++29RpkyZ/+ywP2doR+UIwdc5L9i8ebPw8fERkyZNEkeOHBE//PCDCAoKEt9///3tdfg6555HH31UlC5d+vZw4YULF4ro6Gjx8ssv316Hr3POSElJETt27BA7duwQRCTef/99sWPHjtspLorSdb1+/booWbKk6Nu3r9izZ49YuHChCAsL4+HCrvDZZ5+JcuXKCT8/P9GgQYPbQ2EZDEczK7Nnz769jtVqFePHjxcxMTHC399f3H333WLPnj26/dy6dUsMGzZMREZGisDAQNG1a1dx+vRp3TrXrl0T/fv3F6GhoSI0NFT0799fJCYm6tY5deqU6NKliwgMDBSRkZFi2LBhuqFodxJGYcLXOW/4/fffRXx8vPD39xfVq1cXM2bM0H3P1zn3JCcnixEjRoiyZcuKgIAAUbFiRfHKK6+I9PT02+vwdc4ZK1euNK2TH330USFE0buuu3fvFq1atRL+/v4iJiZGTJgwwa2hwkKI/2vnDk4AgGEYiNH9h05nyKNwUGmKexjPmdlesgEAvPHVxgQAaBMmAECGMAEAMoQJAJAhTACADGECAGQIEwAgQ5gAABnCBADIECYAQIYwAQAyLp8zvBxicarzAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Hadamard\n" ] }, { "data": { "image/png": "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rl3VxIkTT21nPted3Nxc1aJFC3XjjTeqZcuWqd27d6uffvpJ7dix49Q+zOe689RTT6nk5GT17bffqt27d6vPPvtMxcbGqhdeeOHUPszn2vH999+rxx57TH3++edKRNSXX35p83sg5WtBQYFq0qSJuuqqq9SGDRvU559/ruLi4tT06dO9uuagEyZ9+vRRt99+u8229u3bq4cffriBUhTYHDt2TImImj9/vlJKKYvFotLS0tS0adNO7VNWVqYSEhLU66+/rpRSKj8/X4WHh6vZs2ef2ufgwYMqJCREzZ07Vyml1ObNm5WIqKVLl57aZ8mSJUpE1JYtW5RSeCBDQkLUwYMHT+3z8ccfK7PZrAoKCvx30fVIUVGRatOmjZo3b54aPHjwKWHCfPYNDz30kBo4cKDL35nPvmH06NHqpptustl26aWXquuuu04pxXz2FfbCJNDy9bXXXlMJCQmqrKzs1D5Tp05V6enpymKxeHydQTWUU1FRIatWrZJhw4bZbB82bJgsXry4gVIV2BQUFIiISFJSkoiI7N69W44cOWKTh2azWQYPHnwqD1etWiWVlZU2+6Snp0vnzp1P7bNkyRJJSEiQvn37ntrn7LPPloSEBJt9OnfuLOnp6af2GT58uJSXl9uY4k9n7rrrLhk9erScf/75NtuZz77h66+/ll69esm4ceMkNTVVunfvLm+99dap35nPvmHgwIHy888/y7Zt20REZN26dbJo0SIZNWqUiDCf/UWg5euSJUtk8ODBNlFkhw8fLocOHZI9e/Z4fF1+C0kfiJw4cUKqq6ulSZMmNtubNGkiR44caaBUBS5KKbn//vtl4MCB0rlzZxGRU/nkLA/37t17ap+IiAhp1KiRwz76/0eOHJHU1FSHc6amptrsY3+eRo0aSURExBlxv2bPni2rV6+WFStWOPzGfPYNu3btkhkzZsj9998vjz76qCxfvlzuueceMZvNcv311zOffcRDDz0kBQUF0r59ewkNDZXq6mqZMmWKXH311SLC8uwvAi1fjxw5YrOIr3Xajhw5Ii1btvTouoJKmGhMJpPNd6WUwzaClaTXr18vixYtcvitNnlov4+z/Wuzz+nI/v37ZeLEifLjjz9KZGSky/2Yz3XDYrFIr1695OmnnxYRke7du8umTZtkxowZcv3115/aj/lcNz755BP54IMP5KOPPpJOnTrJ2rVr5d5775X09HS54YYbTu3HfPYPgZSvztLi6r+uCKqhnJSUFAkNDXVQzceOHXNQgsHO3XffLV9//bX8+uuv0qxZs1Pb09LSRETc5mFaWppUVFRIXl6e232OHj3qcN7jx4/b7GN/nry8PKmsrDzt79eqVavk2LFj0rNnTwkLC5OwsDCZP3++vPTSSxIWFmbTy7CG+ewdTZs2lY4dO9ps69Chg+zbt09EWJ59xQMPPCAPP/ywXHXVVdKlSxcZP3683HfffTJ16lQRYT77i0DLV2f7HDt2TEQcrTruCCphEhERIT179pR58+bZbJ83b57079+/gVIVWCilZMKECfLFF1/IL7/84mB6a9mypaSlpdnkYUVFhcyfP/9UHvbs2VPCw8Nt9jl8+LBs3Ljx1D79+vWTgoICWb58+al9li1bJgUFBTb7bNy4UQ4fPnxqnx9//FHMZrP07NnT9xdfj5x33nmyYcMGWbt27alXr1695Nprr5W1a9dKq1atmM8+YMCAAQ7T3bdt2yYtWrQQEZZnX1FSUiIhIbbNSWho6Knpwsxn/xBo+dqvXz9ZsGCBzRTiH3/8UdLT0x2GeNzisZvsGYKeLvzOO++ozZs3q3vvvVfFxMSoPXv2NHTSAoI77rhDJSQkqN9++00dPnz41KukpOTUPtOmTVMJCQnqiy++UBs2bFBXX3210+lpzZo1Uz/99JNavXq1Ovfcc51OT+vatatasmSJWrJkierSpYvT6WnnnXeeWr16tfrpp59Us2bNTttpfzVhPStHKeazL1i+fLkKCwtTU6ZMUdu3b1cffvihio6OVh988MGpfZjPdeeGG25QGRkZp6YLf/HFFyolJUU9+OCDp/ZhPteOoqIitWbNGrVmzRolIuq5555Ta9asORXiIpDyNT8/XzVp0kRdffXVasOGDeqLL75Q8fHxnC7sCa+++qpq0aKFioiIUD169Dg1FZZgOpqz18yZM0/tY7FY1KRJk1RaWpoym81q0KBBasOGDTbHKS0tVRMmTFBJSUkqKipKjRkzRu3bt89mn5ycHHXttdequLg4FRcXp6699lqVl5dns8/evXvV6NGjVVRUlEpKSlITJkywmYp2JmEvTJjPvuGbb75RnTt3VmazWbVv3169+eabNr8zn+tOYWGhmjhxomrevLmKjIxUrVq1Uo899pgqLy8/tQ/zuXb8+uuvTuvkG264QSkVePm6fv16dc455yiz2azS0tLU5MmTvZoqrJRSJqW8DclGCCGEEOIfgsrHhBBCCCGBDYUJIYQQQgIGChNCCCGEBAwUJoQQQggJGChMCCGEEBIwUJgQQgghJGCgMCGEEEJIwEBhQgghhJCAgcKEEEIIIQEDhQkhhBBCAgYKE0IIIYQEDP8PryEuiYXdZ78AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Gibbs\n" ] }, { "data": { "image/png": "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IiLoNIj09vZm3M+VacVERER6o8sgMpDVatW6CERERLqkyyDCBc2IiIhygy6DSPq0YiEEHA6HhqUhIiLSL10Gkb6+voz7XO+EiIhIG7oMIgODB4MIERGRNnQZRAZKpVJaF4GIiEiXdBlEBg5WZRAhIiLShi6DyEDbtm3TughERES6xCBCREREmmEQISIiIs0wiBAREZFmGEQ+wym8REREE49B5DOJRELrIhAREekOg8hnwuGw1kUgIiLSHQaRz0SjUa2LQEREpDu6DCLpC5opY0MikYhWxSEiItItXQaRobS3t2tdBCIiIt1hEPnMwGXfiYiIKPt0GUTSry1TXV0NAIjH41oVh4iISLd0GUTSyfLRKuD0XSIioomn+yBiMBgAsEWEiIhICwwinwURtogQERFNPF0GkfTl3JUgEovFtCoOERGRbukyiKR3wxiNRgBsESEiItKCLoNIOiWIcIwIERHRxNN9EOEYESIiIu3oMoikt35w1gwREZF2dB9EOEaEiIhIO7oMIunLuff19QEA2traNCoNERGRfukyiKTbunUrAOCJJ57A9u3bNS4NERGRvug+iMyZM0f9+Qtf+IKGJSEiItIf3QeR6dOnD3osHo/jtdde4yJnREREWab7IKJc9E7x4IMPoqamBrfddhsmTZqEJ598EuFwWKPSERERndp0GUTSB6sq03cVzzzzTMb9H//4x/jRj340IeUiIiLSG10GEZPJpP6cHkqGs27dumwWh4iISLd0GUTSW0G6u7tH3H7Pnj3ZLA4REZFu6TKIpLeCHDlyZFSvYasIERHR+NNlEDkejz/+uNZFICIiOuXoPogIIUa13c6dO7NcEiIiIv3RfRAZabDqt771LQBAV1cXr0dDREQ0znQZRNLDx8B1RNK1tLRk3L/66quzViYiIiI90mUQSTdcEHn33XcBIGMxs+EGrLa0tKC8vJzrjRAREY2R7oNIf39/xv2amho0NjZi6tSpAIAzzzxzxH3Mnj0bAPDUU0/hT3/60/gXkoiI6BSlyyCS3jWzefNm9efGxkasW7cuY8Gzq6++Gl/84hfV+6tWrUJXVxeAoyHmoYceytj3XXfdla1iExERnXJ0GUTSZ8rIsoxrrrkG99xzD0wm06DBqyaTCffff796/5/+6Z8wc+ZMAMBvfvMbPP3004P2f8kll4x6Ng4REZGeSSKHz5h+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hMNhNTj29/fD7/er3RfpoS8UCqG0tBROpxOpVEptfUmlUvB4PDCbzbBarZBlWe0CSaVSmDJlCmbMmAGTyYT29nZ4PB617lKplNoV0tLSAiEEjEYjnE4n7Ha72lpjtVrH1LU4VkII9f1YrVb1mKlUCmazWe06lGUZ8XhcLUu2uqoZREYwES0iue5vf/sbbrnlFq2LAeDo6rYlJSXq/VAohI6ODiQSCXg8HjQ3N6O+vh7PP/887rvvvmH343Q6kZ+fjzlz5uC73/0uJk2aNOoyxONxdSxES0sLnn32WTz//PO47bbbIEkSVq1aNWwLR1VVFUwmE+rq6jBz5kwUFxfDZDJhx44dOO+881BdXT2oVSzbEokEhBA52bdORKe+nAkigUBA7WM866yz8POf/xyLFi2Cx+MZNP10KAwiEyuRSKCjowObN2/GRRddhA0bNuAb3/jGuOz7S1/6ElauXDku+0pXUlKCxYsXY+nSpZg8efK475+IiMYuZ4LIO++8g0WLFg16/IYbbsDvf//7EV/PIJI7lKbWxx9/HF//+tdRV1eHeDwOg8EAWZbR39+PG264AR999BFuuukmfOc730FBQQE2b96Mc845R23+i8ViMBqNWLNmDW666abjKkt+fj6uv/56LF++XJ1xQEREuSNngsiJYhA59R0+fBjz5s3LeOzmm2/GPffcg9/97ncoKirCueeeiz179iAYDOIrX/nKSTv9lohILxhERsAgQkRElD05c62ZXMVv1ERERLlBl0GEiIiIcgODCBEREWmGQYSIiIg0wyBCREREmmEQISIiIs3oMoiMdDVMIiIimhi6DCIGg0HrIhARERF0GkS4jggREVFu0GUQYdcMERFRbtBlEInH41oXgYiIiKDTIMIWESIiotygyyBCREREuUGXQUSWdfm2iYiIcg7PyERERKQZBhEAGzZs0LoIREREusQgAuDBBx/UughERES6xCAC4IMPPtC6CERERLqkyyDCwapERES5gWfkz7zxxhv4+c9/DiGE1kUhIiLSDaPWBcgFQgjcfPPNAIA5c+bgvPPO07hERERE+sAWEQDhcFj9ub29XcOSEBER6QuDCJDRHbNv3z4NS0JERKQvDCI4GkSSySQA4PHHH9e4NERERPqhyyAiSZLWRSAiIiLoNIgMhbNliIiIJh6DyGeUrhkA+MMf/qBhSYiIiPRD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot the running means\n", "M = len(method_list)\n", "\n", "from itertools import cycle\n", "\n", "colours = cycle(['red', 'blue', 'black', 'orange','yellow','orange'])\n", "\n", "# mean_true = integrate.quad(lambda x: x**2*f(x), -np.inf, np.inf)[0]/Total_mass\n", "\n", "for i in range(M):\n", " samples = sample_list[i]\n", " name = method_list[i]\n", " running_mean = np.cumsum(samples, axis=0) / (np.arange(len(samples))[:, None] + 1)\n", " c = next(colours)\n", " print(name)\n", " if i" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Prox-l1\n", "4.005851575122584\n", "Hadamard\n", "6.36752302816277\n", "Gibbs\n", "9.155003688288497\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#effective sample size\n", "import numpy as np\n", "import arviz as az\n", "import matplotlib.pyplot as plt\n", "\n", "\n", "# Compute Effective Sample Size (ESS)\n", "\n", "idata_list = []\n", "ess_list= []\n", "for samples in sample_list:\n", " \n", " idata = az.convert_to_inference_data(np.expand_dims(samples, 0))\n", " idata_list.append(idata)\n", " ess_list.append(az.ess(idata))\n", "\n", "\n", "\n", "\n", "# Visualization\n", "labels = [str(i) for i in range(p)]\n", "\n", "fig, ax = plt.subplots()\n", "\n", "M = len(method_list)\n", "width = 0.2 # the width of the bars\n", "\n", "x = np.arange(p)-width\n", "for i in range(M):\n", " ess_values = np.log(ess_list[i]['x'].values)\n", " rects1 = ax.bar(x +i*width, ess_values, width, label=method_list[i])\n", "\n", "\n", "# # Add some text for labels, title, and custom x-axis tick labels, etc.\n", "ax.set_ylabel('ESS',fontsize=16)\n", "# ax.set_title('Effective Sample Size by Algorithm and dimension')\n", "ax.set_xticks(x)\n", "ax.set_xticklabels(labels)\n", "ax.legend(fontsize=16)\n", "ax.tick_params(axis='x', labelsize=12)\n", "ax.tick_params(axis='y', labelsize=16)\n", "\n", "fig.tight_layout()\n", "plt.savefig('results/ESS.pdf', bbox_inches='tight')\n", "# plt.xlabel('Dimension')\n", "plt.show()\n", "\n", "#display minimum ess\n", "# Visualization\n", "if p>1:\n", " labels = [str(i) for i in range(p)]\n", " \n", " fig, ax = plt.subplots()\n", " \n", " M = len(method_list)\n", " width = 0.2 # the width of the bars\n", " \n", " x = np.arange(1)-width\n", " xticks=[]\n", " for i in range(M):\n", " print(method_list[i])\n", " ess_values = np.log((ess_list[i]['x'].values).min())\n", " print(ess_values)\n", " rects1 = ax.bar(x +i*width, ess_values, width, label=method_list[i])\n", " xticks.append(x[0] +i*width)\n", " \n", " ax.set_ylabel('ESS',fontsize=16)\n", " # ax.set_title('Minimum Effective Sample Size by Algorithm')\n", " ax.set_xticks(xticks)\n", " ax.set_xticklabels(method_list,fontsize=16)\n", " ax.tick_params(axis='x', labelsize=16)\n", " ax.tick_params(axis='y', labelsize=16)\n", " \n", " fig.tight_layout()\n", " plt.savefig('results/ESS_min.pdf', bbox_inches='tight')\n", "\n", " # plt.xlabel('Dimension')\n", " plt.show()" ] }, { "cell_type": "markdown", "id": "709cb2b7-43be-4bab-9ea3-8c1a2e6e78a5", "metadata": {}, "source": [ "## Plot the densities if in dimension 1 or 2" ] }, { "cell_type": "code", "execution_count": 198, "id": "629da1a5-f307-4688-ae97-fecf8ee58a48", "metadata": {}, "outputs": [], "source": [ "from scipy import integrate\n", "#For dimension p=1 and p=2, get true density via numerical integration \n", "if p==1:\n", " def f(x):\n", " return np.exp(-(fval(np.array([x]))+lam*np.abs(x))*beta)\n", " Total_mass = integrate.quad(f, -np.inf, np.inf)[0]\n", " # print(Total_mass)\n", " density = lambda x: f(x)/Total_mass\n", " \n", " mean_true = integrate.quad(lambda x: x*f(x), -np.inf, np.inf)[0]/Total_mass\n", " def rho(xgrid):\n", " return np.array([density(t) for t in xgrid])\n", "\n", "if p==2:\n", " def f(x1,x2):\n", " return np.exp(-beta*( fval(np.array([x1,x2]))+lam*np.abs(x1)-lam*np.abs(x2)) )\n", " Total_mass = integrate.dblquad(f, -np.inf, np.inf, -np.inf, np.inf)[0]\n", " density = lambda x1,x2: f(x1,x2)/Total_mass\n", "\n", " mean_true = integrate.dblquad(lambda x1,x2: x1**2*f(x1,x2), -np.inf, np.inf, -np.inf, np.inf)[0]/Total_mass\n", "\n", " def rho(xgrid,ygrid):\n", " return np.array([density(t,s) for t in xgrid for s in ygrid])\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "id": "59ceafaf-d0e3-42cc-b6a2-fa9b928c8c8f", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "from scipy.special import kl_div as kl\n", "from matplotlib import cm\n", "#functions to evaluate the KL error in diemnsion p=1 and p=2\n", "\n", "def KL_error(samples, rho, plot=True):\n", " counts, bins = np.histogram(samples,100,density=True)\n", " xgrid = (bins[1:] + bins[:-1])/2\n", " if plot:\n", " plt.plot(xgrid, counts)\n", " xgrid_fine = np.linspace(min(bins), max(bins),1000)\n", " plt.plot(xgrid_fine,rho(xgrid_fine), 'r--')\n", " return np.sum(kl(counts,rho(xgrid)))\n", "\n", "def KL_error_2d(samples, rho, plot=True):\n", " Z, xbins,ybins = np.histogram2d(samples[:,0], samples[:,1],bins=100,density=True)\n", " xgrid = (xbins[1:] + xbins[:-1])/2\n", " ygrid = (ybins[1:] + ybins[:-1])/2\n", "\n", " Z2 = rho(xgrid,ygrid)\n", " if plot:\n", " ax = plt.figure().add_subplot(projection='3d')\n", " \n", " X,Y = np.meshgrid(xgrid,ygrid)\n", " surf = ax.plot_surface(X, Y, Z, alpha=0.8, cmap = cm.coolwarm, \n", " linewidth=0, antialiased=False)\n", " \n", " \n", " surf2 = ax.plot_surface(X, Y, Z2.reshape(len(xgrid),len(ygrid)), alpha=0.1, cmap = cm.jet,\n", " linewidth=0, antialiased=False)\n", " # ax.set(xlim=[-20, 20], ylim=[-5, 15])\n", " return np.sum(kl(Z.reshape(-1),Z2))/len(Z2)\n", " \n" ] }, { "cell_type": "code", "execution_count": null, "id": "cff42313-df69-4767-af1b-6da1c5a62ff4", "metadata": {}, "outputs": [], "source": [ "print(time_list)\n", "\n", "colors = ['k--','k', 'g--', 'g', 'm']\n", "print('Compute errors and plot (p<=2 only) ...\\n')\n", "if p==1:\n", " \n", " def get_running_error(samples, rho):\n", " error_list = []\n", " skip = len(samples)//50\n", " for i in range(100,len(samples),skip):\n", " error = KL_error(samples[:i],rho,plot=False)\n", " error_list.append(error)\n", " return error_list\n", "\n", " def get_running_mean_error(samples, rho):\n", " error_list = []\n", " skip = len(samples)//50\n", " for i in range(100,len(samples),skip):\n", " error = np.abs(np.mean(samples[:i])-mean_true)\n", " error_list.append(error)\n", " return error_list\n", "\n", " error_list = []\n", " for samples,name,t in zip(sample_list,method_list,time_list):\n", " error_list.append(get_running_error(samples, rho))\n", "\n", " for errors, name,t, c in zip(error_list,method_list,time_list,colors):\n", " plt.semilogy(np.linspace(0,t,len(errors)), errors,c, label=name)\n", " \n", " plt.legend()\n", " plt.savefig('results/Error_Time.pdf', bbox_inches='tight')\n", " plt.title('KL error against time')\n", " plt.show()\n", "\n", " for i in range(len(sample_list)):\n", " S = len(sample_list[i])\n", " errors= error_list[i]\n", " name = method_list[i]\n", " plt.semilogy(np.linspace(0,S,len(errors)), errors,colors[i], label=name)\n", " \n", " plt.legend()\n", " plt.savefig('results/Error.pdf', bbox_inches='tight')\n", " plt.title('KL error against iteration')\n", " plt.show()\n", "\n", " for samples,name in zip(sample_list,method_list):\n", " print('Error ',name, ' :', KL_error(samples,rho,plot=True))\n", " # plt.xlim([-5,5])\n", " plt.savefig('results/density-'+name+'.pdf', bbox_inches='tight')\n", " plt.title(name)\n", " plt.show()\n", " \n", "elif p==2:\n", " def get_running_error(samples, rho):\n", " error_list = []\n", " skip = len(samples)//20\n", " for i in range(100,len(samples),skip):\n", " error = KL_error_2d(samples[:i,:],rho,plot=False)\n", " error_list.append(error)\n", " return error_list \n", "\n", "\n", " error_list = []\n", " for samples,name,t in zip(sample_list,method_list,time_list):\n", " error_list.append(get_running_error(samples, rho))\n", "\n", " for errors, name,t in zip(error_list,method_list,time_list):\n", " plt.semilogy(np.linspace(0,t,len(errors)), errors, label=name)\n", " \n", " plt.legend()\n", " plt.savefig('results/Error_Time.pdf', bbox_inches='tight')\n", " plt.show()\n", "\n", " for i in range(len(sample_list)):\n", " S = len(sample_list[i])\n", " errors= error_list[i]\n", " name = method_list[i]\n", " plt.semilogy(np.linspace(0,S,len(errors)), errors, label=name)\n", " \n", " plt.legend()\n", " plt.savefig('results/Error.pdf', bbox_inches='tight')\n", " plt.show()\n", "\n", " " ] }, { "cell_type": "code", "execution_count": null, "id": "e6d46c3f-d725-4661-a176-bfe40d39ed58", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "ced7b2e9-6152-417f-ada4-1af170f9af22", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "fb9fb5f7-2d0c-4967-bdc4-30415301fe78", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "2aece177-4ef2-4f67-bd78-e6b8fdef0ccc", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "c26a184d-12fc-494b-8e7c-514d7df87dbe", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "2e469a64-7adc-45a0-b955-c6de479a91a1", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.0" } }, "nbformat": 4, "nbformat_minor": 5 }