{ "cells": [ { "cell_type": "markdown", "id": "1bb8dc7b", "metadata": { "id": "1bb8dc7b" }, "source": [ "# Part 3: Truncation and TruncatedStep" ] }, { "cell_type": "code", "execution_count": 1, "id": "6ZVfhXllCTTe", "metadata": { "executionInfo": { "elapsed": 54, "status": "ok", "timestamp": 1647909291310, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "6ZVfhXllCTTe" }, "outputs": [], "source": [ "!pip install git+https://github.com/google/learned_optimization.git" ] }, { "cell_type": "code", "execution_count": 2, "id": "8573ae8d", "metadata": { "executionInfo": { "elapsed": 28361, "status": "ok", "timestamp": 1647909319784, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "8573ae8d" }, "outputs": [], "source": [ "import numpy as np\n", "import jax.numpy as jnp\n", "import jax\n", "import functools\n", "from matplotlib import pylab as plt\n", "\n", "from learned_optimization.outer_trainers import full_es\n", "from learned_optimization.outer_trainers import truncated_pes\n", "from learned_optimization.outer_trainers import gradient_learner\n", "from learned_optimization.outer_trainers import truncation_schedule\n", "from learned_optimization.outer_trainers import common\n", "from learned_optimization.outer_trainers import lopt_truncated_step\n", "from learned_optimization.outer_trainers import truncated_step as truncated_step_mod\n", "\n", "from learned_optimization.tasks import quadratics\n", "from learned_optimization.tasks.fixed import image_mlp\n", "from learned_optimization.tasks import base as tasks_base\n", "\n", "from learned_optimization.learned_optimizers import base as lopt_base\n", "from learned_optimization.learned_optimizers import mlp_lopt\n", "from learned_optimization.optimizers import base as opt_base\n", "\n", "from learned_optimization import optimizers\n", "from learned_optimization import training\n", "from learned_optimization import eval_training\n", "\n", "import haiku as hk\n", "import tqdm" ] }, { "cell_type": "markdown", "id": "b10e3fad", "metadata": { "id": "b10e3fad" }, "source": [ "## Training learned optimizers: Truncated training, and different kinds of gradient estimators.\n", "\n", "In the previous colabs we showed some of the core abstractions this library is based on: `Task`, `Optimizer`, `LearnedOptimizer`, and `TaskFamily`. We also showed a rather minimal meta-training procedure\n", "which trains learned optimizers to perform well with a handful of inner-training steps.\n", "\n", "In this colab, we discuss inner-training and meta-training in more detail and discuss some of the more heavy weight abstractions designed to facilitate this.\n", "\n", "First, we will discuss truncations, and `TruncationSchedule` which define how long to unroll a particular sequence. Next, we will discuss the `TruncatedStep` abstraction which provide an interface for performing inner-training using some meta-learned components.\n", "While this might seem abstract at the moment, this `TruncatedStep`\n", "abstraction allows us to compute gradients of the meta-learned components using ES, PES, or backprop of any\n", "iterative system and is general enough to work with learned optimizers, as well as other meta-learned systems." ] }, { "cell_type": "markdown", "id": "17f92031", "metadata": { "id": "17f92031" }, "source": [ "## Truncated training and TruncationSchedules\n", "\n", "When applying a learned optimizer to train some target task, one usually wants the optimizer to be performant for a very large number of steps as training a model can take hundreds to hundreds of thousands of iterations.\n", "Ideally we would like our meta-training procedure to mirror the testing setup but given how long these unrolls (iterative application of the learned optimizer) can be this can become challenging. Truncated training is one solution to this. The core idea is to never run an entire inner-problem to completion, but instead unroll a shorter segment, and leverage information from that shorter segment to update the weights of the learned optimizer.\n", "\n", "This is most commonly seen in the form of truncated backpropogation through time and is used to train training recurrent neural networks. More recently, truncated training has been used to train RL algorithms (e.g. A3C).\n", "\n", "Truncated training has a number of benifits. First, it greatly reduces the amount of computation needed before updating the learned optimizer. If one has length 100 truncations for a total length of 10k iterations, one 100x more updates to the weights of the learned optimizer. For some methods, like PES, we can even do these gradient estimates in an unbiased way (technically less biased, see PES paper for a discussion on hysteresis). For others, such as gradient based meta-training, and other ES variants, this comes at the cost of bias.\n", "\n", "In code, truncations are handed by a TruncationSchedule subclass which is a small, stateless classes which manage how long we should be computing training for. For example, here we see a constant length truncation which runs for 10 steps then reports done." ] }, { "cell_type": "code", "execution_count": 3, "id": "c4f944d6", "metadata": { "executionInfo": { "elapsed": 235, "status": "ok", "timestamp": 1647909320152, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "c4f944d6", "outputId": "811e029c-0bf3-4e6c-b88d-3f3c94a153b3" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 False\n", "1 False\n", "2 False\n", "3 False\n", "4 False\n", "5 False\n", "6 False\n", "7 False\n", "8 False\n", "9 False\n", "10 True\n", "11 True\n" ] } ], "source": [ "trunc_sched = truncation_schedule.ConstantTruncationSchedule(10)\n", "outer_state = None\n", "key = jax.random.PRNGKey(0)\n", "trunc_state = trunc_sched.init(key, outer_state)\n", "for i in range(12):\n", " trunc_state, is_done = trunc_sched.next_state(trunc_state, i, key,\n", " outer_state)\n", " print(i, is_done)" ] }, { "cell_type": "markdown", "id": "6ee32360", "metadata": { "id": "6ee32360" }, "source": [ "In practice, we often run these sequentially.\n", "\n", "For example, here is a loop which let's us sequentially train a model over and over again.\n", "To do this, we must keep track of some state which progresses from inner-iteration to\n", "inner-iteration.\n", "In this case, this contains three values: the problem we are training's `opt_state`, the\n", "state of the truncation, and a rng key." ] }, { "cell_type": "code", "execution_count": 4, "id": "9540b593", "metadata": { "executionInfo": { "elapsed": 9207, "status": "ok", "timestamp": 1647909329490, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "9540b593" }, "outputs": [], "source": [ "key = jax.random.PRNGKey(0)\n", "task = image_mlp.ImageMLP_FashionMnist8_Relu32()\n", "opt = opt_base.Adam(3e-3)\n", "outer_state = None\n", "\n", "\n", "def init_state(key):\n", " key, key1, key2 = jax.random.split(key, 3)\n", " p = task.init(key1)\n", " opt_state = opt.init(p)\n", "\n", " trunc_sched = truncation_schedule.ConstantTruncationSchedule(50)\n", " trunc_state = trunc_sched.init(key2, outer_state)\n", "\n", " return opt_state, trunc_state, key\n", "\n", "\n", "def next_trunc_and_train(train_state_and_batch):\n", " (opt_state, trunc_state, key), batch = train_state_and_batch\n", " # progress one step on the truncation state\n", " trunc_state, is_done = trunc_sched.next_state(trunc_state,\n", " opt_state.iteration, key,\n", " outer_state)\n", "\n", " # progress one step by computing a gradient and applying an update.\n", " p = opt.get_params(opt_state)\n", " key, key1 = jax.random.split(key)\n", " l, g = jax.value_and_grad(task.loss)(p, key1, batch)\n", " opt_state = opt.update(opt_state, g, loss=l)\n", "\n", " return (opt_state, trunc_state, key), is_done, l\n", "\n", "\n", "def reset_trunc_and_init(train_state_and_batch):\n", " (opt_state, trunc_state, key), batch = train_state_and_batch\n", "\n", " # new inner problem\n", " p = task.init(key)\n", " opt_state = opt.init(p)\n", "\n", " # new truncation\n", " key, key1 = jax.random.split(key)\n", " trunc_state = trunc_sched.init(key1, outer_state)\n", "\n", " return (opt_state, trunc_state, key), False, jnp.nan\n", "\n", "\n", "is_done = False\n", "state = init_state(key)\n", "\n", "losses = []\n", "for i in range(200):\n", " batch = next(task.datasets.train)\n", " state, is_done, loss = jax.lax.cond(is_done, reset_trunc_and_init,\n", " next_trunc_and_train, (state, batch))\n", " losses.append(loss)" ] }, { "cell_type": "markdown", "id": "38a703dd", "metadata": { "id": "38a703dd" }, "source": [ "Now we can plot the losses. We see a sequence of decreasing losses, which get reset back to initialization every 25 steps." ] }, { "cell_type": "code", "execution_count": 5, "id": "c0654f72", "metadata": { "colab": { "height": 296 }, "executionInfo": { "elapsed": 295, "status": "ok", "timestamp": 1647909329901, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "c0654f72", "outputId": "345880f5-663c-4c05-858b-4c8c30accd50" }, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'loss')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(losses)\n", "plt.xlabel(\"all inner-iteration\")\n", "plt.ylabel(\"loss\")" ] }, { "cell_type": "markdown", "id": "2919fe20", "metadata": { "id": "2919fe20" }, "source": [ "One key reason why this abstraction is important is when thinking about training multiple models in parallel. Naively, we could train all models starting from initialization with the exact same iteration into training.\n", "This is sometimes refered to as \"lock step\" training.\n", "\n", "One alternative is to break this lock-steping, and let our models train different parts of the inner-problem at different times.\n", "With this TruncationState abstraction we can do this by either training with variable length unrolls, or faking the initial state so models reset early.\n", "\n", "For starters, we can see training multiple models with lock step unrolls:" ] }, { "cell_type": "code", "execution_count": 6, "id": "9c2da78a", "metadata": { "executionInfo": { "elapsed": 7613, "status": "ok", "timestamp": 1647909337682, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "9c2da78a" }, "outputs": [], "source": [ "n_tasks = 8\n", "\n", "\n", "@jax.jit\n", "@jax.vmap\n", "def update(state, is_done, batch):\n", " state, is_done, loss = jax.lax.cond(is_done, reset_trunc_and_init,\n", " next_trunc_and_train, (state, batch))\n", " return state, is_done, loss\n", "\n", "\n", "keys = jax.random.split(key, n_tasks)\n", "states = jax.vmap(init_state)(keys)\n", "\n", "losses = []\n", "is_done = jnp.zeros([n_tasks])\n", "for i in range(200):\n", " vec_batch = training.vec_get_batch(task, n_tasks, split=\"train\")\n", " states, is_done, l = update(states, is_done, vec_batch)\n", " losses.append(l)" ] }, { "cell_type": "code", "execution_count": 7, "id": "1b8fe368", "metadata": { "colab": { "height": 296 }, "executionInfo": { "elapsed": 301, "status": "ok", "timestamp": 1647909338096, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "1b8fe368", "outputId": "eaffc123-e90b-4e5d-e478-1e4c0142fdd9" }, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'loss')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "losses = np.asarray(losses)\n", "for i in range(n_tasks):\n", " plt.plot(losses[:, i])\n", "\n", "plt.xlabel(\"all inner-iteration\")\n", "plt.ylabel(\"loss\")" ] }, { "cell_type": "markdown", "id": "e24586dc", "metadata": { "id": "e24586dc" }, "source": [ "And then, we can compare this to what the curves look like if we break the lockstep by simply faking the initial iteration." ] }, { "cell_type": "code", "execution_count": 8, "id": "26d7ba6d", "metadata": { "executionInfo": { "elapsed": 3090, "status": "ok", "timestamp": 1647909341341, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "26d7ba6d" }, "outputs": [], "source": [ "key = jax.random.PRNGKey(0)\n", "keys = jax.random.split(key, n_tasks)\n", "states = jax.vmap(init_state)(keys)\n", "opt_state, trunc_state, keys = states\n", "import dataclasses\n", "\n", "opt_state = opt_state.replace(\n", " iteration=jax.random.randint(key, [n_tasks], 0, 50))\n", "states = (opt_state, trunc_state, keys)\n", "\n", "losses = []\n", "is_done = jnp.zeros([n_tasks])\n", "for i in range(200):\n", " vec_batch = training.vec_get_batch(task, n_tasks, split=\"train\")\n", " states, is_done, l = update(states, is_done, vec_batch)\n", " losses.append(l)" ] }, { "cell_type": "code", "execution_count": 9, "id": "12bf6111", "metadata": { "colab": { "height": 265 }, "executionInfo": { "elapsed": 295, "status": "ok", "timestamp": 1647909341741, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "12bf6111", "outputId": "5eb3efdf-2ecf-4968-c65e-9e35f75578f0" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90\nbGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsT\nAAALEwEAmpwYAAEAAElEQVR4nOz9d5hk6V3eD3+ekytXdZ6ZnpmetLuzedEqS0hIBEkOILLNaxNs\nkhO8YL/YYL8/bJCxDdiAiTIiimiEBAgJ5YQ2SBu1Ozn39HTu6sp18vP74zlVHaqqZ3anN4yo+7p0\naba7+tSpU+fcz/3c3ySklAwxxBBDDHHrQ3upT2CIIYYYYojdwZDQhxhiiCG+TDAk9CGGGGKILxMM\nCX2IIYYY4ssEQ0IfYoghhvgygfFSvfHY2JicmZl5qd5+iCGGGOKWxOOPP74qpRzv97vrEroQYj/w\ne8AUEAPvllL+4rbXvBn4C+BS8qM/l1L+l52OOzMzw2OPPXbdkx9iiCGGGGIDQogrg353Iwo9BH5U\nSvmEECIHPC6E+JiU8uS2131OSvn3b+ZEhxhiiCGGeP64rocupVyQUj6R/LsOnAL2vdAnNsQQQwwx\nxHPDcwqKCiFmgAeAR/v8+rVCiKeFEB8WQty1Gyc3xBBDDDHEjeOGg6JCiCzwPuCHpZS1bb9+Ajgo\npWwIId4BfAA41ucY3wd8H8CBAwee7zkPMcQQQwzRBzek0IUQJorM/0BK+efbfy+lrEkpG8m/PwSY\nQoixPq97t5TyQSnlg+PjfYO0QwwxxBBDPE9cl9CFEAJ4D3BKSvk/B7xmKnkdQohXJcdd280THWKI\nIYYYYmfciOXyeuCfAM8IIZ5KfvbjwAEAKeWvA98M/KAQIgTawLfLYRvHIYYYYogXFdcldCnl3wLi\nOq/5ZeCXd+ukhhjiVoXfDnny47PM3DPG5Ez+pT6dIf6OYVj6P8QQu4gwiHnsry+zfHl73sAQQ7zw\nGBL6EEPsIgxLPVKhH7/EZzLE30UMCX2IIXYRhpkQehC9xGcyxN9FDAl9iCF2EZquoWmCMBgq9CFe\nfAwJfYghdhm6qRENLZchXgIMCX2IIXYZhqUNLZchXhIMCX2IIXYZuqkNLZchXhIMCX2IIXYZhqkT\nDQl9iJcAQ0IfYohdhrJchoQ+xIuPIaEPMcQuwzA1Qn/ooQ/x4mNI6EMMscvQh5bLEC8RhoQ+xBC7\njKHlMsRLhSGhDzHELmNouQzxUmFI6EMMscswTH2o0Id4STAk9CGG2GUM89CHeKkwJPQhhthlGKZG\nNLRchngJMCT0IYbYZQyDokO8VBgS+hBD7DJ0UyeOJHE8nMI4xIuLIaEPMcQuo9MTfZiLPsSLjSGh\nJ4hjiR8OH8Ahbh7dqUXDjotDvMi4pQm9stTi4fdfoF52b/pYD/zUx/ivHzq1C2c1xN91GKYODMfQ\nDfHi45Ym9Pq6yxMfuUJ97eYJPWsb1NxgF85qiL/r0IeWyxAvEW5pQtcMFXRqtW6e0HOOQa0d3vRx\nhhhiaLkM8VLhlib0E/VnAbiydvWmj5VPmdSHCn2IXcDQchnipcItTeiFbBaARqt108fKOyY1d6jQ\nh7h5dLJchrnoQ7zYuKUJvZjJA9BueTd9rLxjUGsPFfoQN4+Ohz5s0DXEi41bmtBL+SIA7fYuEPrQ\nchlil9Dx0IdB0SFebNzShF5I5QmFj7cLRJx3DOpeOKzuG+Km0fXQh4Q+xIuMW5rQbd0m0H38XfC+\n8ykTKaHhD330IW4Ow7TFIV4q3NKEDhAZAYF3815lzjEAhj76LqH2yVkan7/2Up/GS4Jh2uKti+Ur\nNT7+OyeRt+hO/bqELoTYL4T4lBDilBDihBDih3Z47SuFEJEQ4pt39zQHQ5ohkXfzFz/vmADUh5ku\nu4L2qTLt0+WX+jReEgzTFm9dnPz8AmceWcRt3prCzriB14TAj0opnxBC5IDHhRAfk1Ke3PwiIYQO\n/HfgIy/AeQ6ENGJi/+aPk08pQh8q9N2BZuvIXdg53YoYpi3euli8UAEg8CNSL+2pPC9cV6FLKRek\nlE8k/64Dp4B9fV76r4H3Acu7eobXgbAkMrh556hruQwV+q5AWDrx31FCF5pAMwTR0HK5peC1Atbm\nmwCE3q25GD8nJhRCzAAPAI9u+/k+4J3Ar1/n779PCPGYEOKxlZWV53iq/aFZIHaB0Dcsl6FC3w28\nkAr91Oc/w5UvPfWCHHu3YJj60HK5xbB4qQaJexvcojUEN8yEQogsSoH/sJSytu3XvwD8mJRyx6sg\npXy3lPJBKeWD4+Pjz/lk+8GwNbTwRpyjnTG0XHYXwtaRL9BD8dCfvpdnP/2xF+TYuwVjOFf0lsPi\nhWr337dqUdgNMaEQwkSR+R9IKf+8z0seBP5YCAEwBrxDCBFKKT+wWyc6CKatQ2ghpSR5/+eFoeWy\nu9DsF85yMUyL0FeBk+/5nS8ykrH4uW+57wV5r+cLNYbu1iSFv6tYOF9BMwRxKHclc+6lwI1kuQjg\nPcApKeX/7PcaKeUhKeWMlHIG+DPgX7wYZA5gOwZGbNMMmjd1HFPXSJn60HLZJQhbh0giX4ChIbpp\nEYXqe2p4IbPlm+/ls9vQDY1oaLm8rNFu1Hn///gvnH3080RRzNKlGnuOFIFbN0PpRhT664F/Ajwj\nhHgq+dmPAwcApJQ7+uYvNOyURSB1qq0aWSt7U8fKp4YtdHcLwlape7EXoRu7W+5gWCZRoBT6SNri\n4mpjV4+/GzAsfWi5vMzhpDPMnz5JOl/k6IOv5R0/eC9hEHHtzPqXr+Uipfxb4Ia9DCnld93MCT1X\npFIWDaBcq7CvuPemjqU6Ln4ZKvTHfgtye+D2t79ob6klhC69CDLmrh5bNy1CT/XvKWUsyldeft/Z\n0EN/+UNoGvuO38XcqWfQdI39d47Qqimh8GVrubzckUmrbNFq8+ZVmmrQ9WWo0B/6ZXjm/76ob9lR\n6C9EYNQwTcJEoZfSJpWWj5Qvr8o+3dSGaYu3AKaP301lcYFGeQ3YVOV7i1outxyhexcvsvrrv0HU\nUATeIfTaLhB6zvkyHUPnFMCtXv91uwjNVpu/FyIwqpsmUaC+p5GMRRhL6t7LayHeDcvlX3/iX/MD\nH/uBXTqjIfph/533AHD1lBqWY1hKiNxM2uL//sQ5/vnvfvHmT+554JYjdP/iRVZ+4RfwL10GIJfJ\nANBo7tKQiy/HtMWXgNDFZstll2GYVpfQS2kLgPXmLpQL7yIMU7uuyotqPu3T5cGBYwGr7dUX4OyG\n6GB85hBWKs3cyWcA0DSBbmo35aG3g4hPn1nBfQl2aLccoZsHDgDgz14BoJDNAdBstm/62PmU8eVp\nuTh5cLeXDryw0LpB0d2/nrppbVguiT9ffpkQ+nLN5W2/8FkWGu510xbd02XWfucEUb3/uResAlX/\nxV2I/65B03T23XEncyef7f7MsDTCmxAi904XCWPJyYUX95mDW5DQrf37AQhmZ4ENQm+1d2NQtAqK\nvtz82JvGS6HQrRdQoVsm4TaFXmm9PHZW+ZTJ6cU6zTDGbYZ86VNXBzZ60vLq3AcSul2g6t3893bu\ni0v89o/9Lc3qzQ+C2S385bsf5r3//eMv9WkAMHXkNsrzc91UWNPSb8pyuX/S4F5xgWfmXvzF+JYj\ndC2VwpiYwL8yy7PXqvznD58GwG3fvELLOyZBJHG/3LIT7Dx4L65a2Jy2uNvQDZMoKSwayShSfLko\ndMfUKaVN1lMCGUs+9yfnePYz/dsI61m1u4h3IPR22MaPbu6zxbGkVfUJ3JdPkPZy5VmuNJ96Ud+z\n9vErrP7OiZ6fp3JKFHrJbGLDurm2DZOf/GF+2/45Tl+Zf97HeL645QgdwDpwAH92lqYX8vFzqieM\n5+4CoadUIK+yC4vDywpOEYIWRC+eitVeSA/d2rBcih0PvfXy+c72FFJcysL3/9KbSOUtamv97UA9\n11Ho/b+XglUAoObf3GJsOeq72I1BMLsF27KJ5Iu7q4qaAd7lXtVsZ1T9ipckVpj2zSl08fr/L6NU\nOX7pd5/3MZ4vbklCNw8qQp/MO/hJhvzN3qwPv/8CxVV1g11Yvrmq05cdHDVM+8X00YWhgS5eEELX\nTRMZx8RRRN4x0DXxMiN0h/mqixCC3IhDo9zfDtSyJoidLRfgpm0XM2lr8XLKrXYcGynCF7UJlp6z\nkG6E3LYDt9MqscJrqufesG4uKMr0Kzgz9jV8s/d+mqtXn/9xngduSUK3DhwkWl1lzIiIBcQiIrjJ\ndpenHl5AW1Ye45ml+m6c5ssHjiIG3MqL+rYvVD8Xw0yUbRAghKCUNim/XAYSNFf5Tys/wh2VzwCQ\nG7Gpl/t710LX0NImcaM/oedttRBXvMpNnZKZ7JZeTpZLKpVCioj2gMXshUB3R7TtettJppzbUoRu\nWvpN88n6q/8daeGx/Mif3tRxnituTUI/qDJdjMV5srZBqIc3fbMaDgSey2jG4sziix+dfkGREMNL\n4aO/MApdPZgbxUXWyydtUWjMNL9EyV+k7UdkE4U+KNCu50yimo+MZM+Ep6JdBG5eoXctl5dRrv6y\nG4OA+vqLtxvWcv2D0E7XckkUuq3flEJfvlLDDqfxpEFzdfZ5H+f54NYk9E7q4pVZJnI2oR7d9Hby\nUvsCl5avcPtUjjNLL7/eIDeD2Mrjx87NZ7pICe3KDb/8hVPoKpi4kbpovXwsF1sF2DK0Wai2yY04\nhEGM2xiQ6ZKziBoB7WdWWPudEwTLG/UUz8VyiXfI8jGTIq+Xk0Kfa6jFpbr+4j1rG0Hordeqo9C9\nljqXm7Vcnv3MNZ56/yWWZQmztfS8j/N8cEsS+uZc9PGcTSAkjpvjmYeuEEfPbavUVU5WROTB7VM5\nzi3ViZ/nkNhTDy3wyd8/dePv/wIPo42imD/93YiHG//05j30T/xn+NmjithvAMI2XpDSfz0h9Mjv\npC6aLx9C100i3SYjXBarLrkRB4D6AB9dz1nEdZ9gUanDeFNzuBsNisZ+xMJ/+yLLv/oUzccWe35v\nJgr9ZeWhJxXejeqL1ylTG2C5OGml0N2k+lxZLs//WmVLNq26zyLjOO0hoV8XejaLPjJCMDvLRN7B\nF5Lp2m189vcucPmZtRs6RhxH/O/v+lYe/rM/BEDYEukJbp/M0fIj5tafX6HS+kKTs48u3VAu++L/\nfIz19517Xu9zo9B1jcmDGU62vprayk2qocw4xAG01we+JHZd/Lk5pO8jdlLojZUdF4bY81j62Z+l\n/qlP9fzOsLZaLiMZi/WXSR46AFaWLG3mNxF6Y4CPruUsorpPsKiIbfMCmDEz6EK/vkKPJbm37Cdu\nBqy/7xwy2npdOx66fwMKXUrZ8/db3iqOCYKbv9bpQhqAWnXjnnSbwQsqcPRM/zRRw7bRdB3vod8k\nfOTXE8vl+Xvo2REHJCzLA6T93ZnMdqO4JQkdwNy7l2BhkYmczVm7zsWRpwGoLN/Yiq9pOpqu06op\n9aPbAhEY3D6ltsynn6ePnspZRGF8Q9tbYeoDA2K7iQffpnY0jz9m39yBMhPq/5uDb9LGJz/Jha/+\nGvzZ2WQMXR/fdv5J+IV74PQHBx5HWBaVP3sfjU/2Erq+KSgKGx76y6UgTNg5sqLNYrVNdkRd84EK\nPWtBJPFn1f0mNxGJEOKGios0xyD/5v1kXrsXZG9DNE0TGJZGcAOZYGvvPcXyLz/Z93ftdpt3vetd\nPPbYY9c9zvWQTwi9kij0Vs3nd//95zn/xAs3klgYGlraINpmfwkhsNMZ/jBq8WuzH+4WFj3f+ylX\nUot4hWny/s7CZbdxyxK6XigQ1WpM5Gwesdt89PbfQnMktdX+D44MIlpPLbP2h6fw51QWSypfoF1T\nD4uV0jECi2OTitDPLD6/TJdUXqmA1g1E7/WsSfQiZGfkpsa4K/0xTp8v0Fh//hW1f1Y/y3fumYDG\n4IdOy6kAbFSrI6wBQdHJe6CwDz71XyHur4SEEDjHj+Oe6rWvNjz0DUJ/OTXo0uwcJd1nvuriZEwM\nU6M+4LrruUQ1ttS5y23tAvJW/obL/we2WwjamOaNTeERhtaT1tdBKpXCsizOXD3Dzz/28zd0ToMw\nklc2R6OhCP3a2XXCIB64k9ktaFmrbyGXncnghDprflV1XJQQPc8Cw84i3mQPtnRf1GSEW5jQ88TV\nKhN5GxkqEhaFgNpKf4W+/oELlP/4DO0vrdL6klKY6Xy+S+h2ykSPTRwhmC6lOLv8/OyJVOLTtQcU\ni2yGljF7AjQvCDSNuwufI5YaV569MUuqH2qaxhOOQ7M2OLdWz6vvIq7XBgdFdQPe/B9g+SSc6DfR\nUME5fhzv7Fnkti1+10PfFBQFqAxYHFd++Ve4+oP/YvAHA86ePcuf/umfEg9YYJ4T7Cwlw2Oh0la5\n6KMOjbUBuejJ/dLBZoXuhRFZM3/DaYsDG6I9+V5Mdx6/fn2RIkytZ1HZjPHxcS7NX+J3TvwObvj8\nxcFoXgUiWy11jPlzFeB5dDmcewz+8NvBu7HnVc+ZPQodwE5nSYc6a2Gza1E9F9tlZfYyV5MGX9lE\nobcZUTOn671xjRcKtyyha7l8otAdjtDiUP0QQbZFdaW/9519/V7G/vk9GBMpwkTFp3IFWgmhpzJq\nVV2rVzg0luHK2vNLp0p3Cf36Cl1lOLw4VkEp1yTrtJg9Wb7+iwdgvDADwHL1ysDXdBV6vdFNW+z7\n+e76Rhg/Dg/90sBjOXceR/o+3sVLW35umNs9dEXwa83+6i5uNGg+/DByB7KuVqucPHmSRmMXsi7s\nHHnNY6Gq7rPsiLNjUHTLuSaEJqXku3/7i1xehuoNZidpSQFRvN3u2/cKLNEmqFz/u1eEPvg6jY2N\nETXU8ev+86/XOPP0DwPgJYNKOoT+nJtiRQGc/TCc/usbenknZrEdTjZLKjQoR+7zaqH70J/+AZ94\nz6+pU9IDpB1yRrvKx9MpqL14LQBuWULX84rQx7MW9+hLHKkfpZWqUi97fTNdrL1ZnKNFjLE04aoi\n/XS+QLuutkO5rPL0Vt/7XRwr6VxabT4vok0lW+gbIXQ9a6q5mwP89sWqi79LMzmFk+dAaZa5U2Wi\nAZlAYdll+Te+hHu+0vf3k8VDAKzU+/cmAdBzaisd12tKMUr6E4SmwaGvhPLlgcdyjh8HwD11cut7\nbMtyyTvqvwcN+LYOHUK6LuHiYKVUKCQpgtVdaKhkZcmKNtcqbaSU5Eo29fX+i02X0JOK5446FkLw\nrQ/uZ71uMFu5sRa6AxX65N2YmkdwA4uVsHTiHZTpyOgIRmhgRdZNEfp5rY6UEAYe7YZPeV4JqOes\n0Pe/GgoH4JkbK+DRs1bfuJWdzmCGOmtEmFZHod/4ueTHJ6itLCOl5Mf/9sdZ0xfJ+CXOWdZQod8I\n9EIeoohi7JETLmZsUbVXkLEcWJkHYIw5hOU2MpaJh15DxjG5nNoClteXOZ6uUXfD59XB7+H1zwM3\nqNCz/dOoAB6+sMZrfuYTPHrpuVskMo6ZO/UsK1c2KVunwIHsOXw3YunSAE9PgH+pSjTA7x3PTAKw\nvENurZbf8NCv288lPQpedWCPGevQIYTj4G3z0btZLkl3vFxC6IMGfFszMwD4ly8PPO9dJXQ7SwqX\nuhuwUHXJjji0a37fdrrC0cHQMMZSILZaLt/wwD7umpqiGdZ57PL11XXXQ9++sBkWZsoiaF3fIhGG\nBmE8MNvET6l7NRfkbqrHTDEzqs41DFg4v3HNn7NC1zS455vhwqdU5tR1oOcspB/3WIF2JoM3dpz9\na6/h0jXVwOu5pC7mx8YJPBe32eD77v0+Du87QM4bZU3XoD5U6NdFhzjay9fQBJixyYqplGNtgO0C\nYIymIJRENY90Po+UMe1GnWLSca1CjoNZ9UVefh62y+nqSTy9TbVy/WybbqFDH0/v/v1FbEPjE6ee\nR9RfCP7i597Fk3/zVwB8x19/Bz9tNpm2n0FogtkT/RcJLZ1s2QcMyp5IqyyXFXcwuWi2jbCsDYVO\nL6FfLbf4x//nES62EnU6IA1S6Dr27bfhntxG6J0sF9/nN5/5TT698H6Agb3sO4Tu7UToc58EoFYZ\nnJJ5w7By/Ek6Jn3oFzkxX9tIXeyj0oUQGCUbc09GBZG3qcLXHdqP0D2enb8Bu8QZvIBa2Qy+H1+3\nQZuWjGAbNHRjWaj7MeffJKFn9xCJmFgGzJ1ZRzc18uOpGyLRVq3K1ZPPEIXJ933Pt/C0vI0zn/zD\n6/6tNqDDpeGk0QKfEW+ch576LLEInptCH1PPRm1lmTtG7uDAnj1k/SKLuoWsLdzwcW4Wtyyh63ml\nqBbn1eqnRxrzQnm71dXrEDoQrrZJJcdo12qM5osA1MiwL61ulJ0IXUb9Vcwrp15J26yzsHp9It5J\noacsnTccHeMTp28sp30zhBBMHTnG4vmzALiRy5IGdrjM2HSW5Sv9t8rC0kETA6sOM2aGNILl6zzI\nWj5PVG9syrrY+mAIAQ9dWGMpULsiWoN3Ic7x47inT2+5BvqmLJfPzn2Wzy8oMh6k0I2JcbR0ujvl\nqu/7iAALj+rqLqgpO8tJAzRrlZObCH2Qjz76T+6k+PePIKxe/3pvTinZc6vXV5+aNbhlsVkoEcQO\nLD3b87vNEGayKAzw0S96F4lERC7I3ZTlks9PE4kYKSLOPrrI/uMjOGnjhiyX8198hD/9z/+BZicm\nMHknH9fezCOnrt8Ia1A/l0wuR2ruIs8WvwRArPkEzyEomh9PCD157rMjNnaYYoUsYXWo0K8LvaAU\n+vKyuoAagsV4Dt0QOyv0sYTQ11zSCYm3a1VGUyoo2pBZJiwPIeDyaq/KDiselQ9eZOFdj/btrXzf\n+H24ZpP1yvXVy04KHeCtxye5Wm5z7nlk3EwdOcbq3CyB61K0i9SQ4FbJFO3uZPPtEEKgpY1uCt12\nuM2Aw62DrEQ7F13p2azKckl1UvK2fr5Oy9u1WPnttAarT/voMeJ6nWh1w0fenOUylZliub2IJgYr\ndCEE1szMjpYLhf0UaFAt78LINzvHsqEjtJAT8+uq0AQGdl00J9LoeUvVJWwjtE75/+X16xO6SEr8\nZZ/rYJYmCKSjskJ2OoaZKPQBmS5n1s/g2i4Fv3hTCj1XOEAoQqQI8Voht796SrWtvQGFni2NANBc\nV7upRqNBPXbwbmDkmzagZXGn42KE+nmsBc/J/smNjQNQX11hYWGBiq9UuRuNIoeEfn10LJfl9Y0t\nsh5rpEesHRW6nrfA0BKFro7RqlfJu3MANEljBk32FlJ9M12kG9J4eB4EhH1SJFNGCiur3VjaYnrn\n9qlvuUOt+tezXVpPLrP6e1sDh1NHb0PGMUuXL6jiFGLwaqSy5o7+vpY2BlouT31sltc//UOsxOGO\nxRJaPk9Uq6MnRBZuI7KMpWPq8BnvHH+Wy+yo0M09UwAESxvXoJvl4vvszexlqblExtZ2nAd7PUI/\ncbZE3TtItXp9kgorHsEO9xhWlmVdkevJxTLZoq0aUV0nx1qztC0eOmwQ+oX2J/nSypd2/HuhC4Sp\n9SwKAFa+SCBTyGv9i4a6x+gSeq86jWXM6fIZcvE4U81pau5NKPTUCL4WILUIO20wc+8o5rYKzcZn\nPsPiT7+r528zxRIAzcQeW1jokKe47vvqyZSocFuP+k4/Fxmre0hqz81ySeXyGJZNbWWZRx99lC+e\n+CwSSRwVEI1hUPS60AsFJLDSaCB1pdjM2MQuQXV58MMmNIEx6hCutkl3LZcqVvUkodaiyRixW2Vm\nLM3ltV7CNqcy7P2JV5O6d7ybHnbiM5/gc3/4OwD4vk8+ZyNck4a/s7IWulDtUwfkT08VHO7el+dT\nZ/oTetxuU3nf+/AuzOGeXNtSpDR15DYAli6cI2/lqcgAZEwqDW59cIm1ljIHWy5FG4FGReZ2LJbQ\nczmiei1ZPAXhthzsZtAkPf0n/I33Z/xCqQjtwQrdmFCB2HBp46HoKvQwYG92L6EMyWXaO86DtQ4d\nIrh2jdgfsDtJlyDKUr2Bro3lPznD+vvODvx9bGVZNpR1MVet0Qgj0nlroELvnoOl9yjj0XCKf/bo\n/8COT/FvP/Nve/5GRhHBtY2sI2HrfbOmTMdAohGWd1aLXculj90wV1knXDmGvT6K1Hzqz7M9BqiC\nKV/3kCLkyCsmMEwdY5tCd0+dYv297+35zjYIXd03HUL3pH7dGIGeMTH3ZHBPbb3nOh0XiTcU+nOx\nXIQQ5MbGqa+uMDU1heu1iTWflF/Cc8svWrXorUvo+Tyu4+BGEXZRPfRmbELRp7Lc2rEnhDGWIlzb\npNBrVcTKKdz0IpGwWa/UmBkdnIuupU00x0C6ITKWLF+6wBMf/iuiMOCjH/0otcYlnCDD44uPX/dz\naFlz4MQagNsn88yVBwRYhWDhP/3/8S+pgoZwaeN8M8USudFxFs6fpWgXqcYeEkinQuJY4g2wVXay\nXDIFZUu1oxFkfYdq0XyOuN5Qi2fJIdqmhpZby0jnFFn2U9V1/ObgYxmTapcSLG1k1ggh0E01V3Qq\noxS8k6oNTFuEJDAax91ZtNvxWOtxtMimFcrr9irRs+ZAmwxgXRMEQiTnGnJ6Qfnogzz07uey9B4i\nTTWKmLFNZulrWGgusNjcqvYWf/qnufyP/jFBkpKpOUZfD73bQreyc9aUsAZbLgdKo7x2/rvRQ7Xj\naK0+/7YVeStPy6wjNZf73jIN9DbF0hPijtYrW/42XSiCEF2Fvph8dhd7xyrmDpw7R/Fna1t89I5C\n14NNhP4cM27yY+PUVpeZmlL3ZGg2yHujlEUEN1GE9VxwyxK6ls1SKRUBKE3uBcCKLSqpFaIg3vHh\nMUZThGsummZgpzO0azVYOkFkKOJpNxvMjGZYbwVUB6hVLWV0+2ZM33UPoe+xeP4cuVyOKA4QwIn5\nM9f9HIocBj8YY1mLtQF9SjTHwdq/n2BOZYEES1uJf+rIMZYunKNgFwhlTEsIUkI9BINaE2ipwZZL\nuqi2q2ZYpFa9vMNnUgodNq71+uI8f/Orv8DK7GUOFw9z1HsXheAtAKzUB2cBGKOjYBiES1sf1M5c\n0dTKKJP1GUy7OjAoCtdPXTRyoEdqwarVrhP0zQzeVQEsbx6tJgKene9P6HGzSe0jH914qan1ZLm4\nyfekt/cB8OTyVsuk9O3/iLjZ5Or3/wBRozGwB313yEWtsqNa3MlyaVY9bm9AM9kRh5XnXyORt/P4\nuo/UQlKWuie39yHXi0UAom2ZR5quk84Xuh56R6FHGITVwTUSHaTuHAUJ7qb+83bScbEQaqAFxFpA\ns+Jx4ckbzzJThL7SJfQ42yDvjqnUxRdpSPstS+hC0xgLQr5WaEwfmAGgpI0xZ5wHYH1xcNqgUbIh\nksTNgFQ+r6pFl08hdfXwtNtt9o+oQqOr6/2P00kRi92I6TvuUq89+Qy5JP0x1j3WypXrfg4ta/Ut\nRe5gJGPhhTHNAX6edewo3rlnELbeS+hHb6OytEAuUoHgqp0ltaCaXQ3y0bW0eV2FnvELLFcuDv5M\n+RxxTfmrxqjK+/eaTU585uNUl5XSHkmN4LpKFa20dnhopMA8eG9PUVBnruiFD9V5xdW3oVvrOyp0\nc1oR4mZ7YjNGRwposfL85+bm+PznPz94KEVWXaNBXQmX4w3inixoPHa5nAy68LYcs/Ln7+faD/0Q\n/pw6J2W5bCXJdnJvGEERU3N4YumJLb93br+Nfb/0i3hnzrD+R3+k2i30uQ7d6sdQh+bgwO9OWS6p\nrIn56lEe1tVniK5joe9UmZu38gRagMSgelUJkh6FXuqv0AEyhSLN6jorCxXW19fJJkkNXvn6KYLm\n3gx6waa9qWq6o9BLoUmkeUgj4OlPXOVvfuPZgTNhez7T2AStagVdE5RKJaTTJu+Osarrz2mOwM3g\nliP0pYvn+di7fxm32SDtOBxcW2T/qFpdS9oEp2MVOFpfHJxyqCfEFFW8jQZd//B/Iw11M7XdNpN5\n9Zrl+oAeHM5GRkEql2fswAxzp54lb6iHKdZ81tevHzQauH2vL8LDv8I+Q6nFtUb/gJp97Bj+lSsY\n46keQh87cBAAq6qOXzn2FtJXPwTQk+my+F9+iqs/+C/QUqqHeb885HRBKfS0X2Blp34uuTzS84h9\nH2PEQfoxRpSoOk9dz1LapNVOCN0b7KHXP30V++7vI1jZqtJ00yQKAkoTWUreJFKv7KjQ9UIBNI2w\nUun7+7FSERGp7/Sv/uqv+NjHPkZlwGu1TP/snQ6WNmUB3TWd4tFLZbIlmyiMtwTLvfNKfERJSmK/\ngGaH0C00xozbeGrlqZ73y77+9Rh79uCdOzdQoT98VV2/QKagNtfze//qVRZ+8icJFtTv+lkumq7x\nwBunWdQU6YvWYPpoffGLnHnFgwTL/RfrjJkh1NSz4p9Q9RKmrRFHslvJPEihA2RKIzTXy5x9VhXP\n7RnfA4BbvX4AUgiBc3sJ72Kl+7MOoeciC19zQd/4ngYNJ9mOjUyXVaampghFk4I7xpquDxX6IDSr\n63zpE3/D2tVZdEcQPfNhDkQq/zwdj3DWPYWdMVhfGqzQ9aIi67Dikc4n/VzueAexUDdYzfOZzCu1\ntlQb0Mc61embof5m/533cO3MSdLPvBeASPdp1K6/smtZC+lHvZkJjSX4yI9zqKm22KsDbBn76FGI\nIrRUSLhtuHVpj1KlWrLVrx55M6lIKZjtWThRvY537tyOxUW6rmFldTJ+nuXmYCWkdcv/6+hJ3r+W\nXIog6d1RTJvUG2oXtLxDN0H7WAkhNOKE/DswTIswCChMpMi6RUK5vmNQVGgaerFItN5LDgCj6VHc\nZIcWJgUrg7z0bnFKYrtIKWnVqgSuus7LwcZCfvueFOWmTz1RtZu7XfoXLqj3K6sFTetTWNSxXEZs\nEys8zNn1s32D7fahQ/gXL/VtiFZp+fz+Yyp24EsH+tgScbNJ5Y//hGBOva5fUBTg7n0FfNTn13y9\n72sA6p/6NLLdJpzvH4TVhIZmqHstff5DsH65O1mpky6oJ5Zqv+8sUyzRrFRw0iamX2B8VIkXr3pj\naad6yd4yMNowLQzTIhvatHUPuyB45d9XrS4GxZu2o5OL3gmMemETM7ZYI//yIXQhxH4hxKeEEKeE\nECeEED/U5zVfL4T4khDiKSHEY0KIN7wwpwtj+9UXt3r1Mnq+QOxrFGUNX2oYYZZYxjhjgvWFwQrd\nKG5S6Dml0OM4Jk5yUNf8kLFsotAHEbqzlfim77yb0PNo73uT+rnm4dbD6xYFDcxFn7gLzDSTVbXj\nKA/IvrCPHVP/CNaJm+GWQE9hfBJNN4jKigCqhb044xMI4h7LRS8WiSoVlUrJYPWZLdqkgwLL7cHB\nNb1b/l/DGFULo0g4aIPQLdqejYFgNRj8XVnTOSAEfXLLzw3TJAp8ihNpBBqmG9Hwdr7eeqnUd/sO\nUHJKtM0GeqRRyKpFaBChdwYldK716uxlfu17v4OLT34RgKVN3RGPTqj76FxdrWibfXTvorKtooTQ\newqL2hXa62qHNmIbeI0DxDLum75oHTqEf+lSotC3EtCfP3GNNU99liBOQa2X0I1RVcAU1dS5DKoU\nzdgGB8aL6m8Co+9rANpPKGsobg0WVqaV9D3CgU//N9W2lo2Se6Or0Cu951Es0aysc+TYIYrl+7AN\ndc+59RtrPrf9Pg9jScspoDcMGrpHhM+RB5TivlFC7wioxYvnuj56ZDSphFMvH0IHQuBHpZTHgdcA\n/1IIcee213wCuE9KeT/wPcBv7upZbkJudBwrlWb16hW00ghRINBaK0TCRPjq4fHzDSo7KHSRMhCW\nRlRxSRdUg65mswmq2SXrocQyNEYzFksDLJdumXWSIjZ9/G4A1qoSg4hY9zA8+7rFF4MG16IbsPcr\nyK8+pY47yHKZmQHDIKooC2Sz7aLpOsWpPXiJXVH1qmiH34ij1WlvW6j0YoG40UAk1fiDAqO5Yoq8\nX2BpB1WtdeII9TpGyVGNp+rqOgWJ5VJMm4DGqLC2eM7bIXSBlnHRR24j3NT+tZPlUphQKt9sCqI4\nprVD7rA+fpA4vpvyn/WmHOatPG2rRrE2zdc/oBYPf1u6nHvqFNd+5EeIGup6dhR6YVI9vJVFtWtZ\ndsvYSZZVLiXZW3B4YlWde6ffd7i+3iXycC0hdFNXzdo6zdP+6Ntpz6pzzeg6rbqyFU6vn+45f+vw\nIeJmExn5Pd0Wv/v1M/zGd78SgJbMQrXXctFLJRCCaD0h9EShNyvrfPhX/idXT3xJkdLPH+cHMp8k\nlgI91olln3x116V9QhXdRc3Bi3U6pRbOM8U3wokPkGSjdgldWBZaJkM4QKHHUYjQ1PWMPZVV5DVu\njDi7i3LyHZq6xhI5tLqgpfu0Wi2slHrGvRvs6ZQtjTB15Bjnv/AQk5NJuq3RpBVOgVu5oWPcLK5L\n6FLKBSnlE8m/68ApYN+21zTkhjTK0GHGFwBCCMb2H2T16hX00jiRr0FzBambxL4gbaQpO4u068EW\n7yuqVnHPnu0eQy/aRFWPTKFIHEUsL2xsDatJgcJ4zma5trOH3rFc0vkCubFxli9fJJd2kHqTVJDt\nSTPbjk4pcr+m+0w/iLnyLDY+awMUurAsrIMHCZLAUvvpFcLKBlmX9uyjubSCkIKlK0vIfQ+S0iq0\n1rYqmY5fSaQ+7+DAqEXGLzAfDs6x1zc16BKGhl6widcDEILQ92jXfcSZOqVIUNLSrIgYoh0CmlM6\nWnoM79zGd6SbFpHvU5xQpJBxC6C1qQ3w0YOVFsbkt6Flbqf1xHKPkhdCEKZcCEexXOVpb1fo0vOo\nfejDBPOX1efr+NtOinShSGUpIfT2MvsTUvZij9ccHuWh2fUtgy78ixtB5c0KHTbZHYVp2p4iHkcI\nqk2TyfQk59Z7xxbah5Q9EDeralHYpLDPnTvHk3/7l8QiYC0eJe5D6MIw0ItFwrLyvJuPfIFwfR3L\nSXHyc5/i6slnwVbWwSFtmRANDag2euNE7jPPQHLt5A4KPeWo3dtpZiBsY7TVeW0uLtJLpf4KPakW\nDVo1NY0psfTc9o1VVffbiWqFcYyWxNNU8Lpjwd6oQgc4+qrXsXjhHLGnTijWQsJw4uVD6JshhJgB\nHgAe7fO7dwohTgN/jVLp/f7++xJL5rGVlec/a29s/0FWZ6+gFYvEvoZsrKAb6gG/rXQbs7q64TuB\n0djzmP3u72H2O7+rewy96BBWvG4gY6Xj9UlBM1IkO5l3WK7fmOUCMHnoCMuXLpAbnUTqbVJBjoUd\nvGbYqFzbrNBPf/4zPPaJj/DBxQlW4xyvtK+yOkChg7JdvLNfwpzO0vzCIks//1jXkx/Zu4/q0gJ3\n1e+k/HCZeesIKa1Ku7x152AkGQUysT8GEXq6aGMFWRZ3KODQsomHnjzsxniKcLmFadkErovvhqw/\ntMy+UKOo51jRtR1veOeoKgBzT27cM50sFydrotmSQnsMzawM9NHN8TRCP00w91mIZd/AochEaFEO\nPSG87YRuHT6sfj53EQRbUheLk3u6hL7UWmK/VI+WF3rcf6DIWsvHypq4SezCS/xzYVmE6x1C72SY\nJOdWmMYN1Q7EQtDwQo4Wj/Ul9M65xYmHvNlH9zyPuWtXibWASlwiqvQSOoA+OkJcLoMGzUcfp/J/\n/wzTcShN7WF19rJqwlOaoeTN4yOItYCVlV713Hp8IxNnR4WeTxOJiNm6hQTMikrz3ZqLXhyQ5dIp\nLqqQzlt0XDuvfYMjKDPJ89vcuF/S41MIKbvFRX7oommih9DdM2dY+MmfpP1Mb1+cY696HQCXn/gi\npmniG22CYIp/M/9Rnl3duY/ObuCGCV0IkQXeB/ywlLLHR5BSvl9KeQfwDcBP9TuGlPLdUsoHpZQP\njo+PP68TDpaa7I9uI2r5eLaNjAVXf+WzTK7OIyOfu8bu4kSobqhOYHTpZ34G9+RJovX1rqdnFGyi\nikd+XG2NVpN0Oj1Mq8BRHDORs1kaoNCFqYEhtmxvJw8dZX3hGplMVuXXhtdX6FomKf9Psk4C1+Xj\nv/mrPPWJj/LYhRVWKfFa+8JADx3APnaUYG6Ose86RvHrjyCDmKiqFoDS3n2EYcihilJwCy2dtNnq\nCYp2FHqclHPHA8roMwVVLboeZgan9W3y0AGsA3mCxSaOkyX0ve5El3wsyGgFVnR9x/J/6/AUsVsl\nWNwIMqsslxAhBOlRk4I7jjB3znQxRxuEayqA3m/BMpK4azir2ihsJ3Q9n0cfH8O/eFHlom/aARan\n9lBZXKAdtqn7dQ4mgUM3crktGWsoba0bu/AvXEQ4DvZttxGtbSX0Tj/yKLcfT6rF0Ugu9f7sYS5W\nLxLEW8/NmJxEpNNdhb25n0umU9ZuBtRkoW9QFMAYHSNcW0NoEqGbNB9+CIDxA4c2WjGXDpL35mmj\nEWsBqyu9FkfryScw96rakJ0Uej6T5/TIedJhjaed12GuKcLb3KBLxT36ZbkkhF5dTwhdXSDX9weO\nNdyMfplKY/uU8WAk799qtbAzRtdykXHM6rv/D5e++Vuo/PGfcPlbvoW19/zWluOO7N3H2P6DnHv0\nIVKpFKERkPHG+JS3yOfmPnfd87pZ3BChCyFMFJn/gZRy8MwwQEr5WeCIEGJsF86vB+FKm+yVFBmj\nQC1WN23zQpVMs44uQ+4cuZtVfQGhqTa63rlzVP70/3YVTJjsDPSiTdwIyJXUaa6Xy2hCQ49SRNIB\nv8Fk3mG14RMNKpNPqkU7mDh8RP08jgi0CCfIXFehC02oXPTkQT/98GfxWk38unpQzmT2cZ84x9oO\nxUfO8eMgJd65c5iTStF1CX3PPsJcESspmllYXCRVSNFytwa0uili9QpoO1guSUBZC4tU3f4ZI/om\nDx3AnsmDhPHUfgLXRTc0zLwkL2McbYSqruPVB/dYN6emkK014sbGOakslyQDZDJDwR1HM3fORddL\nJWRbLTL9gr52vlN8kwxb6BMUtQ8d7hJ6tE2hN8prVJvr3D9+P7dr6nvwIq9L6K62UdDlXbyIdegQ\nxuhoV6FrnaKehFBcc//GuSccNenMEMQBV7eljQohsGdmCJfV/bZZoXcJ3QppyBxGcxHi3h2KMTpC\ntLYGRKBbtB9/gth1GTs4Q2VpAd9tQ2mGbGuOFhpSC1hf3WpxSCkJrl0j8/rXKU9+B4Wet/KczZ1m\nOc7w8eAVGCsqoyvcrtAHBEUBmutlUjmLdj3E1AWeNHcUBx10G8dt+g73z6hh6qXk3mg2m9hpc0Oh\nC0H78cfJveUtHPnYR7HvPE7tb/6m59hHX/U65k6fwLYshKlxsDlGCo1WeGO7h5vBjWS5COA9wCkp\n5f8c8JqjyesQQnwFYAHPf3jlDugEER09QyXYUM+O18YiZDp9B7EWI3IR1dU29rFjzPzhHzD5738M\ngDDJi+3kopuhiZVKUa/XSaezaLEJ0qK2sEbuiQpaJAeONtNSxpYijslDRwGYW1hFCkiF6b4KPSyX\ncU+dIlxbQ0qJnt8YXPv0Rz8MgFutAPD7lsW7R66y0hgcOHTuuAMA7/TpjRz7akJ2e6cJShPEIqCd\na7O4uEhqbJQgdghrmxqbdRR6taI+16B+LkkuesbPs1Du389EpNOg60QJoVsH8qDBmLWXwPdYWFhg\nPv05SkYFPVn3V2s7jLWzbWTU7Aa+oBMU9fn0pz9NS18k641gGLUdUxf1Ugn8wZZSJ88+iNUOY3tQ\nFFTw0bt0qa9CBzBqAb//jt/nHYbKGvFCj5GMxXjOpiY38tD9CxewDx9GHx3tUegdQm9vyuzRkiKm\nEVORztlK77W3Dh8mnE/SDjeRYjaxwIQZ4sZ5hIxUWuz265ModBkHCN1C+j7tJ59k/KASQ6uzV6B4\nECNq4xMTawFLT7lbMqaEEBz+q79i8id+Ai2d3lGh56wcsQg5F5VoRAa1ZpIrv6W4qH+qqZVKY9oO\nzYpS6K2aj23qeFhwA82whC4QKWPLonx0Zh+BMBhtqWvdarWw0wZeYqsKIdj3i7/Avl/4X1j792NN\n7yfuY/Hc9urXgZTIwAc9wosLZCOLVvAyIHTg9cA/Ad6SpCU+JYR4hxDiB4QQP5C85puAZ4UQTwG/\nAnybvF6+3vNEJ80vnx2nGnigCZyxGKfZxBIx+CVKdol2utpto5u6/37MPeqB26zQAYL5JjPj99Jq\nt8nnc2ixgSZ1rpxYIbzSZDQSA1MXhbO1TD5TLJEpjTB3VakkHY0Lffpr1z/xCS698xs59/o3sPxz\nP4ees4hqPosXzrF08Ry5sXFiz0XXNV6tTfCkDaX1iwN7Sxh79qAVCrinTqPnO4Suzllz0sggoOmu\nUHNqLC0t4STk07604enpm1LEtJTZ/Vy+22b+7EZWRUehp/0C8+sX+l8XIVQL3aRaVLN1zL1ZSvok\ngecxPj6OJnRSRp1QJjGMev8eK91jmhEyKU4ClbYYBgHz8/OcvvY4kVmnKKMdOy7qpeJGjKDP6/JJ\ndXDdUo3N+ir0w0eIq1U0M+7x0AEqSRMxzc5hSmW5ANw+mWMlCGjXfeI4Jv+Ot5N761swRkpE5TJS\nyk19VJQcbwu1KKRTASIh9BR70YXe30c/eJBgSdkpmxV6KpVCCEFqRGD5kwTS6mu7GKMjxI0GMvDQ\n0jkwDJoPPcx4Uom9cuUSlNS/HRmAkDQXQv7svz+2ZayhEALNcdDS6Z0Vuq0WzkWhvtd5TX3e7R56\n3Gwi+yyuudExFs6dIZUzcZsBjuOofi6rWxe7cH2d8u/+bjdNtHvsbS0cZsayVM0CuZoSDheeflIR\n+qbXaI5Dol3RUilkq7fWZOzADMXJPfi1KlpSPDXaHn15KHQp5d9KKYWU8l4p5f3J/z4kpfx1KeWv\nJ6/571LKu5LfvVZK+bcv2AknQyFGRvayXqty+//6dnJ7G1htdWEX1xvcO34vy8bcloHRRuLZdwi9\nk4te/pMzPKC/GS+MKBQKiNhEIFheVRsMR4odqkX1nhSxVm4PqYb621jzWV6t9Pxd9g1vYN8v/SLO\nXXfR/OxnFaHXfUzb5vgbv4oH3vYPEIBjO9xuTnJfbZw3Lh3k7BP97RshBM4dd+CePo0wNbSM0SV0\nxzLJhwFBeY1lfZUwDPGzagveWtjUpS+VQlhWkou+0aDrk7/9G/z5f/t/CJMHKpWzEEKS9Uss7NDP\nRQ252MiAsGcK5BghcgMMw6CYGUeYVRrRPu5e+ErmF/oH6jrQszpCs7o7It20iH2fd77znRTyeWrF\nU9zemNpRoRulEjIpytmu0B+/Uubx+TYxMY8ufz1IQave+wB2rDsZNLe0bOgo9GoSGMXO40hluQDc\nNpnjWtsnjiSBGzHxb/8t+Xe8A31kFBkEKmXU3KrQ3STDJec0uiTf9AQH8gc4v36+9/ONj9NJ99hs\nBWqaRjqdJjumo6Nz2X1l32pRPclFl+06WiZP6r77aD7yCPnxCaxUmpXZy1BSdSB5qZ4J8xVlaqsu\nXrP3umuZ7M4eupU0xzNCNDvDrKGadG320DvB+n4Vvg+8/R8yf/YUzfIpkGDaOarxOHJua3uEuF5n\n6Wf+G+2nt+bvb29EV0iZtJwSdsWBKGRlaWGr5bINIuUQu73cIITg6KteS7uyBkltS6k9+rJR6C8r\naLaOMDXy2XHW5mYRxSl0K8ZK/NSVSp17x+/lqnYRrxXiJqurViiojIKOQk+sCRLlI2MolgpoqIdq\nJckCSUkxuFp0m4cOMH7wEHkvyVPWPbQg6hnKbO7ZQ/5rv5bsm9+Md/4CwlZe3sie/bzjX/1olxws\ny6Qtbb59TZ3T09e29jzfDOeOO/DOnEGGIXre7louANP7psgFsKgpsmlqSmE0lzdcMSFEN0VM9XNR\n1+3469+M12xy4fFHuXDhAh/60F9THNMYb+5lvjGYhPVSiXBTh0R7Jo+OjuOpgOjU+D4io4k9n+EN\nl7+J85fSA48FoCfqOSwrwlJZLgGpVIp3fuM7iXWf22sHqe8QPNZLJaSvHqrthP7MXJXPnG4zVzhD\nKh8hpE7ram++t304SQ9sVVS3zSQ90MnmsNMZygvz1Ot1XCOHLWPchGBvm8xSTXK2Nwek9ZGkX0m5\n3JO22E7iJnljjSgh9ErL51jxGOcrfQh9bBSZdPXbXi2ayWTQrIiWFnPW/coBCj2Z89luIuy0CrbP\nzyOEYPzgjFLoRUXo41It1i5KgW/vHe6eKWPd9S+JWoPrAjqEPpaLaTujzIp9SCThptmnnZ1j/cMf\n5sp3fTdy067p3rd+HSP79nP2kT9Hygi/BUvhARbPbLWT9AEFSv2arImCEn6616bm+dgpY3Bn0lSa\nuN2/Gvy2V78eEQTEoYdEUmiXaIfPv93wjeKWI3RQPnrayhP6HlXfQbdjzGQCfLna4J6xe6g5Kn2r\nlgwiEEJgjI11e0sIU6P4Dw5T+HtKcR2aq/CVr38dtq1UUTVJE3TkDtWifToTPnjf7WiBhwAi3SUd\nZCgPGASQuu9ekJK4vgIS4mZHBasb3dIN2pHOXk8p6rPzK/z5E/1J1D5+B9Lz8K9cQS/YXYUOkB8d\nJR9J6lYNTdepJY2Cmmtbz0sFoKpoWZNgvsn8ux5lInuQ7OgYJz7zCVZXV3nssccwxptMNKZZaA4O\nZKYfuJ/2U091FYwxpT6DFSpCP7D/AAjIramF81QQEfUJ1HVg7ikC4F9WloaR9HKRUjI9PQ1CoOkB\n/qb+HNuhl0ogI9DinhjBVCGFjDJ86M5f5+A3ZxBSw1u+1FPhZ0xNIdJpoor67I1HF6j/rSLH4tQe\nVpcW+fmf/3meFcex4xivchmA26ZytETizW7ynDskGq6VN7JckrTFRrVNpLfJikUiP0YTUGkFzBRm\nuNa41pvpMjaGTEhje1pmJpOh1WpyOSO44n0F7mrvd9c5FyIfYdrJ5Cl1j4wfPMzy5QsEUiNOj7Mn\nCZG1QvX77aPjjNEUGFkwjve8Twcdy2W8GLEQ53EjDYx1gqUNa6TToGvlV3+N1iOPbBl0ouk6r/nG\nb6O5voyMVnCrMVILqS+tbwn6armciulsJ/Q+swjsow+gjwhach0fHc2O8dr9K5C1VArZbvdtQja2\n/yDEEVJKpGiRdV8mlsvLEXrWxNZUQclKLVIKPbEE1usNZvIzSM1FIrcMuzAmJroKHSD7+n2k7lI3\ncUrPUl9dIZ1ShNN21RdYMowdqkWNHsultHcaISU5yyAwa6TCHKut/tWizj33ABAsqoBgJ3WxQ+iG\nJmgFIMNkas1ilZ/+61N9jpRkuoDy0QvWFkLPlkbRXR+kxMnnqFTLaCKiUe1NXYwqFQpfO0PhHxxG\nuiHuM2vc+cav4vLTT3D86BFGRka42j6HFeZZHTDKDiD92td2g2oARhJwNJMc/8NHZ0AKHF/tZlxp\n8fDFDw88nnUwqd6cTXZYhomUMXEUoes6mbE0bXuN8FKNr/wfn+LsUu8iqmWzYBhA0KPQpwoOMlSL\nTtOqIaSOG2rw8K9seZ3QNJVNsqQW1upfXaT6wYtU3n+ewsQeGksqZtJIH8ARGt6a8rpvm8zR0tQ9\ntTmIqCcFMtF6eVOWiyKIR05/hGbxNJa/TBxLSo5Jpe1zIHeASEbMN7bGZ/SxMQh9QOJfqW0pLspk\nMjQaDZpFA4nB+kIvuXQtl8gH3ULLZpG+T+z7HHvV6wg9j/NfeBhZmmG/UAtCM5krGm7r/WKMpcC/\ngMjc0TMdqIMxRwXEc5kmZ5vJdCu7TLB8adP1UYQeV9XCGm5r9jWyV9k0Mm4QuQIpIlpBGlY2Wler\nQsLe4KqWNYlawRay3nv0GP7YKE3KIASNYA0ZK5usA3+hSfmPT4OZpKP2sV0M20ZPdmSR1SDtjdO6\nzsCb3cAtSeha1kIPVdrdWrmFbsdkG+piNatlvIrHg+v34jnLPT56uK2gqVOpmTKy1FZXyGUVmYbJ\nM1cydJaqgz10wnjLgzOyV+Wy5i2N0KyT8rM8+6FrLF7szdc1SiXMgwcILqutfSd1sTNJqbnSoulG\ntGN1U1vElJs+bp9OePbhw2AYeOfOqcrMVtgtUMmOjCCAlKcjDY1Wu0XG8Wg2to7s6tz0et4i9/p9\nWAfz+Jdr3PWmtyLjmPNfeIiv+Zqvod6u4qWWCKpFnvn0XN/Pln7wld2gGqiy9lAPsZMWtaXJLGaQ\nI7Iq6hwjk/ef+ZO+1xnAPrIfKWPCZfVeupUUZCVW2/jUOFJ3MbyQ2XKLk/O9i6iylYoQez07q6m8\ng4wUode0dYTU8Y0iXO4NB6Xuvw/3jPJjrQM5sm+apvmFRW7z76OxvEI6laLRamOnRnGby1C9RtY2\nmEraFGy2XIxRRejh2lpPlkvGGMUzGohIXaMxx6TSCjiQV5kus7WtgWSlsCV6vkz7xBrLv/40MoqZ\nrc0y78/TbDaxkvu9We0lWWNEnQuRD5qBlkzxiZtN9t95N/nxSZ799MfRRg5xWFOLSTvob7mo630B\nZEz9Mxu7ysZ6md/7d/+K9cV5JtIT5Mwcob7AfEswOjqG5zQI11e7Pdu7FcwJtj+/2ZFkEYrrCKkT\ni5BmVIJrW4fL9Et/1NMmhHJLI7Kpgk0lHiESZYhj1ltq4XI37+jCmNZTK0ipuKKf7SKEwEyaj2G7\nWN44rR16Fu0WbklC17MmshlSmJxidbmMbsWkXBcRQdwoszyvVnE/vb5lvqgxPk64vPWGEKaGcHRS\nepbayhLZQrLqRurSFA1jYE/07R0XQaVTZUdGseIIqUVMNfez/HCL80/0byOauvc+3BNKxbqnyyz+\n3GOYoYkQgnaljesHNOMiAONJ7mw/C0iYJsbICOHaak/qYraUZEt4OqEW47ou2ayk4ee2WArbb3p7\nRhUEFUtT5McnOfHEU/zf8zGhMAiMOvuWXsFn//gsj/xFb290PZtRQbWHH+7+LDJDHJH0XrF17GiU\n0GwQ6W1mPI3PrT07sFjJ2jeF9OqEydgzI2n8Ef7+t8H7/jmHDhxCCHC0pGHWgMpao1hE+g1aT57g\n2d/+TT7+m0qBj2UtRJwGBI+uPIxAI9BsWD7ZMxAi87rXES2cJn2vwdh33UXx7YcovOMQmfUMrxp7\nB45tU6/XcXJ78ISAkx8A4NW3K3+2tqnjop6QaFReB12AtpHlkopGQEgqyXzSkm1SbQfsz6n89Nlt\nmUFaKoWWySA4SeHvHyaYaxAstnhi+Qk+u/JZfN8nnVOLRrPWaxNo6TQinVYKXWobXTMbDYSmcdeb\n3srsiS9RN/dwgEViIbsxgu0KHUDP6MTVS/jzG8r02umTrMxeZunieRU8LB2lIRXhT07vxzUaeJEG\nbaWmO4RudLLUtin0dL6AphtImojYAC2mrI1TubR1EEg/Qt+oFt0g61LaYkUWSBkeervBSkUtXP4m\nAWAkCzOR+v9BPrpjW8l1jdGDUTx/55myu4FbktC1rArajU3PsDo/j540ynICielVmZtLSrfNjdRF\nUJZLXKv1RKb1ok3aLLBw7gy5YkLoWqJuhcZsudWXaESf8n9QKr2zRZxoK6sg6DPnESB1zz0E1xQh\nNh9dJFxtE664ONk8IgqIZUwjVopdTwqcFvqoKwB9bJRodQ09sTfCxHbp9L1IuzqeFtJut8kULRrR\nKKxf3vj7UpGoWu1+VutQASR4V2rsOXY7yxfO8t5HZ2lEJtKsc7h8HwDz5yp9e0ZnXvta3BMnug9S\nZMc4WrbrOY5lDqrJMaklsjJNW4bUg/7xBmEYEDWJm0mv7M6g6EhCZZY7DyX94owmKSEG9r7RiyXC\n5WsQCpafeZqnP/Zh2o06hq4xkUuTEuN8eu7ThERqRmV7vWesWfrVrwYNwuVHuz1Bcl85jX5nlr3p\nI5hC0Gg0sO0Crm7Cmgpgvun4BG0huTxf52/e/QynHlpAs23VgKq8hhACYerUF1f47R/5Qb7qncfR\nNcGKrnY1Rcug0goYdUZJG2mu1nt70htjY0Srq6SOq+/cn6tzqHAIT1f3QiETAxGttrGxDd3896Oj\nSqFHKvUUNgrE7nrTW0FKzlUKGEIS6yEku9N+Cl1Lp4mbq0TrG0S2NqfsRS9JZzxaPMqaPwtIsqN7\nkSKmppvdjpCabZN53esY/zf/BkyzR6ELTSNTKuFHdUKZJA9k4AMn292MH0ju7T4eOmwtMhvJWKzK\nAjktQG/VWa+tEYtwSxaPZuvoJZvYV/egHEjoSa1LVkOgIRJb6YXELUnoes4CCZN7DrG+ME+cG0eY\nGgU/JC3bXEzyTWPhUV7Z2Hp3UxdXt/ZM1vM2I6V9nP78Z6gvPw2xhkzyRx0JbhD37emibeu42EFp\n737q81fRYo3YUDeuPyCdzpo5CDLqdjkElSOdyufRk1FmDdTWLsmAYnFAOwJjZJSwXN5Q6LWOQt8g\ndBdfEfpojmY0iixf3rgOxSJEUfcBtvbnQBf4l6rsve0OaFb423/1ANKwiXV1ExcPm8hYculLvX2o\nM697LUhJ89EvqM+VgrSR76ZATk6MYvhF2qllLE19xqUdAq3CCJCJ1WZ0LJfUKDSWGBsdIxIxgVln\nr2MN7E6pMl2aYGXIuxvtbwEmCw5Hgv/Af3z1fyQWMUFnDV/eml2k53Kk7r23ayd1kD4wiqnZaGFA\nvV7HNmw8w4J1RWKvnBmhrUmWL9W48MQKsydVYFEfGVEKHcAUzD79FOVrV4ncMvv3TLCkK2ItWgbr\nLR8hVOridssFlI8erq6hjzhoaQP/qiJ0V1f3TM6UhJqvbIk+o/+MkRG1SwhjRFJhGiV2Zn58At0w\naGoF2tiYoo0VK1LcHhQF0DIZ4toycTPo9hZau6rO2W2qYx4rHaMd1RFGDXKqn3jFEFs6Qh74rfdQ\nfOc3YIyN9Sh0AJEp4FJnXlcWYigi6pEJj/zqxnXp56F3yv83K/SMxQoFipqP7qqdeWS0ejJdzMkM\ncbsj6AYQekop+FROvc5pFXcM/O8GbklC7+Sij45OE0cR62IC3dEYSy5so9GgVVRfRrW90lUPxkRC\n6Mu9PnrazLH/zns4/bk/RJM6seaTHjExQvVUz/YZ1NzPcgGl0P1Wk1SkEVhqQQmW+0/46QTFhC03\ntoDtUG0lUYTTJJlIHqobdnGAp2+MjhCtrvYUF6XzBYSmkXIt2sJFSok9lifExlvcIIXt6V2apWPt\ny+JdVgodoHL5PNJ0iLUAX3OZ/HsR2RGbi0/1NltL3XMPWibT7QlCWmBpNn6S333fV+8nLB1A6i6h\nlvSf36H3jZbSICmp7xB6aI9CY1llFdmSyGwyZZkDWyXopRIyaCKsDJmKWrhWrlwGYCpvs1o1OVo6\nSigi4s6ubKU3fTHz+tfjPvvsFtVnllSgXjQ9Go0Gjubg6QZU1DV2TB0jbWDWkpYVSVdMvVAgqqmd\nUbtV63q6frvF4UOHWNeyxMInZ+jdGbcHcgcGKvRwdVV5uNM5grkGeStPKp10pdRC2iKiGZf69kU3\n9+9HL+RAgpbqWC5KlAghsDNZvJbLs+a9jMg1nKSlRD/LRcukiZMy/Cj5rGvX1Dl7rQ2FDqDZS6z7\nkNbz1MyQuNLns02M9yX0hp7Blw1mCxuqqKUX4HP/qztuz0gsl807bW1bC12AkbRS6BPCQyQWSaS7\nWz10wJxMEzcFCJ24T3ERQDqdEHryPBbcsRc8dfGWJHQ9p76IbEZ5w1XnMLrhMVXdyKuW+6XKaTVr\n1FaT1LmOQt92U+gFi7gR8MZ//N3EUYDuCUKzhjEaIT11o15Z60PoAy0XFXlPRyGR0UYS4a/37y5p\nJHnI9v4y4997b/d4qVweLaky9FDvo4UGOSdmYQCh66NjhEk+s3A2iouEppEpjpBybZpJ3rBZUNu/\n5uLGteiXr2sdzOPP1RnfP4NumsyfO4Nhp4kF/N4r/hN1a53D949z9WS5ZxciTJP0q17V9dFFNukv\nvaLU2d6jRY6/6X4A1pLg5lK5twKye34lB2GkCFYr2CmlHj09D0ELvDpaViPS24wZxkAPvfTt30bu\nq16PEBrGahUnl2d1NhljVkixWHMpWAUiTdldpEd7FDpA5jWvhjim9dRTm65fUtvQ8IjjGDu2cYWm\nCD2xmYqljW13M4lx6IUCUbUKUqI7JmN7VNDTb7U4dEy1dQisGjldp+6FBFHMgfwB5hpzhPHWa26M\njhKuqefAms4SLDeJ/YjJorL+UiKkpkErHumbiz71H3+Cwjf9QwC05BrHzQ0P3MlkcRt1nk09yJ54\nFTu21XM2QKHL9gahR2HAelLM5nUUelENaNHsRZZrHqOZadqmz7s/e41KpYKMJO3TZYLFZt+kBoCF\n0CYXNXnzPYeIpYbpFWlHOrHfgAufSr6bIjIIthQ66eleD72QMvGFzYQm0ZJ7MtLdHoVuTGXUoped\n6Fv+D5DOZEFK0hkLoTUYae15wVMXb0lC7yj0lJ5kJUy+Dt0MGVu7QD22EUIjM5GhbXoEVq0bGDUm\n1Jauh9DzysIZG9+Pnc6iNxtEhkszvULYDtGA2bUm8//hx5n/MdUTpv7pT9P43MeB3uEUI/sUoTvJ\n4IYwfV4FVdzezItOWpb0VjCnMmquZELo3b4jWtKEP7YZL4Y7KnTpushWS/WH2ZRWmB0ZIeOaNFEP\nku4ogmksbmpJ24fQzb1Z1V+7EjJ56CgLZ09jpVJINNBi1lrLHH3FJFEYc+GJ3oct89rXElyZxZ+7\nhkgW4k5gE+ANt+8hjiyCpPf0Yrm3YKZ7LnuSqTTPXunOgPS0ZPfSWMYu2EgtoiSigSP7nOPHybz+\nVQDE1Xa3FTOodsl1N8QUmWSAcYQcOw7LvQrdPKBIN9g0Yq0TuzDb6trakY0nJERet3fKxFgSUBPQ\nqqi+23ohT1ytITSN/LG95GQRUAp9cs9eQBIaTTKGelxr7YADuQOEcdjT/M0YHyOuVol9X017iiGY\nb7B/VAVSD+Q1wnSKZlSisXK553PpxSJGScVspLQRqZGtFb/ZLG6zwdncq5mUVQSCWPMGEnrcSoZ4\nrLusPXmJEUMNA3ETD73oFBlPjZPOrLBc95gZu4ux+n4Wm4KnnnoKBKy99xTNx5cwJyZ6nl0vjLjU\nMjDigDffuZ8na6/E8pTQc3G68Yt+YkUNutG3ePyaJiilLUZ1EyFjNB1io90z5KLTBE/L7R3soWez\niCgkloJW4SRj7ckXvFr0liT0Tj8XPTKwrQzpc/vQ7/gezMoKi3GG4uQ0xXSRNWuNSG93A6N6qYRw\nnJ7J73pOKSvZCJm+8170xJusuHNICQfyKWbLLeJGg/aXngGg/J7fovybvwa62FKVCZAbGUM3TQq2\nCow2M20C6cClz/R8Fi2dRjhO10MVKVWOnMoXCDutbEUA8RxmaFLKeQM9dH2kU6Syhp63tiw02dII\naU+jiVpUhJkQ+tIqXFWj0zqZBO7pjRxeMykIChab7Dl2O0uXzpNKvMFiYFGuX2PqcJ7CRIrTD/d6\nspnXvRaA1iMPb8xy3UTo+4op8k4BYQaMRBHzlcFNulJ3qoXSPbe0QegoK4HGEvkxRe5O3GSt6Q3M\nmOlYZQiLsYkpVq9eQcYxU0nsoeVa+JqPFDFe6R5luWw7ljE2poJ0CxsWkZ6zkUBWJpk8gYnbmeiT\n2C57O9dzwiYMYnw3QusodMA5UiRuhOTMUbx2C8uyKAiX0GyS0tTjeqXcwpZKnGzvutjJJY/W1lQM\nBPCvNjgyeoRABFQbZb7qFfvxZI4nn+lf0yCSfPjax5ZIv+FHu5YLJAq92aCZOUg+ifFEpkvg9c+a\nkW5FtYde93A/usQrxr4O03a6Ch2U7aI7i6zUXWzHwmxPY4kI13URmsAYdQjXXIzxcaJksergqdkK\nlSRzakS0aWqgxer7beUObxB6p4XApt7qQgiMiRTB8laSLWUsisImRiIIkKaHv91DH0+DAC2/l7jd\n/3m00xlEFHL+/HkatktKChreC5u6eEsSurB1MDSC+SZftecfka3loHgvkSdJx+uMP/DVFO0iLb1B\nrIVUky9MCIF14AD+7NZgUkdZRVWfQw98BZpfQUQarbZ6yA7lHa6UW5gH9hPMzSHjGP/qVaJaTVVl\nbksjFJpGfmwC4RQBaBsCX6bh3Mf6fh49adAEimxkotBFZ1ix/whu9U8x2wtkM+5ghT62idCThl8d\nZEqjpD1oCkXoUg9BQEObhs/8NwDMyUlSDzxA9S//okuG5ngKNEGw0GJ0+gBREJAzkolOvk25uYgQ\ngjteu4f5c5Utef8A1pEjGOPjNB96GLNgE8sYd7nOL/3Tb2bulGoOlksViLQWE0HEUmtwUNS+c4bY\nqxEstLHTihjdOPFNG0uMj6lCFS2o4waDx9F1vFNhZShm8wSeS3V5iam8WhzWG5LIUM2n6uk7wKtB\ndVu7Wk3DnJwkWNhYxIQu0LI6eZH0MA8MvDhU47uSherIfeMsFDXO250Rbx56vkBUq6nYxtEiAHuz\nR/AT5TdhukRGEydpCvWdv/UFfuoDajd0srzVDjLGNgL/es5SVb9LTQ7lD9E0mzz79LPU3TNIJCLp\n6LkdnZ4ywbUmWmacaNOwcyeTxWs2yDgGUUIfodEeqNCRMVoK/Gt1tDrkzRGmDh/bQujTuWmkXmW5\n7lGcShPGJhYBXjJ/1hhNEa62N+2wN3aCmiY4OpMMUGtV0VK66pgKtPJHICnsGlT+b46nCbcR+kja\noiWyhFZMHLlEukt7WxaXMDX0ooWW3zc4KJoo9HpnhyMk5YUXtrjo1iR0IdCzJu2nV8hqBepUQM8S\neRr7WWa14VGwCwR6ACJmfWXjIloHD+Jf2aoCN6YGeRy67yvUz1wX/BhJzHTGYXathbV/PzIICK5e\nJVxaUoSe31qV2UFhcopWvYWnBcTCJSAN5z/eo/QAjNLIRk/spJ1AOp9HICGKkFaG9r4jEJc56j/E\nct0ljPrk/XZymtfW0BKF3iHmbGkEO5S0pXofz3NJ5y2ao29Q57WgCmUKX//1+Ocv4J5QRCEMDXMi\npfLRkx4zGZn0Wg9tym0VdLrjNVMg4MwjW1W6EALn7rvxzp/HcBzcqIG7XCPwXJYvq2ykXKqIFBFF\nP8NyMHgmpO44yPYScdPoEroXJZPnG0vsGVfnJ0OlggYFRjsKXVhZiqZS5Suzl5hK4goLVRdpqetb\nT6lgcL8CI3NqimBxm+VRSlHUiup9fI2YmBC6mS4TB/PYb5jgZFWdY7PqoRcKKruo2cQYcdBHHKbS\nM/iJ3zuRCon0Nkbiw9fdkIWyyT2j9/MX5/9iy06ku6gnmVx6TsWHDhUO8ejEo6QmUpy8+CSh0WCv\ntwp9Jk91FHoHcX3jXrMThZ6xDFoyCSrqrYFpi6AC/t75ivqZ0BnJ7usGRQGyVpZYtFmueYxNJ4th\nFOMmRGmMOYTlNvq4IvT6xz7Gle/+bmLX5ZUzI/zM/0fNpG+U1xgZTSE6hJ6ZhrULKjYxgNCNiTRR\nzSfeNFi7lDGpxiliMyYKmoTCpbLcq6yN8RRaZnygh95R6B1ILWDu/As7LPqWJHQA544R7NtKXNh3\nmvn2BZAmYHBErLJcd7m6KvCTIpP11Q3v2jp4gODqVWS0qddDxupODVKd5QqY3jwaGqHRYiplstb0\niabUFJbmw48oYo4itIzeY7kAFMYnqS0v0dA9kAFRbPAu3etG/Tdj8zT6DqF3yv9FFBHk04T5EqHd\nZnL1I0yzxEqfoN/mviB6zoJIdkvcO6mLepJ73G63yRZtrlUmmfePw5yyXfJvfxvCNKn+xV90j2tO\nZQgWmhQmpjCERSrx9vOhRTmZcJ8tOZSmMqzN97nxpyYJl5YwHUf1/mioa9+sKJspn1GebcYfZS3e\nufhCs1pIcogItXX3I9AMaCwxmZtESo04Ug/Y6qA+9kkwTMtOkgsiEILV2StM5RWhL9ZcROLk1LVJ\nyE7BuY/2fq69e7ZYLgBG0aFoj6gHK7kt3OxEV6EDPHCgSDkh51bFQy8kFYcd2+VokVFzH15C6Hty\nQm3vwzpjWZt/cJ+6Dx8c+zou1y7z5PJGEY2R7FI6hK7lLKKGz2RmkigVEcwoAo91lzhOE1x+pOdz\nbSf0qL3x3042i9dqkbI0VuIsUgQEepugb5ZLJjlesGXKcF4v4TY2RFbWzBITsNJsUppKA1K1Xmiq\n59YYTUEo0dLqHl75xV+k9fAj+FeuEMuYp9pKfDTKa0xMpBFSfb9texL8BjSWdlDo6osON7UIGclY\nlKMUhhkRt9X9vLpa7rHwjJE0WmpkoIduZ7KwiWcizWf98s5D428Wtyyhl77hKOPfczfOVIF6U23B\nhJ3jULTKRx8/zeSn/nOX0OuVJnFSlGMePKhU9qYHUW2Vza5FURgv4SRKVmo+Y0lV4nJGPSzNz3++\n+7earca9bf+yCxOTuM0GbS1EQ32p78+MMd+n7el2yyVuh4zuP0hubBxDz0FSoR9rLhXh8H36B/va\nLka36nCtu+voDM4oJZk3xbqObui0222+4m0H8T14f/m/snJeXQ+9UCD75jdR/9iGPWTuyRBVPYKP\nrfL39/8ARqNCJAXpyGHZq3N5Vd30TmZr7+ju309OElWr6BKaYRUjUA9cl9Bzyt/U/XGqmsQNBw/z\n0Ed1hBD4cw3sTEbNkMxOQmOZsdQYIZIoWRRWB82DTZuYezPYd/wDwosZCuMTrM3NkrJ0RjIWT85W\nMFLq0WhW23Dsq+HCJ3sGWZtTewiWlraIA71g42hZ1ccjeXu3OL2F0L/iQIlm0telWfWVQoeuj24f\nKWIKC6Ohdh+TpaRlgFvliz/xVn7sbWrXUIwfJGNmeN+59226PomH3lHoWZO4HqAJjencNAux2lFE\nukc9GqV9qneh0pIWBOZUGikjZGB3f+ckmRtZAlZkEV1rEGkuJ5Y+y+OPby237yp0Xd2D1kweNEFa\n5vBazY3do5mkR9LmqcUadiZCRg5uQqbGWLK66lt7p4RLS3zg/Af415/9YUTKolFe4+BYBi957lum\nuq9YO79xjfsodFBDxDsopS3WQhtbDyBR337U7KaZdq91wUZYGaIBwsFOZ9B8l3TKYWIsS2C0CfoX\njO8abllC7yA/PkE7SvJk7TyT3hp3Rmd5pZxVlgsQyoBGWd0E1gHV/jOY3Wa7ZMyumjUcB0sqFo21\ngJKhbvBLuura1nx0Y0a2MEKlhJsBrWdWuimMhQmVJhbJCF2CJMaKHK7062NdGiFMih46hJ4bHeP7\nfuW3STmqWlPEMdKIWUkf41v0z1Je6s3TFZaFls+rwpKkZ0dnkZo8dIRYCMYrNqZt0m63OfLABO/8\nUWUxlec3MhlS999PuLjYvfk7gdH206vYeopMxaWNiRWnqcYuv/4Z5VM6GRO3T19sY1JlNoh6jWZY\nxSGNQHQJPZfNQayhh4qMVpIOhf1gzxQBcE8vYqczquIwOwH1RUacEXwREgsXJAOrRYUmmPjB+wlX\nniZujzO29yDlJD/6u143w8dPLeF2CLfehqNfo1okJLuYDsw9UxCGhKsbuy69aKOjI3yfKCk4c/N7\nupYLwJ6CQyFnE+uCZsVD2zaDtUMyhqsez5FSAaSg1iirqTnFFBlL58pKyJv2vZWPXv64SrFEVVYa\ne/fgnlFDHrSsRVj3eM8PfS+T+igr/gqGYRAbPpeiw+iXPtV7fRKF7tw+AmEV4o3WxnbS38WOfZZl\nkRQNpNGi6i9xZZuV2VHoSEWKztEixngKJ0gTRxFh4pHnrFzyBy7f/97HuRy0CePshuUyqghdujoY\nBqLT9mF5ma8/8vW8beZtrBkNzs0+w8GRDC2zgZTQ0pLjrp5DGIbq0b+tuMgYdUATPQq9KtPkhIed\nDEKJdJf1xa3WSifIH7f7B9+dbBZrbZG3v+aVFEpjRJqPXs8iB4y03A3c+oQ+No7bIXSnQKm9zjfu\nq1KI4q5Cl1rYTV20ZhShb/fRN/dGNm0HM9og9JymCP3Cuou5Zw9xbfO2Sd2U3rkK5T84TetptVso\nTCQkFkYIBJHexowcrtQu93wGfWQE2WoRu64KinpR90t/7Ve+ilffeTeZqE1sWATxBLYIcC58pO/1\nMEZGCMubCD1R6IZl4RXHGF+30S2l0AHSyevc6qbUtNvUxB73rCIFc08mOU9lSaRqGm1pIqIssYBr\nNbW7sDNmT3oXgDmpvE/WqzTDKprQcfRsl9BN28CI0mjJ6LellcHT0Z1jB4lbZfzLa0mRS6Or0A3N\nILQiYt0nI+OB1aKQ9PBBqdixiYOUF64RxxHf/6bDHB7PMFtJin8aLhx+Mwgdzm8NahtT6jsON/no\nnSpd3Y8IE4Hg5aZU5WPiVwshODqRoW10PPQiAFFFKfTO8BXdVzsZPT2KFVrU2+Xu3x+bzHF2qcHZ\n2RHcqMVSc4kvLn6Rn3zoJ8m88pW0vvAFlRKZNRExNJfLjLczrLgrFAoFsHzmooOk157tFt90P9eo\ng3N8hPQrJkE2QM9vXP+E0B3psiyLFKmRxGpxt7XU6Ch0kpny9m0lzKkMZjsZoJ0ERjsKXegulVbA\nnKYRRllcT10vPW+BoRGueeS+5qsZ/5EfASBYXkbXdP7rG/8r0ahDZe4aY3lJy6qofvaRDsbW1MXt\nCl3oGsaos0Whj2QsajLNlHCxXWXJRYZLZWkroXc6iMpNoxE3w05nVMGb65LNl0BEaLFFo7KzrXgz\nuOUJPbeJ0LVMEX8+5h+WZinEMUGSvy1F0E1dNMbHEY6Df2VbY6NthK5LnZgYaSilta+Y4sJKA3O/\nsi46KkGG6qbsEHmnL0Q+Uehm0vEw1BuMVyxm630mxZSKAETr64hO9Wmi9F/7xgd5+7d+E9niBNIw\nkcnN4DXKfa9Hp5+Llt9K6ADx+AHGqhYYskvoVtoApFLWiTfeIXQvUXl63qb4zqOM/7O7CY2QjJ+h\nLU3iWCmnpWYy3SltdAeKbIYxmczGLJdphoq0smaBVofQLQ09TGFIdc5La2d6jtGBNTODbK8Trrdx\nMhncRjMh9CQ7Jtmd7zfDgbno3WuVeOal0l6iIKC2soJt6PzwV99Gw1PfQ329Caki7Lmvp4NfZ7L9\n5kyXTsaUE+sELV/1winsU33YN6n0Q2NZKjKiWfG7HnpUU9dGODqRiDDDJIMnVcKODNrBhu9822SW\nE/NVTl5Rn+HU2jk+cP4DvO/c+zBecT9RuYx/4QKtpDeOo2coug5r7TXy+TyYPvVoXAXeF57e8rmE\nqTP2nXdhTqQRRhvM4sYgj4TQrdBjhSKTCVkLqfUQujAMhG1DuMqeH3819oE85lQa3dUwhNXNdMla\nCaFrLndM5biqG2jSwA2lGs3XTV1sM/2//hej3/1daoBKkpNuaibZ6SmsZowRLVC3y2ixpe7xkSMq\nMEp/Qge1I9qc6VLKWNRJMyk8dCnwjRBp+r0KPVm8pa/3HBPYCNy3mmRSGXQ0JJLf/vBZrvapPN8N\n3PqEPjLWJXT7wCEacw7ywqcxAE0oMpV6SGN9o2rSOnCgr0KPuoRuE8c6geYTGR5eM+DIRJYLKw2s\naVWgYSeDmWWgbmj3XDKlKKmWdDJZrFSaVPLfoTzHq78kma0O6J+BGh7dycCQm6tPhaAwOYM0TMRa\nmxCNYECP9U4/F83SEba+pbjI3nMUI9YIQ69L6JomsB2JJ3NdJWNMTKAXCnhnN2YzZl+9B2M0RVyU\nlMxJJIIoTnFX+S7iZCivnTEJ/ZhwW3vfjuUSr6zgSvUQZ4wCrWqVOI4wbB0tctSsKAnL1UsMgjE1\nhQwbxK1QWS4dhd5cgShEL6hbep/pD7RcOuhMQSpkVapfx3a5f7pIEKuHtbqWBHnze6G+NaXSTBT6\n5nhMR11nYpM4lqSiFK3cJC0hYHVjoToynqEiY+oVt8dDF0IQmgGWTKpKUyUsKfHjjVjNbZM5am6I\n31bnfmr1PKfLqgAquFctyK0vfpHLZ9Q4NkdPk2lphDLEyTpEmocddyK//UcbAgg7QAiNcK2NjCV2\n0rDLCJVCf338LO3IxowLPYQOneKiVjemY04qkitY47jNBpefepx0EoH+hleM8H/+6YP4GR0hDSQb\nc12N0dSWvurGxMSW9MWRmRkAVq8+S81ZQ48sGo0mjG5KXezToAuUpRiutml+QX2PI2ml0DOGem9P\nttHtmMrS1oB/h9Dj0KQfDMvCMC3cZkPNdUX1a//MF+f5vYcv97/gN4lbntANy8LJ54i0EPPAMYKW\ngbeqvgibCInESEnq5Y2bzTrYJxc9YyLbITKKMW2bIFJByFBvc+6xZe6bD7my1MTYrwjdufsuAGS7\noq5iZ5RdW5GZEILC5BTpto8vAkKjhiZhod6rrLvphuuVjf4w29oJ5PN5pGGSqkdcNdJEA6YgGWOj\nGwGxbcVFmWm1CIVua8vD52RM3DgHq+e6527fdtsWQu8ef1+GvDVKRoLE5I7qHez113FDHyfJ795e\nJq1nM2iZDMHSMoGuUimL2T1IGdOu1TAtHU0aCCSpSGO13luS3oHQNIQpkaGuLJeOh46E1iqpvQZI\nwTjNHS0XAGNUeaxpXRF7p8/IdCmFlgxQ8VyfD3zpr5DZyZ5p8lo+j0inCRY2qkU7HfyySX58Nsjy\nf659ktcfnOYnT/4WVU+R9uHxDA1N0qr6YNsI09xi5UV2jENaEXh6BDuWSOLuQnzbZKfNc4Y4zHBi\n7RQXKkqJ1sczGFNT1B99lLNPq7YL+ewEZl3dm3pKx4/aOLGGHztQG0zoekbd18u//BSLP/cYtpPY\nb6HLiiwySkNlGUUbNt6Wa5ROE28aFN2JxxStMeZOneB9P/P/UHlG3WdvuC3L/pE0MwfyGCrZs3uf\nGmMpwjW3a0Ua26pG9x9WA14unH2Sur2GkCbNehPGjqmOolGAURohmJ/fMsYOIPfGfdjHSqz/+Tma\njy8xkij0rKGenVC2wIh6FLowNGTUBmkzCHZW5e2nUup+iowq333XJP/sDYcH/s3N4JYndEgCo2GD\nOD8FSOrXlLLJxQJpSHRH0ljfTOgHCWZnt6Uudlpphpi2QxBJdOHSTC9y+IFxnDmXYlvSGlX2gXP7\nHWAYxNVq16+GrY26CuOTpNs+TaNBMqiH9XarZ3RYp4otWi/vSOgA6cDklJNGev0JXR8ZVS1wg6C3\nuGhklKYdEzdaWx4+J5dOCH2DwO3bbsM7d65nvFbmmPLD98o0QtZoGA3S5hpf+UevI7bUew2yXcLF\nRTTbpB01GC0mKaCVdQxbV72sgVLosNbu7dy4GVrWAGHjpDN4rRYyk1g69UVGxgtoYRpHVrnWvMi3\nffDbOLXWvyJSH022+o2AdKHYVeiaJhjLFQGQIuLXP/07PG0mrXTDjUVCCIG5Z2vqojA0hK1TTAJy\nB1dHeGr2cbISPlA/y7u/9G5AWS4NTSIjidcM0YqFrocOIFOQNnKEgQ+pEimp7odOkcrxPXkMTfA1\nd04SexM8tvw5Iqnu56pfJf2qV3Lt6Sep1hTpFfITkGRGRbZ6Xaz5zMdHob518tGWa1TQCZeexZzO\nEpVdtIVEsHhtaqSJNJuUHiMiY6BCD+bnuzsLvWSDJShY48w+q6yeOClcaiSW0j3TRWJNLW7N5PMa\nYw5Estvka3ujrpmJo9TSAZXZq9ScNbTYpNVuw+hRiEOozJL7uq8lWl+n+sG/3nqOjuprr6UN/Nma\nslxkmqyp3kvGIaHwaKx7BNtG+yFbdHNc+6ATuO8Qum8v4q80ujUPu40vC0J/7Tf9I9pBneWLc8RT\ngsaCQ1ukycUxoR4izIhGeeNBNA8cQAYB4eLGg7i5labpOASeh6VHxLHkga9VfTscCXOTM2j5PKkH\n7kfP55PiIrVCC0vbQsSFySnsVhsZNIjtFBLQQ8G1bQq0M9k8Ku9A6InPakqds5aDFjT7lrab06pq\nzr96tVtc1EHGMVnOGVBrEAQBHzj7AT5y+SM4OYu2NrZlbJd9+23ErVZPm4TCXfuQUnIscmiGkrpZ\nx5GCduxR95NOen0yXcypSYLlJUzboRlWyVpqV9KsrCuFnhSDpIIMa0G9bwFWB3ohrQqWzCxSxvhO\nMguzdo2x1BieiIAa69lf5eTaSZ5d6x9kNUdVK92o3GJk33RXoQNMl5SVgYgZae3hdNJOuevVd46x\nZw/ehQtbFj4tYzLqjEIcc3RpjNuv5PjHosi9sckzq6p1xP5SivVkp75wodqtFu0io+PoGbxaA1Il\nMijSqyWvGc/ZfOxH3sSPfu1txP5GphdA1auSuvtuFgkJ8NXs1swoQTL43DUSYtc9roZHePb0aX7i\n/c/0v9bZDO2Hf4nSN+1Hy5i4z5TRdB38FiBo22NktRARmQRBQBRtJbz8299O+7HHWf65n1N+uBAY\n4ykK5jgLZ5VFFDYTQk9GtN2zr0BNU8/rwgm16+hkunRsF2NignB1tSvKpnPTrBV8rBWPO88FSG8B\nz3eRI0fUiayeI/vmN2MfP87ab/zGFjEHKvNJy6o4WsbSaevZrkLXooggUuezPFfuVrACCOGBlul7\n7QDsTAa32cBxFIG79hqz8zV+59nfHfg3N4MvC0I//BWvZPz2w9giTWuigF81uOLcTiGMVE8OPaKx\n7iFjySMfuEAzr2yTzT765laapu0g45iUY6FHFoapvnxHCs6JHLd/4VGc22/vtj3VCxbC1LAO5rco\n9Dvf+FUIYGohBE1HmjZWqPVOmsnnQdcJ19fRkqlE2wm9mDRMQreYxSIt25T7eMROJ6B59qyyXGqb\nqkVtg3lxHMtV5POuz72L9zzzHmW5yEI3eLT9OJthpCw82WI01inLEprWJhWqBa0RKELsq9AnJgmX\nljFsm2ZYwY6Sbo/rZUxb7xaDGEGBNSF39HWNiWSIdpJd4FkJ+a5fZjw1zrpVBSEZc9XrOjbHdujF\nIrFXJ6p7jO7bT/na1e61OpYEcj29xUhzL2eS4Pd2Hz3/jnfgX7xI9f0f6P5MSxukrTya7xJbDrmW\nyRuKd3BXq8Hp8inCOMTQNfQJm0iHy8+sbnRc7Bwjr66Ht1IHp0AJZdXVNpH+obEMoxmb2FO7Jk2o\nx7niVdBLJZbzGfYePoyWMUlbeVrldYSEpp40fdM9FvwDyNo8T85W+l6jztQi2WqQvn8c91SZbHYU\n6SpibVqj5OMGRmIxbVfpo9//fRT/0bdTfs9v4T6rFlZrb46CNa52H4BbrZIyUt3hJnfvK3A16Vsz\nd06p8E4ueofQzYkJiONuZ8miXaRegmzb4Mh8CoJVQOJmlRhjTU1IGvuBH8C/fHlLnUX3syZxNCEE\nx2emMbUYw9QRoSSKlH37wY/8BR/84Ac3/kgPEMls0X5wMlm81oZCX3WqmKFK3Xwh8GVB6ABGMYWj\nZ6BUIA41vDDPZBjSokUsAqIwZvFSjcf/5gqza2pF3eyj65sUumEpgspmitixzfqayjsv6DoXVjaU\nkJ7PE1erZL9ymtI3HUNLfPgOJmYO037gNRhuZ6ubwgwEV2pbA7JC01S1aHl9k0LfSoqlkaQDnmGy\nFBpkhNu3ja515AjoOu6ZM8oKCuPuOaUtnXnjtm45ckqmWHPXFKGHqS1bb+uIUjb+pd4AZaD75GKT\nVVngba01nNgGCbVAkXC/1EVjapJwZQXTsmkGNURbItCU5WJp3YZKcVigrOl9e5B3z22vKvAyktmc\nXmSAlYP1K4ylxpjPqIVlavHtmJpNxa30PY5eKiG9GnEjYGTfAbxmk8a6Ioh79+5DImlbNUZbeznr\nJQG4bT564Ru+ntRXfAXLP/uz3VoCPWOStvNYQhKmbEptmzunXsGdrTrt0OVSEvSdGc+xkBZceWZN\n5UjXNo8DVPegv9oETWfMVkS+trw1j7qYNol9Reh3j94NQM2v0ZARDcfi4MxR9KyJo6eJo5DxsMC6\nUMeQqYBqtIcpsU7N7f3OgI2pRY2GSmOMJAdyxwld9RzUjVGK7krXMtvuowshGPmn/1R9T+eVYLD2\nZLH1FKlkcEerViVn5roKfbqUIiqpnebCvLrH9ZwSTWGnFXay4HYCo0IItGm10204ISRtalvSgtRI\nN+Cf+5qvxpicpPqXf9X7WTdluv3Cd74JgHTawlCbHKSIqNYqrG/KZdfMCGE4PTMROthuuVRsdd2O\ncXff198svnwIPe9gahbi+FcDIJsm06GHp3kESRvbS0lqYdPTVeri5V6FriyXpCF9Ud1Ui7OfQ9ME\nkymLi6sbqWNasUBUrWEfyJO+fwLNMXq+WPv+N3Jq7yJIiJ0U+VDvIXQAo1QkWi+rog5D61Ho2XwG\npEAaJg0PLNp9q0U128Y6NIN35uym7obJKDrbYMUaQ0uKUN6+5+2U22XsjEEYGUTNancsmZ7LoRUK\nW9rDdhA5kgwOqxSYkg0kGlZsUYnUa/sVF5mTkxBF6ELD09sgoZibpFldx7A2PPQoLLKua0RLvT3I\nu8c6qB5mI7GTvFYLSjOwfpn7xu/j773ureihw6SMsbUslaQ9wXZ0Cd2VTB5WgxaWLirSeWD/PiIR\n4Zp1Rtt7OFe/pup961sJXWgak//+x4gqFRqfVt00tbSJY2a476veArpNoW2jj9/BXUmXwBNrJwCV\n6fKs9GnVfOqZ/cSVKiu/9Eus/9EfdYdlBGVFkIVMgIgN1te27jZMXSONikfcO34vju5QcSvMLanF\ndf/kXrSshZko6L1xibVgDcdxEKkQNxpnXFSV39wHWkLoUaOh6hF0Qc4awW81cUyNilZiJG53d1j9\nfHRz3z4QgiAZDWlOJdlFyc6qVa2StbJdD10IwZtfeT8A9ZYab9dNXey0wh7vNOra2DEVDx/kj996\nlbmjEi2xSNodHz0hdKFp5N/+dpqf+9xWi4skdbnThMt0QLfIpw1MP0l40EJcr71l0RJJG+p+/Zxg\no/dNh9CDZHdk1Qar+pvBlw+hF9UWXhTUza014WDYJtACvEBd7EtPq2BbY93D2r9/i0LXNjW7N+1k\nhmNBpaXNzZ/DK86R1wRLmzor6vlt2+SUQdyOtnjbhXSex+4oI6RFbKcYCfS+Y9b00bFuxaGWtNDd\nDE3T0GOL2LRItw0qtsvCgDa6TpKhYiS9tzvb1LSlE2kGmcKoarxfTxPKEGknGQVxDpobgSZz3178\na70ZJyKnk9YyPHDsCBmUEioFFuVgEaGJvuX/HUWVtu3uQjOS30tzfR3T1tGSRk9EWWIhqCzvUFx0\nWNUCaIlCd1tNKB2EyhVM3eSfv+a7sCmQ1VoYMkPVH2C55PNIr4YMBBMzhxBCY+mievBHUjlCEeIZ\nLfTYxGrmmDWtHg8dwD6mhjR0gnRa2iBuhuyZ2IMQGiI28DL7mQlC0prJidUOoWc5r6mul0v6NOHK\nCqu/8W5qH/4bzCRg2yGKXC5Gi+wtlksHI84Yh/Vv4Vtv/1YKdoGqX+Xgvfdz57VVskJHz5pogXrU\nx/0cKy1VXGQ6PpYoISWkvZVue4zN0DIbU4uEEGqxMjJ4zQaTeYdFWWRctrs7rGajzyAYy8KYmiKY\nUzunTqZLwRyntHeaVnWdrJWl7m8E+t/5KrVDlFq4MQhkU+piv9kG07lpXDsmVxrtdipdWqtsIXSA\n/DvejgwC6h//xLbPahK3w41KTjtPIQW2r46lZwJiGW0h9CQZiuVfe5rKX/cOS0/l8rjNBrqmIYUE\nERNrLtWlF2Zy0ZcNoZtJvwshUgjLQtRC9oc+vuYTBgES2a30aqy7WDNbuy4KXUOkjK6HDjDiKJvj\nylqBinUBh3Ua9Y0HqhMU7UBzDIhld2o7QDE5hi4dYjtNwRc9Qwlg66SZTgvdntfgIE2bjKszb0Us\nDWija992O8HcHJqTFDUlRVUZSz101p4ZDLeFv5wUKZnqurhxbosCtfbt6wmKguooaGgmP/XWI2St\npJVuYLHqV7DTBm6r99ztwypN64FUkTf9y+8FYCy9j2ZlHd3Q0ISOEBpmkv+9tkNxkZZLIeMA0VSf\nz2s2EoV+BZLAWzFfQtc8CLIDPXRhGIAP0sDQLUb2TbN0cSN1U+oSYarPN9rax5n8WI9CB9BSKbRs\ntjtNR8uYSD9itKgCv7HlUGmBZqS4U89zck3tPu7dX6CtgVGyqMiCSqeLIqJKBSeXwY2ayHrSXC2v\no8cWjU1tZzsYydjkva/jUOEQBbtAxaswdtsdzKxWiSpVNRCmHSOERtG1WWmvcIlLlNuLBIGGK/NM\nsE7T7/3e9FyH0BXZ6hkDW0/hNhvsdSR/wxsQt39dd4f14d98ina9N7ZjTU/jX1UKXUubeLgUrDEO\n3nOfslyMbNdyAShmHASSWITUyp2uiynCskpdNEZHQNO2pi7mVGxsZHwPIhFxz56dg7GjKibjqeM7\n99yDOT1N+fd+j7X3/NZGZ8qMqXbSHcvQKZC1oi6ha5lEQLjuRtZOAdyn/wg9Z9I+0dt4L1MsgZS0\n6zWEKTClyZ6D/57XfeMwbXFHWGNq1deaKi1Rq7jsDUM1eUZKhBkjk5ZvjXUPY/+BntTFjodmJNO6\ns2YSuEuKN0ruHO8Kfx4/qZrTCwXier17DJFKhkZvIuOcbRPU7sHW88SWTcbXWGz1koI+OkK0idC3\nWy4ApuYQORkmjfuY07MDR9F1Kj39SxfQC1ZX1WTsxNYYm0FrVGmWW5iRSdtQN/p2Qjf37iO4Nt+T\nTeMkQcnG7DLZd/wXAAphitWgjmNLvGc+pnqfbII1M0PubW+j/t4/wLHVtntU20ujrB4m0zYwNQs7\nIYa1yuWBmS5CCIg9RDIZyGs1FaGHbWioB/zw8WkQcHD++EDLBUAY6ruLmgFTR46xdPF89/PaGZsJ\np0SEZLy5nzPpbF+FDmwZj9ax70qppIui5VBdXoT8Hu6SBqfLpwnigGMTOTKWTtOAVrSRxhZVKljp\nNK2w1u1MaRZGMWKNttvbzXIkbXUD5EW7SM2roefUlj6qVtFzJjKIKY3vIfPkGnd82udUcAKkJDQa\nzHr3MyXK1Pr4wN0+M0lKpZYxMbGpr67wiod+ifTTn2Zp31u6lksY+azO9S465v79BFc3sog8q81o\nZi/FyT3EUUROpruWS/dvhFLoS0lBjzma6qYuCsPAGB0lWNr4Pm4rqfv+8L47EFGIiAVrS2tKoQOU\nlZ0mhKD4bd+Kd/o0yz/7s1T+TDU307LbhkY7ebKmj5ao/TgRPnEc4yf2mZ5JEVz6FMaETtzqXcgy\nSVuHVrWCZmlYkcXrgjm0Hfr+3wy+bAjdGE0RxB5G3cCamUFbq5OTEmmoh7OaP8366BOM7M0QR5J4\nz0zf1MW4GWAEJpbmYHRaNHT6PseSV2mnWWskE5AKeZCSOMmV7c4Y3fRgpCwd99p3kLVHQAjs0KTq\nVXtGURmjY8TNpurnkjW3DK7tYMw4guOHmNYoK/EMq9X+ytO5vZOhcqY7HAAgY6sF58/XCqwlmSl3\nze+joVUAcGVuS9DP3LcP2W73NDTK7FPKs7VYIXN7EjwK06xFbWytgdf0t2xxOxj/oX+D9DxWf/03\ncO4YIRvkaa1WqJdXMS0NQ7PI6upar8UuLJ3o+/lAEbEI1e3rNZtQVD16WL8MwO33qf++rTxDpT24\nB3Uym5q47jNx6CitaqUbGH3FoVfgBBZlXTLZOsJ50+ir0GEboSf2nRWbZDIZIjtFZWkRcns44Pv4\nsU/FraBrgnuniyyGIa2kb4uRdKa0UmnWvHnMShKXKewjJQP8yO1JDSxlLNYTQu8odGEYaNmsIvSk\novHrvuNfY922l/3LabxIfaf2RIvP17+HPbJJrd17z+mlEsK2u7GUDqHHUYQc3cdk7RLnPvYeRNKX\nXmoh64u9i445vY9wZYU48dhH7zhEPjNOOq92sNnQphE0+Mjlj/ATf/sT6m8sEykiKknffGNMLXrd\nTJd9+wiubrTSuH/ifj78jR/mgUOvRgBaIGjVKhuEvroxr3bse7+XO770NCKd3hiK3sl0a2xS6Hob\nkVzvttiwhDq2i0jSERuf+MhWuyZBukPolXVGc6Mcs/exN4y69+lu47qELoTYL4T4lBDilBDihBDi\nh/q85juEEF9K/veQEOK+F+RsdzpPTVCN1rDbFtbMDKxVkTHYSc8V31gjMppM311U/50EPLf46BlT\n9Tb/YJX7Rt6Mvk0hBlKQE21q1xRZaZ2S7cR26ZdDnk6mv+iGMtv0xFLYrtI3BhOoxlpxn21rPjXK\nSMuCOKIhM1T7lDEDGHv3ohcK1P76Q+ibAkmOoSMEnF11+avCV4GMObS+l2qS9eDKwlaFnuS0b7dd\ncgeSlL6VJL9WaFhhitXYx9GbuHG27/xU+9Ahcm99K41PfhLnjhGEFEylDjH7zNMYto4uTHK6ul5r\nug4XPtFzjA60lIbQUpiOo5o8lWbUL5I2tSOjatFJSY388p7B4+gS8o0awUZg9IL6fkdHR2k0GrTS\nMaXGJOuaNlihT0xsIvROkVrA1NQUpLNUlhYgO0k+2bnUfHV9HjhQ5ErbIwgF+e//VxS/5VuQnocW\nhlxtn0FIQfvZNcjvIyuTfO3GViU7krEotzYIvWMx6YUCca2q2tYCubDE9JteA8CEVaRhNkjtC/Di\nDKOtY30JXQihiPPaNWQQ0PjMxzFDnX/80z9P8Vt/hC8UX0H76rMgmyAFsQh7KioBrKTCunMvpSby\n4MakkwKurG/S8Bt88OIH+csLf0nNr2Fl8kjNx5tX32k3F73TaO/QoZ4srOncNNlciVCLEUFI6NcV\noQu9Z9i3sCz0XI4osVH1ZFZxV6HbebKigUgGcbfDjevebZ2RjGMMVxdUi4Ty1oK/dNKHvVmtUMqV\nKBhJzcRLRehACPyolPI48BrgXwoh7tz2mkvAm6SU9wI/Bbx7d0/zxlBnHdtLYR48BFFM0NRJ60mJ\nplD/y88kuctplfq22UfXM6a6WdoxKT1PFPigb6ghP8nzDa6p/hh6vtODIyH0rkLf+Jt04lvrZqea\nLBmisC39bWMW5KrqYd0Kuw2ROjBtHV0rIIKAIM5Qq631JSohBBP/v39H64tfxDv5ReJWSNwK0DTR\nXWB8zUbXLAwzTzlQ5+LqU9ssl6T51LVrtE+c6I7askoZIhkSVz01PcpKoUdp6kJiygqezMKASlbr\nyGGCxUXMPSlEymB//g6ufOlJ9dkwSWuA1FnLTage5AOgF1IIO49t2YlCT/KNkwclnU5jmDah3mZP\n5UjPdr4DLanyjRv+RmD00gahA+jFiFSQxg0yqmdM3Dudp6PQpZRbUmAnJyeJTJvK4gLk9pBvqsWz\nQ7r37y9SEeo7dL71OzEmlL0XVas09Cq+6dF6ahkK+8gnCrFe33ptS2kLN4hp+xEFSxG6Gj6tqk+N\nopqC5F2s8qCmrtNXZR9k2VlmfnmOfZmT6OFIX8sF1MLuX5vDv3qVcOkqhDB1+DamCimuOeoekVEV\nERs7KHQVyPYT20XLqcHsqaTTouNpTFwTnJ1XpHt+/TzpbB40n3J1mWq1ipbvpC5uEHq4skK0bYFL\nmSlaToQMPZAugdRUC4A+mVN6Pt9tubA5002dVIGsrEKsJpdF0UYgs5PNo6WT1r5+Eoc6uTX207Fc\nmpV1HMfB9SNiNIK1wf2KbgbXJXQp5YKU8onk33XgFLBv22seklJ29uWPANO7faI3gpZeQ0NDH1Fq\nYLGSY6Sy9TW+rR6GVmwjbHtL10UtY3T/7egpAs/FtnXqZh1TMwiFIJYa+pKqqut2yes0VerTWCud\n2BzCSBr5iAEKfTSZNLO21iWZ7baLaesgcmhhQKmZ5fbVL2zJutmM4jd9E4Vv/ibqn1D5tkHyEKTt\njc/omzliK0VlYe7/Ze+/w2RZr/pe/PNWrurc05Nndk4n6uSoo5wFkhBBNjYgYSGEMUbIvgZ87+/a\nfuzfdQBjcAKDwcQLBiSTLBEEyjqKRyfqhJ3D7NmTO4dK7/3jre7pnu6ZvffZ+0hHR/N9nv3oaKam\nuqq66lvrXeu7vgtNVFgLUzSrmzLFLqE3vvAFznz397D8739OnYsQdEQbGsl0e9dDRMmNLddULn47\nQp+bVw0hS5dwDueZTO3j7BOPqsKoNDFlSBymWclMwtmHk47EEfs5MIOw0sxqe9E3UDKzzKbvuBCC\nsbEibavOVO0Az62Mjqz1vIqwonIH03YYm5vvKV26hO7lkqJYbQJkrEh9C4zxcWS7TVyvD0Tok5OT\nSCFYXVuFzBS55Hx6hL4nT1VLRsuttfusdFUefcNZpXOyTKjN9JqLlpcGP7+YENF60ydv5wllSDNs\nouWym0Mz9ufwz1TQz6mCfLocsOKs4Hd8pOtD7I6M0CFJbSxcVB2xnTogiFsBUzmHsqmOV8ZlNGkQ\nayEbiztE6EmKpGvWZScDnsX5Cq95ZILMKfW3xzeOk0l5BHqbk3adL3zuM6rLdEx5ukCfFXaf/BjA\n0R2adgRhAwSsLK/BxI1DETqQ6P+TlGmf0k3tKIcXraNpGrEcfNltRujqvrf2qPGHnWcGlS6m42JY\nNs1KGdd1qdZq/Lz9Ab7QmB95ra8VV5VDF0LsA24HvrDDZn8P+Og1HNPzRtNMIgO9iPfQ/XyxM8fY\nU+oGWbNVXrTSVjK5+kZnyHWx+4bGEFi6R9Buc2hfnucyT6OJmFgL8WWK1PpTBFFMnE4IfT0pZjqK\nvPtz6F4y/UWajipCaQ7ZdonFv4iJ++aC9s+C7HrDbE27mI5BLNOI0McLXfZvXODUyujIEyD7pjcj\nkxRBN6pJ2wa6Jjg2lWFVL4Cm0blQwW/8Oc9dOsPLo+N8flGNJdOzWbRslsoffgjimPKHP9wjiNAM\n0RPbUC+VQshEZxst48sUcWs0oXfth4MLFzDGPczIol2pIiPVnCIjHxmmuai7EHXg7GdH7scYSyM0\nndsKb2Z2fR9hEKg8et9Sdrw0huH4jDfm+Wd/PPqWNYo5ovJZqh8/T+vJVSYPHOoVRguJJUM6UTe4\ntQliGNnFaownw5lXVvqIIWQykWtWm22qcYZcYhHQlVJOZBy8RHJbW2/3jUpTefRV7SJI8NfSTItF\ntNDh05/+zEAePe+p+2Wj4ZOz1aqx3Cmj5/KbhH4gR9wM0ROfd7MjaHSfl5ROKNNURxT1QClU4kqF\n9uOPIxMlStwImMw41PUUodCR0QYiNgjMGs2qP9Rcpo+NIVyX1qOPsv4bv4Fw1ErZiCwQgs5TKnK3\nA3VPHS8fx3MdZDJopL50Rm1fcno5dHv/fmC4+c02bFpOhJaktc4eX4DJG1U6bkug0a9U61e6qR1l\n0cKGUqp0V2XJ4Jue/fTevZjz8xTe9U4AOie3NA0KgZfL06yUGRsbI45jxucOMHXjAyOv9bXiigld\nCJEGPgR8QEo50rtVCPFqFKH/5Da/f58Q4stCiC+vrAxHOdeK0A4JCYjKMXv/039gVXoYbZ8vjn+R\nx8aUEVClViFddKivdzD37sHvm1xk789hH8jh3T6BrbkE7Q6drx5n38kWEh8pAp6MjjFWe4b/88OP\n8yOfWEKYJu1n1DKrl3IZyKEn1X9TQ0Qq1XHb+oPwZJHKyuYSbjPlMjycorevjEngpxBhgDQsNCk5\nvVTe9nqYMzPEjRVA9gi9mLK4e1+BG6aznAzzarulmLCzgB90CAQ91z5ICqNBgHXgALLZZON//n5y\nMAJLOkgpyWbSiKRw3EG93Doj9MiwGan55y9gFBwEAs/MU7n0OURsEIcBh1ZvY98j3460svDHPwpf\n++Oh/XT7DvzGEllzjLOf+wrk56GyueIqFotEUQdNarSWhtMAAHo+R+tzv4A5brH2u88wtScpjK6v\nYZom+Xweixbr3nmmmtPUNQEXHx0+ni6hLy/3DLriZkCpVELTNKTj8ZWvniGbEHq1s/kI3bA/R0SX\n0DdHpdmuR7m1AgKCjZic2yJdO8hGeY0v9E3NKqYSQm9uEnqlU0msKaq0n32O9V/9WbXfdYERRWid\nmE7il6Kl1KqxvTZY/O7CnFUv4fqnPt0zhYsbIRNZG4SgamSRcRkhDdqJYmrImVAIrLlZqv/7f7P0\nr/8NnafVHFTZCHDTGeKWOhYrEMyl5zi+cbznf4KEelnxhTGWSBcjibl3L2jaEKGbmknbkRhJUHH2\n9KKK0AGWBzuQ9WxmwOWyv1uURHJ8w333YSYzU/UwGQfYnaY0Ps6hv/pLnBtVL4J/fnglmMrnaVTK\n3HXXXfz0T/803/d938ehQ4dGXutrxRURuhDCRJH570gpP7zNNrcC/x14u5RyWJAJSCl/WUp5l5Ty\nrvHkAbieMF2HmtwgWKhTbwQ0QhsRSS6kzuOkVLRVrVfJFG1q6+3EdfF8z1jJmssw/r5bMUtKZx12\nfOprFUpVk4AWsRbypH4nqbDMiRPP8dWLDeyjR2k/pdQYwtAQpjakcgHwMzpaJIgMi8mGekCafcOl\ntb7xcVomWbLXBqMcN2MhY487H7gPNA00nXMXt3cmNGemQUYIwydYUA/az7/rNn7hb93OXMHlVEMD\nGeM11IMjYx8Rw1pzc5/mrEq7jP/DHyP1wP1s/M7vJPlZC0dLUV9YoZDLIqQOElpGkkvcZp6nMTGB\nME2CC+eV8x5w16veRmXpqwSJ5PDBS/cxsbGX4Hv/RFnj/uEPDhVZnWNFxn/4JvzHfxWAtYdPqjx6\n9WIvmip2bYn1NuMdg9aIyfR6oYD06zhH1VDt8fF9AANpl+b6EmHmNJ4WsOLMwbnhwcrd3He/dDFu\nBBiGQalUwpue4/EvPYHu62iIgWan2/YUqGoxq0vNzQi9UiE7PkF5eUGR2EqLXFHH7owxnp/h4Ycf\nZv1igyiKKSQR+npDpVygG6GrxrfaX/0V9b/5M7S0TtzMY4Yxsh3Q0ZPvKMkDGyvn1fSiyuAQFnNW\nZVg7zz67GaE3AxxTp+CZlI0cMiojYp1IC2k7yxx/ZjhHnH3b20g9oCLTuFXtDWbvKkEA0tLlgZkH\nOL5xnP379xOKEqZfoJ7UpYxSV7rYRrMszNlZ/DNnhj4r8DQMP4DY4MzCcX72T5/kDLOwPKic0rI5\nor6axEC3aOKTf/+r7iZO7Hz1yEIIbcjioCuICNcqvVpTF16uoGSLmoZtb2+1ez1wJSoXAfwq8LSU\n8ue22WYP8GHg+6SUwybaXycYlk0jqhBudFg6s5nL0gONKfc2IhHRaDRIFxzVXLRnL9L3B6SL0KdS\nqPk0q1VSLZOWaCG1gAVb+aBna8epd0I4coz2177WK04K1+h5ogNYhoapCxqujhZpSMMiU1PReLM6\nGIF3m4u61fatEbqbRO7FcRXlxqbJwtLId6c6D8dRkX98ifaJMnErZL7oMZl1mM27hLFAaBGxvWkU\n5HR01vumKjk33IAxNUX6Na8h9eCDhEtLxI0m7k0lYhlS/vXnKNrK/dCNXOqOIuX1tdFjuYSuq4fw\n/AWMZKTdkZsfIFXYi19ROU4n0TT/0doZ5P0/puxP68tb9iOw9xdx5sdo+CuYyxpPnIu41HB6KZEu\noVdTF5jxU6yO8EfvOl2SuBXmvPGkY1RJ3MbGxmjU1Jg1qft8VbwNefZzwxPgexH6pnQxShqsJicn\nCS2H0Pd5sjxFVrMGmp1u31OgqklWlhoDw4yLs/PUN9bRihbtixXqRoactYYdFKnVavy//+qzPPO5\nxV6Evt6Xcql2qqrGE4a0nnhcXdeDMVBgPnWUoN3BsRzQIEoa6azKMvzJj8H//LsD59ZVOwE9Qu+m\nJSazDmUrp3LohFixSS33LE88MzjdCZRUcPbn/r3aT6OGlraGCL0oshwuHKYW1MjMZNAL96BHNvUg\nSdH0XBeTPPr+fXTODL88Ik8FUlFo0g4r1BstvipuGyqM6pmM6iVJgrr+QTfM3qnOf+mrtHLq8zUZ\nYWrW8Li9hNCF4dJ5drgw2h23+ELjSiL0B4HvA14jhHg0+fcWIcT7hRDvT7b5v4Ex4L8mv//yC3XA\nO8G0HVphjbju96RnANGZd3PE/TbaWptWo0W25NCqBcgpVfEfNb0IoL1aQcoYIQV14ROLEGEpMs6j\nbuzK/EHiWo0gkT+O8nPJOCa1IMTSLaRh9GYq/vZXfo8/OvFHve2MMTWcQhhJLq++NeWiHlzDSIYb\nGBYr2yyTe9dkeppo7UmIJK2vbZL/bOIVojkGseNhp/MATFYnWWtsvuBKP/IjHPzoR9AsC73QHcSx\nTun2g3zi0v+EZszUitrXscpe1rwFNEKW17Z3k+s2mehZGzSIKz7Th1+milhAkEyK+cXP/zJ/UEse\njhGFSAA9kyWqnWTMnOETf/kUv3PmNj79u7+JjGOmp6eZmJwgdC8xJkNWRhB6NyIu/8FvARCvNkcW\nRs8ZKYh1TjUK/EblHv7kD393YD9aOo1wnF6EroaOq/MolUrU6nUmDhziTHOcnDAGUi43zWSp65Jm\nuYPmOAjHIapUGJtT92dgB0RrHf7oiyHT5pO0VhS5hHqTtYsN8q6JqQuWa50tOXT1362vPqqO0VtH\n+mscnXgtfrvDuDdObMYEZjI2r16G05+G8uAAcj2f7w187o7tixLbicmsQ9nIARFCdjCkAULSbI5O\nufW8Yao19KyS53q5PJphsJH2yUiXwwWVvnhu4zkyBRstNmlFgjiOh7To1r59+GfODr1g46RJ6Jxv\n4zSnKTqzPMf+IY+gXi9JopTR030pl/xeNQ3rwpdUty0gZISGMWxC1hU/mB6dE4M9GF4+T6tWJY6G\nV4jXG1eicvmMlFJIKW+VUt6W/PuIlPKXpJS/lGzzXilloe/3d73gRz4CpmPT8CsgYf3U5k1ptEp0\nOg6+4eO3fMbnFSHWzK50cXi+KEBnYzPv6sc+aDGmoYgqL9QNsDCuKu3dtMuoLs+MY1Brh3huCqmb\nxFI9DAvLS3zy/Cd72+mlUq/9X8+YQ0VRN6uOS9M2nRc3NsojPTh612RmhuDc4+h5m9bjm6Q4l1gl\nyEIeaZhMPqD0yTPlWdZbm8QvNK1Xye+ffeplc7TdFm29Ra7tUNOz7KkdZkNksDKnuFTOb3tM1vwc\n/oULCF2g52yijTb7b9vbc4Fs7VMPz5iY4Dm/rP5oO0LPZnBWnkUTGn/7vR/gxtwyX/z45zj/tScx\nTZN3/8C7CYUkSp3ncxceHmro6g4XaX7hU8g4pPnI00weOMzS6ZNIKTlw4AB79+6lMb6XmubTpMEZ\n5rm0MHjPKJ/v8QEtepcYUgkZThy9kcVmilwgezp0AMfUcbIWoh0ThXEiNywzluSua9EGGhoEGbzw\nEeKGWrZHeovKUhNNE0zlHBY2WuQsdW9sdDZ6fRLdHHG0tkZ44eN4dpFUXKDklgj0AD8ZXj3evAR+\nDZprA9LMrhYdwL3zNmTQIlpXz8ZU1qFiJquKvtJa22+NltQahppiVKv27J3vePPbeM17fwQj45Ej\n1SP0E+UTFEsuIraQCFqtFlrGQlib0kV7/35ks0m4NJi7jpJ0XqXRxNtzF+FilpY0Ob+4DP3e9Znu\nPNdN6WLcDFSDkBAwdzec/yJeVn2HUvrIYHg6k9AEwtERVmpgJCEkzUVSsnz6JM989pO8kHjJdIoC\nmJZNvaMi1vr5ZSxDfXHjtqTRiYiMiKAdUEoIfb1uJtLFwQi9qyMO+syvROLeZmlqaTVnt9E1wXPe\nOMI0aXUJ3dG3IfSAXCELQiBFC8yYSTHb84CGQT8XPW0R1QLKHznF2u+qQk435SKSNvHYsNDD6rYm\nXZAQ+uIi7q0l2sfLvahxOpmY4meVAdm6KZDAeG2ctfboNE7/7FOA0p59NIMqUc2nXDiMIS0y62/n\nfOoSi63UUNdc75hmlWoiqlQwCg7hRodUPt/ryPOS5W1elqjKJFrahtC1bI5wQ6VY3Oxe7i6qdFG7\nrh5Qz/PwLYnUAn79a/9iYEUE9KJYY7wEYR3/5EWmDx+hWSnzpT/5EKVSife85z0cmJznRO45DD9L\nTjYJRrTg9xN6l6ziVtgj9LF9B4mkYGJVp7L6jIqGE4xPqgnxlbWWGmZcqZCbmEI3DM6eVQX9rFmk\n3llFC02QgtBoUk6GG8/mXS6WW5i6yYHcAf7q7F/12va7CFdX8S88ipQxGTHOuDuuVq2tJobWRA+7\nw44lNAdHJXZ15N6ddyH9OlFFfe5k1qacEHojSVu1RUCET21t9H2pZbNEtXpvotbMkWO87NVv5I49\n92AEgqyVZcwZ43TlNBMTXm/4SaPR2JQurm52i8LgoG4APe0SpHX2RKssjemYfgFNCJ7xpwbki13p\ncfelpxdsiME/nzyX8/fAxmnSjnr2gqiB9PXRJmSeiZbODx1LV4v+kf/8s/zv//SzSpH1AuGlRei2\nQ7Mb+TQlc2PqBh23JdV2iLQksiPxshbpgs3K+TrWnvmh+aLdCN0SDntSNzDtHsBMRk9ZcURFehzI\nhMzmXU5XgqQwqm4S4Q6nXLKOSa0dUppShKibVSZmcmTCPA1/kxiM0hhxtUrs+2gZi6jaofnlJTrJ\nAGo3WUZ2GjGajNWMUWqcXhkml941mZlBtttYs8o4rHNGXR/H1BnP2FTEOCczJ1k8tUJnai+FRpa1\nYHR01Zt9uq6Op7RnH7XGGsFGkz2nPkfbeYoNL7HQFTHl5ebI1UNXuuhfuIBecIg22ni5fC9Ct5OB\nIukoTyVKSKExuvirZzJE6+oz46bASClyCfqnylggtQjXz3CqMqgTFobBxP/xfzD3X/4zet4h9nUO\nTs1z5L6X8+n/99f54h//IQA3Tk2y5q5SWL+Nomn3vDz6YYyP9yJF95YSRJLm4yukkzRDamIKTUBh\nKabSuARP/H7vbw/sywPw9ImNXoSu6TqF6VmefVrNBZ0szHOmniJu/gGa38EuhlTX2kRBzGzeY6Gs\nSO6Hbv0hjm8c50uNwfRCeOkS8foyzeYiBXOakjtGgwYXNy7StJo0o/zmxlteoM6xoxhTU9hHDiM7\ndaKk6P36G6d4w91HEIbJck3nZvvDXHKXkFrI4qnR6UCVt1YRetwIkIl81/ZS+E11L+/P7edM5QxT\nYx56ogHvdsh254tCnzpsffAF5BgOjZLORPsSF5sdNGkwlprgOPvg7Od622ldz5uE0L2XTaClTap/\neUZtMHcPQK9Lt+2fQUhjNKE7OlqqQHhpkNC9vFoFbixeBClp16pDf3u98NIidMehGao3q2ekmZ1Q\nkVFaC6l3AoQtwFfmOqX5DKvna5h79+KfPTOwH+HoxMTYusvLiq/mlrEHyCZGUHoUUJEpZuwWe8c8\nzq41cG66qVcY1Zxh69uMY1BtB0zvUdGwZa3j5WysTmqgg1EvDkoXo41O0uWZdHrqGk7KpFXz0WMT\naVo4cZPTazsQeqJSIS6DJvDPbd5McwWXlYrD4+OPY81YhOkcehiSak3Tqpwf2tfm7FP1oI4nEXpc\nD0kvPIEmjvPEmCrAxVqHz/zBCX7lA58c6hzsbzIxCjZRzcdL5yCOyHgu9aWTSCRukKPi18DJ7xCh\nZyBoI0yNqOZj5FWDR+j32RwnmueMnxvpRT/2934Q99ZbsfdPoXljNP78z/m2D/wk43v3c/4pdT7H\npvI0NUXi0soTxKgZo31wbroJ/+xZgqUlzNk0xqRH8ytLvQi94wdMTaRwNzwqmjbQNHXLUfXdP3dq\nI4nQywAUZ+cJojbtuMGe+VuoBg6hf0lNQzLbIKGy0mI277BUbRNEMW/e92b25/bz6+c/tHnNDx2k\nc1LJUZuVU4zZM5Qo0NSatFttKlaVZpyHXNJxu+V6j73//Rz4o/+FUSwi/TpxUvi/ZS7Hz73rDtyx\nCayww52OoOyol+/CqdEvYS2TIarVNxvoEjWX7XnK2x7Yl9vHmeoZJjIOkaW+s4/8zTNIKZUveiJd\nNMY2LTMGvgvdoTIGbqfK6uoatmfgWkUq5JBnNnsb9K32HbZO5lXzdE5WaJ8ow8xtoJncgBr5aLaa\nCKnT7oyYReAaaE56KOWS6iv6ArR2Cf3KYFg2nbiJFBJXz5CfUmSWpU2tHWI4BiLJxY3vybCx1ESb\n2z8gXQSVM4xEQMYs4hkZ0maRTNIVqcc+FdJMmW32jaU4s9bEuelG4mpVFfpyNrIVEvdJ5DJJhD4+\nrTycPfMiXtbCbDsDhG6MJ92iy8sDg6dhs6rvZhJCj1xiw+KAvEQtaboYhW63Z7i0iDmbpnN282Y6\nMpHh2UtNSk6Jtt1GGiZSNpmo72Xt+EeG9qWlUgjTJNrYTLm0owaa0LA1l8eat7KqNwEJepNzT60R\n+jGr57e46HWXyRcvohcckGBLDwEcKhVp18vUvEtYYUqpQVLjOxZFATRPEbqZTLoJ+yJoO1lxjYc3\njCT0LoyJDMLN03n6GYQQFKZmqK6qzz08kaaDRiwiIj2LjwnnBpuVMq95NQD1v/kbhBCk7pzEP1fD\naqoXSqPRYM/BfWh1l1asE/etzo4eyBMjuXih3mvZB0XoAL7lkzJKzBQEE14HPWhRb1aQqJXQbMEl\nlnCp0kbXdN5/6/spJz73xtQU1t59+KfU6qSzcQpDM5ndKNDROlixRc0q04wLyBu+TR3QluutWRZ6\nPo9eLCL9GrIzuPLKTEyRCyroxXtxhDqvzz3x5QGP883vTGm/u92iUdLtbLkpgk6bOIrYl91HuVPG\ntBp8bE7lnVefWebCelMpXWIlXTR6q8YthG44bBQS++hLZ3BSJiIyCdHpnP1Sz8mz60rZr0VP3zuN\nnrOo/uUZpOHA9K082HqKrJMnVQ/pmC2ieHh+quYYYHoEly4NrHBTSYSeHVdNZruEfoUwk0aEyIhw\njTT5A2rM02S4RL0TYrnqBmo0GozvyYCERmGfki4uD8riQiNiwlHRiomL3VZFlvJihRPtn8AKJXvH\nPCqtgODAUUAVRo2kGBNtbL7BuymXQkkRtqCMlzEQHZNGZ/Ohdm5UzQ/NrzzS06J30z9h4gntZizq\nGx0IPaRhMROvcvDC/9r+mnT9WC5exN6TIbhQ7y1xb57LsdEMKDjjVEUVhCDSmhRaU6ydGS7eCCHQ\ni0XCJOUyNjtPO1bH7+hpgk4OKSSeCRnrLIfvVjdwZXWLZjeT6U2D714v6hF2KkVKhpQmp+mkzmJ0\nXKXXTo1vm3LRsuqBFLaSmRqJ7UPQF0G9uusI2Z5gsbFIOxyd29XzNkJo+OcUmWVK49RWlT9L3rPQ\nRYq22WKhWSPCIO5buoMa22fu3UPtr5UHjXf7BGgQPr6BYRg0Gg3G7noLIEi1zYH6ia5r+LZGPekW\njSrKj2VsTp2PVjKJltv8rR97P4e8RUS7SSxjIr1NebnJTF4Vri8maZc37nsjf/jdf4qwLOyDBzFK\nJeW3DgQbSoUxuz5GaCjSbxhlKlGJ5u3Kq37bFFcuh/TryHBQlpqbnCEXVlnI38U/KKsI1aq7PL70\n+NA+VIRe6w1XjxP5ru0lK5lWk/051QX66Ysf50JuEZB4RDz8J6d6/QthuYPo69/oh2u4rGU7oOnk\nG4sYnoEI1bNUbzZ783O1rh9TdfO7EKZG5jV78M/VaD+7AXP3IC4+wvj0FBpQ19T90WxsKYy6BmgW\nWmoP5f/1DJ0z6ju0XI9v/4mf4g0//GPALqFfMcxEtN8RLVw9Q+6oUm7kg2Xq7RA3aaBoNBo9pUtF\nVyTbHY/VRaxH2Lrb+/9ZTW2vz1V5wl7gqdVJ9o2pG3ChMK06Rp96SkWcbI59A5VyqXdCTNtFhAF1\nkcaz2wgpoG0QxOpBM6emsA8fovGZz/Qi9NQ9Kk3TnaXoZS1WztfQIw9pGrQjF3OEv3oXWjbbI09r\nbxYZxASLioRvmVU3syULrMTqJo3NDvnmJGsLX4JgmPj0YrGXcjEsi8OvfDkArpHGSawAHBtS1gXe\n8H378bIW1ZUtN74QqljbjdCBcKONlyvQqpQ5cvQG0H2MwKTm1wi9sctG6MKMiWo+WmEPAklYL/e2\nmR1XaRizrb6vrUO6uzCSSUpxMyaqVsmWxgn9Tu8BTBkZmkYdv6NeiP7ZLw2dV+Y1r6XxhS8Q1VXR\nzzlapPnoCqlUikajQW5CfZ/ppkE1GExF2XkbvRkRpNIQBMSNJjNHbiBTGid/6x4IY4L0g1heGq3T\nnbXpU1lqMpsQejePrms6pm7i3n47qQcf7KUmALRWhVqwQXbd4Z+98p+pczEbCAxW4zGk0Le93kLX\nQQtB6sSdzQi1OD2DISPOaAc4GiXDMITg5LkRqbus0n53+xC6PkO2p5RXfrPBvuw+AH73md9VDUha\nm5pRZ+ULK1xaVttHyTNmjI0Rbo3QdYcGLdypeW6tPsnSs79IJ4nCa6R6lhJaygNdH5jnCpC6axJ9\nzKH6F2eQc3dD2GJ/Nnn5aSr4Wzwz+Jmaa0CsYx15C40vrrLyS4/TSsZeHrnv5ZTmlSKuNWLq1PXC\nS4vQk+HOzaCGZ2Swpo5iaRHpzpqSDabUDVOv10nlLcb3ZHrSLn8roVvJHMFkKEZGL6jlbf0Sse5z\nrpNiXzJU40zVxz5yhNZTT2EkBBVttJFBTFhuk0ksARqdCNtvsWpN4iaWtV6QHSiMph58Oc0vfxlj\nzMA+UiB19xR6dnNIhZuxiEOJEahCW2BkSXVGP3zQZ3964QLWHkV+fpJ2OTaVwdAEoZ/jvK8evNiI\nKbQmWYta8OSHhvZnFPIDBahb3vpGABw9hZtkOXQbaijHxdy4S3VLhA5sEnrXt6bq91qkx/Lq5an5\nKgqsefkdZYsAQguIqj6isAdTiwjrmw+b46rvRPdVhLZd2qU7Gk+4RTonTpApqWahWpJ2Kdh5GtY6\nRuIlH1x8CoLBc8u89jUQBNQ//gkAUndOEld9XN2m0WiQTWZhplsGlXDwb8cmPXKx4GJisXzuB36A\nxi/8J973X/4HpTtVq3jnQgPzwANonRaOadDwzrK+1BiK0LvY+xu/ztgPvqeXzgMwJbTCGrIZkk/s\nawNd/d2P/OpX2CBLXN/hnjLVCy3u65MYT9Jo69WAVEG9tGLN5+Li8H60tIrQhaOj5+1egNGL0JtN\nZtIzGJrBibJaTfham8ipEFkaJ76m7r+o3C2MFom2ROi2YdMO29z85ndy3p0jbC0TJGqoulmCi8ox\nVQiRpIAGU0NC18i+ap5gsUFg3gbAAVP9fRSrbb92fEtDomNALNCLBzCn1TXqD+yctLpXdyP0K4TR\nNZtvr+MaGdA0LFPD8iv4UYznqQt6/MRx4jjme/7p3dz+9huTAbZbRq0lo9XarrrRs2YBKWISfmdN\nOuwtuhia4MRyPSmMPo1IGWAIwo0OtU+eZ+k/PEI2IfRqO2Aq5xHoDvXaGQA8PzOQR0+9/OVI36f9\n5FcZ/8GbMYpOMktxM4cOYATqXELDIxfu7Itjzs8TLFzAyNvoWauXR3dMncOTGSr1FM2kZV8KSbpT\nYNWbhy/80tDUIL1Q7E23h0372ZRTxAm6sxiTKKhTI1tyh1IuoIq1weIiwtBUV2U9SFqkN8gmY89E\nUluuOBlorUO0/UQdaCM7EXHuCIaICdY3v89uu7WZDGG4HKFrniL0bEmRb3VNXd/xVIGWWcUKkkhS\nMqCYAHBvvx1r/37WfvmXkXGMc6yI5hnYHZ1Go6GaaEyTdEunGm0h3705PCk43lDH2X7qKVqPKs8T\nI2ej5yz8czXMG96AkDGvdZ+lFVc4s/44piYopa1ehD50bqVNQncLBQLpI/0YL4mKI12Rc7XcYSnK\ncOnicGTdhZYUmfs7mScSQm+vLeFMHUUjRmoB66sjcujZDEQRstXCnE71CN1KjqXTbGBoBnsze3t/\n0zI6uHpMzVLHqGUswnI3Qi/1pLRdOLpDO2pz1ytfwUcm3gi6TdhUUXg9cxgSC2zoOi4Ok6xzVOW+\nO8s2ZGaYbD9DJARxWAbgi08NKqa6pmzCsBHmOuhiQPGmGwZ2KkWrvkvoV4TuLNBKYxVDmMhOhOXY\naJ06ghjbTnE6fZrHH3uc3/zN31SqFMvCmJgYSrlIO7lp8xIta5ExC9h6Yj0rNSrCxgwb7B3zeoQe\nVyqEFxcw8kqK1zlTRXYiCpq6zNV2wE233gZS8vAzSlvuBdkBQvfuvgvhONQ//Znez1RVP7G/TQpJ\njqEhAklseYzL9ZE+JV1Yc3P4FxaQUmIfyNE5VelpxG+ZzbK07tDROkgZI3UDCKhm7oVLjw/5lujF\n4kCErlk6wtbJOAWcMClCWRFNPMLmOtmSQ32jQ9Q3ZxXAmJ5WWvR6Q0k0a0mEXi73SEZLmlsqdpL6\nag7r47tFLaJkPJg1h2EahCubBmNdkyebmDFnnDOVMyOvk2YbCNdAy0yOjND35MdpmjWsSB1f25mA\nL/y3gX0IXaf0D36UzvHjVD/6UYSh4b5sHKu2qaNOlYoqQo8GO1cnp1WE+lUmSb/2tbh33dmrVwBY\ne7L4Z6uYaUU0e5b+hv2lSWrGBZ79/CVm8i4L5dH1ga49s/A8nHSGMO4gfdm71oGhSPW7903Qtoqs\nrywQRPHIfY2ypsiVxgmFTrixjDZ5I55sEWk+jY1hzXWvmadWw5xOEa42kUHci9D91qbSBeCG/GHq\nuo+GZDUOqa23lTqqR+hFotXBnL9ruMQyxjBiJrIOsZ0n7pTRdZ26O6e06ElKUc9me0MuBs4za2OU\nXDqnKjB/N8b5L6BZYLc6iNgkaK3xuZObn9s15wOQ9QsjZwO76exuyuVK0c2ht8KkM67qY6cyBJFg\nr1jCFCkeGX+EW+6+hbNnz/a0xObc3BChC1ddGq1kY5Zccs44ttDRTI0odGjoEDXWODSR7hE6kOTR\nbcL1Nv4FFZ1kk8tca4ccvPN+9GadteTN7QbZASWAZts4N9/U6zwF5V8R1wLiTrTp5zJfQPcFse1R\noMZyefsxa+b8vBolt7aGfahAXA8ILm3m0av1FAjwRZvYtJBxk6af+Hece3hgX3ohT1yvI/tUJHrW\nwrOypKMADZ22pc6tVl4jN+6CVE6CA8fUK9Yu9CY0pXIF/FYT20psjAnRYp2KkbjujUi7dFvJZXIN\no5qP4WUJG+Wes143QreImHDmdla6FB30sTn8EydxM1kMy+4pXY6UJmhZNfSk0eU323fB8b8YGpWX\nffObsQ8fZu2XFNmbEx5ubNFoKOlbdnySdNOgIgfJLltSL643vOwQ8//lP+PdeRdRubxpHrcnS1RW\nqhQAP9bZn6uAFvPFj5xkLuuwsDG65b6bcjHyeQzbIYwDRAhu0gUshESO+cy3YWpmnnRY5m+eWR65\nL61ba+gzjxOaRt3KEVdWYeIGUqKJNH2MhjM0pLs3eLpaxZxKQQzBcrOXQ+9KFw8XDmNoBm898G10\n9A5RrPLX1WoVLekwBqVFjyqVXtEXlMoFoB212VP0aJs5iCt4Xoq6UVT+QEtPqr/PZogro0nWPpCj\nc7qCnL0HqheYtdbI10wsMnhGnV/+1GaU3puH0CkTrpwfaQPiZrK7KZcrRTdCb0WJgVClg5Up4Ec6\nN4mzaKgbxk3yjd3JL9bcLP6WMWsirZa91mwGo+SSNvIUY5+3vPUttLUQBKwtnufwRIYza03Evk1v\nZqPgECzWkYlDXCbJRNTaIYXpGdzWOqHhIi0fz8/Q2FIc07M54j4vDGNs07+iS+i5CQ890pG2w0aU\nZfH49iRldRt5zp/HOZwHoHOiDMBt8wVkoOoIHa0rXawTlS3wSr2Rbr1j6XaLbpQ3jzdj4egpUrKN\nSZaGqSKnWrlMJvHeqGwpjParb/QkQu+O6yJ5WUgtwAlTVIwk8hlB6ELX0dJpZFsdT1TzMTNjBNKA\nx39PfZZpAgJDRIigxKnymW2vlVF00LwSnRMnVJEzUboA5J08LbMGUt0bH4tuIDQ8+OwvDB6TppF9\n61voHD9O3Gyq6yNNoiii0+lQnJgh3TL4iiH4rad+k1gqws6Oq/tyLHksjWIBoqjnaW7tTQrzG8nk\nLOHiSXXvVDfq7G0KFsotOuGIiUrd6UuFApplIWMfLdbQdR3HcbBjG/ZWuHSqSqqwjzFR5dQ2DWvG\neB4ZRwTLm0QtI0nTKSCqqzB5EymaCKNDulPgdGXQPGszQq9jJquSYLHel0NXn/vum97N77319zhY\nPEJbbxNLwUz6ORreOWLXICx3kHGfFr1vNdMj9FARelnLIOMKnu1Rk0mAcFGls7Y6LvbDPpBDdiKC\n8W+HO9/DzJhHrmFimg5Cb3NptS/92CX0aIVwcVE1GW6N0LO7hH7F6BJ6PVAX2T9fw86N05Em92tP\nIWL1wMRJUafbeWbOzhFeujQQdZqH0nzs4m+RPTKFUXIxsTE3Ktx1213EtnpgLi1e5NBEmiiWnG9E\nGBMT+OdV9yN9q9VU8nzV2oFacie2pbHXwQ0y1J74nwPeGZrrErf6CD2J3PzzNbzEzyU/4WGgyP2z\nrbfw1d9b377Vfm5zqISeszEmXNpJ9+nNs1lumpwDKWgZLWLDIrQ30MouFPYOzT7sN+jqHW/GwsbB\ni9sQp6no6tifXTvP93zyOwCGCqPmzKYWXcuYRLWAVDavzrNRR6ITawFOkKKqJRK5HaSLUV2dT7jW\nZp/5MmJ7Ep5Vc1aEEBi6iRART51S1rVNf3T7tV5wQHiEyys9pUuX0ItOkZZZR0j12IQaHJ99pyoe\nVwe7A629yTSd8xfQMhau3JTM5iemcAKdv7ZT/Lsv/wxPraoI33YN7JRBNVE09Tpzk5qFNZdBz1mI\nE+o+9c08brIalVrAQdemHcT8/peG89+a56F5Xm/ocyyVT7yMYlKpFGnSVKYWkLHkUv0AGdFieb08\n8hrl3vJmZKdK6/FNV8Gl//gId2XuQG+sIXN78ISPFD5pf5jQexF6rYox5iJMjWCxgdVNuSTBTMpM\ncbR4lAlvgjOZM8yNn6cV28SaT6BrEEniejAwvrELR98k9PmixxJpIMLQDOrtUElhu6MkM5khlUsX\n9oEk2Lmkw7f/PDPz82hSECfmfFpfGrBrGaLZTYLFReXr1B58ue5G6FcBo5tyiep0Mh2aX1nC8tJ0\n8HiV/hgySvSr5mArsTk3B1IOeDDsv+Nu3vB//QTFmbmeZSfVGCklqZwBUrBwaZ1DE+rmPLFc77kI\n9rTVCZxIEW21FSClVDcjEGobuGGaxtN/MjA0QfPcgQjdnEphzWeo/sUZPEvn1tfMceiuCSxTrTgu\nMk4cCDqt4aIh9DXyJGkl51CBzukqy7/4GJWPnObvv+oIcZihZXaQpklslfHqeTV4eWOLz02fQVfv\nZxkLIzYxghZ+22VNqBv2ZGWFir6GMIa16MZ4CUyTcHFR5WTDGM9T+25WygjdJtYC3DBNpft23EG6\nGNdXQRPUPnmBfdENZMwj6mWUpCtsy0ZqIQ9O7UMIySeOjy76KSmdhnByBBcukBkb7xVF752+l/fe\n/R7l/Q4Yms8Xx79LvYy//KuD13xP18nzDHrGwk1evmuPLzB5fBJLc/jeFfVif2zlsd7f5UqbqqDe\nyzOpWQhNkLp7ivh8m5SRIzCzeGFCKGbEdNrm7n0F/vPHT9AOhqN069AhrL17EY6DiJJVUCfC8zy8\n2GPZO4ubMTm7pGoH9fXhyUwA9oEDCFMSnF8mbreJaj7hUpMxq4AWR9QrFVKuQ0xI2s9zemNLhJ7d\njNCFJjCmVGHUME100+xF6F1MepP4uo+VPUNDOsSaTysp1ofl9maEvrYZZHQj9FbYYk/RYz1xKBVh\nrJ77mTvgwhchjtFzWeJKdbTdRTePfjqZMDWd2CT7yyA1skGFKAmkjJLL2Ltvwii11eQqRx/KoTu7\nhH7l0A0DkRQgg3kVreUYw4915sQq5rqSGX35kvLb2CR0RXj90kVN05k5cgMA1nyayv46teYqfqtJ\nabyAHnpcXK1xYFxFFceX6yp1k/iTABgT6kVgJwXBWjtksdJmXST+EfE6TpCirmlQ7ftsz0M2NwlQ\naILCdx8h9iOqHznNQ99zhPyEh51KIQKfsqYRdh7n5PFTQxPhQfmid1cPoIZDEMb456q0nlrjjTdN\nYVGgbkWg6QjRwPbTyj60cn5g9bDVoAtUDl2LNUwMRNNlOVhDJ2S92QYBZl4Oa9E1DXNqimDhYq9j\n0NHVtWyUN9Ath1gLyFNSxUPN2IHQlexMT5u9B0jgQtiGZASfbdtIEfKKxJL248fPjNxXVxutpUoE\nFy/i6QaNjXVaCwsqn3vzG3qE7uoh55mEo2+GL/+PAd1+N0IPzp1DS5s4SYReW9xAX4Mg7vCOVZ9p\nd5xHVx7t/d3rf/AmXvfuG5NjKQxda++uKRBwIHMrgZ7BbauoVLMiQj/mg68/ylK1wx9+ZbAmBLDn\n136NiZ/8J2i2hUiONW5H5HI53MBl3V9n5nCBSytJ0bc8eg4rgDVXAj1F5U//tKdSSWnq2jUrZVLZ\nPCEgpODCuUF/8F53ZkJs5qRHsKICGNtLDRF61spiI1gOG+TyGWItYCHpLo02On2EPiJCj9rsGfNY\nNRPL6U5As9kkOvIWWDsBf/X/w5iYRPr+UGG1d657Mvjnaqr+MTFFaESEzUsYQZoJ0WCjb3Sfe6yI\nOVFC+j5Cj0fm0MNOZ6Dx7XriJUXoQohe2kU/5CJsnXx9jCAIiSV4Zz6PlIKvrh5H07Qe+Vm9lMTC\nyP3qWRv9lhStqE5tdYU9M3MYocdqs41nGczmXRWhz80TXrqEllaX1TlUAAGiHeGYGrVOyInlOs+Z\neyCOieMKbpCmrgl+48xHek6AwnWJW4MGWeaEh3fbRM+oC8DNptHbDXyjQ9D+OH/wR7/HX3zs4yPP\nobt6AHCOFJj8R3eSefU80UYbLZZM2kdoJzUGKTvYoUuQ3auKR9XN67LVoAvoacldI43ddljvbJCh\nSb2tXmQiGw4VRWFTi971mrZw0HSDysoSlusitYBsXKQSVNVqYWG0zb5y76uhZS1IsjOaSPKkScrI\ncRykFtG52OS+pfv4/JlhwlPnp/5OeOOqu7aq7pHyebVScVImmtCS8w2ptAK49/3QXIUn/3BzP+k0\n+tgY/tlzaJaOZyXpwEoNLWchkVQDh9vyR3h0+dHe3+UnvZ6SadS1NvI29uE8e1M3EegeXjvRQpsh\nYSfi/oNj5D2TZy6NUG2kU2iWhbBsRKKfjzshpVIJvaOz0dwgU7RpNARSQlQfXRQFMOfGEW6e1qOP\n4l9U1yglVMqhWa2QKqgu4VgLaF/a0oDTM8RKGpByNnFdmXT1+7l0IYRgXJgsRy3uOjJNrPl84llF\nvlG53ZdyGY7Q22GbI5MZGl5iJZykMhtHvgPueR88/J+xA2Vi1n5u9Gwea0+WuBEQrbcR3hhhuo2o\nVdAjB08ErDe2DKpJhp3IWLlt9j/HblI/aG2Ts79WvKQIHTaVLm4xj3frOG7NRSB4MtzDvpWHCSu3\ncS76a9yU2yuKGpOTYBgD80W3IjOWSNjWVjm05zBabNEJ1Rd1eDKdpFxU6iaqLJN93R5S902jeQZx\nMyDjmFRbASdX6jzNPoywTSRbOGGautD47bWv8gfP/QEAmpeCOEZ2BmVtes4mbobIJIWTLuTR2k1i\nyyFM5wDJk8cHtbFddFcPves07mFOeCBVsfVW5wcIam8GQCadqxVLdVj259H1XA6EGOjM62rRHT2F\n07HpxG0yWpPAT2asuh0a5eHhEtaeeTqnT6OlEtvWVkRpfi/Lp0/ipTxizScV5il3ynDLdyfDF4a7\nPLveIOn7Zsh92wEkEi2JiLtFXS/lEouQ6lKZ6eY0F6trnFsbVoQYeRsE6Dm1epgIY/Qo5guf+hig\nVktOMoPT1iPKrQD2vwK+/Rfg2Fu3nN+enpNnKlHj1Gt1zDEX0zKpBA4vy+xjqbnEpb6hIr3zKg7X\nKwDsg3lSZo5Q5nCbycvWiAgS6WopbbO2ZThKP4Rto/uJe2C5RqlUQiDo1Dqk8jZRCB2ZYjq4QLW9\nTa0hYyGsNMHZ8wQJoXux+h6blTLZ/XeoY9dbRO300OcL0ySuJ89fzgapCtqWu+m42I8J3WVJhowX\ncqDF1KttpK0TljvKY8i2e9bTAGOuIvlffvyXacVrfMfde5FaBj9ZFdTqdXjTv4F73of9oPKv6Tx3\nfOS5WnvUC8g/VwOviOa1sGs+WmRiCZ9zJzYG6lddQidoQiQh3Cyoudkuob8waZeXIKGrN7OXzZF9\n416qD/lIJF+Ib+KG4GtEK29AxjplWe5F6ELX8e68k+qf/W/iEbaoAJlEx1tbW+Xw7H5EbBJL8H2f\nlx8qcWw603MRDBcWyL5uL+aEpwYdNMPekIsTy3Vidwxbdog1iS4NNkSaS3GLC8not+5Aia2zCfXE\nPrc7OKFQGkPv6CAEfnEi+V2ZYITfcnf10F/47RZbw9UWnm1QTvyw46SBpyySdvG+PLrQdYzJScKL\nm/lVPWl2cvU0TkeReMpsYfop9cJw27RqwZAW3bvnXuJKhWBBvYSiasDE/oMsnz5JOpNWOfQgrab7\nvOxvAxIeHZwUBJsReuquSTIPzhJrMbpUypbuy8hLuWiWpFltoKFhaS0+dXyEasbQ0HM2+ti88ppZ\nXOKYDye/8kVOfuWLAKSzLlKCpUUqQhcC7nw3uIWBffUTupl1yOtpLrZWMMZccsU8Zd/htpS6Z/qj\n9N55WRZaOj2g3gCwphVBavEkJr5S8eghQWJJUEpbI8ft9fbr2GhtRabt9WpvKpPe0rGyihJWrZu4\nR3uGxW107XpGzdb0L631Ui5uLJT5XbXCzE33AxCaNejkB6+xEMrPJYnQGw+rVWVU8bE9l06zSVT1\nByLbSTPDsohJJdLGo3kdM28TVXzV7TlWJOoj9AO5A/zz+/85T6w+wU9+6id578sPEGs5WtUykKRb\nNR3e8jMYxx5EL5XobBOhm1MphKXTOVcFt4jrNdFjgRaFaELy9G8/zYVn+1ZRiUQ0bifzV/tGUm5G\n6LuEfkXoRejZHHrawkqrG+Cs2IstQo5EFfy1V7ASr7BR3fwSxn7ohwiXlqj88fCEeYB0oYgQGrW1\nFWzTIhabSpn3PnSAn/ue2zATI6Vu8bH+2c8SLi8QNwOyjkm1HXBiuc6hiTQmAZFuIOM2p4UigvX2\nOnW/jpZ4zsSNwQiym5rojqYrFvO41tvVtm4aKSUCyeLicDGru3rw+9JKA4Ru6WwkXixRLJEyphK4\nIPQhpYs5N4u/sBnt670IPU0hVnnwVaeNFVtYsUXbUTd2ozJIMqkHHwAhaHzhs6ALorrP5P6DtGpV\nUoYGQmJ10krHXNjL8v4H+I2nfxu5xeVu61zIWI8xpAnZ2d6x27aN0COCxNc6bXW2leXpBQctrVIu\n/pkzHJuaJzc5xVf//E/VcWdtBBqGiKg0tx9WYO7dQ7i4SNxuo2dM9shxFuN1woxGYbxE2Xc5YhVw\nDZevLn919LFsaeQCelI/I1QRvGebxCIgTCL0sctF6JaN0UgIfaPWI/SMnyFy1Xe0kb+Pe7RnWNgY\nrsnA5qosbkK40kJLmwjA0FMq5ZJKkc/nCewyhp8fKjh2PdGllFT/Uj1zUaWjHBebbRb/3Rep/fXm\namzCLrCiayRCElr1Rm+6EIA5MTlwTwJ855Hv5NsPfDunK6fZV0ohnCIyUUptrTU5R44MzQLtXS9N\nYM2nexF6wVHPpZnYKcd6Z2A+cDdCj5PO1IGh8buEfnUwbBuhaTiJBMpOot1lXaUPXp1dIKjcQVtv\nU07e1qDIxbn5ZtZ+5b8PEQaApuukCgVqSRSgJV9m/41hjJfUBKSk+Nj49GcIL50nbgRkHINyM+DZ\npRqHxtMIw1SKkmiFCrnePs7XzqMlUYhsDRJ6L0JPppIX83n02O5NdDGr6sFfWBiuBdiH1FivzvHN\nZaXmGGhpk2ClRco28GOBoWtIwwBZp17vQG5uSItuzc4N1BuEq+wOXD3FpJZFky4PO+pmzgQZWnYS\niW1JuxjFIs5NN9FMzMjims/E/oPqXBKvcMs3qXSUa93/ldL4WQ9OLXx2YD9aNjMwF1IaEkNYxPl9\nAzl0P+wgNfXdFuyQC9s14RQdhJkjWFjAP3sWd/9+5o7dxNoFRTDpooOQOgZJhL4NrD1JYfT8efSM\nxZ5WkVhIzvlL5CcnqQQOut/k9onbeXjx4ZH7MAqFoZSLnrHoyBZWpAIB19IHCH08bY+cn9qFsG30\npiIUv9rAsizslE0myNCx1UvOz95KQdRpXHhq5D66qzJjQjXUOYfy6hdmkWYiAZybmyM0a6Q6Y7Sj\nNpz4a/WPzalF7a99jeCcuidVhJ7C8zMQSszEQA9gsnCQjqYRJzNmg9gHW+8RuvuyW2k/+dTAChSg\n5JXY6GwQRAGp/Cx60pVd25LDto8coXPy5MhnH1QePVisE+t5xs0mEomRdNfGmk+n78XenS8b11TA\n2K9F7xH6C9Qt+pIjdNN2cDPZntql5w9h5KlKl1dmLpI1J8DwiDpRz9NYCMHY3/tBgnPnaH7pSyP3\nnRkrUVtThSIraZ5Z7xvSLDRNdZ0mxceoVlXjuhoqQn/yYoVyM+BVR8eJUkUQGpFcxg02c4zna+cR\n26RctITQu1PJvYxajaSEOkezvEJLmly4MFzwsw8fAl2n/czTAz83Smqcl2t2nRIdpG4i4xr1Wnuk\nFt2cmyNcWuqlp5TBkUXKyTNdOcPtX5vnlF4GoBAVqFvqv+sj8uiph15O67HH0Dyd4FID7aMNHpr8\nLpxFde5hW1DpVPmVx3+VhxuKUBc2BnOdXcfFxsOfZ+GDH8RfuoCl2YSZPQMRej8yVrit74lSujhE\n1Qay1cLav4/i7Dz19TU6zQaZoo0WG+ix3JnQ9ybSxXPn0DIWEzKHI01OrZ8jPzVDJDVqa6u8fPbl\nnK6c7qXcBs6tz664H3VRwYlUIOAZkoiAoNPNoVvU2uFI6SKAsC2sVkLcNfVSy4/lyQQZnuk8AUDk\nqhervTD6RdNdlZlz96rtjqiXizBz1MtlAGZnZ4m1kGJrgkq7DJ/5D/Cpn03+Pk1UrVD/67+GoIkM\nfaKNJk46TSEqgSaw920GOjOz6nNqy+rZnMyeAtHqpR/d2+9Attu0nx68v8ddFS2vtdeY2XMIgURo\nBtUthGofOYLsdIbmC3dhJXbbYc3mYOzTcCNCVwU1ke7T6Rtq050vG1XUaqCf0J10GoTojUi83njJ\nEbqbzfUKmLDp4JbSYp6K97M/OM5NM1mCaAqB4LmlzbxZ+lWvQrgu1T//85H7zk1MUVlWUq7x/eqL\nf+zzgxO+lW+KejDjahXpN4hbIVnXQEpI2wavPjZBJ6eit0hcwgnTTDSLpDp5FaG7iqDj5tYIPVnm\nJh4a3ZF045kxRCzQWw3qvuD8CELXbBv7wAE6Tz8z8PMuoXtWQuheCmkYyLhGq+YnWvQzA3/T1e2H\nFy9uHlvGIuMWsTYucMvZDvmNmIiIWTFL1VSrmlGF0fRDDyUF4CrBxQbRapuCO8XEskon2LFKvfyn\nR3+B/Z5aZV2oDK4Yup7oCz/+49Q+8Ukiv46lOYSZOagtQtDq+bn0PleyvZFVT+mijsHau5exRO64\nduF8EqFrmJFGK4hGdmaCyqGDGkKuZyw0BPNRiRMXTpObUlLZ8soaD80+BMBnFj4ztA+9WBhKuQC0\njDquzCClgauFRNLvFUXH0urltVV90btettMrioZJJL93ai+5MMd/euw/YqV0mr7HkhhjfG0bZVFC\n6Fp6Aj1XxppLuliNHI3KZoQOYCFYXroE7TI4iWXzgYO0H3+C9d/+HQBke4Nwo0VheoZxew592kGz\n9d7nzRaU2+TamkpNzVufwZ7IK5FALHHvuB2A5iODqasuoa80Vzh2942AIPSjkYQObJtHdw4VmPln\n92PtK3IUBzKwtqj09ZHeGeoBMcbHidaXk3Pb/J2m6dz6mjf2rHSvN15yhP6q738v3/4TP9n7/90I\nPUWHJ+R+irXnuGXKY6mqWs//+vhf97bVXJf0q15J7a8+NnLplZ+corq6QhSGHDmYQUpYOlUeaGs3\nZ2cJkpRHVFEROqEkb6pi4RtumsQxdaKCsgoIWWJiXfCG536QV5/7noGUS9wcJBzh6EmuWUUlTsbE\ny1rcfdc9pMvzygmy3aJaqQxNJQewbzhG+5lBQjfHXeJ6QHeN4KSzSMMkkGu0GwHc8Da47+8PuC5a\nPd1+n5wxY1Eq7WH/T/w8vjCYW3XpGDVSfopqsIhuiJGE7t56K1omQ5jMBS1852FOzD3Fo7W/UvsV\nEa3j/4T3H/tX/Pf7/xV2HLNQvziwD+fYMcy5OcZ++Ic5/PG/IQ7bmJpDmErG75XPDUXoKV+lwOqd\n4Wasri5ec/LqfPftYyyZHLS2cI5MwQGpo0fq8dkuStdzOfRcDv/c2V5EO60X6XQ6aFlFNBtr6+zN\n7mUuPTeS0I2icrfcmoPu2G00NAL24IkOQewT9oqi6ly3K4wK21ae8dInainSL5VKaLGGHdlUzXUa\n5Q7HnVvZ13hsyHETlCmbfSiPf/ovkZ1HeoNYTD1NMxmfNzU1hQACs8bSmVVoVcBV13TiH/8jMq97\nLXG1in30KHGrTFRuUxybpWBN4RcHn7/ZtLrnFmunsOnQGLsZLaN8guJWiDkxgblnD61HvjLwdyVP\nFShXWivM3zSB0MfQOm02tngf2YcOgqbReW6bPLqpbZpvuQWOZlxSNQg0CI3BCB2S+bKryazbLWT/\n+vf9A47c9/KRn3OteMkRerpQ7A0RAEjnizipNJn6JZ6M96HFPrfYl6h2VKRwwD0w8PfZN76JaG2N\n5peGI5Pc5DQyjqmuLjM/cTO+3iHWfT734c0oXR8rqsg8CIhqNWTidT6WpIDe9jJFMpmciv6wcuw5\nt4rXLJINcwmhd1Muw3pcPW31fKh1XePd//ZBjr3iCJYRUJ+4mxOWiooqleFWZufYDYSXLg3Y33YL\no7m2emgtN400LEI28OsRHH49PPRBpeRI0G8l0IWWtYhqATftm+S8O8/elRSGVsFqmbTWzmMbKyMJ\nXRgGqfvvp/3Ihyl+7zG82yYozM6xsaqi8LZ3kftknZJ2OxPFQ8yGEQutQX20NT/PoY/9FRM/8QEl\nq9QiLM0mcJUWmvXTPUJ3EhWUk0gqFzaGX3xdQhduAeE4GJOTZCcmMEyrL0LX0RM73uoOaRdz395e\ncxFAIdP1zTExRER5vYp46sM8lDvCFxa/QGeLA6NeKKphF1uKeL6bTB8ybsWVDcLYJ/AVcYwlK7nt\nCqPCTorrhET1Nl/80O+x+pzSYr+6+GrWtSXq5Q4r2ZspxBtqlTMC4++9BRE/S3junHIWFGDrqV7B\nzzRNcmmd0Kyzfr4B7UovQtcch9mf/3nmfvG/MvZDP4Rsbyj7Bz+HEIKqPqhdz1gZsrrLgi5I0aSe\n3t9rtY+bAXE7xL39LpqPfHXg5deN0Fdbq6RyNmZqFtNvUC5XOPN4v1Oig7V/P+0tK9iR8Aoc88CM\nNDpak0jz8bcSeqlEuKQCnq3NRS8kXnKEvhVC05g+cgxv4zwLrlpWHQyP05LqZpgypga2T7/yFQjX\npfaxjw3tKz+ptq1cWmRi8mW09RZReo1TX13hwjNqWdwbpFypEFcqyMR468HZPN9z1xwPHlIRQz6X\nJpICMgfRpQVREyd0tkToIyaLp81ehA6K5IWm4VgRwtzPerISGEnoNxwDoNMXpRvjHnrRSVqK1HJc\n6jpxXCVojvaGMSYmwDQJLmy2z+sZC9kOOZB3WEjvxW1p3NlaR2vrHL3wapYyz1HbGC2BSz30coKz\nX0N3y4CSnAoZM1WcJtJ8DplLLCxeAifHbBhyoTN6mnzvGtkCQ7MInOS7XXm6l3KZmp4CCVYir1wo\nD19jPZf4orsFrD17EJqGpukUZudYv3COdN5GSA09Vo9PeQeli7VnL/6ZzQg9n2jLy5UKedunXG7A\nR3+KOxefpR21h31Pkm7RrWmXOAWnO09iZDp4ycCFIPSRsWQ8idC3K4xqycstlgFxtckX/vgPWXxE\nSTKzzSxlY5V6ucN6Xo1w7PcOHzq/+Xn88+cRmkBPmWSsNDLY7ITMZxxCo0H9UgydTUIHJYHNvPrV\n6LkccatM3Izhgk8Q+yw3hnPZs5k5FgyDtAmN2ELzNmW8a7/1NbTiK4nW1gjObqbkik4RgWClpSSq\nk/sOoAVNotDno7/82IB+3Dk2vIIdCbdI0VQv2FA2ibQOnS0vdWN8nLiyAYYYkC2+0HjJEzrA7NEb\nEZVlfubdbwKhMREt0SKZL7gl8tFcF/vAgZFNRvlJlcMtL11CK+wDrUXbqJAZc/jMHxwnjmKMxDEw\n2tggqiYpF2B/2ubffdfLMBMfl7xn0ZQm0rFwMj+IZoxjhRaXGpcIrcS1bUTaRE+bvUJQP9Kehh16\ntAz1eVtzhAD2MUXoq//1Fzn1trcTLC9jTnhM/5O70fYlo9y6VrWi3bUYH4LQdcyZ6aGUC4BoRlj7\nVOu61vQRCLTYoK2HrFZHR3rpl6vlZ9cDvqsEeNXdD1BYvw2A5mOnOPXYOrNSZyGsj/Td6B2fm8xh\nDUw1xf7SE70IfWxsDIGBmcyXvDAiQtcsHeEY6KU5tRRPMDY7z9rCeXRTQ2gCLRbAZQqje/YojyBT\ngiHITRbQdZ2NjQ3yTshGuQWNZfKJnG7rUOVRVgsAluvw6MbHsYtt3MSMLtYCAj+6gghdfcex9BGG\ni99p01hdZmpqCjagaVVo1wIauRsIpE584Ssj9wNKmhksLBBubKCnTUquqlk1k4CimM0qFchK0uiV\npLH6oaVSyPYGxNB8dJk1bZH1EQM2ZrN7WchOkpo6RKPR6KV54kagtPAicWs8c2bz+mkGRafISlMR\n+v7bbkQL1fflyzaNyuY1cm68gXBxcWAFOxJekYKmvg8ZtZFaZ2TKBUCztIEc+guNbwlCnzmiiIyV\n8+CVyIbrxGjYpXlyudzQ9sb4OOHKsK9DqlDEsGzKS4ugm1h6hzjUeOhdR7jx5SrH143Qw7X1xDc8\nkTZt+cJzrkkbk1gL0JKWaS1ULeGLcfKANkeQTdrqFUUH9pfJ4IQepr0IQoyM0I1CAWNqiuaXvkTn\nuecGJIxe9yWSEHrgOMRtjfPPrPPEJy4QbRl2YM3O4Z88wYUf+zEqf/pnqu0e1e13aP88TStDUG1h\n5pt8cvpvsOKY9fDMSCI2p6exDh2k8ZlBQocWWuQQSwu9vsaJrywxp7vUZUjV314lYGRUGimoNGDq\nFrj0RM/3u1hU/QRGaGAZ2siUC4Ces/DuejkTP7lZjxmb20N1ZRm/3UIzNTQ0prR1zp4cXUiDROki\nJeHFBcbfewu5V86Tz+fZ2Nig4EkqNZ9YQrqa+Av5gwFG12a49dhjgz93XIJ2G+mV8Hx1r0otJPRj\nPMvAs/Qdcujqu5Khj6Gp/w46beZmZ2msNGia6t7xdI/n5BzRDhF69vWvR5gmF97/IwhXp2Cq6/y7\nn/oa7/kfX8SxUwgBUdOiHacGIvQutFQK2Sqr/xNKmuNN1hdVsNB/v8ymZ7koO6Qm9w8QerjeVsXR\nMDG92zLwveSWWG2pa3TDA7cgouSFpneorm1+/84Nyrups0UpMwS3SDpcRbNMtCBAiIDm1vb/iUSY\nocdDOfQXEt8ShD516AiarnPxuachPYHZWiXnmjTm7uFlL3vZ0PbGeIlwZUQXoRDkJiYpL6k27ZQp\n0UObvTcXufXVc2i6hp5E6P55tWTsRujxlmV5zjXpSAPR9w3EocWe9B4asg2GMTLloqdNokYwRIxj\npQnM2GbavYQ03JEROsDkT/4Txn7overz+rS4XZVLpKsHfH12Dlo6X/vMRb780TNomhjYjzk/T+f4\nCWp/9THqn/7U5mzQms9NM1nWjRytjmBm5jgbTpU9UZmOtcbSwmiDrdQ999J69FFgsz06DlsIBEaU\nJ7Aq1NbbzCYmSxfqo71YAIxiMm91aUMR+upxso7OW9/6Vm677TY0Q0ePdcbHT/Hp1d+iGYy4zlkL\nGZuYk5Ob1zgpjG5cXEC3NQSS282LLDzxuaG/72JT6XIWe59qdisUCmxsbDCW0Yik4EStRDrR3fdP\nrwKwDx3Cu/tu1n/tfwx0MZuOg5QxUW4fbiPJ1Wqb0sWxHbpFuykXGTQxNQvDUt9dKZshjmJIxtF5\nETwWH0BbfHRkYRTAufFGZn72Z2g9/jj+6WfJaIpkf/dTT/PxZ1d4+vMquo/1Dqfi/fh2emgfejpF\n3FJBjF50sPfnqa+t8vCHfpdf+8D7err2mfQMnaiDsAXNZhMc9fD4F5L+g8Q7aOuzW/JKvZRLupCm\n8rrvT65Xh1qfC6idEPpW6eMQvCKiUyE9OYHVjhACWlvqXd0IXYhwN4d+vWHaDhP7DrDw7NeUD3Jj\nmdm8y8XtxnWNjxOtrSHD4S8iNzlFZUmlDgquhYbGcmUzIuhG6MG5LqEnEXp9kNDznkUbg4j+n2v8\n0bf9CbdM3Jp4oo+K0E2I5JAtpzeuIrm8VsfX7JEROqhpOoXv/V6AAVN/NyH0MCF0YYaIWOPsk2vM\nHysixCChW/v3qe08j2ij3CP0qI/Qq4FNKnE73CfPoUcuS4vDY+QAjKkp4maTuNXqReidZg0nZeI2\nM8S6z0a5zJytUhALtdFGagDWhNomWCkrQkfC8tPcfffdpFIpDNsAEePaj7IQ/zW2bg/tQ8/aRNXB\nqMvLq++2Va1gOgYgKdAh6rRot0ffS2af62IXhUKB9fV1jszoTDlV/mLxMFFLHcNWQgco/cj7CZeX\nqXz4f23uN0mb+Dd8F55Qny37mot28nMRXcVPq4YpbI49+CoAssk9kBLqu7Q7MY/Lg+idMqyP9ggC\nFaVP/+v/B/fmI+jJYO8DaYkrfTorKviJtA6/5R7k+57+5aG/VxH6GiBJ3TFBIbF7/tzv/w7lS4t8\n8jf/OwBzmWRQS/LCaQVt5aWeTAaTfow+NkG4PEjo4+44q83NFff8pOqMVRH65vdmFAoY09OXL4y6\nRUBy0333sZZWn+0HrYF8vDk1lRxTczdCfyEwdegIy6dPQXoC6ivM5F3uvPT7cH64icgYH1fL5BH6\n3/zkNOXlS/itJoXEY/nUwpO93/ci9G6DQhwirDaNR5aRfSY93Qg9ilUUlbIVefvJ21xzXeJmg8bD\nD1P9yEc2999t/9+SR7eL6ib1ZJ0G1rYROmy63cW1vlmmycPcSUytNF3dnEE7Yv6GAltReNe72P/h\nD+HdeSfR+rpa/mpq7N+xqSw1I4sfGxjLSrrlGksUVu8i54wP7QvUXEhQqaredPRqFS9nYflqmV5t\nrTDtqjrGQn0HQp9VvjZRuQHTt6ofXnq893vbs5BaiOmXoXUQXdOH9qHnVGqra4Sm/i6xlW02lEGX\nAEuo369uY72q5/NomQx+X6GuUCjQ6XQIrAzfPvc0upA8srgPGE65AHj3349z882Uf//3N88xKfIG\nVgH3JmWq1s2hA4yl7B1liwBmvYqtWdz9tncC0KlWmJycpCAzRKZPsNDkiThRgV0cbU3QRf4d78Cc\nGQM/RhM67793irusNYSf2PTqLWrhJIey+4b+VkulkJ0a5uRJMq+apzijiNuwbG5+9Rv42qc/zrkn\nH+tJF4NMwEMPPYSu62gpszdAHcCY2jOUchl3x1lrrxElNtD7J3J0pA52OEDooNIuVxKhAzzwqpdz\nZq+KzH1nDb+zWfzU83nc224jWLrQm1z29cC3DKGnC2P4rSaBU4LGMntzBj/S+hXk8b8c2rY7IX1U\n2iU/OUXY6fDbP/0TrD9eBuD8xa/1fq85DsJ1Bx5gPXWOaL1N/bOb+umsY9CWBhAhiSkUkjd9kovT\nPA/ZarH2K7/C0r/5t5v777b/17YQepJPjCJBHHSoVqvE8eghv5rngaYNDMZ1jGTSfASWZaH3BeRz\nNxSH9+G6ODfeiFEsEG1sqCJhWo2Scy29N2DZS54XzVrgLe80mdibHdoX9FvFrqHpOk4qTatWxcta\n6GEKERt0rHV0fYZsFO9I6O4eRfpxvQ25eZW3vfRE7/de1iHWQrKtMTq1gyM7KvWuA2BflGv3TdTJ\nZFMD26+MuFdApemsvXvxz56j+tGP4l9YoJic6wZ5sqbPO/ef5K0zz2KiUQuGbVWFELi33jIwJtF0\nkjpBu4Xz0I+RlU18u0yYkMp4xmJ1mwi9m3IRfhNds8lPTqMbBrXVFebm5ki1U6yUTlE5WeW5eI5L\ns6/vkdhO6N6bKTtHu1bhcLBAGIMkpm1VMIJxjhWPDZ+faSIsC8JVhKGRn5rBy+V54Lu/l9f+4Psx\nbYcTX/o8M2m1Cq3YFV772tfieV4vj96FMT47nHJxS0QyYiNRR+0ppmhKi8jyB1IuoAjdP32aeJsV\nF6CCQoAnP0y2mGdDxDRT5zl3erCQm33LW4jWlgjLbdony72fL//SY9Q/N9hLcb1wWUIXQswLIT4u\nhHhaCPGUEOLHR2xzTAjxsBCiI4T4xy/IkV4juvMqmyIHYZubjQtoQtJK7xna1kzyX6MJXZFFo7zB\nHa9RjnLl1cHt9EK+57IHQLSEc6xI9W/O9aJ0Q9cQRrLM1n2Kk8lYsXIyncZziZstgqVlwuVloiTi\n7hl0bSnC2J4qajZJczR8miiKaDRGm08JTUNLpwcidE0TuKZO049Ip9PoSYqlOJMilRtOSfTONV/o\nqQLS90xh71fR9E+8/R6134564NpGmwN7aj2v763YHFKgUjLd2YtuxkIgCNuTdJwVLjSLvKrZZMre\nnmDssTyQNHQIAVO3wuJmhJ7JpZAiYLwxx//+offgmCMi9G6Rt89QzE5tzrycS+4DiSRme0IHlUdv\nfP7zLPzEB1n/tV+jkKTlNqTKJ0/NTeLmx8gInYa/zRzPySniSqWXhutG6H67jZi8gYP6OoG1Qa2W\n9D2kbNYbnd40nX70Ui5hGyE0RKzsoaurK0xPT6OFGqeyjxK2IqZDi0/d9h/g4Gu2Pb8unEMFin/n\nBoyMw8XnniGzeoLzzhxSa9Ex62RDh1S5NPJvtVSKOLlfDdPkh3/pN7j7bd+JYVmki2M0KmVcw6Xo\nFAde5j1CTwIQvTA5HKF7m1p0gD1jHk1pEor2UIRu7dsHcTw0NH4Ae18ON38nfOL/YW/Q4oyzghab\nfPQv/6xnJQKQeeMbCc5/DuIOq7/yBM3HVoj9CP9MlXhEQ9v1wJVE6CHwj6SUNwD3AT8qhLhxyzbr\nwD8EfvY6H991g5fMq2yiHsojgVpWLetTQ9t2CxqjJpjM3XQLd771Hfztf/kz3PGab6NhNNhY2lLh\nzhc2JYeaRtxs4t5cQnaiQYJIlBf/M9vAyKsb0y8rctQ8j7jZJFxSOejOCdW81CWacOtSMdHkBnGa\n+8SjwGjpYhddt7t+pGydZpAQulRPyPyNO0dmerGIbLWIWy2yr9tL6k5VRDx0QBUQSQi9oWnQVTKM\nQJfQu3rr7qguL6fO93gwBWh8cSnk/7+6znsPvG37fXk2kQzBV2R2ojXD55/arCnkUjkQMFM/wIH8\n/tHnlU3GFS63aHzpElJKTNtBaBqdZpPieJK2kgY1s74joTs33gBxzNj7f5jJn/4p8klwsREmow2z\ns5DfSzqWIyN0AHNKXdfu/WB2Uy5JJHk0L0DAmXMnAeXnYmjayKanLqHLcHNqUXcY9lSS+90wL6Cb\ngsOBvq0n+lYYRQfvlhJ3veOdXHz2a8S1Dc6682hai0jvoJt1KhdGR76K0DcLi1pfGiyVL9BMnovp\n1PSAd7yeBDLGuEqHaZkxwrW1gU7v/vZ/UPYboeEQyibVcl0VghOMml42BN2Ad/53mL+X+eol2s4K\nmcpRVjKVngsrgDk5gXNonM5j/xFh63TOVHrPv75DkHQtuCyhSykXpZSPJP9dA54GZrdssyyl/BJw\nZd/8NwCpXB6AZpi0YNfVEvy8nBjadqeUi2nZvOr730tpfi9uZopL7kXaVRu/T4HQzaOD6hiTzRZ6\nQkz9hbYffZ16L9oiJHCS5XxS0ddcj3Btrdch2DmeEHrKxJj0BiYXAdgpdWPboYdllIHRzUVdaJkM\nUW0wX+taOi0/IpVKocWC03u/zM2vmN1mD8m5dhtftmh3U/kCmgahr867rmnQ2l7f2025dOdCdofp\nZsdchCZ41tRxm1OcLldo4EBzdHEVlDNmEHfQDJe4FfL0hZBHVwrQUWSZS6tVRLqdH9IP944n+b7K\nf3aSjQ8dJ1hsIITAdj06zTpWIv2zghxVa4Plle2n+xS///s59ImPM/GBDyBME9u2SafTrAbJQ52b\nhcI+0lE4MocOKkIHCC51CT0ZHN5RgcPM9DRa6HD2orpP/u59e3n2X72JQmp4RaRtIXTZiciW1OzU\niYkJEJAO0+QPWhwMR78UdsKtr3sTb/r7P0Fp737Opfej620MESN1nxuP3jTyb7R0uhehb4WXL9BI\nCH0qNTVA6N0I3UqcGTUvD1E00IjVLaY+s75Z7Axy80hiNvKPcunC5r3Um142wrF08IA1yO9lrtOh\nY9ax/AJOKoupDaaAMq97Lf7J59DTOlG5Q1T+BhN6P4QQ+4DbgS88nw8TQrxPCPFlIcSXd4poXgh0\nUy6NUBFfbvWrdKTJqU5maFvNttFyuZGE3g8hBFXvEkiNkydP9n7eVbpgGOilMeJmc3MJ30foN+5R\nkYNDSMtOpqIkyhPNdQeUEf2acedogc6ZKnFfEcZ21XkdW76X8+3bAHji9OhGHlAj0uItEbxnGjT9\nkMnJSbSmxmN7/or8hLfNHpJT7OrutxC60DTSnoXfT+jt8rb70VwXzfN6Qwq6hH7jg9O86/+8Gydv\nYwYlpdNnAprDBet+BNInXTzA4r/9IunoIGGsQ0U9pIW0OmaphVw6Nfqlp6VM0EWvoNVVKlheik6z\nqYZKAE4nR0eEVMqVgZf6wLWwrAH5I8D09DQXm4k3SHYWCntJB20a/uUidEVmXZVLmETo5tR+7M4Y\nS+sLxHGsUnpblEn9x6MuUlKIX2yQGRunsb5O5HfI5NLk/Txitkku1ka6ZF4ON73ytfzAv/tPzExP\noosOGgIkzJb2jdy+P+WyFal8foDQFxuLPdlut1vUnE6BLhCWSmP1P7slt8TLxl/GX57drJeVpuY4\nJW8i0tt86Yubwgi9VEI4zrbjKAfg5plrN/B1dR2/ffbtQ5t4990HgIzqitCTCN3If4MJXQiRBj4E\nfEBK+by8H6WUvyylvEtKedd4d0zT1wm9lEviWaJXznGBcRYqo2/W7bToWxG7FaTwebbPHL8boevZ\nrEqdtFq9JXxU3fw8L1FN2CKkaSWEXlfLTs3zkN3JQ7reS7kAOIcLEEk6p8q9n2m6xoHXZbBDjzNr\n70MCj53cntC1bJaoPhyhN/2Io0ePApCpDL/stmLU3MsuslmPVhKF1kx3x5QLgD421lMWuZks7WoV\n3dQYm01zw0yWjlSrmEtMQGtnQg/xcToqul8NlwnizUHc3SYj9IhLJ0cTuhACo+iged2uXUXodkoN\nMc7n82hCw/RzWIEq9G6ndBmFmZkZVpvQwVSe84V9pOOYWnv0KsZIXgjdCH0zh67IxJw6jBbZSCm3\nfbH0zs0wVJ9DfQl0WP+dp5k5M4eUMb/+wR9Brq2R7+RpjqmXa7D8/AcazxVcDJkMofBz+PXRLxkt\n5W1P6LmCEjR02kynpmmGzV5qqhuhGwUHPWUi9KRYvCWP/oa9b+CZ9Wc4V1VB0r5SiidaLoW1OzjY\nVUKRzCWend05h96Fk+e22gZFS43bizvD52YfPoxeKBCVFwk3XiQRuhDCRJH570gpP/yCHMkLDMOy\nsFyPZsun280zs+8GfuJ1R0ZvXxrdLboVGdOlbV/kueee66lKuhG6ns2iuSoXLhwdYWoDEXqXWBwC\nKknDjN9QD0/XoAuUI2E/odv7cghTo/3c4MN/37cd4ot7/jcCwbGJLN/90M3bHreeSQ80FoGSLjb9\niKmpKTRXo1QvEcvRSpnefhJtdlQeJqJMIUc9sNFijbJm7xihg2pzj5LJ7W4mSxj4hMlc1ZtmsqxH\nGgYOS5QuG6GHQhFw/jsOUe1UidGI1tXD3L3u6XGDxW0IHaD0AzdR+kF1DbsRuu15+M0mhUKBn/rp\nn8I2CmTrapl+NYQ+OzuLBLXayM7C/L2k45j6Ni8qzXXVqjHJoVvJOfhJrUafPoqQ6r7eThM/sD/L\nIq5fovQDcxTeeRjtoHpBNCtl4moZL/JYNS4QCRDrVx+hdzGRdUAm164zTnWLqqR3PKnUkAFZF6nk\nHmtWykym1Iutm3YxxhwQYE4qxYtMZLdbg7E37HsDQC9KPzCepiokZuzRrg2m3czZmaHpRyPh5PBk\nzGuKfwuJHJm+E5qGd889BOeeRbZDguWmmu5kvDACwytRuQjgV4GnpZQ/94IcxdcJqXyeZrUKnirA\nuZMHew01W6Ha/y8foWesDEuZJ/jh738XWuKoqBfygIqCu8VNIQR61hogdF3XsW0bW4S0pIEhOvjN\nTdli77gffJBodbWX1hCmhn0gR+d4eeBY8naeMBm88eqZNLffftu2x62lMwONRbBJ6EIIUjMpJloT\n1Fo7Tyc3tjGPAsgWx6gHFmZssS6MHXPokETo3Rz6lmG6N05nqWoSPUxxifHLEvqSOMsF7xTeLeN0\nWuqahAmhd4260uMGy2eqQ7YGvXMruT03yk1CT9FpKOKxLIvcfJpifT+n9y9y8ODBkfsZhZmkpf8i\nk2qISOkwGTs/srGoC3NykqBbFLUdNUs2idBFehwzEbRcCaGL5BpYsxOk7pli8s03c+TeBzn6wCuQ\nySSv1bUVGp7AqTx/HfVU1mG83UHaz5AOclRXdyqKbpdyUfdYo1xmylO1hC6h24fyTP3kPRglFy1t\nIgMVJW9VukylplTa5Ywi9IPjKWIB8+89yl1v3jewrTU3d8UpF4AZx6cjoL6NTDR1372ES2cA6Jyp\nor9A6Ra4sgj9QeD7gNcIIR5N/r1FCPF+IcT7AYQQU0KIC8AHgf9LCHFBCDFacPwNhJfLK6/mVFII\nzW9vMt8l9J1MoAAyTp41q0Eu3iSYgZSL6/ZscLWsNaByAZV2sUVIyw+x9DZ+krPtTi3SUincl6kl\nod8Xpbu3TWAfzA00Kwkh8BKnvXZ19MPRhZbNKK+ZPq26Zxm0EgvW/FweQxo8d2J7nxK1nyzo+sip\nOpkDLyNGww2ylIV+2ZSLMTZGuN7NoavCZZfQb5rJUdMkettjlSJBY2dCXzeXuaCfQEpJOyHgYF09\npN0IPTtt8oq/fWSgw28rhK2D2ELofW3ehZJLOsjyjP4UqVRqu90MIZ1Ok8tmubjvuyGvpLOp0lHq\nxMja6AKrMTVJeEkRmdA0LMfB77OHMBJ7hk7n8hG1sG2E66Ilx+yk0nz7B3+ag3fcjZY0A9WrddpZ\ng1Qz5Gx59CSfy2EqZ0Ps8i86H6XgBgPeKf3QdyD0boduo7LBdErJRbuELoTo5aP1lEncitALhaFu\nUYB7p+/luY3naIdt9pfUeZ8Z4bZpzs4RV6s9qfC2SIzGJq02bSGpbpO+9e69jzgp4sdV/wVLt8CV\nqVw+I6UUUspbpZS3Jf8+IqX8JSnlLyXbXJJSzkkps1LKfPLfL8yMpWuAl83TqJQhneTvC/u23dYo\nlZC+P5SW2IqsN05V16Dvhjf6Uy6eh0zkWHrWJtpirOV5Hp4W0QoiLCPET/woulOLjMlJrP2qW6/f\nRS51+wSF7zg8tHTLZJKRe7WdozQ9nYE4HvCL6UboAKXZEi29xVe/snOHoNCUf81WlQtAZloRVa7j\nUhU7F0VBeclH6xvIOO61/3d9POaLLr4lMII0Eo2VjZ1vL8O2CX1l49p9aYUbqqbgOA5jY2OslC9y\nwwMzGCN06L3zEwLNNQYJvblJPGPjLnZs4futns75SjEzO8tCZVNBkpl6GVIIml/7XyO3NyenehE6\ngOV6vQgdwEqkfu3GzvcsqJSLURrWhKfHSogwRCJp19v4RR9Danzm8dFjGS+HyaxDDfUCnZ+qbFtk\n11Jp4mZzIMDoopdyKW9QcksYwmCxMVwf0lImcT3YdnV9rHiMSEacLJ/Eswxm8y4nV4ZXRKP8/kci\nidDHzRYdAY36aDWQtX8fwtj83QtVEIVvoU5RGBGh70ToOzQX9SOTnqamaciNvs7QhNC1bAbN2/Rk\n0bMWUcUfiPo9z8MVIU0/wjJj/GTJ2E25GJMTSuGg6wR9I9+2Qz6ncvHtbW6uLrSMUgPEW/xcWn7E\nRsPnf311jZPZk1w8e5GlPhIZBdUtOhwxT+4/xBt/5AOEaY+q4PIRenFMSc4qlR6hr54/y4kvf0HN\nfB330EN13Evzb915X5ZF0OnQ7svLBpVNudsNN9zAmTNnRk522grhGj2DJZVDb/WIJ1dQqYuUn+P4\nllmnl8Ps7CwbGxs9C+d0UY1Zqz37Z6PPaXKSaHW1NwjZctyBCN1y1LXpfPm3L39OjjOa0ItjCCSa\nBlE7ollUq4V8efoqzmwTk1mHhlSE/sDd67z8uw+P3K67UhjlMOplcyAEjfIGuqYz4U0MSBd7+0ib\nSD/CmJohuDRM+EcLqtj/7IYSMBwYT3FqdXhV0NOiX066mEToRa1JR0ja2/jiCyGwD80hpQqWvqER\n+ksJXi5Pu14j8roR+vYpl+301VuR8UoEQtApn9n8217KJYfwPKTvI8NQKV3CeMBYy/M8bEIVoVsS\n31dRVrcoak5MIgwDY3JiYIbndijlC8TEtJuXKWYmOepoi+Niww/51x99ms8dr3E6cxqpCT752U/u\nvK++btF+pPIFbn7V63AzJSp6jGxtbOvaBypCB5WP7+bQP/Xbv8Yf/8y/pF2vMz+XRY8cDN3gUnP7\nqBo2c9390XRYW4WEiI8dO0Ycxzy3zQzJfmiu0fvOLC+FlDF+kqf2kmir4B8giK9Or334sCK3J59U\nXkDpRLpaf+AfjNy+J11MggzLG4zQ7USO2T71OXjuL3b87NT995N+5SuGfp5OPIEMDazIYsX+Gn9x\n5Fe59Z4rrw/0YyrrUE8i9FHWuV30CH1E2kXTdbxsblst+uY+Egnj7AGCc+eH0qVzmTk8w+vp0Q+U\nUpxcHvbWtxJzsMvm0ZPzyYkGbQH+DiZczg03IpO0yzc6h/6SQSoh2tahd8Cb/x3Y28vyttNXb0XW\nUsRT6yf0sTG0XA5r797Ngc+t0c1FnudhEdAOIixHw49MiONeDt2YUKsJc2bm8hEDMJmapGM0KY+Q\nUPVDS3cNuvoJ3SCW8MXT69w+N4mv+1zILPL4k4+zXt8+Z60XiyNli10UnXEaegAygm0aZ2Cw/d/x\nUuimiUgUSY3yBscO5BEI8uk50ulhG9Z+pApFGhsbdPoj9DCGhiLDmZkZMpkMT1/OiAnQnMGUC9B7\nUXRtESYr38cr5oYJcidMTk4yMzPDI488gpSStKnOqZ6dHLl9r7moq3Rx3IF8vmUl9RM9CyM8igY+\n+6d+ktL73z/0c9OycTJZDCRu6HIpeIyTuVNkssMGbVeCvGfS1pI0y4jhFl3sROigGgMb5bI69tTk\nyJSLnjRRGZNzxPX6UDCmCY0jhSM8u64i9IMTaRp+xHJtMPet5XJouRwrv/ALnPvBv0e8XU0iSbm4\nUZ0vuyHNW7YvGzo33EDcSAh9N0K/Puhq0RvGGNz7wztu2xsld7kIPdGPV6t9/hKWxaG//hi573jH\nwDi5Uc1FnuehE9Nq+1iugR+70C73pVzUw23OzFxRyuWOyTvoGA0uhtbO0XCSchmw0E1yyWfWmhwq\nKXJ9LPtl0q9OU0xvbwGgF0bn0LuYSE0Qa5LKZdr/e5r2tTWEpvFd//Rf8uZ/8EEAmpUN7j1coiUk\nFjfz0EMPbbsfgHS+QBj4VFY200VhnxZd0zSOHTvGiRMnLqvb3ppDB/C7hJ5EW0Ht6qLzLu644w6W\nl5e5ePHiJqFvo3QxpxNCP69MoCzXI+hLGdmOhUCjY4/BNtOhrgSZ4hhGFOFEDiv+aeLO+I5TmXaC\nEALTTYjuigh99Ll7W9r/l5pLQ5JaY0ylv7SMSg/1G+R1cbR4lGc3niWWMQdK6nqfXB78TCEEcz//\nH0g/9BCNz30O/8zwfgCw0iB0tHaZKG+xNNqmCADnphuRiSR1N0K/TvC67f/JVPKdoPdGye28bS9C\nnxjMDerptDLB6hJ6o7ljc5Feu4ThmvjSg+YaemJx232IzZkZwqXlkR7t/bi5dDOh2WaNzI7RsJbk\nqPsj9JS9mcY4Nqnyq1LP8A/v+4c7fqZRLBKVywP+Gf2YSatzWNb1HQuj3ZxuV7o4d+PNjO9VXivN\naoW5gkvLgPWVbWbj9SFVUC+HtQubxepA6lDZLHTdddddvPOd7+zJTbfDIKEnReckd205OlIXiE5E\nJ7x6ed/NN9+MYRg8+uijveBgu/Z/a/9+tFyOxhfU/E/LHYzQTUtDkwZtIwu15+/mlxkrITo+dqQc\nJ2N/kuo1eHpXcsc4bRyEydFt/3CFEXplM+USxiFrrUH7B2PcQ5gaSHVvd198/ThaPEojaLBQX+Dg\nhPrMkyPy6Kn776f4nncDwxLIHoRQUXq7wnhme7tiAGvvXuLGRRB+b3bAC4FvLULvOi5eAaFrrotw\n3SuP0O993+j9eF0dc3NzCETfHMOJiQkkgrnyYzzTPIcvXYLqEs7NNzPz7/4t6VeoZbw5MwNR1Gss\n2fa4hUbagVacIapvv+3ICD0ZQwdw75795OI7GG+/G8/cuf1fzxdAym1lXnuyCaEb+s5+Lrkczo03\noqU35X/dl3CjXFZWtFmLoDY8sWkrUvmE0Bc2H+oQG059ovf/JycnufHGGzEMY+ufD0AkhC6lHHBc\nBBXN6SmDdCxYrl5eLrgVjuNw6NAhnnvuOTxDXeftDLqErpO6/34an/0sUsqhCN2wdIQ06Gipa4rQ\n08Ux4kYdDQ07tok7E1ds0DUKemGed9v/HrLbF1a73/nl/FyklNwxcQc/fsePD/mmCF1gzqSJqprS\n6J8dlloeKyj73mfXn2Uq6/DKI+MUPHNoO+gTRmxH6KBWHe0y4xl726Hc6th0dG+F6MJvIbSd06HX\ngm8tQu+2/18BocPlUwmwSehbh/t20Y3QZbOJMDU0zxiQLs7Pz7Oy/43UtAzVKAI0vtKYQ2gaube9\nDWF2Cz1JoeZKCqOZFGaY4onF7aVmWnfMW/+QiyTl4po6B8dzvMz+cTr17QvHXdiHDpJ+zWtgm9XD\n/rx6kM96k/R8TkdA6Dr7P/wh8u94R+9nbjqDEBqtpNmlOO7ihnB2becoPZ2kb9YvbBJ6MHMXPPq7\nl21K2grNNSCSEMZDOXQAJ2OSjgVL1efXIn/48GEqlQp+korbzkIXIPXgA4RLS/gnT/YidCmlUoCY\nQKxzanWCT1x8B1F751TSdsgUS4SJ9NEJHUXozzPlAqowulRt7/gS1i8XoecLREFAp9ngaPEo773l\nveRHpHCs2TTBYgNjero3BrIf+3NqxXe+dh4hBL/xg/fwbbfOjPzMK1K6OTlolXn7bTN8953z22+H\nct1sf+3JkdLM64VvKUK3XJc3/+gHOXDnPVe0vZEvECWFmO1wWUJ3uxG6iqTGvv9GMq+YG9jGcRya\n2D2VhDeiWNsdFnwlhD43NoETpvjU4ue33UazbYRpDljodqcWHZ3KoGuCgmey0bw8KaQeeID5//pf\neg/AVhwoqmP/2Ny7YP/Oue+tEJqGm82q/gFgz2wGVwq+cGJnzXc3Qq8sLyGSlEo4+wCELfjyr17V\nMWiJ8VncCvsIffOFkik4pKTg0jUQOsD5U+fRxOghF12kH3wQgMZnP4vlesg4ptNs8Gsf+GHWL3wR\nEemESJ5qvpE/+rkv06xePamnx0poiY+QG7nEnclritCncg7tIN4xbdOdohVVRq/yjt7/EN/7r/59\nz5RsO5izaWQQYx24lWBEhJ4yU7iGy3Jzh6i7e0yOo+wWdorQ3Ty0y7z9tll+4IF9O+4v/cpXkvvO\ndyKvoJP3+eJbitCFENz4itf0hv1eDnqhQDjCo6QfvRz6NoQu+oqioHxYjOLgTelYOi2pE0bJcN4R\nLnldQr8SpUuuUMCMbY6wsxJkq4Vu1wbhhml1TgXPotIKRg5JuBqkbQeiFOudq2u86SKVy9NMrID3\nzqtje/SZ7e1zQb28DdtGyrjXmBJYOTj0OvjSr+1YMN4KzdkkdKuXQ+9rLiq5FDWdY1OXNzMbhWw2\ny+TkJCdOnCBlprbNoYO6D6wDB6h/5rM9P5fy4kX8VhPTrpPNp8gUQt6Y/xlkFGBYV/+IZ4olRKgI\nPE+BN91wiOmce5m/2h6TWXW/7/TC04tFhOsSXBjOe4PK608fPop+mfSYNafueWPy6OCQmQRCCDVj\n9AqbwJRJ32VSLpfpr+gi/cpXMvVP/+mArcf1xrcUoV8t9ELhskVRS7dwdIeqPzqy6C+KbgfP1GnG\nOnHkI5FYI7hGs230UumKInSnoEjvoXjY670fW4dcZBLiunFaEVPBs5CSa1pu9z4rzlENdibh7eDm\n8jSTglgmeRm+cn5nGZ0QgnQSpbvZHLphKKOvo29RBcPyNsqFEeiP0A3TQjeMAULPF10IJXsyz5/0\nDh8+zLlz58hpuR39XEB5+wQXL2IlnugbydByTWuz59gEfiw55HyO73xnBcvZmQBHIT02hojUd/6O\n+bfzi3/3Ll5x5Pm7o3bb7J+5tH13b3dUX3839POBMe4hLA0tPUO0sTHkVwRqgtGVROgA5sTw0OkB\nJEXRFwt2CX0HKELfOUIHlXa5XA493qEj0bV0GpEOSD6R6TA2OdoTxJyZuaLmIjtp/29Xdm4B3xqh\nHxxP8y/ffhPfcYdKCRWSRo0rSbtcDpYo0IiuLnfdRarb4Qukk87Mve7lpV+pRHrqeCkM2ybwOzB3\nl/rlhS9f8ef3E7oQAstL9WSLAKm8KnY3tvHyuBLMzs4SxzFFWdwxQgeY+Mf/iAN/9qe91UJ5Ud0T\nzUoZ27bpJPYNov78CqO58Une+U/+b1zHIcf2zUBXihums2Qcg8+fusyqat8+gu0kglcIoQnM6TSg\ngppRUfrVRegTBJeL0Nvlq1rxvZDYJfQdoBfyxLXapi/5NshYme0j9G4Ovbl9hO6YOu1YkcZGId52\nhqc5M0OwcAURejKst51/2Y7baVssdIUQfN/9+0jb6ljyniKqjW1amq8GKb2ILy//chwFL5frpVzS\niYa3vnF58uzm0e1UGtOyVYQ+cRMYLix85Yo/X3QJPTFOsz1vIIfe/b4az2MQRBdWMnTivvH7uGd6\n5xqPZtu96UkA5UubhO44Dn4QEAkLqs9PumhYFgfuuJtMNtuzJbgW6Jrg3v1FHj55GULfuxf/woXL\nPm+Xg1F0kKEJQoxUhY1746y0Lm+8B2BMKBvtbbd1chCHsEMh++uJq1+PfQuhp0Uvl7ct+MHOEbpw\nHDVXtLb9ctOzdDrJV1HYIfA0SiUaI2xqt8JJIuv2+L07bjf/X//r5vSaESgkhF6+DhF61hhjNawR\nxMGQ3Oxy8HIFgk6boN3GdBy8rEVt/fKFpW6EbqeSCL3TUfMgZ257XhG6TF5stpfuWejCZnNRo/L8\nr1OX0N+05029Iull/6abcukSerXSswbupOfxniehd5FOp6ldxpzuSnHfgTE+9vQyi5XWtvl4a98+\niCL8Cxew94+e9Xol0PM2cSvmyCOPoLvDRdRxd5xW2KIRNEhbO9eZjPEJCALFAYURab6kW5R2Geyd\n9/X1wG6EvgOutP1/R0IXAuemm2h+cXsJoWvqdKQqSOZHJdAT6MWCWjFcprOxR+iXM+hyXYS+vSdK\nV597PSL0gjMOQg41g1wJvKxa9jcT6eIND0wzdeDyqYB0QXW7OkmEHnRbuGfvhMXHILqy89IcdY26\nzUVOOt2z9QXIjDl8z/95N/tfNnqi/ZWgS+iX61od+JtuyiUxompVK9jJfjrpWag9fy06QCaT2XHQ\n+NXg/oPqu9gpSrf2KYnsqA7Pq4GesyEG6Y+WyI4nXk7Lrcvn0bvWG9sqXbrSySssjL7Q2CX0HbDZ\n/l/ecbusld2W0AHSr3olrccfJ1wbfTO7fRF6xtheo2p0Bylf5nh6KZfGtRFx/jpG6BPJQ7RQGzZV\nuhx682ATCel97zjIjQ+O1g73o6tu6Ubood9H6FEHlp68os8Xuoaw9F7KJTc+SWV5cymvGxrj85nn\nVYDsokvowVWkG7oRevflEkcR3Z6Vtjv1vFMuXRSLRWq12lW9ZLbDDVNZ8p55GULfB4B/jYXRbmt9\ntE0KbMJVJL3avHwe3Zi4THNRL0J/cRRGdwl9B1ypn8ur5l/F2w8ND4jtIv2qV4GU1D/16ZG/VxG6\nIoOUvj2h7zTurR+mpaObGu3G82/XBsg6BromWG9c+wM9lVLdoucrV6Yu6EevIax6dQ9Nt/3fSaUx\n7b4IvVsYvYo8en/7f25yilatOpBHv1ZcS4Tej27+ueOMqwj9Gop1pcSKYf0K0nyXg6YJ7ts/xtoO\n95Kez6PlctcnQoehYTJdlDx1XlcXoW+jdOlF6M+vPnS9sUvoO+BKCfTN+9/M+24d3foP4Nx4I8bE\nBPVPfGLk711Lx8dASnDE9iSs7zDubStKc2lMe/t0ypVACEHeNa9LyuVY8TC1p/8VR7P3XfXfbnrw\nXN1Dky2phzGVL2B0i6IAuXnQbdg4c8X70ly9R+j5xPWwsnz1q43tYCYdwVdD6N0xdEDPkoBA/X3b\nGoOgeU2R41jifrm2zcryavGfv/d2fu3dd2/7+6508VojdKPrano9IvRet+g25O8lpnWXGVr+9cIu\noe+A7mzQK5Eu7gQhBOlXvpLGZz4zMv/tWToSgY+OxfaE3k25XMnxfNdP3sU93/b8C0tdFFLWdUm5\nFFMuYLDxPKL9Xg69cnXkVJyZ5V3/7N9w8K77MGxHyRZBkWB2+qr8TlL3TuPerAguN5EQ+tI3ltCF\nEL20S2l+HwBRR8lj2xO3wXs+Cpfx4dkJxeR+u16EbuiXpxtr395rjtCFayAsbdsIvdctegURumbb\nO3eLugmhX6WdxAuFXZXLDtAsCy2Vumz7/5Ug++Y3IaOIqNHA2KIscRIPlY40MOT20XA3BTRqfucL\nhStt/78cZvMub71lmoxzdQoXUDI620tdsQdPP+ZuvBlgU7bYRWbmqoqG6fs3c/b5KeVNU76OEboQ\nAsuyrjpfbbkufqtJaX4vC888RZikgTp6GvburHK67L4ti2w2e90I/Urg3XkXst1BxnHPsuFqIYRA\nz9nbRujdbtGV5uWHwIOSC8fbfS9WSq32ml+/a7QTdgn9MtALo6fxXC1SDzxA6oEHRv6u60PewUBE\nO+QYc2oU15WkXK4X8p7F+fVrzxXPFz3+y9+543n//cv/1vdTnJ27/IbbwHTszQgdVIS+8Mjz2pft\npXDSGSpL16Yi2QrLsq6qKArKEx3WGJvfoxwGEznllYzWuxKMjY19XQm98K7vofCu77nm/eh5m3CH\nRq+SW2KldWWEvv/DH0KMsOMA1GrPK+6mXL5ZoBcub9B1rfAS29qONJDh9oQuDAM9m71sTv964npF\n6NeK2974VvbcvHOj1E4whiL06WsqGuYnpyhfx5QLqLTL84nQAdKFIm4mS6dWYXx8nIcffpiz15i6\ngK8/oV8v6Dl725QLwIQ3ccUR+rZk3oVbhOZuUfSbAnt/49eZ/2//7QX9jP4IPfJ3bpjRi8Wva8rl\nwHiaPcUXzkzo6wUzkS32rEsz0xC2dxy4sRNyE1PXtSgKPM+Ui/puvFwBL6s6av/u3/27ZDIZfuu3\nfuuaFSpjY2O0Wi2a11HR8/WAnrOJ6wEyHK0am0nPsNhY3LbD+6qwG6F/80DzvMu/oa8RTuKI15EG\nfufyhP71TLm8/5UH+YP3j04VfTPBSOZthokKpDds4XkOgshNTlFdWSbeZkrT88HzIvSkKJrK5fFy\neZrVMrlcjve85z28/vWv7xU2ny+ut9Ll6wUjr6YtRdvYB79h7xsI4oA/P/3n1/5hXvFFk0PfJfQX\nASxdQ9cEbWkQ+D7hDmPmrmToxi6GYdrJ7M9u2iWTFDmf56i2/OQ0cRRRW3t+lsCj8HwIvTsSz8vl\nehE6QCqV4t57r60oCt+8hH655qIbx27kUP4Qf3zyj6/9w9zii0blskvoLwIIIXBNHakrBchOBS2j\nULwuRdpvNRgJofe6Ra81Qp+4/lr051MUddIZLNfFdNxehH49kc/nueeee6450v96w5hQLzr/4mhz\nMSEE7zj0Dh5feZxT5VPX9mFeUTUWvYCTiK4Uu4T+IoFj6r1pLDsRul4sEm1svKBjrF6KMJOUS9Du\nRugJoT9Pv5OxuXnueft39bpRrweeT1H0rm/7Dt75U/8CIQReNkfo+0SXGSR+NdB1nbe85S3s2bPn\nuu3z6wEjZ6MXHTqntu9deOuBt6ILnT899afX9mHeGMgIOt/49v9d2eKLBJ6lY2kuBOxYgNILeYgi\n4lpNyRh3cUUwkpdlL0I3bPUgPk+/k1S+wEPf++7rdHQKzyflki6OkS6qtMg97/hu7n3nu17wms83\nC+z9OdpPryFjOXIwc8kt8Stv+BVuKd1ybR/U31zk7jx45YXGboT+IoFr6ujZEh/84AeZn99+RF7P\noOvrWBh9KaAXofcXnbvSxRcJng+h90PT9V0y74N9IEfcDAmXtw+Q7p66G8fYeU7pZdFr///Gp0J3\nCf1Fgnc/uI/vve8A2WwWfQdL2ys1DNvFILo59PrG+qZT4ouQ0MMwJN5Np10X2PvVCnantMt1gadW\nSC+GwuhlCV0IMS+E+LgQ4mkhxFNCiB8fsY0QQvxHIcQJIcTjQojn3xL4LYq/fc8e3nrr9GW30wtX\n7ueyi010VS6f/O1f47d/+gNqJuhV+rm80Oj6uVxtYXQXo2EUHfS8Tef0C0zo3TTLi0C6eCURegj8\nIynlDcB9wI8KIW7css2bgcPJv/cBv3hdj3IXPRjFrp/LNz4a+GZCl9Dra6vc/qZvx/ZSSrrYWLni\nQRcvNJ6Phe4udoa9P0e4dn1sELbFi8hx8bJFUSnlIrCY/HdNCPE0MAt8rW+ztwO/KdXgvc8LIfJC\niOnkb3dxHaGPjVH60R/FuWHrO3UXO6GrIJo6eJh7vyPxCrn7vXDH94H24tAG7BL69Uf+Ow4hzBc4\ns2znQGgvipTLVd3JQoh9wO3AF7b8ahY43/f/LyQ/GyB0IcT7UBH8N50M6sUCzbYZ/7F/8I0+jG86\npApFXvF33sPR+x9CN5LbPr39nNhvBHYJ/fpDs65tJsCVfYiWNBd9c6RcABBCpIEPAR+QUm41QBhV\nWh9yPZJS/rKU8i4p5V3jOwxd3sUurjeEENz9tu8kOz7xjT6UbbFL6N/EeJH4uVwRoQshTBSZ/46U\n8sMjNrkA9Gvt5oBrG2i4i118i2G3KPpNjBdJ+/+VqFwE8KvA01LKn9tmsz8Bvj9Ru9wHVHbz57vY\nxdVhN0L/JoY39qLQoV9JDv1B4PuAJ4QQjyY/+6fAHgAp5S8BHwHeApwAmsB7rvuR7mIXL3HsEvo3\nMe7/++B/4y2Gr0Tl8hlG58j7t5HAj16vg9rFLr4VsUvo38TY9/Jv9BEAu52iu9jFiwa7hL6La8Uu\noe9iFy8SGImccrcouovni11C38UuXiTQNO15WejuYhdd7BL6LnbxIsK1Oi7u4lsbu4S+i128iLBL\n6Lu4FuwS+i528SLCbsplF9eCF4cr0S52sQsADh8+jONc48CFXXzLYpfQd7GLFxFe//rXf6MPYRff\nxNhNuexiF7vYxUsEu4S+i13sYhcvEewS+i52sYtdvESwS+i72MUudvESwS6h72IXu9jFSwS7hL6L\nXexiFy8R7BL6Lnaxi128RLBL6LvYxS528RKBULMpvgEfLMQKcPZ5/nkJWL2Oh3M98WI9tt3jujq8\nWI8LXrzHtntcV4fne1x7pZTjo37xDSP0a4EQ4stSyru+0ccxCi/WY9s9rqvDi/W44MV7bLvHdXV4\nIY5rN+Wyi13sYhcvEewS+i52sYtdvETwzUrov/yNPoAd8GI9tt3jujq8WI8LXrzHtntcV4frflzf\nlDn0XexiF7vYxTC+WSP0XexiF7vYxRbsEvoudrGLXbxE8E1H6EKINwkhnhVCnBBC/NQ38DjmhRAf\nF0I8LYR4Sgjx48nP/7kQYkEI8Wjy7y3fgGM7I4R4Ivn8Lyc/Kwoh/koIcTz538I34LiO9l2XR4UQ\nVSH+7lPSUwAAA/5JREFUv/bNJjSuKgzDz0tqC2pV/GVo1SRSF13ZLNxou1HUFG38AYm4CCiIoIsi\ngpWAuK2iWwtisUi1RbSYjVBwoSt/aGxqpK1NasHQMYG6UFDU6uvinoGbYe7UKvecmeE8MMy535ww\nL+/3zTfnnJvRzhSeSdoraUXSfClW6ZGkF0PNnZR0b2Rdr0o6IemYpEOSrgrxYUm/lXzbE1lXZd5i\n+dVF28GSrjOSjoZ4FM+69Id6a8x23zyAIWARGAXWAnPA5kRaGsBYGK8HvgM2Ay8Dzyf26QxwbVvs\nFWBXGO8CdvdALn8Ebk7hGbANGAPmL+RRyOscsA4YCTU4FFHXPcCaMN5d0jVcnpfAr455i+lXlba2\n118DXorpWZf+UGuN9dsK/XZgwfZp238AB4CJFEJsN23PhvEvwHFgQwot/5IJYF8Y7wMeTCcFgLuA\nRdv/9dfC/wvbnwE/tYWrPJoADtj+3fb3wAJFLUbRZfuw7fPh8nNgYx3vfbG6uhDNrwtpkyTgUeC9\nut6/QlNVf6i1xvqtoW8AfihdL9EDTVTSMLAF+CKEng3b470pjjYAA4clHZH0VIjdYLsJRbEB1yfQ\nVWaS1R+y1J5BtUe9VHdPAB+XrkckfS3pU0lbE+jplLde8msrsGz7VCkW1bO2/lBrjfVbQ1eHWNL/\nu5R0OfABsNP2z8AbwC3AbUCTYrsXmztsjwHjwDOStiXQUImktcAO4P0Q6gXPutETdSdpGjgP7A+h\nJnCT7S3Ac8C7kq6IKKkqbz3hV+AxVi8conrWoT9UTu0Qu2jP+q2hLwE3lq43AmcTaUHSJRTJ2m/7\nQwDby7b/sv038CY1bjWrsH02PK8Ah4KGZUmNoLsBrMTWVWIcmLW9DL3hWaDKo+R1J2kKuB943OHQ\nNWzPz4XxEYpz11tjaeqSt+R+AUhaAzwMHGzFYnrWqT9Qc431W0P/CtgkaSSs8iaBmRRCwtncW8Bx\n26+X4o3StIeA+fa/rVnXZZLWt8YUN9TmKXyaCtOmgI9i6mpj1aoptWclqjyaASYlrZM0AmwCvowl\nStJ9wAvADtu/luLXSRoK49Gg63REXVV5S+pXibuBE7aXWoFYnlX1B+qusbrv9tZw93g7xR3jRWA6\noY47KbZEx4Cj4bEdeAf4JsRngEZkXaMUd8vngG9bHgHXAJ8Ap8Lz1Yl8uxQ4B1xZikX3jOILpQn8\nSbE6erKbR8B0qLmTwHhkXQsU56utOtsT5j4ScjwHzAIPRNZVmbdYflVpC/G3gafb5kbxrEt/qLXG\n8k//M5lMZkDotyOXTCaTyVSQG3omk8kMCLmhZzKZzICQG3omk8kMCLmhZzKZzICQG3omk8kMCLmh\nZzKZzIDwD7QJo3a+W7DqAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "losses = np.asarray(losses)\n", "for i in range(n_tasks):\n", " plt.plot(losses[:, i])" ] }, { "cell_type": "markdown", "id": "f9014491", "metadata": { "id": "f9014491" }, "source": [ "With this version, all the tasks start lockstep-ed initially, but then reset early so as to ensure the training trajectories are not running in lock step." ] }, { "cell_type": "markdown", "id": "9ef76f1f", "metadata": { "id": "9ef76f1f" }, "source": [ "## TruncatedStep: An interface for unrolled computation graphs\n", "\n", "The TruncatedStep abstraction defines an interface which can be used to inner-train a task with some meta-learned pieces.\n", "\n", "This abstraction is entirely independent of learned optimizers and can (hopefully) be used for just about any meta-learning system.\n", "\n", "The interface exposes the following:\n", " * `outer_init`: Initialize outer parameters (weights of learned optimizer).\n", " * `init_step_state`: Which initializes the state of the inner problem.\n", " * `unroll_step`: Which trains the inner-problem state a single step using the learned algorithm.\n", " * `meta_loss_batch`: Computes a meta-loss from a given inner-problem state.\n", "\n", "Inner-training, and computing meta-losses often require data. To this end, `TruncatedStep` also provide a `get_batch` and `get_outer_batch` for getting data for inner-training, and computing meta-losses respectively.\n", "\n", "When we use this abstraction, we iterativly apply unroll_step. As such, we must ensure that this function occasionally resets as we saw in the previous section with truncation schedules." ] }, { "cell_type": "markdown", "id": "7b0d8422", "metadata": { "id": "7b0d8422" }, "source": [ "As a demonstration of this, let's define a simple `TruncatedStep` for a learned optimizer. For many cases, this is unnecessary as `VectorizedLOptTruncatedStep` should be used as it supports task family, truncation schedule and a number of different ways to calculate meta-loss." ] }, { "cell_type": "code", "execution_count": 10, "id": "f1106d1b", "metadata": { "executionInfo": { "elapsed": 61, "status": "ok", "timestamp": 1647909341952, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "f1106d1b" }, "outputs": [], "source": [ "class SimpleLOptTruncStep(truncated_step_mod.TruncatedStep):\n", "\n", " def __init__(self, lopt, task, unroll_length=5):\n", " self.lopt = lopt\n", " self.task = task\n", " self.unroll_length = unroll_length\n", "\n", " def outer_init(self, key):\n", " return self.lopt.init(key)\n", "\n", " def init_step_state(self, theta, outer_state, key):\n", " params = self.task.init(key)\n", " return self.lopt.opt_fn(theta).init(params)\n", "\n", " @functools.partial(jax.jit, static_argnums=(0,))\n", " def unroll_step(self, theta, unroll_state, key, data, outer_state):\n", " opt = self.lopt.opt_fn(theta)\n", "\n", " def train(unroll_state):\n", " params = opt.get_params(unroll_state)\n", " loss, grad = jax.value_and_grad(task.loss)(params, key, data)\n", " unroll_state = opt.update(unroll_state, grad, loss=loss)\n", " out = truncated_step_mod.TruncatedUnrollOut(\n", " loss=loss,\n", " is_done=False,\n", " task_param=None,\n", " iteration=unroll_state.iteration,\n", " mask=True)\n", " return unroll_state, out\n", "\n", " def reset(unroll_state):\n", " params = self.task.init(key) # Modify this\n", " unroll_state = self.lopt.opt_fn(theta).init(params)\n", " out = truncated_step_mod.TruncatedUnrollOut(\n", " loss=0.0,\n", " is_done=True,\n", " task_param=None,\n", " iteration=unroll_state.iteration,\n", " mask=False)\n", " return unroll_state, out\n", "\n", " return jax.lax.cond(unroll_state.iteration < self.unroll_length, train,\n", " reset, unroll_state)\n", "\n", " def meta_loss_batch(self, theta, unroll_state, key, data, outer_state):\n", " params = self.lopt.opt_fn(theta).get_params(unroll_state)\n", " return task.loss(params, key, data)\n", "\n", " def get_batch(self, steps=None):\n", " if steps is None:\n", " return next(task.train)\n", " else:\n", " return training.vec_get_batch(task, steps, split=\"train\")\n", "\n", " def get_outer_batch(self, steps=None):\n", " if steps is None:\n", " return next(task.train)\n", " else:\n", " return training.vec_get_batch(task, steps, split=\"train\")" ] }, { "cell_type": "markdown", "id": "f794ae8a", "metadata": { "id": "f794ae8a" }, "source": [ "We can now use our truncated step function in a simple loop to run 10 steps of inner-training. Because we are resetting every 5 steps, we see the loss also resets. When we reset, we report of loss as 0.0, but also have a mask=False for this iteration." ] }, { "cell_type": "code", "execution_count": 11, "id": "b6a6bcbc", "metadata": { "executionInfo": { "elapsed": 908, "status": "ok", "timestamp": 1647909342968, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "b6a6bcbc", "outputId": "13aece58-b51a-4182-95f8-c2ddf40fa2bd" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iteration= 0\n", "Iteration= 1 Loss= 2.658556 Mask= True\n", "Iteration= 2 Loss= 2.5532773 Mask= True\n", "Iteration= 3 Loss= 2.361111 Mask= True\n", "Iteration= 4 Loss= 2.1044798 Mask= True\n", "Iteration= 5 Loss= 1.8072809 Mask= True\n", "Iteration= 0 Loss= 0.0 Mask= False\n", "Iteration= 1 Loss= 2.658556 Mask= True\n", "Iteration= 2 Loss= 2.5532773 Mask= True\n", "Iteration= 3 Loss= 2.361111 Mask= True\n", "Iteration= 4 Loss= 2.1044798 Mask= True\n" ] } ], "source": [ "lopt = lopt_base.LearnableSGDM()\n", "task = quadratics.QuadraticTask()\n", "truncated_step = SimpleLOptTruncStep(lopt, task, unroll_length=5)\n", "\n", "key = jax.random.PRNGKey(0)\n", "theta = truncated_step.outer_init(key)\n", "\n", "unroll_state = truncated_step.init_step_state(theta, None, key)\n", "print(\"Iteration=\", unroll_state.iteration)\n", "\n", "for i in range(10):\n", " batch = jax.tree_util.tree_map(lambda x: x[0], truncated_step.get_batch(1))\n", " unroll_state, out = truncated_step.unroll_step(theta, unroll_state, key,\n", " batch, None)\n", " print(\"Iteration=\", unroll_state.iteration, \"Loss=\", out.loss, \"Mask=\",\n", " out.mask)" ] }, { "cell_type": "markdown", "id": "acaece93", "metadata": { "id": "acaece93" }, "source": [ "## VecTruncatedStep\n", "\n", "Now for performance reasons, we often want to inner-train batches. `VecTruncatedStep` both provides an interface for vectorized steps, as well as a wrapper function to convert non-vectorized to vectorized." ] }, { "cell_type": "code", "execution_count": 12, "id": "bd3db7cc", "metadata": { "executionInfo": { "elapsed": 1921, "status": "ok", "timestamp": 1647909345001, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "bd3db7cc", "outputId": "e26b40da-23ee-417e-ce48-9025e60bfca8" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iteration= [0 0 0]\n", "Iteration= [1 1 1] Loss= [8.163749 7.267569 6.8465357] Mask= [ True True True]\n", "Iteration= [2 2 2] Loss= [7.8404646 6.9797735 6.5754128] Mask= [ True True True]\n", "Iteration= [3 3 3] Loss= [7.25037 6.4544573 6.080529 ] Mask= [ True True True]\n", "Iteration= [4 4 4] Loss= [6.4623203 5.752917 5.419631 ] Mask= [ True True True]\n", "Iteration= [5 5 5] Loss= [5.549699 4.9404783 4.65426 ] Mask= [ True True True]\n", "Iteration= [0 0 0] Loss= [0. 0. 0.] Mask= [False False False]\n", "Iteration= [1 1 1] Loss= [8.163749 7.267569 6.8465357] Mask= [ True True True]\n", "Iteration= [2 2 2] Loss= [7.8404646 6.9797735 6.5754128] Mask= [ True True True]\n", "Iteration= [3 3 3] Loss= [7.25037 6.4544573 6.080529 ] Mask= [ True True True]\n", "Iteration= [4 4 4] Loss= [6.4623203 5.752917 5.419631 ] Mask= [ True True True]\n" ] } ], "source": [ "truncated_step = truncated_step_mod.VectorizedTruncatedStep(truncated_step, 3)\n", "\n", "key = jax.random.PRNGKey(0)\n", "theta = truncated_step.outer_init(key)\n", "\n", "unroll_state = truncated_step.init_step_state(theta, None, key)\n", "print(\"Iteration=\", unroll_state.iteration)\n", "\n", "for i in range(10):\n", " batch = jax.tree_util.tree_map(lambda x: x[0], truncated_step.get_batch(1))\n", " unroll_state, out = truncated_step.unroll_step(theta, unroll_state, key,\n", " batch, None)\n", " print(\"Iteration=\", unroll_state.iteration, \"Loss=\", out.loss, \"Mask=\",\n", " out.mask)" ] }, { "cell_type": "markdown", "id": "38fe30c7", "metadata": { "id": "38fe30c7" }, "source": [ "## VectorizedLOptTruncatedStep\n", "In the above examples, we created a simple `TruncatedStep` for a learned optimizer and task. This is great, but in reality we want to use more of the machinery we have been developing through these notebooks -- namely, `TaskFamily` and `TruncationSchedule`. To this end, we also provide a `VectorizedLOptTruncatedStep` which takes in a `TaskFamily`, `LearnedOptimizer`, and `TruncationSchedule` and constructs the appropriate `VectorizedTruncatedStep`.\n", "\n", "In the below example, we will construct one fo these `TruncatedStep` on a quadratic task family, with randomized starting iteration." ] }, { "cell_type": "code", "execution_count": 13, "id": "8ac6db44", "metadata": { "executionInfo": { "elapsed": 4333, "status": "ok", "timestamp": 1647909349458, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "8ac6db44", "outputId": "5404e568-1aa5-404c-9113-b70a1254ee8c" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iteration= [2 4 4]\n", "Iteration= [3 5 5] Loss= [30.317793 32.50056 10.791804] Mask= [ True True True]\n", "Iteration= [4 0 0] Loss= [28.276335 0. 0. ] Mask= [ True False False]\n", "Iteration= [5 1 1] Loss= [25.218487 24.83813 36.847755] Mask= [ True True True]\n", "Iteration= [0 2 2] Loss= [ 0. 25.100714 33.250145] Mask= [False True True]\n", "Iteration= [1 3 3] Loss= [10.66427 22.762098 31.916872] Mask= [ True True True]\n", "Iteration= [2 4 4] Loss= [10.144799 20.350817 28.981028] Mask= [ True True True]\n", "Iteration= [3 5 5] Loss= [ 8.875515 17.26621 23.050066] Mask= [ True True True]\n", "Iteration= [4 0 0] Loss= [8.438987 0. 0. ] Mask= [ True False False]\n", "Iteration= [5 1 1] Loss= [ 5.835725 25.567972 35.97472 ] Mask= [ True True True]\n", "Iteration= [0 2 2] Loss= [ 0. 23.460606 33.696133] Mask= [False True True]\n" ] } ], "source": [ "task_family = quadratics.FixedDimQuadraticFamilyData(10)\n", "lopt = lopt_base.LearnableSGDM()\n", "trunc_sched = truncation_schedule.ConstantTruncationSchedule(5)\n", "truncated_step = lopt_truncated_step.VectorizedLOptTruncatedStep(\n", " task_family,\n", " lopt,\n", " trunc_sched,\n", " num_tasks=3,\n", " random_initial_iteration_offset=5)\n", "\n", "key = jax.random.PRNGKey(1)\n", "theta = truncated_step.outer_init(key)\n", "\n", "unroll_state = truncated_step.init_step_state(theta, None, key)\n", "print(\"Iteration=\", unroll_state.inner_step)\n", "\n", "for i in range(10):\n", " batch = jax.tree_util.tree_map(lambda x: x[0], truncated_step.get_batch(1))\n", " unroll_state, out = truncated_step.unroll_step(theta, unroll_state, key,\n", " batch, None)\n", " print(\"Iteration=\", unroll_state.inner_step, \"Loss=\", out.loss, \"Mask=\",\n", " out.mask)" ] } ], "metadata": { "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "//learning/deepmind/public/tools/ml_python:ml_notebook", "kind": "private" }, "name": "Part3_Truncation_TruncatedStep.ipynb", "provenance": [] }, "jupytext": { "formats": "ipynb,md:myst,py", "main_language": "python" }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 5 }